📑 题目:26. 什么是 TCP 滑动窗口?
参考解析
在看 TCP 滑动窗口的概念之前,我们先来看看它出现的背景?
将 TCP 与 UDP 这样的简单传输协议区分开来的是,它传输数据的质量。TCP 对于发送数据进行跟踪,这种数据管理需要协议有以下两大关键功能:
- 可靠性:保证数据确实到达目的地。如果未到达,能够发现并重传。
- 数据流控:管理数据的发送速率,以使接收设备不致于过载。
要完成这些任务,整个协议操作是围绕滑动窗口 + 确认机制来进行的。因此,理解了滑动窗口,也就是理解了 TCP 。
那么,到底什么是 TCP 滑动窗口呢?
滑动窗口协议,是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。
TCP 的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据。
可能这么描述之后,胖友会有点懵逼,那么建议看下面三篇文章,耐心~
-
比较易懂的一篇文章。
-
更为详细的一篇文章。
-
知乎上的讨论,重点看「wuxinliulei」和「安静的木小昊」的回答。特别是后者的,回答很生动形象。