计算机网络 第三章: 可靠传输 (图文并茂)

在这里插入图片描述


可靠传输的相关基本概念

使用差错检测技术(例如循环冗余校验CRC),接收方的数据链路层就可检测出帧在传输过程中是否产生了误码(比特差错)。

在这里插入图片描述
数据链路层向其上层提供的服务类型

  • 不可靠传输服务仅仅丢弃有误码的帧,其他什么也不做;
  • 可靠传输服务:通过某种机制实现发送方发送什么,接收方最终就能收到什么

一般情况下,有线链路的误码率比较低。为了减小开销,并不要求数据链路层向其上层提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

无线链路易受干扰,误码率比较高,因此要求数据链路层必须向其上层提供可靠传输服务

在这里插入图片描述


传输差错的分类

误码(比特差错)

分组丢失

丢了
在这里插入图片描述

分组失序

分组到达顺序与发送顺序不同
在这里插入图片描述

在这里插入图片描述

分组重复

重复了
在这里插入图片描述

在这里插入图片描述


各自出现的位置

在这里插入图片描述

可靠传输服务并不局限于数据链路层,其他各层均可选择实现可靠传输。

可靠传输的实现比较复杂,开销比较大,是否使用可靠传输 取决于应用需求

在这里插入图片描述




可靠传输的实现机制:停止-等待协议

停止-等待协议的实现原理

在这里插入图片描述

发送方每发送完一个数据分组后, 并不能立刻将该数据从发送缓存中删除, 因为之后有可能需要重传该数据分组. 只有收到该分组的确认分组后, 才能将该数据从发送缓存中删除.

如果出现 数据分组/确认分组/否认分组 丢失的情况, 停止-等待协议就无法实现可靠传输了

在这里插入图片描述
下图是加入了 RTO 机制:
在这里插入图片描述
在这里插入图片描述

下图是数据分组加入了编号:
在这里插入图片描述

下图是确认分组介加了编号:
在这里插入图片描述

注意事项

使用超时重传机制后,就可以不使用否认机制了,这样可使协议实现起来更加简单。但是,如果点对点链路的误码率较高,使用否认机制可以使发送方在超时计时器超时前就尽快重传

为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的特性,只需1个比特编序号即可,即序号0和序号1。

为了让发送方能够判断所收到的确认分组是否是重复的,需要给确认分组编号,所用比特数量与数据分组所用比特数量一样

  • 数据链路层一般不会出现确认分组迟到的情况,因此在数据链路层实现停止-等待协议可以不用给确认分组编号

给超时计时器设置的超时重传时间RTO应当仔细选择,一般将RTO设置为略大于收发双方的平均往返时间RTT

  • 在数据链路层,点对点的往返时间RTT比较固定,RTO就比较好设定。
  • 在运输层,由于端到端往返时间非常不确定,设置合适的超时重传时间RTO有时并不容易。

停止-等待协议属于自动请求重传(Automatic Repeat reQuest,ARQ)协议。即重传的请求是发送方自动进行的,而不是接收方请求发送方重传某个误码的数据分组。


可靠传输的实现机制:停止-等待协议的信道利用率

在这里插入图片描述
在这里插入图片描述
若出现超时重传,对于传送有用的数据信息来说,信道利用率还要降低。

在往返时间RTT相对较大的情况下,为了提高信道利用率,收发双方不适合采用停止-等待协议,而可以选择使用回退N帧(GBN)协议或选择重传(SR)协议。


可靠传输的实现机制:回退N帧协议

停止-等待协议 信道利用率低

在这里插入图片描述
采用流水线:

在这里插入图片描述

在使用流水线传输方式时,发送方不能无限制地连续发送数据分组,否则可能会导致网络中的路由器或接收方来不及处理这些数据分组,进而导致数据分组的丢失,这实际上是对网络资源的浪费。

回退N帧协议采用流水线传输方式,并且利用发送窗口来限制发送方连续发送数据分组的数量,这属于连续ARQ协议

在这里插入图片描述

采用n个比特给分组编序号,序号范围是 0 ~ (2^n−1)。本例假设采用3个比特给分组编序号,则序号范围是0~7。

发送方需要维护一个发送窗口W_T ,在未收到接收方确认分组的情况下,发送方可将序号落入W_T内的所有数据分组连续发送出去。

  • 采用n个比特给分组编序号,则W_T的取值范围是 1<W_T≤(2^n−1)。本例假设采用3个比特给分组编序号,则W_T的取值范围是 2~7,本例取W_T=5。

在这里插入图片描述


接收方需要维护一个接收窗口W_R ,只有正确到达接收方(无误码)且序号落入W_R内的数据分组才被接收方接收。

  • W_R的取值只能是1,这一点与停止-等待协议是相同的。

在这里插入图片描述

接收方每正确收到一个序号落入接收窗口的数据分组,就将接收窗口向前滑动一个位置,这样就有一个新的序号落入接收窗口。与此同时,接收方还要给发送方发送针对该数据分组的确认分组。

发送方每收到一个按序确认的确认分组,就将发送窗口向前滑动一个位置,这样就有一个新的序号落入发送窗口,序号落入发送窗口内的数据分组可继续被发送。

在回退N帧协议的工作过程中,发送方的发送窗口和接收方的接收窗口按上述规则不断向前滑动。因此,这类协议又称为 滑动窗口协议

在无传输差错的情况下,回退N帧协议的信道利用率比停止-等待协议的信道利用率有显著提高。提高的程度取决于发送窗口的大小。


超时重传、回退N帧的情况

一个数据分组的差错就可能引起大量数据分组的重传。

在信道质量较差(容易出现误码)的情况下,回退N帧协议的信道利用率并不比停止-等待协议的信道利用率高。

回退N帧协议的接收方采用累积确认方式。

  • 接收方不必对收到的每一个数据分组都发送一个确认分组,而是可以在收到几个序号连续的数据分组后,对按序到达的最后一个数据分组发送确认分组。

  • 接收方何时发送累积确认分组,由具体实现决定。

  • 确认分组ACKn表明序号为n及之前的所有数据分组都已正确接收。

  • 累积确认的优点

    • 减少向网络中注入确认分组的数量。
    • 即使确认分组丢失,也可能不必重传数据分组。
  • 累积确认的缺点

    • 不能向发送方及时准确地反映出接收方已正确接收的所有数据分组的数量。

总结

在这里插入图片描述

回退N帧协议在流水线传输的基础上,利用发送窗口来限制发送方连续发送数据分组的数量,是一种连续ARQ协议

在回退N帧协议的工作过程中,发送窗口和接收窗口不断向前滑动,因此这类协议又称为滑动窗口协议

在信道质量较差(容易出现误码)的情况下,回退N帧协议的信道利用率并不比停止-等待协议的信道利用率高。


可靠传输的实现机制:选择重传协议

滑动窗口的角度对比停止-等待协议、回退N帧协议和选择重传协议

在这里插入图片描述

在这里插入图片描述

为了使发送方仅重传出现差错的数据分组,接收方不再采用累积确认,而需要对每一个正确接收的数据分组进行逐一确认

在这里插入图片描述

在这里插入图片描述


习题


【2018年 题36】 主机甲采用停-等协议向主机乙发送数据,数据传输速率是3kbps,单向传播延时是200ms,忽略确认帧的传输延时。当信道利用率等于40%时,数据帧的长度为( )。

A. 240比特
B. 400比特
C. 480比特
D. 800比特


【2009年 题35】 数据链路层使用后退N帧(GBN)协议,发送方已经发送了编号0~7的帧。当计时器超时时,若发送方只收到了0、2、3号帧的确认,则发送方需要重发的帧数是( )。

A. 2
B. 3
C. 4
D. 5


【2014年 题36】 主机甲与主机乙之间使用后退N帧(GBN)协议传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mbps,乙每收到一个数据帧就立即利用一个
短帧(忽略其传输延迟)进行确认,若甲乙之间的单向传播延迟是50ms,则甲可以达到的最大平均数据传输速率约为( )。

A. 10Mbps
B. 20Mbps
C. 80Mbps
D. 100Mbps


【2011年 题35】 数据链路层采用选择重传协议(SR)传输数据,发送方已发送了0~3号数据帧,
现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是( )。
A. 1
B. 2
C. 3
D. 4









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值