主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为6KB,甲向乙始终以MSS=1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配16KB接收缓存,并对每个数据段进 行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功 时刻起,未发生超时的情况下,经过4个RTT后,甲的发送窗口是多少?写出计算过程。
时间: 2024-02-11 13:17:54 浏览: 90
根据TCP的拥塞控制算法,发送方的拥塞窗口大小受到拥塞控制阈值和接收方窗口大小的限制,其中拥塞控制阈值是根据网络拥塞程度动态调整的,初始值为6KB。因为乙的接收缓存大小为16KB,所以乙的窗口大小为16KB。甲的发送窗口大小取决于拥塞窗口和乙的窗口大小,初始情况下,拥塞窗口大小为1KB,因为一直有数据发送,所以在4个RTT后,拥塞窗口大小将达到最大值。
首先计算每个RTT内甲可以发送的数据量:1KB * 2^4 = 16KB。
在第一个RTT中,甲发送1KB的数据,乙立即确认,甲可以增加拥塞窗口大小到2KB。
在第二个RTT中,甲发送2KB的数据,乙立即确认,甲可以增加拥塞窗口大小到4KB。
在第三个RTT中,甲发送4KB的数据,乙立即确认,甲可以增加拥塞窗口大小到8KB。
在第四个RTT中,甲发送8KB的数据,乙立即确认,甲可以增加拥塞窗口大小到16KB。
因此,经过4个RTT后,甲的发送窗口大小为16KB。
相关问题
主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为6KB,甲向乙始终以MSS=1KB
在TCP连接建立后,主机甲和主机乙会进行三次握手,建立起连接后,甲向乙发送数据的时候,会根据乙返回的确认信息来动态调整自己的拥塞窗口大小。在这个例子中,甲的拥塞控制初始阈值为6KB,意味着它最初发送数据时最多只能发送6个MSS的数据量,也就是6KB。当甲发送了6个MSS的数据之后,就会进入慢启动状态,此时甲的拥塞窗口大小会以指数级别增加,每当收到一个乙的确认信息,拥塞窗口大小就会增加一个MSS的大小,也就是1KB。当拥塞窗口大小达到拥塞控制阈值时,甲就会进入拥塞避免状态,此时拥塞窗口大小会以线性级别增加,每当收到一个乙的确认信息,拥塞窗口大小就会增加1/MSS。如果发生拥塞,甲就会进入快速重传和快速恢复状态,此时拥塞窗口大小会被减半,然后重新进入拥塞避免状态。
主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为6KB,甲向乙始终以MSS=1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配16KB接收缓存,并对每个数据段进 行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功 时刻起,未发生超时的情况下,经过4个RTT后,甲的发送窗口是多少?写出计算过程。
根据题意,可知甲的初始拥塞窗口大小为6KB,每个数据段大小为1KB,乙的接收缓存为16KB,因此乙最多能够接收并确认16个数据段。
在TCP连接建立后,甲开始发送数据,由于乙立即进行确认,因此甲的拥塞窗口大小会不断增加,直到达到一个平衡点。在此平衡点上,甲发送的数据正好能够被乙接收并确认,而不会造成拥塞。
假设在第i个RTT时,甲的发送窗口大小为w(i),且此时已经发送了n个数据段,则有:
w(i) = min(CongestionWindow, ReceiveWindow) - n * MSS
其中,CongestionWindow为拥塞窗口大小,ReceiveWindow为乙的接收窗口大小。
由于乙的接收缓存大小为16KB,因此:
ReceiveWindow = 16KB / MSS = 16
而甲的拥塞窗口大小在慢启动状态下以指数级别增加,每当收到一个乙的确认信息,就会增加一个MSS的大小,因此:
在第1个RTT中,甲发送了6个数据段,乙立即确认,甲的拥塞窗口大小变为12KB(初始值6KB加上6个MSS)。
在第2个RTT中,甲发送了12个数据段,乙立即确认,甲的拥塞窗口大小变为18KB(拥塞窗口大小增加6个MSS)。
在第3个RTT中,甲发送了18个数据段,乙立即确认,甲的拥塞窗口大小变为24KB(拥塞窗口大小增加6个MSS)。
在第4个RTT中,甲发送了24个数据段,乙立即确认,甲的拥塞窗口大小变为30KB(拥塞窗口大小增加6个MSS)。
因此,经过4个RTT后,甲的发送窗口大小为30KB。
阅读全文