Beruflich Dokumente
Kultur Dokumente
En esta entrada, continuación de la anterior sobre ICMP, describimos uno por uno los tipos de
mensaje ICMP:
cambia el tipo de mensaje a Echo Reply y devuelve el datagrama al emisor con los mismos valores
en los campos identifier, sequence number y contenido que recibió, es decir realiza un ‘eco’ del
mensaje recibido.
Si el mensaje es recibido desde el equipo destino nos indicará que el protocolo especificado en
campo protocol number del datagrama original no está activo o que el puerto especificado no está
activo.
El campo código de la cabecera ICMP puede contener uno de los siguientes valores:
Códig Valor
o
0 Net unreachable
1 Host unreachable
2 Protocol unreachable
3 Port unreachable
4 Fragmentation needed and don’t fragment bit was set
5 Source route failed
6 Destination network unknown
7 Destination host unknown
8 Source host isolated
9 Destination network is administratively prohibited
10 Destination host is administratively prohibited
11 Destination network unreacheable for type of service
12 Destination host unreacheable for type of service
13 Communication Administratively prohibited
14 Host precedence violation
15 Precedence cutoff in effect
Si el router implementa el protocolo Path MTU Discovery, el formato del mensaje de destino
inalcanzable es sustituido por el código 4. Incluirá la MTU de el link que no acepta el datagrama.
Mensaje ICMP Source Quench (4)
Si el mensaje es recibido desde un router intermedio nos indicará que el router no tiene
capacidad en los buffer para encolar el datagrama.
Si el mensaje es recibido desde el equipo destino nos indicará que los datagramas entrantes
llegan demasiado deprisa para ser procesados. El campo código de la cabecera ICMP siempre será
0.
Si el mensaje es recibido desde un router intermedio nos indicará que el host debe enviar futuros
mensajes a un router alternativo cuya dirección IP es especificada en el mensaje ICMP. Este router
alternativo deberá estar en la misma subred que el host que envía el datagrama y el router que lo
devuelve.
Este mensaje no será enviado si el datagrama IP contiene información de routing.
El campo código de la cabecera ICMP puede contener, especificando la razón para la
redirección, los valores siguientes:
0. Error de red
1. Error de host
2. Error de tipo de servicio (TOS) y red
3. Error de tipo de servicio (TOS) y host
Si el mensaje lo recibimos desde el host destino, nos indicará que el timer TTL ha expirado
durante el re-ensamblaje de un datagrama IP fragmentado (esperando a un fragmento del
datagrama).
Estos mensajes son utilizados por el comando traceroute para identificar routers en el camino
entre dos hosts.
Donde:
Código. Puede tener uno de los valores siguientes:
0. Cabecera IP inválida
1. Una opción requerida no ha sido encontrada
Puntero. En caso de una cabecera IP inválida (code=0) este campo indica el ‘byte
offset’ del error en la cabecera.
Mensajes ICMP Timestamp Request (13) and Timestamp Reply (14)
Estos dos mensajes son para debugging y medidas de rendimiento.
El emisor del mensaje inicializa el identificador (identifier) y el número de secuencia (sequence
number; utilizado si se envían varias solicitudes), marca el timestamp y envía el datagrama al
receptor. El host receptor rellena los timestamp de recepción (momento en que lo recibe) y
transmisión (momento en que lo envía), cambia el tipo de mensaje a timestamp reply y se lo
devuelve al emisor. Los campos identificador y número de secuencia deben volver al emisor sin
alterar.
El datagrama tiene dos timestamps si hay una diferencia de tiempo perceptible entre los tiempos
de recepción y transmisión. En la práctica, la mayoría de las implementaciones realizan ambos
(recepción y transmisión) en una operación. Esto marca los dos tiempos con el mismo valor. Los
timestamps son el número en milisegundos transcurrido desde la medianoche (UT).
Mensajes ICMP Address Mask Request (17) and Address Mask Reply (18)
El mensaje de solicitud de máscara es utilizado por un equipo para determinar la máscara de
subred utilizada en la red donde está conectado. La mayoría de los equipos están configurados con
su máscara, sin embargo, algunos equipos sin disco pueden obtener está información de un servidor.
El equipo utiliza RARP (Reverse Address Resolution Protocol) para obtener su dirección IP. Para
obtener la máscara de subred lanza una petición de máscara con el campo máscara a 0. Cualquier
equipo que haya sido configurado para enviar respuestas de máscara de dirección rellena el campo
de máscara de subred y devuelve el paquete al solicitante.
ARP
En Ethernet, la capa de enlace trabaja con direcciones físicas. El protocolo ARP se encarga de
traducir las direcciones IP a direcciones MAC (direcciones físicas). Para realizar esta conversión, el
nivel de enlace utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección
física MAC.
El ARP utiliza un formato de mensaje simple que contiene una solicitud de resolución de dirección
o respuesta.
El tamaño del mensaje ARP depende de la capa superior y menor tamaño de dirección de capa, que
se da por el tipo de protocolo de red (por lo general IPv4) en uso y el tipo de capa de enlace virtual
que el protocolo de capa superior se ejecuta en el hardware.
El encabezado del mensaje especifica estos tipos, así como el tamaño de las direcciones de cada
uno. El encabezado del mensaje se completa con el código de operación para la solicitud (1) y la
respuesta (2).
La carga útil del paquete consta de cuatro direcciones, el hardware y la dirección de protocolo del
remitente y el receptor host.
Valores de los parámetros del protocolo ARP se han normalizado y se mantienen por la Autoridad
de Números Asignados de Internet (IANA).
Generación del paquete ARP
Si una aplicación desea enviar datos a una determinada dirección IP de destino, el mecanismo de
encaminamiento IP determina primero la dirección IP del siguiente salto del paquete (que puede ser
el propio host de destino o un “router”) y el dispositivo hardware al que se debería enviar.
Si se trata de una red 802.3./4/5, deberá consultarse al módulo ARP para mapear el par <tipo de
protocolo, dirección de destino> a una dirección física.
El módulo ARP intenta hallar la dirección en su caché. Si encuentra el par buscado, devuelve la
correspondiente dirección física de 48 bits al llamador (el manejador de dispositivo). Si no lo
encuentra, descarta el paquete (se asume que al ser un protocolo de alto nivel volverá a transmitirlo)
y genera un broadcast de red para una solicitud ARP.
Recepción del paquete ARP
Cuando un host recibe un paquete ARP (bien un broadcast o una respuesta punto a punto), el
dispositivo receptor le pasa el paquete al módulo ARP.
Ejemplo
Las computadoras Matterhorn y Washington están en una oficina, conectados entre sí en una red de
área local de la oficina mediante cables Ethernet y conmutadores de red,
sin gateways o routers intermedios.
Matterhorn quiere enviar un paquete a Washington. A través de otros medios, se determina que la
dirección IP de Washington es 192.168.0.55 , pero para enviar el mensaje también tiene que saber
la dirección MAC de Washington.
En primer lugar, Matterhorn utiliza una tabla caché ARP para buscar 192.168.0.55 en todos los
registros existentes la dirección MAC de Washington ( 00: eb: 24: B2: 05: ac ).
Washington responde con su dirección MAC (y su IP). Washington puede insertar una entrada para
Matterhorn en su propia tabla ARP para su uso futuro.
Protocolo ARP
El protocolo IP debe conocer la dirección fisica del computador destino para que la capa de enlace
pueda proceder con la transmisión de paquetes IP. Para ello el protocolo IP hace uso del protocolo
de resolución de direcciones "ARP Address Resolution Protocol". La función de este protocolo es
dar a conocer al protocolo IP la dirección física asociada a la dirección IP destino. Una vez que el
protocolo IP conoce la dirección física asociada a una dirección IP la capa de enlace puede
proceder con el envío del frame. En la siguiente figura 1.7 podemos apreciar la cabecera del
protocolo ARP:
ARP Gratuito
Cada vez que un computador inicia la configuración de una interface de red que hace uso del
protocolo ARP, el protocolo ARP envía un paquete ARP con el fin de determinar si su dirección IP
o dirección física está siendo utilizada por otro computador y así ofrecer la oportunidad a los
demás computadores de actualizar su ARP Cache.
En un paquete ARP gratuito la dirección fisica destino es igual a la dirección física Fuente, y la
dirección IP destino es igual a la dirección IP fuente. Si algún computador de la red local detecta
un paquete ARP gratuito cuya dirección IP es la misma que la configurada en su interface de red el
mismo envía un paquete ARP indicando su dirección IP y dirección física al computador que
transmitió el ARP gratuito. De esta manera el computador que envió el ARP gratuito genera un
mensaje de advertencia indicando que dicha dirección IP está siendo utilizada por otro computador.
0 1 2 3
01234567890123456789012345678901
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tipo | Código | Suma de Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sin usar |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cabecera Internet |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Nota: Se requieren IP e ICMP.
IGMP es vagamente análogo a ICMP y ocupa el mismo lugar en la pila de protocolos IP.
Mensajes IGMP
Los mensajes ICMP se envían en datagramas IP. La cabecera IP tendrá siempre un número de
protocolo de 2, indicando IGMP y un tipo de servicio de cero (rutina). El campo de datos IP
contendrá mensaje IGMP de 8 bytes con el formato mostrado en la figura que se muestra a
continuación.
donde:
Vers
Versión IP de 4 bits. Siempre 1.
Tipo
Especifica una recuperación o un informe.
1
Especifica una recuperación que envía un router multicast.
2
Especifica un informe que envía un host.
Checksum
Una suma de comprobación de 16 bits calculada como para ICMP.
Dirección de clase D
Esta es cero para una petición y es una dirección de grupo multicast válida para un informe.
Operación IGMP
Los sistemas que participan en IGMP son de dos tipos: hosts y routers multicast.
Como se describió en Multicasting, con objeto de recibir datagramas multicast, un host debe unirse
a un grupo de host. Cuando un host es multi-homed, puede unirse a cualquier grupo en uno o más
de sus interfaces (subredes conectadas). Los mensajes multicast que el host recibe del mismo grupo
de dos subredes diferentes pueden ser diferentes. Por ejemplo 244.0.0.1 es el grupo para "todos los
hosts de esta subred", así que los mensajes recibidos en una subred siempre serán distintos para este
grupo de esos en otros. Pueden escucharse múltiples procesos en un único host para mensajes por
un grupo multicast de una subred. Si se da el caso, el host une el grupo sólo una vez y mantiene una
pista internamente de qué procesos están interesados en ese grupo.
Para unir un grupo, el host envía un informe por una interfaz. El informe se direcciona al grupo
multicast de interés. Los routers multicast de la misma subred reciben el informe y ponen una
bandera indicando que al menos un host de esa subred es un miembro de ese grupo. Ningún host
tiene que unir a todo el grupo de hosts (224.0.0.1); la agrupación es automática. Los routers
multicast tienen que escuchar todas las direcciones multicast (esto es, todos los grupos) para
detectar tales informes. Las alternativas podrían ser que routers multicast usaran broadcast para los
informes o para configurar hosts con direcciones unicast.
Los routers multicast regularmente, pero infrecuentemente (el RFC 1112 menciona intervalos de un
minuto), mandan una pregunta a las direcciones multicast de todos los hosts. Todos los host que
todavía deseen ser miembro de uno o más grupos responderán una vez para cada grupo de interés
(pero nunca a todo el grupo de hosts, dado que la agrupación es automática). Cada respuesta se
envía después de un retardo aleatorio para asegurar que IGMP no causa despliegue violento de
tráfico en la subred. Puesto que los routers no se preocupan de cómo muchos hosts son miembros de
un grupo y dado que todos los hosts que son miembros de ese grupo pueden oir la respuesta de los
otros, cualquier host que oiga otra demanda agrupación de un grupo cancelará cualquier respuesta
que se debe enviar para evitar malgastar recursos. Si ningún host demanda agrupación de un grupo
con un intervalo especifico, el router multicast decide que ningún host es un miembro del grupo.
Cuando un host o un router multicast recibe un datagrama multicast, su acción depende del valor
TTL y de la dirección IP de destino.
0
Un datagrama enviado con un TTL a cero es privado para el host origen.
1
Un datagrama con un TTL de uno alcanza a todos los hosts de la subred quesean miembros
del grupo. pero distintos datagramas unicast, no informan esto con un mensaje ICMP de
tiempo excedido. Expiration de un datagrama multicast es una ocurrencia normal.
2+
Todos los hosts que sean miembros del grupo y todos los routers multicast reciben el
datagrama. La acción de los routers depende de la dirección de grupo multicast.
224.0.0.0 - 224.0.0.255
Este rango se propone sólo para aplicaciones multicasting de un salto. Los routers multicast
no enviarán datagramas con dirección IP de destino en este rango.
otro
Los datagramas con otros valores para la dirección de destino los envía el router multicast
como normales: decrementa el valor de TTL al menos un segundo como siempre.
Esto permite que un host localice el servidor más cercano que se escucha en una dirección
multicast usando lo que se llama un buscador en anillo expandido. El host manda un
datagrama con valor de TTL 1 (misma subred) y espera por respuesta. Si no se recibe nada,
intenta un valor de TTL de 2, luego de 3, y así sucesivamente. A la larga encontrará el
servidor más cercano,