Mensagens ICMP ainda são pacotes IP. O traceroute usa ECHO Request
(ICMP tipo 8) por padrão no Unix e Windows com incrementos de TTLs, registrando o endereço de envio de cada mensagem Time Exceeded
(Type 11) que retorna dos saltos ao longo da rota. (cf: link )
Esta é a maneira "correta" de fazê-lo, mas você pode ter problemas se alguns dos sistemas na rota falharem ou se manipularem de forma diferente o tráfego ICMP.
Algumas implementações de traceroute
(no Linux, por exemplo) têm -T
e -U
opções para alternar para TCP / UDP (e um argumento -p
a seguir para especificar uma porta de destino). Isso é útil para simular mais de perto o tráfego real, o que pode resultar em um resultado mais preciso em alguns casos.
Eu suspeito que o padrão de implementação do OSX é UDP por esse motivo, mas não posso dizer com certeza. Você pode encontrar um switch para usar o ICMP.