1、封装成帧
-
概念
在数据的头部和尾部加上标记,确定帧的范围
-
图示
MTU:1500个字节
-
问题
1、如果用户只接收到半截帧,会抛弃吗? 会, 因为是根据帧首部和尾部判断帧的起始和结束,如果只有一个标记,那么就会抛弃
2、透明传输
-
概念
在传输过程中,如果数据内部包含帧头或帧尾数据,会将这些转义。而这个过程对于外部是透明的,也就是说外部不知道内部做了这些操作
-
字符填充法
当传输的数据内部包含SOH或EOT时,在前面添加ESC转义。 当传输到接收端时,再将这些字符去掉
3、 差错控制
-
概念
传输过程中可能会产生 比特差错。 1可能变为0,0可能变为1。 为了保证数据传输的可靠性,需要采用各种差错检测措施
误码率: 在一段时间内,传输错误的比特占所传输比特总数的比率。与信噪比有关
-
CRC 循环冗余检测
CRC循环冗余检测是否产生差错
大致步骤: 将所要传输的数据分组,每组在数据后面携带冗余码(计算方法见下面)。当接收端收到数据后,除以商量好的编码,如果结果为0,说明没有差错(可能存在问题)
-
CRC计算冗余码的过程
1、数据A 后面跟任意长度的比特B,如下为000。组成数据+000 (即A+B)
2、除数比B多一位,如下为1101(这里称为C)
3、除以除数得到冗余码 D
4、传输时,传输FCS(帧检验序列)(就是 数据+冗余码)(A+D)==》 FCS可以通过CRC计算得出
5、接收端收到后, 用 A+D 除以 除数C。如果结果为0,那么说明中间没有差错。否则有错误就扔掉
-
CRC小结
CRC是无比特差错,而不是无传输差错的检测机制
无比特差错:凡是接收端数据链路层接受的帧都是没有差错的,有差错就被丢弃了
无传输差错: 指在传输过程中没有差错,需要加入确认和重传机制
如果本篇博客有任何错误和建议,欢迎大佬们批评指正
我是知逆,我们下期见
Peace