Для компании, в которой я работал, мне пришлось реализовать сокет-приемник, который в основном принимал данные в виде UDP по локальному соединению от некоторого специализированного сенсорного оборудования. Данные данные представляли собой правильно сформированный пакет UDP, но, что интересно, полезная нагрузка данных всегда заканчивалась контрольной суммой CRC16, сформированной с использованием остальных данных.
Я реализовал проверку на своем конце, согласно спецификации, но я всегда задавался вопросом, было ли это необходимо. В конце концов, сам протокол UDP не несет 16-битный CRC? Поэтому, хотя UDP-пакеты могут быть потеряны или вышли из строя, у меня сложилось впечатление, что они не могут быть повреждены без их удаления сетевым оборудованием до того, как они достигнут процессов ОС. Или я пропускаю какой-то особый вариант использования?
Стоит добавить, что я работал в оборонной промышленности, которая, как я уверен, вы можете себе представить, любит быть сверхъестественной во всем, как это, поэтому мне интересно, был ли это случай «безопасности OCD». ..