一、流量控制
流量控制是一种协调发送站和接收站工作步调的技术。它的主要目的是防止发送端发送数据过快,导致接收端缓冲区溢出,从而造成数据丢失。流量控制机制通过调整发送速率来匹配接收端的处理能力。
基本原理
- 发送站每发出一帧数据,就进入等待状态。
- 接收站收到数据后,进行简单的处理,然后送回一个应答信号(ACK)。
- 发送站收到应答信号后,才能继续发送下一帧数据。
常见协议
- 停等协议:发送站发出一帧数据后等待接收站的应答信号。如果收到肯定应答(ACK),则继续发送下一帧;如果收到否定应答(NAK)或超时未收到应答,则重发该帧。停等协议简单但效率较低,因为它每次只能发送一帧数据并等待应答。
- 滑动窗口协议:滑动窗口协议允许发送站在未收到应答信号的情况下连续发送多个帧。它通过一个窗口来管理未确认的帧,窗口的大小决定了可以连续发送的帧数。当接收站收到并确认一帧数据时,窗口会向前滑动,允许发送站发送下一帧。滑动窗口协议提高了传输效率,但增加了实现的复杂性。
二、差错控制
差错控制机制用于检测和纠正传输过程中的错误。它确保接收端收到的数据与发送端发送的数据一致。
基本原理
- 发送端在发送数据前,会附加一些冗余信息(如校验码)到数据中。
- 接收端收到数据后,利用这些冗余信息进行错误检测。
- 如果发现错误,接收端会发送否定应答信号(NAK)要求发送端重发数据;如果数据正确,则发送肯定应答信号(ACK)。
常见技术
- 循环冗余校验(CRC):CRC是一种常用的检错技术。它通过对数据进行多项式除法运算,生成一个校验码附加在数据后面。接收端收到数据后,使用相同的多项式进行除法运算,如果余数不为零,则说明数据存在错误。
- 海明码:海明码是一种纠错码,它能够在一定程度上纠正传输过程中的错误。海明码通过增加冗余位来构造特殊的码字结构,使得接收端能够定位并纠正单个或多个比特的错误。
ARQ协议
- 停等ARQ协议:结合流量控制和差错控制的一种协议。发送端发送一帧数据后等待接收端的应答信号。如果收到ACK,则继续发送下一帧;如果收到NAK或超时未收到应答,则重发该帧。停等ARQ协议简单但效率较低。
- 选择重发ARQ协议:允许发送端在发送一帧数据后继续发送后续帧,而无需等待应答信号。当接收端发现某帧数据错误时,只发送否定应答信号要求重发该帧,而无需重发其他正确帧。这提高了传输效率。
- 后退N帧ARQ协议:与选择重发ARQ协议类似,但当接收端发现某帧数据错误时,要求发送端重发该帧及其后续的所有帧。这适用于对传输顺序要求不高的场景。
结语
小小的我
有着大大的梦
!!!