Significado del lúpulo (medición TTL)

10

Cuando uso el comando ping obtengo los siguientes resultados (Windows):

C:\>ping example.microsoft.com
Pinging example.microsoft.com [192.168.239.132] with 32 bytes of data:
Reply from 192.168.239.132: bytes=32 time=101ms TTL=124
...

En la documentación a tales utilidades, TTL se mide en saltos . Según la especificación de ICMP RFC 792 :

Tiempo para vivir. Tiempo de vivir en segundos ; ya que este campo se decrementa en cada         Máquina en la que se procesa el datagrama, el valor en este         campo debe ser al menos tan grande como el número de puertas de enlace que         este datagrama atravesará.

Entonces, cada host disminuye el TTL en al menos 1 segundo . No se dice nada de saltos . Entonces, ¿por qué se utilizan los saltos? ¿Por qué no usar, decir Sra , si los hosts procesan datagramas demasiado rápido? ¿Y por qué la especificación no dice nada acerca de saltos ?

Kyrylo M
fuente
Buena pregunta. Si recuerdo correctamente, reemplazaron TTL con saltos en IPv6, pero no estoy seguro.
AndrejaKo
1
@AndrejaKo, sí, lo hicieron. Pero oficialmente solo en IPv6.
Kyrylo M

Respuestas:

7

TTL está diseñado para detener los paquetes que viven (y consumen recursos) para siempre si hay un bucle de enrutamiento.

Originalmente, los enrutadores pueden tardar más de un segundo en procesar un paquete.

Cuando los enrutadores se volvieron mucho más rápidos y comenzaron a procesar paquetes en menos de un segundo, sería una tontería para ellos reducir el TTL a cero, porque entonces no detendría los bucles.

Entonces, en cambio, disminuye el TTL en un segundo.

Este cambio fue documentado en RFC 1716 sección 5.3.1.

El campo Time-to-Live (TTL) del encabezado IP se define como un        temporizador que limita la vida útil de un datagrama. Es un campo de 8 bits.        y las unidades son segundos. Cada enrutador (u otro módulo) que        maneja un paquete DEBE disminuir el TTL al menos uno, incluso si        El tiempo transcurrido fue mucho menor que un segundo. Ya que esto es muy        A menudo, el TTL es efectivamente un límite de conteo de saltos sobre cómo        Un datagrama puede propagarse a través de Internet.

Cuando un enrutador reenvía un paquete, DEBE reducir el TTL en        menos una. Si contiene un paquete por más de un segundo, PUEDE        Disminuye el TTL en uno por cada segundo.

Ver también:

Wikipedia - Tiempo de vivir :

El campo TTL lo establece el remitente del datagrama y lo reduce cada host en la ruta a su destino.

Maxi-pedia - Time to Live (TTL)

Cada enrutador por el que viaja el paquete debe restar al menos un conteo del campo TTL.

Mikel
fuente
No veo nada sobre los saltos y por qué se utilizan en lugar de segundos o ms.
Kyrylo M
1
Agregué un enlace a RFC 1716. Allí es donde se especifica.
Mikel