Когда передача данных подделана 1 бит или 2 бита, может ли приемник правильно ее исправить?Имеет ли CRC следующую функцию
ответ
Нет, CRC является кодом обнаружения ошибок, а не кодом с исправлением ошибок.
Подробнее here
CRC в основном используется в качестве кода обнаружения ошибок с. Если общее количество бит (в том числе в CRC) меньше, чем период CRC, тем не менее, можно исправить однобитовые ошибки, вычислив синдром (xor вычисленный и полученный CRC). Каждый бит, если будет изменен индивидуально, генерирует уникальный синдром. Можно выполнить итерацию алгоритма CRC, чтобы найти синдром, который будет связан с каждым битом; если вы обнаружите синдром, связанный с каждым битом, его можно перевернуть и исправить однобитовую ошибку.
Одна из основных опасностей при этом заключается в том, что CRC будет гораздо менее полезен для отказа от фиктивных данных. Если вы используете 8-битный CRC в пакете с 15 байтами данных, только один из 256 случайных пакетов прошел бы срок действия, но половина всех случайных пакетов могла бы быть «скорректирована», перевернув один бит.
Для этого CRC должен иметь возможность обнаруживать все ошибки 1 и 2 бит. – philcolbourn
@philcolbourn: Если CRC имеет период N, единственными двухбитными ошибками, которые он не сможет обнаружить для ввода произвольной длины, будут те, где ошибки несколько кратно N бит друг от друга. Если входной поток равен N битам или короче, все двухбитовые ошибки будут обнаружены. – supercat
Да, это звучит правильно. Я думаю, что N очень большой - больше, чем у большинства пакетов или фреймов для 16 и 32-битных CRC. Но для 8-битных CRC это может быть проблемой - не так ли? – philcolbourn
- 1. Найти следующую функцию
- 2. Можете ли вы описать следующую функцию PHP?
- 3. Имеет ли XSLT функцию Split()?
- 4. Имеет ли python функцию "cause_exception()"?
- 5. Имеет ли java функцию зажима?
- 6. Имеет ли javascript функцию диапазона?
- 7. Имеет ли PowerShell функцию «окна»?
- 8. Имеет ли xslt функцию split()?
- 9. Имеет ли Javascript функцию contains?
- 10. Имеет ли OCaml функцию popcnt?
- 11. Имеет ли VBScript функцию substring()?
- 12. Имеет ли R функцию "expected.glmList"?
- 13. Имеет ли Kotlin функцию идентификации?
- 14. Имеет ли Pig функцию перетасовки?
- 15. Имеет ли C функцию квантования?
- 16. Имеет ли AppleScript функцию замены?
- 17. Имеет ли Ruby функцию SlowEquals?
- 18. JQuery: Пытаясь понять следующую() функцию
- 19. Как принудительно выполнить следующую функцию
- 20. Как реализовать следующую функцию R?
- 21. Как оптимизировать следующую функцию SQL
- 22. Есть ли свободные библиотеки CRC, которые покрывают множество алгоритмов CRC?
- 23. Как получить разумный CRC CRC
- 24. Как сделать следующую рекурсивную функцию?
- 25. Как мне вызвать следующую функцию?
- 26. Как упростить следующую функцию onclick
- 27. CRC 8 и CRC 16
- 28. Как сделать следующую функцию: true или false?
- 29. Реализация CRC-CCITT
- 30. Имеет ли nextTick следующую фазу в Node.js (Event Loop)?
Какой алгоритм CRC? Сколько бит? Этот вопрос действительно довольно расплывчатый. Прочтите ссылку [wikipedia link] (http://en.wikipedia.org/wiki/Cyclic_redundancy_check) для получения дополнительной информации. –
Чувак есть этот удивительный сайт, я думаю, его называют «wikipeida» или что-то в этом роде. Идк, вы должны это проверить. – rook