Для компанії, в якій я працював, мені довелося реалізувати приймач сокет, який здебільшого приймав дані у формі UDP через локальне з'єднання з деяких спеціалізованих апаратних датчиків. Дані, про які йдеться, були добре сформованим пакетом UDP, але що цікаво, корисне навантаження даних завжди закінчувалося контрольною сумою CRC16, сформованою з використанням решти даних.
Я здійснив перевірку на своєму кінці відповідно до специфікації, але завжди цікавився, чи потрібно це. Зрештою, невже сам протокол UDP не містить 16-бітної CRC? Тому, хоча пакети UDP можуть бути втрачені або вийшли з ладу, у мене було враження, що вони не можуть бути пошкоджені, не відкинувшись мережевим обладнанням, перш ніж вони дістануться до процесів ОС. Або є якісь спеціальні випадки використання, які я пропускаю?
Варто додати, що я працював у галузі оборони, яка, як я впевнений, ви можете собі уявити, любить бути надто очевидним щодо всього подібного, тому мені цікаво, чи це був просто випадок "OCD безпеки". ..