Отключить проверку контрольной суммы UDP при получении

У меня есть источник, который отправляет udp-пакеты с недопустимыми заголовками контрольной суммы, и у меня нет контроля над источником. Я вижу на wireshark, что эти пакеты добираются до конечного хоста, но приложение не берет их из-за недопустимой контрольной суммы udp. Я хотел бы, чтобы приложение на хосте (windows server 2012) получало эти пакеты и отправляло их повторно с допустимой контрольной суммой, чтобы приложение забирало пакеты.

Я пробовал использовать .Net-объект, гнездо с SocketType сырья и ProtocolType IP, но он также игнорирует пакеты.

5
задан Micah Hunsberger
источник

1 ответов

ваш подход к использованию RAW-сокетов на самом деле не слишком далек от того, что вам нужно.

скорее всего, в вашей системе на сетевую карту выгружена контрольная сумма UDP, что означает, что NIC выполняет проверку контрольной суммы прежде чем ОС увидит пакет. Это отлично подходит по соображениям производительности, но означает, что в вашем случае у вас буквально нет возможности добраться до этих пакетов.

к сожалению, выяснение, включено ли это немного разные на каждой ОС. В Linux можно использовать ethtool для проверки формы командной строки (нет метода GUI, о котором я знаю). В Windows он скрыт на вкладке "Дополнительно" свойств драйвера для сетевого адаптера (вы даже не сможете увидеть или управлять им там, хотя это зависит от драйвера).

0
отвечен Austin Hemmelgarn 2018-09-10 19:48:44
источник

Другие вопросы ip networking sockets udp