TCP序列号和确认号详解.pdfVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
美河学习在线 TCP序列号和确认号详解 TCP 序列号和确认号详解 在网络分析中,读懂TCP 序列号和确认号在的变化趋势,可以帮助我们学习TCP 协议以及 排查通讯故障,如通过查看序列号和确认号可以确定数据传输是否乱序。但我在查阅了当前 很多资料后发现,它们大多只简单介绍了 TCP 通讯的过程,并没有对序列号和确认号进行 详细介绍,结合实例的讲解就更没有了。近段时间由于工作的原因,需要对TCP 的序列号 和确认号进行深入学习,下面便是我学习后的一些知识点总结,希望对 TCP 序列号和确认 号感兴趣的朋友有一定帮助。 1. 序列号和确认号的简介及作用 TCP 协议工作在OSI 的传输层,是一种可靠的面向连接的数据流协议,TCP 之所以可靠, 是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。响应包内也包括一个序 列号,表示接收方准备好这个序列号的包。在 TCP 传送一个数据包时,它会把这个数据包 放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队 列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另 外,TCP 通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组, 从而保障数据传输的完整。 2. TCP 的通讯过程 在 TCP 通讯中主要有连接的建立、数据的传输、连接的关闭三个过程!每个过程完成不同 的工作,而且序列号和确认号在每个过程中的变化都是不同的。 2.1 TCP 建立连接 TCP 建立连接,也就是我们常说的三次握手,它需要三步完成。在TCP 的三次握手中,发 送第一个SYN 的一端执行的是主动打开。而接收这个SYN 并发回下一个SYN 的另一端执 行的是被动打开。 这里以客户端向服务器发起连接来说明。 1) 第1 步:客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号 (ISN )是客户端随机产生的一个值,确认号是0 ; 2) 第2 步:服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据 包中,序列号 (ISN )是服务器随机产生的一个值,确认号是客户端的初始序列号+ 1; 3) 第3 步:客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中, 序列号是上一个同步请求数据包中的确认号值,确认号是服务器的初始序列号+1 。 注意:因为一个SYN 将占用一个序号,所以要加 1。 CSNA 网络分析论坛 第 1 页 共 12 页 美河学习在线 TCP序列号和确认号详解 初始序列号 (ISN )随时间而变化的,而且不同的操作系统也会有不同的实现方式,所以每 个连接的初始序列号是不同的。TCP 连接两端,会在建立连接时,交互一些信息,如窗口 大小、MSS 等,以便为接着的数据传输做准备。 RFC793 指出ISN 可以看作是一个32bit 的计数器,每4ms 加 1,这样选择序号的目的在于 防止在网络中被延迟的分组在以后被重复传输,而导致某个连接的一端对它作错误的判断。 2.2 TCP 传输数据 在TCP 建立连接后,就可以开始传输数据了。TCP 工作在全双工模式,它可以同时进行双 向数据传输。这里为了简化,我们只谈服务器向客户端发送数据的情况,而客户端向服务器 发送数据的原理和它是类似的,这里便不重复说明。 服务器向客户端发送一个数据包后,客户端收到这个数据包后,会向服务器发送一个确认数 据包。 传输数据的简要过程如下: 1) 发送数据:服务器向客户端发送一个带有数据的数据包,该数据包中的序列号和确认号 与建立连接第三步的数据包中的序列号和确认号相同; 2) 确认收到:客户端收到该数据包,向服务器发送一个确认数据包,该数据包中,序列号 是为上一个数据包中的确认号值,而确认号为服务器发送的上一个数据包中的序列号+ 所该数据包中所带数据的大小。 数据分段中的序列号可以保证所有传输的数据按照正常的次序进行重组,而且通过确认保证 数据传输的完整性。 2.3 TCP 关闭连接 前面我们提到,建立一个连接需要 3 个步骤,但是关闭一个连接需要经过

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档