本文主要是介绍【Android面试八股文】谈谈你对TCP 流量控制与拥塞控制的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、流量控制
- 1.1 流量控制的概念
- 1.2 滑动窗口
- 1.3 零窗口
- 二 、拥塞控制
- 2.1 拥塞控制的概念
- 2.2 慢启动
- 2.3 拥塞避免
- 2.4 快重传与快恢复
- 2.4.1 快重传
- 2.4.2 快恢复
- 三、总结
TCP的拥塞控制和流量控制虽然采取的动作很相似,但
拥塞控制
与网络的拥堵情况相关联,而
流量控制
与接收方的缓存状态相关联,是针对完全不同的问题而采取的措施 。
拥塞控制
与流量控制
从不同的方面保证TCP协议可靠性。
一、流量控制
1.1 流量控制的概念
双方在通信的时候,发送方的速率
与接收方的速率
是不一定相等
,如果发送方的发送速率太快
,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区
里。
如果缓存区
存满了发送方还在疯狂着发送数据,接收方
只能把收到的数据包丢掉
。
而 流量控制
就是控制发送者的发送速度从而使接收者来得及接收,防止丢失数据包的。
假设没有流量控制,发送端根据自己的实际情况发送数据,如果发送的速度太快,导致接收端的接收缓冲区很快填满了,此时发送端如果继续发送数据,接收端处理不过来,这时接收端就会把本来应该接收的数据丢弃,这会触发发送端的重发机制,从而导致网络流量的无端浪费。
1.2 滑动窗口
在TCP头中有一个Window
字段,这个字段代表了接收端
告诉发送端
自己**缓冲区还有多少剩余空间可以接收数据。
这篇关于【Android面试八股文】谈谈你对TCP 流量控制与拥塞控制的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!