文章目录
前言
数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自物理层来的数据可靠地传输到相邻节点的目标机网络层。
1、使用点对点信道的数据链路层
数据链路和帧
- 数据链路层使用的信道主要有以下两种类型:
- 点对点信道。这种信道使用一对一的点对点通信方式。
- 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发
- 数据链路层模型
- 链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
- 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
- 数据链路层传送的是帧
三个基本问题
-
(1) 封装成帧
- 将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
- 将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
-
(2) 透明传输
- 透明表示一个实际存在的事物看起来好像不存在一样。
- 帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧的开始和结束位置就会被错误的判定。需要在数据部分出现首部尾部相同的内容前面插入转义字符。如果数据部分出现转义字符,那么就在转义字符前面再加个转义字符。在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
*
-
(3) 差错控制
-
循环冗余检验 CRC
目前数据链路层广泛使用了循环冗余检验(CRC)来检查比特差错。 -
帧检验序列 FCS
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 -
冗余码的计算
- 例子:
现在 k = 6
- 例子: