TCP RENO MSS,发送方窗口,阈值和接收方窗口

时间:2018-07-20 13:08:09

标签: tcp ip transport

我正在努力了解发送方从接收方收到三重重复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

1 个答案:

答案 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