Deixe-me tentar responder a isso, porque é um pouco mais complicado que possa parecer inicialmente.
Parece que você já conhece a operação básica, traceroute
mas antes de qualquer outra coisa, aqui está uma pequena recapitulação:
traceroute
tenta determinar todas as etapas intermediárias do host para um host de destino ou apenas a distância, ou seja, o número de saltos, do host para um host de destino. Para fazer isso, ele começa a enviar pacotes para o host de destino com um número de porta de destino "aleatório" e um TTL que começa em 1 e continua aumentando.
A idéia é que cada roteador no meio diminua o TTL em 1. Portanto, se o TTL atingir 0 (na realidade, nunca o faz, já que o roteador que está prestes a diminuí-lo para 0 produz um erro antes disso), o roteador retornará um ICMP Mensagem de erro " Tempo de vida excedido ", por exemplo, número do pacote 24 no seu arquivo de captura. O que você obtém disso é que seu destino está mais distante e é por isso que você continua aumentando o TTL.
Quando o seu pacote possui um TTL grande o suficiente para chegar ao destino, você receberá uma mensagem de erro ICMP diferente: " Destino inacessível (porta inacessível) ", por exemplo, pacote número 208 no seu arquivo de captura. O que você obtém disso é que o último TTL usado é realmente o número de saltos entre você e o nó de destino. A razão pela qual você recebe um erro é simplesmente porque você está enviando uma mensagem para uma porta "aleatória" que o nó de destino (espero) não está ouvindo.
Agora entrando em detalhes para o seu arquivo de captura:
Na página do manual traceroute
, podemos ver que cada TTL é usado 3 vezes (opção '-q') e o protocolo padrão usado é UDP (opção '-P'). Examinando os três primeiros pacotes UDP, ou seja, os pacotes 8-9-10 , podemos ver de fato que o TTL é 1 . Os próximos 3, ou seja, 11-12-13 , têm um TTL 2 e assim por diante. Então, da perspectiva da fonte, tudo parece correr bem.
Depois de algum tempo dependente do atraso da rede, começamos a receber as mensagens de erro previstas. Assim, podemos ver que os pacotes 24-25-26 são pacotes de erro " Tempo de vida excedido " e, portanto, significam que o destino está mais distante.
Essa troca de tentativas e erros continua até que, finalmente, o pacote 208 e depois você pode ver as mensagens de erro " Porta inacessível ", significando que seu destino foi alcançado.
Contando os pacotes que você envia e as respostas, você pode descobrir até pelo rastreio que o TTL realmente funcionou, mas é uma tarefa tediosa :)
Espero que tenha ajudado
Seu cliente está enviando apenas os três primeiros pacotes com um TTL de 1. Os próximos três são enviados com um TTL de 2. Os próximos três são enviados com um TTL de 3. E assim por diante.
Uma maneira mais fácil de visualizar isso é definir o campo TTL IP como sua própria coluna no Wireshark. Simplesmente clique com o botão direito do mouse no valor TTL em qualquer pacote e selecione "Aplicar como coluna":
A partir daí, você pode ver que os pacotes 8,9,10 têm um TTL de 1. E os pacotes 11,12,13 têm um TTL de 2. E assim por diante.
Isso está acontecendo porque é assim que o Traceroute funciona. Ele tira proveito do que um roteador faz quando diminui um TTL para 0. Em vez de continuar encaminhando o pacote, ele envia de volta ao cliente original uma "mensagem ICMP TTL expirada em trânsito" (consulte o pacote nº 24 em sua captura) .
Portanto, como cliente, quando você envia o primeiro conjunto de pacotes com um TTL de 1, o primeiro roteador no caminho responde com a mensagem TTL expirada. Você mede o tempo que levou para receber a mensagem TTL expirada contra o envio das mensagens iniciais, e isso fornece os três primeiros valores na saída do Traceroute.
Em seguida, você envia outro conjunto de três pacotes com um TTL de 2. O primeiro roteador no caminho o decrementa para 1 e depois o encaminha para o próximo roteador no caminho. Na recepção, quando o segundo roteador o obtém, ele diminui o TTL para 0, o que solicita que ele descarte o pacote e envie o TTL expirado em trânsito.
O processo continua até que seu cliente receba (bem, três) mensagens TTL expiradas de cada roteador em trânsito entre você e o destino final contra o qual você está executando o seu traceroute.
fonte