A resposta correta para o meu problema foi a de um comentário do @Barmar e ele deve pegar os adereços.
Eu estava enviando os pacotes de cli
com um comando que libera sua saída em segmentos, e essa foi a causa de meus resultados estranhos.
Eu observei a coisa mais estranha - o mesmo pacote, o mesmo tamanho, enviar pela mesma interface às vezes é enviado inteiro, e às vezes fica fragmentado, como se excedesse a interface MTU ...
1472 pacotes fragmentados:
10:10:24.537385 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 1008
10:10:24.537589 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 464
Pacote 1472 não fragmentado:
10:10:34.168099 IP 192.168.56.1.41252 > 192.168.56.101.44444: UDP, length 1472
Isso parece acontecer aleatoriamente. Por que isso acontece?
A interface que envia o pacote tem MTU 1500
, suficiente para 1472 udp. Mas a mesma coisa aconteceu para pacotes menores. tracepath
também mostra mtu 1500 para esse caminho.
Estou no Ubuntu 14.04, 3.13.0-46-generic
A resposta correta para o meu problema foi a de um comentário do @Barmar e ele deve pegar os adereços.
Eu estava enviando os pacotes de cli
com um comando que libera sua saída em segmentos, e essa foi a causa de meus resultados estranhos.
Eu tenho o mesmo problema e, no meu caso, esse fenômeno é causado pelo GSO.
Use skb_is_gso(skb)
para verificar o status do GSO e você pode desabilitar o GSO usando skb_gso_reset(skb)
.
Tags networking ip