我正在努力了解发送方从接收方收到三重重复ACK时会发生什么,以及发生超时时会发生什么。
到目前为止,我的理解是:
在三重重复ACK上:(1)将阈值设置为发送者窗口大小的一半,(2)将接收器窗口大小设置为1 MSS
除了重新传输外,我还不确定超时发生了什么。
我正在处理下面列出的此问题。如果有人可以帮助我确认发生三重ACK以及何时发生超时的情况,将不胜感激。
考虑TCP连接的初始阈值为24 kB,并且 最大分段大小(MSS)为4 kB。收件人广告窗口是 40 kB。假设除 收到三重重复ACK(对于先前发送的相同ACK) 数据)上的数字7传输和传输超时 数字12。第一次传输尝试是数字0。找到大小 前18个传输的发送方拥塞窗口的百分比 尝试(发送方的TCP实现是0-17) 使用慢启动拥塞控制方案
Trans. # Sender wnd. (kb) Threshold (kb) Receiver wnd. (kb)
0 4 24 40
1 8 24 40
2 16 24 40
3 24 24 40
4 28 24 40
5 32 24 40
6 4 16 40
7 8 16 40
8 12 16 40
9 16 16 40
10 20 16 40
11 24 16 40
12 40
13 40
14 40
15 40
16 40
17 40
答案 0 :(得分:0)
对于将来的读者, TCP Reno 的正确答案如下:
在三重重复ACK上,将阈值设置为发送方窗口大小的一半,并且发送方窗口大小减半。
超时后,阈值将设置为发送方窗口大小的一半,并且发送方窗口将重置为1 MSS并使用慢速启动。
对于 TCP Tahoe:
在三重重复ACK上,将阈值发送到发送方窗口大小的一半,并且将发送方窗口大小重置为1 MSS。然后使用慢启动,直到发送方达到阈值。
在超时后,Tahoe和Reno执行相同的功能。
正确答案:(对于TCP Reno)
Trans. # Sender wnd. (kb) Threshold (kb) Receiver wnd. (kb)
0 4 24 40
1 8 24 40
2 16 24 40
3 24 24 40
4 28 24 40
5 32 24 40
6 36 24 40
7 40 24 40 <- tripple duplicate ack after attempting to transmit
8 20 20 40
9 24 20 40
10 28 20 40
11 32 20 40
12 36 20 40 <- timeout after attempting to transmit
13 4 18 40
14 8 18 40
15 16 18 40
16 18 18 40
17 22 18 40