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

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

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

2
задан Micah Hunsberger
05.02.2023 1:50 Количество просмотров материала 3617
Распечатать страницу

1 ответ

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

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

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

0
отвечен Austin Hemmelgarn 2023-02-06 09:38

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

Ваш ответ

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

Имя
Вверх