TCP 的拥塞控制主要由慢启动、拥塞避免、快重传和快恢复四部分组成。
Google 开源了新的拥塞控制算法 BBR,在实际应用中体验优于传统算法,但还没有得到普及。现在互联网上大部分的设备还是传统算法,因此传统的 TCP 的拥塞控制还有很有学习的必要的。
作为一个可靠的连接,TCP 应该尽力使得数据送达,即当有数据报丢失的话,TCP 应该有某种机制来得知丢失的部分并重传。这个机制就是滑动窗口。
滑动窗口是 TCP 连接中重要的一个部分,TCP 连接的两端通过滑动窗口来动态的调节数据的发送与接收,以保证数据被正确接收而不会因为过多的发送而被淹没;还可以在数据报丢失的时候进行重传,以尽力使数据送达。
TCP 为一个连接定义了 11 种状态,并且规定了如何基于当前的状态及在该状态下接收的分节从一个状态转换到另一个状态。
TCP 协议提供了可靠的传输,但是网络是不可靠的,TCP 也无法保证数据一定会被对方接收,这是不可能做到的。TCP 实际提供的是数据的可靠递送或故障的可靠通知。
建立一个 TCP 连接需要进行三次握手,而终止一个 TCP 连接需要进行四次挥手。这篇博客就介绍一下关于 TCP 的三次握手与四次挥手与其他一些信息吧。