TCP规范中四种算法

1、慢启动
慢启动重启
除了调节新连接的传输速度,TCP 还实现了 SSR(Slow-Start Restart,慢启动重 启)机制。这种机制会在连接空闲一定时间后重置连接的拥塞窗口。道理很简单, 在连接空闲的同时,网络状况也可能发生了变化,为了避免拥塞,理应将拥塞窗 口重置回“安全的”默认值。
毫无疑问,SSR 对于那些会出现突发空闲的长周期 TCP 连接(比如 HTTP 的 keep-alive 连接)有很大的影响。因此,我们建议在服务器上禁用 SSR。在 Linux 平台,可以通过如下命令来检查和禁用 SSR:
• $> sysctl net.ipv4.tcp_slow_start_after_idle
• $> sysctl -w net.ipv4.tcp_slow_start_after_idle=0

2、拥塞预防
a)流量控制窗口(rwnd)和拥塞控制窗口(cwnd)的值多大合适呢?实际上,计 算过程很简单。首先,假设 cwnd 和 rwnd 的最小值为 16 KB,往返时间为 100 ms:
16 KB=(16×1024×8)
131 072 bit 0.1 s
1 310 720 bit/s = 1 310 720 1 000 000
= 131072 bit
= 1 310 720 bit/s
= 1.31 Mbit/s
不管发送端和接收端的实际带宽多大,这个 TCP 连接的数据传输速率不会超过 1.31 Mbit/s !想提高吞吐量,要么增大最小窗口值,要么减少往返时间。
b)窗口大小的协商与调节由网络栈自动控制,应该会自动调整。但尽管如此,窗 口大小有时候仍然是 TCP 性能的限制因素。如果你怎么也想不通在高速连接的客户 端与服务器之间,实际传输速度只有可用带宽的几分之一,那窗口大小很可能就是 罪魁祸首。要么因为某一饱和端通告的接收窗口很小,要么因为网络拥堵和丢包导 致拥塞窗口重置,更可能因为流量增长过快导致对连接吞吐量施加了限制。

3、快速重发
快速恢复

Leave a Reply

Your email address will not be published. Required fields are marked *