对TCP ,GBN,SR的一点理解与看法

对TCP ,GBN,SR的一点理解总结

看到这个题目应该就知道这是大学生写的,这篇博客的写作是因为我在复习《计算机网络自顶向下方法》时对TCP进行的部分总结。看过这本书的人应该都知道,书中在介绍TCP使用的流水线可靠数据传输之前,先介绍了两种能够保证可靠数据传输的模型:GBN 、 SR

对于GBN与SR的讲解

参考:https://blog.csdn.net/qq_22238021/article/details/80325285

rdt 3.0 协议性能分析

假设有两台主机,分别位于美国西海岸和东海岸,它们之间的往返传播实验 RTT 大约为 30ms,假定它们通过一条速率 R 为 1Gbps 的信道相连。包括首部字段和数据的分组长 L 为 1000 bytes(8000 bits),所以发送一个分组进入 1Gbps 链路实际所需时间是:

t_trans = L / R = (8000 bit/pkt) / (10^9 bit/s) = 8 μs/pkt

所以,如果发送端在 t = 0 时刻开始发送分组,则在 8μs 后,该分组全部进入了发送端信道。接着该分组经过 15ms 的旅途到达接收端,即该分组的最后 1 bit 在时刻 t = RTT/2 + L/R = 15.008ms 时到达接收端。假设 ACK 分组很小,可以忽略其发送时间,且接收端一旦收到一个数据分组的最后 1bit 后立刻发送 ACK,则 ACK 在时刻 t = RTT + L/R = 30.008ms 时回送到发送端。也就是说,经过 30.008ms 后发送端才可以发送下一个分组。

利用率为:发送端实际忙于将发送比特送进信道的那部分时间与发送时间之比。则

U_sender = (L/R) / (RTT + L/R) = 0.008 / 30.008 = 0.00027

可以看到,利用率极其低下,这是不可容忍的,所以我们需要改进性能。

流水线技术

流水线技术是解决这种特殊性能问题的一个非常简单的方法:不使用停等方式运行,允许发送端发送多个分组而无需等待确认。

虽然流水线可以直线提升 rdt 3.0 协议的性能,但是也会带来如下的影响:

  • 必须增加序号的范围。因为每个传输中的分组(不计算重传的)必须有一个唯一的序号,而且也许有多个在输送中尚未确认的分组
  • 协议的发送端和接收端也必须缓存多个分组。发送方最低限度应当能缓冲那些已发送但没有确认的分组,接收方或许也需要缓存那些已正确接收的分组
  • 所需序号范围和对缓冲的要求取决于数据传输协议如何处理丢失、损坏和延时过大的分组。

解决流水线的差错恢复有两种基本方法,分别为 回退 N 步(Go-Back-N, GBN)选择重传(Selective Repeat, SR)

GBN 协议(回退 N 步协议)

在 GBN 协议中,允许发送方发送多个分组(当有多个分组可用时)而不需等待确认,但它也受限于在流水线中未确认的分组数不能超过某个最大允许数 N。

上图显示了发送方看到的 GBN 协议的序号范围。将**基序号(base)定义为最早的未确认分组的序号,将下一个序号(nextseqnum࿰

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值