Проблемы с изменением поля идентификации в заголовке IP с использованием сокета RAW

Я создал сокет RAW и установил опцию сокета как "IP_HDRINCL". Я устанавливаю поле идентификации в исходящем пакете UDP и

отправив то же самое. Я вижу, что это поле меняется на случайное число при отправке пакета. Я могу видеть то же самое в захвате сниффера.

Тот же код при сборке и тестировании на другом компьютере с Windows XP работает нормально, т.е. Я вижу, что поле идентификации в заголовке IP исходящего пакета имеет то же значение, которое я установил.

Не уверен, что происходит не так. Пожалуйста, позвольте мне, если у вас есть какие-либо идеи.

Спасибо,

Рену

1 ответ

Сырые розетки с IP_HDRINCL автоматически устанавливать значения определенного поля ip-пакетов, которые будут отправлены.

В вашем случае идентификатор пакета будет перезаписан в случае, если он равен нулю. (это твой случай?)

Это случаи: (взято из справочной страницы Raw Socket)

          +---------------------------------------------------+
          |IP Header fields modified on sending by IP_HDRINCL |
          +----------------------+----------------------------+
          |IP Checksum           |Always filled in.           |
          +----------------------+----------------------------+
          |Source Address        |Filled in when zero.        |
          +----------------------+----------------------------+
          |Packet Id             |Filled in when zero.        |
          +----------------------+----------------------------+
          |Total Length          |Always filled in.           |
          +----------------------+----------------------------+
Другие вопросы по тегам