首页 > 试题广场 >

拥塞窗口大小控制

[单选题]
客户端C和服务器S之间建立一个TCP连接,该连接总是以1KB的最大段长发送TCP段,客户端C有足够的数据要发送。当拥塞窗口为16KB的时候发生超时,如果接下来的4个RTT往返时间内的TCP段的传输是成功的,那么当第4个RTT时间内发送的所有TCP段都得到了ACK时,拥塞窗口大小是:
  • 7KB
  • 8KB
  • 9KB
  • 16KB
拥塞控制算法,先快开始,幂增长,再进行拥塞避免
16KB超时,阈值变为8KB,客户端从1KB开始穿(执行快开始算法)
1RTT 结束,1KB->2KB
2RTT 结束,2KB->4KB
3RTT 结束,4KB->8KB(到达阈值,执行拥塞避免算法)
4RTT 结束,8KB->9KB
结果C
发表于 2017-04-03 18:42:18 回复(0)
更多回答
Tahoe版本不是已经抛弃不用了么?Reno版本是从sstresh/2处直接加法增大,求解释
发表于 2016-03-28 13:28:56 回复(5)
16KB超时,阈值变为8KB,客户端从1KB开始穿(执行快开始算法)
1RTT 结束,1KB->2KB
2RTT 结束,2KB->4KB
3RTT 结束,4KB->8KB(到达阈值,执行拥塞避免算法)
4RTT 结束,8KB->9KB
结果C
编辑于 2016-02-26 21:21:41 回复(1)
拥塞避免和慢启动
当拥塞发生时(超时或收到重复确认),慢启动门限ssthresh被设置为当前拥塞窗口cwnd大小(题目为16)的一半,即8。同时cwnd重置为1。新的数据被接收,则cwnd增加,规则为ssthresh之前,慢启动,即cwnd指数增长;到达ssthresh之后,拥塞避免,即cwnd加1


发表于 2015-09-09 10:02:47 回复(4)
16kb开始拥塞那么阈值调整为8kb,1-2-4-8(快开始),8-9(拥塞避免),选c
发表于 2015-09-09 10:52:58 回复(4)
题目中没有明确说明,发生拥塞之后,是继续慢开始策略还是快恢复+快重传策略,因为现在内核使用的TCP使用的是后者,所以感觉这道题有点小问题

发表于 2016-04-28 14:39:15 回复(2)
考察 P234 图5-25 TCP的拥塞控制方法
发表于 2023-10-18 11:05:24 回复(0)
当有重传情况发生, 无论是超时重传还是快速重传, ssthresh会按下式改变:
  • ssthresh=max (在外数据值/2, 2*SMSS)
如果出现重传情况, TCP会认为操作窗口超出了网络传输能力范围。这时会将慢启动阈值(ssthresh)减小至当前窗口大小的一半(但不小于2*SMSS), 从而减小最优窗口估计值。这样通常会导致ssthresh减小, 但也有可能会使之增大。
发表于 2021-06-21 20:59:08 回复(0)
有没有大牛知道。。。。。。。慢启动阈值是怎么恢复的,貌似一直看它减半减半啊,这能合理吗
发表于 2021-04-23 00:33:13 回复(1)

拥塞窗口(cwnd)和通告窗口(awnd)

实际的发送窗口:W=min(cwnd,awnd)。两者之间较小的。

慢启动:

  • 初始化:cwnd=1mss;
  • 以后每收到一个ack,cwnd *= 2;
  • 相当于指数增大

拥塞避免:    

  • 当cwnd超过ssthresh(慢启动阈值)时,每收到一个ack,cwnd+=1;
  • 相当于加法增大

超时重传:

  • cwnd越来越大,导致有包丢失。这时需要重传数据。
  • ssthresh=max(cwnd/2, 2) 这个的意思是cwnd/2 但是至少是2个报文段
  • cwnd=1,重新进入慢启动

快速重传:

  • 发送方收到3次重复的ack,就立即重传数据。
  • ssthresh=max(cwnd/2, 2);

快速恢复:

  • cwnd=ssthresh+3MSS;
  • 每收到重复的ack,cwnd+=1MSS;
当收到新的ack时,cwnd重设为ssthresh,并退出快速恢复阶段。cwnd=ssthresh,然后进入加法增大(拥塞避免)

重传有两种情况,题目这里说的应该是超时重传的情况。
发表于 2020-08-20 16:04:48 回复(0)
不辩,讲道理应该是12
发表于 2018-06-15 09:07:51 回复(0)
目前使用的是TCP Reno算法,即快重传+快恢复。而慢开始算法只是在TCP连接建立时和网络出现超时时才使用。 这道题说的是出现了超时而不是丢失,所以应该使用慢开始算法。
发表于 2018-04-01 23:53:49 回复(0)
第一个rtt结束1变成2
发表于 2017-09-06 07:36:55 回复(0)
发表于 2017-05-30 13:02:36 回复(0)
16KB超时,阈值变为8KB,客户端从1KB开始穿(执行快开始算法)
1RTT 结束,1KB->2KB
2RTT 结束,2KB->4KB
3RTT 结束,4KB->8KB(到达阈值,执行拥塞避免算法)
4RTT 结束,8KB->9KB
发表于 2016-09-24 17:46:41 回复(0)
发表于 2016-08-09 10:41:59 回复(0)
这个讲得挺好的。
TCP的拥塞控制 - sicofield的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/sicofield/article/details/9708383
编辑于 2016-03-16 17:24:11 回复(0)