我正在玩各种使用Netkit的TCP算法。TCP拥塞窗口大小:奇怪的行为
有两台机器,C1和C2,通过用强制的200ms延迟路由器连接。程序c1正在发送100字节的数据包到c2每个1ms(TCP_NODELAY打开)。 Reno被用作两台机器的拥塞控制。
根据tcpdump,只有前两个数据包立即发送(200字节),然后c1停止发送并等待ACK。接收器的窗口大约是2MSS(MSS = 1460),所以我猜想它是CWND,可以防止发送更多的数据包到c1。
根据Reno规范,初始CWND是1MSS。我是否缺少那些东西?甚至发送1字节的数据包给出相同的图片,发送了2个数据包,然后发送者等待ACK。可能是最初的CWND大小是由初始段大小决定的,而不是MSS?
ip route show cache
显示类似
cache mtu 1500 rtt 361ms rttvar 360ms cwnd 5 advmss 1460 hoplimit 64
我不知道这意味着CWND = 5MSS?
那么,初始窗口大小是由发送的第一个段的大小决定的? – twee 2010-12-13 17:53:02