Inconsistência de soma de verificação UDP entre remetente e destinatário

1

Eu quero escrever um programa para gerar a soma de verificação do udp.

para validar o meu programa, eu preciso de alguns dados reais. Eu envio um pacote udp de uma máquina para outra, o pacote pode ser recebido corretamente pelo servidor udp. Eu capturei o pacote usando o tcp dump nas duas máquinas

da máquina cliente udp, os bytes do cabeçalho do pacote udp e pseudo IPV4 são (formato HEX):

pseudo header
src dst ip:    8a60c948 8a60c96d
proto_num len: 0011 0016

UDP header:    83d87d000016 a79e 
      data:    49276d206e6f 742068657265210a

na máquina do servidor udp (receptor):

pseudo header
src dst ip:        8a60c948 8a60c96d
proto_num and len: 0011 0016

UDP header:        83d87d000016 c2c5 
      data:        49276d206e6f 742068657265210a

a soma de verificação deve ser calculada sobre

8a60c9488a60c96d0011001683d87d000016000049276d206e6f742068657265210a

onde o campo de soma de verificação é substituído por 0x0000

mas vemos que a soma de verificação é alterada de 0xa79e no cliente para 0xc2c5 no lado do servidor. por que essa mudança acontece? e qual é a soma de verificação correta do cabeçalho do udp? obrigado!

    
por user138126 19.03.2013 / 14:45

3 respostas

2

Algumas placas de interface de rede (NIC) "ajudarão" você alterando a soma de verificação para você. É chamado de "Checksum Offloading". Uma pesquisa nesse termo ajudará.

    
por 19.03.2013 / 14:58
0

Tente usar "tcpdump -K" ou similar por sua página man do tcpdump:

-K            Don't attempt to verify IP, TCP, or UDP checksums.  This is use-
              ful for interfaces that perform some or all  of  those  checksum
              calculation  in  hardware; otherwise, all outgoing TCP checksums
              will be flagged as bad.
    
por 02.05.2013 / 07:37
0

Eu pego udp check sum na máquina emissora e receptora com o netfilter em layer3. No remetente secundário, a soma de verificação do udp não inclui dados de carga útil. No receptor lateral, a soma de verificação do udp inclui dados de carga útil. Esta é a razão pela qual a inconsistência da soma de verificação do udp.

    
por 02.05.2013 / 20:51