我很难理解当发送方从接收方接收到三重ACK时会发生什么,以及超时发生时会发生什么。
我到目前为止的理解是:
对于三重ACK:(1)将阈值设置为发送方窗口大小的一半,(2)将接收方窗口大小设置为1 MSS。
除了重传之外,我不太确定超时发生时会发生什么。
我正在处理下面列出的这个问题。如果有人能帮我确认当三重ACK发生时和超时发生时会发生什么,我们将不胜感激。
假设TCP连接的初始阈值为24 kB,最大段大小(MSS)为4 kB。接收器广告的窗口是40 kB。假设所有的传输尝试都是成功的,除了在数字7传输上接收到的三重ACK (对于相同的先前传输的数据)和在传输编号12处的超时。第一次传输尝试是0。如果发送方的TCP实现使用慢启动拥塞控制方案,则为前18次传输尝试(编号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发布于 2018-07-25 12:42:50
对于未来读者来说,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 40https://stackoverflow.com/questions/51443259
复制相似问题