Como envio pacotes TCP com packETH?

0

Eu quero enviar pacotes para 127.0.0.1:11311 com packETH. No entanto, existem alguns problemas que não consigo resolver.

Veja algumas capturas de tela: (clique para ampliar)

  1. EmdadosIPv4("Comprimento do cabeçalho")

    O tamanho do cabeçalho dos pacotes que desejo enviar é 20. No entanto, o "comprimento do cabeçalho" aceita apenas um número de um dígito. Como posso resolver esse tipo de problema?

  2. Os pacotes que eu quero enviar não especificam "TOS" (em dados IPv4) & "ponteiro urgente" (em dados TCP)

    Esses dois argumentos são importantes ao enviar pacotes TCP?

  3. Em dados IPv4 ("opções 0x")

    As opções de dados TCP dos pacotes que eu quero enviar são 0x12 . No entanto, continuou mostrando uma mensagem de erro:

    Wrong length of tcp options field(length mod 8 must be 0)

    0x12 mod 8 deve ser zero, eu também tentei 0x08, 0x00 ... etc, mas a mensagem de erro não mudou.

    Eu não tenho ideia de por que isso acontece. É relevante para "Tamanho do cabeçalho"?

por Po-Jen Lai 21.04.2012 / 20:20

1 resposta

0
  1. O campo de comprimento do cabeçalho IPv4 é interpretado como múltiplos de 4 octetos. Os cabeçalhos IPv4 são quase sempre de 20 octetos de comprimento, portanto, o valor desse campo é quase sempre de 5.

  2. Não, os bits TOS / DiffServ e o ponteiro urgente geralmente não são importantes.

  3. Este campo procura um valor, não um comprimento. Quando você digitou 0x12 ou 0x08 ou 0x00 pensando que estava digitando um comprimento, você estava inserindo um único valor de octeto. 1 mod 8! = 0. Eu estou supondo que o pacote que você estava tentando imitar tivesse um valor de Timestamp TCP de 12 octetos lá. Observe também que a opção TCP Timestamp precisa estar alinhada em um limite de 4 bytes de ... o início dos cabeçalhos TCP, se bem me lembro ..., então talvez seja necessário colocar um octeto de um só 0x00 "Nop" / Opções opcionais de TCP também, dependendo de como as coisas se alinham.

por 22.04.2012 / 00:38

Tags