一、链路层概述
1、基本功能概述
数据链路层主要负责通过一条链路从一个结点向另一个物理链路直接相连的相邻节点传送数据报
即,将其上层网络层交付给其的数据报,安全无差错地传给相邻结点
2、相关术语
- 节点:主机、路由器
- 链路:网络中两个结点之间的物理通道
- 数据链路:网络中两个结点之间逻辑通道
- 帧:链路层的协议数据单元
3、相关功能
(1)为网络层提供服务
- 无确认无连接服务:无需建立链路的连接,也无需返回确认,帧丢失不会重发,直接交给上层处理。适用实时通信,误码率较低的通信信道
- 有确认有连接服务:无需建立链路的连接,需要确认,规定时间内没有确认则重发。适用于误码率较高的无线通信
- 有确认面向连接服务:建立连接,并一帧一确认,收到确认才会进行下一帧。
(2)链路管理
用于面向连接的服务,管理连接的建立、维持和释放。
(3)组帧
(4)流量控制--限制发送端发送速度
(5)差错控制(帧错/位错)
二、链路层具体功能
(一)封装成帧和透明传输
1、封装成帧--加头加尾
(1)在一段数据的前后部分添加首部和尾部,构成了一个帧
(2)作用:帧的首部和尾部包含很多控制信息,用来标识一个帧的开始和结束---帧定界
(3)接收端根据接收到的比特流首部和尾部标记来识别一个帧的开始和结束---帧同步
(4)由于帧长有一定的限定,所以对帧的数据部分有一定的限定,数据部分最大的传送单元为-MTU
2、透明传输
指不管所传的数据是什么样的比特组合都能在链路上传送(链路层看不到有什么妨碍数据传输的东西)
3、组帧的四种方法
(1)字符计数法
- 帧的首部使用一个计数字段来标明帧内字符数,接收端通过首部字符进行帧的截取
- 缺点:当计数字段发生了错误,则整个字段都发生了错位
(2)字符填充法
- 有帧头和帧尾,当数据中包含控制信息时,为了避免接收端的错误识别帧的边界,将数据中的控制信息前面利用字节填充的方式加一个转义字符
- 要求:
当传送的帧由文本文件组成时,不管从键盘上输入什么字符都可以放到帧中传输(透明传输)
当传送的帧由非ASCLL码的文本文件组成时,就要采用字符填充方法实现透明传输
【注】从键盘上输入的文本,对应的都是ASCLL码
(3)零比特填充法
- 填充规则:5”1“1”0“,当数据中出现连续5个1的情况,就立即填入一个0
- 发送端填充0,接收端删除0
- 原因:首部尾部填充的都是01111110,为了避免数据中包含这样的字段导致错误识别开始和结束
- 好处:保证了透明传输,在传送的比特流中可以传送任意比特组合而不会引起对帧边界的错误判断
(4)违规编码法
- 用编码规则中不会用到的电平组合来标识帧的开始和结束
如曼彻斯特编码只有高低、低高的电平组合方式,则使用高高、低低分别来定界帧的起始和终止。
(二)流量控制和可靠传输
(三)差错控制
1、差错来源
传输中的差错都是由于噪声引起的
全局性--线路本身电气特性所产生的随机噪声,信道固有且随机存在的
解决:提高信噪比,减少噪声的干扰(传感器方面)
局部性--外界特定的短暂原因所造成的冲激噪声(差错的主要原因)
解决:利用编码计数来解决
2、差错的种类
(1)位错
- 比特位出错:1变成0,0变成1
(2)帧错
- 帧丢失:接收端少接收到一些帧
- 帧重复:接收端接收到重复的帧
- 帧时序:接收端接收到的帧是乱序的
3、差错控制--比特错
(1)检错编码
- 奇偶校验码:主要检验发送端和接收端比特序列"1"的个数的奇偶性是否一致
组成:n-1位信息元+1位校验元
- CRC循环冗余码
<1>组成:要传数据+生成多项式+冗余码(FCS帧检验序列)
<2>最终发送的数据:要发送的数据+冗余码
<3>冗余码=要传数据/生成多项式
<4>计算冗余码
- 加0-- 生成多项式的阶为r(r=总的位数-1),则加r个0
- 模2除法-- 数据加0后除以多项式,余数为冗余码。 (做异或:同0异1)
<5>接收端检错过程
把收到的每一帧都除以同样的除数,然后检查得到的余数,余数为0---帧没错,余数不为0有差错
(2)纠错编码--海明码
作用:发现双比特错,纠正单比特错。
步骤:
- 确定校验码---海明不等式:2^r>=k+r+1(r是冗余信息的位数,k是信息位)
- 确定校验码和数据的位置(校验码只能放在2的次方位置)
- 求出校验码的值
- 检错与纠错
三、介质访问控制--链路层两种信道
四、局域网、广域网及相关协议
五、链路层设备
待更。。。