https://www.icourse163.org/course/SCUT-1002700002
华南理工大学_袁华老师
以下为笔记
数据链路层
概述
保证数据传输的有效和可靠 传输过程不免会发生差错
那么数据链路层就需要做差错检测和控制和流量控制
流量控制
流量控制有两种方法 基于速率;基于反馈 一般采取基于反馈的方法
在数据链路层经常采取基于反馈的模式,
即 由接收方告诉发送方: 处理能力大小为多少 ; 发送方根据接受方的反馈提供对应流量
数据链路层处理的协议数据单元: 帧 = 帧头(定位需要的物理地址) + 载荷 + 帧尾(校验)
物理层为数据链路层提供服务 物理层: 位流(bits) 数据链路层: 帧(frame)
成帧: 将原始的位流分散到离散的帧中
常见的四种成帧方法
- 字符计数法
- 字节填充的标志字节法
- 比特填充的比特标记法
- 物理层编码违例法
字符计数法
1.发送方: 在每个帧头部中的第一个字段,标识该帧的长度共有多少字符
2.接收方: 通过第一个字段,就知道这个帧有几个字符,在哪里结束该帧
3.优点: 实现简单
4.缺点: 没有考虑重新同步问题,一旦出错,无法恢复,工程中极少使用
标志字节法
考虑了重新同步问题,每一帧采用一个特殊字节做帧界,即当前帧的开始与上一个帧的结束
将这个特殊字节称为标志/标记字节(flag byte)
存在问题
当传输数据中也存在标志字节时,会和真正的帧界混淆
解决方案
标记字节法 当数据中存在标记字节时,在数据的标记前添加转义字符
案例
![](https://i-blog.csdnimg.cn/blog_migrate/3c48219b8869b554008e0f2cb1ea2db0.png)
标记字节法的补充
特点
用于PPP协议(点对点协议)
缺点
1.数据中存在帧界或转义符时会造成帧界混淆,大量的标志字节或转义字符会造成低效率的成帧(最坏情况50%)。
2. 任意比特数的帧不适用,必须是8位整数倍
任意比特数的帧怎么解决? 改进: 比特填充的比特标记法
比特标记法
这是一种面向二进制位的帧格式,把所有需传输的数据以比特位一字排开,并以特殊的位模式01111110作为帧标志,即一个帧的开始(这也意味着标志前一个帧的结束)
位填充法
当帧内容出现与帧标志相同位串01111110时:
在5个1后插入一个0ÿ