Имеет ли CRC следующую функцию - PullRequest
1 голос
/ 24 февраля 2011

Когда передача данных подделана 1 бит или 2 бита, может ли получатель исправить это автоматически?

Ответы [ 2 ]

6 голосов
/ 24 февраля 2011

Нет, CRC - это код обнаружения ошибок, а не код, исправляющий ошибки.

Подробнее здесь

0 голосов
/ 29 марта 2011

CRC в основном используется в качестве кода обнаружения ошибок.Если общее число битов (включая биты в CRC) меньше, чем период CRC, тем не менее, можно исправить ошибки в одном бите, вычисляя синдром (или вычислить CRC и полученные и полученные CRC).Каждый бит, если щелкнуть по отдельности, будет генерировать уникальный синдром.Можно перебрать алгоритм CRC, чтобы найти синдром, который будет связан с каждым битом;если кто-то обнаружит синдром, связанный с каждым битом, он может перевернуть его и исправить однобитовую ошибку.

Однако при этом возникает одна серьезная опасность: CRC будет гораздо менее полезен для отклонения фиктивных данных.,Если использовать 8-битный CRC для пакета с 15 байтами данных, только один из 256 случайных пакетов пройдет проверку, но половину всех случайных пакетов можно будет «исправить», перевернув один бит.

...