深入浅出计算机网络 day.5 第三章 数据链路层 3.2.3

发布于:2024-03-28 ⋅ 阅读:(19) ⋅ 点赞:(0)

当环境最昏暗时,火焰燃烧的光芒才最夺目        

                                                —— 24.3.27

一、可靠传输的相关基本概念

1.差错检验技术的作用

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

2.数据链路层向其上层提供的服务类型

        不可靠传输服务:仅仅丢弃有误码的帧,其他什么也不做

        可靠传输服务:通过某种机制实现发送方发送什么,接收方最终就能收到什么

3.可靠传输和不可靠传输服务

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

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

4.传输差错

① 分组丢失        ② 误码(比特差错)        ③ 分组失序        ④分组重复

分组丢失:

分组失序

分组重复

误码一般出现在数据链路层及其下层

分组重复、分组失序、分组丢失 出现在数据链路层的上层

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

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

①可靠传输的实现机制:停止—等待(SW)协议

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

选择重传(SR)协议

这三种可靠传输实现机制的基本原理并不仅限于数据链路层,可以应用到其上各层,而应放眼于整个网络体系结构

二、可靠传输的实现机制:停止—等待(SW)协议

内容简介

01.停止—等待协议的实现原理

02.停止—等待协议的信道利用率

1.停止—等待协议的实现原理

ACK—确认信息

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

如果出现数据分组、确认分组,或否认分组丢失的情况,仅有确认、否认和重传这两种机制的停止—等待协议就无法实现可靠传输

①接收方收不到数据分组,就不会发送相应的ACK或NAK的状态

②如果不采取措施,发送方就会一直处于等待接收方ACK或NAK的状态

③为解决上述问题,发送方可在每发送一个数据分组时就启动一个超时计时器

④若到了超时计时器所设置的超时重传时间(RTO),但发送方仍未收到接收方的ACK或      NAK,就重传之前已发送过的数据分组

在超时重传时间内若是没有接收到接收方传来的接收信号ACK,则重传之前的DATA数据

若是在超时重传协议后,分组重传,接收方收到两个相同重复的分组,则为了避免分组重复这种传输错误,必须给每个分组带上序号

对于停止-等待协议,由于每发送一个数据分组就停止等待,只要保证每发送一个新的数据分组,其序号与上次发送的数据分组的序号不同就可以了,因此用一个比特来编号就足够了,序号有0和1这两个

数据分组需要编号,确认分组需要编号吗?

注意事项:

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

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

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

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

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

                在数据链路层,点对点的往返时间RTT比较固定,RTO就比较好设定

                在运输层,由于端到端的往返时间非常不确定,设置合适的超时重传时间RTO有时并不容易

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

2.停止—等待协议的信道利用率

信道利用率:U ≈ 发送数据分组的时间/(发送数据分组的时间+往返时间+确认分组的发送时间)

        若出现超时重传,对于传送有用的数据信息来说,信道利用率还要降低

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

3.例题

三、可靠传输的实现机制:回退N帧(GBN)协议

内容简介

01.回退N帧协议

1.回退N帧协议

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

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

        如果将发送窗口的值取为1,则是停止-等待协议,如果发送窗口的值超过取值范围的上限,则会出现严重的错误

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

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


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

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

无传输差错的情况

例题

1.

2.

总结

四、选择重传(SR)协议

内容简介

01.选择重传协议

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

发送窗口Wt

接收窗口Wr

        停止等待协议,仅用一个比特给分组编号

        回退N帧协议,用n个比特来为分组编号,如果发送窗口的尺寸超过上限,则会出现无法分辨新旧数据分组的情况;回退n帧协议在无数据差错的情况下,其信道利用率比停止-等待协议要高不少,但是,一个数据分组的差错,就可能会引起大量数据分组的重传,而这些重传的数据分组,原本已经正确到达接收方,但由于序号未落入接收窗口内,而被接收方丢弃,这些数据分组的重传是对信道资源的严重浪费

        选择重传协议,Wr>1,以便先收下 失序,但正确到达接收方,且序号落入接收窗口Wr内的数据分组,等到所缺数据分组收齐后,再一并送至上层,这就是选择重传协议

       

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

2.选择重传协议

示例

0号数据分组被超时重传

        发送方可将发送缓存中,序号已被移出发送窗口的数据分组删除了,而接收方应尽快将接收缓存中序号已被移出接收窗口的数据分组取走

 

例题

总结

本文含有隐藏内容,请 开通VIP 后查看