数据链路层
- 数据链路层使用的信道:
- 点对点信道:使用一对一的点对点通信方式
- 广播信道:使用一对多的广播通信方式,过程比较复杂,需要专用的协议来协调
- 点对点信道的数据链路
- 链路(物理链路):从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换节点
- 在数据通信时,两台计算机间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分
- 数据链路(逻辑链路):将实现这些通信协议的硬件和软件加到链路上就构成了数据链路。现在常用网络适配器(如:网卡)来实现这些协议
- 网络适配器:既有硬件也包括软件,实现了通信协议,包括了数据链路层和物理层两层的功能
- 规程:数据链路中,规程等于协议
- 帧:点对点信道数据链路的单元-数据链路的单位
- 数据链路通信的主要步骤:
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- 结点A把封装好的帧发送给结点B的数据链路层
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取IP数据报上交给网络层;否则丢弃这个帧
- 特点:数据链路层无需考虑物理层如何实现,相当于对等层水平通信。只管能不能发送
- 三个基本问题
- 封装成帧
- 封装成帧:就是在一段数据前后分别添加首部和尾部,确定帧的界限,然后就构成了一个帧
- 添加首部和尾部的作用:进行帧定界(确定帧的界限);包含许多必要的控制信息
- 帧长:帧的数据部分加上帧首部和帧尾部的长度
- 最大传送单元MTU:链路层协议规定的所能传送的帧的数据部分长度上限
- 帧界定的方法:可用特殊的帧定界符,在ACSCII码中,用SOH表示帧的首部开始,EOT表示帧的结束
- 帧界定的作用:判断收到的帧是否完整,不完整则丢弃
- 透明传输
- 透明传输:不管什么数据,都能完整无差错的通过这个数据链路层,数据链路层对数据没有妨碍,数据链路层对数据时透明的
- 透明传输中的问题:若数据中的某个字节的二进制代码恰好组成了帧界定符,就会出现错误
- 解决办法:字节填充,在控制字符和特殊字符前面插入一个转义字符“ESC”,而真正的首部和尾部前不加,到了接收端检测到两个转义字符时就删除前面一个
- 差错检测
- 比特差错:在传输中可能会产生比特差错,1可能变0,0可能变1
- 误码率:在一段时间,传输错误的比特占所有传输比特总数的比率,
- 封装成帧