我正在使用 Netkit 玩各种 TCP 算法。
有两台机器c1和c2由路由器连接,强制延迟为 200 毫秒。c1上的程序每 1ms 向c2发送 100 字节的数据包(TCP_NODELAY 已打开)。Reno 被用作两台机器上的拥塞控制。
根据 tcpdump,只有前 2 个数据包立即发送(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?