正常的rtt在16-32ms之间,
tcp数据包超时
重传需要200ms以上,
1. 发送方什么都没有收到, 默认参数sysctl -a | grep tcp_retries1,默认3次,即600ms
2.发送方有收到接收方的ack,快速重传机制,实现了另外的一种丢包评定标准,即如果我连续收到3次dup ACK,发送方就认为这个seq的包丢失了,立刻进行重传
Tcp连接超时
- 第 1 次发送 SYN 报文后等待 1s(2 的 0 次幂),如果超时,则重试
- 第 2 次发送后等待 2s(2 的 1 次幂),如果超时,则重试
- 第 3 次发送后等待 4s(2 的 2 次幂),如果超时,则重试
- 第 4 次发送后等待 8s(2 的 3 次幂),如果超时,则重试
- 第 5 次发送后等待 16s(2 的 4 次幂),如果超时,则重试
- 第 6 次发送后等待 32s(2 的 5 次幂),如果超时,则重试
- 第 7 次发送后等待 64s(2 的 6 次幂),如果超时,则超时失败
上面的结果刚好是 127 秒。也就是说 Linux 内核在尝试建立 TCP 连接时,最多会尝试 7 次。