Em um sistema Linux embutido Arago, uma interface normalmente seria capaz de executar ping em outros destinos na rede. No entanto, os pings param de funcionar ao usar um utilitário como iperf ou scp para enviar tráfego TCP para esses destinos. Addtionally, o iperf e scp trabalha momentaneamente (isto é, envia dados) e então o tráfego tcp do iperf e do scp pára. Ao mesmo tempo, o tráfego ICMP do ping para o dispositivo de destino é interrompido.
Quando executamos o tcpdump na interface, ele parece permitir o envio do tráfego tcp do ponto A para o ponto B sem um problema. Como poderia o tcpdump fazer funcionar? Parece o experimento da dupla fenda, que o ato de observar faz com que ele se comporte de um jeito e o ato de não observar faz com que ele se comporte de outra maneira.
Em qualquer caso, é um ambiente linux embutido (Arago) que possui o busybox instalado. Se alguém tiver uma ideia de como o tcpdump pode afetar uma interface em que está ouvindo, compartilhe seu entendimento.
O comando tcpdump que eu uso é o seguinte:
tcpdump -i {interface} -w {file_name.pcapng}
NOTA: Uma hipótese que tive foi que o tcpdump coloca a interface em modo promíscuo ao capturar pacotes. No entanto, quando eu colocá-lo em modo promíscuo usando "promisc (promconfig {interface}" sem tcpdump, os dados não passaram e os pings ficaram sem resposta (ou seja, o mesmo resultado indesejado). Existem outras coisas que o tcpdump faz na interface que ele detecta?