数据链路层
基本概念
结点:主机、路由器
链路:两个结点间的物理通道
数据链路:两个结点间的逻辑通道
帧:链路层的协议数据单元,封装网络层的数据包
数据链路层负责通过一条链路,从一个结点向另一个物理链路相连的结点传送数据
链路层的功能
在物理层的基础上向网络层提供服务,将不可靠的物理连接改造为逻辑上无差错的数据链路连接,使之对网络层表现为一条无差错的链路
- 为网络层提供服务(无确认连接、有确认无连接、有确认面向连接服务)
- 链路管理
- 组帧
- 流量控制
- 差错控制(帧错/位错)
组帧
封装成帧即在数字包前后分别加上帧头和帧尾
帧头和帧尾包含许多控制信息,他们的一个重要作用:帧定界(确定帧的界限)
帧同步:接收方应当能从接收的二进制比特流中区分出帧的起始和结束
帧结构
帧头:6+6+2 = 14字节
MTU值(最大传输单元):1500字节(最小46字节)
帧尾:4字节
帧最大字节:1518字节
组帧方法
透明传输:无论传输的是怎样的比特组合,都应当能在链路上进行传输。当传输数据中的比特组合恰好与某一个控制信息完全一样时,就必须采取相应的措施,使接收方不会将这样的数据认为是某种控制信息。
- 字符计数法:帧首部使用一个计数字段(第一个字节,八位)标明帧内字符数
- 字符(节)填充法:
- 在帧头与帧尾加上定界符(SOH与EOT)
- 当信息字段中出现与定界符相同的比特组合时,在该数据前加上ESC转义字符
- 零比特填充法:
- 在帧头与帧尾都加上标志字段(01111110)标志起始和终止
- 在发送端,扫描整个信息字段,只要扫描到连续的5个1,就立即在第5个1后插入一个0
- 在接收端,………删除5个1后的0
- 违规编码法:将不会用到的编码方式作为帧的起始和终止。例如,曼切斯特编码中使用 {高-低} 与 {低-高} 两种编码,因此可以使用 {高-高} 与 {低-低} 来界定帧的起始和结束
差错控制
差错
差错由噪声引起
- 全局性噪声:由线路本身电气特性产生的随机噪声,是信道固有的,随机存在
- 通过提高信噪比的方式减少或避免干扰
- 局部性噪声:由外界特定的短暂原因造成的冲击噪声,是产生差错的主要原因
- 利用编码技术解决
差错分为两种
- 位错:比特位出错,1变0,0变1
- 帧错:假设发送了三个帧①②③
- 丢失:①③
- 重复:①②②③
- 失序:①③②
控制
- 检错编码
- 奇偶校验编码:n-1位信息元与1位校验元(之能检测出奇数个比特错误,检错能力为50%)
- 奇校验码:信息元中“1”的个数加上检验元“1”的个数(校验元不一定是“1”),得到的“1”的个数位奇数
- 偶校验码:“1”的个数位偶数个
- 循环冗余码CRC: