设TCP的拥塞窗口长度置为18KB。网络发生了超时,TCP使用慢启动、加速递减和拥塞避免。设报文段的最大长度为1KB,试问:拥塞窗口从最小值经过6次变化后是多少?
时间: 2024-04-28 09:24:09 浏览: 37
根据TCP的慢启动算法,拥塞窗口长度会指数级增长,直到达到一个阈值,然后进入拥塞避免阶段,每经过一个往返时间RTT,拥塞窗口长度增加1个报文段的长度。当发生超时时,拥塞窗口长度会被减半,然后重新开始慢启动过程。
假设在超时之前,拥塞窗口长度已经达到了阈值,即12KB。超时发生后,拥塞窗口长度会被减半到6KB,然后重新开始慢启动过程。第一轮慢启动,拥塞窗口长度增加1KB,变为7KB。第二轮慢启动,拥塞窗口长度增加2KB,变为9KB。第三轮慢启动,拥塞窗口长度增加4KB,变为13KB。此时拥塞窗口长度已经超过了阈值,进入拥塞避免阶段。第一轮拥塞避免,拥塞窗口长度增加1KB,变为14KB。第二轮拥塞避免,拥塞窗口长度增加1KB,变为15KB。第三轮拥塞避免,拥塞窗口长度增加1KB,变为16KB。因为拥塞窗口长度已经超过了18KB,所以不再增加,最终拥塞窗口长度为16KB。
因此,拥塞窗口从最小值经过6次变化后是16KB。
相关问题
设TCP拥塞控制的阈值的初始值为8个报文段,当拥塞窗口上升到12时网络发生超时(TCP采用慢启动和拥塞避免)。试问第1至24轮次传输的拥塞窗口大小各为多少?
TCP的拥塞控制算法主要包括慢启动和拥塞避免两种算法。当TCP连接建立时,拥塞窗口的初始值为MSS(Maximum Segment Size)大小,即一个报文段的最大长度。在慢启动阶段,每经过一轮传输,拥塞窗口大小就会翻倍,直到拥塞窗口大小达到一个阈值。在拥塞避免阶段,每经过一轮传输,拥塞窗口大小就会增加一个MSS,直到再次出现网络拥塞。当网络出现拥塞时,TCP会执行拥塞避免算法,将拥塞窗口大小减半,然后重新进入慢启动阶段。
根据题目的描述,TCP拥塞控制的阈值的初始值为8个报文段,即拥塞窗口大小为8个MSS。在第12轮次传输时网络发生超时,说明此时网络已经出现了拥塞。因此,TCP会执行拥塞避免算法,将拥塞窗口大小设置为阈值的初始值,即8个MSS,并重新进入慢启动阶段。
根据TCP拥塞控制算法的规则,在慢启动阶段,拥塞窗口大小每经过一轮传输就会翻倍。因此,在第1到8轮次传输中,拥塞窗口大小分别为1、2、4、8、16、32、64、128个MSS。在第9到12轮次传输中,拥塞窗口大小分别为8、9、10、11个MSS。在第13到16轮次传输中,拥塞窗口大小分别为12、13、14、15个MSS。在第17到20轮次传输中,拥塞窗口大小分别为16、17、18、19个MSS。在第21到24轮次传输中,拥塞窗口大小分别为20、21、22、23个MSS。
因此,第1至24轮次传输的拥塞窗口大小分别为:1、2、4、8、16、32、64、128、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23。
设TCP的ssthresh的初始值为8(单位为报文段)。当拥塞窗口上升到12时网络发生了超时,TCP使用慢开始和拥塞避免。试分别求出第1次到第15次传输的各拥塞窗口大小。你能说明拥塞控制窗口每一次变化的原因吗?
根据题意,可以得到以下信息:
初始 ssthresh = 8
在第 1 次传输时,使用慢启动,cwnd = 1,ssthresh 不变
在第 2 次传输时,使用慢启动,cwnd = 2,ssthresh 不变
在第 3 次传输时,使用慢启动,cwnd = 4,ssthresh 不变
在第 4 次传输时,使用慢启动,cwnd = 8,ssthresh 不变
在第 5 次传输时,使用拥塞避免,cwnd = 9,ssthresh = 8
在第 6 次传输时,使用拥塞避免,cwnd = 10,ssthresh = 8
在第 7 次传输时,使用拥塞避免,cwnd = 11,ssthresh = 8
在第 8 次传输时,使用拥塞避免,cwnd = 12,ssthresh = 8
在第 9 次传输时,发生超时,ssthresh = cwnd / 2 = 6,cwnd = 1,重新进入慢启动
在第 10 次传输时,使用慢启动,cwnd = 2,ssthresh = 6
在第 11 次传输时,使用慢启动,cwnd = 4,ssthresh = 6
在第 12 次传输时,使用慢启动,cwnd = 6,ssthresh = 6
在第 13 次传输时,使用拥塞避免,cwnd = 7,ssthresh = 6
在第 14 次传输时,使用拥塞避免,cwnd = 8,ssthresh = 6
在第 15 次传输时,使用拥塞避免,cwnd = 9,ssthresh = 6
每当发生超时,ssthresh 被设置为当前拥塞窗口的一半(cwnd/2),同时将拥塞窗口的大小设置为1,然后重新进入慢启动;每当拥塞窗口大小达到ssthresh时,拥塞控制算法就从慢启动模式转换为拥塞避免模式,此时每经过一个往返时间RTT,cwnd增加1,直到再次发生超时或者接收到3个冗余ACK,此时ssthresh被设置为当前拥塞窗口的一半,并将cwnd设置为ssthresh,然后重新进入慢启动。