一、封装成帧与透明传输
封装成帧的过程就是把网络层的IP数据报加上帧首部和帧尾部形成链路层的数据传输单元,也就是形成帧。
有以下几种组帧方式:
二、差错控制
传输差错可分为两种:
- 位错:帧中某些位出现了差错,也称比特差错、误码。
- 帧错:帧的丢失、重复或失序等错误。
通常利用编码技术进行差错控制,主要有两类:
- 自动重传请求(ARQ):接收端检测出差错时,就设法通知发送端重发,直到接收到正确的码字为止,流量控制协议就使用了ARQ技术;
- 前向纠错(FEC):接收端不但能发现差错,而且能确定比特串的错误位置,从而加以纠正,可分为检错编码和纠错编码。检错编码(如奇偶校验码、循环冗余码)都只能发现位错,然后用自动重传请求方式(ARQ)来纠正位错及帧错;纠错编码(如海明码)不仅可以发现位错,还能指出出错的比特位从而进行前向纠错(FEC)。
(一)检错编码
检错编码都采用冗余编码技术,其核心思想是在有效数据(信息位)被发送前,先按某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送。
1.奇偶校验码
- 奇校验是在待发送的数据后面添加1个校验位,使得添加校验位后整个数据中比特1的个数为奇数;
- 偶校验是在待发送的数据后面添加1个校验位,使得添加校验位后整个数据中比特1的个数为偶数;
- 无论是约定奇校验还是偶校验,如果有奇数个比特位发生误码可以检测出,如果有偶数个比特位发生误码会漏检。
如:
2.循环冗余码(CRC)
⭐基本思想:
- 收发双方约定好一个生成多项式G(X);
- 发送方基于待发送的数据和生成多项式G(X),计算出差错检测码(冗余码),将冗余码添加到待发送数据后面作为帧检测序列(FCS) 一起传输;
- 接收方收到数据和冗余码后,通过生成多项式G(X)来计算收到的数据和冗余码是否产生了误码。
⭐基本过程:
⭐举个栗子:
计算过程注意:“减”不是“减”,而是“异或”;
(二)纠错编码
1.海明码
⭐基本过程:
-
确定校验码位数r:
-
确定校验码和数据的位置:
-
求出校验码的值:
-
检错与纠错:
⭐常考这些:
- 两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码码字)的海明距离的最小值称为该编码集的海明距离(码距)。海明码检错d位,需要码距为d+1的编码方案;纠错d位,需要码距为2d+1的编码方案;
- 海明不等式:设n为有效信息的位数,k为校验位的位数,若要检测一位错,则信息位n 和校验位k 应满足 n+k ≤ 2k-1 (若要检测两位错,则需再增加1位校验位,即k+1位)。
写在后面
这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!
参考资料
[1]王道408教材(2025版)
[2]王道课程资料