对于链路层帧,通常会包含一些冗余位。假设我们有一个包含 X 位实际数据的帧,并且需要 Y 位纠错位。
我们需要为 Y 选择多大的尺寸才能保证我们有 100% 的机会在接收端收到完整的消息,没有错误?
对于链路层帧,通常会包含一些冗余位。假设我们有一个包含 X 位实际数据的帧,并且需要 Y 位纠错位。
我们需要为 Y 选择多大的尺寸才能保证我们有 100% 的机会在接收端收到完整的消息,没有错误?
CRC 通常不太适合纠错,只是检测。
您添加到原始数据块的任何冗余都受限于它可以检测(或纠正)的错误数量。
任何实际传输信道的统计错误率都大于零。巧妙构建的冗余数据可以将出错的概率降低几个数量级,但再多的冗余也无法将该概率降低到零。
在实践中,您可能希望将错误率降低到一个无关紧要的程度 - 大多数以太网变体旨在保证 10 -12或更高的误码率。检测错误比纠正错误要容易得多,因此在某些情况下,删除错误数据并重试可能更合理。以太网不会对 FCS 错误重试,但某些更高层协议会重新发送丢失的数据。
有关前向纠错的示例,请查看https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction