Tracert é uma ferramenta de diagnóstico ponto a ponto que utiliza o protocolo ICMP e o campo TTL e para determinar e testar o caminho que os datagramas IP seguem quando são transmitidos entre origem e destino.
Assim como o comando “ping”, ele atua na camada 3 do modelo de referência OSI.
O campo TTL (Time to Live) é um campo de 8 bits cujo o valor padrão varia entre os diversos sistemas operacionais existentes, sendo comuns os valores 128 para sistemas operacionais Windows e 64 para sistemas baseados em Linux. Pelo menos em sistemas operacionais Microsoft, esse valor pode ser alterado conforme necessidade.
O propósito do TTL é determinar o tempo de vida de um datagrama, impedindo que o mesmo trafegue na rede indefinidamente.
Utilizando o comando tracert, toda vez que um datagrama chega a um roteador o TTL é decrementado em um antes de ser encaminhado adiante.
Quando um roteador recebe um datagrama cujo TTL é igual a 0 (zero), ele não o encaminhará mais. O roteador descartará o pacote e enviará de volta ao host de origem uma mensagem ICMP do tipo “Tempo Excedido”.
Essa mensagem contém o endereço IP do roteador como endereço de origem e esse é o mecanismo de funcionamento do comando tracert.
O tracert possui como característica o envio de um datagrama com um TTL igual a 1 ao host de destino. Ao encontrar o primeiro rotador no caminho, esse TTL é decrementado, ficando com o valor zero (TTL 0).
Consequentemente o datagrama é descartado e a mensagem ICMP "Tempo Excedido", é enviada de volta à origem. Lembrem-se de que essa mensagem, possui o endereço IP do roteador e dessa forma, o primeiro roteador no caminho foi identificado.
Então, o tracert enviará um novo datagrama, com o TTL igual a 2, que passará pelo primeiro roteador, que o decrementará para 1, e então será descartado no segundo roteador. Dessa forma o endereço IP do segundo roteador também será identificado.
Esse processo é continuo até que o datagrama chegue (ou não) ao host de destino.
Ao chegar no host de destino, ainda que o TTL do datagrama seja igual a 1, ele não será descartado e, consequentemente a mensagem ICMP “Tempo Excedido” não será enviada.
Neste caso, no que se refere a sistemas operacionais Microsoft, serão enviados datagramas ICMP do tipo “Echo Request” (Ping) e se o dispositivo de origem receber uma resposta do tipo “Echo Reply”, ele saberá que o pacote chegou a seu destino.
Em sistemas operacionais Microsoft, o comando tracert possui parâmetros adicionais que podem ser obtidos digitando em um prompt de comandos o comando tracert /?.
Abaixo, exemplo em sistema operacional Windows 10 Pro.
Conforme imagem, os endereços dos roteadores por onde os pacotes passaram até chegar ao destino especificado são mostrados.
A primeira coluna contém o número de sequência do salto. As três colunas seguintes mostram os RTTs (Round Trip Times) das mensagens enviadas (o traceroute envia três mensagens por padrão para cada salto). A última coluna mostra os endereços IP dos roteadores descobertos na rota.
Assim, espero ter contribuído para o enriquecimento técnico dos leitores.
