数据链路层最基本的功能是将提供的可能出错的传送原始比特流的物理连接改造成为逻辑上无差错的数据链铬。它涉及帧同步、差错控制、流量控制和链路管理等方面。
数据链路层最基本的服务就是将从源机器网络层来的数据可靠地传输到目标机器网络层。
帧同步
数据链路层要将比特以帧为单位进行传送是为在出错时,可只将有错的帧重发,从而提高效率。
①使用字符填充的首尾定界符方法。
需考虑透明传输,而且传输时实际传输的数据量与传输的数据相关。
②使用比特填充的首尾标志方法。
用一组特定的比特模式(01111110)来标志一帧的开始和结束。
③字节计数法
用一个特殊字符来表示一个顿的开始,然后使用一个字节计数字段来标明本帧的字节数。
④违例编码法
e.g曼彻斯特编码。
差错控制
数据链路层保证相邻节点间比特位无差错传输使用4种手段:计时器、帧编号、重传和确认。
计算最小帧长:L ÷ v ≥ 2T,T = s ÷ 0.7c。
传统差错都是由噪声引起的。一类信道固有的叫随机热噪声(随机错),另一类由外界短暂的特定原因所造成的冲击噪声(突发错)。
通用误码率:
语音数据< 10的负3次方
计算机网络< 10的负6次方
高保真数据传输<10的负9次方
编码效率,k为信息位,n=k+r,r为冗余位。
差错控制方式:前向纠错(FEC)、自动请求重发(ARQ)、混合纠错(HEC)。
常用差错控制编码:奇偶校验码,Internet校验和(反码加法和移位操作),CRC循环冗余码,分组码,卷积码。
CRC的性质:
分组码要求2的r次方≥ n +1
分组码的最小码距d,直接关系着其检纠错能力。
能检e个随机错,要求d ≥ e +1;
能纠正t个随机错,要求d ≥ 2t+1;
能纠正t个随机错,同时检测e个随机错,要求d ≥e+t+1且e≥ t。
汉明码是一种能纠正单个错误的线性分组码。
流量控制
控制发送方的流量,使其发送速率不要超过接收方所能处理的速率。
数据链路层控制相邻节点间数据链路上的流量,而运输层控制的是从源到最终目标间端对端的流量。
数据链路协议
停等协议:规定发送方每发送一帧后就要停下来,等待对方已正确接收的确认帧(ACK)返回后才能继续发送下一帧。只需1位帧号。
顺序接收的管道协议(回退n):发送方不等确认帧返回就再连续发送若干帧,发送的过程就像一条连续的流水线,固又称为管道技术。采用多位帧号。
凡是被发送出去尚未被确认的帧都可能由于出错或丢失而要求重发,因此都要保留下来,要求发送方有较大的发送缓冲区保留准备重发的帧。信道利用率比停等协议高,但资源浪费。
③ 选择重传协议:某一帧出错后,后面送来的正确帧接收方接收下来放在缓冲区,发送方重传出错帧,收到重传帧后与原先已收到但暂缓在缓冲区中的其余帧一起按正确顺序送主机。
接收方要有足够大的缓冲区。减少出错后所有帧都重传的浪费,大大提高了效率。
④ 流量控制的滑动窗口协议。
停等协议可以看作发送窗口大小为1的滑动窗口协议。
若帧号位数为m,对于回退协议,发送窗口大小要小于或等于2的m次方减1,对选择重传协议来说,接收窗口大小小于等于发送窗口大小小于等于2的m-1次方。
在无噪声信道的流量控制:简单协议和停等协议。
在有噪声信道的流量控制:停等ARQ、回退n的ARQ、选择性重传的ARQ。
链路管理
主要用于面向连接的服务
数据链路层协议
面向比特的同步协议HDLC:比特填充,每连续出现5个1后自动插入一个0,以特定的比特模式01111110来定时帧的开始和结束。
点到点协议PPP:既可支持面向字符,也可支持面向比特。不使用序号和确认的可靠传输手段,因此通常用于信道质量较好的场合。