夜光带你走进通信网络(十五) 新的领域

夜光序言:

你能否做我的不息白昼

不然我的黑夜熬不到头

夜光带你走进通信网络(十五) 新的领域

 

 

正文:错误控制:自动重发请求

 

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

 

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

 

 

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


• 发送设备在接收到最近帧的应答消息前必须保留帧的备份;
• 为识别各帧,数据帧和应答帧(ACK)都必须交替地标识为0和1;
• 否定应答帧(NAK)不需要编号,它通知发送方重新发送最近的一帧;
• 发送设备需要有定时器功能。如果在规定的时段内不能收到
预期的应答消息,发送方就认为帧丢失而重新发送。

 

 

 

夜光:帧破坏情况:

夜光带你走进通信网络(十五) 新的领域

 

 

帧丢失情况:

夜光带你走进通信网络(十五) 新的领域

 

应答帧丢失情况:

夜光带你走进通信网络(十五) 新的领域

 

基于滑动窗口自动重发请求,有两种常见的协议:回退n自动重发请求和选择拒绝自动重发请求。

 

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


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

 

1. 回退n自动重发请求


数据帧破坏情况

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

数据帧破坏情况:丢弃损坏的帧及其后续到达的帧

 

夜光带你走进通信网络(十五) 新的领域

丢失数据帧情况:滑动窗口协议要求数据帧按顺序发送

夜光带你走进通信网络(十五) 新的领域

丢失应答帧情况:发送方采用定时器判断

夜光带你走进通信网络(十五) 新的领域

 

2. 选择拒绝自动重发请求


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

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

 

 

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

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