Windows:初期値3秒、再送回数は5回
RFC6298(Linuxも準拠)
G = Clock Granularity(クロック粒度) - HardwareとKernel依存 K = 4 RTT = ACKが返るまでの時間(Window-Size毎に1Packetサンプリング) SRTT = RTT RTTV = RTT/2 RTO = SRTT + max(G, K * RTT)
G = 100 K = 4 RTT = 0.3 (300ms) RTO = 0.3 + max(0.01, 4 * 0.3 /2 ) = 0.9 -> 1 (1以下は繰り上げ)
G = Clock Granularity(クロック粒度) - HardwareとKernel依存 K = 4 a = 0.125 = 1/8 b = 0.250 = 1/4 RTT = ACKが返るまでの時間(Window-Size毎に1Packetサンプリング) SRTT = SRTT*(1-a) + a * RTT RTTV = RTTV*(1-b) + b * | SRTT - RTT | RTO = SRTT + max(G, K * RTT)
RTO = RTO*2
/usr/include/linux/tcp.h