Recientemente estaba solucionando un metaproblema de conectividad de red, ya que sabía que se podía llegar a un destino determinado, pero no pude demostrarlo traceroute
porque la ruta se bloqueó después de un cierto número de saltos. Dado que el último salto observado estaba justo aguas arriba del nodo de interés, olfateé el tráfico, esperando confirmar que las sondas lo estaban alcanzando y saber qué regla de filtro los estaba bloqueando. Efectivamente, aprendí que las sondas eran datagramas UDP destinados a un puerto alto (y variable) que, por supuesto, había bloqueado para el tráfico entrante.
Esto me sorprende, porque asumí que todas las traceroute
sondas usarían ICMP por defecto, ya que las respuestas son ICMP. Hice una encuesta de documentación y descubrí que diferentes implementaciones toman diferentes decisiones, y algunas no permiten que el usuario realice una selección no predeterminada.
El resumen del método de la sonda Traceroute y la inferencia de la ruta IP hacia adelante respalda mi intuición de que las sondas ICMP con mayor frecuencia lograrán llegar al destino.
Permitir diferentes métodos de sonda parece una gran idea, pero el hecho de no usar ICMP parece una mala idea. ¿Podría alguien describir la justificación de por qué es mejor usar UDP de forma predeterminada?