Цитата(blackbit @ Jun 6 2007, 09:15)

Тутевич "Телемеханика". В одной из глав найдете оценку эффективности CRC.
так и не нашел эту книгу. Может есть у кого-нибудь?
Цитата(Oldring @ Jun 5 2007, 14:34)

... CRC32 может быть полезным и для блока в 100 байт, если высока вероятность ошибки в этом блоке, и требуется низкая остаточная вероятность ошибочного приема блока. Для ваших задач внешнего CRC16 с другим полиномом или хотя-бы ненулевой инициализацией регистра, скорее всего, будет достаточно (надеюсь, это не система подрыва ядерного заряда?). Но и CRC8 может хватить, если ошибочные файлы принимаются редко, и уменьшение вероятности их ошибочного приема в 256 раз достаточно.
Что вообще говоря вы экономите?
СПасибо за пояснения, вроде чтот о прояснилось.
Насколько я понял,
конечная вероятность записи искаженного блока на диск будет равна произведению вероятности необнаружения ошибки в блоке ( соответственно,1/2*16 или 1/2*32 для СRС16 и 32) и вероятности появления множественных ошибок в блоке при передаче по каналу связи.
Последняя зависит от свойств канала, ну и, наверное от длины самого блока - ведь, интуитивно - чем больше блок данных, тем больше вероятность его искажения при передаче.
ВИдимо, все зависиит от свойств канала в конечном счете.
Вот что нашел :
1)"Алгоритм CRC16/32 изначально предназначался для контроля целости данных от непреднамеренных искажений. Он широко используется в проводных и беспроводных сетях, магнитных и оптических носителях, а также микросхемах постоянной или перешиваемой памяти. "Надежность" CRC32 оценивается как 2^32 == 4.294.967.296, то есть вероятность, что контрольная сумма искаженного файла "волшебным" образом совпадет с оригиналом, оценивается (в среднем) как один против четырех миллиардов раз. Отсюда следует, что, передав восемь миллиардов пакетов через сильно зашумленный канал, мы рискуем получить пару "битых" пакетов, чьи искажения останутся необнаруженными. Но ведь в действительности все совсем не так!
! Природа большинства физических помех и дефектов носит групповой характер, с которым CRC32 легко справляется и в реальной жизни. Никакие искажения от CRC32 не ускользают! "
2)"CRC16 гарантируется обнаружение практически всех одиночных и двойных ошибок, всех нечетных ошибок, всех пакетов ошибок длиной до 16 знаков, а также всех 17-битовых ошибок с вероятностью 0,999969 и более длинных пакетов ошибок с вероятностью 0,999984. При использовании CRC-32 только один из 4 294 967 296 (232) плохих пакетов может иметь правильную CRC."
3)"Properties of CRCs
Undoubtedly CRCs have many obscure properties that mathematicians could discuss for far too long. From a practical standpoint, the properties we are interested in are the ones dealing with error detection. All the common generator polynomials cited in this paper have the following properties (Tannenbaum, p211):
1. Detect all single bit errors.
2. Detect all occurrences of two single-bit errors for frames less than 2n-1 bits in length.
3. Detect all odd number of bits errors.
4. Detect all burst errors with a length less the n.
5. Detect all but 1/2n-1 burst errors of length n + 1.
6. Detect all but 1/2n other errors.
Where n = number of bits in CRC."
из п.6 следует, что
в самом худшем случае вероятность необнаружения ошибки равна 1/2*n.
Исходя из всего этого, думаю попробовать использовать CRC16 (а не CRC32) для проверки целостности всего файла.