Я хочу написать программу для генерации контрольной суммы UDP.
чтобы проверить мою программу, мне нужны реальные данные. Я отправляю пакет udp с одной машины на другую, пакет может быть корректно принят сервером udp. Я захватил пакет, используя дамп tcp на обеих машинах
с клиентского компьютера udp байты пакета udp и псевдо-IPV4 заголовка (в формате HEX):
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? Спасибо!