专栏首页xcywt关于滑动窗口协议的笔记

关于滑动窗口协议的笔记

滑动窗口协议

还可以看我的另一篇博客,有更详细的介绍:http://www.cnblogs.com/xcywt/p/8401523.html

属于TCP协议中的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。 该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发送一个分组就停下来等待确认,所以该协议可以加速数据的传输,提高网络吞吐量。 TCP利用一个滑动的窗口来告诉发送端对它所发送的数据能够提供多大的缓冲区,由16位定义,最大为65535个字节。 滑动窗口本质上是描述接收方的TCO数据报缓冲区大小的数据,发送方根据这个数据来计算自己最多能发送多长的数据。这个窗口大小为0时,发送方将停止发送数据。启动坚持定时器,等待这个窗口变成非0. ( 持续定时器,收到对方的零窗口时,就启动该定时器,时间到了就发送一个字节的探测报文,对方此时会回应自身的窗口大小,如果仍然为0,就重置定时器,继续等待。 )

窗口合拢:当窗口左边界向右靠近时,这种现象发生在数据被发送方确认时。 窗口张开:窗口的右边界向右移动的时候。这种现象发生在接收端处理的数据的时候。 窗口收缩:窗口右边界向左移动时,这种现象不常发生。 TCP采用可变大小的滑动窗口大小是为了取得更好的性能。 TCP规定的窗口大小是由接收方通告的,通过采取慢启动和拥塞避免算法等机制来使带宽和性能取得最佳 传递效率问题: 单个发送字节,单个确认,会使网络中增加很多不必要的报文(比如需要20字节的IP头,20字节的TCP头)。所以我们的原则是一次尽可能多发几个字节,或者窗口空余较多的时候通知发送方一次发送多个字节: Nagle算法: 1)若发送应用程序要把发送的数据逐个字节的送到TCP的发送缓存,则发送方就把第一个字节先发送出去,其余的先缓存起来 2)当第一个字节得到确认时(也得到了网络情况和对方窗口大小),再把缓冲区的剩余字节组成合适大小的报文发送出去。 3)当到达的数据已达到发送窗口大小的一半或达到报文段的最大长度时就立即发送一个报文段(对于达到最大长度的情况:做法是让接受方等待一段时间,或者接收方获得足够的空间容纳一个报文段或接收方缓存有一半缓存时再通知发送方发送数据)

关于拥塞控制可以看这个:http://www.cnblogs.com/xcywt/p/8414189.html 拥塞控制 就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。 常用的方法就是: 1)慢启动、拥塞控制 2)快重传、快恢复

发送方维护一个拥塞窗口(cwd)和慢启动门限(ssthresh)。 cwd开始为1,确认一次之后变成2,成指数增加。直到到达ssthresh,改为拥塞避免算法。 之后若发生拥堵,cwd变为1,ssthresh减半,又进入慢启动。 若连续收到3次某个包的ack,则进入快启动,快重传。 ssthresh减半,cwd减为ssthresh减半后是数值,执行拥塞避免算法(高起点,线性增长) 拥塞避免算法(让窗口缓慢增长,每经过一个往返时间RTT就把发送方的cwd加1,线性缓慢增长)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    先补充一个知识: 1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组 停止等...

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP/IP详解 卷1 第二十章 TCP的成块数据流

    1.停止等待协议:是tcp保证传输可靠的重要途径,“停止等待”就是指发送完一个分组就停止发送,等待对方确认之后,才能继续发送下一个分组

    xcywt
  • TCP是怎么样保持可靠性的?

    计算方式:在数据传输的过程中,将发送的数据段都当做一个16位的整数。将这些整数加起来。并且前面的进位不能丢弃,补在后面,最后取反,得到校验和。  发送方:在发送...

    WindSun
  • AR---MR----VR 你能分清吗?

    到底VR、AR、MR说的是什么鬼呢? 1 什么是VR? 虚拟现实(Virtual Reality,简称VR) 是利用电脑模拟产生一个三维空间的虚拟世界,提供使用...

    昱良
  • 智能硬件“双雄”:先跑的VR何故被智能音箱反超?

    【摘要】虚拟现实(VR)设备曾被众多科技巨头寄予厚望,如今增长势头却被智能音箱远远甩在后面。智能音箱行业2019年的表现,足以用炫目来形容。

    用户2908108

扫码关注云+社区

领取腾讯云代金券