第三章 数据链路层 ---可靠传输

3.4.1 可靠传输的基本概念

在这里插入图片描述
比特差错只是传输差错中的一种。
从整个计算机网络体系结构来看,传输差错还包括分组丢失分组失序以及分组重复
分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。
可靠传输服务并不仅局限于数据链路层,其他各层均可选择实现可靠传输。(如传输层的UDP和TCP)
在这里插入图片描述

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

数据分组DATA确认分组ACK否认分组NAK

确认与否认

发送方首先发送数据分组,接收方收到后对其进行差错检测,确认没有误码后发送确认分组;
若产生了误码,若DATA产生了误码,接收方检测出后需要将其丢弃并发送否认分组,当发送方接受后对数据分组进行重传。
这说明发送方每发送完一个数据后,并不能将该数据分组从缓存中删除,只有收到针对该数据分组的确认分组后,才能将其从缓存中删除(因为此分组可能会出现误码)
在这里插入图片描述

超时重传

在这里插入图片描述

确认丢失

在这里插入图片描述

在这里插入图片描述

确认迟到

接收方的回答可能会出现迟到状态,当这个时候发送发误认为超时进行超时重传,重传后,接收方的回答回应了它的重传操作,同时接收方收到了发送方的重传将其丢弃并返回了确认分组。为防止遇到这种情况,可以将确认分组也进行编号操作。
在这里插入图片描述

小结

在这里插入图片描述

停等协议的信道利用率

TD:发送数据分组的发送时延;
RTT:从发送到接收到确认分组的往返时延;
TA:发送确认分组的发送时延。
在这里插入图片描述
TD+RTT+TA为使用停-等待协议的发送方从发送一个数据分组开始,到可以发送下一个数据分组为止需要耗费的总时间。
一般TA<<TD,可以将TA忽略;当RTT>>TD,信道利用率会非常低。
在这里插入图片描述

例题

在这里插入图片描述
像停止-等待协议SW这种自动发送重传的协议我们称它为自动请求重传简称为ARQ
在这里插入图片描述

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

在这里插入图片描述
回退N帧协议GBN在采用流水线传输发送分组的基础上利用发送窗口限制发送发可连续发送数据分组的个数。(此处是假设采用3比特给分组编序号,并不是值所有的GBN都是只有3bit的分组)在这里插入图片描述
发送窗口的尺寸记为WT,序号发送窗口内的数据可以连续发送,在窗口外的数据不可以发送,当WT=1,则为停止等待协议,WT的值超过取值范围的上限,则会出现严重错误;
接收窗口的尺寸记为WR,回退N帧协议的Wr只能取1,同停止-等待协议相同,序号落在接收窗口内的数据可以接收,数据落在接收窗口外的数据不能够接收;在这里插入图片描述

无差错情况

发送方将序号落在发送窗口内的0~4号数据分组依次连续发送出去,成功到达接收方,每接收一个,接收窗口就向前滑动一个位置,并给发送发针对所接收分组的确认分组。
当发送方收到确认分组,则可将收到确认的数据分组从缓存中删除;
接收方则将接收到的分组交付给上层处理。在这里插入图片描述

累积确认

在这里插入图片描述
接收方接收到序号为0和1的数据分组后给发送方发送一个累计确认ACK1,接收完成2~4后给发送发发送一个累计确认ACK4,只要收到ACK4就知道4及之前的全部接受,向前滑动五个位置。
所以采用累计确认的优点为:
1、即使确认分组丢失,发送法也可能不必重传
2、减少接收方开销
3、减少对网络资源的占用
如果ACK4丢失,则同停止-等待协议中一样有超时重传操作。
缺点是不能及时接收到返回ack包的信息。

有差错情况

五号出现误码,则接收方丢弃该分组,
在这里插入图片描述
后面几个因为序号不匹配也被丢弃,
在这里插入图片描述
接收方发送最后接收的数据分组进行确认,就是发送ACK4,
在这里插入图片描述
发送方收到重复的ACK4知道发送的数据分组有问题,不用等超时计时器直接进行重传操作。
在这里插入图片描述
发送发这次发送了5~1号帧,由于5号帧出现误码,后面的帧都没有收到,所以这次直接重传这5帧;
如果7号帧出现误码,则这次要重传7~1号帧。
在这里插入图片描述
若WT超过取值范围会发生什么?例如WT=8
此时若接收方接收到数据分组,发送ACK7,但ACK7在传输过程中丢失,则发送方超时重传,导致接收方又一次接收数据分组,但无法分辨新旧数据分组。
在这里插入图片描述

在这里插入图片描述

例题

在这里插入图片描述

总结

在这里插入图片描述

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

在这里插入图片描述

无差错情况

选择重传与回退N帧不同的是WT=WR
在这里插入图片描述
当2号分组丢失时,接收方接收0、1号分组并发送确认分组,接收窗口向前滑动;
接收方接收3号分组并发送3号确认分组,但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组;
发送发每收到一个确认分组,就向前滑动一个位置,发送发接收0、1号确认分组,向前滑动,由于不存在2号确认分组,所以发送窗口停止在2,然后将0、1号数据分组的缓存删除,接收方也将0、1号分组交给上层处理;在这里插入图片描述
发送方发送4,5分组,接收ACK3,但因为不是按序接收到的所以不能进行窗口的滑动,但要对3分组进行标记,防止重发。
在这里插入图片描述
在这里插入图片描述
4号5号分组达到接收方,接收方发送4号5号确认分组,但接收窗口不能向前滑动,因为它们是未能按序到达的分组,接收方还未收到2号数据分组。
如果在4号和5号确认分组传输过程中,发送方进行2号超时重传。
在这里插入图片描述
4号5号确认分组到达,因为2号确认分组没有到达,发送窗口依旧不能向前滑动,不过可以记录4、5号数据分组已收到确认,发送窗口外的数据无法发送,发送窗口等待2号确认分组。
在这里插入图片描述
当2号到达接收方,滑动窗口向前滑动4个位置,接收方发送2号确认分组。
在这里插入图片描述
2号确认分组到达发送方,发送窗口前移4个位置
在这里插入图片描述

发送窗口大小

在这里插入图片描述
若窗口大小超过规定,则会产生无法分辨新旧分组的问题,例如下图,发送与接收窗口都为5,当接收方收到数据分组后发送0-4的ACK,而ACK0丢失了,导致超时重传0,而接收窗口已经前移,在新接收分组中有0的接收导致分组重复这种错误。
在这里插入图片描述

例题

在这里插入图片描述

总结

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

webfker from 0 to 1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值