wireshark学习——9.tcp窗口

本文介绍了TCP协议中的滑动窗口机制,包括TCP数据包的Seq、Ack、Len字段的理解,以及TCP窗口如何用于检测数据丢失和调整传输速率。通过案例分析了窗口大小的调整过程,包括零窗口和保活数据包在通信中的作用,帮助读者深入理解TCP的可靠性和流量控制。
摘要由CSDN通过智能技术生成

步骤2:TCP知识的补遗
在讲解TCP窗口的知识之前,关于TCP数据包还有几个知识点是需要补充讲解一下的。这里我们打开实验文件Lab9-1.pcap:

Alt text

在之前的课程中我曾经讲过,TCP提供有序的数据传输,因此每个数据段都要标上一个序列号,也就是Seq的值。这样当接收方收到乱序的数据包时,就可以根据这个序列号进行重新排序了。这里我们并不需要知道Seq的起始值是怎么计算的,但是必须要理解这个值的增长方式。如上图所示,1号数据包Seq的值为4131969696,这个数据包的长度,也就是Len的值为1448,那么2号数据包的Seq的值就应当是4131969696+1448=4131971144,与2号数据包的Seq值是吻合的。可见,Seq的值是依据上一个数据包的Seq值加上长度得来的。这个Seq值是由这两个数据包的发送方,也就是10.32.106.159维护的。

由于TCP是双向的,一个连接中的双方都可以是数据的发送方,所以双方各自都会维护一个Seq值,上图中的1、2、4、5号数据包有自己的Seq值,而3号和6号数据包的Seq值则是由10.32.106.62维护的。3号数据包Seq的值为735349110,Len的值为0,所以6号数据包的Seq值依旧是735349110。

这里需要注意的是,比如1号数据包的Len的值为1448,但是这个长度是不包括TCP头的长度的。而3号和6号数据包的Len的值尽管为0,但其实这里面是包含有TCP头的。TCP头部包含有丰富的信息,因此大家千万不要误以为Len的值是0就没有意义,其实Len是0的情况还是很常见的。

然后我们回过头再看一下2号数据包。这里它发送了“Seq=4131971144,Len=1448”的数据包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WY_记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值