Por que o traceroute demora muito mais que o ping?

15

Como explicar isso?

C:\Documents and Settings\Administrator>tracert google.com

Tracing route to google.com [64.233.189.104]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.0.1
  2     7 ms    <1 ms    <1 ms  reserve.cableplus.com.cn [218.242.223.209]
  3   108 ms   135 ms   163 ms  211.154.70.10
  4     *        *        *     Request timed out.
  5     2 ms     *        1 ms  211.154.64.114
  6     1 ms     1 ms     1 ms  211.154.72.185
  7     1 ms     1 ms     1 ms  202.96.222.77
  8     2 ms     1 ms     2 ms  61.152.81.145
  9     1 ms     2 ms     1 ms  61.152.86.54
 10     1 ms     1 ms     1 ms  202.97.33.238
 11     2 ms     2 ms     2 ms  202.97.33.54
 12     2 ms     1 ms     2 ms  202.97.33.5
 13    33 ms    33 ms    33 ms  202.97.61.50
 14    34 ms    34 ms    34 ms  202.97.62.214
 15    34 ms   186 ms    37 ms  209.85.241.56
 16    35 ms    35 ms    44 ms  66.249.94.34
 17    34 ms    34 ms    34 ms  hkg01s01-in-f104.1e100.net [64.233.189.104]

Trace complete.

O tempo médio deve ser: 1 + 7 + 108 + 2 + 1 + 1 + 2 + 1 + 1 + 2 + 2 + 33 + 34 + 34 + 35 + 34 + 34 + 35 + 34, que é um muito maior que ping

C:\Documents and Settings\Administrator>ping google.com

Pinging google.com [64.233.189.104] with 32 bytes of data:

Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241
Reply from 64.233.189.104: bytes=32 time=34ms TTL=241

Ping statistics for 64.233.189.104:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 34ms, Maximum = 34ms, Average = 34ms
    
por splattne 05.02.2010 / 09:40

7 respostas

15

Você não pode simplesmente somar todos esses números. Esse é o tempo de ping para cada um dos saltos no caminho para o google. Então, naturalmente, cada trecho do caminho fica cada vez mais distante e você vê vários tempos de ping. Se você olhar o último tempo de ping em tracert (34 ms) e o tempo que você recebeu quando você emitiu o ping (34ms), estes são os mesmos. O programa tracert não é mais lento que o ping.

Gostaria de sugerir que você lesse como funciona um traceroute: link

    
por 05.02.2010 / 10:13
11

Você pode ver o ping como uma unidade de Nova York a São Francisco. Demora, digamos 200 horas (sou da Suíça e não estou familiarizado com as distâncias nos EUA)

Mas o motorista tem que voltar para Nova York para lhe dizer que ele estava em San Francisco. Você dá uma olhada no relógio e agora calcula que ele levou 400 horas pela distância. Agora é isso que o Ping faz. O que o Traceroute faz é: diga ao seu motorista que ele deve dirigir de Nova York a San Franciso e toda vez que ele chega em uma encruzilhada ele deve voltar e dizer o nome dele. Então ele está a caminho e as primeiras encruzilhadas estão em Nova York. Então ele é bem rápido em dirigir de volta para você e dizer o nome da encruzilhada. Mas quando ele chegar mais longe, ele levará mais tempo para voltar para você. e assim por diante ...

Então, se você contar todas as horas de condução que ele estava a caminho, ele demoraria muito mais tempo relatando todas as encruzilhadas do que se tivesse que dirigir até São Francisco. Espero que isso apague algumas coisas para você ...

    
por 06.01.2012 / 17:10
0

Na verdade, isso se deve basicamente ao fato de que a PING enviou uma solicitação ICMP pela rede para o DNS e outro dispositivo da Rede.

No entanto, o Traceroute envia muitos pacotes com um TTL realmente curto.

Por exemplo, ao tentar ingressar em www.google.com a partir do seu assento, o traceroute enviou um paquet para www.google.com com um TTL definido como 1 e aguarde uma resposta do primeiro dispositivo da rede de encontros.

Em seguida, o Traceroute exibe o IP do primeiro appliance da rede na sua tela, e depois ele fará a mesma coisa, mas desta vez com um TTL definido para 2, etc.

No final, o Traceroute aguardou cerca de metade do tempo porque, a cada envio, está aguardando uma resposta do appliance de uma rede.

    
por 05.02.2010 / 10:45
0

Traceroute sempre informa a média ao destino, não um acúmulo de vezes, ou seja, no seu caso, são 34ms com ping e traceroute .

Se o traceroute fizesse o que você sugere, o resultado seria bastante ilegível.

Se você estiver interessado apenas no tempo de resposta do destino, ping é suficiente, traceroute é para quando você precisa depurar algo na rota para o destino. Além disso, todos os saltos entre você e o destino são roteadores e, na maioria das vezes, os roteadores têm prioridade sobre o que fazer, ou seja, os primeiros pacotes de rota e respondem ao ping ou traceroute (isto é, no primeiro caso, respondendo um icmp echo reply , e no segundo caso, um icmp time exceeded ) e frequentemente respondem mais lentamente (quando eles respondem de alguma forma)

    
por 05.02.2010 / 10:04
0

Para a posteridade, já que nenhuma das respostas corretas é muito clara ...

-

Cada hora mostrada no traceroute é o TEMPO TOTAL da SUA MÁQUINA (ou da máquina que faz o traceroute ...) para ESSE NÓ EM PARTICULAR.

Em outras palavras, o tempo mostrado no segundo nó não é o tempo entre os nós 1 e 2, mas sim o tempo total entre a fonte, o primeiro nó e o segundo nó juntos.

Portanto, em média, os horários mostrados em cada nó devem ser aproximadamente os tempos que você obteria se você pingasse esse nó específico "diretamente" (não é mais direto do que um traceroute na realidade ... ele geralmente segue o mesmo caminho na internet).

Lembre-se apenas de que existe um "pico de atraso". A maneira mais precisa de encontrar a fonte de qualquer atraso é executar um traceroute ao repetir usando um arquivo de lote (se você estiver no Windows) e encontrar o nó mais próximo (com numeração mais baixa) que tenha números altos em um determinado momento. / p>

-

Para o arquivo em lote, abra o bloco de notas e digite essas três linhas:

:start
tracert -d www.google.com
goto start

Em seguida, salve como "Trace.bat", mas lembre-se de alterar o tipo de arquivo no diálogo salvar para "todos os arquivos" antes de salvá-lo ou ele ainda será salvo como um arquivo de texto.

Quando aberto, ele sempre executará traceroutes (para o google). Você pode pará-lo pressionando ctrl + c enquanto a janela estiver selecionada.

-

Você pode, claro, alterar o local onde está sendo executado o traceroute alterando "www.google.com" para o endereço que quiser.

Você também pode remover a opção "-d" se quiser ver os nomes de host resolvidos, mas isso fará com que o traceroute demore mais tempo devido à obtenção dos nomes de host de um servidor DNS para cada nó (isso NÃO altera o real resultados, no entanto).

Por fim, se você encontrar um nó com tempos altos e quiser executar traceroutes para esse nó específico no caso de outro nó antes que ele tenha problemas, você poderá alterar "www.google.com" para o endereço IP ou host desse nó nome, OU você pode usar a opção -h para especificar quantos nós fora pesquisar, ou seja ...

:start
tracert -d -h 5 www.google.com
goto start
    
por 07.10.2017 / 17:29
-1

Porque o tracert usa pacotes UDP, como o ping, usa pacotes ICMP. No Linux, temos a opção traceroute -I para fazer o traceroute ICMP.

Em seu teste, o tempo para se conectar ao google é o mesmo em traceroute e ping: 34ms. Todos os roteadores no meio têm seu próprio tempo para responder, mas não afetam o tempo final de transferência.

link explique tudo no Traceroute

    
por 05.02.2010 / 09:46
-1

Você pode aumentar seu traceroute desativando a pesquisa de DNS reverso, que geralmente falha: tracert -d www.google.com

    
por 05.02.2010 / 09:59