时间就是性命。
无端的空耗别人的时间,
其实是无异于谋财害命的。
--- 鲁迅 ---
1 拥塞控制
尽管TCP拥有滑动窗口这一高效的数据传输机制,能够确保在对方接收能力下将大量数据可靠发送,但在通信初期若盲目发送大量数据,仍有可能触发网络问题。
当网络出现问题时,通过滑动窗口等机制是没有办法解决的。网络拥塞就是一种情况,网络中需要处理的数据太多了,导致十分堵塞,此时就需要拥塞控制进行管理!那么如何识别出来时网络出现问题呢?当出现了大量报文的丢失问题时,就可以大概率确定网络出现了严重的拥塞问题!
考虑到网络中众多计算机的交互,当前网络状态可能已经处于相对拥堵的状况。在不明确当前网络状况的前提下,大量数据的急速发送很可能加剧网络拥堵,造成“雪上加霜”的效应。
为此,TCP采用了慢启动机制,它首先发送少量的数据包,以此作为“探针”来感知和评估当前网络的拥堵程度。在此基础上,TCP会根据网络的实际状况,逐步调整数据传输的速度,确保数据传输的平稳与高效。这样才能更高效的进行处理! 此处引入一个概念:拥塞窗口。
- 每次发送数据包的时候, 将拥塞窗口和接收端主机反馈的窗口大小做比较, 取较小的值作为实际发送的窗口。
通过拥塞窗口,可以保证传输的数据不会超出网络的承载能力,也能保证不会超出接收端的接收能力! 网络的状态是浮动的,拥塞窗口的大小也是浮动的!那么主机如何得知拥塞窗口的接近大小是多大呢?这个大小是通过尝试出来的,是一个经验数据!