TCP/IP传输层,你懂多少?

2023-10-26

转自:http://java-mzd.iteye.com/blog/1007577

你所不知道的传输层

题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。

PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。

1. 传输层的主要功能是什么?
2. 传输层如何区分不同应用程序的数据流?
3. 传输层有哪些协议?
4. 什么是UDP协议?
5. 为什么有了UDP,还需要TCP?
6. 什么是TCP协议?
7. 怎么理解协议和程序?
8. TCP是否真的有链接?
9. 链接是如何建立的(逻辑上)?
10. 所谓的建立TCP链接开销很大,具体是指什么?
11. 三次握手的目的是什么?
12. TCP如何提供可靠性?
13. 什么是预期确认?什么是肯定确认与重新传输?哪些情况会重传?
14. TCP中,序列号和应答号有哪些作用?
15. TCP链接中,网络失败,是怎么判断的?
16. 为什么需要窗口技术?
17. 如何实现流量控制?
18. UDP的开销很小,具体是指什么?
19. UDP数据包、TCP数据包大小如何确认?
20. UDP适合哪些环境?TCP适合哪些环境?

一。传输层的主要功能是什么?

分割并重新组装上层提供的数据流,为数据流提供端到端的传输服务。

二。传输层如何区分不同应用程序的数据流?

因为,对应传输层而言,它只需要知道目标主机上的哪个服务程序来响应这个程序,而不需要知道这个服务程序是干什么的。因此,我们只需要能够抽象的表示出来这些应用程序和服务程序即可。我们使用端口号来抽象标识每个网络程序。

传输层的TCP和UDP可以接收来自多个应用程序的数据流,用端口号标识他们,然后把他们送给Internet层处理;

同时TCP和UDP接收来自Internet层的数据包,用端口号区分他们,然后交给不同的应用程序。




因此:在同一IP地址(同一个目标主机)上不同的端口号是两个不同的链接。IP地址和端口号用来唯一的确定网络上数据的目的地。

三。传输层有哪些协议?


传输层的两大协议:TCP(传输控制协议)UDP(用户数据包协议)
TCP是一个可靠的面向链接的协议,UDP是不可靠的或者说无连接的协议。
可以用打电话和发短信来说明这种关系:

UDP就好似发短信,只管发出去,至于对方是不是空号(网络不可到达)能不能收到(丢包)等并不关心。

TCP好像打电话,双方要通话,首先,要确定对方不是开机(网络可以到达),然后要确定是不是没有信号(),然后还需要对方接听(通信链接)。

四。什么是UDP协议?


UDP数据包结构如下图所示

源端口(16)

目标端口(16)

报文长度(16)

校验和(16)

数据(可变)

UDP为应用程序提供的是一种不可靠的、无连接的分组交付,因此,UDP报文可能会出现丢失、乱序、重复、延时等问题。

因为它不提供可靠性,它的开销很小。(开销很小具体指什么?下文揭秘)

五。为什么有了UDP,还需要TCP?

问题4中已经说到,UDP为应用程序提供的是一种无连接、不可靠的分组交付。当网络硬件失效或者负担太重时,数据包可能就会产生丢失、重复、延时、乱序的现象。这些都会导致我们的通信不正常。如果让应用程序来担负差错控制的工作,无疑将给程序员带来许多复杂的工作,于是,我们使用独立的通信协议来保证通信的可靠性是非常必要的。

六。什么是TCP协议?

传输控制协议TCP是一个面向链接的、可靠的通信协议。


1. 在开始传输前,需要进行三次握手建立链接
2. 可靠性:在传输过程中,通信双方的协议模块继续进行通信
3. 通信结束后,通信双方都会使用改进的三次握手来关闭链接


TCP数据包结构如下图

源端口(16)

目标端口(16)

序号(32)

应答号(32)

头长度(4)

保留(6)

编码位(6)

窗口(16)

校验和(16)

紧急(16)

可选项(如果有,0或32)

数据(可变)

**七。怎么理解协议和程序?**

如同我们自定义的应用层协议一样:协议只是给出了一组规范,规定我们应该怎么样(按什么规则)保存数据。

在计算机间传输的永远都是二进制字节码(对于传输层,可以理解为传输的始终是下层的IP数据包),是计算机中的程序通过对这些字节码进行逻辑分析、判断,来控制程序完成差错控制等功能。
至于解析这些字节码的程序,则可以有不同的实现,只要我们按照规则来解析,并作出相应的控制,我们大可以自己写个程序是实现相应功能。

知道了这些后,显然,我们也可以使用前面说的Jpcap,来自己实现一个基于Java的TCP或者UDP协议。可以参考Linux下的Tcp源码。

/net/ipv4/udp.c
/net/ipv4/datagram.c
/net/ipv4/tcp_input.c
/net/ipv4//tcp_output.c
/net/ipv4/tcp.c

八。TCP是否真的有链接?

我们都知道,TCP通过完成三次握手来建立链接的,但是这种连接是面向虚电路的,是物理上不存在的,只是双方的TCP程序,逻辑上的认为建立了这样的链接。

九。链接是如何建立的(逻辑上)?

假设:当我们在主机A上启动一个程序,通过TCP去链接主机B上的9091端口。



整个过程是怎么样的呢?逻辑上我们可以这么理解建立链接的过程:

1.SYN:seq=X;

1.1 A的TCP程序,为这个链接分配一个端口(设为9090)。
1.2 同时逻辑上的将TCP连接的状态设置为:正在连接。(通过在链接状态表中添加一条记录,记录中状态为:正在连接)

猜想:

TCP程序中, 应该有张表来保持链接的状态,其中每个状态应该有:

本机地址(IP加port)、对方地址、链接状态


1.3 同时,随机生成一个初始序列号X,生成一个TCP包,将初始化序列号X设置为TCP中的序列号,发送给主机B。

2.SYN:seq=Y ACK:ack=X+1;

2.1 B上TCP程序收到该数据包,查询9091端口状态,如果可以链接。
2.2 同样的,在逻辑上的将TCP连接的状态设置为:正在连接
2.3 同时,随机生成一个初始化序列号Y,根据接收的序列号X,生成应答号X+1,生成一个TCP包,将序列号和应答号分别设置到TCP包头中,将TCP数据包发给主机A。

3.SYN:seq=X+1 ACK:ack=Y+1.

3.1 A上的TCP程序接收到数据包,查询9090端口状态。
3.2 根据收到的SYN:seq=Y;ACK:ack=X+1; 封装一个TCP包 SYN:seq=x+1;ACK:ack=Y+1;发送给主机B。同时,TCP程序将链接状态表中该条记录状态设置为已连接。
3.3 主机B收到数据包,TCP程序将链接状态表中该条记录状态设置为已连接。

至此,一个TCP链接建立(三次握手)完成。
我们可以看到:
第一:传送的都是IP数据包,其实只是将收到的数据包交给TCP程序处理。
第二:链接状态,只是TCP程序中的一个逻辑状态。

十:所谓的建立TCP链接开销很大,具体是指什么?

从九中,很容易看出。要简历TCP链接,必须进行三次IP数据包的成功传输。

十一:三次握手的目的是什么?

TCP是面向链接的,在面向链接的环境中,开始传输数据之前,在两个中端之间必须先建立一个链接。建立链接的过程可以确保通信双方在发送应用程序数据包之前,都已经准备好了传送和接收数据。并且使通信双方统一了初始化序列号。

十二:TCP如何提供可靠性?

在传输过程中,通信双方的协议模块继续进行通信,从而确保了传输的可靠性。
针对乱序:
在通过三次握手进行链接时,序列号被初始化。在传输过程中,TCP继续使用这个序列号来标记发送的每一个数据段,没传送一个数据段,序列号加一。接收方依据序列号重装收到的数据段。
针对丢包:在传输过程中,接收方收到一个数据段后,会用ACK应答码向发送端回复一个IP包进行应答,确认号ACK用来告诉发送端哪些数据包已经成功接收,发送方对未被应答的报文段提供重传。
针对重复:接收端收到数据段后,查看序列号,如果已经成功接收改数据包,则丢弃后面这个数据段。
针对延时:延时造成的第一个问题,就是数据包达到接收端时乱序。
当延时严重时,接收端一直未收到数据段,则不会回复ACK,发送端认为丢包,重发。

十三:什么是预期确认?什么是肯定确认与重新传输?哪些情况会重传?

1.确认号ACK会告诉发送端哪些数据段已经成功接收,并且确认号会向发送端指出接收端希望收到的下一个序列号。即,确实号ACK为上个数据序列号+1,这种机制称为预期确认


2.为了提高效率,我们在发送端,将数据段保存在缓冲区中,直道发送端收到来自接收端的确认号。这种机制被称为“肯定确认与重新传输”。


3.当发送端在给定时间间隔内收不到那个数据段的应答时,发送端就会重传那个数据段。
情况1:网络延时/环路,数据段丢失
情况2:网络延时,数据段推迟到达
情况3:数据段成功到达,应答因为1.2不能达到。

十四: TCP中,序列号和应答号有哪些作用?

从以上10,11,12中,很明显的可以看到

      1. 依靠序列号重组数据段
      2. 依靠数据包消除网络中的重复包
      3. 依靠序列号和应答号进行差错重传,提高了TCP的可靠性

十六:为什么需要窗口技术?

前面我们已经说了,TCP的可靠性,是通过预期确认来实现的。即发送方发送一个数据段后,需要得到对方的确认后,才会发送下一个数据段。
因此,假设一个数据段大小为64KB(IP包最大值),一次发送和确认需要的时间为500MS,则,1S内,只能传送128KB的数据,如果带宽为1M,显然很浪费带宽。为了充分利用带宽,我们使用窗口技术。滑动窗口允许发送方在收到接收方的确认之前发送多个数据段。(窗口大小决定了在收到确认前可以发送的数据段数量)

十七:如何实现流量控制?

窗口数决定了当前传输的最大流量。当我们在传输过程中,通信双方可以根据网络条件动态协商窗口大小,调整窗口大小时,即可实现流量控制。(在TCP的每个确认中,除了ACK外,还包括一个窗口通知)

十八:UDP的开销很小,具体是指什么?

1.因为UDP是无连接的。在传输数据之前,不需要进行复杂的三次握手来建立连接。
2.在传输数据时,没有协议间通信流量(确认信号),也不需要浪费不必要的处理时间(接收确认信号再发一下)。
3;传输结束后,也不用再用改进的三次握手来端口连接。

十九:UDP数据包、TCP数据包大小如何确认?


    1. 无论TCP还是UDP数据包,都需要交给Internet层封装为IP包,而一个IP包,包头中的长度位为16位,所以IP包最大为2的16方,即65535(64KB还需要减去各种包头长度)。

    2. TCP因为面向流,且可以凭借序列号对大文件进行分段和重组,因此,TCP可以用来传输较大的文件。而UDP,如果要传输大于64KB的数据,则需要自己在应用层进行差错控制。

    3. 为了提高传输效率和减少网络通信量(协议间的通信),TCP也会一次传输足够多的数据。

    4. 因为MTU的存在,TCP包和UDP包不是越大越好。(在路由中分包,在接收端重组,加大路由与接收端负担,增大丢包概率。分组丢失,整个数据包重传。)

二十:UDP适用哪些环境?TCP适用哪些环境?

适合UDP的环境:
1.在高效可靠的网络环境中(不需要考虑网络不好导致的丢包、乱序、延时、重复等问题),因为UDP是无连接的服务,不用消耗不必要的网络资源(TCP中的协议间通信)和处理时间(预期确认需要的时间),从而效率要高的多。
2.在轻权通信中,当需要传输的数据量很小(可以装在一个IP数据包内)时。如果我们使用TCP协议,那么,先建立连接,一共需要发送3个IP数据包,然后数据传输,1个IP数据包,产生一个确认信号的IP包,然后关闭连接,需要传输5个IP数据包。使用TCP协议IP包的利用率为1/10。而使用UDP,只需要发送一个IP数据包。哪怕丢包(服务不成功),也可重新申请服务(重传)。

注:而且无论UDP还是TCP,传输的都是IP数据包。当网络环境不好导致丢包时,无论TCP还是UDP都会丢包,这是没有区别的。(如果考虑发送丢包,那么TCP效率更低),只是使用TCP,当连接建立成功后,TCP程序会进行可靠性控制。

UDP很适合这种客户机向服务器传送简单服务请求的环境。此类应用层协议包括TFTP , SNMP , DNS ,DHCP等。
3.在 对实时性要求很强的通信中:在诸如实时视频直播等对实时性要求很高的环境中,从而允许一定量的丢包的情况下(直播比赛,前面丢失的包,重传出来已经意义不大了),UDP更适合。(可以根据具体需要通过应用层协议提供可靠性,不用像TCP那么严格。)

适合TCP协议的环境:

当网络硬件失效或者负担太重时,数据包可能就会产生丢失、重复、延时、乱序的现象。这些都会导致我们的通信不正常的时候。如果让应用程序来担负差错控制的工作,无疑将给程序员带来许多复杂的工作,于是,我们使用独立的通信协议来保证通信的可靠性是非常必要的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP/IP传输层,你懂多少? 的相关文章

  • 计算机网络——传输层

    一 传输层概述 传输层功能 完成主机进程 主机进程之间的报文传输 传输层是真正的端对端的通信 传输层协议在端主机上运行 路由器一般没有传输层 传输层从主机层面上对网络层采取相应补救措施 可以提供更高质量的数据传输能力 传输层独立于网络设备
  • IP地址、子网掩码、默认网关和DNS服务器之间的联系与区别

    文章目录 1 IP地址 2 子网掩码 3 默认网关 4 DNS服务器 1 IP地址 IP 是32位二进制数据 通常以十进制表示 并以 分隔 IP 地址是一种逻辑地址 用来标识网络中一个个主机 IP 有唯一性 指的是公网地址 即每台机器的 I
  • 实训八 利用三层交换机实现不同VLAN间通信

    原理 在交换网络中 通过VLAN对一个物理网络进行了逻辑划分 不同的VLAN之间是无法直接访问的 必须通过三层的路由设备进行连接 一般利用路由器或三层交换机来实现不同VLAN之间的互相访问 三层交换机和路由器具备网络层的功能 能够根据数据的
  • 计算机网络-应用层协议2(FTP)

    1 文件传输协议 FTP 原理 如图所示 FTP工作原理如下 用户或主机通过FTP用户接口与FTP客户进程交互 该用户首先提供远程主机的主机名 使本地主机的FTP客户进程建立一个到远程FTP服务器进程的TCP连接 紧接着该用户提供用户标识和
  • 交换机自学习和转发帧

    交换机自学习和转发帧 主机A给主机B发送帧 首先假设已经通过arp协议得到主机B的MAC地址 当交换机1收到该帧后将源MAC地址和接口登记 然后在帧交换表中查到目的MAC地址 没有找到就进行盲目转发 泛洪 交换机2收该帧后 做相同的动作 主
  • 基于ensp的校园无线网络仿真实验

    写在前面 本项目是我们大三的一堂实践课作业内容 之前发过一次但是瞬间反响很好所以怕被抄袭删掉了555 现在成绩也出了尘埃落定发出来和大货分享分享qwq 当然还是仅供学习参考 禁止洗稿噢 摘要 本论文研究了一个基于有线和无线网络的校园网项目的
  • 根据子网掩码算出 IP 地址 的网络号和主机号

    我们如何根据子网掩码算出 IP 地址 的网络号和主机号呢 举个例子 比如 10 100 122 0 24 后面的 24表示就是 255 255 255 0 子网掩码 255 255 255 0 二进制是 11111111 11111111
  • 福禄克DSX2-5000/8000 CH测试结果中为什么标记蓝色“i”?

    我们在使用福禄克线缆测试仪DSX2 5000 CH DSX2 8000 CH的过程中遇见过很多测试结果的测试参数后面标记着蓝色的 i information 而不是失败的红色叉号 也不是Pass的绿色对号 这是因为所选测试限制没有该测试的限
  • HTTP协议(下)

    前面我介绍了什么是HTTP协议 以及HTTP的协议格式 接下来我介绍一下如何使用代码构造出HTTP请求 以及在介绍一下HTTPS 目录 一 通过代码构造HTTP请求 1 基于HTML JS 1 1 基于form表单 1 2 基于ajax 2
  • 计算机网络笔记Part2 物理层(Physical Layer)

    计算机网络笔记Part2 物理层 Physical Layer 一 物理层基本概念 二 数据通信 1 一个数据通信例子 2 相关术语 3 三种通讯方式 4 两种数据传输方式 5 码元 Symbol 波特 Baud 速率 带宽 Band Wi
  • 计算机网络试题

    一 选择题 1 OSI模型与TCP IP模型都具有的层次是 A 会话层 网络层和物理层 B 表示层 会话层和数据链路层 C 网络层 传输层和应用层 D 表示层 数据链路层和物理层 2 对于计算机网络体系结构 下列关于第N层和第N 1层的关系
  • HTTP报文结构

    1 URL HTTP使用统一资源定位符 URL 协议 主机 端口 路径 2 HTTP 3 HTTP请求报文 请求行 首部 空行 主体 客户端发送一个HTTP请求到服务器的请求报文如下 1 请求行 方法 URL 空行 协议的版本 中间空格隔开
  • 计算机网络 网络层——IP数据报 详记

    IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成 首部的前一部分是固定长度 共 20 字节 是所有 IP 数据报必须具有的 在首部的固定部分的后面是一些可选字段 其长度是可变的 IP数据报首部的固定部分中的各字段 版本 占4位
  • 计算机网络物理层概述

    物理层 一 物理层基本概念 用于物理层协议常被称为物理层规程 物理层有四个特性 1 机械特性 指明接口所用接线器的形状和尺寸 引脚数目和排列 固定和锁定装置等 平时常见的各种规格的插件都有严格的标准化规定 2 电器特性 指明在接口电缆的各条
  • 计算机网络(自顶向下方法)中的PoP

    目录 前言 问题 解决 前言 在读 计算机网络 自顶向下方法 时 看到在讲网络结构的时候提到过PoP 但是其中有一句话始终不理解 不通顺 上网搜索也没发现相关解释文章 因此 在我把这个问题解决后 就写下了这篇文章 希望可以帮助到其他人 问题
  • 计算机网络复习资料

    一 题型 选择题 包括单选和多选 共30分 其中单选每题1分 计20分 多选每题2分 计10分 简答题 每题5分 共20分 分析计算题 共40分 共4题 论述题 本题10分 共1题 二 考试大纲 人工智能 主 计科 补 1 概述 1 互联网
  • 计算机网络 | 物理层下 传输媒介、信道复用技术,带宽接入技术

    文章目录 3 物理层下面的传输媒介 3 1 导引型传输媒介 3 2 非导引型传输媒介 4 信道复用技术 5 数字传输系统 5 1 旧的数字系统 5 2 新数字系统 6 带宽接入技
  • 计算机网络基础知识——OSI七层模型

    OSI 七层模型是计算机网络体系结构中的一个重要概念 它由七个层次组成 每一层都有其特定的功能和作用 这个模型最初是由 ISO 国际标准化组织 提出的 用于描述计算机网络中不同层次之间的交互方式 虽然 OSI 模型是一个理论模型 但是在实际
  • 2023 全球网络黑客常用攻击方法 Top10_top10攻击

    近几年 借助互联网产业发展的东风 网络黑产也迎来更加巅峰的状态 不论是从攻击效率 组织规模 亦或是收益变现能力 都在一天天变的成熟完善 根据艾瑞咨询 2020 年发布的 现代网络诈骗分析报告 全国黑产从业者已经超过 40 万人 依托其从事网
  • 【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么挖洞致富的?

    19岁 很多人正是上大学 仍伸手向父母要生活费的年纪 可有一位 00 后阿根廷少年 Santiago Lopez 靠自学成才 赚取了 100 万美元 折合人民币约 670 万元 的 Bug 赏金 成为世界上第一个白帽黑客的百万富翁 美元 少

随机推荐

  • sony芯片 camera pcb layout注意事项

    PCB Layout Check List CCM尽可能使用PSRR gt 65DdB 的LDO 如果使用DC DC 应远离cmos芯片 DC DC下面尽量不要布线 用于电源芯片的电容 电感 离电源管脚越近越好 用于CMOS IC的电容 电
  • 开放原子开源基金会为白金、黄金、白银捐赠人授牌,CSDN荣获黄金捐赠人

    7月28日 以 软件定义世界 开源共筑未来 为主题的2022开放原子全球开源峰会开幕式在北京举行 开幕式上 为开放原子开源基金会白金 黄金 白银捐赠人授牌 以上排名不分先后 致敬各位捐赠人的无私奉献 对所有捐赠企业积极履行企业社会责任 贡献
  • Birdwatching 【Gym - 102501K】

    题目链接 抗疫期间 在家读如此长的题目容易烦躁hh 于是我就帮大伙读了 有N个点 M条边的无向图 我们给出图P是图G的一个衍生图 图G中的点和边图P中都有 但是图P中可能存在一些多余边 怎么说呢 就是图G中有a gt b gt c这样的边
  • 大话算法之动态规划——初探

    对于动态规划 之前学习过了 但是总感觉理解不深刻 今天正好讲道动态规划算法 感觉有了一些新的认识和看法 打算详细的写下来 一是帮助自己理清 二是希望给刚刚接触的ACMer一个简明的理解思路吧 大话算法之动态规划 初探 一 引例 数塔问题 之
  • Spring是如何创建bean创建对象的

    一 Spring是如何创建bean创建对象的 比如有以下两个service实例 Component orderService public class OrderService Component userService public cl
  • 开发代码规范

    一 编程规约 一 命名风格 1 强制 代码中的命名均不能以下划线或美元符号开始 也不能以下划线或美元符号结束 反例 name name name name name name 2 强制 所有编程相关的命名严禁使用拼音与英文混合的方式 更不允
  • Diffusion Models Beat GANs on Image Synthesis 论文笔记

    前言 生成模型主要分为两类方法 一种是基于GAN模型的生成方法 另外一种是基于对数似然模型 例如VAE DDPM等 GAN方法在FID Inception Score IS Precision等指标上取得不错的效果 但是在生成图片的多样性上
  • sar命令详解

    在使用UNIX操作系统的过程中 我们常常会用到各种各样的问题 比如系统运行速度 突然变慢 系统容易死机或者主机所带的终端常出现死机 这时我们常常猜测 是硬盘空间太小 还是内存不足 I O出现瓶颈 或者是系统的核心参数出了问 题 这时 我们应
  • 泛型<编程>:可识别联合(Discriminated Unions)(1)

    泛型 lt 编程 gt 可识别联合 Discriminated Unions 1 Andrei Alexandrescu 相信我 不管粗看上去怎么样 如果你想要的是关于编程的文章 你算来对地方了 这里讨论的不是怎样去识别一个联合 这个泛型编
  • 一文讲透机器学习超参数调优!

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 本文的主题 机器学习建模的超参数调优 开局一张图 文章很长 建议直接收藏 一 什么是机器学习超参数 机器学习超参数是在开始学习过程之前设置值的参数 而不是通过训练得到
  • C++学习笔记------指针的注意事项

    指针使用时 注意事项 定义指针先初始化 如果不能确定指针指向 指向0 nullptr 地址 如果指针没有指向 不能使用 运算符 指针也不能偏移 使用指针时 先判断 判断指针是否为空 再使用 指针操作字符串时 不能修改字符串的值 字符串在常量
  • 【Java8】Guava——Splitter

    Splitter Guava 提供了 Joiner 类用于将多个对象拼接成字符串 如果我们需要一个反向的操作 就要用到 Splitter 类 Splitter 能够将一个字符串按照指定的分隔符拆分成可迭代遍历的字符串集 简单实例 Split
  • ARM LDR/STR指令学习

    S3C2440A datasheet上关于这两条指令的说明如下 SINGLE DATA TRANSFER LDR STR The single data transfer instructions are used to load or s
  • iOS16新特性:实时活动-在锁屏界面实时更新APP消息

    简介 之前在 iOS16新特性 灵动岛适配开发与到家业务场景结合的探索实践 里介绍了iOS16新的特性 实时更新 Live Activity 中灵动岛的适配流程 但其实除了灵动岛的展示样式 Live Activity还有一种非常实用的应用场
  • leetcode 647. 回文子串

    2023 8 27 本题依旧是用dp算法来做 但是dp数组的定义和一般的dp题不太一样 一般是题目要求什么 dp数组就定义为什么 本题定义的是一个二维bool型数组dp dp i j 的含义为 字符串s在下标为 i j 中的子串是否为回文串
  • APP开发的上线流程

    APP的使用已经非常普及 对于企业来说通过APP可以加强和客户的沟通 展现最新的产品和服务 随着APP应用商店对用户隐私的重视 APP的上线规则比以前更加复杂 甚至出现APP需要反复修改数十次才能上架的问题 今天和大家分享APP的上线流程和
  • ArrayDeque简介说明

    转自 ArrayDeque简介说明 下文笔者讲述ArrayDeque简介说明 ArrayDeque简介 ArrayDeque是Deque接口的一种实现 依赖于可变数组来实现的 ArrayDeque没有容量限制 可根据需求自动进行扩容 Arr
  • java的后台分页代码实现

    int size Integer parseInt String valueOf paramMap get rows 每页显示条数 int page Integer parseInt String valueOf paramMap get
  • 做国际期货主账户最需要关注什么?

    做内盘也好 外盘也好 合法正规的公司平台很重要 很重要 很重要 不合法不正规 手续费再便宜 保证金再便宜 都是浮云 只有资金安全才是取得胜利并且带走胜利的唯一前提 目前分仓软件像智星和金智慧软件都是比较正规的当然要小心界面做得很像的假盘 所
  • TCP/IP传输层,你懂多少?

    转自 http java mzd iteye com blog 1007577 你所不知道的传输层 题记 23页的文档上 满满当当的写满了笔记 纸质的东西 始终害怕丢失 还是选择把它总结到博客上来 PS 老规矩 列出可能遇到的20个问题 如