GBN,SR,TCP协议实现可靠数据传输的原理

第一题

假设主机A向主机B发送5个连续的报文段,主机B对每个报文段进行确认,其中第二个报文段丢失,其余报文段以及重传的第二个报文段均被主机B正确接收,主机A正确接收所有ACK报文段;报文段从1开始依次连续编号(即1、2、3……),主机A的超时时间足够长。请回答下列问题:
1).如果分别采用GBN、SR和TCP协议,则对应这三个协议,主机A分别总共发了多少个报文段?主机B分别总共发送了多少个ACK?它们的序号是什么?(针对3个协议分别给出解答)
2).如果对上述三个协议,超时时间比5RTT长得多,那么哪个协议将在最短的时间间隔内成功交付5个报文段?

(1)当采用GBN协议时,由GBN协议可得:
主机A共发送了9个报文段,首先发送报文段1,2,3,4,5,当报文2丢失后,重发报文段2,3,4,5共9个;
主机B共发送8个ACK,首先发送ACK1,2丢失,因此对于3,4,5都发送ACK1共4个ACK1,后对于重传的2,3,4,5,则发送ACK2,ACK3,ACK4,ACK5,一共8个ACK。
当采用SR协议时,由SR协议可得:
主机A共发送了6个报文段,首先发送报文段1,2,3,4,5,当报文2丢失后,重发报文段2共6个报文段;
主机B共发送5个ACK,首先发送ACK1,ACK3,ACK4,ACK5,对于重发的报文段2,则发送ACK2共5个ACK。
当采用TCP协议时,由TCP协议可得:
主机A共发送了6个报文段,首先发送报文段1,2,3,4,5,当报文2丢失后,重发报文段2共6个报文段;
主机B共发送5个ACK,首先发送4个ACK2,重传后发送一个ACK6一共5个ACK。
(2)采用TCP协议可在最短的时间间隔内成功交付5个报文段,因为TCP有快速重传机制,即在未超时情况下就开始重传丢失的2号报文段。

第二题

假设A、B两个端系统通过唯一的一条8Mbps链路连接(M=10^6),该链路的双向传播时延是150ms;A通过一个TCP连接向B发送一个大文件,B的接收缓存足够大,每个TCP段最大段长度(MSS)为1500字节,TCP采用Reno版本,且总是处于拥塞避免阶段(即忽略慢启动)。请回答下列问题:
1).该TCP连接能够获得的最大窗口尺寸(以TCP段数计)是多少?
2).该TCP连接的平均窗口尺寸(以TCP段数计)和平均吞吐量(以bps计)是多少?
3).该TCP连接的拥塞窗口从发生丢包到恢复到最大窗口尺寸要经历多长时间?

(1)当发送速率最大只能等于链路带宽时才能不发生丢包,因此由公式可得:
W * MSS / RTT = 8Mbps
W = 8 * 10^6 * 150 * 10^(-3) / (1500 * 8) = 100
因此TCP连接能够获得的最大窗口尺寸是100
(2)由公式可得:
平均窗口尺寸为:We = 0.75 * W,即:
We = 0.75 * 100 = 75,
平均吞吐率为:
We * MSS / RTT = 75 * (1500 * 8) / 150 * 10^(-3) = 6 * 10^6bps = 6Mbps
(3)因恢复过程中每个RTT窗口尺寸增加1个MSS,因此总共需要时间为:
T = 100 / 2 * RTT = 50 * 150 * 10^(-3) = 7.5s
转载:https://blog.csdn.net/qq_37514135/article/details/82733651

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值