Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 3 - TTL - Icmp
Clase 3 - TTL - Icmp
2021
TTL
Sabemos que con una mala configuración de tablas se puede generar un bucle y los datagramas pueden
nunca llegar a su destino. Por ejemplo, a R1 le configuro como default router a R3, y a R3 le configuro el
default router como R1, es decir:
R1:
R3:
En el datagrama hay un campo llamado Time To Leave (TTL). Este evita que viaje alrededor de un bucle
para siempre. Cada router a lo largo de la ruta desde el origen decrementa el TTL en 1. Si al
Matías Baeza Graf #29654
2021
decrementarlo el TTL llega a 0 y el router debe reenviarlo, descarta el datagrama, si es que este no está
dirigido al router.
Entonces el el ejemplo anterior el TTL va disminuyendo cada vez que “rebota” en R1 y R3, hasta que el
datagrama llega a R3 con TTL = 1, entonces lo decrementa a 0 y descarta el datagrama.
1) R1 decrementa en 1 el TTL. Utiliza su ruta por omisión y lo envía a 192.168.1.3 (R3) con TTL = 5.
2) R3 decrementa en 1 el TTL. Utiliza su ruta por omisión y lo envía a 192.168.1.1 (R1) con TTL = 4.
3) R1 decrementa en 1 el TTL. Utiliza su ruta por omisión y lo envía a 192.168.1.3 (R3) con TTL = 3.
4) R3 decrementa en 1 el TTL. Utiliza su ruta por omisión y lo envía a 192.168.1.1 (R1) con TTL = 2.
5) R1 decrementa en 1 el TTL. Utiliza su ruta por omisión y lo envía a 192.168.1.3 (R3) con TTL = 1.
6) R3 decrementa en 1 el TTL. El TTL llega a 0. R3 descarta el datagrama.
Ahora vamos a volver a la misma configuración, pero vamos a asumir que todos los dispositivos tienen
sus tablas correctamente configuradas:
¿Cuál es el TTL mínimo para que un datagrama llegue de PCA a PCC? Si el TTL llegara a 0 cuando R3 lo
decrementa, este router va a descartar el datagrama. Para que R3 no descarte el datagrama, X (TTL
inicial) debe ser mayor o igual a 3. Es decir que PCA debe generar el datagrama destinado a PCC con X >=
3.
ICMP
¿Qué pasa cuando se descarta un datagrama? Acá entra el Internet Control Message Protocol (ICMP).
Este permite a los dispositivos enviar mensajes de control o mensajes de error de regreso al origen de
un datagrama que causo un problema. Los mensajes ICMP no se entregan normalmente a las
aplicaciones (excepto a las de diagnóstico). Pensamos en ICMP como un mecanismo que proporciona un
medio de comunicación entre un módulo ICMP sobre un dispositivo y un módulo ICMP sobre otro.
Matías Baeza Graf #29654
2021
Los routers y hosts pueden enviar y recibir mensajes ICMP. Por lo tanto, también puede estar dirigido a
cualquiera de estos. Algunos tipos de mensajes (códigos) ICMP pueden ser generados exclusivamente
por routers, por ejemplo, cuando el datagrama no se puede reenviar porque el TTL llegó a 0.
En el caso de que se termine el TTL de un datagrama en un router, se envía un mensaje ICMP al origen
de ese datagrama, es decir al host que lo envió. Cabe destacar que el destinatario de un mensaje ICMP
puede estar en otra red, por lo que hay que reenviarlo.
Si por ejemplo, PCA genera un datagrama con X = 2, cuando este llegue a R3, va a ser descartado.
Entonces R3 va a enviar un mensaje ICMP a PCA. Este mensaje ICMP se encapsula en un datagrama. Este
datagrama va a tener como destino, el origen del datagrama original, que fue descartado por R3. Es
decir, la IP de PCA. Y como origen, la interfaz de R3, el router que lo descartó, que esté más cerca de
PCA.
Pero el hecho de que el TTL llegue a 0, es solo uno de muchos eventos que provocan un mensaje ICMP.
Por ejemplo, si el datagrama llega al host PCC, y está dirigido a un puerto que no está activo, también se
genera un mensaje ICMP. Lo va a generar el host. El error se da cuando el datagrama tiene que pasar a
las capas superiores. Ya está en el destinatario final, por lo que este genera el mensaje ICMP.
La respuesta es que cuando un datagrama con un mensaje ICMP de error se descarta, no se genera un
nuevo mensaje de error ICMP. Pero si el mensaje ICMP es de control, si se genera un mensaje de error
ICMP. Cada mensaje ICMP tiene su propio formato. Sin embargo, todos los mensajes ICMP comienzan
con los mismos tres campos
cuerpo depende de si es un mensaje de control o error ICMP. Lo que cambia entre error y control es lo
que pongo en el cuerpo del mensaje. Si es de error, en el cuerpo viaja el encabezado y los primeros
bytes de datos del datagrama que provoco el error. En mensajes de control el uso de este campo queda
sujeto al tipo de mensaje de control.
Cuando un router tiene que generar un mensaje ICMP porque el TTL expiró, se crea un nuevo datagrama
en el cual el origen es el router que lo generó y el destino es el origen del datagrama que falló. Cabe
destacar, que el router que genera el mensaje ICMP debe tener en sus tablas la información necesaria
para enviar datagramas al origen, es decir a PCA, porque es posible que con tablas incompletas, un
router solo pueda transmitir datagramas en un sentido.
El programa ping es una herramienta de diagnostico fundamental para configurar, para saber y
comprobar si hay conectividad con ciertos routers o hosts etc. Este trabaja con dos tipos de mensajes
ICMP. Uno es Echo Request. Cualquier dispositico que recibe un Echo Request ICMP crea un Echo Reply
ICMP y devuelve la respuesta a la computadora original. Se puede usar para verificar si un destino es
alcanzable y responde, o si hay conectividad entre origen y destino.
Por ejemplo, en A escribo ping 10.3.3.1. Se genera un mensaje ICMP de Echo Request que tiene tipo 8 y
código 0, y tiene un identificador y un numero de secuencia, además de poder llevar datos opcionales
puesto que ping tiene muchos modificadores. Claro que en el encabezado IP de este mensaje están el
origen, el cual es 10.1.1.1 y destino, 10.3.3.1. Entonces el datagrama llega a C. Ahí se desarma y el
Matías Baeza Graf #29654
2021
protocolo IP le pasa el contenido del datagrama al protocolo ICMP, el cual analiza el tipo y codigo y
genera la respuesta. Esta es un Echo Reply de tipo 0 y código 0. En esta se copia el identificador y la
secuencia que recibió de forma que cuando la PCA reciba la respuesta pueda vincularla con el Request
correspondiente y si el Request llevaba datos se copian en el Reply.
Sin embargo, cada vez que un error le impide a un ruteador reevniar o entregar un datagrama, el
ruteador genera y envía un mensaje de Destination Unreachable(type 3)
Vamos a tomar un caso en el que la topografía es como la que mostramos recién y las tablas son las
siguientes (solo con entregas indirectas):
R1
R3
PCA
PCC
Supongamos que:
Viendo la topología, nuestro sentido común nos dice que no existe el destino, pero recordemos que
los dispositivos no tiene esta vista. Entonces cada dispositivo va a hacer lo que pueda. Entonces:
Matías Baeza Graf #29654
2021
Ahora vamos a hacer un cambio en las tablas, más específicamente donde la tabla de R3 queda sin
configurar, para modelar otro caso probable:
R3
Supongamos que:
Cabe destacar que la única manera de que R3 no pueda hacer entrega directa es no tener
configurada la interfaz o estar desconectado de la red.
Podemos ver que PCA no recibió nada. Sin embargo PCA tiene un temporizador, el cual se agota y le
muestra al usuario un mensaje de “Tiempo de espera agotado para esta solicitud”. Podemos ver que con
esta configuración de tablas, si el Echo Request proviene de PCC, el error se va a generar en R3, y el
mensaje de error va a volver al origen de donde partio este Echo Request, la misma PCC, pero que si el
Echo Request parte de PCA, nunca va a llegar un mensaje ICMP de error a PCA.
1) Una vez que el router está directamente conectado al destino final la entrega se hace, puesto
que la entrega directa siempre es posible y tiene prioridad por sobre la entrega indirecta.
2) Si el error lo provoca el Echo Request, voy a recibir un mensaje ICMP de error (Nerwork
Unreachable). Pero si el mensaje de error lo genera el Echo Reply, no voy a recibir un mensaje
de error ICMP, en cambio un mensaje de tiempo de espera agotado. Si estamos trabajando en
un laboratorio, podemos en este caso, pararnos en el destino del Echo Request y hacer un ping
en el sentido contrario. Porque como dijimos en el ultimo ejemplo, ahora si vamos a recibir el
mensaje de error ICMP, y podemos deducir que el problema esta en uno de los saltos del
camino.
Hay un mensaje especial que es raro pero puede aparecer. Se asume que los routers conocen rutas. Los
hosts comienzan con la info miunima de ruteo y aprenden nuevas rutas de los ruteadores.