tcp发送窗口(滑动窗口)、拥塞窗口

TCP发送窗口拥塞窗口试题分析

题目一:

来源2015年408计算机综合

试题链接:https://www.nowcoder.com/questionTerminal/3241441c88f04ab58585a187716055d3
 

主机甲和主机乙新建一个TCP 连接,甲的拥塞控制初始阈值为 32KB,甲向乙始终以 MSS=1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16KB 接收缓存,并对每个数据段进行确认, 忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发送超时 的情况下,经过 4 个 RTT 后,甲的发送窗口是(A)。

A.1KB

B.8KB

C.16KB

D.32KB

发送窗口大小取决于min(rwnd,cwnd).

其中rwnd是接收缓存的空余大小,表示接收方还能接收多少。
cwnd就是我们常常画慢增长曲线,拥塞避免曲线等等分析的纵轴数值。

这里,其实很明确的告诉我们接收缓存只进不出,因此在不断减小。可是我们有一个思维惯性是喜欢思考有趣的部分,画cwnd的变化,自以为这个分析好了问题就手到擒来了,切不可忽视rwnd。这里就是个例子。

cwnd从1MSS = 1KB开始,一个RTT后变为2KB,两个RTT后变为4KB,3RTT后变为8KB,4个RTT后变为16KB

同时呢,接收缓由16KB→15KB→13KB→9KB→1KB16KB→15KB→13KB→9KB→1KB

  通知窗口值,代表接收缓存剩余值(KB) 拥塞窗口大小(KB) 发送窗口大小(KB)
初始          16           1                1
经过第一个RTT        16-1=15           2           min(15, 2)=2
经过第二个RTT        15-2=13           4           min(13,4)=4
经过第三个RTT        13-4=9           8           min(9,8)=8
经过第四个RTT         9-8=1          16  通知接收缓存只有1KB了,发送窗口取min(1, 16)=1KB

经过一个RTT,第二次发送时,rwnd = 15KB,cwnd = 2KB,发送窗口取较小值:2KB

经过两个RTT,第三次发送时,rwnd = 13KB,cwnd = 4KB,发送窗口取较小值:4KB

经过三个RTT,第四次发送时,rwnd = 9KB,cwnd = 8KB,发送窗口取较小值:8KB

经过四个RTT,第五次发送时,rwnd = 1KB,cwnd = 16KB,发送窗口取较小值:1KB

当然第五次发送之后接受窗口就满了,主机甲就会周期性的只发送一个字节数据的报文段,一旦主机乙的缓存有空,确认报文段就会出现非0的通知窗口值,当然这里是题目要求,主机乙的数据不被取走,仅仅为了计算,并非实际情况。

猜你喜欢

转载自blog.csdn.net/wangrenhaioylj/article/details/113097756