1. 数据链路和帧
基本概念
- 链路(link):指从一个结点到相邻结点的一段物理线路,中间没有任何其他的交换结点
- 数据链路(data link):在一条线路上传送数据时,需要必要的通信协议来控制数据的传输,把实现协议的硬件和软件加到链路上,构成了数据链路
- 帧(frame):点对点信道的数据链路层的协议数据单元
主要步骤
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层
- 结点 A 的数据链路层把网络层交下来的 IP 数据报添加首部和尾部封装成帧
- 结点 A 把封装好的帧发送给结点 B 的数据链路层
- 若结点 B 的数据链路层收到的帧无差错,则从收到的帧中提取出 IP 数据报上交给上面的网络层,否则丢弃这个帧
2. 三个基本问题
1)封装成帧
- 网络层的 IP 数据报传送到数据链路层,就成为帧的数据部分,在前后分别添加首部和尾部,构成一个帧
- 首部和尾部的作用是帧定界(确定帧的界限),并包含必要的控制信息
- 每种链路层协议都规定了帧的数据部分的长度上限,即最大传送单元 MTU
2)透明传输
帧的数据部分不允许出现“帧定界控制字符”,若待传输数据中包含了“帧定界控制字符”,需要在发送端的数据链路层插入转移字符,接收端的数据链路层送往网络层之前删除转移字符
3)差错控制
- 比特差错:在传输过程中产生差错,即0变成1,1变成0
- 误码率:传输错误的比特占所传输比特总数的比率称为误码率(bit error rate,BER)
- 通过提高信噪比,可以降低误码率,但不能达到理想情况
- 循环冗余检验 CRC:为了保证数据传输的可靠性,采用循环冗余检验(cyclic redundancy check,CRC):
- 在数据部分的后面添加冗余码,称为帧检验序列(frame check sequence,FCS)
- CRC 检验只能做到对帧的无差错接收,无法解决传输差错,如帧丢失、帧重复和帧失序