TCP协议(滑动窗口 | 流量控制 | 拥塞控制)

本文介绍了TCP协议中的滑动窗口机制,通过发送缓冲区和接收缓冲区来提高传输效率,并讨论了在确认应答丢失和数据包丢失情况下的处理策略。接着讲解了流量控制,通过接收端反馈接收能力来限制发送速度,保持双方速率一致。最后,阐述了拥塞控制的重要性,通过慢启动和拥塞阈值来动态调整发送速率,确保网络整体的稳定性。
摘要由CSDN通过智能技术生成

滑动窗口

在上一篇博客里确认应答策略, 对每一个发送的数据段, 都要给一个ACK确认应答. 收到ACK后再发送下一个数据段. 这样做有一个比较大的缺点, 就是性能较差. 尤其是数据往返的时间较长的时候.

举个例子
张三早上要去买早餐,他要吃一笼包子,两个烤面筋,还有一杯奶茶
那么他怎么买呢??
1)他先买包子,等包子弄好了,再去买面筋,面筋弄好了,再去买奶茶
这就相当于一发一收
2)他点完包子,立马转身去点面筋,然后再去点奶茶
这样我们三份数据的时间就合并在一起了,那么最终等多久,就看那个东西做好最慢,时间被重叠在一起,效率就相对提高了

确认应答机制保证了TCP的可靠性,那么在保证可靠性的基础上,还希望效率尽可能的提高~~
这时我们就引入滑动窗口
什么意思呢?
        我们发送数据没必要等到收到ACK在发送,直接就发下一条数据,但是也不能无休止的发送(如果无休止的发送数据,那么可靠性就无法保证),所以我们就批量发一组数据,等待这一组的ACK,再去批量发下一组,我们发送这一组数据到底发送多少,这组数据的数据量,就叫"窗口大小"。

在这里插入图片描述窗口里就代表我们要发送的四组数据,同时等待这四组数据的ACK
图中返回的ACK是(下一个是2001)就说明2001之前的数据已经到达了, 也就是说第一个窗口(1001~2001)到达了,于是就可以发送(5001 ~ 6001)
窗口范围内的数据就是已经发出去的数据,同时也是要等待ACK的数据,随着对方ACK的到达,要等待数据也随之就发生变化,同时也会发送新的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值