TOC
TCP 连接过程
TCP 报文格式
TCP 状态机
TCP/IP 四层和 OSI 七层模型
一文读懂 OSI 七层模型与 TCP/IP 四层的区别/联系_osi 七层和 tcp4 层关系_图灵的猫.的博客-CSDN 博客
更多问题
粘包问题
重传机制
滑动窗口
拥塞控制
- 慢启动(Slow Start):当 TCP 连接建立时,发送方将初始拥塞窗口(Congestion Window,CWND)设置为一个较小的值。发送方开始以指数增加的速率发送数据,并且每当收到一个确认(ACK)时,CWND 的大小就会加倍。这样逐渐增加发送速率,直到达到一个阈值。
- 拥塞避免(Congestion Avoidance):一旦发送方的 CWND 达到了一个阈值(拥塞避免阈值,Congestion Avoidance Threshold),发送方就会进入拥塞避免阶段。在拥塞避免阶段,发送方每收到一个 ACK,CWND 的大小就会线性增加,而不是指数增加。这样可以避免发送速率增长过快,引发网络拥塞。
- 快速重传(Fast Retransmit):如果发送方连续收到多个重复的 ACK,表明有一个或多个数据包丢失。在这种情况下,发送方会认为某个数据包丢失,并立即重传该数据包,而不必等待超时。
- 快速恢复(Fast Recovery):当发送方收到重复的 ACK 时,它会将拥塞窗口减半,并设置一个新的阈值。然后,发送方进入快速恢复阶段,在该阶段,发送方每收到一个新的 ACK,拥塞窗口就会增加 1。这样可以更快地恢复发送速率,而不必等待慢启动。
- 超时重传(Timeout Retransmission):如果发送方在一定时间内没有收到 ACK,就会认为数据包丢失,并进行超时重传。在超时重传后,发送方将 CWND 设置为 1,并重新开始慢启动过程。