TCP的滑动窗口

  • A+
所属分类:思科教程

突然有天,你的土豪朋友要给你邮个床,一个超级大豪华床,别问我为什么,任性!

你特别的感动,然后很高兴拒绝了,原因是你在北京住着一个不到五平米的小隔断,床放不下!

通过一个悲催的小例子,我们知道在邮寄东西时,需要考虑接收方的接收能力,不然东西发过去后,收方无法处理。

数据传输也是这个道理,当发送端在发送数据时,如果不考虑网络的情况,直接发送数据,可能数据包的大小超过接收端的接收能力,这个包会被接收端丢掉,变成弃包。

而这个接收的能力,就是我们今天要学习的滑动窗口。我们先放一张图片:

TCP的滑动窗口

设A向B发送数据。在连接建立时,B告诉A:“我的接收窗口是rwnd=400。”因此,发送方发送窗口不能超过接收方给出的接收窗口的数值。注意,TCP窗口单位是字节,非报文段。再设每一个报文段为100字节,而数据报文段序号的初始值设为1。大写ACK表示首部中的确认位,小写ack表示确认字段的值ack。

图中可以看出,B进行了三次流量控制。第一次把窗口减少到300,第二次又减到了100,最后是0,即不允许发送方再发送数据。这种使发送方暂停发送的状态将持续到主机B重新发出一个新窗口值为止。

只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器。这个概念就到这里,有问题的可以在文章下体温,另外以上为个人的理解,欢迎更正指导!

  • 问答中心
  • 微信小程序扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:53   其中:访客  2   博主  0

    • avatar zykun 3

      签到成功!签到时间:今日的上午10:06:05,每日打卡,生活更精彩哦!

      • avatar yangjingqi 3

        签到成功!签到时间:今日的上午10:06:35,每日打卡,生活更精彩哦!