1.6 El protocolo ARP

1.6.1 El protocolo ARP

Como hemos comentado en el punto anterior, dos máquinas que quieren comunicarse en la misma red física, sólo podrán hacerlo si conocen sun direcciones físicas.

Existen diversas formas de resolver el problema. Si en la red física puediera escogerse la numeración de las estaciones (p.e. red PRONET 10), entonces podemos hacer que su número sea una función simple de su dirección IP.

Pero en el caso de una red Ethernet, el problema no resulta tan sencillo de resolver. Cada interfaz Ethernet tiene asignada una dirección hardware de 48 bits, así pues, es imposible codificar la dirección hardware en una dirección IP, además, si se sustituye el interfaz Ethernet, cambia la dirección física de la estación.

Para resolver este problema, se diseño el protocolo de resolucion de direcciones (ARP, Adress Resolution Protocol), válido para todas las redes que soportan multidistribución.

La idea es simple, si una máquina A necesita saber la dirección física de una máquina B, envia por multidifusión un paquete especial que pide a la máquina con la dirección IP indicada que responda con su dirección física. Una vez recibida la respuesta, A puede enviar paquetes a B directamente, pues conoce su dirección física.

Debido a que la multidistribución es un recurso costoso (consume recursos de red, ya que todos los receptores deben procesar el paquete enviado), suele evitarse su uso lo más posible. Una de las formas de hacer esto es manteniendo en cada máquina una tabla relacionando direcciones IP con direcciones físicas. Además, como en cada petición ARP se encuentra la dirección IP y la dirección física del remitente, todas las máquinas activas pueden actualizar su tabla con el nuevo dato.

Al enviar un mensaje ARP de una máquina a otra, este debe viajar en una trama física. Para que la máquina destino identifique la trama como ARP, debe llevar un valor en el campo de tipo de trama que lo identifique como tal. En Ethernet, este valor es 0806h (en hexadecimal).

El formato del mensaje ARP no es fijo, sino que depende que hardware de la red.

El formato de un mensaje ARP para Ethernet es el siguiente:

Tipo de hardware
Tipo de protocolo
Long. dir. física
long. dir. protocolo
Operación
Dirección física remitente (octetos 0 a 3)
Dirección física remitente (octetos 4 a 5)
dirección IP remitente (octetos 0 y 1)
dirección IP remitente (octetos 2 y 3)
Dirección física destinatario (octetos 0 y 1)
Dirección física destinatario (octetos 2 a 5)
Dirección IP destinatario (completa, octetos 0 a 3)

El campo tipo de hardware (16 bits) especifica el tipo de interfaz hardware del que se busca la dirección (1 para Ethernet). El campo tipo de protocolo (16 bits) indica el tipo de protocolo del que el origen ha enviado la dirección (0800h para IP).

Los campos de longitud de direcciones física y de protocolo permiten usar ARP con diferentes hardware y protocolos.

El campo operación nos indica el tipo de operación en concreto, si es una petición ARP o una respuesta a una petición.

El resto de los campos indican las direcciones IP y físicas tanto del remitente como del destinatario.


[INDICE | INDICE RESUMIDO | SIGUIENTE | ANTERIOR]