Linux

linux 上的初始 SYN 超時

  • November 25, 2020

建立 TCP 連接時,發送的第一個 SYN 數據包的超時時間是多少?如果沒有收到應答,則重新發送另一個 SYN 數據包(最多net.ipv4.tcp_syn_retries),超時時間大約加倍。我想知道如何檢查或更改初始超時。

在現代版本中,初始重傳超時設置在核心中被硬編碼為 1 秒:https ://elixir.bootlin.com/linux/v5.9.11/source/include/net/tcp.h#L142

#define TCP_TIMEOUT_INIT ((unsigned)(1*HZ)) /* RFC6298 2.1 initial RTO value

該常量在tcp.chttps ://elixir.bootlin.com/linux/v5.9/source/net/ipv4/tcp.c#L420 中引用

如果不重新編譯核心就無法更改它:如何調整初始 TCP 重新傳輸超時?(老版本好像是3秒)

引用自:https://serverfault.com/questions/1043758