在数据链路层的传输中,1可能变成0,0可能变成1,这是比特差错。
为了应对比特差错,有两种方式,即自动重传请求ARQ(Automatic Repeat-reQuest)和前向纠错FEC(Forward Error Correction)。
自动重传请求ARQ方法指接收方检测到此次接收到的数据出现错误后,通知发送端重发,直至接收方接收到正确码字。前向纠错FEC方法指接收端收到错误的数据后可以自己发现并确定比特串的错误位置,并自己进行纠正。
上述方法中都涉及到“确定是否错误传输”的操作,后者还涉及到“确定错误位置”的操作。这些操作都适用冗余编码技术实现的。冗余编码即发送方和接收方事先规定好一个规则,发送方根据此规则在待发送的数据附加上多余的几位比特位(冗余位)。当数据发送到接收方时,接收方用同样的规则将此带冗余位的数据根据约定好的规则去判断此数据是否发生变动,若发生变动则不符合约定好的规则。并且完成“确定是否错误传输”、“确定错误位置”的操作即是使用检错编码和纠错编码来确定和解析冗余位。
减错编码规定的冗余位是只有“确定是否错误传输”的功能的编码方式。以下为两种检错编码。
奇偶校验码
循环冗余码