Цитата(Oldring @ Jun 5 2007, 13:43)

Тогда используйте максимальную длину полинома

CRC хорош, если сбои - отдельные биты. В этом случае, например, можно гарантировать, что будут обнаружены два любых сбойных бита. Если вероятность сбоя одного бита мала - это дает хорошее уменьшение вероятности ошибочной передачи блока.
У вас защищены CRC отдельные блоки. Существует некоторая вероятность, что CRC на блок не детектирует ошибку из-за её множественности. Полностью сбойный один блок с множественными ошибками может не поялиять на синдром всего файла. С некоторой вероятностью. Грубо для оценки можно считать, что пропущенные внутренним CRC ошибки приводят к случайному синдрому внешнего CRC с равномерным распределением, и тогда вероятность необнаружения ошибок внешним кодом равна вероятности необнаружения ошибки в одном блоке внутренним кодом, деленной на 2 в степени числа бит внешнего CRC. Ну и нужно еще умножить эту вероятсность на общее число блоков (для малых вероятностей), чтобы получить вероятность ошибочного приема всего файла. Широко используемое для защиты файлов CRC-32 дает очень небольшую вероятность пропуска ошибки, если вероятность пропуска ошибочного блока мала. Только хорошо бы убедиться, что полином внешнего кода взаимно прост с полиномом внутреннего - например, выбрав в качестве полинома внешнего CRC неприводимый полином.
1)Что значит "неприводимый полином"? Для внутреннего CRC16 использую стандартный алгоритм расчета с полиномом 8005.
2)И как всетаки количество бит в CRC зависит от объема файла (в самом простом случае - при неких стандартных свойствах канала)?
если вообще зависит -)...
Ведь очевидно, что для блока (пакета) данных размером ,например в 10Мб, не целесообразно использовать CRC8. Так же как и для блока размером в 100 байт не целесообразно использовать CRC32.
Видимо, теоретически оценить это довольно сложно...Может кто-нибуть на практике сталкивался?