错误控制:自动重发请求

在数据链路层,错误控制主要是指错误检测和重传机制。

在一次交互中出现任何一个错误,一个否定应答(NAK)就被 返回并且对应的帧就被重新传输,这个过程称为自动重发请求( ARQ)。一般有三种情况下的数据重传:帧破坏,帧丢失,以及应答帧丢失。

停等自动重发请求

为了实现停等自动重发请求的功能,必须提供以下四种特性:

  • 发送设备在接收到最近帧的应答消息前必须保留帧的备份;
  • 为识别各帧,数据帧和应答帧(ACK)都必须交替地标识为 0和1;
  • 否定应答帧(NAK)不需要编号,它通知发送方重新发送最 近的一帧;
  • 发送设备需要有定时器功能。如果在规定的时段内不能收到 预期的应答消息,发送方就认为帧丢失而重新发送
    帧破坏情况:
    在这里插入图片描述
    帧丢失情况:
    在这里插入图片描述
    应答帧丢失情况:
    在这里插入图片描述
    基于滑动窗口自动重发请求,有两种常见的协议:回退n自动重发请求和选择自动重发请求。

为了实现滑动窗口自动重发请求的功能,必须提供以下三种特性:

  • 在发送帧被应答消息确认以前保持它们所有的备份;
  • ACK帧和NAK帧都必须编号以便于识别,ACK帧带有期待发 送的帧的编号,NAK帧则带有损坏帧的编号;
  • 发送设备需要有定时器功能。如果在规定的时段内不能收到 预期的应答消息,发送方就认为帧丢失而重新发送一帧或所有 帧(根据所采用协议的不同)。

回退n自动重发请求

如果一帧数据丢失或损坏,就从最近一次得到应答的数据帧开 始重传所有的帧。

数据帧破坏情况:丢弃损坏的帧及其后续到达的帧
在这里插入图片描述
丢失数据帧情况:滑动窗口协议要求数据帧按顺序发送
在这里插入图片描述
丢失应答帧情况:发送方采用定时器判断

选择拒绝自动重发请求

在选择拒绝自动重发请求中,只有特定的丢失或损坏帧被重 发。接收设备必须能够对接收的帧进行排序并能将纠正的帧插入 到序列中的正确位置。

它与回退n自动重发请求系统的不同之处在于:

  • 接收设备必须具有排序的逻辑功能;
  • 发送设备必须具有查找机制发现和选择需要重传的帧;
  • 接收设备必须具有缓存所有后续帧的功能;
  • ACK和NAK帧的编号必须指明是具体的某一帧;
  • 为了有效工作,推荐的窗口大小是小于或等于(n+1)/2, 而回退n的窗口大小为n-1。

帧破坏情况:在发生错误的帧后接收的帧在该帧错误被纠正之 前不能进行应答,也即不能不按照顺序进行应答。

丢失数据帧和丢失应答帧的情况也以类似的方式工作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值