计算机网络中的前向纠错
什么是前向纠错?
前向纠错(FEC)是一种在数据传输中进行错误控制的方法,其中源(发送方)提供冗余数据,而目的地(接收方)仅识别无差错的数据部分。FEC可以从一个源同时向多个目的地广播数据,因为它不需要源和目的地之间的握手。
每个字符以最简单的FEC形式传送两次。
接收器验证每个字符的两个实例都遵循使用的协议。
如果两种一致性情况都发生,则接受该字符。
如果出现一个一致性实例但没有出现另一个,则接受遵循协议的字符。
如果不符合,在任何一种情况下,字符都会被拒绝并替换为空格或下划线。
简单FEC是无线电爱好者使用的称为AMTOR的两种自校正数字模式之一(无线电业余爱好者电传打印的缩写)。它也被称为B模式。另一种结合握手的AMTOR模式是自动重复请求(ARQ),与全球移动通信系统(GSM)等通信系统一起使用。
FEC的优缺点
FEC可用于从单个源同时向多个目的地广播数据,因为它不需要源和目的地之间的握手。
另一个好处是FEC减少了重传所需的带宽量。因此,它被用于实时系统。
它的主要缺点是如果故障太多,必须重新发送帧。
FEC的类型
分组码和卷积码是当今经常使用的两种结构不同的代码类型。
块码
块码编码器将信息序列“u”分成“k”个信息位(符号)的消息块,并将每个消息“u”转换为n位代码(符号)。编码率定义为“R=k/n”。冗余位(符号)nk赋予代码处理信道噪声的能力。
两个最接近的码字之间的最小距离dmin指定将一个有效码字转换为另一个有效码字所需的最小数据更改量,是块码的基本参数。此参数确定代码检测和纠正错误的能力。
通常,FEC码可以检测和纠正每个码字最多(dmin-1)/2个错误。
卷积码
卷积码编码器接受信息序列“u”的k位块并生成n个符号块的编码序列“v”。然而,每个编码块都依赖于“m”个先前消息块和同一时间单元中匹配的k位消息块。
为了在嘈杂的信道和冗余位nk上提供可靠的传输,通过提高代码的存储顺序“m”来增加更多的冗余。