ES2424630T3 - Un enrutador de rejilla - Google Patents
Un enrutador de rejilla Download PDFInfo
- Publication number
- ES2424630T3 ES2424630T3 ES08845163T ES08845163T ES2424630T3 ES 2424630 T3 ES2424630 T3 ES 2424630T3 ES 08845163 T ES08845163 T ES 08845163T ES 08845163 T ES08845163 T ES 08845163T ES 2424630 T3 ES2424630 T3 ES 2424630T3
- Authority
- ES
- Spain
- Prior art keywords
- mailbox
- unit
- units
- packets
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/355—Application aware switches, e.g. for HTTP
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Un enrutador de rejilla que comprende: una pluralidad de unidades de interfaces externas (44) configuradas para recibir paquetes de servicios desdeun punto y para proporcionar los paquetes de los servicios a otro punto; y una segunda pluralidad de unidades de buzones (46) configurados para almacenar y redirigir dichos paquetesasociados con los buzones respectivos, conectada cada una de las unidades de buzones (46) a dichasunidades de interfaces externas (44), en el que cada una de dichas unidades de interfaces externas (44) tiene una porción de entrada y una porciónde salida, y cada una de dichas porciones y cada una de las unidades de buzones, comprende: una sección de entrada configurada para almacenar dichos paquetes y las cabecera relacionadas;un procesador de buzón configurado al menos para tomar decisiones de encaminamiento; y una sección de salida configurada para organizar dichos paquetes para transferir a una unidad siguiente, en elque: dicha sección de entrada de dicha porción de entrada está conectada a una pluralidad de tarjetas deinterfaz de red, y se caracteriza porque: cada una de las tarjetas de interfaz de red está configurada para escribir directamente en dichasección de entrada, cada una de dichas tarjetas de interfaz de red comprende una librería de espacios de usuario, yse asigna un buzón por servicio y porque dicha sección de salida está configurada además paraalmacenar al menos un puntero a dicha sección de entrada.
Description
Un enrutador de rejilla
Campo de la invención
La presente invención se refiere a enrutadores de red en general y a enrutadores de rejilla en particular.
Antecedentes de la invención
Las redes de comunicaciones son ubicuas. La Internet está en todas partes y los portadores están intentando proporcionar cada vez más servicios sobre la misma para sus clientes.
La solicitud de patente de los Estados Unidos 11/615.977, asignada a los cesionarios comunes de la presente invención, describe una red de límite metropolitano que intenta concentrarse en los servicios que proporciona en lugar de en la topología de la red y/o la configuración de línea. Una red ejemplar de límite metropolitano 40 se muestra en la Fig. 1, a la cual se hace ahora referencia.
Para cada servicio, la red de límite metropolitano asigna un buzón 22 cuyo tamaño y calidad del servicio (definido por el ancho de banda, tasas de descarga, control de seguridad, etc.) puede ser una función de la cantidad de datos a transferir a través de los mismos en cualquier momento determinado. Los buzones 22 actúan como memorias intermedias, donde se pueden escribir los datos en un extremo y leerse en el otro extremo.
La definición de los buzones se puede promover directamente desde las tablas de servicios que los portadores mantienen de todos modos. Tales tablas existen para la facturación, para el servicio de clientes, para la asignación de ancho de banda, etc. La red de límite metropolitano de la presente invención puede acceder a tales tablas para definir los requisitos de tamaño y de la calidad de servicio (QoS) para sus buzones 22 y pueden almacenar tal información en su propia tabla de servicios 30. La red de límite metropolitano 40 también puede comprender una multiplicidad de enrutadores de rejilla 42, de los cuales se muestran tres de ejemplo (con las letras de referencia A, B, y C) en la Fig. 1. Los enrutadores 42 se pueden conectar juntos con un anillo 41.
Cada uno de los enrutadores 42 puede comprender una unidad de interfaz externa (EIU) 44 y una unidad de buzones (MU) 46. Cada una de las unidades de interfaces externas 44 puede proporcionar conexiones a sus clientes asociados y al anillo 41 y cada una de las unidades de buzones 46 puede mantener y gestionar los buzones
22. Sin embargo debido a que la red de límite metropolitano 40 puede ser una red distribuida, los buzones 22 de los clientes asociados de una unidad de interfaz externa 44 puede que no necesariamente se almacenen en la unidad de buzones 46 del mismo enrutador 42. La localización de cada uno de los buzones puede ser una función del tipo de servicio que se proporciona y de si necesita localizarse o no cerca del cliente o cerca del origen para un funcionamiento eficiente. Las unidades de buzones 46 pueden comprender una multiplicidad de memorias intermedias, para los buzones, y unidades de gestión para añadir o borrar buzones cuando se requiera por la tabla de servicios 30.
Para cada uno de los paquetes de datos entrantes, cada unidad de interfaz externa 44 puede determinar qué unidad de buzones 46 puede gestionar el buzón 22 para el servicio que se transmite por el paquete de datos. Cada una de las unidades de interfaz externa 44 puede realizar una función de generación de huella digital sobre al menos parte de la información en una cabecera del paquete de datos. El valor de la huella digital resultante puede ser el número del buzón dentro de la red de límite metropolitano 40 para el servicio transportado por el paquete de datos. Con el número del buzón, la unidad de interfaz externa 44 puede escribir directamente el paquete de datos (normalmente usando el DMA remoto (rDMA) en el buzón indicado 22.
Por ejemplo, la Familia Smith, etiquetada como 50, puede solicitar un video a demanda desde el VOD etiquetado como 52. La Familia Smith, etiquetada como 50, puede registrar la petición de servicio y la red de límite metropolitano 40 puede crear un buzón 22B, para ese servicio y puede asignar también una unidad de interfaz externa 44, tal como EIU 44A, para el servicio. El VOD 52 puede enviar su flujo de datos de VOD al enrutador 42A, el enrutador más cercano al mismo. La unidad de interfaz externa 44A puede generar la huella digital de la dirección del destino, la de la Familia Smith, y puede determinar que el buzón para VOD 52 de la familia Smith, el buzón 22B1, puede estar localizado en la unidad de buzones 46B. Por consiguiente, la unidad de interfaz externa 44A puede escribir el flujo de datos en el buzón 22B1 en la unidad de buzones 46B. Cuando el decodificador de televisión de la Familia Smith se puede conectar al enrutador 42B, el enrutador más próximo al mismo, la unidad de buzones 46B puede enviar los paquetes almacenados en el buzón 22B1 al decodificador de televisión de la Familia Smith, a través de la unidad de interfaz externa 44B.
Otro servicio es el de dos personas, por ejemplo Dana Smith y su amiga Ann, hablando sobre VoIP. En este ejemplo, el buzón de Dana Smith 22B2 puede estar localizado en la unidad del buzón 46B, cerca de su casa, mientras que el buzón de Ann 22C puede estar localizado en una unidad de buzones diferente, por ejemplo 46C.
Cuando Ann habla sobre su teléfono de VoIP, su ordenador puede enviar su flujo de datos de voz al enrutador 42C, el enrutador con el que está asociada la unidad de interfaz externa 44C puede generar la huella digital de la
dirección de destino, la de Dana Smith, y puede determinar que el buzón de Dana Smith para VoIP, el buzón 22B2, puede estar localizado en la unidad de buzones 46B. Por consiguiente, la unidad de interfaz externa 44C puede escribir el flujo de datos en el buzón 22B2 en la unidad de buzones 46B y la unidad de buzones 46B puede redirigir los paquetes al teléfono de VoIP de Dana a través de la unidad de interfaz externa 44B.
El documento de Bianco A y otros, Multi-stage Switching Architectures for Software Routers - IEEE Network IEEE Service Center, Nueva York, NY, US, LNKD, DOI: 10.1109 / MNET. 2007.386465 Volumen 21, Nº 4, del 1 de julio de 2007 (01/01/2007), páginas 15 - 21, XP01111880561 ISNN: 0890 - 8044, enseña una arquitectura basada en PC multi-etapa que aprovecha los enrutadores basados en PC como elementos de conmutación, para construir un enrutador de alta velocidad, a gran escala, escalable y de software fiable.
Sumario de la presente invención
En adelante se proporciona, de acuerdo con una realización preferida de la presente invención, un enrutador de rejilla incluyendo una pluralidad de unidades de interfaces externas y una segunda pluralidad de unidades de buzones. Las unidades de interfaces externas reciben paquetes de los servicios desde un punto y proporcionan los paquetes de los servicios a otro punto.
Las unidades de buzones almacenan y redirigen los paquetes asociados con los buzones, uno por servicio, y cada unidad de buzones está conectada a las unidades de interfaces externas en una red de tipo CLOS. La unidad de interfaz externa tiene una porción de entrada y una porción de salida y las porciones de entrada y salida y las unidades de buzones se escriben entre sí, en un modo no síncrono.
Además, de acuerdo con una realización preferida de la presente invención, las porciones de entrada escriben en las unidades de buzones como la información en los paquetes, las unidades de buzones escriben los paquetes en las porciones de salida asociadas con los buzones en los que se almacenan los paquetes y las porciones de salida escriben los paquetes en la red.
Además, de acuerdo con la realización preferida de la presente invención, cada una de las porciones y cada una de las unidades de buzones incluyen una sección de entrada para almacenar los paquetes y las cabeceras relacionadas, un procesador para procesar sólo las cabeceras al menos para tomar las decisiones de encaminamiento y una sección de salida, que almacena en al menos un puntero para la sección de entrada, para organizar los paquetes para la transferencia a la siguiente unidad.
Aún más, de acuerdo con una realización preferida de la presente invención, cada una de las secciones de entrada de la porción de entrada está conectada a una pluralidad de tarjetas de interfaz de red, que escriben cada una directamente dentro de la sección de entrada.
Además, de acuerdo con una realización preferida de la presente invención, cada tarjeta de interfaz de red incluye una librería de espacios de usuario y una unidad de DMA de dispersión - recogida para escribir los paquetes desde la librería a la sección de entrada.
Adicionalmente, de acuerdo con una realización preferida de la presente invención, cada sección de salida incluye al menos una cola que almacena los punteros a las localizaciones en la sección de entrada.
Además, de acuerdo con una realización preferida de la presente invención, cada una de las secciones de salida incluye una cola de escritura por unidad en la que se escribe.
Además, de acuerdo con una realización preferida de la presente invención, la unidad de buzones incluye adicionalmente una sección de buzones que almacena las colas de los buzones, cada una asociada con un buzón. Cada una de las colas de buzones almacena punteros a localizaciones en su sección de entrada cuando se almacenan sus datos.
Aún más, de acuerdo con una realización preferida de la presente invención, el procesador de la unidad de buzones incluye un programador para la programación y el control de la salida de los paquetes.
Además de acuerdo con una realización preferida de la presente invención, el procesador de la unidad de buzones incluye un generador de huellas digitales, un calificador, un selector de buzones y un despachador. El generador de huellas digitales genera la huella digital de una cabecera de un paquete para determinar a qué buzón pertenece el paquete. El clasificador controla la entrada del buzón de acuerdo con los requisitos previamente definidos para el buzón. El selector de buzón, almacena los punteros a la cabecera y el paquete en una cola de buzones asociada con el buzón determinado bajo instrucciones del clasificador. El despachador conforma un flujo de salida desde el buzón para almacenar los punteros en una cola de escritura definida anteriormente para el buzón.
Adicionalmente, de acuerdo con una realización preferida de la presente invención, el procesador de la porción de entrada incluye un creador de la cabecera, un generador de huellas digitales y un selector de la unidad de buzones. El creador de la cabecera crea una nueva cabecera con un puntero a la localización de almacenamiento del paquete. El generador de huellas digitales lee la nueva cabecera y determina en qué unidad de buzones almacenar
el paquete. El selector de la unidad de buzones escribe punteros para la nueva cabecera y para la localización de almacenamiento en una cola de escritura para la unidad de buzones determinada.
Además, de acuerdo con una realización preferida de la presente invención, el procesador de la porción de salida incluye un solicitador de escritura para actualizar una cabecera de un paquete con una dirección de destino del paquete y para escribir un puntero para el paquete dentro de una cola de transmisión.
También se proporciona, de acuerdo con una realización de la presente invención, un enrutador de rejilla que incluye una pluralidad de unidades de interfaces externas y una segunda pluralidad de unidades de buzones. Las unidades de interfaces externas reciben paquetes de los servicios desde un punto y proporcionan los paquetes de los servicios a otro punto. Las unidades de buzones almacenan y retransmiten los paquetes asociados con los buzones, uno por servicio, y cada una de las unidades de buzones se conecta a cada una de las unidades de interfaces externas. Las unidades se implementan sobre PC (ordenadores personales) que tienen controladores de memoria y mueven los paquetes a través de la misma a la tasa de E/S (entrada/salida) de los controladores de memoria o próxima a la misma.
Además, de acuerdo con una realización preferida de la presente invención, cada uno de los ordenadores personales incluye una sección de entrada para almacenar los paquetes y las cabeceras relacionadas, un procesador para procesar solo las cabeceras y al menos para tomar decisiones de encaminamiento y una sección de salida, que almacena al menos un puntero a la sección de entrada para organizar los paquetes para la transferencia al siguiente ordenador personal.
Además, de acuerdo con una realización preferida de la presente invención, la sección de entrada de una porción de entrada de cada una de las unidades de interfaces externas se conecta a una pluralidad de tarjetas de interfaz de red, que escriben cada una directamente dentro de la sección de entrada. El procesador de la porción de entrada determina el encaminamiento de los paquetes a una de las unidades de buzones.
Aún más, de acuerdo con una realización preferida de la presente invención, el enrutador de rejilla también incluye una unidad de colocación de datos directa para transferir paquetes desde una unidad a otra. La unidad de colocación de datos directa puede ser una unidad de rDMA, un dispositivo de descarga de TCP, una tarjeta de interfaz de red habilitada para RDMA o una tarjeta interfaz de red habilitada para DDP.
Además, de acuerdo con una realización preferida de la presente invención, la unidad de buzones incluye adicionalmente una sección de buzones que almacena las colas de los buzones, asociada cada una con un buzón. Cada una de las colas de buzón apunta a las localizaciones en su sección de entrada donde se almacenan sus datos.
Además, de acuerdo con una realización preferida de la presente invención, cada una de las unidades de interfaces externas tiene una porción de entrada para escribir en cada una de las unidades de buzones y una porción de salida para recibir los paquetes de la unidad de buzones. Las porciones de entrada y salida y las unidades de buzones se escriben entre sí en un modo asíncrono.
También se proporciona, de acuerdo con una realización preferida de la presente invención, un procedimiento que incluye la transferencia de paquetes y cabeceras, almacenadas y apuntados en áreas de memoria separadas de un ordenador personal en una cola de escritura del ordenador personal para separar áreas de memoria de otro ordenador personal a través de una unidad de colocación de datos directa a una tasa de entrada/salida de los controladores de memoria de los ordenadores o próxima a la misma.
Adicionalmente, de acuerdo con una realización preferida de la presente invención, el procedimiento también incluye el procesamiento de cada una de las cabeceras para determinar dentro de que cola de escritura se colocará un puntero a la cabecera y su paquete asociado.
Finalmente, se proporciona, de acuerdo con una realización preferida adicional de la presente invención, un procedimiento que incluye el almacenamiento de paquetes y cabeceras de una pluralidad de buzones de una unidad de buzones en un área de almacenamiento general, procesando cada una de las cabeceras para determinar a qué buzón pertenece cada uno de los paquetes y su cabecera asociada, colocando punteros al paquete y su cabecera asociada dentro de una cola de buzón para el buzón y el procesamiento de la cola del buzón para controlar la entrada y la salida del buzón.
Breve descripción de los dibujos
El tema objeto con respecto a la invención se apunta particularmente y se reivindica distintivamente en la porción de conclusión de la memoria descriptiva. La invención, sin embargo, tanto la organización como el procedimiento de funcionamiento, junto con los objetos, características y ventajas de la misma, se pueden entender del mejor modo por referencia a la siguiente descripción detallada cuando se lee con los dibujos adjuntos en los que:
la Fig. 1 es una ilustración esquemática de una red de límite metropolitano;
la Fig. 2 es una ilustración esquemática de un enrutador de rejilla novedoso, construido y operativo de acuerdo con una realización preferida de la presente invención;
las Fig. 3A, 3B y 3C son ilustraciones esquemáticas de una porción de entrada de la unidad de interfaz externa, una unidad de buzones y una porción de salida de la unidad de interfaz externa, respectivamente, que forman parte del enrutador de rejilla de la Fig. 2;
las Fig. 4A, 4B, 4C y 4E son ilustraciones esquemáticas del movimiento de datos a través de los elementos de las Fig. 3A, 3B y 3C; y
la Fig. 5 es una ilustración esquemática del funcionamiento de los elementos de las Fig. 3A, 3B y 3C en el registro de un nuevo buzón.
Se apreciará que por simplicidad y claridad de la ilustración, los elementos mostrados en las figuras no necesariamente se han dibujado a escala. Por ejemplo, las dimensiones de algunos de los elementos pueden estar exageradas con relación a otros elementos por claridad. Además, donde se considere apropiado, las referencias numéricas se pueden repetir entre las figuras para indicar los elementos correspondientes o análogos.
Descripción detallada de la presente invención
En la siguiente descripción detallada, se muestran numerosos detalles específicos para proporcionar un entendimiento completo de la invención. Sin embargo se entenderá por los expertos en la materia que la presente invención se puede poner en práctica sin estos detalles específicos. En otros casos, métodos, procedimientos y componentes bien conocidos no se han descrito con detalle de modo que no obscurezcan la presente invención.
A menos que se establezca específicamente lo contrario, como es evidente de las siguientes discusiones, se apreciará que a través de toda la memoria descriptiva, las exposiciones que usan términos tales como "procesamiento", "computación", "cálculo", "determinación" o similares, se refieren a la acción y/o procedimientos de un ordenador, sistema de computación o dispositivo de computación electrónica similar que manipula y/o transforma los datos representados como cantidades físicas, tal como electrónicas dentro de los registros del sistema de computación y/o las memorias en otros datos representados de forma similar como cantidades físicas dentro de las memorias del sistema de computación, registros u otro almacenamiento de tal información, dispositivos de transmisión o de representación.
Los solicitantes se han dado cuenta de que, para la mayoría de las implementaciones, puede ser necesario acceder un número muy grande de buzones. Puede que una unidad de buzones (MU) no sea suficiente para mantenerlos a todos.
Ahora se hace referencia a la Fig. 2, que ilustra un novedoso enrutador de rejilla 50, construido y operativo de acuerdo con una realización preferida de la presente invención, que comprende una multiplicidad de unidades de buzones MU 54. De acuerdo con una realización preferida de la presente invención, las unidades buzones MU 54 se pueden conectar en un lado a las unidades de interfaces externas de la izquierda (EIU) 52L y en el otro lado a las unidades de interfaces externas de la derecha EIU 52R.
De acuerdo con una realización preferida de la presente invención, las unidades 52 y 54 se pueden conectar en una red de tipo Clos, a través de la cual cada una de las unidades de buzones 54 se puede conectar con cada una de las EIU 52. De este modo, cada unidad de buzones 54 se puede acceder por cada una de las unidades de interfaces externas 52 al mismo tiempo.
Esto puede ayudar al enrutador 50 a operar a plena tasa y una carga equilibrada (es decir, cualquier paquete recibido se puede colocar dentro de un buzón y cualquier paquete en un buzón se puede leer). Hay una pequeña o ninguna congestión, al menos en parte debido al hecho de que el procedimiento de generación de huella digital difunde el tráfico relativamente de forma uniforme entre las unidades de buzones 54 y al hecho de que las unidades de buzones 54 son accesibles desde todas las EIU 52.
Si una red de límite metropolitano solo requiere un enrutador 50, entonces las unidades de interfaces externas EIU 52 se pueden conectar directamente a las unidades de buzones 54. Sin embargo, si la red de límite metropolitano requiere más de un enrutador 50, entonces, de acuerdo con una realización preferida de la presente invención, el enrutador 50 también comprende conmutadores 56 que agregan salidas desde las EIU 52 y las MU 54 sobre los enlaces de alta velocidad 58, tal como un 10G Ethernet. Hay dos conjuntos de enlaces 58L y 58R, en los lados, izquierdo y derecho de las unidades de buzones 54.
Por ejemplo, en la Fig. 2 hay 12 EIU a la izquierda 52L alojados en un chasis de EIU 53L, 12 unidades de buzones 54 alojados en un chasis de buzones 55, y 12 EIU a la derecha 52R alojados en un chasis de EIU a la derecha 53R. Cada uno de los chasis de EIU 53 aloja dos conmutadores (para el chasis de EIU de la izquierda 53L, los conmutadores 56A y 56B están a la salida, mientras que para el chasis de EIU de la derecha 53R, los conmutadores 56G y 56H están a la entrada). El chasis de buzones 55 aloja cuatro conmutadores, dos a la izquierda (56C y 56D) y dos a la derecha (56E y 56F).
El conmutador 56A agrega la salida de las EIU 52L sobre el enlace 58La que, en este ejemplo, es un enlace de 10 Gbps. El enlace 58La conecta al conmutador 56C que, a su vez conecta con todas las 12 unidades de buzones 54. El conmutador 56E agrega la salida de las unidades de buzones 54 sobre el enlace 58R que conecta con el conmutador 56G. El conmutador 56G conecta con todas las EIU 52R. Los conmutadores 56B, 56D, 56F y 56H conectan con otros chasis de buzones 55 que forman parte de los otros enrutadores 50.
Cada uno de los enlaces 58 conecta entre las 12 EIU 52 y las 12 unidades de buzones 54 y de este modo, transporta 12 x 12 = 144 conexiones. De este modo, cada una de las conexiones tiene una tasa de bits de 10 Gbps / 144 o aproximadamente 70 Mbps. En cualquier momento determinado, pueden llegar 144 paquetes en cualquiera de los conmutadores 56 (escritos en los mismos por las unidades rDMA). Durante el tiempo en el que llegan, se pueden conmutar 12 paquetes a su destino. De este modo, 144 - 12 = 132 paquetes pueden colisionar en cualquier momento determinado. Este es un número de paquetes relativamente bajo considerando la velocidad de las conexiones.
Con un número tan bajo de colisiones, el enrutador de rejilla 50 puede tener pocas pérdidas de paquetes y una perturbación de oscilación relativamente pequeña, y de este modo, una calidad de servicio relativamente alta. La tasa de colisión mínima también posibilita que los conmutadores 56 sean mucho más simples, ya que el tráfico es relativamente equilibrado, con pocas ráfagas, si las hay.
Los solicitantes se han dado cuenta además de que cada buzón opera de forma unidireccional. Esto es, un proveedor de servicio envía datos a su unidad de interfaz externa, que a su vez, escribe los datos dentro del buzón asociado con el servicio. La unidad de interfaz externa del abonado toma los datos del buzón y los envía al abonado. La presente invención puede ser un enrutador de rejilla no síncrono que escribe separadamente a y desde una pluralidad de buzones, pero a una velocidad relativamente alta y con una calidad de servicio relativamente alta.
Ahora se hace referencia a las Fig. 3A, 3B y 3C, que ilustran respectivamente los elementos de un enrutador de rejilla 50, y a las Fig. 4A, 4B, 4C y 4D que ilustran su operación. De acuerdo con una realización preferida de la presente invención, cada unidad de interfaz externa EIU 52 tiene dos secciones, una sección de entrada 57 y una sección de salida 59, que escribe separadamente a y desde las unidades de buzones 54, respectivamente.
Cada una de las unidades 54, 57 y 59 se pueden implementar sobre un hardware de PC (ordenador personal) normalizado, en particular uno que tiene una arquitectura X86. Tal arquitectura tiene una unidad de procesamiento central (CPU) , una RAM (memoria de acceso aleatorio), un controlador de memoria para leer y escribir los datos desde la RAM a la CPU y una cantidad más pequeña de memoria de operación ("caché") fácilmente disponible para la CPU.
Cada una de las unidades 54, 57 y 59 pueden tener una sección de datos de entrada 60, una unidad de procesamiento central (CPU) 62 y una sección de datos de salida 64. Cada una de las secciones de datos de entrada 60 puede recibir los paquetes escritos en la misma, cada una de las CPU 62 puede realizar procedimientos relativamente simples para determinar cómo y dónde redirigir los paquetes y cada una de las secciones de datos de salida 64 puede escribir los paquetes a la siguiente unidad. Esta estructura puede posibilitar a un enrutador 50 operar a la tasa de entrada/salida máxima o cerca de esta, como se define por la tasa de funcionamiento de su controlador de memoria, ya que, como se trata más adelante en este documento, las CPU 62 no están involucradas en el movimiento de datos desde una localización de memoria a otra.
La sección de entrada 57 puede comprender un área de almacenamiento de datos 70 y un área de almacenamiento de cabeceras de paquetes 72 en su sección de datos de entrada 60W. Ejecutándose sobre la CPU 62W puede estar un creador de cabecera 74, un generador de huellas digitales 76 y un selector de la unidad de buzones 78 y una sección de datos de salida 64W puede comprender una multiplicidad de colas de escritura 80, una por unidad de buzón 54, y una unidad de rDMA 81.
Como se muestra en la Fig. 4A, los datos se pueden escribir (flecha 82) dentro del área de almacenamiento de datos 70, normalmente dentro de una sección de memoria disponible, tal como la sección k. Esta operación de escritura puede ocurrir cada vez que una tarjeta de interfaz de red (NIC) (no mostrada) puede tener datos para escribir. La (NIC) puede escribir en la sección de memoria k usando una operación de "dispersión recogida". La NIC se puede modificar a través de su "librería de espacio - usuario", para escribir la lista de dispersión recogida directamente dentro de la siguiente localización disponible en el área de almacenamiento de datos 70, en una operación de tipo DMA. Como los datos entrantes pueden ser un paquete y como los paquetes pueden ser de longitudes variables, cada sección de memoria se puede identificar por la localización de su primer bit.
Los paquetes normalmente comprenden cabeceras y colas, con datos entre las mismas, donde las cabeceras normalmente incluyen como mínimo la dirección de los dispositivos de origen y de destino y el tipo de servicio transportado en el paquete. El creador de la cabecera 74 puede leer (flecha 84) la cabecera en su totalidad y puede crear una nueva cabecera, que añade un puntero a la sección de memoria k dentro de la cabecera original. El creador de la cabecera 74 puede almacenar (flecha 85) la nueva cabecera en el área de almacenamiento de cabeceras de paquetes 72, en un contenedor de ejemplo v. Cada contenedor en el área de almacenamiento 72 puede ser relativamente pequeño en comparación con las secciones de memoria del área de almacenamiento de
datos 70, y los contenedores pueden ser generalmente del mismo tamaño.
El generador de huellas digitales 76 puede revisar las cabeceras almacenadas en el área de almacenamiento 72, tomando una cada vez. Puede leer cada una de las cabeceras (flecha 86), tal como la cabecera almacenada en el
contenedor v, y puede generar un valor de huella digital H1 a partir de los datos almacenados en la misma. El valor de la huella digital H1 puede indicar dentro de qué unidad de buzón 54 transferir el paquete. Como se trata en la Solicitud de Patente de los Estados Unidos 11/615.977, la entrada de la huella digital puede variar dependiendo del tipo de servicio transportado por el paquete. Normalmente, el paquete puede incluir una indicación del tipo de servicio transportado en el mismo.
El selector de la unidad de buzones 78 puede actualizar la siguiente dirección de destino de la cabecera a la de la unidad de buzones seleccionada 54, puede añadir el valor de la huella digital H1, y puede escribir (flecha 87) punteros al paquete y a la cabecera actualizados dentro de la cola de escritura 80 para la unidad de buzones MU indicada por el valor de la huella digital H1. Por ejemplo, el selector de la unidad de buzones 78 puede escribir los punteros k y v dentro de la cola de escritura 80 para la unidad de buzones MUh. Cada uno de los contenedores en las colas 80 puede ser bastante pequeño ya que solo almacenan dos punteros, uno para el paquete y otro para la cabecera actualizada.
Volviendo a la Fig. 4B, la unidad de rDMA 81 puede leer cada una de las colas de escritura 80 en una forma de operación por turnos (es decir un paquete desde una cola, otro paquete desde la cola siguiente, etc.). Para cada una de las colas 80, la unidad de rDMA 81 puede acceder al siguiente contenedor de la cola y puede leer los dos punteros (por ejemplo, k y v) almacenados en el mismo. La unidad de rDMA 81 puede acceder a continuación (flecha 88) al paquete almacenado en la dirección del paquete (por ejemplo k) y puede acceder (flecha 89) a la cabecera almacenada en la dirección de cabecera (por ejemplo, v) y puede escribirlas, como la dirección de destino añadida, en el siguiente paquete disponible y el almacenamiento de cabeceras en la unidad de buzones MU asociada con la cola de escritura. Se apreciará que la unidad de rDMA 81 normalmente puede operar a medida que los datos se hacen disponibles para la escritura, no está sincronizado con la NIC que escribe dentro de la sección de datos de entrada 70.
Por ejemplo, la cola de escritura MUh puede estar asociada con la unidad de buzones MUh y de este modo, el rDMA 81 puede escribir (flecha 90) el paquete almacenado en la sección de memoria k a la sección de memoria, tal como la sección de memoria q, en el área de almacenamiento de paquetes 70M de la unidad de buzones MUh y puede escribir (flecha 91) la cabecera almacenada en el contenedor v, en un contenedor tal como el contenedor a, en un área de almacenamiento de cabeceras 72M de la unidad de buzones MUh. Antes de escribir la cabecera dentro de su contenedor (por ejemplo el contenedor a), el rDMA 81 puede actualizar la cabecera para incluir la nueva sección de memoria (por ejemplo, q) del paquete.
La sección de datos de entrada 60M de cada unidad de buzones 54 puede comprender el área de almacenamiento de paquetes 70M y el área de almacenamiento de cabeceras 72M como para las secciones de entrada 57, el área de almacenamiento de paquetes 70M puede tener un tamaño variable de las secciones de memoria mientras que el área de almacenamiento de cabeceras 72M puede tener contenedores de tamaño fijo.
Ejecutándose sobre una CPU 62M puede estar un generador de huellas digitales 92, un selector de buzones 94, un clasificador 96 y un despachador 98. La sección de datos de salida 64M puede comprender una multiplicidad de colas de escritura 100, una por sección de salida 59 y una unidad de rDMA 99.
Además, cada una de las unidades de buzones 54 puede comprender una multiplicidad de colas de buzones 102. Estas colas 102 pueden representar buzones 22 pero, de acuerdo con una realización preferida de la presente invención, no almacenan propiamente los datos; en su lugar, almacenan los punteros a las cabeceras y los datos almacenados en la sección de datos de entrada 60M. Por consiguiente, cada una de las colas de buzón 102 puede ser bastante pequeña. Se apreciará que, teniendo colas separadas 102 para cada buzón, en lugar de almacenar los paquetes en sus buzones, posibilita que las colas sean muy pequeñas y de este modo puede ser relativamente fácil almacenarlas bien en una memoria de acceso aleatorio o en memoria caché para un procesamiento rápido.
El generador de huellas digitales 92 puede leer las cabeceras en orden, generando la huella digital de los datos de la huella digital original de cada una de las cabeceras para determinar a qué cola de buzón 102 asociará los paquetes.
El generador de huellas digitales 92 puede proporcionar un valor de huella digital H2 al selector de buzones 94 que, a su vez, puede seleccionar la cola de buzón 102 indicada por el valor de huella digital H2. El selector de buzones 94 puede proporcionar (flecha 103) el valor de buzón, listado en este caso como B, al clasificador 96 para determinar cómo manejar el paquete de entrada.
El clasificador 96 puede controlar el acceso a la cola de buzón 102 basándose en la calidad de servicio u otros requisitos de canal para ese buzón. Tales requisitos pueden estar asociados con cada buzón 22 (indicado en la Fig. 4B por líneas discontinuas 101 en un extremo de la cola de buzón 102) y pueden estar disponibles para revisión por el clasificador 96. Otra información, tal como la contabilidad abierta, la seguridad, la cadena de sesión, etc., también puede estar asociada con cada cola de buzón 102, así como la sección de salida 59 a través de la cual transmitir los
paquetes a su destino, y la dirección de destino original.
El clasificador 96 puede intentar mantener una tasa de tráfico prefijada para el buzón actual. El clasificador 96 puede desechar cualesquiera paquetes de entrada cuando la cola de buzón actual 102 está llena. El desecho de tales paquetes puede permitir que protocolos tales como el TCP sincronicen sobre la tasa apropiada para ese buzón. El tamaño máximo de buzón se puede definir bien por el número de paquetes, medido a través de un contador de paquetes, o por el tamaño total de paquetes.
La cola de buzón 102 puede ser una cola cíclica y de este modo, el clasificador 96 puede determinar que la cola del buzón 102 puede estar llena cuando un puntero a la cabeza de la cola del buzón 102 está cerca de un puntero al final de la cola del buzón 102. Cuando el clasificador 96 desecha un paquete, el clasificador 96 puede aumentar un contador de 'paquetes desechados' para ese buzón. El clasificador 96 puede proporcionar (flecha 105) sus instrucciones de vuelta al selector de buzón 94 el cual, si no se desechó el paquete, puede escribir (flecha 107) los punteros a la cabecera y las direcciones de los paquetes dentro del siguiente contenedor de la cola del buzón seleccionado 102. En la realización de ejemplo de la Fig. 4B, estas direcciones son a y q respectivamente.
El despachador 98 puede revisar (Fig. 4C) cada una de las colas de buzón 102 para determinar la tasa a la que extraer los paquetes desde el mismo y para conformar el flujo de salida. El despachador 98 puede utilizar un algoritmo de conformación tal como el algoritmo "leaky bucket" ("cubo agujereado") como se conoce en la técnica, que extrae paquetes desde una cola mientras que cumple con el parámetro de QOS / conformación definido para cada buzón. Se apreciará además que también se pueden usar otras fórmulas de conformación en la presente invención.
Cuando el despachador 98 determina que un paquete puede estar listo para su liberación desde un buzón actual, el despachador 98 puede actualizar la cabecera con la dirección de destino de la sección de salida 59 asociada con la cola de buzón actual 102. El despachador 98 puede copiar (flecha 109) la información del puntero almacenada en el contenedor actualmente en la cabeza de la cola del buzón 102 a la cola de escritura 100 asociada con la cola del buzón 102. La Fig. 4B muestra que la sección de salida etiquetada como 59n es la asociada con la cola de buzón de ejemplo 102.
Volviendo a la Fig. 4D, la unidad de rDMA 99 puede leer cada cola de escritura 100 en una forma por turnos. Para cada cola 100, la unidad de rDMA 99 puede acceder al siguiente contenedor de la cola y puede leer los dos punteros (por ejemplo, a y q) almacenados en el mismo. La unidad de rDMA 99 puede acceder a continuación (flecha 110) a la cabecera almacenada en la dirección de la cabecera (por ejemplo, a) y puede acceder (flecha 111) al paquete almacenado en la dirección del paquete (por ejemplo q) y escribirlas, como la dirección de destino actualizada, dentro de la siguiente cabecera disponible y el almacenamiento de paquetes en la sección de salida 59 asociada con la cola de escritura.
Por ejemplo, la cola de escritura 59n puede estar asociada con la sección de salida 59n y de este modo, el rDMA 102 puede escribir (flecha 112) la cabecera almacenada en un contenedor a, en un contenedor tal como el contenedor m, en el área de almacenamiento de cabeceras 72R de la sección de salida 59n y puede escribir (flecha 113) el paquete almacenado en la sección de memoria q a una sección de memoria, tal como la sección de memoria s, en el área de almacenamiento de paquetes 70R de la sección de salida 59n. Antes de escribir la cabecera dentro de su contenedor (por ejemplo, el contenedor m), el rDMA 102 puede actualizar la cabecera para incluir la nueva sección de memoria (por ejemplo, s) del paquete. Se apreciará que la unidad de rDMA 99, normalmente puede operar a medida que los datos se hacen disponibles para su escritura; no está sincronizada con la unidad de rDMA 81 (Fig. 4B) o cualquier otra unidad de escritura.
La sección del área de datos de entrada 60R de cada sección de salida 59 puede comprender el área de almacenamiento de paquetes 70R y el área de almacenamiento de cabeceras 72R. Como en las otras unidades, el área de almacenamiento de paquetes 70R puede tener un tamaño variable de las secciones de memoria mientras que el área de almacenamiento de cabeceras 72R puede tener contenedores de tamaño fijo.
Ejecutándose sobre la CPU 62R puede estar un solicitador de escritura 120. La sección de datos de salida 64R puede comprender una única cola de transmisión 122 y una unidad de DMA 124.
El solicitador de escritura 120 puede revisar (flecha 126) cada una de las nuevas cabeceras, comprobando la dirección de destino original y puede buscar la siguiente dirección de destino para la dirección de destino original y su copia local de la tabla de ARP, etiquetada como 130. El solicitador de escritura 120 puede actualizar la cabecera almacenada en el paquete para incluir la dirección MAC al siguiente destino para el paquete (es decir, el destino externo) y puede escribir (flecha 128) un puntero a la dirección del paquete dentro del siguiente contenedor disponible de la cola de transmisión 122. En la realización de ejemplo de la Fig. 4D, esta dirección es s.
Volviendo a la Fig. 4E, la unidad de DMA 124 puede acceder al siguiente contenedor de la cola de transmisión 122 y puede leer el puntero (por ejemplo, s) almacenado en el mismo. La unidad de DMA 124 puede acceder a continuación (flechas 132 y 133) al paquete almacenado en la dirección del paquete (por ejemplo, s) y puede escribirla, como la dirección de destino actualizada, fuera hacia la red. Se apreciará que la unidad de DMA 124 normalmente puede operar a medida que los datos se hacen disponibles para la escritura; no está sincronizada con
la unidad de rDMA 81 o 99.
Se apreciará que el enrutador 50 (Fig. 2) puede escribir sólo una vez por unidad, realizando todo su procesamiento sobre las cabeceras almacenadas separadamente de los paquetes. Además, rellenando las colas de transmisión y los buzones con punteros en lugar de con los datos reales, el enrutador 50 minimiza las operaciones de lectura y escritura. De hecho, las CPU 62 no copian los datos desde un lugar al otro en memoria, y, como resultado, procesan los datos mucho más rápidamente. Las CPU 62 meramente revisan las cabeceras, una cantidad relativamente pequeña de datos que se pueden llevar a la memoria caché de trabajo y procesarse relativamente rápidamente.
Además, la entrada y la salida están separadas, de modo que se puede escribir en un buzón y leerse desde el mismo al mismo tiempo. Además, las operaciones de entrada y salida no tienen que estar necesariamente sincronizadas; ocurren cada vez que hay datos disponibles en las diversas colas de escritura. A pesar de esto, el enrutador de rejilla 50 puede mover datos a través del mismo rápidamente.
Se apreciará que el rDMA y las unidades de DMA realizan el transporte del tráfico del servicio agregado desde una unidad del enrutador 50 a otra unidad segura. El protocolo del rDMA es un protocolo seguro con control de flujo y, como resultado, no genera colisiones. Se apreciará además que la presente invención puede usar otros protocolos de colocación de datos directa que soportan el acceso a memoria directo del ordenador y dan acceso al sistema operativo a los datos recibidos desde la red sin realizar ninguna copia de memoria basada en la CPU. Ejemplos de otros tipos de unidades de colocación directa de datos pueden ser los dispositivos de descarga de TCP, RNIC (NIC con RDMA habilitado), NIC con DDP habilitado, y otros dispositivos de descarga.
Se observa que el flujo anterior es operativo para los servicios existentes. Ahora haremos referencia a la Fig. 5, que ilustra el procedimiento para un nuevo paquete. Cuando llega un nuevo paquete a una sección de entrada 57, el creador de cabeceras 74 puede comprobar la dirección de origen para ver si el servicio representado es conocido. En una realización, el creador de cabeceras 74 puede comprobar un tabla de ARP local (procedimiento de registro de direcciones) 141. Si existe el servicio, el creador de cabeceras 74 puede enviar a la dirección de origen una "respuesta de ARP". Sin embargo, si el servicio no está listado en la tabla de ARP, el creador de cabeceras 74 puede comenzar un nuevo procedimiento de registro de buzón. En primer lugar, el creador de cabeceras 74 puede
solicitar al generador de huellas digitales 76 que calcule el valor de la huella digital H1 a partir de los datos en el paquete. Basándose en los resultados de la huella digital, el selector de la unidad de buzones 78 puede determinar la unidad de buzones 54 para el servicio y puede enviar un comando de Registro de Buzón, que puede incluir una referencia para la identificación del servicio y para un identificador de la sección de entrada 57, para la unidad de buzones seleccionada 54.
Una nueva unidad de servicio 140 puede recibir el comando de Registro de Buzón y puede emitir una petición a la tabla 30 (Fig. 1) de servicios y usuarios. Con la contestación desde la tabla 30, la nueva unidad de servicio 140 puede generar un nuevo buzón 22 que tiene los parámetros del servicio recibidos desde la tabla 30 y que tiene un valor de huella digital apropiada generada de acuerdo con la fórmula para ese tipo de servicio. La nueva unidad de servicio 140 también puede determinar la sección de salida 59, normalmente a partir de la huella digital de la dirección de origen y puede almacenar esta, así como la dirección de origen listada en el paquete, en una tabla de ARP local 142.
La nueva unidad de servicio 140 puede enviar una confirmación de vuelta al creador de cabeceras 74 de la sección de entrada 57 que, a su vez, puede enviar una contestación de ARP a la dirección de origen.
Claims (13)
- REIVINDICACIONES1. Un enrutador de rejilla que comprende:una pluralidad de unidades de interfaces externas (44) configuradas para recibir paquetes de servicios desde un punto y para proporcionar los paquetes de los servicios a otro punto; y una segunda pluralidad de unidades de buzones (46) configurados para almacenar y redirigir dichos paquetes asociados con los buzones respectivos, conectada cada una de las unidades de buzones (46) a dichas unidades de interfaces externas (44), en el que cada una de dichas unidades de interfaces externas (44) tiene una porción de entrada y una porción de salida, ycada una de dichas porciones y cada una de las unidades de buzones, comprende:una sección de entrada configurada para almacenar dichos paquetes y las cabecera relacionadas; un procesador de buzón configurado al menos para tomar decisiones de encaminamiento; y una sección de salida configurada para organizar dichos paquetes para transferir a una unidad siguiente, en el que:dicha sección de entrada de dicha porción de entrada está conectada a una pluralidad de tarjetas de interfaz de red, y se caracteriza porque:cada una de las tarjetas de interfaz de red está configurada para escribir directamente en dicha sección de entrada, cada una de dichas tarjetas de interfaz de red comprende una librería de espacios de usuario, y se asigna un buzón por servicio y porque dicha sección de salida está configurada además para almacenar al menos un puntero a dicha sección de entrada.
-
- 2.
- El enrutador de rejilla de acuerdo con la reivindicación 1 y en el que dichas porciones de entrada comprenden medios para escribir en dichas unidades de buzones según la información en dichos paquetes, dichas unidades de buzones comprenden medios para escribir paquetes en porciones de salida asociadas con dichos buzones en los que están almacenados dichos paquetes y dichas porciones de salida comprenden medios para escribir paquetes a dicho otro punto.
-
- 3.
- El enrutador de rejilla de acuerdo con la reivindicación 1 o la reivindicación 2, y en el que dicho procesador de buzón está configurado para procesar solo dichas cabeceras para tomar dichas decisiones de encaminamiento.
-
- 4.
- El enrutador de rejilla de acuerdo con la reivindicación 3 en el que cada una de las unidades de buzón está conectada a dichas unidades de interfaces externas en una red de tipo CLOS.
-
- 5.
- El enrutador de rejilla de acuerdo con una cualquiera de las reivindicaciones anteriores, y en el que dicha librería comprende una unidad de DMA de dispersión-recogida para escribir dichos paquetes desde dicha librería a dicha sección de entrada.
-
- 6.
- El enrutador de rejilla de acuerdo con una cualquiera de las reivindicaciones anteriores, y en el que al menos una de dichas secciones de salida comprende al menos una cola para almacenar dicho al menos un puntero a las localizaciones en dicha sección de entrada, o una cola de escritura por unidad en la que se escribe.
-
- 7.
- El enrutador de rejilla de acuerdo con la reivindicación 3 y en el que dicha unidad de buzones comprende adicionalmente una sección de buzones configurada para almacenar colas de buzones, asociada cada una con un buzón, en el que cada una de dichas colas de buzones está configurada para almacenar punteros a localizaciones en dicha sección de entrada donde se almacenan sus datos, o en el que dicho procesador de buzón también comprende un programador para programar y controlar la salida de dichos paquetes, o en el que dicho procesador de buzón comprende:
un generador de huellas digitales para generar una huella digital de una cabecera de un paquete para determinar a qué buzón pertenece dicho paquete; un calificador para controlar la entrada a dicho buzón de acuerdo con los requisitos definidos previamente para dicho buzón; un selector de buzón para almacenar punteros a dicha cabecera y a dicho paquete en una cola de buzón asociada con dicho buzón determinado bajo instrucción de dicho calificador; y un despachador configurado para conformar un flujo de salida desde dicho buzón y para almacenar dichos punteros en una cola de escritura definida previamente para dicho buzón. -
- 8.
- El enrutador de rejilla de acuerdo con cualquiera de las reivindicaciones anteriores, y en el que dicha porción de entrada comprende además un procesador de la porción de entrada, comprendiendo dicho procesador de la porción de entrada; un creador de cabeceras configurado para crear una nueva cabecera con un puntero a la localización de
almacenamiento del paquete; un generador de huellas digitales configurado para leer dicha nueva cabecera y para determinar en qué unidad de buzones almacenar dicho paquete; y un selector de unidad de buzones configurado para escribir punteros a dicha nueva cabecera y a dicha localización de almacenamiento en una cola de escritura para dicha unidad de buzones determinada. -
- 9.
- El enrutador de rejilla de acuerdo con cualquiera de las reivindicaciones anteriores, teniendo dicha porción de salida un procesador, comprendiendo dicho procesador de la porción de salida:
un solicitador de escritura configurado para actualizar una cabecera de un paquete con una dirección de destino de dicho paquete y para escribir un puntero a dicho paquete dentro de una cola de transmisión. -
- 10.
- El enrutador de rejilla de cualquiera de las reivindicaciones anteriores, en el que dichas unidades se implementan sobre PC (ordenadores personales) que tienen controladores de memoria y en el que dichas unidades se configuran para mover dichos paquetes a través del mismo sustancialmente a la tasa de E/S (Entrada / Salida) de dichos controladores de memoria.
-
- 11.
- El enrutador de rejilla de acuerdo con la reivindicación 10 y que también comprende una unidad de colocación directa de datos configurada para transferir paquetes desde una unidad a otra.
-
- 12.
- El enrutador de rejilla de acuerdo con la reivindicación 11 y en el que dicha unidad de colocación de datos directa es una de: una unidad de rDMA, un dispositivo de descarga de TCP, una tarjeta de interfaz de red con RDMA habilitado y una tarjeta de interfaz de red con DDP habilitado.
-
- 13.
- Un procedimiento de redirigir el tráfico a través de enrutadores de rejilla, comprendiendo el procedimiento:
en un enrutador de rejilla: almacenar paquetes y cabeceras de una pluralidad de buzones de una unidad de buzones (46) en un área de almacenamiento general; procesar cada una de dichas cabeceras para determinar a qué buzón pertenece cada uno de los paquetes y la cabecera asociada; colocar punteros a dicho paquete y su cabecera asociada dentro de una cola de buzón para dicho buzón; y procesar dicha cola de buzón para controlar la entrada y la salida de dicho buzón, y caracterizado porque dicho procesamiento de dicha cola de buzón comprende transferir paquetes y cabeceras, almacenadas en áreas separadas de memoria de un ordenador personal y apuntadas en dicha cola de escritura de dicho ordenador personal a áreas de memoria separadas de otro ordenador personal a través de una unidad de colocación directa de datos.COLA DE ESCRITURA 59lCOLA DE ESCRITURA 59l
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/927,861 US8929372B2 (en) | 2007-10-30 | 2007-10-30 | Grid router |
| US927861 | 2007-10-30 | ||
| PCT/IL2008/001424 WO2009057109A2 (en) | 2007-10-30 | 2008-10-29 | A grid router |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2424630T3 true ES2424630T3 (es) | 2013-10-07 |
Family
ID=40582742
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES08845163T Active ES2424630T3 (es) | 2007-10-30 | 2008-10-29 | Un enrutador de rejilla |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US8929372B2 (es) |
| EP (1) | EP2208322B1 (es) |
| ES (1) | ES2424630T3 (es) |
| WO (1) | WO2009057109A2 (es) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ATE545248T1 (de) * | 2006-07-27 | 2012-02-15 | Contextream Ltd | Verteiltes edge-netzwerk |
| US8929372B2 (en) | 2007-10-30 | 2015-01-06 | Contextream Ltd. | Grid router |
| RU2477930C2 (ru) * | 2008-08-04 | 2013-03-20 | ЗетТиИ Корпорейшн | Способ и система для передачи потоковых мультимедийных данных с нулевым копированием |
| US8467295B2 (en) * | 2008-08-21 | 2013-06-18 | Contextream Ltd. | System and methods for distributed quality of service enforcement |
| US8379516B2 (en) * | 2009-12-24 | 2013-02-19 | Contextream Ltd. | Grid routing apparatus and method |
| CN107579919A (zh) * | 2017-10-19 | 2018-01-12 | 成都市宏山科技有限公司 | 一种散热悬挂型路由器 |
| CN107592268A (zh) * | 2017-10-19 | 2018-01-16 | 成都市宏山科技有限公司 | 一种具有观察工作状态外壳的路由器 |
| TWI728363B (zh) * | 2019-05-17 | 2021-05-21 | 創惟科技股份有限公司 | 具資料存取、傳輸及電源管理的整合電子裝置及其方法 |
| US20210232531A1 (en) * | 2020-01-27 | 2021-07-29 | Swaroop Patel | System and Methods for Connecting Peripheral Devices to Host Computers |
| TWI796564B (zh) * | 2020-05-12 | 2023-03-21 | 緯穎科技服務股份有限公司 | 電子裝置及其可熱插拔的儲存裝置 |
| CN112328533A (zh) | 2020-11-09 | 2021-02-05 | 哲库科技(上海)有限公司 | 多核处理系统及其核间通信方法、存储介质 |
Family Cites Families (72)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5640399A (en) * | 1993-10-20 | 1997-06-17 | Lsi Logic Corporation | Single chip network router |
| FI103005B (fi) | 1996-03-25 | 1999-03-31 | Nokia Telecommunications Oy | Lähetettävän datan priorisointi reitittimessä |
| US6216173B1 (en) | 1998-02-03 | 2001-04-10 | Redbox Technologies Limited | Method and apparatus for content processing and routing |
| US6538992B1 (en) | 1998-02-24 | 2003-03-25 | Nokia Telecommunications Oy | Adaptive scheduling method and apparatus to service multilevel QoS in AAL2 |
| US6452915B1 (en) | 1998-07-10 | 2002-09-17 | Malibu Networks, Inc. | IP-flow classification in a wireless point to multi-point (PTMP) transmission system |
| US6822966B2 (en) | 1999-03-01 | 2004-11-23 | Enterasys Networks, Inc. | Allocating buffers for data transmission in a network communication device |
| US6687247B1 (en) | 1999-10-27 | 2004-02-03 | Cisco Technology, Inc. | Architecture for high speed class of service enabled linecard |
| GB9930428D0 (en) | 1999-12-22 | 2000-02-16 | Nortel Networks Corp | A method of provisioning a route in a connectionless communications network such that a guaranteed quality of service is provided |
| US6937561B2 (en) | 2000-06-02 | 2005-08-30 | Agere Systems Inc. | Method and apparatus for guaranteeing data transfer rates and enforcing conformance with traffic profiles in a packet network |
| US7075919B1 (en) | 2000-08-22 | 2006-07-11 | Cisco Technology, Inc. | System and method for providing integrated voice, video and data to customer premises over a single network |
| JP4020576B2 (ja) | 2000-09-14 | 2007-12-12 | 株式会社東芝 | パケット転送方法、移動端末装置及びルータ装置 |
| US6947433B2 (en) | 2000-09-21 | 2005-09-20 | Avici Systems, Inc. | System and method for implementing source based and egress based virtual networks in an interconnection network |
| US7457313B2 (en) | 2000-09-25 | 2008-11-25 | General Instrument Corporation | Hierarchical prioritized round robin (HPRR) scheduling |
| US7342942B1 (en) * | 2001-02-07 | 2008-03-11 | Cortina Systems, Inc. | Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port |
| US6973229B1 (en) | 2001-02-28 | 2005-12-06 | Lambda Opticalsystems Corporation | Node architecture for modularized and reconfigurable optical networks, and methods and apparatus therefor |
| CA2451764A1 (en) | 2001-07-05 | 2003-01-16 | Sandburst Corporation | Method and apparatus for allocating link bandwidth |
| JP3465703B2 (ja) | 2001-07-18 | 2003-11-10 | 日本電気株式会社 | 共通チャネルフロー制御方法 |
| US20030046336A1 (en) | 2001-08-31 | 2003-03-06 | D'annunzio Michael A. | Persistent link for broadband mobile platform communicatons systems using proxy servers |
| US20030061296A1 (en) | 2001-09-24 | 2003-03-27 | International Business Machines Corporation | Memory semantic storage I/O |
| US7248593B2 (en) | 2001-09-25 | 2007-07-24 | Intel Corporation | Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues |
| US20030093463A1 (en) | 2001-11-13 | 2003-05-15 | Graf Eric S. | Dynamic distribution and network storage system |
| US7065089B2 (en) | 2001-12-21 | 2006-06-20 | Alcatel Canada Inc. | Method and system for mediating traffic between an asynchronous transfer mode (ATM) network and an adjacent network |
| US7320070B2 (en) | 2002-01-08 | 2008-01-15 | Verizon Services Corp. | Methods and apparatus for protecting against IP address assignments based on a false MAC address |
| US7327748B2 (en) | 2002-01-28 | 2008-02-05 | Alcatel Lucent | Enterprise switching device and method |
| US7159010B2 (en) | 2002-02-06 | 2007-01-02 | Intel Corporation | Network abstraction of input/output devices |
| US7260102B2 (en) * | 2002-02-22 | 2007-08-21 | Nortel Networks Limited | Traffic switching using multi-dimensional packet classification |
| US7190696B1 (en) | 2002-03-05 | 2007-03-13 | Force10 Networks, Inc. | System and method for distributing packets among a plurality of paths to a destination |
| US7586909B1 (en) | 2002-03-06 | 2009-09-08 | Agere Systems Inc. | Striping algorithm for switching fabric |
| US7782776B2 (en) | 2002-03-15 | 2010-08-24 | Broadcom Corporation | Shared weighted fair queuing (WFQ) shaper |
| US7085236B2 (en) | 2002-05-20 | 2006-08-01 | University Of Massachusetts, Amherst | Active queue management for differentiated services |
| US7376125B1 (en) | 2002-06-04 | 2008-05-20 | Fortinet, Inc. | Service processing switch |
| ATE443291T1 (de) * | 2002-06-19 | 2009-10-15 | Ericsson Telefon Ab L M | Netzwerkeinrichtungs-treiberarchitektur |
| US7826466B2 (en) | 2002-06-26 | 2010-11-02 | Atheros Communications, Inc. | Communication buffer scheme optimized for VoIP, QoS and data networking over a power line |
| US7218640B2 (en) * | 2002-08-30 | 2007-05-15 | Intel Corporation | Multi-port high-speed serial fabric interconnect chip in a meshed configuration |
| US7483631B2 (en) | 2002-12-24 | 2009-01-27 | Intel Corporation | Method and apparatus of data and control scheduling in wavelength-division-multiplexed photonic burst-switched networks |
| FR2854018A1 (fr) | 2003-04-18 | 2004-10-22 | France Telecom | Procede et dispositif de controle d'un trafic de paquets de donnees en entree d'un reseau, programme d'ordinateur et equipement reseau correspondants |
| US20040223497A1 (en) | 2003-05-08 | 2004-11-11 | Onvoy Inc. | Communications network with converged services |
| KR100501717B1 (ko) | 2003-05-09 | 2005-07-18 | 삼성전자주식회사 | Udp/tcp/ip 네트워크에서 버퍼관리를 기반으로 한음성 및 데이터 통합 전송방법 |
| JP3767577B2 (ja) * | 2003-05-29 | 2006-04-19 | 三菱電機株式会社 | スキャン装置 |
| US8045566B2 (en) | 2003-08-01 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Automated router load balancing |
| JP4335619B2 (ja) | 2003-09-04 | 2009-09-30 | 株式会社エヌ・ティ・ティ・ドコモ | パケット優先制御装置及びその方法 |
| US20060159078A1 (en) | 2003-09-06 | 2006-07-20 | Teak Technologies, Inc. | Strictly nonblocking multicast linear-time multi-stage networks |
| DE60335373D1 (de) * | 2003-10-06 | 2011-01-27 | Ericsson Telefon Ab L M | Koordinierte Datenflusssteuerung und Datenpufferteilung in UMTS |
| US7366092B2 (en) | 2003-10-14 | 2008-04-29 | Broadcom Corporation | Hash and route hardware with parallel routing scheme |
| US7698361B2 (en) * | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
| US20050141426A1 (en) | 2003-12-31 | 2005-06-30 | Broadcom Corporation | System and method for controlling packet transmission using a plurality of buckets |
| US7660284B1 (en) | 2004-02-02 | 2010-02-09 | Verizon New York Inc. | Nevigation within a wireless network |
| JP2005295457A (ja) | 2004-04-05 | 2005-10-20 | Fujitsu Ltd | P2pトラフィック対応ルータ及びそれを用いたp2pトラフィック情報共有システム |
| US7826457B2 (en) | 2004-05-11 | 2010-11-02 | Broadcom Corp. | Method and system for handling out-of-order segments in a wireless system via direct data placement |
| JP2006054597A (ja) * | 2004-08-10 | 2006-02-23 | Ntt Docomo Inc | スロット割当装置及びその方法 |
| US8984140B2 (en) * | 2004-12-14 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Managing connections through an aggregation of network resources providing offloaded connections between applications over a network |
| US7529191B2 (en) | 2005-02-18 | 2009-05-05 | Broadcom Corporation | Programmable metering behavior based on table lookup |
| US7567567B2 (en) | 2005-04-05 | 2009-07-28 | Sun Microsystems, Inc. | Network system including packet classification for partitioned resources |
| US7756026B2 (en) | 2005-04-20 | 2010-07-13 | At&T Intellectual Property I, L.P. | Providing a quality of service for various classes of service for transfer of electronic data packets |
| US20070121499A1 (en) | 2005-11-28 | 2007-05-31 | Subhasis Pal | Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching |
| US8130648B2 (en) | 2006-01-04 | 2012-03-06 | Broadcom Corporation | Hierarchical queue shaping |
| US7944838B2 (en) | 2006-01-16 | 2011-05-17 | Kddi Corporation | Apparatus, method and computer program for traffic control |
| US20070220059A1 (en) | 2006-03-20 | 2007-09-20 | Manyi Lu | Data processing node |
| US7596628B2 (en) * | 2006-05-01 | 2009-09-29 | Broadcom Corporation | Method and system for transparent TCP offload (TTO) with a user space library |
| US8665892B2 (en) | 2006-05-30 | 2014-03-04 | Broadcom Corporation | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch |
| US7729347B2 (en) | 2006-05-31 | 2010-06-01 | Zvi Rosberg | Method and apparatus for fair flow control and congestion avoidance supporting multiple QoS class requirements |
| ATE545248T1 (de) | 2006-07-27 | 2012-02-15 | Contextream Ltd | Verteiltes edge-netzwerk |
| WO2008129790A1 (ja) | 2007-03-20 | 2008-10-30 | Nippon Shokubai Co., Ltd. | 光拡散フィルム用樹脂組成物及びそれを用いた光拡散フィルム |
| US7848322B2 (en) * | 2007-03-26 | 2010-12-07 | Voltaire Ltd. | Device, system and method of UDP communication |
| US7916718B2 (en) | 2007-04-19 | 2011-03-29 | Fulcrum Microsystems, Inc. | Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics |
| US8929372B2 (en) | 2007-10-30 | 2015-01-06 | Contextream Ltd. | Grid router |
| US7773504B2 (en) | 2007-11-13 | 2010-08-10 | Intel Corporation | Bandwidth allocation for network packet traffic |
| US7898985B1 (en) | 2008-04-23 | 2011-03-01 | Juniper Networks, Inc. | Composite next hops for forwarding data in a network switching device |
| US8467295B2 (en) | 2008-08-21 | 2013-06-18 | Contextream Ltd. | System and methods for distributed quality of service enforcement |
| US8098574B2 (en) | 2008-08-26 | 2012-01-17 | Fulcrum Microsystems, Inc. | Global ports in multi-switch systems |
| US7835357B2 (en) | 2008-09-30 | 2010-11-16 | Juniper Networks, Inc. | Methods and apparatus for packet classification based on policy vectors |
| US8218553B2 (en) | 2009-02-25 | 2012-07-10 | Juniper Networks, Inc. | Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering |
-
2007
- 2007-10-30 US US11/927,861 patent/US8929372B2/en not_active Expired - Fee Related
-
2008
- 2008-10-29 ES ES08845163T patent/ES2424630T3/es active Active
- 2008-10-29 EP EP08845163.8A patent/EP2208322B1/en not_active Not-in-force
- 2008-10-29 WO PCT/IL2008/001424 patent/WO2009057109A2/en not_active Ceased
-
2013
- 2013-05-13 US US13/892,356 patent/US20130266016A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| WO2009057109A3 (en) | 2010-03-11 |
| EP2208322A2 (en) | 2010-07-21 |
| US20090109968A1 (en) | 2009-04-30 |
| WO2009057109A2 (en) | 2009-05-07 |
| EP2208322A4 (en) | 2010-11-24 |
| EP2208322B1 (en) | 2013-05-15 |
| US8929372B2 (en) | 2015-01-06 |
| US20130266016A1 (en) | 2013-10-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12261926B2 (en) | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths | |
| US12574339B2 (en) | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths | |
| EP2208322B1 (en) | A grid router | |
| ES2388428T3 (es) | Sistema y método para el procesamiento de paquetes | |
| US9013994B2 (en) | Distributed chassis architecture having integrated service appliances | |
| CN104104616B (zh) | 数据调度和交换的方法、装置及系统 | |
| US9246825B2 (en) | Accelerated processing of aggregate data flows in a network environment | |
| US9166921B2 (en) | Selective packet sequence acceleration in a network environment | |
| US8792353B1 (en) | Preserving sequencing during selective packet acceleration in a network environment | |
| US8948013B1 (en) | Selective packet sequence acceleration in a network environment | |
| CN105556916B (zh) | 网络流的信息统计方法和装置 | |
| US7298745B2 (en) | Method and apparatus to manage packet fragmentation with address translation | |
| US20110170553A1 (en) | Method of data delivery across a network fabric in a router or ethernet bridge | |
| CN116633726B (zh) | 云网关和用于网络适配器的方法及网络适配器 | |
| WO2016082603A1 (zh) | 一种调度器及调度器的动态复用方法 | |
| CN109818879A (zh) | 流量控制方法及装置 | |
| ES2382108T3 (es) | Red de borde distribuida | |
| Battu | New telecom networks: Enterprises and security | |
| US20060135167A1 (en) | Apparatus and method for inter-processor communications in a multiprocessor routing node | |
| CN102377668A (zh) | 一种优化服务质量配置的方法及报文转发设备 | |
| HK1155297B (en) | A method of data delivery across a network fabric in a router or ethernet bridge | |
| HK1155297A (en) | A method of data delivery across a network fabric in a router or ethernet bridge |