¿En qué protocolos se basan traceroute y tracert?
Está basado en ICMP.
Como se menciona en la Sección 8.2 del Volumen 1 de la Explicación detallada del protocolo TCP/IP, los datagramas UDP se envían al host de destino durante el seguimiento de la ruta y el valor del puerto establecido es muy alto, generalmente mayor que 30000. para evitar que se utilice el número de puerto. El texto original es el siguiente:
"El programa Traceroute envía un datagrama UDP al host de destino, pero elige un valor imposible como número de puerto UDP (mayor a 30 000), por lo que el destino Es imposible que cualquier aplicación en el host use este puerto porque cuando llega el datagrama, el módulo UDP del host de destino generará un error de "puerto inalcanzable" (ver sección 6.5.) Mensajes ICMP
En. De esta manera, todo lo que el programa Traceroute tiene que hacer es distinguir si el mensaje ICMP recibido ha agotado el tiempo de espera o si el puerto es inalcanzable, para determinar cuándo finalizará."
El enrutador en el medio devuelve un mensaje de tiempo de espera ICMP tipo 11, código 0 después de TTL=0.
Después de que llega la IP de destino, descomprime y analiza el contenido UDP y descubre que el puerto es inalcanzable. Se devuelve ICMP tipo 3 y se implementa el código 3 (el puerto de destino es inalcanzable).
Las descripciones de los detalles de tracert y TCP/IP en el host de Windows son algo diferentes. El tracert del host de Windows se implementa directamente mediante ping, pero el valor TTL de este ping aumenta en 1 después de 3 paquetes, devuelve un asterisco después de ser inalcanzable o se agota el tiempo de espera y continúa enviando el siguiente paquete TTL hasta alcanzar la configuración predeterminada. 30 saltos. Generalmente, traceroute en enrutadores y conmutadores utiliza UDP. Se puede ajustar la cantidad de paquetes enviados por cada TTL, la cantidad máxima de saltos y el puerto de inicio de UDP.