计算机网络学习笔记(三)基础_数据链路层
https://www.icourse163.org/course/SCUT-1002700002
华南理工大学_袁华老师
以下为笔记
数据链路层
概述
保证数据传输的有效和可靠 传输过程不免会发生差错
那么数据链路层就需要做差错检测和控制和流量控制
流量控制
流量控制有两种方法 基于速率;基于反馈 一般采取基于反馈的方法
在数据链路层经常采取基于反馈的模式,
即 由接收方告诉发送方: 处理能力大小为多少 ; 发送方根据接受方的反馈提供对应流量
数据链路层处理的协议数据单元: 帧 = 帧头(定位需要的物理地址) + 载荷 + 帧尾(校验)
物理层为数据链路层提供服务 物理层: 位流(bits) 数据链路层: 帧(frame)
成帧: 将原始的位流分散到离散的帧中
常见的四种成帧方法
- 字符计数法
- 字节填充的标志字节法
- 比特填充的比特标记法
- 物理层编码违例法
字符计数法
1.发送方: 在每个帧头部中的第一个字段,标识该帧的长度共有多少字符
2.接收方: 通过第一个字段,就知道这个帧有几个字符,在哪里结束该帧
3.优点: 实现简单
4.缺点: 没有考虑重新同步问题,一旦出错,无法恢复,工程中极少使用
标志字节法
考虑了重新同步问题,每一帧采用一个特殊字节做帧界,即当前帧的开始与上一个帧的结束
将这个特殊字节称为标志/标记字节(flag byte)
存在问题
当传输数据中也存在标志字节时,会和真正的帧界混淆
解决方案
标记字节法 当数据中存在标记字节时,在数据的标记前添加转义字符
案例

标记字节法的补充
特点
用于PPP协议(点对点协议)
缺点
1.数据中存在帧界或转义符时会造成帧界混淆,大量的标志字节或转义字符会造成低效率的成帧(最坏情况50%)。
2. 任意比特数的帧不适用,必须是8位整数倍
任意比特数的帧怎么解决? 改进: 比特填充的比特标记法
比特标记法
这是一种面向二进制位的帧格式,把所有需传输的数据以比特位一字排开,并以特殊的位模式01111110作为帧标志,即一个帧的开始(这也意味着标志前一个帧的结束)
位填充法
当帧内容出现与帧标志相同位串01111110时:
在5个1后插入一个0,即变成01111101,接收方将自动删除第5 个1后的0,恢复原来的数据 这称为位填充法(零比特填充法),也称为透明传输。
当扫描过程中出现错误导致部分帧没有被正确接收:
接收方会继续扫描直到读取到下一个帧标志,开始重写转换同步数据
优点
可以传输任意比特数的帧,同时传输效率更高
物理层编码违例法
将冗余信号用作帧界
例如: 在4B/5B编码模式中,将4比特映射到5比特上,能够承载32位却只利用了16位,剩下的位就可以用作帧界
又如: 在以太网中大量使用的曼彻斯特编码中
[规定1用高电位跳变到低电位表示,0用低电位跳变到高电位表示]没有利用 高电平到高电平 和 低电平到低电平 这两个冗余的跳变没有使用 可以用作帧界
优点
利用的是冗余信号,不会混淆,也不会填充,传输效率较高
小结
数据链路层位于物理层之上、网络层之下
数据链路层提供有效的、可靠的帧传输
成帧方法
字符计数法
字节填充的标志字节法
比特填充的比特标记法
物理层编码违例法