在计算机网络中,关于差错控制,我们主要要比特控制。
比特控制,简单理解,即在传输过程中,0变为1,1变为0。

差错控制主要有两类

  • 自动重传请求ARQ——检错编码
    (接收方检测出差错,就设法通知发送发重发,直到收到正确的数据为止)
  • 前向纠错FEC——纠错编码
    (接收方不仅仅能检测出差错,而且能确定错误的位置并加以修正)

检错编码

检测编码采用冗余编码技术。
其核心思想是,有效数据被发送之前,按某种关系附加一定的冗余位,构成一个符合某一规则的码字后发送。
当要发送的有效数据变化时,相应的冗余位也随之变化,使得码字遵从不变的规则。
接收方根据收到的码字是否符合原规则来判断是否出错。
常见的检错编码时奇偶检验码循环冗余码

纠错编码

奇偶检验码

①奇检验码
附加一个检验位后,码长位n的码字中“1”的个数为奇数。
②偶检验码
附加一个检验位后,码长位n的码字中“1”的个数位偶数。

例如 ,7位1001101对应的奇检验码为10011011.
(即加上最后一个补的1,1的个数为奇数)
它的偶检验码为 10011010
(即加上最后一个补的1,1的个数为偶数)

循环冗余码CRC

数据链路层广泛使用的时 循环冗余码,即CRC检错技术。
循环冗余码的基本思想是,
①收发双方约定生成多项式G(x)。
例如可以使用多项式 x 3 + x 2 + 1 x^3+x^2+1 x3+x2+1表示位串1101.
②发送方基于待发送的数据和G(x),计算出冗余码,将冗余码附加到数据后面一起发送。
③接收方收到数据和冗余码后,通过G(x)来计算收到的数据和冗余码是否产生差错。

CRC检验码可以检验出所有的单比特错误。

例题

【计算机网络】数据链路层 差错控制 循环冗余码CRC及FCS 习题5-LMLPHP
【计算机网络】数据链路层 差错控制 循环冗余码CRC及FCS 习题5-LMLPHP
【计算机网络】数据链路层 差错控制 循环冗余码CRC及FCS 习题5-LMLPHP
【计算机网络】数据链路层 差错控制 循环冗余码CRC及FCS 习题5-LMLPHP

纠错编码

最常见的纠错编码是海明威。这部分内容,了解即可。

05-15 08:45