Convirtió un par de métodos diferentes para implementar trace-route con su pregunta.
ICMP no usa UDP: ICMP no usa ningún protocolo de transporte. Es su propio “protocolo de mensajes de control de Internet” y no necesita uno.
Hay más de una forma de implementar una aplicación traceroute. Los sistemas Windows generalmente usan solicitudes de eco ICMP (también conocido como paquetes “ping”). Los sistemas Linux usaban un datagrama UDP.
- Si se recibe un paquete que no está destinado a esa subred, ¿a dónde será dirigido?
- ¿Por qué la mayoría de las aplicaciones ignoran el campo TOS en el encabezado IP? ¿No ignorarlo resolvería parcialmente la neutralidad de la red?
- ¿Cómo podemos calcular fácilmente la próxima ip de una subred compleja?
- ¿TCP aprovecha al máximo la capacidad de rendimiento de la red? ¿Por qué?
- ¿Cómo implementaré una conexión múltiple (hasta 3 conexiones simultáneas) de velocidad de carga y descarga de TCP en Java?
En ambos casos, el host envía una serie de mensajes (ya sea ICMP “ping” o algún datagrama UDP inocuo) con su valor Time-To-Live (TTL) aumentando de 1 a ###. Para mayor claridad, TTL también se llama “límite de salto”, es decir, no es tiempo en términos de segundos, sino tiempo en términos de [cuántas veces se puede reenviar este paquete a través de un salto antes de que necesitemos descartarlo].
Cuando un enrutador obtiene el datagrama, disminuye el valor TTL en 1 y lo activa. Si el TTL es 0 después de la disminución, descarta el datagrama y responde al host con un mensaje de límite de TTL excedido. De esta manera, el host recibe un mensaje del enrutador intermedio más cercano al más alejado. Utiliza estos mensajes para rastrear la ruta entre sí mismo y su destino deseado.
Entonces, el flujo es así:
- enviar un datagrama a la dirección de host remota abcd con un TTL de 1
- primer enrutador obtiene el datagrama, disminuye el valor TTL
- El valor TTL resultante es 0
- el primer enrutador responde al host con un mensaje de sí mismo que dice “límite de TTL excedido”
- primer enrutador descarta el datagrama
- el host toma nota de la dirección IP de ese enrutador
- host envía otro datagrama a la dirección de host remota abcd con un TTL de 2
- el primer enrutador disminuye el valor TTL a 1 … y como no es 0, lo reenvía
- repita esta secuencia hasta que reciba una respuesta del host remoto
Todo esto supone:
- Los dispositivos remotos e intermedios deben responder a estos datagramas.
- no hay rutas de red que cortafuegos estos mensajes o el protocolo UDP o puertos UDP específicos que se utilizan.
Traceroute – Wikipedia