Насколько надежен алгоритм контрольной суммы UDP? - PullRequest
2 голосов
/ 02 декабря 2011

Кажется, что UDP использует довольно простой алгоритм контрольной суммы, и в большинстве случаев он даст желаемый результат и обнаружит ошибки.

Однако, насколько я могу судить, заголовок для UDP такой же, как и при использовании Jumbo.кадры и контрольная сумма одинаковы.Это всего 16 бит.

Повысит ли это вероятность того, что ошибки будут просачиваться и что протоколы, использующие UDP (особенно те, которые используют большие пакеты), вообще не должны полагаться на контрольную сумму UDP?

Ответы [ 2 ]

3 голосов
/ 28 мая 2015

Как вы указали, UDP использует 16-битную контрольную сумму независимо от размера пакета. Контрольные суммы UDP не могут обнаружить ошибки, если изменение не меняет сумму всех 16-битных слов. Это чаще происходит при увеличении размера пакета.

Однако UDP обычно работает поверх Ethernet, который предоставляет 32-битный CRC, который намного надежнее контрольной суммы UDP. Таким образом, большинство людей полагаются на эфирный каркас, чтобы гарантировать целостность данных.

Большие UDP-пакеты будут фрагментированы на несколько IP-пакетов, каждый в своем собственном Ethernet-пакете с 32-битным CRC. Таким образом, отправка больших пакетов UDP не является проблемой с точки зрения целостности данных, хотя фрагментация IP может увеличить потерю пакетов и переупорядочение.

0 голосов
/ 02 декабря 2011

Большие кадры должны быть фрагментированы, и каждый фрагмент будет иметь контрольную сумму, связанную с ним. Вы правы в том, что размер заголовка не изменяется, но количество отправленных пакетов будет меняться, увеличивая количество отправленных битов контрольной суммы. Надеюсь, это поможет.

...