Cesar Guisado 2003 ARP Address Resolution Protocol.

31
Cesar Guisado 2003 ARP Address Resolution Protocol

Transcript of Cesar Guisado 2003 ARP Address Resolution Protocol.

Page 1: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

ARP

Address Resolution Protocol

Page 2: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

ARP

• El protocolo ARP es un protocolo estándar específico de las redes. Su status es electivo.

• El protocolo de resolución de direcciones es responsable de convertir las dirección de protocolo de alto nivel(direcciones IP) a direcciones de red físicas. Primero, consideremos algunas cuestiones generales acerca de Ethernet.

Page 3: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Ethernet versus IEEE 802.3

Se pueden usar los siguientes formatos de trama en el cable coaxial de Ethernet:

1. El estándar lanzado en 1978 por Xerox Corporation, Intel Corporation y Digital Equipment Corporation, llamado habitualmente Ethernet (o Ethernet DIX).

2. El estándar internacional IEEE 802.3, definido más recientemente

Page 4: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Ethernet versus IEEE 802.3

La diferencia entre estos dos estándares está en el uso de uno e los campos de la cabecera, que contiene un número de tipo de protocolo para Ethernet y la longitud de los datos del trama en IEEE 802.3.

Page 5: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Formatos de trama en Ethernet e IEEE 802.3

8 bytes 6 bytes 6 bytes 2 bytes 46<= N <= 1500 bytes 4 bytes

Encabezado Destino Origen Tipo Informacion FCS

Direcc Direcc 4 bytes

7 bytes 1 byte 6 bytes 6 bytes 6 bytes 2 bytes 1 byte 1 byte1 byte 1 byte

Encab SFD Dest Origen Largo DSAP Ctrl FCSSSAP Info

Dir DirEnc IEE 802.2

ETHERNET

IEEE 802.3

Page 6: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

• El campo de tipo en Ethernet se usa para distinguir diferentes protocolos ejecutándose en el mismo cable coaxial, y permite su coexistencia en el mismo cable físico.

• La longitud máxima de un trama de Ethernet es de 1526 bytes. Esto significa un campo de datos de hasta 1500 bytes. La longitud del campo de datos en 802.3 está limitada también a 1500 bytes para redes a 10 Mbps, pero es distinta para otras velocidades de transmisión.

Page 7: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

• En el trama MAC de 802.3, la longitud del campo de datos la indica la cabecera. El tipo de protocolo figura en la cabecera del protocolo 802.2(de nivel superior), ver En la práctica, no obstante, ambos formatos de bloque pueden coexistir en un mismo cable físico. Esto se consigue utilizando números de tipo de protocolo(campo de tipo) superiores a 1500 en la trama Ethernet. Sin embargo, es necesario que distintos controladores sean capaces de manejar cada uno de estos formatos.

Page 8: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Así, a efectos prácticos, la capa física de Ethernet e IEEE 802.3 son compatibles. A pesar de todo, las capas de enlace de Ethernet y de IEEE 802.3/802.2 no lo son.

Page 9: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

El IEEE 802.3

El IEEE 802.3 usa un concep conocido como LSAP("Link Service Access Point") que utiliza una cabecera de 3 bytes:

                            

Figura: Cabecera de LSAP en IEEE 802.2

Page 10: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Donde DSAP y SSAP significan Destination y Source Service Access Point, respectivamente. Los números para estos campos son asignados por un comité IEEE.

Page 11: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Debido al número creciente de aplicaciones que emplean IEEE 802 como protocolo para los niveles inferiores, se le hizo una extensión en la forma del SNAP ("Sub-Network Access Protocol"). Se trata de una extensión a la cabecera de LSAP, y el valor 170 de los campos SSAP y DSAP indica su uso.

Page 12: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Cabecera de LSAP en IEEE 802.2

Page 13: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

En la evolución de TCP/IP

Se han establecido tres estándares, que describen el encapsulamiento de las tramas IP y ARP en estas redes: 1.1984: RFC 894 - Estándares para la transmisión de datagramas IP en redes Ethernet especifica sólo el uso de las redes Ethernet. Los valores asignados al campo de tipo son: 2048 (hex 0800) para datagrama IP 2054 (hex 0806) para datagrama ARP

Page 14: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

• 1985: RFC 948 - Dos métodos para la transmisión de datagrama IP en redes IEEE 802.3 especifica dos posibilidades:

1. El método compatible con Ethernet: las tramas se envían en una red IEEE 802.3 como si se tratase de una red Ethernet network, es decir, usando el campo de longitud de IEEE 802.3 como campo de tipo, violando por tanto las reglas de IEEE 802.3.

Page 15: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

2. Formato IEEE 802.2/802.3 LLC tipo 1: usando la cabecera 802.2 LSAP con IP, con el valor 6 para los campos SSAP y DSAP.

El RFC indica claramente que el método IEEE 802.2/802.3 es el preferido, es decir, se supone que todas las implementaciones futuras de IP en redes IEEE 802.3 deberían usarlo.

Page 16: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

3.1987: RFC 1010 - Números asignados (ahora obsoleto por el RFC 1700 de 1994) señala que como resultado de la evolución de IEEE 802.2 y de la necesidad de más números de protocolo, se desarrolló una nueva aproximación al problema basada en el intercambio de experiencias prácticas que tuvo lugar durante la convención de distribuidores de TCP de agosto de 1986. Afirma que de ahora en adelante en todas las implementaciones de IEEE 802.3, 802.4 y 802.5 se debería emplear la versión SNAP("Sub-Network Access Protocol") del IEEE 802.2 LLC: con los campos DSAP y SSAP fijados a 170(indicando el uso de SNAP) y asignando SNAP del modo siguiente:

Page 17: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

• 0 (cero) como código de organización.

• Campo EtherType:

2048 (hex 0800) para datagrama IP

2054 (hex 0806) para datagrama ARP

32821 (hex 8035) para datagrama RARP

Estos son los mismos valores que se usan en el campo de tipo de Ethernet.

Page 18: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

DESCRIPCION DE ARP

En una sola red física, los hosts individuales se conocen en la red a través de su dirección física. Los protocolos de alto nivel direccionan a los hosts de destino con una dirección simbólica (en este caso la dirección IP). Cuando tal protocolo quiere enviar un datagrama a la dirección IP de destino w.x.y.z, el manejador de dispositivo no la entiende.

Page 19: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

DESCRIPCION DE ARP

En consecuencia, se suministra un módulo(ARP) que traducirá la dirección IP a las dirección física del host de destino. Utiliza una tabla (llamada a veces caché ARP) para realizar esta traducción.

Page 20: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

DESCRIPCION DE ARP

Cuando la dirección no se encuentra en la caché ARP, se envía un broadcast en la red, con un formato especial llamado petición ARP. Si una de las máquinas en la red reconoce su propia dirección IP en la petición, devolverá una respuesta ARP al host que la solicitó. La respuesta contendrá la dirección física del hardware así como información de encaminamiento

Page 21: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

DESCRIPCION DE ARP

tanto esta dirección como la ruta se almacenan en la caché del host solicitante. Todos los posteriores datagramas enviados a esta dirección IP se podrán asociar a la dirección física correspondiente, que será la que utilice el manejador de dispositivo para mandar el datagrama a la red. ARP se diseñó para ser usado en redes que soportasen broadcast por hardware. Esto significa, por ejemplo, que ARP no funcionará en una red X.25.

Page 22: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Concepto detallado de ARP

ARP se emplea en redes IEEE 802 además de en las viejas redes DIX Ethernet para mapear direcciones IP a dirección hardware. Para hacer esto, ha de estar estrechamente relacionado con el manejador de dispositivo de red. De hecho, las especificaciones de ARP en RFC 826 sólo describen su funcionalidad, no su implementación, que depende en gran medida del manejador de dispositivo para el tipo de red correspondiente, que suele estar codificado en el microcódigo del adaptador.

Page 23: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

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 el módulo ARP para mapear el par <tipo de protocolo, dirección de destino> a una dirección física.

Page 24: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Generación del paquete ARP

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.

Page 25: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

                                                          

Paquete ARP

Page 26: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Paquete ARP

Hardware address space Especifica el tipo de hardware; ejemplos son Ethernet o Packet Radio Net.

Protocol address space Especifica el tipo de protocolo, el mismo que en el campo de tipo EtherType en la cabecera de IEEE 802.

Hardware address length Especifica la longitud(en bytes) de la dirección hardware del paquete. Para IEEE 802.3 e IEEE 802.5 será de 6.

Page 27: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Paquete ARP

Protocol address length Especifica la longitud(en bytes) de las direcciones del protocolo en el paquete. Para IP será de 4. Operation code Especifica si se trata de una petición(1) o una solicitud(2) ARP. Source/target hardware address Contiene las direcciones física hardware. En IEEE 802.3 son direcciones de 48 bits. Source/target protocol address Contiene las direcciones del protocolo. En TCP/IP son direcciones IP de 32 bits.

Para el paquete de solicitud, la dirección hardware de destino es el único campo indefinido del paquete.

Page 28: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

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, que lo trata como se indica en la siguiente figura

Page 29: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Page 30: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Recepción del paquete ARP

El host solicitante recibirá esta respuesta ARP, y seguirá el algoritmo ya comentado para tratarla. Como resultado, la tripleta <tipo de protocolo, dirección de protocolo, dirección hardware> para el host en cuestión se añadirá a la caché ARP. La próxima vez que un protocolo de nivel superior quiera enviar un paquete a ese host, el módulo de ARP encontrará la dirección hardware, a la que se enviará el paquete.

Page 31: Cesar Guisado 2003 ARP Address Resolution Protocol.

Cesar Guisado 2003

Recepción del paquete ARP

Notar que debido a que la petición ARP original fue un broadcast en la red, todos los host en ella habrán actualizado la dirección del emisor en su propia caché(sólo si previamente ya existía esa entrada) en la tabla.