数据链路层中的错误控制
数据链路层中的错误控制是检测和纠正传输过程中损坏或丢失的数据帧的过程。
如果帧丢失或损坏,则接收方不会收到正确的数据帧,而发送方不知道丢失了什么。数据链路层遵循一种技术来检测传输错误并采取必要的措施,即在检测到错误或帧丢失时重新传输帧。该过程称为自动重复请求 (ARQ)。
错误控制阶段
数据链路层中的错误控制机制涉及以下阶段 -
错误检测 - 发送方或接收方均可检测到传输错误(如果有)。
确认 - 确认可能是肯定的或否定的。
-
肯定 ACK - 接收到正确的帧后,接收方发送肯定确认。
-
否定 ACK - 接收到损坏的帧或重复的帧后,接收方向发送方发送否定确认。
-
重传 − 发送方维护时钟并设置超时期限。如果在超时之前未收到先前传输的数据帧的确认,或者收到否定确认,则发送方将重新传输该帧。
错误控制技术
错误控制主要有三种技术 -
![数据链路层中的错误控制 数据链路层中的错误控制](/data_communication_computer_network/images/error_control_techniques.jpg)
停止并等待 ARQ
此协议涉及以下转换:
- 发送方维护超时计数器,该计数器在发送帧时启动。
- 如果发送方在规定时间内收到已发送帧的确认,则确认发送方已成功传送该帧。然后,它会传输队列中的下一帧。
- 如果发送方未及时收到确认,则发送方会假定该帧或其确认在传输过程中丢失。然后,它会重新传输该帧。
- 如果发送方收到否定确认,则发送方会重新传输该帧。
Go-Back-N ARQ
该协议的工作原理是:
- 发送方有称为发送窗口的缓冲区。
- 发送方根据发送窗口大小发送多个帧,而不接收前一个帧的确认。
- 接收方逐个接收帧。它跟踪传入帧的序列号并发送相应的确认帧。
- 发送方发送窗口中的所有帧后,它会检查收到的肯定确认的序列号。
- 如果发送方已收到所有帧的肯定确认,它会发送下一组帧。
- 如果发送方收到 NACK 或未收到特定帧的任何 ACK,它会重新传输所有帧,之后不会收到任何肯定 ACK。
选择性重复 ARQ
此协议的工作原理如下:
- 发送方和接收方都有分别称为发送窗口和接收窗口的缓冲区。
- 发送方根据发送窗口大小发送多个帧,而不接收前一个帧的确认。
- 接收器还会在接收窗口大小内接收多个帧。
- 接收器跟踪传入帧的序列号,并在内存中缓冲帧。
- 它会为所有成功接收的帧发送 ACK,并仅为丢失或损坏的帧发送 NACK。
- 在这种情况下,发送方仅发送收到 NACK 的数据包。