Несоответствие контрольной суммы UDP между отправителем и получателем

Я хочу написать программу для генерации контрольной суммы UDP.

для проверки моего progra, мне нужны некоторые реальные данные.
Я посылаю udp пакет с одной машины на другую машину, пакет может быть правильно получен сервером udp.
Я захватил пакет, используя дамп tcp на обеих машинах

на клиентском компьютере udp байты udp-пакетов и заголовков псевдо IPV4(шестнадцатеричный формат):

pseudo header
src dst ip:    8a60c948 8a60c96d
proto_num len: 0011 0016

UDP header:    83d87d000016 a79e 
      data:    49276d206e6f 742068657265210a

на машине сервера udp (приемник):

pseudo header
src dst ip:        8a60c948 8a60c96d
proto_num and len: 0011 0016

UDP header:        83d87d000016 c2c5 
      data:        49276d206e6f 742068657265210a

контрольная сумма должна быть рассчитана за

8a60c9488a60c96d0011001683d87d000016000049276d206e6f742068657265210a

, где поле контрольной суммы заменяется 0x0000

но мы видим, что контрольная сумма изменяется с 0xa79e на клиенте на 0xc2c5 на стороне сервера. почему происходит это изменение? и какая правильная контрольная сумма заголовка udp?
спасибо!

8
задан user138126
07.05.2023 23:58 Количество просмотров материала 2547
Распечатать страницу

3 ответа

некоторые сетевые карты (NIC) "помогут" вам, изменив контрольную сумму для вас. Она называется "разгрузка контрольной суммы". Поиск по этому термину поможет.

2
отвечен kmort 2023-05-09 07:46

попробуйте использовать "tcpdump-K" или аналогичный на вашей справочной странице tcpdump:

-K            Don't attempt to verify IP, TCP, or UDP checksums.  This is use-
              ful for interfaces that perform some or all  of  those  checksum
              calculation  in  hardware; otherwise, all outgoing TCP checksums
              will be flagged as bad.
0
отвечен Nevin Williams 2023-05-09 10:03

Я ловлю контрольную сумму udp в отправителе и получателе с netfilter на уровне 3. В side sender контрольная сумма udp не включает данные полезных данных. На стороне получателя, суммы UDP содержат полезных данных. Это причина несогласованности контрольной суммы udp.

0
отвечен xuan11290 2023-05-09 12:20

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх