Traceroute, ICMP, UDP e TCP

4

Quando o traceroute usa o TCP? Ou apenas usa o UDP, também por que o Traceroute usa o UDP no MacX e no ICMP no Windows? Eu pensei que o ICMP apenas contém uma mensagem dizendo o que causou o erro de um pacote e não transmite segmentos como TCP e UDP.

    
por user171131 25.04.2013 / 13:43

2 respostas

3

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.

    
por 25.04.2013 / 14:00
0

O Windows Tracert normalmente usa o ICMP com um TTL específico. O TTL é aumentado a cada salto até atingir o destino. Isso significa que o primeiro salto tem um TTL (max-hop-count) de 1. Mesmo que o pacote não atinja o alvo, o primeiro hop o abandona e envia uma mensagem TIME EXCEEDED de volta, esta mensagem é usada para mapear a rota , e o próximo ICMP é enviado com um TTL de 2.

O OSX e o Linux usam UDP por padrão com números de porta crescentes, mas ambos podem ser configurados para usar pacotes TCP, UDP, ICMP ou GRE.

    
por 25.04.2013 / 13:57