¿Qué es Path MTU Discovery y cómo funciona?

Path MTU Discovery (PMTUD) se define en RFC 1191: Página en Ietf.

El objetivo de PMTUD es determinar el tamaño de paquete más grande posible que se pueda enviar desde el origen al destino. Para grandes transferencias de datos, esta sería la forma más eficiente de enviar los datos.

PMTUD funciona enviando paquetes de diferentes tamaños con el bit Don’t Fragment (DF) establecido en el encabezado IP. Esto le indica a los enrutadores a lo largo de la ruta que descarten el paquete si descubren un enlace que no puede manejar el paquete. También se supone que los enrutadores envían un mensaje de error ICMP que dice que han descartado el paquete. La fuente obtendría estos errores ICMP y se daría cuenta de que el paquete asociado era demasiado grande y reduciría el tamaño del paquete.

Desafortunadamente, desde que PMTUD se definió por primera vez, Internet se ha convertido en un lugar más duro. Muchas personas han usado paquetes ICMP para ataques de denegación de servicio (DoS). Como resultado, muchas personas bloquean todos los paquetes ICMP entrantes. Esto rompe PMTUD porque la fuente ya no puede recibir retroalimentación oportuna. La fuente ve que sus paquetes se pierden y puede agotar el tiempo de espera cuando no se reconocen, pero esto aumenta considerablemente la penalización por usar PMTUD y puede hacer que las transferencias de datos sean más lentas que si PMTUD no estuviera en uso.

Este problema no se abordó en el diseño de IPv6, pero se debe abordar en la próxima versión cuando el mundo esté listo para eso.

Tony Li ha proporcionado la carne de la respuesta. Agregaré un poco de condimento extra.

  • Debido a que hay ataques basados ​​en la fragmentación, permanecer por debajo de la ruta MTU tiene un efecto en la seguridad y la eficiencia.
  • Debido a que su camino puede cambiar con el tiempo, incluso la aplicación más diligente de PMTUD puede darle una respuesta que eventualmente es incorrecta.