W firmie, w której kiedyś pracowałem, musiałem zaimplementować odbiornik gniazdowy, który przeważnie pobierał dane w postaci UDP przez połączenie lokalne z jakiegoś specjalistycznego sprzętu czujnikowego. Dane, o których mowa, były dobrze uformowanym pakietem UDP, ale co ciekawe, ładunek danych zawsze kończył się sumą kontrolną CRC16 utworzoną przy użyciu reszty danych.
Zaimplementowałem kontrolę po mojej stronie, zgodnie ze specyfikacją, ale zawsze zastanawiałem się, czy to było konieczne. W końcu, czy sam protokół UDP nie zawiera 16-bitowego CRC? Dlatego chociaż pakiety UDP mogą zostać utracone lub przestarzałe, miałem wrażenie, że nie można ich uszkodzić bez odrzucenia przez sprzęt sieciowy, zanim dotrą do procesów systemu operacyjnego. A może brakuje mi jakiegoś specjalnego przypadku użycia?
Warto dodać, że pracowałem w przemyśle obronnym, który, jak jestem pewien, można sobie wyobrazić, lubi być bardzo precyzyjny w takich sprawach, więc zastanawiam się, czy to był tylko przypadek „bezpieczeństwa OCD”. ..