数据链路层–三个基本问题
1. 封装成帧
定义
网络层的数据报交付给数据数据链路层,数据链路层需要在报文(一般是IP数据包)的前后加上首部和尾部,将报文封装,区分开来。
如果不使用首部和尾部进行帧定界,会出现什么问题
接收方无法区分数据报(也叫分组),网络中的数据以分组为单位。
2. 透明传输
定义
使用某些手段(如转义字符)把数据报中出现的与帧定界符相同的数据标识为普通数据,就像 看 不 见 {\color{red} 看不见} 看不见一样
为什么要使用透明传输
如果不实现透明传输,每当数据报中出现了帧定界符相同的数据时,都会错误的提取报文
3.差错控制
分类
数据链路层出现的差错可以分为两类
- 1.比特差错:比特流中的若干位出现差错,即0变成1或者1变成0
- 2.帧重复,帧丢失,帧失序:字面意思
比特差错的解决办法
在数据链路层的差错控制一搬使用CRC检测,具体介绍在我的另一篇博客
帧重复,丢失,失序的解决办法
帧编号,确认,重传机制