文章目錄
- RTO(Retransmission Timeout)
- 注意
客戶端想與服務端建立 TCP 連接時,先發送 SYN 報文,在這之后,如果客戶端遲遲收不到服務端的 SYN+ACK 報文,就會觸發「超時重傳」機制,重新發送 SYN 報文,而且重傳的 SYN 報文中序列號是不變的
下圖以 Linux(6.14.7) TCP 第一次握手報文丟失為例,其中 tcp_syn_retries 參數值為 2
RTO(Retransmission Timeout)
觸發 TCP 超時重傳機制的時間
注意
- Linux(6.14.7) RTO 初始值為 1s
- Linux(6.14.7) RTO 最大值為 120s
/* Linux Kernel 6.14.7 tcp.h */
#define TCP_RTO_MAX ((unsigned)(120*HZ))
#define TCP_RTO_MIN ((unsigned)(HZ/5))#define TCP_TIMEOUT_INIT ((unsigned)(1*HZ)) /* RFC6298 2.1 initial RTO value */
#define TCP_TIMEOUT_FALLBACK ((unsigned)(3*HZ)) /* RFC 1122 initial RTO value, now* used as a fallback RTO for the* initial data transmission if no* valid RTT sample has been acquired,* most likely due to retrans in 3WHS.*/