arquitectura de los routers

12
Arquitectura de los routers Hemos de considerar la función de conmutación de un router: la transferencia real de paquetes desde los enlaces entrantes de un router a los enlaces de salida adecuados. Estudiar únicamente los aspectos de control y de servicio de la capa de red es como estudiar una empresa y tener en cuenta solamente su gestión (que controla la empresa, pero usualmente tiene poca relación con el trabajo duro que hace que la misma funcione), y sus relaciones públicas (“¡Nuestro producto le proporcionará este maravilloso servicio!”). Para apreciar completamente qué es lo que hay realmente en el interior de una empresa, uno necesita tener en cuenta a los trabajadores. En la capa de red, el trabajo real (es decir, la razón auténtica de que exista la capa de red) es el encaminamiento de paquetes. Un componente clave de este proceso de encaminamiento es la transferencia de un paquete desde un enlace entrante del router hacia un enlace de salida. A continuación, estudiaremos cómo se lleva a cabo. Nuestro enfoque aquí es necesariamente breve, puesto que se necesitaría un curso completo para tratar en profundidad el diseño de routers. En consecuencia, haremos un esfuerzo especial para dar pistas sobre qué material aborda este tema en mayor profundidad. En la Figura 1 se muestra en un alto nivel una arquitectura genérica de un router. Podemos identificar cuatro componentes principales: Figura 1. Arquitectura de un router. Puertos de entrada Los puertos de entrada efectúan diversas funciones. Implementan la funcionalidad de la capa física (la caja del extremo izquierdo del puerto de entrada y la caja del extremo derecho del puerto de salida de la Figura 1), es decir, el extremo de un enlace físico entrante a un router o saliente del mismo. Realizan la funcionalidad de la capa de enlace de datos (representada por las cajas de la zona media en los puertos de

Upload: juanacho001

Post on 08-Sep-2015

212 views

Category:

Documents


0 download

DESCRIPTION

Arquitectura de Los Routers

TRANSCRIPT

Arquitectura de los routersHemos de considerar la funcin de conmutacin de un router: la transferencia real de paquetes desde los enlaces entrantes de un router a los enlaces de salida adecuados. Estudiar nicamente los aspectos de control y de servicio de la capa de red es como estudiar una empresa y tener en cuenta solamente su gestin (que controla la empresa, pero usualmente tiene poca relacin con el trabajo duro que hace que la misma funcione), y sus relaciones pblicas (Nuestro producto le proporcionar este maravilloso servicio!). Para apreciar completamente qu es lo que hay realmente en el interior de una empresa, uno necesita tener en cuenta a los trabajadores. En la capa de red, el trabajo real (es decir, la razn autntica de que exista la capa de red) es el encaminamiento de paquetes. Un componente clave de este proceso de encaminamiento es la transferencia de un paquete desde un enlace entrante del router hacia un enlace de salida. A continuacin, estudiaremos cmo se lleva a cabo. Nuestro enfoque aqu es necesariamente breve, puesto que se necesitara un curso completo para tratar en profundidad el diseo de routers. En consecuencia, haremos un esfuerzo especial para dar pistas sobre qu material aborda este tema en mayor profundidad.En la Figura 1 se muestra en un alto nivel una arquitectura genrica de un router. Podemos identificar cuatro componentes principales:

Figura 1. Arquitectura de un router.Puertos de entradaLos puertos de entrada efectan diversas funciones. Implementan la funcionalidad de la capa fsica (la caja del extremo izquierdo del puerto de entrada y la caja del extremo derecho del puerto de salida de la Figura 1), es decir, el extremo de un enlace fsico entrante a un router o saliente del mismo. Realizan la funcionalidad de la capa de enlace de datos (representada por las cajas de la zona media en los puertos de entrada y salida), que es requerida para interoperar con la funcionalidad de la contraparte del enlace entrante. Tambin realizan una funcin de bsqueda y encaminamiento (la caja ms a la derecha del puerto de entrada y la caja ms a la izquierda del puerto de salida), de forma que un paquete encaminado hacia el entramado de conmutacin del router emerja en el puerto de salida correcto. En la prctica, los diversos puertos se reciben conjuntamente sobre una nica tarjeta de lnea dentro del router.Entramado de conmutacinEl entramado de conmutacin conecta los puertos de entrada del router con sus puertos de salida. Este entramado de conmutacin se encuentra alojado por completo dentro en el router (una red dentro de un router de red).

Puertos de salidaCada puerto de salida almacena los paquetes que han sido encaminados hacia l provenientes del entramado de conmutacin, y as puede transmitir los paquetes hacia el enlace saliente. El puerto de salida efecta la funcin inversa en la capa de enlace de datos y en la capa fsica que el puerto de entrada. Cuando un enlace es bidireccional (es decir, lleva trfico en ambas direcciones), cada puerto de salida sobre el enlace se empareja usualmente con el puerto de entrada para ese enlace sobre la misma tarjeta de lnea.

Procesador de ruteoEl procesador de ruteo ejecuta los protocolos de ruteo, mantiene la informacin de ruteo y las tablas de encaminamiento, y lleva a cabo las funciones de gestin de red dentro del router. En las siguientes sub-secciones analizaremos los puertos de entrada, el entramado de conmutacin y los puertos de salida con ms detalle. Turner1, Giacopelli2, McKeown3 y Partridge4, ofrecen una revisin particularmente interesante de las modernas arquitecturas de ruteo.

1. Puertos de entradaEn la Figura 2 se ofrece una vista ms detallada de la funcionalidad de los puertos de entrada. Como se acaba de decir, ste comprende la funcin de terminacin de la lnea de los puertos de entrada y el procesamiento de enlace de datos implementan las capas fsicas y de enlace de datos asociadas a un enlace individual del router; la funcin de bsqueda (y encaminamiento) del puerto de entrada es central para la funcin de conmutacin del router. En muchos routers, es aqu donde el router determina el puerto de salida hacia el que un paquete entrante ser encaminado a travs del entramado de conmutacin. La eleccin del puerto de salida se hace usando la informacin contenida en la tabla de encaminamiento.

Aunque la tabla de encaminamiento se calcula en el procesador de ruteo, suele almacenarse una copia shadow en la tabla de encaminamiento en cada puerto de entrada, la cual es actualizada por el procesador de ruteo cuando resulta necesario. Con copias locales de la tabla de encaminamiento, la decisin de conmutacin puede realizarse en cada puerto de entrada sin invocar al procesador central de ruteo. Dicha conmutacin descentralizada evita la aparicin de un cuello de botella en un solo punto del router.

Figura 2. Procesamiento en el puerto de entrada.En routers con limitada capacidad de procesamiento en el puerto de entrada, ste puede simplemente encaminar el paquete hacia el procesador central de ruteo, que deber entonces realizar la bsqueda en la tabla de encaminamiento y encaminar el paquete al puerto de salida apropiado. sta es la nica aproximacin usual cuando una estacin de trabajo o un servidor funcionan como router; aqu, el procesador de ruteo no es ms que la CPU de la estacin de trabajo, y el puerto de entrada es tan slo una tarjeta de la interface de red (por ejemplo, una tarjeta Ethernet).Partiendo de la existencia de una tarjeta de encaminamiento, la bsqueda en la tabla es conceptualmente simple: slo hay que buscar a lo largo de la tabla de encaminamiento la entrada que mejor se ajuste a la direccin de red destino del paquete, o una ruta por defecto si no se encuentra la direccin destino. (Cabe recordar que la mejor concordancia es la entrada en la tabla de encaminamiento con el prefijo de red ms largo que coincida con la direccin de destino del paquete). En la prctica, sin embargo, las cosas no son tan simples.Quiz el factor que introduce mayor complejidad es que los routers troncales deban operar a elevadas velocidades y ser capaces de efectuar millones de bsquedas por segundo. Lo que resulta deseable es que el procesamiento del puerto de entrada se pudiera efectuar a la velocidad de la lnea, es decir, que se pudiera realizar una bsqueda en menos tiempo del necesario para recibir un paquete por el puerto de entrada. En este caso, el procesamiento de entrada de un paquete entrante podra completarse antes de que se completara la siguiente operacin de recepcin. Para hacernos una idea de los requisitos de prestaciones de una bsqueda, consideremos el enlace llamado OC-485, que funciona a 2.5Gbps. Con paquetes de 256 bits de longitud, implica una velocidad de bsqueda de aproximadamente un milln de bsquedas por segundo.Dada la necesidad de operar a las velocidades de enlace de hoy en da, una bsqueda final a lo largo de una tabla de encaminamiento grande es imposible. Una tcnica ms razonable es almacenar las entradas de la tabla de encaminamiento en una estructura arborescente. Cada nivel del rbol puede verse como correspondiente a un bit en la direccin de destino. Para buscar una direccin, se comienza en el nodo raz del rbol; si el primer bit de la direccin es un cero, entonces la entrada de la tabla de encaminamiento de la direccin destino se encuentra en el subrbol izquierdo; en caso contrario, se elegira el subrbol derecho. Se recorre as el subrbol correspondiente utilizando los restantes bits de direccin; si el siguiente bit de direccin es cero, se elige el subrbol izquierdo del rbol original; de no ser as, se elige el subrbol derecho. De esta forma, es posible recorrer la tabla de encaminamiento en N pasos, donde N es el nmero de bits de la direccin. (El lector observar que sta es esencialmente una bsqueda binaria sobre un espacio de direcciones de tamao 2N). En Srinivasan6 se describe una mejora de las tcnicas de bsqueda binaria, y en Gupta7 se ofrece una revisin general de algoritmos de clasificacin de paquetes. Pero incluso con N = 32 pasos (por ejemplo, con una direccin de 32 bits), la velocidad obtenida mediante bsqueda binaria no es suficientemente buena para los requisitos de ruteo troncal de hoy en da. Por ejemplo, suponiendo un acceso a memoria en cada paso, con una memoria de 40ns de tiempo de acceso, se calculan menos de un milln de bsquedas de direcciones por segundo. Para incrementar estas velocidades de bsqueda se han explotado otras tcnicas. Las content addressable memory -CAM-, admiten direcciones IP de 32 bits, y devuelven el contenido de la entrada de la tabla de encaminamiento para esa direccin en un tiempo esencialmente constante. Otra tcnica para acelerar las bsquedas es mantener en una cach el encaminamiento de las direcciones ms recientemente buscadas, como los propone Feldmeier8. Aqu la cuestin principal es el tamao de la cach; las medidas realizadas por Thomson9 sugieren que incluso para un enlace de velocidad OC-310, pueden alcanzarse aproximadamente las 256.000 consultas fuente-destino por minuto en un router troncal. Ms recientemente se han propuesto estructuras de datos incluso ms rpidas, que permiten localizar entradas en la tabla de encaminamiento en log(N) pasos (Waldvogel11), o que comprimen tablas de encaminamiento de nuevas formas (Brodnik12). En Gupta13 se discute una aproximacin basada en hardware de la bsqueda, especialmente optimizada para el caso ms comn en que se buscan direcciones de 24 bits o menos.Una vez determinado, mediante la bsqueda, el puerto de salida para el paquete, ste podr ser dirigido hacia el entramado de conmutacin. Sin embargo, como veremos ms adelante, podra darse el caso de que fuera bloqueado temporalmente antes de entrar en el entramado de conmutacin (debido a que hubiera otros paquetes de otros puertos de entrada utilizando en ese momento el entramado). Por ello, debern ponerse en cola los paquetes bloqueados en los puertos de entrada, y despus planificarse para cruzar el entramado de conmutacin en un instante posterior. Inspeccionaremos con ms detalle el bloqueo, el encolamiento y la planificacin de paquetes (tanto en los puertos de entrada como en los de salida).2. Entramado de conmutacinEl entramado de conmutacin se encuentra en el autntico ncleo del router. Es mediante este entramado de conmutacin es donde los paquetes son realmente desplazados desde un puerto de entrada a un puerto de salida. La conmutacin puede obtenerse de variadas formas, como se indica en la Figura 3.

Figura 3. Tres tcnicas de conmutacin.Conmutacin mediante memoria. Los primeros routers, ms simples, solan ser computadoras personales, y la conmutacin entre los puertos de entrada y los de salida se haca bajo el control directo de la CPU (procesador de ruteo). Los puertos de entrada y de salida funcionaban como dispositivos de E/S tradicionales en un sistema operativo tradicional. Primero, cada puerto de entrada sealizaba al procesador de ruteo mediante una interrupcin. El paquete era entonces copiado del puerto de entrada hacia la memoria del procesador. El procesador de ruteo extraa entonces la direccin destino de la cabecera, buscaba el puerto de salida adecuado en la tabla de encaminamiento, y copiaba el paquete hacia los buffers de los puertos de salida. Podemos observar que si el ancho de banda de la memoria es tal que se pueden escribir en, o leer de, la memoria B paquetes por segundo, entonces la productividad completa del conmutador (la tasa total a la que se transfieren los paquetes desde los puertos de entrada a los puertos de salida) no supera B/2.Muchos routers modernos tambin conmutan mediante memoria. Una gran diferencia con respecto a los routers primitivos, sin embargo, es que en los primeros la bsqueda de la direccin destino y el almacenamiento (conmutacin) del paquete sobre la ubicacin apropiada de la memoria es realizada por los procesadores en las tarjetas de entrada de lnea. En cierto modo, los routers que conmutan mediante memoria son muy similares a los multiprocesadores de memoria compartida, en los cuales los procesadores en la tarjeta de lnea almacena paquetes en la memoria del puerto de salida apropiado.

Conmutacin mediante bus. En esta aproximacin, los puertos de salida transfieren un paquete directamente al puerto de salida sobre un bus compartido, sin intervencin del procesador de ruteo -obsrvese que cuando se conmuta mediante memoria, el paquete debe tambin cruzar el bus del sistema en su trayecto desde (o hacia) la memoria-. Aunque el procesador de ruteo no est involucrado en la transferencia del bus, como el bus es compartido, slo puede transferirse un paquete cada vez por el bus. Cada paquete que llega al puerto de entrada y encuentra el bus ocupado en la transferencia de otro paquete, es bloqueado al intentar pasar hacia el entramado de conmutacin, y se pone en cola en el puerto de entrada. Dado que cada paquete debe cruzar un solo bus, el ancho de banda de conmutacin del router viene limitado por la velocidad del bus. Puesto que con la tecnologa de hoy es posible encontrar anchos de banda de ms de un gigabit por segundo, la conmutacin mediante buses es suficiente para los routers que operan en redes de acceso y redes de negocio (por ejemplo, redes de rea local y redes corporativas). La tecnologa de conmutacin basada en bus ha sido adoptada en un buen nmero de productos de ruteo que operan con anchos de banda comprendidos entre 1 y 2 Gbps.

Conmutacin mediante una red de interconexinUna forma de resolver la limitacin del ancho de banda de un nico bus compartido es utilizar una red de interconexin ms sofisticada, como la utilizada en, desde hace tiempo, la interconexin de procesadores en una arquitectura multiprocesador. Un conmutador crossbar es una red de interconexin que consta de 2N buses que conectan N puertos de entrada a N puertos de salida, como se muestra en la Figura 3. Cada paquete que llega a un puerto de entrada atraviesa el bus horizontal conectado a la entrada hasta que interfecta con el bus vertical que conduce al puerto de salida deseado. Si el bus vertical que conduce al puerto de salida est libre, el paquete se reconduce hacia el puerto de salida. Si el bus vertical est siendo utilizado para transferir un paquete desde otro puerto de entrada hacia este mismo puerto de salida, el paquete entrante se bloquea, y deber ponerse en cola en el puerto de entrada.Tambin se ha propuesto usar entramados de conmutacin Delta y Omega como red de interconexin entre puertos de entrada y puertos de salida. Vase Tobagi14 para un repaso de arquitecturas de conmutacin. Algunos diseos de conmutadores utilizan una red de interconexin que proporciona hasta 60 Gbps mediante su entramado de conmutacin. Una tendencia actual en el diseo de redes de interconexin (Kes-hav15) es fragmentar un datagrama IP de longitud variable en celdas de longitud fija, y entonces etiquetar y conmutar dichas celdas de longitud fija a travs de la red de interconexin. Las celdas son despus reensambladas para dar el datagrama original en el puerto de salida. El tamao fijo de las celdas y el etiquetado pueden acelerar y simplificar considerablemente la conmutacin de paquetes a travs de la red de interconexin.

3. Puertos de salidaEl procesamiento en los puertos de salida, que se muestra en la Figura 4, toma los datagramas que han sido almacenados en la memoria del puerto de salida y los transmite sobre el enlace saliente. El procesamiento del protocolo de enlace de datos y la terminacin de la lnea son las funciones del lado de envo del enlace y de la capa fsica que interactan con el puerto de entrada del otro lado del enlace saliente. Se requiere de las funcionalidades de encolamiento y de gestin de buffers cuando el entramado de conmutacin entrega paquetes al puerto de salida a una tasa que supera la tasa de salida del enlace; a continuacin, analizaremos el encolamiento del puerto de salida.

Figura 4. Procesamiento en el puerto de salida.

4. Dnde ocurre el encolamiento?Si observamos la funcionalidad de los puertos de entrada y salida y las configuraciones indicadas en la Figura 3, es evidente que se pueden formar colas de paquetes tanto en un puerto de entrada como en un puerto de salida. En importante analizar estas colas con un poco ms de detenimiento, pues cuando crecen en exceso pueden desbordar el espacio de buffers del router, ocasionando prdida de paquetes. Es comn indicar que los paquetes se pierden dentro de la red o se eliminan en un router. Es justo aqu, en estas colas internas del router, donde se eliminan y se pierden tales paquetes. La ubicacin real de la prdida de paquetes (bien en las colas de los puertos de entrada, bien en las colas de los puertos de salida) depender de la carga de trfico, la velocidad relativa del entramado de conmutacin y la velocidad de la lnea, como ya se indicar ms adelante.Supongamos que las velocidades de las lneas de entrada y de salida son idnticas, y que hay n puertos de entrada y n puertos de salida. Si la velocidad del entramado de conmutacin es al menos n veces superior que la velocidad de la lnea de entrada, no habr colas en los puertos de entrada. La razn es que an en el peor de los casos (que las n lneas den entrada estn recibiendo paquetes), el conmutador ser capaz de transferir n paquetes desde los puertos de entrada a los de salida, a la vez que cada uno de los n puertos de entrada reciben (simultneamente) un nico paquete. Pero, qu pasa en los puertos de salida? Supongamos que el entramado de conmutacin es al menos n veces ms rpido que las lneas de salida. En el peor de los casos, los paquetes que lleguen a cada uno de los n puertos de salida irn destinados al mismo puerto. En este caso, en el tiempo que lleva recibir (o enviar) un solo paquete, llegarn otros tantos n paquetes a este puerto de salida. Puesto que el puerto de salida slo puede transmitir un nico paquete en una unidad de tiempo (el tiempo de transmisin del paquete), los n paquetes entrantes tendrn que hacer cola (esperar) para ser transmitidos por el enlace de salida. An as, podran llegar n paquetes ms en el tiempo empleado en la emisin de uno de los n paquetes que han estado haciendo cola previamente, y as sucesivamente. Finalmente, el nmero de paquetes haciendo cola puede crecer lo suficiente como para agotar el espacio de memoria del puerto de salida, en cuyo caso se perdern paquetes.El encolamiento en el puerto de salida se ilustra en la Figura 5. En el instante t, llega un paquete a cada uno de los puertos de salida, cada uno destinado al puerto de salida superior.Suponiendo idnticas velocidades en las lneas y un conmutador operando tres veces ms rpido que la velocidad de la lnea, una unidad de tiempo ms tarde (es decir, justo el tiempo necesario para recibir o enviar un paquete) cada uno de los tres paquetes originales ha sido transferidos al puerto saliente, uno solo de estos tres paquetes habr sido transmitido por el enlace de salida. En nuestro ejemplo, dos nuevos paquetes llegan al punto de entrada del conmutador; uno de estos paquetes va destinado al puerto de salida superior.Una consecuencia del encolamiento en los puertos de salida es que el planificador de paquetes en el puerto de salida deber elegir un paquete entre aqullos que esperan ser transmitidos. La seleccin podr hacerse siguiente un mtodo simple, como la planificacin primero en llegar-primero en ser servido -FCFS, first-come-first-served), o siguiendo un mecanismo de planificacin ms sofisticado, como la espera equitativa ponderada -WFQ, weighted fair queuing-, que comparte el enlace de salida equitativamente entre las diversas conexiones punto a punto que utilizan la cola para su transmisin. La planificacin de paquete juega un papel crucial en la obtencin de garantas de calidad de servicio.Igualmente, si no hay suficiente memoria para alojar un paquete entrante, deberemos decidir entre desechar el paquete entrante -esta poltica se conoce como drop-tail-, o eliminar uno o ms de los paquetes ya almacenados para hacer espacio al paquete recin llegado. En algunos casos, es bueno desechar (o marcar para eliminar en la cabecera) cierto paquete antes de que el buffer se llene, para evitar tener que enviar una seal de congestin al emisor.En Labrador16 se han propuesto y analizado cierto nmero de polticas de desecho y marcado de paquetes, conocidas colectivamente como algoritmos de gestin activa de colas -AQM, active queue management-. Uno de los algoritmos AQM ms ampliamente estudiados e implementados es el algoritmo de deteccin temprana aleatoria -RED, random early detection-.En RED, se mantiene una media ponderada para la longitud de la cola de salida. Si la longitud media de la cola es menor que un umbral mnimo, minu, cuando llegue un paquete ser admitido en dicha cola. En cambio, si la cola est llena o si la longitud media de la cola es mayor que cierto umbral maxu, cuando llegue un paquete ser marcado o desechado. Finalmente, si el paquete llega a una cola cuya longitud media se halla en el intervalo [minu, maxu], el paquete probablemente ser marcado, siendo dicha probabilidad una funcin de la longitud media de la cola, minu y maxu. Se han propuesto varias funciones de probabilidad de marcado/desechado, y se han modelado, analizado, simulado y/o implantado diversas funciones de RED. Christiansen17 y Floyd18 dan una visin general y referencia de lecturas adicionales.

Figura 5. Encolamiento en los puertos de salida.Si el entramado de conmutacin no es lo suficientemente rpido (con respecto a las velocidades de las lneas de entrada) a la hora de transferir todos los paquetes entrantes en el entramado sin demora, tambin habr esperas en las colas de los puertos de entrada, donde los paquetes esperarn su turno para ser transferidos a travs del entramado de conmutacin hacia los puertos de salida. Para ilustrar una importante consecuencia de esta espera, consideremos un entramado de tipo crossbar, y supongamos que: (1) todas las velocidades de los enlaces son idnticas, (2) un paquete puede ser transferido de cualquier puerto de entrada a un puerto de salida dado en el mismo tiempo que lleva la recepcin de un paquete por un puerto de entrada, y (3) los paquetes se mueven desde una cola de entrada dada a su cola de salida al modo FCFS. Varios paquetes podrn ser transferidos en paralelo cuando sus puertos de salida no coincidan. Sin embargo, si dos paquetes que estn en el extremo de dos colas de entrada van destinados al mismo puerto de salida, uno de ellos se bloquear, y deber esperar en la cola de entrada; el entramado de conmutacin slo puede transferir un paquete a un puerto dado en cada momento.La Figura 6 muestra un ejemplo de dos paquetes en el extremo de sus colas de entrada que van destinados al mismo puerto de salida, que es el superior. Supongamos que el entramado de conmutacin elige transferir el paquete de la cola entrante superior. En ese caso, el paquete de la cola inferior deber esperar. Pero no slo este ltimo, sino tambin el siguiente paquete que le sigue, incluso en el caso de que no haya conflicto por el puerto de salida del medio (que es el de destino de este paquete). Este fenmeno se conoce como bloqueo en la cabeza de la lnea -HOL, head-of-the-line- en una entrada del conmutador; cierto paquete que espera en una cola de entrada debe esperar a ser transferido a travs del entramado (incluso aunque el puerto de salida est libre), puerto que se encuentra bloqueado en ella por otro paquete a la cabeza de la lnea. Karol19 demuestra que debido a un bloque HOL, la cola de entrada poda crecer sin lmite (en otras palabras, que habra una prdida significativa de paquetes) bajo ciertas condiciones tan pronto como la tasa de llegada de paquetes en los enlaces de entrada alcance slo el 58% de su capacidad. En McKeon20 1997b se discuten varias soluciones al bloque HOL.

Figura 6. Bloqueo en colas de entrada HOL de un conmutador.