在一条通信通道上如何可靠地传输数据帧。
单位:帧
协议:SLIP、PPP、ARP
数据链路层设置原因
1.物理层的服务不能保证没有错误,且物理层不负责错误检测和纠正。
2.采取差错控制和流量控制(理论上可以出现在任何层),向网络层提供高质量的数据传输服务。
点到点数据链路层
帧管理/成帧(Framing)
将比特流分成帧
主要目的:为了检测和纠正物理层在比特传输中可能出现的错误,数据链路层功能需借助帧的各个域来实现
发送方:把数据封装成帧,交给物理层
接收方:要识别每帧的开始与结束
核心问题:帧定界,即成帧
常见的成帧方式
字符计数法
在帧头用一个字符来表示整个帧的字符个数
带字符填充的首尾字符定界法
用一些特殊字符作为开始和结束(定界符,flag byte)
带位填充的首尾标记定界法
用一个特殊位串“01111110”为定界符,需要零比特填充解决连续出现五个零的情况
物理层编码违例法
核心思想:只适用于物理层编码由冗余的网络
曼切斯特编码:持续的高电平(或低电平为违例码),可以作为定界符
前导码(preamble):可以作为定界符
差错控制
差错:接收到的数据和发送数据不一致
差错产生原因:信道噪声
噪声:
1. 热噪声:传输介质的热运动
2. 冲击噪声:外界电磁干扰,是主要原因
目的:处理传输中出现的差错,如位错误、丢失等
评价指标:
误码率: 错传的码元数目与传输的码元总数之比
误比特率:错传的比特数目与传输的比特总数之比
二元编码时,误码率和误比特率相等
反馈纠错
在接收端能发现差错,但不能确定错码位置
通过反馈信息请求发送端重发,直到收到ack为止
主要在高可靠、误码率较低的信道上
前向纠错
能发现错码并确定错码位置,纠正错误
用于错误发生频繁的信道
冗余码/校验码
检错码:推断是否发生错误
纠错码:判断是否发生错误并能纠正错误
奇偶校验 (最简单)
1位奇偶校验:增加1位校验位,可以检查奇数位错误。
校验和 (Checksum)
循环冗余码-CRC
汉明码
流量控制
原因:
1.确保发送方的发送速率,不能大于接收方的处理速率
2.避免接受缓冲区溢出
基本原则:接收方反馈
如果接收方收到的信息没有问题会回确认帧ack
死锁现象
当数据帧出错、ack丢失,发送端会永久等待。
解决方法:设立一个超时计时器,如果在规定时间内没有收到ack,则自动重传。
ARQ协议(又称停止等待协议、PAR)
发送周期:从开始发送数据到收到第一个ack为止
信道利用率
一个发送周期内,有效数据发送时间占整个发送周期的比率。
不出错的情况下,信道利用率不到100%
滑动窗口协议
发送端:发送窗口,一个序号区间对应当前允许发送的数据帧
大小:发送出去但还没收到确认的数据帧的最大数目
接收端:接受窗口,对应当前被允许接收的数据帧
功能:流量控制
ps:只有在接收窗口向前滑动时,发送窗口才可能滑动