Alta latência no ping mas ok para traceroute na rede local via wi-fi

1

Eu fiz ssh em uma máquina local por wi-fi e experimentei latência como se estivesse trabalhando em um servidor do outro lado do mundo. O ping mostra:

$ ping imac.local
PING imac.local (192.168.0.38): 56 data bytes
64 bytes from 192.168.0.38: icmp_seq=0 ttl=64 time=4.961 ms
64 bytes from 192.168.0.38: icmp_seq=1 ttl=64 time=164.356 ms
64 bytes from 192.168.0.38: icmp_seq=2 ttl=64 time=184.635 ms
64 bytes from 192.168.0.38: icmp_seq=3 ttl=64 time=203.981 ms
64 bytes from 192.168.0.38: icmp_seq=4 ttl=64 time=128.627 ms
64 bytes from 192.168.0.38: icmp_seq=5 ttl=64 time=143.717 ms
64 bytes from 192.168.0.38: icmp_seq=6 ttl=64 time=112.190 ms
64 bytes from 192.168.0.38: icmp_seq=7 ttl=64 time=184.448 ms
64 bytes from 192.168.0.38: icmp_seq=8 ttl=64 time=205.589 ms
64 bytes from 192.168.0.38: icmp_seq=9 ttl=64 time=124.649 ms

No entanto, o traceroute é magicamente rápido:

$ traceroute imac.local
traceroute to imac.local (192.168.0.38), 64 hops max, 52 byte packets
 1  192.168.0.38 (192.168.0.38)  5.522 ms  4.412 ms  5.133 ms

Não é um acaso, corri várias vezes e não consegui uma latência superior a 10 ms. Alguma idéia de por que ping e traceroute fornecem diferentes latências?

Edit: Deve ser específico do OSX. Um laptop para PC e o roteador wifi me dão latências de ping de 10ms, enquanto o ping dos dois computadores osx me fornece as altas latências.

    
por luntain 27.08.2018 / 23:50

1 resposta

-1

Primeiro, existem muitos fatores que podem interferir nos sinais sem fio. Por exemplo, a distância é muito alta ou o bloqueio de sinal.

Em segundo lugar, o princípio de funcionamento do ping e do traceroute é diferente.

Ping envia uma mensagem de solicitação de eco ICMP ao destino e informa se ela recebe o eco ICMP desejado (resposta de eco ICMP). É um comando para verificar se a rede é fluente ou a velocidade da conexão de rede. Princípio: Usando a exclusividade do endereço IP da máquina na rede, envie um pacote para o endereço IP de destino. Em seguida, peça à outra parte para retornar um pacote do mesmo tamanho para determinar se as duas máquinas de rede estão conectadas e qual é o atraso.

Quando o host usa o comando traceroute, ele primeiro envia um pacote contendo um cabeçalho IP e um pacote UDP. Ao passar por um roteador, o roteador diminuirá o valor do TTL do cabeçalho IP e do cabeçalho IP no cabeçalho ICMP em 1. Quando o valor TTL do ICMP for 0, o roteador descartará o datagrama e retornará o ICMP cronometrado. pacote para o host de origem. Depois de receber o pacote ICMP de tempo limite, o host de origem adiciona 1 ao TTL do cabeçalho IP no ICMP anterior para continuar enviando datagramas IP até que o endereço de destino receba um datagrama IP com um valor TTL de 1. O endereço de destino não descarte o datagrama e retorne a mensagem ICMP de tempo limite. Neste momento, o host de origem analisará o pacote UDP no ICMP. O pacote UDP geralmente usa uma porta que não está disponível para o destinatário final, portanto, o host de destino retornará uma mensagem ICMP "inacessível à porta". Ele é usado principalmente para distinguir se o pacote ICMP é expirado ou se a porta está inacessível. Quando o host de origem recebe um pacote ICMP com uma porta inacessível, ele sabe que o rastreamento de rota foi concluído.

Você pode consultar este link para informações detalhadas. Compreender como o trabalho de ping e traceroute pode ajudar você a entender melhor seu problema.

    
por 28.08.2018 / 11:17