文章目录
前言:
数据链路层是实现设备之间通信的非常重要的一层
- 网络中的主机、路由器等都必须实现数据链路层
- 局域网中的主机、交换机等都必须实现数据链路层
- 仅从数据链路层观察帧的流动
- 注:不同的链路层可能采取不同的数据链路层协议
数据链路层使用的信道
点对点通信
:使用一对一的点对点通信方式广播通信
:使用一对多的广播通信方式,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
一、使用点对点信道的数据链路层
1.1数据链路和帧
链路
:是一条无源的点到点的物理线路段,中间没有任何其他的交换接结点。- 一条链路只是一条通路的一个组成部分。
数据链路
:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。- 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
- 一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层传送的是帧。
1.2三个基本问题
1.2.1 封装成帧
封装成帧
:就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。
- 首部和尾部的一个重要作用就是进行
帧定界
。
- SOH:控制字符,放在一帧的最前面,表示帧的首部开始。
- EOT:控制字符,表示帧的结束。
1.2.2 透明传输
- 如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧的边界”。
解决透明传输问题
:
- 解决方法:字节填充或字符填充。
- 发送端·的数据链路层在数据中出现控制字符SOH或EOT的前面插入一个转义字符“ESC”。
- 如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符ESC。
透明
:指某一个实际存在的事物看起来却好像不存在一样。
1.2.3 差错控制
在传输的过程中可能会产生比特差错:1可能会变成0,而0可能也变成1。
误码率
:在一段时间内,传输错误的比特所占传输比特总数的比特率称为误码率BER。
(1)循环冗余检测CRC
原理:
- 在发送端,先把数据划分成为组。假定每组k个比特。
- 在每组M后面再添加供差错检测用的n位冗余码,然后一起发送出去。
冗余码的计算:
(2)帧检验序列FCS
- 在数据后面添加上的冗余码称为帧检验序列FCS。
- 循环冗余检验CRC和帧检验序列FCS并不等同。
- CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。
- FCS可以用CRC这种方法得出,但CRC并非用来获得FCS的唯一方法。
注意:
- “无比特差错”与“无差错传输”是不同的概念。
- 在数据链路层使用CRC检验,能够实现无比特差错的传输,但这不是可靠传输。
- 要做到“无差错传输”(即发送什么就收到什么)就必须加上确认和重传机制。
二、点对点协议PPP
2.1 PPP协议的特点
(1)PPP协议应满足的需求
简单
封装成帧
:必须规定特殊的字符作为帧定界符。透明性
:必须保证数据传输的透明性。多种网络层协议
:能够在同一条物理链路上同时支持多种网络层协议。多种类型链路
能够在多种类型的链路上运行。差错检测
:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。检测连接状态
:能够及时自动检测出链路是否处于正常工作的状态。最大传送单元
网络层地址协商
数据压缩商
(2)PPP协议不需要的功能
- 纠错
- 流量控制
- 序号
- 多点路线
- 半双工或单工链路