- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP序列号和确认号例解
前言
文档撰写背景为学习“科来网络分析系统6.9技术交流版”使用,及TCP抓包分析后,根据《TCP序列号和确认号详解》验证后,所写。
背景知识:
1、序列号和确认号的简介及作用
TCP 协议工作在OSI 的传输层,是一种可靠的面向连接的数据流协议,TCP 之所以可靠,
是因为它保证了传送数据包的顺序。顺序是用一个序列号来保证的。响应包内也包括一个序
列号,表示接收方准备好这个序列号的包。在TCP 传送一个数据包时,它会把这个数据包
放入重发队列中,同时启动计时器,如果收到了关于这个包的确认信息,便将此数据包从队
列中删除,如果在计时器超时的时候仍然没有收到确认信息,则需要重新发送该数据包。另
外,TCP 通过数据分段中的序列号来保证所有传输的数据可以按照正常的顺序进行重组,
从而保障数据传输的完整。
2、TCP 的通讯过程
在 TCP 通讯中主要有连接的建立、数据的传输、连接的关闭三个过程!每个过程完成不同
的工作,而且序列号和确认号在每个过程中的变化都是不同的。
软件环境:
操作系统:Windows_XP SP3
TCP收/发包软件:jperf-2.0.2
抓包分析软件:科来网络分析系统6.9技术交流版
实例解释:(客户端IP:192.168.100.61 ; 服务器端IP:192.168.100.81)
1、TCP 建立连接
TCP 建立连接,也就是我们常说的三次握手,它需要三步完成。在TCP 的三次握手中,发送第一个SYN 的一端执行的是主动打开。而接收这个SYN 并发回下一个SYN 的另一端执
行的是被动打开。
这里以客户端向服务器发起连接来说明。
1) 第 1 步:客户端向服务器发送一个同步数据包请求建立连接,该数据包中,初始序列号
(ISN)是客户端随机产生的一个值,确认号是0;
实例序列号:1502870875
实例确认号:0
同步位(SYN):1
2) 第 2 步:服务器收到这个同步请求数据包后,会对客户端进行一个同步确认。这个数据
包中,序列号(ISN)是服务器随机产生的一个值,确认号是客户端的初始序列号+1;
实例序列号:1387324321
实例确认号:1502870876 (客户端的初始序列号+1)
确认位(ACK):1
同步位(SYN):1
3) 第 3 步:客户端收到这个同步确认数据包后,再对服务器进行一个确认。该数据包中,
序列号是上一个同步请求数据包中的确认号值,确认号是服务器的初始序列号+1。
实例序列号:1502870876 (上一个同步请求数据包中的确认号值)
实例确认号:1387324322 (服务器的初始序列号+1)
确认位(ACK):1
2、TCP 传输数据
在 TCP 建立连接后,就可以开始传输数据了。TCP 工作在全双工模式,它可以同时进行双向数据传输。这里为了简化,只使用客户端向服务器发送数据的情况。服务器向客户端发送数据的原理,跟据相关文档,它们是类似的工作过程,这里不再重复说明。
服务器向客户端发送一个数据包后,客户端收到这个数据包后,会向服务器发送一个确认数
据包。TCP的确认是对接收到的数据的最高序号(即收到的数据流中的最后一个序号)表示确认。但返回的确认序号是已收到的数据的最高序加1。也就是说,确认序号表示期望下次上到的第一个数据字节的序号。
传输数据的简要过程如下:
1) 发送数据:客户端向服务器端发送第一个带有数据的数据包,该数据包中的序列号和确认号与建立连接第三步的数据包中的序列号和确认号相同;
实例序列号:1502870876
实例确认号:1387324322
确认位(ACK):1
为提高网络传送效率,发送端可以连续发送多个数据包。序列号为上一个数据包序列号值+数据包大小;确认号为上一个数据包确认序列号。(注:数据包大小为 1460)
实例序列号:1502872336 (上一个数据包序列号值+数据包大小)
实例确认号:1387324322 (上一个数据包确认序列号)
确认位(ACK):1
客户端收到服务器端确认数据包后,再次向服务器端发送带有数据的数据包,该数据包中的序列号为上一个回复数据包中的确认号值,确认号为建立连接第三步的数据包中的确认号值;
实例序列号:1502873796 (上一个回复数据包中的确认号值)
实例确认号:1387324322 (建立连接第三步的数据包中的确认号值)
确认位(ACK):1
2) 确认收到:为提高网络传送效率,接收端不一定在收到一个数据包后就立刻发送一个数据包回复,而可以根据实际情况(如:缓冲区大小、报文段大小
原创力文档


文档评论(0)