TCP之滑动窗口,流量控制和拥塞控制

滑动窗口

是在可靠性的前提下,让我们进一步提高传输效率。
在这里插入图片描述
所谓窗口:就是不等待ack的情况下,批量发送的最大数据量,就叫:窗口大小。上面的窗口大小就是4000。
滑动:窗口范围表示哪些数据在等待ack,随着一个ack的到达,就立刻发送下一个数据,等待范围就逐渐向后滑动。
在这里插入图片描述
窗口越大,传输效率越高,但也不能无限大。

在这过程中,假如出现丢包怎么办?
在这里插入图片描述

在这过程中,假如数据报丢了怎么办?
在这里插入图片描述

流量控制

窗口大小不能无限大,传输速率太快,接收方可能处理不过来。

所以此处会根据接收方的处理能力来方向制衡发送方的发送速率(窗口大小)。

接收方的处理能力即通过接受缓冲区的“剩余空间大小”来决定发送方的速率。

在这里插入图片描述
这里就是在应答ack中加入了一个窗口大小,就是缓冲区的剩余空间大小,但发送发不一定会按这个发小发送数据,数据只会比这个数据小或者等于,但不会大于。当窗口为0,发送方就会定时发送一个探测报文,因为缓冲区的数据很肯能被取走一部分,就可以接受新的数据了。
在这里插入图片描述
有人会问:而发第一个数据时没有ack返回窗口大小吧,这里由拥塞控制决定,后面后提到。

还有就是当数据包出现部分丢失的时候,还是按照没有缺失的情况下来返回窗口剩余大小。
在这里插入图片描述

拥塞控制

拥塞控制和流量控制共同决定发送方的窗口大小。
考虑了网络传输路径上的拥堵程度,由于不好衡量传输路径的拥堵情况,只能不断反复试探,逐渐试探出应该用多大的窗口。
在这里插入图片描述
为啥要动态变化呢?

网络拥堵也是瞬息万变的,要随时根据网络实际状态进行动态调整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章