Вы находитесь на странице: 1из 9

5

Transformacin de direcciones Internet en direcciones fsicas (ARP)


5.1 Introduccin
Hemos descrito el esquema de direcciones TCP/IP, en el qu cada anfitrin tiene asignada una direccin de 32 bits; asimismo, hemos dicho que una red de redes se comporta como una red virtual que utiliza slo direcciones asignadas cuando enva y recibe paquetes. Tambin hemos revisado muchas tecnologas de redes fsicas y, hemos notado que dos mquinas, en una red fsica, se pueden comunicar solamente si conocen sus direcciones fsicas de red. Lo que no hemos mencionado es cmo un anfitrin o un ruteador transforman una direccin IP en la direccin fsica correcta cuando necesitan enviar un paquete a travs de una red fsica. En este captulo se considera dicha transformacin y se muestra de qu manera se implementa para los dos esquemas ms comunes de direccionamiento de red fsica.

5.2 El problema de la asociacin de direcciones


Considere que dos mquinas, A y B, comparten una red fsica. Cada una tiene asignada una direccin IP, IA yIB, as coma una direccin fsica, PA y PB. El objetivo es disear un software de bajo nivel qu oculte las direcciones fsicas y permita que programas de un nivel ms alto trabajen slo con direcciones de la red de redes. Sin embargo, la comunicacin debe llevarse a cabo por medio de redes fsicas, utilizando cualquier esquema de direcciones fsicas proporcionado por el hardware. Suponga que la mquina A quiere enviar un paquete a la mquina B a travs de una red fsica a l que ambas se conectan, pero A slo tiene la direccin de red de redes lB de B. Surge, pues, la siguiente pregunta: cmo transforma A dicha direccin en la direccin fsica PB de B? La transformacin de direcciones se tiene que realizar en cada fase a lo largo del camino, desde la fuente original hasta el destino final. En particular, surgen dos casos. Primero, en la ltima fase de entrega de un paquete, ste se debe enviar a travs de una red fsica hacia su destino final. La computadora que enva el paquete tiene que transformar la direccin Internet de destino final en su direccin fsica. Segundo, en cualquier punto del camino de la fuente al destino,

que no sea la fase final, el paquete se debe enviar hacia un ruteador intermedio. Por lo tanto, el transmisor tiene que transformar la direccin Internet del ruteador en una direccin fsica. El problema de transformar direcciones de alto nivel en direcciones fsicas se conoce como problema de asociacin da direcciones y se ha resuelto de muchas maneras. Algunos grupos de protocolos cuentan con tablas en cada mquina que contienen pares de direcciones, de alto nivel y fsicas. Otros solucionan el problema al codificar direcciones de hardware en direcciones de alto nivel. Basarse en cualquiera de estos enfoques slo hace que el direccionamiento de alto nivel sea muy delicado. En este captulo, se tratan dos tcnicas para la definicin de direcciones utilizadas por los protocolos TCP/IP y se muestra cundo es apropiada cada una de ellas.

5.3 Dos tipos de direcciones fsicas


Existen dos tipos bsicos de direcciones fsicas, ejemplificados por Ethernet que tiene direcciones fsicas grandes y fijas, as como por proNET que tiene direcciones fsicas cortas y de fcil configuracin. La asociacin de direcciones es difcil para las redes de tipo Ethernet, pero resulta sencilla para redes como proNET. Consideraremos, primero, el caso ms fcil.

5.4 Asociacin mediante transformacin directa


Considere una red token ring tipo proNET. Recuerde que, en el captulo 2, vimos que proNET utiliza nmeros enteros pequeos para sus direcciones fsicas y permite que el usuario elija una direccin de hardware cuando instala una tarjeta de interfaz en una computadora. La clave para facilitar la definicin de direcciones con dicho hardware de red radica en observar que, mientras se tenga la libertad de escoger tanto la direccin IP como la fsica, se puede hacer que ambas posean las mismas partes. Normalmente, una persona asigna direcciones IP con el campo hostid igual a 1,2, 3, etctera, y luego, cuando instala hardware de interfaz de red, selecciona una direccin fsica que corresponda a la direccin IP. Por ejemplo, el administrador de sistema podra seleccionar la direccin fsica 3 para una computadora que tenga la direccin IP 192.5.48.3, debido a que la direccin anterior es tipo C y tiene el campo de anfitrin igual a 3. Para las redes como proNET, computar una direccin fsica basndose en una direccin IP es trivial. l cmputo consiste en extraer el campo de anfitrin de la direccin IP. La extraccin es computacionalmente eficiente pues slo necesita unas cuantas instrucciones de mquina. La transformacin es fcil de mantener porque se puede realizar sin consultar datos externos. Por ltimo, es posible agregar nuevas mquinas a la red sin cambiar las asignaciones ya existentes ni recopilar los cdigos. . Conceptualmente, escoger un esquema de numeracin que facilite la asociacin de direcciones significa seleccionar una (uncin/que transforme direcciones IP en direcciones fsicas. El diseador tambin

puede ser capaz de seleccionar un esquema de numeracin para direcciones fsicas, dependiendo del hardware. Definir la direccin IP, IA, implica computar: PA = f(IA) Queremos que el cmputo de f sea eficiente. Si se constrie (restringe) el juego de direcciones fsicas, puede ser posible realizar transformaciones eficientes, diferentes a la que se ejemplifica arriba. Por ejemplo, criando se utiliza el IP en una red orientada a la conexin como ATM, no se pueden escoger las direcciones fsicas. En redes como esa, una o ms computadoras almacenan pares de direcciones, en donde cada par contiene una direccin Internet y su direccin fsica correspondiente. Por ejemplo, los valores se pueden almacenar dentro de una tabla en memoria, que se tiene que buscar. Para lograr que, en esos casos, la definicin de direcciones sea eficaz, el software podra valerse de una funcin convencional de comprobacin aleatoria para buscar dentro de la tabla. En el ejercicio 5.1, se sugiere una alternativa relacionada.

5.5 Definicin mediante enlace dinmico


Para entender por qu la definicin de direcciones es difcil para algunas redes, consideremos la tecnologa Ethernet. Recuerde que, en el captulo 2, vimos que cada interfaz Ethernet tiene asignada una direccin fsica de 48 bits desde la fabricacin del producto. En consecuencia, cuando el hardware falla y se necesita reemplazar una interfaz Ethernet, la direccin fsica de la mquina cambia. Adems, como la direccin Ethernet es de 48 bits, no hay posibilidad de codificarla en una direccin IP de 32 bits. Los diseadores de los protocolos TCP/IP encontraron una solucin creativa para el problema de la asociacin de direcciones en redes como Ethernet, que tienen capacidad de difusin. La solucin permite agregar nuevas mquinas a la red, sin tener que recopilar el cdigo y no requiere tener una base de datos centralizada. Para evitar la definicin de una tabla de conversiones; los diseadores utilizan un protocolo de bajo nivel para asignar direcciones en forma dinmica. Conocido como Protocol de Asociacin de Direcciones (ARP), ste proporciona un mecanismo razonablemente eficaz y fcil de mantener. Como se muestra en la figura 5.1, la idea detrs de la asociacin dinmica con ARP es muy sencilla: cuando el anfitrin A quiere definir la direccin IP, la transmite por difusin un paquete especial qu pide al anfitrin que posee la direccin IP IB, que responda con su direccin fsica, PB. Todos los anfitriones, incluyendo a B, reciben la solicitud, pero slo l anfitrin B reconoce su propia direccin IP y enva una respuesta que contiene su direccin fsica. Cuando recibe la respuesta, utiliza la direccin fsica para enviar el paquete de red de redes directamente a B. Se puede resumir que:

El Protocolo de Asociacin de Direcciones ARP permite que un anfitrin encuentre la direccin fsica de otro anfitrin dentro de la misma red fsica con slo proporcionar la direccin IP de su objetivo.

Figura 5.1 Protocolo ARP. Para determinar la direccin fsica PB de B, desde su direccin IP, IA, (a) el anfitrin A transmite por difusin una solicitud ARP que contiene IB a todas las mquinas en la red,:y (b) el anfitrin B enva una respuesta ARP que contiene el par (IB,PB)

5.6 Memoria intermedia para asociacin de direcciones


Puede parecer extrao que para que A enve un paquete a B, primero, tenga que transmitir una difusin que llegue a B. Podra parecer an ms extrao que A transmita por difusin la pregunta cmo puedo llegar hasta ti?, en lugar de slo transmitir por difusin el paquete que quiere entregar. Pero existe una razn importante para este intercambio. La difusin es demasiado cara para utilizarse cada vez que una mquina necesita transmitir un paquete, a otra, debido a que requiere que cada mquina en la red procese dicho paquete. Para reducir los costos de comunicacin, las computadoras, que utilizan ARP, mantienen una memoria intermedia de las asignaciones de direccin IP a direccin fsica recientemente adquiridas, para que no tengan que utilizar ARP varias veces. Siempre que una computadora recibe una respuesta ARP, sta guarda la direccin IP del transmisor, as como la direccin de hardware correspondiente, en su memoria intermedia, para utilizarla en bsquedas posteriores. Cuando transmite un paquete, una computadora siempre busca, en su memoria intermedia, una asignacin antes de enviar una solicitud ARP. Si una computadora encuentra la asignacin deseada en su memoria intermedia ARP, no necesitan transmitir una difusin a la red. La experiencia nos indica que, como la mayor parte de la comunicacin en red comprende ms que la sola transferencia de un paquete, hasta una memoria intermedia pequea es muy valiosa.

5.7 Refinamientos ARP


Se pueden lograr muchos refinamientos de ARP. Primero, observe que si el anfitrin A va a utilizar ARP porque necesita enviar algo a B, existe una alta posibilidad de que B necesite enviar algo a A en un futuro cercano. Para anticipar la necesidad de B y evitar trfico de red adicional, A incluye su asignacin de direccin IP como direccin fsica cuando enva una solicitud a B. B extrae la asignacin de A de la solicitud, la graba en su memoria intermedia ARP y enva la respuesta hacia A. Segundo, ntese que, debido a que, transmite por difusin su solicitud inicial, todas las mquinas en la red la reciben y pueden extraer, as como grabar, en su memoria intermedia, la asignacin de direccin IP como direccin fsica de A. Tercero, cuando a una mquina se le reemplaza la interfaz ele anfitrin (por ejemplo, a causa de una falla en el hardware), su direccin fsica cambia. Las otras computadoras en la red, que tienen almacenada una asignacin en su memoria intermedia ARP, necesitan ser informadas para que puedan cambiar el registro. Un sistema puede notificar, a otros sobre una nueva direccin al enviar una difusin ARP cuando se inicia. La siguiente regla resume los refinamientos: El transmisor incluye, en cada difusin ARP, su asignacin de direccin IP como direccin fsica; los receptores actualizan su informacin en memoria intermedia antes de procesar un paquete ARP.

5.8 Relacin de ARP con otros protocolos


ARP proporciona un mecanismo para transformar direcciones IP en direcciones fsicas; ya hemos visto que algunas tecnologas de red no lo necesitan. El punt es que ARP sera totalmente innecesario si pudiramos hacer que todo el hardware de red reconociera direcciones IP. Por lo tanto, ARP slo impone un nuevo esquema de direccionamiento sobr cualquier mecanismo de direccionamiento de bajo nivel que el hardware utilice. La idea se puede resumir de la siguiente manera: ARP es un protocolo de bajo nivel que oculta el direccionamiento fsico subyacente de red, al permitir que se asigne una direccin IP arbitraria a cada mquina. Pensamos en ARP como parte del sistema fsico de red, no como parte de los protocolos de red de redes.

5.9 Implantacin de ARP


De manera funcional, ARP est dividido en dos partes. La primera parte transforma una direccin IP en una direccin fsica cuando se enva un paquete, y la segunda responde solicitudes de otras mquinas. La definicin de direcciones para los paquetes salientes

parece muy clara, pero los pequeos detalles complican la implantacin. Al tener una direccin IP de destino, el software consulta su memoria intermedia ARP para encontrar la transformacin de la direccin IP a la direccin fsica. Si la conoce, el software extrae la direccin fsica, pone los datos en una trama utilizando esa direccin y enva la trama. Si no conoce la transformacin, el software debe transmitir una difusin que contenga la solicitud ARP y esperar una respuesta. La difusin de una solicitud ARP para encontrar una transformacin de direcciones se puede volver compleja. La mquina de destino puede estar apagada o tan slo muy ocupada para aceptar la solicitud. Si es as, el transmisor quiz no reciba la respuesta o la reciba con retraso. Debido a que Ethernet es un sistema de entrega con el mejor esfuerzo, tambin se puede perder la solicitud de difusin inicial ARP (en cuyo caso, el que la enva debe retransmitirla por lo menos una vez). Mientras tanto, el anfitrin tiene que almacenar el paquete original para que se pueda enviar ya que se haya asociado la direccin IP a la direccin de red. De hecho, el anfitrin debe decidir si permite que otros programas de aplicacin funcionen mientras realiza una solicitud ARP (la mayor parte de ellos lo permite). Si as es, el software debe manejar el hecho de que una aplicacin genere solicitudes ARP adicionales para la misma direccin sin transmitir por difusin muchas solicitudes para un mismo objetivo. Por ltimo, considere el caso en el que la mquina A ya obtuvo una asignacin para la mquina B, pero el hardware de B falla y es reemplazado. Aunque la direccin de B ha cambiado, las asignaciones en memoria temporal de A no lo han hecho, as que A utiliza una direccin de hardware que no existe, por lo que la recepcin exitosa se vuelve imposible. En este caso se muestra por qu es importante tener software ARP que maneje de manera temporal la tabla de asignaciones y que remueva los registros despus de un periodo establecido de tiempo. Claro est, el controlador de tiempo para un registro en la memoria temporal se debe reiniciar cada vez qu llegue una difusin ARP que contenga la asignacin (pero no se reinicia cuando el registro se utiliza para enviar un paquete). La segunda parte del cdigo ARP maneja paquetes que llegan por medio de la red. Cuando llega un paquete ARP, el software extrae la direccin IP del transmisor y la direccin del hardware, luego, examina la memoria temporal local para verificar si ya existe un registro para el transmisor. Si es as, el controlador actualiza el registro al sobrescribir la direccin fsica con la direccin obtenida del paquete. Despus, el receptor procesa el resto del paquete ARP. El receptor debe manejar dos tipos de paquetes ARP entrantes. Si llega una solicitud ARP, la mquina receptora debe verificar si es el objetivo de la solicitud (por ejemplo, si alguna otra mquina transmiti por difusin una solicitud de la direccin fsica del receptor). Si es as, el software ARP formula una respuesta al proporcionar su direccin fsica de hardware y la enva directamente al solicitante. El receptor tambin agrega el par de direcciones del

transmisor a su memoria temporal si estas no estn presentes. Si la direccin IP mencionada en la solicitud ARP no corresponde a la direccin IP local, el paquete solicitar, la transformacin de alguna otra mquina en la red aunque podra ser ignorado. El otro caso interesante sucede cuando llega una respuesta ARP. Dependiendo de la implantacin, el controlador quiz necesite crear un registro en su memoria temporal o el registro se pueda crear cuando se genere la solicitud. En cualquiera de estos casos, una vez que se actualiza la memoria temporal, el receptor intenta encontrar una correspondencia entre la respuesta y una solicitud expedida con anterioridad. Por lo general, las respuestas llegan obedeciendo a una solicitud que se gener porque la mquina tiene que entregar un paquete. Entre el tiempo en que una mquina transmite por difusin su solicitud ARP y recibe la respuesta, los programas de aplicacin o los protocolos de un nivel ms alto pueden generar solicitudes adicionales, para la misma direccin; el software debe recordar que ya envi una solicitud para no enviar ms. Por lo comn, el software ARP coloca los paquetes adicionales en una cola de espera. Una vez que llega la respuesta y se conoce la asignacin, de direccin, el software ARP remueve los paquetes de la cola de espera, pone cada paquete en una trama y utiliza la asignacin de direccin para llenar la direccin fsica del destino. Si, con anterioridad, no expidi una solicitud de la direccin IP en la respuesta, la mquina actualizar el registro del transmisor en su memoria temporal y tan slo dejar de procesar el paquete.

5.10 Encapsulacin e identificacin de ARP


Cuando los mensajes ARP viajan de una mquina a otra, se deben transportar en tramas fsicas. En la figura 5.2, se muestra cmo se transporta el mensaje ARP en la porcin de datos de una trama.

Para identificar que la trama transporta un mensaje ARP, el transmisor asigna un valor especial al campo de tipo, en el encabezado de la trama y coloca el mensaje ARP en el campo de datos de la misma. Cuando llega una trama a una computadora, el software de red utiliza el campo de tipo de trama para determinar su contenido. En la mayor parte de las tecnologas, se utiliza un solo valor para el tipo de todas las tramas que transportan un mensaje ARP el software de red en el receptor debe examinar el mensaje ARP para distinguir entre solicitudes y respuestas. Por ejemplo, en una

Ethernet, las tramas que transportan mensajes ARP tienen un campo de tipo d 080616. Este es un valor estndar asignado por la autoridad para Ethernet; otras tecnologas de hardware de red emplean otros valores.

5.11 Formato del protocolo ARP


A diferencia de la mayor parte de los protocolos, los datos en los paquetes ARP no tienen un encabezado con formato fijo. Por el contrario, para hacer que ARP sea til para varias tecnologas de red, la longitud de los campos que contienen direcciones depende del tipo de red. Sin embargo, para hacer posible la interpretacin de un mensaje ARP arbitrario, el encabezado incluye campos fijos cerca del comienzo, que especifican la longitud de las direcciones que se encuentran en los campos siguientes. De hecho, el formato de un mensaje ARP es lo suficientemente general cmo para permitir que sea utilizado con direcciones fsicas arbitrarias y direcciones arbitrarias de protocolos. En el ejemplo de la figura 5.3 se muestra el formato de 28 octetos de un mensaje ARP que se utiliza en el hardware Ethernet (en el que las direcciones fsicas tienen una longitud de 48 bits o de 6 octetos), cuando se asocian direcciones de protocolo IP (que tienen una longitud de 4 octetos). En la figura 5.3, se muestra un mensaje ARP con 4 octetos por lnea, formato estndar a travs de todo este texto. Por desgracia, a diferencia de la mayor parte de los otros protocolos, los campos de longitud variable en los paquetes ARP no se alinean firmemente en fronteras de 32 bits, lo cual causa que el diagrama sea difcil de leer. Por ejemplo, la direccin de hardware del transmisor, etiquetada como SENDER HA, ocupa 6 octetos contiguos, por lo que abarca dos lneas en el diagrama.
0 8 16 TIPO DE HARDWARE HLEN PLEN SENDER HA (octetos 0-3) SENDER HA (octetos 4-5) SENDER IP (octetos 2-3) SENDER IP (octetos 0-1) TARGET HA (octetos 0-1) 24 31 TIPO DE PROTOCOLO OPERACIN

TARGET HA (octetos 2-5) TARGET IP (octetos 0-3)

Figura 5.3 Ejemplo del formato de mensaje ARP/RARP cuando se utiliza para la transformacin de una direccin IP en una direccin Ethcrnet. La longitud de los campos depende del hardware y de la longitud de las direcciones de protocolos, que son de 6 octetos para una direccin Ethernet y de 4 octetos para una direccin IP.

El campo HARDWARE TYPE especifica un tipo de interfaz de hardware para el que el transmisor busca una respuesta; contiene el valor I para Ethernet. De forma similar, el campo PROTOCOL TYPE especifica el tipo de direccin de protocolo de alto nivel que proporcion el transmisor: contiene 080016 para la direccin IP. El campo OPERATION especifica una solicitud ARP (1), una respuesta ARP (2), una solicitud RARP (3) o una respuesta RARP (4). Los campos HLEN y PLEN

permiten que ARP se utilice con redes arbitrarias ya que stas especifican la longitud de la direccin de hardware y la longitud de la direccin del protocolo de alto nivel. El transmisor proporciona sus direcciones IP y de hardware, si las conoce, en los campos SENDER HA y SENDER IP. Cuando realiza una solicitud, el transmisor tambin proporciona la direccin IP del objetivo (ARP) o la direccin de hardware del objetivo (RARP), utilizando los campos TARGET HA y TARGET IP. Antes de que la mquina objetivo responda, completa las direcciones faltantes, voltea los pares de objetivo y transmisor, y cambia la operacin a respuesta. Por lo tanto, una respuesta transporta las direcciones tanto de hardware como de IP del solicitante original, lo mismo que las direcciones de hardware e IP d la mquina para la que se realiz asignacin.

5.12 Resumen
Las direcciones IP se asignan independientemente de la direccin fsica de hardware de una mquina. Para enviar un paquete de red de redes a travs de una red fsica desde una mquina haca otra, el software de red debe transformar la direccin IP en una direccin fsica de hardware y utilizar esta ltima para transmitir la trama. Si las direcciones de hardware son ms pequeas que las direcciones IP, se puede establecer una transformacin directa al codificar la direccin fsica de una mquina dentro de su direccin IP. De otra forma, la transformacin debe realizarse de manera dinmica. El Protocolo de Definicin de Direcciones (ARP) realiza la definicin dinmica de direcciones, utilizando slo el sistema de comunicacin de red de bajo nivel. ARP permite que las mquinas asocien direcciones sin tener un registro permanente de asignaciones. Una mquina utiliza ARP para encontrar la direccin de hardware de otra mquina al transmitir por difusin una solicitud ARP. La solicitud contiene la direccin IP de la mquina de la que se necesita la direccin de hardware. Todas las mquinas en una red reciben la solicitud ARP. Si la solicitud corresponde a la direccin IP de una mquina, sta responde al enviar una respuesta que: contiene la direccin de hardware requerida. Las respuestas se dirigen a una sola mquina; no se transmiten por difusin. Para lograr qu ARP sea eficiente, cada mquina guarda en su memoria temporal las asignaciones de direccin IP a direccin fsica. Como el trfico de una red de redes tiende a ser una secuencia interacciones entre pares de mquinas, la memoria temporal elimina la mayor parte de las solicitudes ARP transmitidas por difusin.

Вам также может понравиться