Я хочу отправить пакеты на 127.0.0.1:11311 с packETH. Однако есть некоторые проблемы, которые я не могу решить.

Вот несколько скриншотов: (нажмите, чтобы увеличить)


  1. В данных IPv4 ("Длина заголовка")

    Длина заголовка пакетов, которые я хочу отправить, равна 20. Однако "Длина заголовка" принимает только однозначное число. Как я могу решить эту проблему?

  2. Пакеты, которые я хочу отправить, не указали "TOS" (в данных IPv4) и "срочный указатель" (в данных TCP)

    Важны ли эти два аргумента при отправке пакетов TCP?

  3. В данных IPv4 ("параметры 0x")

    Параметры данных TCP пакетов, которые я хочу отправить, - 0x12 . Однако он продолжал показывать сообщение об ошибке:

    Неверная длина поля опций tcp (длина мода 8 должна быть 0)

    0x12 mod 8 должен быть нулевым, я также пробовал 0x08, 0x00 ... и т.д., Но сообщение об ошибке не изменилось.

    Я понятия не имею, почему это происходит, имеет ли это отношение к "длине заголовка"?

1 ответ1

0
  1. Поле длины заголовка IPv4 интерпретируется как кратное 4 октету. Заголовки IPv4 почти всегда имеют длину 20 октетов, поэтому значение этого поля почти всегда равно 5.

  2. Нет, биты TOS/DiffServ и срочный указатель обычно не важны.

  3. Это поле ищет значение, а не длину. Когда вы вводите 0x12 или 0x08 или 0x00, думая, что вводите длину, вы на самом деле просто вводили одно октетное значение. 1 мод 8!= 0 Я предполагаю, что у пакета, который вы пытались имитировать, было 12-октетное значение TCP Timestamp. Также обратите внимание, что параметр TCP Timestamp должен быть выровнен по 4-байтовой границе от ... начала заголовков TCP, если я правильно помню ..., поэтому вам может понадобиться ввести один октет 0x00 "Nop"/ Также нет опций TCP, в зависимости от того, как все выровнено.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .