数据链路层协议ARQ

OSI-RM体系结构中,流量控制和差错控制是在数据链路层实现的。

差错控制:

在信息传输过程中,由于种种原因,可能发生“1”变为“0”或“0”变为“1”的情况,这就是出了差错。差错控制可以通过引入奇偶校验码、汉明码、循环冗余校验码等方法实现。在下面的流量控制中,实际上也包含了差错控制功能。

流量控制:

流量控制是协调链路两端发送站和接收站之间的数据传输流量,以保证双方的数据发送和接收达到平衡的一种技术。

在发送方和接收方的数据链路层分别有一个发送缓存和接收缓存,若进行全双工通信,双方都要同时设置发送缓存和接收缓存。缓存是一个存储空间,它是必不可少的,因为通信线路中以比特流形式传输的,而计算机内部传输是以字节并行传输的。

停止等待协议

开关式流量控制:当接收方有足够的缓存空间,发出“开”命令,通知发送方开始发送数据;当接收方来不及处理接受的信息,并且接收缓冲区也被耗尽或将要耗尽时,发出“关”命令,通知发送方停止发送数据。

协议式流量控制:发送时,发送方一次发送完一个数据帧后便主动停止发送,等待接收端会送的应答。如果受到肯定的应答,则继续发送下一帧;如果收到否定应答或在规定时间内没有收到应答,则重发该帧。

滑动窗口协议

允许发送方在收到接收方肯定应答之前连续发送多个帧的策略,就是滑动窗口协议。

发送方未得到确认而允许连续发送帧的最大数目,称为发送窗口尺寸;发送方最早发送但还未收到确认的帧的序号,称为滑动窗口的后沿;发送方在收到确认信号之前允许发送的最后帧的序号,称为发送窗口的前沿。

连续ARQ协议

连续协议中接收窗口固定设置为1,最大发送窗口为2^n-1。n是表示帧的序号所占用的比特数。

正常情况:发送方在发送窗口内连续发送多个帧,接收方每收到一帧确认无误后交给网络层,使接收序号加一,给出应答,准备接收下一帧。

帧丢失或损坏:接收方不能按信号顺序接受到正确的第N帧,后面的帧虽正确但不符合要求。接收方对出错的第N帧和其后的所有帧都要丢弃,对所有丢弃的帧不予应答。

确认应答帧丢失:发送方没有收到某一帧的确认应答,会重复发送该帧和其后面的所有帧。接收方根据帧信号判断是重复帧。对重复帧要丢弃,并依次重新返回应答。

选择ARQ协议

选择协议发送窗口和接收窗口都大于1。最大接收窗口<=2^(n-1)。

由于接收窗口大于1,所以当接收窗口内的某一帧出错时,不影响对其后面帧的接收。如果这些帧经过检查是正确的,可以先保存下来。当发送方发现某帧需要重发时,只重发出错的帧而其后的帧不必重发。接收方收到重发的帧后,可以将其和保存在缓存区的帧重新排序后交给网络层,然后发出累计确认应答。

猜你喜欢

转载自my.oschina.net/HuoQibin/blog/1631893