ES2870577T3 - Procedimiento de edición de paquetes y dispositivo relacionado - Google Patents

Procedimiento de edición de paquetes y dispositivo relacionado Download PDF

Info

Publication number
ES2870577T3
ES2870577T3 ES14893121T ES14893121T ES2870577T3 ES 2870577 T3 ES2870577 T3 ES 2870577T3 ES 14893121 T ES14893121 T ES 14893121T ES 14893121 T ES14893121 T ES 14893121T ES 2870577 T3 ES2870577 T3 ES 2870577T3
Authority
ES
Spain
Prior art keywords
protocol
field
descriptor
template
packet
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
Application number
ES14893121T
Other languages
English (en)
Inventor
Nan Li
Linchun Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Application granted granted Critical
Publication of ES2870577T3 publication Critical patent/ES2870577T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

Un procedimiento de procesamiento de edición de paquetes, que comprende: generar (101) una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, en donde la plantilla de paquete de entrada comprende N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo, en donde la plantilla de paquete de entrada comprende además un descriptor de plantilla, en donde el descriptor de plantilla comprende un campo de descripción de combinación de protocolos, en donde el campo de descripción de combinación de protocolos se utiliza para describir una primera secuencia de indicaciones de protocolos, correspondiendo las indicaciones de protocolos a los descriptores de protocolo comprendidos en la plantilla de paquete de entrada, generar una relación de mapeo de campos de protocolo preestablecida, en donde la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo comprendido en un descriptor de protocolo y un campo de protocolo comprendido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo, realizar (102) el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida, en donde la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la primera secuencia; e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada, realizar el procesamiento de edición sobre un paquete de entrada para obtener un paquete de salida, donde la realización del procesamiento de edición sobre el paquete de entrada comprende: convertir (103), en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo comprendidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y reemplazar (104) los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, en donde N y M son enteros positivos; en donde N no es igual a M; en donde el procedimiento de procesamiento de edición de paquetes es tal que, cuando se considera la realización del procesamiento de edición sobre la plantilla de paquete de entrada y la realización del procesamiento de edición sobre el paquete de entrada el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada.

Description

DESCRIPCIÓN
Procedimiento de edición de paquetes y dispositivo relacionado
Campo técnico
La presente invención se refiere al campo de las tecnologías de comunicaciones y, en particular, a un procedimiento de procesamiento de edición de paquetes y un aparato de procesamiento de edición de paquetes.
Estado de la técnica anterior
En un proceso de transferencia de paquetes, un dispositivo de transferencia de paquetes tiene normalmente que realizar, en función del contenido de un paquete, diferentes opciones de transferencia tales como modulación de la capa 2, y encaminamiento y transferencia de la capa 3. Las diferentes opciones de transferencia indican generalmente que el procesamiento de edición se tiene que realizar sobre el paquete de maneras diferentes.
Por lo tanto, un procesamiento de edición de paquetes es una función muy elemental pero extremadamente importante. El procesamiento de edición de paquetes se refiere principalmente a que un dispositivo de transferencia de paquetes tiene, en ocasiones, que modificar un paquete recibido (por ejemplo, añadir o eliminar un campo de cabecera de protocolo de capa particular del paquete, o cambiar el campo de tiempo de vida (TTL, Time To Live) del paquete) de acuerdo con un requisito de transferencia. Por lo tanto, el procesamiento de edición de paquetes se puede ver como un término genérico de un proceso de modificación y edición de un paquete recibido. Generalmente, un procedimiento complejo de procesamiento de edición de paquetes se puede ver como una combinación de una serie de operaciones básicas de edición de paquetes. Las operaciones básicas de edición de paquetes se pueden clasificar en los siguientes tres tipos: operaciones de inserción, operaciones de eliminación y operaciones de sustitución. Una operación de inserción se refiere normalmente a insertar un segmento de datos nuevos en el paquete recibido, una operación de eliminación se refiere normalmente a eliminar un segmento de datos del paquete recibido y una operación de sustitución se refiere normalmente a sustituir un segmento de datos en el paquete recibido, con nuevos datos. Por ejemplo, transferir un paquete S1 sobre Ethernet se puede ver como una combinación de una serie de operaciones de edición de paquetes, tal como eliminar un campo de cabecera Ethernet (Ethernet) antiguo del paquete S1, sustituir un valor de un campo TTL del paquete S1 (por ejemplo, disminuir el valor del campo TTL en uno), sustituir un campo de suma de comprobación (checksum) de cabecera en un campo de cabecera de protocolo de internet (IP, Internet Protocoí) del paquete S1 e insertar un nuevo campo de cabecera del paquete Ethernet en el paquete S1.
En el procesamiento de edición de paquetes existente, el procesamiento de edición de paquetes es implementado generalmente por un procesador, es decir, las acciones del procesamiento de edición de paquetes se pueden implementar ejecutando con el procesador programas relacionados. De este modo, los datos de paquete se almacenan generalmente en una área de direcciones consecutiva, y se registra una dirección de inicio y una dirección final de los datos de paquete. El procesador directamente mueve y modifica los datos de paquete de acuerdo con operaciones que se tienen que realizar. Después de que el procesamiento se completa, el paquete editado se envía fuera del dispositivo de transferencia de paquetes. Por ejemplo, se supone que el dispositivo de transferencia de paquetes recibe un paquete Ethernet+IPv4 de 64 octetos (es decir, los campos de cabecera de protocolo del paquete incluyen un campo de cabecera de Ethernet y un campo de cabecera IPv4). En un procedimiento de procesamiento de edición de paquetes, es necesario añadir una etiqueta de red de área local virtual (VLAN, Virtual Local Area Network) y a continuación entregar un paquete de Ethernet+VLAN+IPv4 de 68 octetos. En el procedimiento de procesamiento de edición de paquetes, un programa en una parte de edición de paquetes tiene que mover en primer lugar datos del paquete recibido, desde una dirección 12-64 hasta una dirección 16-68; sin embargo, en este proceso, se requieren por lo menos (64-16)/4=12 instrucciones de procesador, y en un proceso de escritura de datos de 4 octetos de la etiqueta VLAN en una dirección 12, se requiere una instrucción de procesador.
Se encuentra, de acuerdo con el estudio y la práctica de la técnica anterior, que la complejidad de las instrucciones de edición de paquetes en la técnica anterior es generalmente alta, el procesamiento de edición de paquetes, tal como operaciones de inserción y eliminación, es muy lento debido a que hay que mover una gran cantidad de datos, y a medida que aumentan las longitudes de los paquetes, aumenta asimismo el tiempo necesario para las operaciones de inserción y eliminación.
La patente CN 103780481 A da a conocer un procedimiento para modificar y transferir un mensaje en una red de comunicación de datos. El procedimiento incluye: extraer información de descripción de una cabecera de mensaje como información de descriptor del mensaje, y almacenar fragmentos del mensaje excepto la información de descriptor del mensaje; buscar en una tabla de descripción de modificación de mensaje almacenada previamente parámetros de modificación utilizados para una modificación de mensaje de acuerdo con información del descriptor de mensaje; determinar una acción de modificación del mensaje necesaria, de acuerdo con los parámetros de modificación obtenidos, y modificar los fragmentos de mensaje con un requisito de modificación en grupos de acuerdo con tipos de acciones; y distribuir y volver a ensamblar los fragmentos de mensaje de acuerdo con números de puerto, volver a empalmar los fragmentos de mensaje en un mensaje completo, y enviar el mensaje a una interfaz externa en secuencia temporal.
La patente US6502236 B1 da a conocer que un sistema genera un programa para convertir una secuencia de datos de entrada que tiene un formato descrito por descriptores del formato de entrada, en una secuencia de datos de salida que tiene un formato descrito por los descriptores del formato de salida. Un compilador rápido 30 genera un programa de lenguaje ensamblador 36, que es ejecutado por un motor de modificación 38. El motor de modificación 38 está diseñado para realizar modificaciones en tiempo real sobre un flujo de datos de entrada 40 con el fin de generar un flujo de datos de salida 42.
La patente US8705533 B1 da a conocer que un dispositivo de red almacena una serie de plantillas en una tabla de plantillas, donde la tabla de plantillas permite al dispositivo de red crear una o varias cabeceras de protocolo para paquetes transmitidos por el dispositivo de red.
Compendio
La invención se expone en el conjunto adjunto de reivindicaciones.
Las realizaciones de la presente invención dan a conocer un procedimiento de procesamiento de edición de paquetes y un aparato de procesamiento de edición de paquetes, para reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y mejorar la eficiencia del procesamiento de edición de paquetes.
De acuerdo con un primer aspecto, una realización de la presente invención da a conocer un procedimiento de procesamiento de edición de paquetes, donde el procedimiento incluye generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que se corresponden, uno a uno, a los N campos de cabecera de protocolo, donde la plantilla de paquete de entrada comprende además un descriptor de plantilla, donde el descriptor de plantilla comprende un campo de descripción de combinación de protocolos, donde el campo de descripción de combinación de protocolos se utiliza para describir una primera secuencia de indicaciones de protocolos, correspondiendo las indicaciones de protocolos a descriptores de protocolo comprendidos en la plantilla de paquete de entrada;
generar una relación de mapeo de campos de protocolo preestablecida, donde la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo;
realizar un procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida, donde la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar un procesamiento de edición sobre la plantilla de paquete de entrada;
realizar el procesamiento de edición sobre un paquete de entrada para obtener un paquete de salida, donde la realización del procesamiento de edición sobre el paquete de entrada comprende:
convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos; donde N no es igual a M; donde el procedimiento de procesamiento de edición de paquetes es tal que, cuando se considera la realización del procesamiento de edición sobre la plantilla de paquete de entrada y se realiza el procesamiento de edición sobre la plantilla de paquete de entrada, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada.
Haciendo referencia al primer aspecto, en un primer posible modo de implementación del primer aspecto, la generación de una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y de una relación de mapeo de campos de protocolo preestablecida, incluye: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
Haciendo referencia al primer aspecto o al primer posible modo de implementación del primer aspecto, en un segundo posible modo de implementación del primer aspecto, un primer campo de protocolo incluido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con, por lo menos, un campo de protocolo incluido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
Haciendo referencia al primer aspecto, al primer posible modo de implementación del primer aspecto, o al segundo posible modo de implementación del primer aspecto, en un tercer posible modo de implementación del primer aspecto, un segundo campo de protocolo incluido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo incluido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
Haciendo referencia al primer aspecto, al primer posible modo de implementación del primer aspecto, al segundo posible modo de implementación del primer aspecto o al tercer posible modo de implementación del primer aspecto, en un cuarto posible modo de implementación del primer aspecto, la realización del procesamiento de edición sobre la plantilla de paquete de entrada incluye: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Haciendo referencia al primer aspecto, al primer posible modo de implementación del primer aspecto, al segundo posible modo de implementación del primer aspecto o al tercer posible modo de implementación del primer aspecto, en un quinto posible modo de implementación del primer aspecto, la realización del procesamiento de edición sobre la plantilla de paquete de entrada incluye: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Haciendo referencia al primer aspecto, al primer posible modo de implementación del primer aspecto, al segundo posible modo de implementación del primer aspecto o al tercer posible modo de implementación del primer aspecto, en un sexto posible modo de implementación del primer aspecto, la realización del procesamiento de edición sobre la plantilla de paquete de entrada incluye: sustituir por lo menos un descriptor de protocolo en la plantilla de paquete de entrada.
Haciendo referencia al primer aspecto, al primer posible modo de implementación del primer aspecto, al segundo posible modo de implementación del primer aspecto, al tercer posible modo de implementación del primer aspecto, al cuarto posible modo de implementación del primer aspecto, al quinto posible modo de implementación del primer aspecto o al sexto posible modo de implementación del primer aspecto, en un séptimo posible modo de implementación del primer aspecto, la sustitución de los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida incluye: eliminar los N campos de cabecera de protocolo del paquete de entrada, e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
De acuerdo con un segundo aspecto, la presente invención da a conocer un aparato de procesamiento de edición de paquetes, que incluye:
un analizador sintáctico de paquetes, configurado para generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo, donde la plantilla de paquete de entrada comprende además un descriptor de plantilla, donde el descriptor de plantilla comprende un campo de descripción de combinación de protocolos, donde el campo de descripción de combinación de protocolos se utiliza para describir una primera secuencia de indicaciones de protocolos, correspondiendo las indicaciones de protocolos a descriptores de protocolo comprendidos en la plantilla de paquete de entrada; y configurado para generar una relación de mapeo de campos de protocolo preestablecida, donde la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo;
un procesador de edición de plantilla, configurado para realizar el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida, donde la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición, para realizar el procesamiento de edición sobre la plantilla de paquete de entrada; un ensamblador de paquetes configurado para realizar el procesamiento de edición sobre un paquete de entrada para obtener un paquete de salida cuando la realización del procesamiento de edición sobre el paquete de entrada comprende:
convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos; donde N no es igual a M; donde el aparato de procesamiento de edición de paquetes es tal que, cuando se considera la realización del procesamiento de edición sobre la plantilla de paquete de entrada y se realiza el procesamiento de edición sobre la plantilla de paquete de entrada, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada.
Haciendo referencia al segundo aspecto, en un primer posible modo de implementación del segundo aspecto, el analizador sintáctico de paquetes puede estar configurado específicamente para: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada, invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
Haciendo referencia al segundo aspecto o al primer posible modo de implementación del segundo aspecto, en un segundo posible modo de implementación del segundo aspecto, un primer campo de protocolo incluido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con, por lo menos, un campo de protocolo incluido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
Haciendo referencia al segundo aspecto, al primer posible modo de implementación del segundo aspecto o al segundo posible modo de implementación del segundo aspecto, en un tercer posible modo de implementación del segundo aspecto, un segundo campo de protocolo incluido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo incluido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
Haciendo referencia al segundo aspecto, al primer posible modo de implementación del segundo aspecto, al segundo posible modo de implementación del segundo aspecto o al tercer posible modo de implementación del segundo aspecto, en un cuarto posible modo de implementación del segundo aspecto, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla está configurado específicamente para: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Haciendo referencia al segundo aspecto, al primer posible modo de implementación del segundo aspecto, al segundo posible modo de implementación del segundo aspecto, al tercer posible modo de implementación del segundo aspecto o al cuarto posible modo de implementación del segundo aspecto, en un quinto posible modo de implementación del segundo aspecto, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla está configurado específicamente para: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Haciendo referencia al segundo aspecto, al primer posible modo de implementación del segundo aspecto, al segundo posible modo de implementación del segundo aspecto, al tercer posible modo de implementación del segundo aspecto, al cuarto posible modo de implementación del segundo aspecto o al quinto posible modo de implementación del segundo aspecto, en un sexto posible modo de implementación del segundo aspecto, en el aspecto de sustituir los N campos de cabecera de protocolo en el paquete de entrada con M campos de cabecera de protocolo para obtener el paquete de salida, el ensamblador de paquetes está configurado específicamente para: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
Se puede aprender que, en realizaciones de la presente invención, durante el procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
Breve descripción de los dibujos
Para describir más claramente las soluciones técnicas en las realizaciones de la presente invención, a continuación se introducen brevemente los dibujos adjuntos necesarios para describir las realizaciones. Evidentemente, los dibujos adjuntos en la siguiente descripción muestran tan sólo algunas realizaciones de la presente invención.
la figura 1 es un diagrama de flujo esquemático de un procedimiento de procesamiento de edición de paquetes, de acuerdo con una realización de la presente invención;
la figura 2-a es un diagrama esquemático de una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-b es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-c es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-d es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-e es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-f es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-g es un diagrama esquemático de otra relación de mapeo entre campos de protocolo en un campo de cabecera de protocolo y campos de protocolo en un descriptor de protocolo, de acuerdo con una realización de la presente invención;
la figura 2-h es un diagrama estructural esquemático de una plantilla de paquete de entrada, de acuerdo con una realización de la presente invención;
la figura 3 es un diagrama de flujo esquemático de otro procedimiento de procesamiento de edición de paquetes, de acuerdo con una realización de la presente invención;
la figura 4-a es un diagrama estructural esquemático de un campo de cabecera IPv4 de acuerdo con una realización de la presente invención;
la figura 4-b es un diagrama estructural esquemático de un descriptor IPv4, de acuerdo con una realización de la presente invención;
la figura 4-c es un diagrama esquemático de adición de un descriptor de protocolo a una plantilla de paquete de entrada, de acuerdo con una realización de la presente invención;
la figura 4-d es un diagrama esquemático de eliminación de un descriptor de protocolo de una plantilla de paquete de entrada, de acuerdo con una realización de la presente invención;
la figura 4-e es un diagrama esquemático de sustitución de un descriptor de protocolo en una plantilla de paquete de entrada, de acuerdo con una realización de la presente invención;
la figura 5 es un diagrama esquemático de un aparato de procesamiento de edición de paquetes, de acuerdo con una realización de la presente invención;
la figura 6 es un diagrama esquemático de un dispositivo de transferencia de paquetes, de acuerdo con una realización de la presente invención; y
la figura 7 es un diagrama esquemático de otro dispositivo de transferencia de paquetes, de acuerdo con una realización de la presente invención.
Descripción de realizaciones
Las realizaciones de la presente invención dan a conocer un procedimiento de procesamiento de edición de paquetes y un dispositivo relacionado, para reducir la complejidad de las instrucciones para transferencia y procesamiento de paquetes, y para mejorar la eficiencia de transferencia y procesamiento de paquetes.
A continuación se utilizan por separado realizaciones específicas para una descripción detallada.
Para hacer más claros y comprensibles los objetivos de la invención, las características y ventajas de la presente invención, a continuación se describen claramente las soluciones técnicas en las realizaciones de la presente invención, haciendo referencia a los dibujos adjuntos en las realizaciones de la presente invención. Evidentemente, las realizaciones descritas a continuación son tan sólo una parte y no la totalidad de las realizaciones de la presente invención.
En la descripción, las reivindicaciones y los dibujos adjuntos de la presente invención, los términos “primero”, “segundo”, “tercero”, “cuarto”, etc. (si los hay) están destinados a distinguir entre diferentes objetos, pero no indican necesariamente una secuencia específica. Además, los términos “incluye”, “tiene” y sus variaciones están destinados a abarcar una inclusión no exclusiva. Por ejemplo, un proceso, un procedimiento, un sistema, un producto o un dispositivo que incluya una serie de etapas o unidades no está limitado a las etapas o unidades enumeradas, sino que incluye además opcionalmente una etapa o unidad no enumerada, o incluye además opcionalmente otra etapa o unidad inherente del proceso, el procedimiento, el producto o el dispositivo.
Haciendo referencia a la figura 1, la figura 1 es un diagrama de flujo esquemático de un procedimiento de procesamiento de edición de paquetes, de acuerdo con una realización de la presente invención. El procedimiento de procesamiento de edición de paquetes dado a conocer en esta realización de la presente invención incluye la etapa siguiente:
101. Generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y una relación de mapeo de campos de protocolo preestablecida, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo, y la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo.
Se entiende que un campo de cabecera de protocolo tiene una correspondencia uno a uno con un descriptor de protocolo; por lo tanto, en base a los anteriores N campos de cabecera de protocolo a editar del paquete de entrada, se pueden obtener los N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo.
Los anteriores N campos de cabecera de protocolo pueden incluir, por ejemplo: una etiqueta VLAN, un campo de cabecera de Ethernet y/o un campo de cabecera IPv4, y similares, y correspondientemente, los anteriores N descriptores de protocolo pueden incluir: un descriptor VLAN, un descriptor Ethernet y/o un descriptor IPv4, y similares. Un descriptor de protocolo correspondiente a un campo de cabecera de Ethernet se puede denominar un descriptor Ethernet (es decir, el campo de cabecera de Ethernet tiene una correspondencia con el descriptor Ethernet). Un descriptor de protocolo correspondiente a una etiqueta VLAN se puede denominar asimismo un descriptor VLAN (es decir, la etiqueta VLAN tiene una correspondencia con el descriptor VLAN). Un descriptor de protocolo correspondiente a un campo de cabecera IPv4 se puede denominar un descriptor IPv4 (es decir, el campo de cabecera IPv4 tiene una correspondencia con el descriptor IPv4).
La anterior relación de mapeo de campos de protocolo preestablecida es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; por lo tanto, la relación de mapeo de campos de protocolo puede incluir, por ejemplo, una relación de mapeo entre campos de protocolo incluidos en la etiqueta VLAN y campos de protocolo incluidos en el descriptor VLAN, una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera IPv4 y campos de protocolo incluidos en el descriptor IPv4, o una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera de Ethernet y campos de protocolo incluidos en el descriptor Ethernet. Es decir, la relación de mapeo de campos de protocolo preestablecida indica cómo mapear campos de protocolo incluidos en un campo de cabecera de protocolo a campos de protocolo en un descriptor de protocolo que tiene una correspondencia con el campo de cabecera de protocolo; análogamente, la relación de mapeo de campos de protocolo preestablecida indica cómo mapear campos de protocolo incluidos en un descriptor de protocolo a campos de protocolo en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo. Por ejemplo, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera IPv4 a campos de protocolo en el descriptor IPv4, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor IPv4 a campos de protocolo en el campo de cabecera IPv4; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera de Ethernet a campos de protocolo en el descriptor Ethernet, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor Ethernet a campos de protocolo en el campo de cabecera de Ethernet; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en la etiqueta VLAN a campos de protocolo en el descriptor VLAN, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor VLAN a campos de protocolo en la etiqueta VLAN, etc.
Por lo tanto, un descriptor de protocolo que está en la plantilla de paquete de entrada y corresponde a un campo de cabecera de protocolo particular se genera en base al campo de cabecera de protocolo particular y a la relación de mapeo de campos de protocolo preestablecida; análogamente, un campo de cabecera de protocolo correspondiente a un descriptor de protocolo particular en la plantilla de paquete de entrada puede obtenerse asimismo, por medio de conversión, en base al descriptor de protocolo particular en la plantilla de paquete de entrada y a la relación de mapeo de campos de protocolo preestablecida. Por ejemplo, el descriptor VLAN en la plantilla de paquete de entrada se puede generar en base a la etiqueta VLAN y la relación de mapeo de campos de protocolo preestablecida; análogamente, la etiqueta VLAN se puede obtener, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor VLAN en la plantilla de paquete de entrada. El descriptor IPv4, en la plantilla de paquete de entrada se puede generar en base al campo de cabecera IPv4 y a la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera IPv4 se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor IPv4 en la plantilla de paquete de entrada. El descriptor Ethernet en la plantilla de paquete de entrada se puede generar en base al campo de cabecera de Ethernet y la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera de Ethernet se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor Ethernet en la plantilla de paquete de entrada. A partir de este modo se pueden deducir otros modos de conversión entre un campo de cabecera de protocolo y un descriptor de protocolo que tiene una correspondencia.
102. Realizar el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida.
103. Convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida en M campos de cabecera de protocolo de un paquete de salida.
104. Reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos.
El anterior N es igual o menor que el anterior M.
Por ejemplo, si se crea un descriptor de protocolo en la anterior plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M es mayor que el anterior N. Si se elimina un descriptor de protocolo de la plantilla de paquete de entrada en el proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M es menor que el anterior N; si se eliminan descriptores de protocolo de la plantilla de paquete de entrada y se crean descriptores de protocolo en la plantilla de paquete de entrada en el proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M puede ser mayor o menor que el anterior N
Se puede aprender que, en esta realización, durante un procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
En algunas realizaciones de la presente invención, la anterior sustitución de los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida puede incluir: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
En algunas realizaciones de la presente invención, un primer campo de cabecera de protocolo o un segundo campo de cabecera de protocolo pueden ser cualquier campo de cabecera de protocolo o un campo de cabecera de protocolo específico en los anteriores N campos de cabecera de protocolo. El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo puede ser, por ejemplo, el campo de cabecera de Ethernet, el campo de cabecera IPv4, la etiqueta VLAN, o similares.
Es decir, la cantidad de campos de protocolo incluidos en un campo de cabecera de protocolo no es igual a la cantidad de campos de protocolo incluidos en un descriptor de protocolo, donde el campo de cabecera de protocolo y el descriptor de protocolo tienen una correspondencia entre sí, por ejemplo, la cantidad de campos de protocolo incluidos en el campo de cabecera IPv4 no es igual a la cantidad de campos de protocolo incluidos en el descriptor IPv4, la cantidad de campos de protocolo incluidos en el campo de cabecera de Ethernet no es igual a la cantidad de campos de protocolo incluidos en el descriptor Ethernet, y la cantidad de campos de protocolo incluidos en la etiqueta VLAN no es igual a la cantidad de campos de protocolo incluidos en el descriptor VLAN.
Por ejemplo, si algún campo de protocolo incluido en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es menor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si algún campo de protocolo incluido en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera de Ethernet) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor Ethernet), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es mayor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si cada campo de protocolo en algunos campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4) y cada campo de protocolo en algunos campos de protocolo incluidos en el primer campo de cabecera de protocolo tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo, la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo puede ser mayor, o menor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo.
Para ayudar a comprender mejor la relación de mapeo de campos, a continuación se describen, utilizando ejemplos y haciendo referencia a las figuras 2-a a 2-g, varias relaciones de mapeo de campos que pueden existir entre campos de protocolo incluidos en un descriptor de protocolo y un campo de cabecera de protocolo que tienen una correspondencia entre sí. Un descriptor de protocolo A1 y un campo de cabecera de protocolo B1 en la figura 2-a a la figura 2-g tienen una correspondencia entre sí.
Haciendo referencia a la figura 2-a hasta la figura 2-g, la figura 2-a muestra a modo de ejemplo que los campos de protocolo en el descriptor de protocolo A1 tienen una relación de mapeo uno a uno con campos en el campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d21 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-b, la figura 2-b muestra a modo de ejemplo que entre un campo de protocolo en un descriptor de protocolo A1 puede haber una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); análogamente, un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base a los campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-c, la figura 2-c muestra a modo de ejemplo que un campo de protocolo en el campo de cabecera de protocolo B1 puede tener una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1. Específicamente, un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11 y d12 en el descriptor de protocolo A1 (es decir, los campos de protocolo d11 y d12 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21); análogamente, un campo de protocolo d22 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 (es decir, los campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d22); etc.
Como otro ejemplo, tal como se muestra en la figura 2-d, la figura 2-d muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1. Específicamente, la figura 2-d muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base a los campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12, d13 y d14 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12, d13 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-e, la figura 2-e muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-e muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12 y d13 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-f, la figura 2-f muestra a modo de ejemplo que un campo de protocolo en un descriptor de protocolo A1 tiene una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-f muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campos de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-g, la figura 2-g muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-g muestra a modo de ejemplo que un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Se puede comprender que las diversas posibles relaciones de mapeo de campos que se describen en la figura 2-a a la figura 2-g y entre campos de protocolo incluidos en un descriptor de protocolo y campos de protocolo incluidos en un campo de cabecera de protocolo se utilizan solamente como ejemplos. Ciertamente, los campos de protocolo incluidos en un descriptor de protocolo y los campos de protocolo incluidos en un campo de cabecera de protocolo pueden tener asimismo otras relaciones de mapeo de campos, que no se enumeran exhaustivamente en el presente documento.
En algunas realizaciones de la presente invención, la anterior generación de una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y de una relación de mapeo de campos de protocolo preestablecida, puede incluir: determinar, de acuerdo con la información de recepción de paquetes (por ejemplo, un número de puerto de recepción y/o un número de canal de recepción) del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada. Por ejemplo, diferentes campos de cabecera de protocolo pueden ser correspondientes a diferentes tablas de análisis sintáctico de paquetes, o una tabla de análisis sintáctico de paquetes puede ser correspondiente a una serie de campos de cabecera de protocolo.
En algunas realizaciones de la presente invención, la anterior plantilla de paquete de entrada incluye un descriptor de plantilla, donde el descriptor de plantilla incluye un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada. Análogamente, la plantilla de paquete de salida incluye un descriptor de plantilla, donde el descriptor de plantilla incluye un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de salida. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de descripción de combinación de protocolos se puede actualizar de forma adaptativa, de manera que el campo de descripción de combinación de protocolos describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el descriptor de plantilla en la plantilla de paquete de entrada puede incluir además un campo de longitud de los campos de cabecera que se utiliza para registrar una longitud total de campos de cabecera de protocolo correspondientes a descriptores de protocolo incluidos en la anterior plantilla de paquete de entrada. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de longitud de los campos de cabecera en el descriptor de plantilla se puede actualizar de manera adaptativa, de manera que el campo de longitud de los campos de cabecera puede describir una longitud total de campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Por ejemplo, se supone que la plantilla de paquete de entrada incluye dos descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los dos descriptores de protocolo es de 50 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 50 octetos); y si se crea un descriptor VLAN en la plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 54 octetos. Como otro ejemplo, se supone que la plantilla de paquete de entrada incluye tres descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los tres descriptores de protocolo es de 68 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 68 octetos), y si se elimina un descriptor VLAN de la plantilla de paquete de entrada en un proceso de realización de procesamiento de edición en la anterior plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 64 octetos. Se pueden deducir otros casos a partir de esto.
Opcionalmente, el anterior descriptor de plantilla puede incluir además un campo de indicación de transferencia que se utiliza para registrar un modo de transferencia del paquete de entrada. Opcionalmente, el descriptor de plantilla puede incluir además un campo de información complementaria, que se utiliza para registrar información adicional (número de puerto de recepción y/o número de canal de recepción de un paquete) correspondiente al paquete de entrada. Ciertamente, el anterior descriptor de plantilla puede incluir asimismo otro campo.
Haciendo referencia a la figura 2-h, la figura 2-h muestra a modo de ejemplo una estructura de datos de una plantilla de paquete de entrada, donde la plantilla de paquete de entrada mostrada a modo de ejemplo en la figura 2-h incluye el descriptor de plantilla y por lo menos un descriptor de protocolo. Una plantilla de paquete de salida puede tener una estructura similar a la de la plantilla de paquete de entrada. Ciertamente, una estructura específica de las plantillas de paquete de entrada y de salida no se limita al ejemplo mostrado en la figura 2-h, y se puede ajustar según un escenario específico.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la anterior secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada. Específicamente, para cada secuencia de tipos de protocolo, puede estar preestablecida por lo menos una secuencia de instrucciones del procesamiento de edición; por lo tanto, después de que se genere la plantilla de paquete de entrada, una secuencia de instrucciones del procesamiento de edición correspondiente a una secuencia de tipos de protocolo se puede determinar de acuerdo con la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada, y la secuencia determinada de instrucciones del procesamiento de edición se puede utilizar para realizar el procesamiento de edición sobre la anterior plantilla de paquete de entrada. Se puede entender que es si una correspondiente secuencia de instrucciones del procesamiento de edición está preestablecida para una secuencia de tipos de protocolo diferente, puede no ser necesario generar temporalmente una secuencia de instrucciones del procesamiento de edición cuando se realiza el procesamiento de edición sobre la anterior plantilla de paquete de entrada, lo que ayuda a reducir la complejidad de las instrucciones y simplifica la complejidad del cálculo para procesamiento de edición.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y además actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y además actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: sustituir por lo menos un descriptor de protocolo en la plantilla de paquete de entrada. Dado que se sustituye el por lo menos un descriptor de protocolo, y una secuencia de tipos de protocolo correspondiente a la plantilla de paquete de entrada puede no cambiar, puede no ser necesario actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada.
Se puede comprender que la sustitución de un descriptor de protocolo en la plantilla de paquete de entrada se puede desglosar en que: se elimina primero un descriptor de protocolo antiguo en la plantilla de paquete de entrada y a continuación se crea un descriptor de protocolo nuevo en la plantilla de paquete de entrada.
Se puede comprender que la realización del procesamiento de edición sobre la plantilla de paquete de entrada puede no categóricamente: limitarse a eliminar algunos descriptores de protocolo de la plantilla de paquete de entrada o limitarse a crear algunos nuevos descriptores de protocolo en la plantilla de paquete de entrada. Puede ser que: sea necesario eliminar algunos descriptores de protocolo de la plantilla de paquete de entrada, sea necesario asimismo crear algunos descriptores de protocolo en la plantilla de paquete de entrada, e incluso sea necesario además sustituir algunos descriptores de protocolo en la plantilla de paquete de entrada.
La instrucción (por ejemplo, instrucción de análisis sintáctico o instrucción de procesamiento de edición) mencionada en cada realización de la presente invención puede ser, por ejemplo, una instrucción de microcódigo o una instrucción de otro tipo; la secuencia de instrucciones (por ejemplo, instrucción de análisis sintáctico o instrucción de procesamiento de edición) mencionada en cada realización de la presente invención puede ser, por ejemplo, una instrucción de microcódigo o una instrucción de otro tipo.
Se puede comprender que las soluciones anteriores en esta realización pueden ser realizadas por un dispositivo de transferencia de paquetes, donde el dispositivo de transferencia de paquetes puede ser, por ejemplo, un rúter, un conmutador, un cortafuegos u otro dispositivo.
Para ayudar a comprender e implementar mejor las anteriores soluciones en esta realización de la presente invención, algunos escenarios de aplicación específicos se utilizan como ejemplos en la siguiente descripción.
Haciendo referencia a la figura 3, la figura 3 es un diagrama de flujo esquemático de un procedimiento de procesamiento de edición de paquetes, de acuerdo con una realización de la presente invención. El procedimiento de procesamiento de edición de paquetes dado a conocer en la otra realización de la presente invención puede incluir el siguiente contenido.
301. Un dispositivo de transferencia de paquetes recibe un paquete de entrada.
302. El dispositivo de transferencia de paquetes utiliza información de recepción de paquetes (por ejemplo, número de puerto de recepción y número de canal de recepción) del paquete de entrada como índice de una tabla de análisis sintáctico de paquetes actual, y busca una tabla de análisis sintáctico de paquetes correspondiente a un campo de cabecera de protocolo de la capa actual a editar, del paquete de entrada.
Por ejemplo, un número de puerto de recepción tiene una correspondencia con una tabla de análisis sintáctico de paquetes; por lo tanto, la tabla de análisis sintáctico de paquetes correspondiente al actual campo de cabecera de protocolo a editar del paquete de entrada se puede encontrar de acuerdo con el número de puerto de recepción del paquete de entrada. Alternativamente, el número de canal de recepción tiene una correspondencia con una tabla de análisis sintáctico de paquetes; por lo tanto, la tabla de análisis sintáctico de paquetes correspondiente al actual campo de cabecera de protocolo a editar del paquete de entrada se puede encontrar de acuerdo con el número de canal de recepción del paquete de entrada. Alternativamente, un número de puerto de recepción y un número de canal de recepción tienen una correspondencia con una tabla de análisis sintáctico de paquetes; por lo tanto, la tabla de análisis sintáctico de paquetes correspondiente al actual campo de cabecera de protocolo a editar del paquete de entrada se puede encontrar de acuerdo con el número de puerto de recepción y el número de canal de recepción del paquete de entrada.
303. El dispositivo de transferencia de paquetes genera una plantilla de paquete de entrada.
La plantilla de paquete de entrada generada en este momento es una plantilla de paquete de entrada inicial, donde la plantilla de paquete de entrada inicial puede no incluir ningún descriptor de protocolo, o incluye varios descriptores de protocolo vacíos, un descriptor de plantilla en la plantilla de paquete de entrada inicial puede incluir un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada. Se puede comprender que, dado que la plantilla de paquete de entrada inicial puede no incluir ningún descriptor de protocolo, o incluye varios descriptores de protocolo vacíos, el campo de descripción de combinación de protocolos incluido en el descriptor de plantilla en la plantilla de paquete de entrada inicial está vacío o registra un valor inválido. Cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de descripción de combinación de protocolos se puede actualizar de manera adaptativa, de modo que el campo de descripción de combinación de protocolos puede describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el descriptor de plantilla en la plantilla de paquete de entrada puede incluir además un campo de longitud de los campos de cabecera que se utiliza para registrar una longitud total de campos de cabecera de protocolo correspondientes a descriptores de protocolo incluidos en la anterior plantilla de paquete de entrada. Se puede comprender que, dado que la plantilla de paquete de entrada inicial no incluye ningún descriptor de protocolo, o incluye varios descriptores de protocolo vacíos, el campo de longitud de los campos de cabecera incluido en el descriptor de plantilla en la plantilla de paquete de entrada inicial está vacío o registra un valor inválido. Cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de longitud de los campos de cabecera en el descriptor de plantilla se puede actualizar de manera adaptativa, de modo que el campo de longitud de los campos de cabecera puede describir una longitud total de campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el anterior descriptor de plantilla puede incluir además un campo de indicación de transferencia que se utiliza para registrar un modo de transferencia del paquete de entrada. Opcionalmente, el descriptor de plantilla puede incluir además un campo de información complementaria, que se utiliza para registrar información adicional (número de puerto de recepción y/o número de canal de recepción de un paquete) correspondiente al paquete de entrada. Ciertamente, el descriptor de plantilla anterior puede incluir asimismo otro campo.
304. El dispositivo de transferencia de paquetes lee el campo de cabecera de protocolo de la capa actual a editar del paquete de entrada de acuerdo con una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes correspondiente al campo de cabecera de protocolo de la capa actual a editar del paquete de entrada, y utiliza el campo de cabecera de protocolo de la capa actual leído y una relación de mapeo de campos de protocolo para generar un descriptor de protocolo que está en la plantilla de paquete de entrada y es correspondiente al campo de cabecera de protocolo de la capa actual.
Dado que cambia un descriptor de protocolo incluido en la plantilla de paquete de entrada, el dispositivo de transferencia de paquetes puede actualizar además el campo de longitud de los campos de cabecera en el descriptor de plantilla, de manera que el campo de longitud de los campos de cabecera puede describir la longitud total de los campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada, y el dispositivo de transferencia de paquetes puede actualizar además el campo de descripción de combinación de protocolos, de manera que el campo de descripción de combinación de protocolos puede describir la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
La anterior relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo.
305. El dispositivo de transferencia de paquetes utiliza una palabra clave de un campo de cabecera de protocolo de la capa siguiente que está incluido en el campo de cabecera de protocolo de la capa actual a editar del paquete de entrada como índice, y busca si existe una tabla de análisis sintáctico de paquetes que se corresponde con la palabra clave del campo de cabecera de protocolo de la siguiente capa, donde la tabla de análisis sintáctico de paquetes que se corresponde con la clave del campo de cabecera de protocolo de la siguiente capa es una tabla de análisis sintáctico de paquetes correspondiente al campo de cabecera de protocolo de la siguiente capa a editar del paquete de entrada.
En caso afirmativo, se ejecuta la etapa 306.
De lo contrario, se ejecuta la etapa 307. Si se descubre que no existe la tabla de análisis sintáctico de paquetes que se corresponde con la palabra clave del campo de cabecera de protocolo de la siguiente capa, esto indica que N campos de cabecera de protocolo a editar del paquete de entrada se han determinado por completo.
306. El dispositivo de transferencia de paquetes utiliza el campo de cabecera de protocolo de la siguiente capa a editar del paquete de entrada como el campo de cabecera de protocolo de la capa actual a editar del paquete de entrada, y salta a la etapa 304.
307. El dispositivo de transferencia de paquetes edita y procesa la plantilla de paquete de entrada actual para obtener una plantilla de paquete de salida.
La plantilla de paquete de entrada actual incluye un descriptor de plantilla y N descriptores de protocolo (los N descriptores de protocolo corresponden, uno a uno, con los N campos de cabecera de protocolo a editar en el paquete de entrada).
Se puede entender que un campo de cabecera de protocolo tiene una correspondencia uno a uno con un descriptor de protocolo; por lo tanto, en base a los anteriores N campos de cabecera de protocolo a editar del paquete de entrada, se pueden obtener los N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo.
Los anteriores N campos de cabecera de protocolo pueden incluir, por ejemplo: una etiqueta VLAN, un campo de cabecera de Ethernet y/o un campo de cabecera IPv4, y similares, y correspondientemente, los anteriores N descriptores de protocolo pueden incluir: un descriptor VLAN, un descriptor Ethernet y/o un descriptor IPv4, y similares. Un descriptor de protocolo correspondiente a un campo de cabecera de Ethernet se puede denominar un descriptor Ethernet (es decir, el campo de cabecera de Ethernet tiene una correspondencia con el descriptor Ethernet). Un descriptor de protocolo correspondiente a una etiqueta VLAN se puede denominar asimismo un descriptor VLAN (es decir, la etiqueta VLAN tiene una correspondencia con el descriptor VLAN). Un descriptor de protocolo correspondiente a un campo de cabecera IPv4 se puede denominar un descriptor IPv4 (es decir, el campo de cabecera IPv4 tiene una correspondencia con el descriptor IPv4).
La anterior relación de mapeo de campos de protocolo preestablecida es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; por lo tanto, la relación de mapeo de campos de protocolo puede incluir, por ejemplo, una relación de mapeo entre campos de protocolo incluidos en la etiqueta VLAN y campos de protocolo incluidos en el descriptor VLAN, una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera IPv4 y campos de protocolo incluidos en el descriptor IPv4, o una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera de Ethernet y campos de protocolo incluidos en el descriptor Ethernet. Es decir, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en un campo de cabecera de protocolo a campos de protocolo en un descriptor de protocolo que tiene una correspondencia con el campo de cabecera de protocolo; análogamente, la relación de mapeo de campos de protocolo preestablecida puede indicar asimismo cómo mapear campos de protocolo incluidos en un descriptor de protocolo a campos de protocolo en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo. Por ejemplo, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera IPv4 a campos de protocolo en el descriptor IPv4, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor IPv4 a campos de protocolo en el campo de cabecera IPv4; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera de Ethernet a campos de protocolo en el descriptor Ethernet, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor Ethernet a campos de protocolo en el campo de cabecera de Ethernet; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en la etiqueta VLAN a campos de protocolo en el descriptor VLAN, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor VLAN a campos de protocolo en la etiqueta VLAN, etc.
Por lo tanto, un descriptor de protocolo que está en la plantilla de paquete de entrada y corresponde a un campo de cabecera de protocolo particular puede ser generado en base al campo de cabecera de protocolo particular y a la relación de mapeo de campos de protocolo preestablecida; análogamente, un campo de cabecera de protocolo correspondiente a un descriptor de protocolo particular en la plantilla de paquete de entrada puede obtenerse asimismo, por medio de conversión, en base al descriptor de protocolo particular en la plantilla de paquete de entrada y a la relación de mapeo de campos de protocolo preestablecida. Por ejemplo, el descriptor VLAN en la plantilla de paquete de entrada se puede generar en base a la etiqueta VLAN y la relación de mapeo de campos de protocolo preestablecida; análogamente, la etiqueta VLAN se puede obtener, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor VLAN en la plantilla de paquete de entrada. El descriptor IPv4, en la plantilla de paquete de entrada se puede generar en base al campo de cabecera IPv4 y a la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera IPv4 se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor IPv4 en la plantilla de paquete de entrada. El descriptor Ethernet en la plantilla de paquete de entrada se puede generar en base al campo de cabecera de Ethernet y la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera de Ethernet se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor Ethernet en la plantilla de paquete de entrada. A partir de este modo se pueden deducir otros modos de conversión entre un campo de cabecera de protocolo y un descriptor de protocolo que tiene una correspondencia.
Un descriptor de protocolo se puede registrar en registros con una misma anchura o con anchuras diferentes, tales como de 1 bit, 8 bits, 16 bits, 32 bits, 64 bits y 128 bits. Después de que se determine una plantilla de paquete de entrada, se pueden fijar posiciones de almacenamiento de campos en el descriptor de protocolo. Si las posiciones de almacenamiento de los campos en el descriptor de protocolo son fijas de forma relativa, esto ayuda a simplificar más la complejidad de una instrucción de procesamiento de edición dado que, en este caso, la instrucción de procesamiento de edición se puede establecer directamente en función de la dirección, independientemente del contenido específico en la dirección.
No es necesario que los campos de protocolo incluidos en el descriptor de protocolo se correspondan, uno a uno, con campos de protocolo en el campo de cabecera de protocolo, y se pueden configurar de manera flexible de acuerdo con un servicio de transferencia. En diferentes aplicaciones de transferencia, un mismo campo de cabecera de protocolo puede corresponder a descriptores de protocolo en diferentes formatos de datos. Al mismo tiempo, para un descriptor de protocolo, no es necesario que todos los datos del descriptor de protocolo se distribuyan en espacio de almacenamiento consecutivo.
Por ejemplo, suponiendo que un campo de cabecera IPv4 de un paquete de entrada se muestra en la figura 4-a, un descriptor IPv4 correspondiente al campo de cabecera IPv4 del paquete de entrada se puede mostrar en la figura 4-b. Se supone que los datos de 4 octetos iniciales del campo de cabecera IPv4 no se utilizan en un proceso de transferencia; por lo tanto, se puede asignar un registro con una longitud de 4 octetos, y los datos de los 4 octetos iniciales del campo de cabecera IPv4 se almacenan como una palabra completa en un registro número 14. Una estructura de datos del descriptor IPv4 se puede obtener, por medio de compilación, utilizando un analizador sintáctico de paquetes de un mecanismo de transferencia inconsciente de protocolo, o puede ser especificada por un usuario.
Las figura 4-a y figura 4-b muestran colectivamente una relación de mapeo entre campos de protocolo incluidos en un descriptor IPv4 y campos de protocolo incluidos en un campo de cabecera IPv4; ciertamente, esto no se limita a semejante relación de mapeo; y puede deducirse, de esta, otra relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tenga una correspondencia con un descriptor de protocolo. Por ejemplo, el campo de protocolo en el campo de cabecera IPv4 en la figura 4-a está mapeado al campo de protocolo en el descriptor IPv4 mostrado en la figura 4-b; el campo TTL en el campo de cabecera IPv4 está mapeado al campo TTL en el descriptor IPv4, y el campo de dirección de origen en el campo de cabecera IPv4 está mapeado al campo de dirección de origen en el descriptor IPv4. El campo de versión, el campo IHL, el campo de tipo de servicio (TOS, Type of Service), el campo de longitud total, el campo de identificación, el campo Indicadores IP x DM y el campo de desplazamiento de fragmento en el campo de cabecera IPv4 están mapeados al campo de primera palabra del descriptor IPv4. Las relaciones de mapeo de otros campos de protocolo se muestran la figura 4-a y la figura 4-b, y no se vuelven a describir detalles en este caso.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la anterior secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada. Específicamente, para cada secuencia de tipos de protocolo, puede estar preestablecida por lo menos una secuencia de instrucciones del procesamiento de edición; por lo tanto, después de que se genere la plantilla de paquete de entrada, una secuencia de instrucciones del procesamiento de edición correspondiente a una secuencia de tipos de protocolo se puede determinar de acuerdo con la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada, y la secuencia determinada de instrucciones del procesamiento de edición se puede utilizar para realizar el procesamiento de edición sobre la anterior plantilla de paquete de entrada. Se puede entender que si una correspondiente secuencia de instrucciones del procesamiento de edición está preestablecida para una secuencia de tipos de protocolo diferente, puede no ser necesario generar temporalmente una secuencia de instrucciones del procesamiento de edición cuando se realiza el procesamiento de edición sobre la anterior plantilla de paquete de entrada, lo que ayuda a reducir la complejidad de las instrucciones y simplifica la complejidad del cálculo para procesamiento de edición.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y además actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Tal como se muestra en la figura 4-c, el dispositivo de transferencia de paquetes crea una etiqueta VLAN en la plantilla de paquete de entrada, y actualiza un campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que la secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos es correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. La figura 4-c a modo de ejemplo muestra que la secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos es actualizada de Ethernet+VLAN+IPv4 a Ethernet+VLAN+VLAN+IPv4.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y además actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Tal como se muestra en la figura 4-d, un descriptor VLAN y el descriptor Ethernet son eliminados de la plantilla de paquete de entrada, y un campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada es actualizado, de manera que la secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos es correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. La figura 4-d muestra a modo de ejemplo que la secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos es actualizada de Ethernet+VLAN+IPv4 a IPv4. La figura 4-d muestra además que se añade a continuación un nuevo descriptor Ethernet a la plantilla de paquete de entrada, y se actualiza el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que una secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos actualizado es correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. La figura 4-d muestra a modo de ejemplo que la secuencia de tipos de protocolo descrita por el campo de descripción de combinación de protocolos es actualizada de IPv4 a Ethernet+IPv4.
En algunas realizaciones de la presente invención, la anterior realización del procesamiento de edición sobre la plantilla de paquete de entrada puede incluir, por ejemplo: sustituir por lo menos un descriptor de protocolo en la plantilla de paquete de entrada. Dado que se sustituye el por lo menos un descriptor de protocolo, y una secuencia de tipos de protocolo correspondiente a la plantilla de paquete de entrada puede no cambiar, puede no ser necesario actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada. Por ejemplo, tal como se muestra en la figura 4-e, un descriptor VLAN es sustituido en la plantilla de paquete de entrada y, debido a que solamente un descriptor VLAN es sustituido, la secuencia de tipos de protocolo (Ethernet+VLAN+IPv4) correspondiente a la plantilla de paquete de entrada permanece sin cambios; por lo tanto, puede no ser necesario actualizar un campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada.
Se puede comprender que la sustitución de un descriptor de protocolo en la plantilla de paquete de entrada se puede desglosar en que: se elimina primero un descriptor de protocolo antiguo en la plantilla de paquete de entrada y a continuación se crea un descriptor de protocolo nuevo en la plantilla de paquete de entrada.
Se puede entender que una secuencia de tipos de protocolo (por ejemplo, Ethernet+VLAN+IPv4) puede no solamente describir una combinación de tipos de protocolo correspondientes a descriptores de protocolo incluidos en una plantilla de paquete de entrada, sino que puede describir asimismo una relación de posiciones entre tipos de protocolo, por ejemplo, la secuencia de tipos de protocolo Ethernet+VLAN+IPv4 puede describir además que una relación de posiciones entre tipos de protocolo es que el VLAN está entre el Ethernet y el IPv4.
308. Convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida en M campos de cabecera de protocolo de un paquete de salida.
309. Reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos.
El anterior N puede ser mayor o menor que el anterior M.
Por ejemplo, si se crea un descriptor de protocolo en la anterior plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M es mayor que el anterior N. Si se elimina un descriptor de protocolo de la plantilla de paquete de entrada en el proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M es menor que el anterior N; si se eliminan descriptores de protocolo de la plantilla de paquete de entrada y se crean descriptores de protocolo en la plantilla de paquete de entrada en el proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el anterior M puede ser mayor o menor que el anterior N.
Se puede aprender que, durante un procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
Para ayudar a implementar mejor las soluciones anteriores en realizaciones de la presente invención, en una realización de la presente invención, se da a conocer a continuación un aparato relevante configurado para implementar las soluciones anteriores.
Haciendo referencia a la figura 5, una realización de la presente invención da a conocer un aparato de procesamiento de edición de paquetes 500, que puede incluir un analizador sintáctico de paquetes 510, un procesador de edición de plantilla 520 y un ensamblador de paquetes 530.
El analizador sintáctico de paquetes 510 está configurado para generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y una relación de mapeo de campos de protocolo preestablecida, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo, y la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo.
El procesador de edición de plantilla 520 está configurado para realizar el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida.
El ensamblador de paquetes 530 está configurado para convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y sustituir los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos.
En algunas realizaciones de la presente invención, el analizador sintáctico de paquetes 510 puede estar configurado específicamente para: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada, invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
Se puede entender que un campo de cabecera de protocolo tiene una correspondencia uno a uno con un descriptor de protocolo; por lo tanto, el analizador sintáctico de paquetes 510 puede obtener, en base a los anteriores N campos de cabecera de protocolo a editar del paquete de entrada, los N descriptores de protocolo que están en correspondencia, uno a uno, con los N campos de cabecera de protocolo.
Los anteriores N campos de cabecera de protocolo pueden incluir, por ejemplo: una etiqueta VLAN, un campo de cabecera de Ethernet y/o un campo de cabecera IPv4, y similares, y correspondientemente, los anteriores N descriptores de protocolo pueden incluir: un descriptor VLAN, un descriptor Ethernet y/o un descriptor IPv4, y similares. Un descriptor de protocolo correspondiente a un campo de cabecera de Ethernet se puede denominar un descriptor Ethernet (es decir, el campo de cabecera de Ethernet tiene una correspondencia con el descriptor Ethernet). Un descriptor de protocolo correspondiente a una etiqueta VLAN se puede denominar asimismo un descriptor VLAN (es decir, la etiqueta VLAN tiene una correspondencia con el descriptor VLAN). Un descriptor de protocolo correspondiente a un campo de cabecera IPv4 se puede denominar un descriptor IPv4 (es decir, el campo de cabecera IPv4 tiene una correspondencia con el descriptor IPv4).
La anterior relación de mapeo de campos de protocolo preestablecida es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; por lo tanto, la relación de mapeo de campos de protocolo puede incluir, por ejemplo, una relación de mapeo entre campos de protocolo incluidos en la etiqueta VLAN y campos de protocolo incluidos en el descriptor VLAN, una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera IPv4 y campos de protocolo incluidos en el descriptor IPv4, o una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera de Ethernet y campos de protocolo incluidos en el descriptor Ethernet. Es decir, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en un campo de cabecera de protocolo a campos de protocolo en un descriptor de protocolo que tiene una correspondencia con el campo de cabecera de protocolo; análogamente, la relación de mapeo de campos de protocolo preestablecida puede indicar asimismo cómo mapear campos de protocolo incluidos en un descriptor de protocolo a campos de protocolo en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo. Por ejemplo, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera IPv4 a campos de protocolo en el descriptor IPv4, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor IPv4 a campos de protocolo en el campo de cabecera IPv4; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera de Ethernet a campos de protocolo en el descriptor Ethernet, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor Ethernet a campos de protocolo en el campo de cabecera de Ethernet; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en la etiqueta VLAN a campos de protocolo en el descriptor VLAN, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor VLAN a campos de protocolo en la etiqueta VLAN, etc.
Por lo tanto, el analizador sintáctico de paquetes 510 puede generar, en base a un campo de cabecera de protocolo particular y a la relación de mapeo de campos de protocolo preestablecida, un descriptor de protocolo que está en la plantilla de paquete de entrada y es correspondiente al campo de cabecera de protocolo particular; análogamente, el analizador sintáctico de paquetes 510 puede obtener asimismo, por medio de conversión en base a un descriptor de protocolo particular en la plantilla de paquete de entrada y a la relación de mapeo de campos de protocolo preestablecida, un campo de cabecera de protocolo correspondiente al descriptor de protocolo particular en la plantilla de paquete de entrada. Por ejemplo, el descriptor VLAN en la plantilla de paquete de entrada se puede generar en base a la etiqueta VLAN y la relación de mapeo de campos de protocolo preestablecida; análogamente, la etiqueta VLAN se puede obtener, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor VLAN en la plantilla de paquete de entrada. El descriptor IPv4 en la plantilla de paquete de entrada se puede generar en base al campo de cabecera IPv4 y a la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera IPv4 se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor IPv4 en la plantilla de paquete de entrada. El descriptor Ethernet en la plantilla de paquete de entrada se puede generar en base al campo de cabecera de Ethernet y la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera de Ethernet se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor Ethernet en la plantilla de paquete de entrada. A partir de este modo, se pueden deducir otros modos de conversión entre un campo de cabecera de protocolo y un descriptor de protocolo que tiene una correspondencia.
Un primer campo de protocolo incluido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con, por lo menos, un campo de protocolo incluido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
En algunas realizaciones de la presente invención, un segundo campo de protocolo incluido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo incluido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo pueden ser cualquier campo de cabecera de protocolo o un campo de cabecera de protocolo específico en los anteriores N campos de cabecera de protocolo. El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo puede ser, por ejemplo, el campo de cabecera de Ethernet, el campo de cabecera IPv4, la etiqueta VLAN, o similares.
Es decir, la cantidad de campos de protocolo incluidos en un campo de cabecera de protocolo puede ser igual o diferente a la cantidad de campos de protocolo incluidos en un descriptor de protocolo, donde el campo de cabecera de protocolo y el descriptor de protocolo tienen una correspondencia entre sí, por ejemplo, la cantidad de campos de protocolo incluidos en el campo de cabecera IPv4 puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor IPv4, la cantidad de campos de protocolo incluidos en el campo de cabecera de Ethernet puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor Ethernet, y la cantidad de campos de protocolo incluidos en la etiqueta VLAN puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor VLAN.
Por ejemplo, si algún campo de protocolo incluido en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es menor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si algún campo de protocolo incluido en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera de Ethernet) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor Ethernet), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es mayor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si cada campo de protocolo en algunos campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4) y cada campo de protocolo en algunos campos de protocolo incluidos en el primer campo de cabecera de protocolo tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo, la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo puede ser mayor, menor o igual que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si campos de protocolo incluidos en el segundo descriptor de protocolo tienen una relación de mapeo uno a uno con campos de protocolo incluidos en el anterior segundo campo de cabecera de protocolo, la cantidad de campos de protocolo incluidos en el segundo descriptor de protocolo es igual a la cantidad de campos de protocolo incluidos en el segundo campo de cabecera de protocolo. Se deducen otros escenarios a partir de esto.
Para ayudar a comprender mejor la relación de mapeo de campos, a continuación se describen, utilizando ejemplos y haciendo referencia a las figuras 2-a a 2-g, varias relaciones de mapeo de campos que pueden existir entre campos de protocolo incluidos en un descriptor de protocolo y un campo de cabecera de protocolo que tienen una correspondencia entre sí. Un descriptor de protocolo A1 y un campo de cabecera de protocolo B1 en la figura 2-a a la figura 2-g tienen una correspondencia entre sí.
Haciendo referencia a la figura 2-a hasta la figura 2-g, la figura 2-a muestra a modo de ejemplo que los campos de protocolo en el descriptor de protocolo A1 tienen una relación de mapeo uno a uno con campos en el campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d21 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-b, la figura 2-b muestra a modo de ejemplo que entre un campo de protocolo en un descriptor de protocolo A1 puede haber una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); análogamente, un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base a los campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-c, la figura 2-c muestra a modo de ejemplo que un campo de protocolo en el campo de cabecera de protocolo B1 puede tener una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1. Específicamente, un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11 y d12 en el descriptor de protocolo A1 (es decir, los campos de protocolo d21 y d22 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21); análogamente, un campo de protocolo d22 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 (es decir, los campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d22); etc.
Como otro ejemplo, tal como se muestra en la figura 2-d, la figura 2-d muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1. Específicamente, la figura 2-d muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base a los campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12, d13 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12, d13 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-e, la figura 2-e muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-e muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12 y d13 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-f, la figura 2-f muestra a modo de ejemplo que un campo de protocolo en un descriptor de protocolo A1 tiene una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-f muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campos de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-g, la figura 2-g muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-g muestra a modo de ejemplo que un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Se puede comprender que las diversas posibles relaciones de mapeo de campos que se describen en la figura 2-a a la figura 2-g y entre campos de protocolo incluidos en un descriptor de protocolo y campos de protocolo incluidos en un campo de cabecera de protocolo se utilizan solamente como ejemplos. Ciertamente, los campos de protocolo incluidos en un descriptor de protocolo y los campos de protocolo incluidos en un campo de cabecera de protocolo pueden tener asimismo otras relaciones de mapeo de campos, que no se enumeran exhaustivamente en el presente documento.
Un descriptor de protocolo se puede registrar en registros con una misma anchura o con anchuras diferentes, tales como de 1 bit, 8 bits, 16 bits, 32 bits, 64 bits y 128 bits. Después de que se determine una plantilla de paquete de entrada, se pueden fijar posiciones de almacenamiento de campos en el descriptor de protocolo. Si las posiciones de almacenamiento de los campos en el descriptor de protocolo son fijas de forma relativa, esto ayuda a simplificar más la complejidad de una instrucción de procesamiento de edición dado que, en este caso, la instrucción de procesamiento de edición se puede establecer directamente en función de la dirección, independientemente del contenido específico en la dirección.
La anterior plantilla de paquete de entrada incluye un descriptor de plantilla, donde el descriptor de plantilla incluye un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada.
Análogamente, la plantilla de paquete de salida puede incluir asimismo un descriptor de plantilla, donde el descriptor de plantilla puede incluir un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de salida. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de descripción de combinación de protocolos se puede actualizar de manera adaptativa, de manera que el campo de descripción de combinación de protocolos puede describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el descriptor de plantilla en la plantilla de paquete de entrada puede incluir además un campo de longitud de los campos de cabecera que se utiliza para registrar una longitud total de campos de cabecera de protocolo correspondientes a descriptores de protocolo incluidos en la anterior plantilla de paquete de entrada. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de longitud de los campos de cabecera en el descriptor de plantilla se puede actualizar de manera adaptativa, de manera que el campo de longitud de los campos de cabecera puede describir una longitud total de campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Por ejemplo, se supone que la plantilla de paquete de entrada incluye dos descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los dos descriptores de protocolo es de 50 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 50 octetos); y si se crea un descriptor VLAN en la plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 54 octetos. Como otro ejemplo, se supone que la plantilla de paquete de entrada incluye tres descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los tres descriptores de protocolo es de 68 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 68 octetos), y si se elimina un descriptor VLAN de la plantilla de paquete de entrada en un proceso de realización de procesamiento de edición en la anterior plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 64 octetos. A partir de este se pueden deducir otros casos.
Opcionalmente, el anterior descriptor de plantilla puede incluir además un campo de indicación de transferencia que se utiliza para registrar un modo de transferencia del paquete de entrada. Opcionalmente, el descriptor de plantilla puede incluir además un campo de información complementaria, que se utiliza para registrar información adicional (número de puerto de recepción y/o número de canal de recepción de un paquete) correspondiente al paquete de entrada. Ciertamente, el anterior descriptor de plantilla puede incluir asimismo otro campo.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla 520 se puede configurar específicamente para: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada. Específicamente, para cada secuencia de tipos de protocolo, puede estar preestablecida por lo menos una secuencia de instrucciones del procesamiento de edición; por lo tanto, después de que se genere la plantilla de paquete de entrada, una secuencia de instrucciones del procesamiento de edición correspondiente a una secuencia de tipos de protocolo se puede determinar de acuerdo con la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada, y la secuencia determinada de instrucciones del procesamiento de edición se puede utilizar para realizar el procesamiento de edición sobre la anterior plantilla de paquete de entrada. Se puede entender que es si una correspondiente secuencia de instrucciones del procesamiento de edición está preestablecida para una secuencia de tipos de protocolo diferente, puede no ser necesario generar temporalmente una secuencia de instrucciones del procesamiento de edición cuando se realiza el procesamiento de edición sobre la anterior plantilla de paquete de entrada, lo que ayuda a reducir la complejidad de las instrucciones y simplifica la complejidad del cálculo para procesamiento de edición.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla 520 puede estar configurado específicamente para: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla 520 puede estar configurado específicamente para: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla 520 puede estar configurado específicamente para sustituir por lo menos un descriptor de protocolo en la plantilla de paquete de entrada.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de sustituir los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, el ensamblador de paquetes 530 puede estar configurado específicamente para: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
Se puede comprender que la sustitución de un descriptor de protocolo en la plantilla de paquete de entrada se puede desglosar en que: se elimina primero un descriptor de protocolo antiguo en la plantilla de paquete de entrada y a continuación se crea un descriptor de protocolo nuevo en la plantilla de paquete de entrada.
Se puede entender que las funciones de cada módulo de función del aparato de procesamiento de edición de paquetes 500 en esta realización se pueden implementar específicamente de acuerdo con el procedimiento de la realización de procedimiento anterior, y para un proceso de implementación específico se puede hacer referencia a la descripción relacionada en la realización de procedimiento anterior, y no se vuelven a describir detalles en este caso
Se puede aprender que, durante un procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
Haciendo referencia a la figura 6, la figura 6 es un diagrama esquemático de un dispositivo de transferencia de paquetes 600, de acuerdo con una realización de la presente invención. El dispositivo de transferencia de paquetes 600 puede incluir por lo menos un bus 601, por lo menos un procesador 602 que está conectado al bus 601 y por lo menos una memoria 603 que está conectada al bus 601.
El procesador 602 invoca, utilizando el bus 601, código almacenado en la memoria 603, para: generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y a una relación de mapeo de campos de protocolo preestablecida, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo, y la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; y realizar el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida; y convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida obtenida en M campos de cabecera de protocolo de un paquete de salida, y sustituir los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos.
En algunas realizaciones de la presente invención, en el aspecto de generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y una relación de mapeo de campos de protocolo preestablecida, el procesador 602 puede estar configurado específicamente para: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
Se puede entender que un campo de cabecera de protocolo tiene una correspondencia uno a uno con un descriptor de protocolo; por lo tanto, el procesador 602 puede obtener, en base a los N campos de cabecera de protocolo a editar del paquete de entrada, los N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo.
Los anteriores N campos de cabecera de protocolo pueden incluir, por ejemplo: una etiqueta VLAN, un campo de cabecera de Ethernet y/o un campo de cabecera IPv4, y similares, y correspondientemente, los anteriores N descriptores de protocolo pueden incluir: un descriptor VLAN, un descriptor Ethernet y/o un descriptor IPv4, y similares. Un descriptor de protocolo correspondiente a un campo de cabecera de Ethernet se puede denominar un descriptor Ethernet (es decir, el campo de cabecera de Ethernet tiene una correspondencia con el descriptor Ethernet). Un descriptor de protocolo correspondiente a una etiqueta VLAN se puede denominar asimismo un descriptor VLAN (es decir, la etiqueta VLAN tiene una correspondencia con el descriptor VLAN). Un descriptor de protocolo correspondiente a un campo de cabecera IPv4 se puede denominar un descriptor IPv4 (es decir, el campo de cabecera IPv4 tiene una correspondencia con el descriptor IPv4).
La anterior relación de mapeo de campos de protocolo preestablecida es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; por lo tanto, la relación de mapeo de campos de protocolo puede incluir, por ejemplo, una relación de mapeo entre campos de protocolo incluidos en la etiqueta VLAN y campos de protocolo incluidos en el descriptor VLAN, una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera IPv4 y campos de protocolo incluidos en el descriptor IPv4, o una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera de Ethernet y campos de protocolo incluidos en el descriptor Ethernet. Es decir, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en un campo de cabecera de protocolo a campos de protocolo en un descriptor de protocolo que tiene una correspondencia con el campo de cabecera de protocolo; análogamente, la relación de mapeo de campos de protocolo preestablecida puede indicar asimismo cómo mapear campos de protocolo incluidos en un descriptor de protocolo a campos de protocolo en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo. Por ejemplo, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera IPv4 a campos de protocolo en el descriptor IPv4, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor IPv4 a campos de protocolo en el campo de cabecera IPv4; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera de Ethernet a campos de protocolo en el descriptor Ethernet, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor Ethernet a campos de protocolo en el campo de cabecera de Ethernet; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en la etiqueta VLAN a campos de protocolo en el descriptor VLAN, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor VLAN a campos de protocolo en la etiqueta VLAN, etc.
Por lo tanto, el procesador 602 puede generar, en base a un campo de cabecera de protocolo particular y a la relación de mapeo de campos de protocolo preestablecida, un descriptor de protocolo que está en la plantilla de paquete de entrada y corresponde al campo de cabecera de protocolo particular; análogamente, el procesador 602 puede asimismo obtener, por medio de conversión en base a un descriptor de protocolo particular en la plantilla de paquete de entrada y a la relación de mapeo de campos de protocolo preestablecida, un campo de cabecera de protocolo correspondiente al descriptor de protocolo particular en la plantilla de paquete de entrada. Por ejemplo, el descriptor VLAN en la plantilla de paquete de entrada se puede generar en base a la etiqueta VLAN y la relación de mapeo de campos de protocolo preestablecida; análogamente, la etiqueta VLAN se puede obtener, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor VLAN en la plantilla de paquete de entrada. El descriptor IPv4 en la plantilla de paquete de entrada se puede generar en base al campo de cabecera IPv4 y a la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera IPv4 se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor IPv4 en la plantilla de paquete de entrada. El descriptor Ethernet en la plantilla de paquete de entrada se puede generar en base al campo de cabecera de Ethernet y la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera de Ethernet se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor Ethernet en la plantilla de paquete de entrada. A partir de este modo, se pueden deducir otros modos de conversión entre un campo de cabecera de protocolo y un descriptor de protocolo que tiene una correspondencia.
Si un descriptor de protocolo se registra en registros con una misma anchura o con anchuras diferentes, tales como 1 bit, 8 bits, 16 bits, 32 bits, 64 bits y 128 bits, después de que se determine la plantilla de paquete de entrada, se pueden fijar posiciones de almacenamiento de campos en el descriptor de protocolo. Si las posiciones de almacenamiento de los campos en el descriptor de protocolo son fijas de forma relativa, esto ayuda a simplificar más la complejidad de una instrucción de procesamiento de edición dado que, en este caso, la instrucción de procesamiento de edición se puede establecer directamente en función de la dirección, independientemente del contenido específico en la dirección.
Un primer campo de protocolo incluido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con, por lo menos, un campo de protocolo incluido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
En algunas realizaciones de la presente invención, un segundo campo de protocolo incluido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo incluido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo pueden ser cualquier campo de cabecera de protocolo o un campo de cabecera de protocolo específico en los anteriores N campos de cabecera de protocolo. El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo puede ser, por ejemplo, el campo de cabecera de Ethernet, el campo de cabecera IPv4, la etiqueta VLAN, o similares.
Es decir, la cantidad de campos de protocolo incluidos en un campo de cabecera de protocolo no es igual a la cantidad de campos de protocolo incluidos en un descriptor de protocolo, donde el campo de cabecera de protocolo y el descriptor de protocolo tienen una correspondencia entre sí, por ejemplo, la cantidad de campos de protocolo incluidos en el campo de cabecera IPv4 puede ser igual o distinta de la cantidad de campos de protocolo incluidos en el descriptor IPv4, la cantidad de campos de protocolo incluidos en el campo de cabecera de Ethernet puede ser igual o distinta de la cantidad de campos de protocolo incluidos en el descriptor Ethernet, y la cantidad de campos de protocolo incluidos en la etiqueta VLAN puede ser igual o distinta de la cantidad de campos de protocolo incluidos en el descriptor VLAN.
Por ejemplo, si cualquier campo de protocolo incluido en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es menor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si algún campo de protocolo incluido en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera de Ethernet) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor Ethernet), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es mayor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si cada campo de protocolo en algunos campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4) y cada campo de protocolo en algunos campos de protocolo incluidos en el primer campo de cabecera de protocolo tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo, la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo puede ser mayor, menor o igual que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si campos de protocolo incluidos en el segundo descriptor de protocolo tienen una relación de mapeo uno a uno con campos de protocolo incluidos en el anterior segundo campo de cabecera de protocolo, la cantidad de campos de protocolo incluidos en el segundo descriptor de protocolo es igual a la cantidad de campos de protocolo incluidos en el segundo campo de cabecera de protocolo. Se deducen otros escenarios a partir de esto.
Para ayudar a comprender mejor la relación de mapeo de campos, a continuación se describen, utilizando ejemplos y haciendo referencia a las figuras 2-a a 2-g, varias relaciones de mapeo de campos que pueden existir entre campos de protocolo incluidos en un descriptor de protocolo y un campo de cabecera de protocolo que tienen una correspondencia entre sí. Un descriptor de protocolo A1 y un campo de cabecera de protocolo B1 en la figura 2-a a la figura 2-g tienen una correspondencia entre sí.
Haciendo referencia a la figura 2-a hasta la figura 2-g, la figura 2-a muestra a modo de ejemplo que los campos de protocolo en el descriptor de protocolo A1 tienen una relación de mapeo uno a uno con campos en el campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d21 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-b, la figura 2-b muestra a modo de ejemplo que entre un campo de protocolo en un descriptor de protocolo A1 puede haber una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1. Específicamente, un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); análogamente, un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base a los campos de protocolo d23, d24 y d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-c, la figura 2-c muestra a modo de ejemplo que un campo de protocolo en el campo de cabecera de protocolo B1 puede tener una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1. Específicamente, un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11 y d12 en el descriptor de protocolo A1 (es decir, los campos de protocolo d21 y d22 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21); análogamente, un campo de protocolo d22 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 (es decir, los campos de protocolo d13, d14 y d15 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d22); etc.
Como otro ejemplo, tal como se muestra en la figura 2-d, la figura 2-d muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1. Específicamente, la figura 2-d muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base a los campos de protocolo d24 y d25 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12, d13 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12, d13 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-e, la figura 2-e muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, otro campo de protocolo en el descriptor de protocolo A1 tiene una relación de mapeo con una serie de otros campos de protocolo en el campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-e muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21 y d22 en el campo de cabecera de protocolo B1); un campo de protocolo d23 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d12 y d13 se pueden obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-f, la figura 2-f muestra a modo de ejemplo que un campo de protocolo en un descriptor de protocolo A1 tiene una relación de mapeo con una serie de campos de protocolo en un campo de cabecera de protocolo B1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-f muestra a modo de ejemplo que un campo de protocolo d11 en el descriptor de protocolo A1 tiene una relación de mapeo con campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d11 se puede obtener, por medio de conversión, en base a los campos de protocolo d21, d22 y d23 en el campo de cabecera de protocolo B1); un campo de protocolo d12 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d24 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d12 se puede obtener, por medio de conversión, en base al campo de protocolo d24 en el campo de cabecera de protocolo B1); un campo de protocolo d13 en el descriptor de protocolo A1 tiene una relación de mapeo con un campos de protocolo d25 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d13 se puede obtener, por medio de conversión, en base al campo de protocolo d25 en el campo de cabecera de protocolo B1); etc.
Como otro ejemplo, tal como se muestra en la figura 2-g, la figura 2-g muestra a modo de ejemplo que un campo de protocolo en un campo de cabecera de protocolo B1 tiene una relación de mapeo con una serie de campos de protocolo en un descriptor de protocolo A1, y otro campo de protocolo más en el descriptor de protocolo A1 tiene una relación de mapeo con otro campo de protocolo más en el campo de cabecera de protocolo B1. Específicamente, la figura 2-g muestra a modo de ejemplo que un campo de protocolo d21 en el campo de cabecera de protocolo B1 tiene una relación de mapeo con campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 (es decir, los campos de protocolo d11, d12 y d13 en el descriptor de protocolo A1 se pueden obtener, por medio de conversión, en base al campo de protocolo d21 en el campo de cabecera de protocolo B1); un campo de protocolo d14 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d22 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d14 se puede obtener, por medio de conversión, en base al campo de protocolo d22 en el campo de cabecera de protocolo B1); un campo de protocolo d15 en el descriptor de protocolo A1 tiene una relación de mapeo con un campo de protocolo d23 en el campo de cabecera de protocolo B1 (es decir, el campo de protocolo d15 se puede obtener, por medio de conversión, en base al campo de protocolo d23 en el campo de cabecera de protocolo B1); etc.
Se puede comprender que las diversas posibles relaciones de mapeo de campos que se describen en la figura 2-a a la figura 2-g y entre campos de protocolo incluidos en un descriptor de protocolo y campos de protocolo incluidos en un campo de cabecera de protocolo se utilizan solamente como ejemplos. Ciertamente, los campos de protocolo incluidos en un descriptor de protocolo y los campos de protocolo incluidos en un campo de cabecera de protocolo pueden tener asimismo otras relaciones de mapeo de campos, que no se enumeran exhaustivamente en el presente documento.
Si un descriptor de protocolo se registra en registros con una misma anchura o con anchuras diferentes, tales como 1 bit, 8 bits, 16 bits, 32 bits, 64 bits y 128 bits, después de que se determine la plantilla de paquete de entrada, se pueden fijar posiciones de almacenamiento de campos en el descriptor de protocolo. Si las posiciones de almacenamiento de los campos en el descriptor de protocolo son fijas de forma relativa, esto ayuda a simplificar más la complejidad de una instrucción de procesamiento de edición dado que, en este caso, la instrucción de procesamiento de edición se puede establecer directamente en función de la dirección, independientemente del contenido específico en la dirección.
La anterior plantilla de paquete de entrada incluye además un descriptor de plantilla, donde el descriptor de plantilla incluye un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada.
Análogamente, la plantilla de paquete de salida puede incluir asimismo un descriptor de plantilla, donde el descriptor de plantilla puede incluir un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de salida. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de descripción de combinación de protocolos se puede actualizar de manera adaptativa, de manera que el campo de descripción de combinación de protocolos puede describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el descriptor de plantilla en la plantilla de paquete de entrada puede incluir además un campo de longitud de los campos de cabecera que se utiliza para registrar una longitud total de campos de cabecera de protocolo correspondientes a descriptores de protocolo incluidos en la anterior plantilla de paquete de entrada. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de longitud de los campos de cabecera en el descriptor de plantilla se puede actualizar de manera adaptativa, de manera que el campo de longitud de los campos de cabecera puede describir una longitud total de campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Por ejemplo, se supone que la plantilla de paquete de entrada incluye dos descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los dos descriptores de protocolo es de 50 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 50 octetos); y si se crea un descriptor VLAN en la plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 54 octetos. Como otro ejemplo, se supone que la plantilla de paquete de entrada incluye tres descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los tres descriptores de protocolo es de 68 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 68 octetos), y si se elimina un descriptor VLAN de la plantilla de paquete de entrada en un proceso de realización de procesamiento de edición en la anterior plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 64 octetos. Se pueden deducir otros casos a partir de esto.
Opcionalmente, el anterior descriptor de plantilla puede incluir además un campo de indicación de transferencia que se utiliza para registrar un modo de transferencia del paquete de entrada. Opcionalmente, el descriptor de plantilla puede incluir además un campo de información complementaria, que se utiliza para registrar información adicional (número de puerto de recepción y/o número de canal de recepción de un paquete) correspondiente al paquete de entrada. Ciertamente, el anterior descriptor de plantilla puede incluir asimismo otro campo.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 602 se puede configurar específicamente para: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada. Específicamente, para cada secuencia de tipos de protocolo, puede estar preestablecida por lo menos una secuencia de instrucciones del procesamiento de edición; por lo tanto, después de que se genere la plantilla de paquete de entrada, una secuencia de instrucciones del procesamiento de edición correspondiente a una secuencia de tipos de protocolo se puede determinar de acuerdo con la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada, y la secuencia determinada de instrucciones del procesamiento de edición se puede utilizar para realizar el procesamiento de edición sobre la anterior plantilla de paquete de entrada. Se puede entender que es si una correspondiente secuencia de instrucciones del procesamiento de edición está preestablecida para una secuencia de tipos de protocolo diferente, puede no ser necesario generar temporalmente una secuencia de instrucciones del procesamiento de edición cuando se realiza el procesamiento de edición sobre la anterior plantilla de paquete de entrada, lo que ayuda a reducir la complejidad de las instrucciones y simplifica la complejidad del cálculo para procesamiento de edición.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 602 puede estar configurado específicamente para: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 602 puede estar configurado específicamente para: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 602 puede estar configurado específicamente para reemplazar por lo menos un descriptor de protocolo en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de sustituir los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, el procesador 602 puede estar configurado específicamente para: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
Se puede comprender que la sustitución de un descriptor de protocolo en la plantilla de paquete de entrada se puede desglosar en que: se elimina primero un descriptor de protocolo antiguo en la plantilla de paquete de entrada y a continuación se crea un descriptor de protocolo nuevo en la plantilla de paquete de entrada.
Se puede entender que las funciones de cada módulo de función del dispositivo de transferencia de paquetes 600 en esta realización se pueden implementar específicamente de acuerdo con el procedimiento de la anterior realización de procedimiento, y para un proceso de implementación específico se puede hacer referencia a la descripción relacionada en la anterior realización de procedimiento, y no se vuelven a describir detalles en este caso.
Se puede entender que el dispositivo de transferencia de paquetes 600 en esta realización puede ser, por ejemplo, un rúter, un conmutador, un cortafuegos u otro dispositivo. Se puede aprender que, durante un procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
Haciendo referencia a la figura 7, la figura 7 es un diagrama de bloques estructural de un dispositivo de transferencia de paquetes 700 dado a conocer en otra realización de la presente invención.
El dispositivo de transferencia de paquetes 700 puede incluir por lo menos un procesador 701, por lo menos una interfaz de red 704 u otra interfaz de usuario 703, una memoria 705 y por lo menos un bus de comunicaciones 702. El bus de comunicaciones 702 está configurado para implementar conexión y comunicación entre estos componentes. El dispositivo de transferencia de paquetes 700 incluye opcionalmente la interfaz de usuario 703, que incluye: una pantalla (por ejemplo, una pantalla táctil, una LCD, un CRT, un holográfico (Holographic) o un proyector (Projector)), un dispositivo de clic (por ejemplo, un ratón, una bola de seguimiento (trackball), un panel táctil o una pantalla táctil), una cámara y/o un aparato de recogida, y similares.
La memoria 702 puede incluir, por ejemplo, una memoria de sólo lectura y una memoria de acceso aleatorio, y proporciona una instrucción y datos para el procesador 701.
Una parte de la memoria 702 incluye además una memoria de acceso aleatorio no volátil (NVRAM) y similares.
En algunos modos de implementación, la memoria 705 almacena el siguiente elemento, un módulo ejecutable o una estructura de datos, o un subconjunto de los mismos, o un conjunto de extensión de los mismos:
un sistema operativo 7051, que incluye varios programas de sistema, y se utiliza para implementar diversas tareas basadas en hardware de procesos y servicios; y
un módulo de programa de aplicación 7052, que incluye varios programas de aplicación, y se utiliza para implementar varios servicios de aplicación.
En esta realización de la presente invención, invocando un programa o una instrucción almacenada en la memoria 702, el procesador 701 genera una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y una relación de mapeo de campos de protocolo preestablecida, donde la plantilla de paquete de entrada incluye N descriptores de protocolo que son correspondientes, uno a uno, con los N campos de cabecera de protocolo, y la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; edita y procesa la plantilla de paquete de entrada para obtener una plantilla de paquete de salida, convierte, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo incluidos en la plantilla de paquete de salida obtenida en M campos de cabecera de protocolo de un paquete de salida; y reemplaza los N campos de cabecera de protocolo en el paquete de entrada con M campos de cabecera de protocolo para obtener el paquete de salida, donde N y M son enteros positivos.
En algunas realizaciones de la presente invención, en el aspecto de generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y una relación de mapeo de campos de protocolo preestablecida, el procesador 701 puede estar configurado específicamente para: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
Se puede entender que un campo de cabecera de protocolo tiene una correspondencia uno a uno con un descriptor de protocolo; por lo tanto, el procesador 701 puede obtener, en base a los N campos de cabecera de protocolo a editar del paquete de entrada, los N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo.
Los anteriores N campos de cabecera de protocolo pueden incluir, por ejemplo: una etiqueta VLAN, un campo de cabecera de Ethernet y/o un campo de cabecera IPv4, y similares, y correspondientemente, los anteriores N descriptores de protocolo pueden incluir: un descriptor VLAN, un descriptor Ethernet y/o un descriptor IPv4, y similares. Un descriptor de protocolo correspondiente a un campo de cabecera de Ethernet se puede denominar un descriptor Ethernet (es decir, el campo de cabecera de Ethernet tiene una correspondencia con el descriptor Ethernet). Un descriptor de protocolo correspondiente a una etiqueta VLAN se puede denominar asimismo un descriptor VLAN (es decir, la etiqueta VLAN tiene una correspondencia con el descriptor VLAN). Un descriptor de protocolo correspondiente a un campo de cabecera IPv4 se puede denominar un descriptor IPv4 (es decir, el campo de cabecera IPv4 tiene una correspondencia con el descriptor IPv4).
La anterior relación de mapeo de campos de protocolo preestablecida es una relación de mapeo entre un campo de protocolo incluido en un descriptor de protocolo y un campo de protocolo incluido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo; por lo tanto, la relación de mapeo de campos de protocolo puede incluir, por ejemplo, una relación de mapeo entre campos de protocolo incluidos en la etiqueta VLAN y campos de protocolo incluidos en el descriptor VLAN, una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera IPv4 y campos de protocolo incluidos en el descriptor IPv4, o una relación de mapeo entre campos de protocolo incluidos en el campo de cabecera de Ethernet y campos de protocolo incluidos en el descriptor Ethernet. Es decir, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en un campo de cabecera de protocolo a campos de protocolo en un descriptor de protocolo que tiene una correspondencia con el campo de cabecera de protocolo; análogamente, la relación de mapeo de campos de protocolo preestablecida puede indicar asimismo cómo mapear campos de protocolo incluidos en un descriptor de protocolo a campos de protocolo en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo. Por ejemplo, la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera IPv4 a campos de protocolo en el descriptor IPv4, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor IPv4 a campos de protocolo en el campo de cabecera IPv4; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en el campo de cabecera de Ethernet a campos de protocolo en el descriptor Ethernet, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor Ethernet a campos de protocolo en el campo de cabecera de Ethernet; la relación de mapeo de campos de protocolo preestablecida puede indicar cómo mapear campos de protocolo incluidos en la etiqueta VLAN a campos de protocolo en el descriptor VLAN, y puede indicar además cómo mapear campos de protocolo incluidos en el descriptor VLAN a campos de protocolo en la etiqueta VLAN, etc.
Por lo tanto, el procesador 701 puede generar, en base a un campo de cabecera de protocolo particular y a la relación de mapeo de campos de protocolo preestablecida, un descriptor de protocolo que está en la plantilla de paquete de entrada y corresponde al campo de cabecera de protocolo particular; análogamente, el procesador 701 puede asimismo obtener, por medio de conversión en base a un descriptor de protocolo particular en la plantilla de paquete de entrada y a la relación de mapeo de campos de protocolo preestablecida, un campo de cabecera de protocolo correspondiente al descriptor de protocolo particular en la plantilla de paquete de entrada. Por ejemplo, el descriptor VLAN en la plantilla de paquete de entrada se puede generar en base a la etiqueta VLAN y la relación de mapeo de campos de protocolo preestablecida; análogamente, la etiqueta VLAN se puede obtener, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor VLAN en la plantilla de paquete de entrada. El descriptor IPv4 en la plantilla de paquete de entrada se puede generar en base al campo de cabecera IPv4 y a la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera IPv4 se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor IPv4 en la plantilla de paquete de entrada. El descriptor Ethernet en la plantilla de paquete de entrada se puede generar en base al campo de cabecera de Ethernet y la relación de mapeo de campos de protocolo preestablecida; y el campo de cabecera de Ethernet se puede obtener asimismo, por medio de conversión, en base a la relación de mapeo de campos de protocolo preestablecida y al descriptor Ethernet en la plantilla de paquete de entrada. A partir de este modo, se pueden deducir otros modos de conversión entre un campo de cabecera de protocolo y un descriptor de protocolo que tiene una correspondencia.
Un primer campo de protocolo incluido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con, por lo menos, un campo de protocolo incluido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
En algunas realizaciones de la presente invención, un segundo campo de protocolo incluido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo incluido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo pueden ser cualquier campo de cabecera de protocolo o un campo de cabecera de protocolo específico en los anteriores N campos de cabecera de protocolo. El anterior primer campo de cabecera de protocolo o el anterior segundo campo de cabecera de protocolo puede ser, por ejemplo, el campo de cabecera de Ethernet, el campo de cabecera IPv4, la etiqueta VLAN, o similares.
Es decir, la cantidad de campos de protocolo incluidos en un campo de cabecera de protocolo puede ser igual o diferente a la cantidad de campos de protocolo incluidos en un descriptor de protocolo, donde el campo de cabecera de protocolo y el descriptor de protocolo tienen una correspondencia entre sí, por ejemplo, la cantidad de campos de protocolo incluidos en el campo de cabecera IPv4 puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor IPv4, la cantidad de campos de protocolo incluidos en el campo de cabecera de Ethernet puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor Ethernet, y la cantidad de campos de protocolo incluidos en la etiqueta VLAN puede ser igual o diferente a la cantidad de campos de protocolo incluidos en el descriptor VLAN.
Por ejemplo, si cualquier campo de protocolo incluido en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es menor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si algún campo de protocolo incluido en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera de Ethernet) tiene por separado una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor Ethernet), la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo es mayor que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si cada campo de protocolo en algunos campos de protocolo incluidos en el primer descriptor de protocolo (por ejemplo, un descriptor IPv4) tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer campo de cabecera de protocolo (por ejemplo, un campo de cabecera IPv4) y cada campo de protocolo en algunos campos de protocolo incluidos en el primer campo de cabecera de protocolo tiene una relación de mapeo con una serie de campos de protocolo incluidos en el primer descriptor de protocolo, la cantidad de campos de protocolo incluidos en el primer descriptor de protocolo puede ser mayor, menor o igual que la cantidad de campos de protocolo incluidos en el primer campo de cabecera de protocolo. Como otro ejemplo, si campos de protocolo incluidos en el segundo descriptor de protocolo tienen una relación de mapeo uno a uno con campos de protocolo incluidos en el anterior segundo campo de cabecera de protocolo, la cantidad de campos de protocolo incluidos en el segundo descriptor de protocolo es igual a la cantidad de campos de protocolo incluidos en el segundo campo de cabecera de protocolo. Se deducen otros escenarios a partir de esto.
Si un descriptor de protocolo se registra en registros con una misma anchura o con anchuras diferentes, tales como 1 bit, 8 bits, 16 bits, 32 bits, 64 bits y 128 bits, después de que se determine la plantilla de paquete de entrada, se pueden fijar posiciones de almacenamiento de campos en el descriptor de protocolo. Si las posiciones de almacenamiento de los campos en el descriptor de protocolo son fijas de forma relativa, esto ayuda a simplificar más la complejidad de una instrucción de procesamiento de edición dado que, en este caso, la instrucción de procesamiento de edición se puede establecer directamente en función de la dirección, independientemente del contenido específico en la dirección.
En algunas realizaciones de la presente invención, la anterior plantilla de paquete de entrada incluye además un descriptor de plantilla, donde el descriptor de plantilla incluye un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada.
Análogamente, la plantilla de paquete de salida puede incluir asimismo un descriptor de plantilla, donde el descriptor de plantilla puede incluir un campo de descripción de combinación de protocolos, y el campo de descripción de combinación de protocolos se utiliza para describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de salida. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de descripción de combinación de protocolos se puede actualizar de manera adaptativa, de manera que el campo de descripción de combinación de protocolos puede describir una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, el descriptor de plantilla en la plantilla de paquete de entrada puede incluir además un campo de longitud de los campos de cabecera que se utiliza para registrar una longitud total de campos de cabecera de protocolo correspondientes a descriptores de protocolo incluidos en la anterior plantilla de paquete de entrada. Se puede comprender que cuando un descriptor de protocolo incluido en la plantilla de paquete de entrada cambia, el campo de longitud de los campos de cabecera en el descriptor de plantilla se puede actualizar de manera adaptativa, de manera que el campo de longitud de los campos de cabecera puede describir una longitud total de campos de cabecera de protocolo correspondientes a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada. Por ejemplo, se supone que la plantilla de paquete de entrada incluye dos descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los dos descriptores de protocolo es de 50 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 50 octetos); y si se crea un descriptor VLAN en la plantilla de paquete de entrada en un proceso de realización del procesamiento de edición sobre la plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 54 octetos. Como otro ejemplo, se supone que la plantilla de paquete de entrada incluye tres descriptores de protocolo, y la longitud total de campos de cabecera de protocolo correspondientes a los tres descriptores de protocolo es de 68 octetos (en este caso, un valor registrado en el campo de longitud de los campos de cabecera es de 68 octetos), y si se elimina un descriptor VLAN de la plantilla de paquete de entrada en un proceso de realización de procesamiento de edición en la anterior plantilla de paquete de entrada, donde la longitud de una etiqueta VLAN correspondiente al descriptor VLAN es de 4 octetos, el valor registrado en el campo de longitud de los campos de cabecera se puede actualizar a 64 octetos. Se pueden deducir otros casos a partir de esto.
Opcionalmente, el anterior descriptor de plantilla puede incluir además un campo de indicación de transferencia que se utiliza para registrar un modo de transferencia del paquete de entrada. Opcionalmente, el descriptor de plantilla puede incluir además un campo de información complementaria, que se utiliza para registrar información adicional (número de puerto de recepción y/o número de canal de recepción de un paquete) correspondiente al paquete de entrada. Ciertamente, el descriptor de plantilla anterior puede incluir asimismo otro campo.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 701 se puede configurar específicamente para: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la secuencia de tipos de protocolo, e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada. Específicamente, para cada secuencia de tipos de protocolo, puede estar preestablecida por lo menos una secuencia de instrucciones del procesamiento de edición; por lo tanto, después de que se genere la plantilla de paquete de entrada, una secuencia de instrucciones del procesamiento de edición correspondiente a una secuencia de tipos de protocolo se puede determinar de acuerdo con la secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos en la plantilla de paquete de entrada, y la secuencia determinada de instrucciones del procesamiento de edición se puede utilizar para realizar el procesamiento de edición sobre la anterior plantilla de paquete de entrada. Se puede entender que es si una correspondiente secuencia de instrucciones del procesamiento de edición está preestablecida para una secuencia de tipos de protocolo diferente, puede no ser necesario generar temporalmente una secuencia de instrucciones del procesamiento de edición cuando se realiza el procesamiento de edición sobre la anterior plantilla de paquete de entrada, lo que ayuda a reducir la complejidad de las instrucciones y simplifica la complejidad del cálculo para procesamiento de edición.
Opcionalmente, en algunas realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 701 puede estar configurado específicamente para: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 701 puede estar configurado específicamente para: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo incluidos actualmente en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador 701 puede estar configurado específicamente para reemplazar por lo menos un descriptor de protocolo en la plantilla de paquete de entrada.
Opcionalmente, en algunas otras realizaciones de la presente invención, en el aspecto de sustituir los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, el procesador 701 puede estar configurado específicamente para: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
Se puede comprender que la sustitución de un descriptor de protocolo en la plantilla de paquete de entrada se puede desglosar en que: se elimina primero un descriptor de protocolo antiguo en la plantilla de paquete de entrada y a continuación se crea un descriptor de protocolo nuevo en la plantilla de paquete de entrada.
Se puede entender que las funciones de cada módulo de función del dispositivo de transferencia de paquetes 700 en esta realización se pueden implementar específicamente de acuerdo con el procedimiento de la anterior realización de procedimiento, y para un proceso de implementación específico se puede hacer referencia a la descripción relacionada en la anterior realización de procedimiento, y no se vuelven a describir detalles en este caso.
Se puede entender que el dispositivo de transferencia de paquetes 700 en esta realización puede ser, por ejemplo, un rúter, un conmutador, un cortafuegos u otro dispositivo.
Se puede aprender que, durante un procesamiento de edición, el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada. Por lo tanto, esto ayuda a reducir el volumen de datos para procesamiento de edición, y ayuda además a reducir la complejidad de las instrucciones para procesamiento de edición de paquetes y a mejorar la eficiencia del procesamiento de edición de paquetes.
Una realización de la presente invención da a conocer un medio de almacenamiento informático, donde el medio de almacenamiento informático almacena un programa, y el programa realiza parte o la totalidad de las etapas de cualquier procedimiento de procesamiento de edición de paquetes dado a conocer en las anteriores realizaciones de la presente invención.
En las anteriores realizaciones, la descripción de cada realización tiene enfoques respectivos. Para una parte que no se describe en detalle en una realización, se puede hacer referencia a descripciones relacionadas en otras realizaciones.
Cabe señalar que, para facilitar la descripción, las realizaciones de procedimiento anteriores se describen con una serie de combinaciones de acciones. Sin embargo, un experto en la materia comprenderá que la presente invención no se limita a la secuencia descrita de acciones, dado que algunas etapas se pueden realizar en otra secuencia, o realizar al mismo tiempo de acuerdo con la presente invención. Además, un experto en la materia deberá comprender asimismo que todas las realizaciones descritas en esta memoria descriptiva pertenecen a realizaciones a modo de ejemplo, y que las acciones y módulos involucrados no son necesariamente obligatorios para la presente invención.
En las diversas realizaciones dadas a conocer en la presente solicitud, se debe entender que el aparato dado a conocer se puede implementar de otros modos. Por ejemplo, la realización de aparato descrita es tan sólo a modo de ejemplo. Por ejemplo, la división en unidades es tan sólo una división en funciones lógicas, y puede ser otra división en una implementación real. Por ejemplo, una serie de unidades o componentes se pueden combinar o integrar en otro sistema, o algunas características pueden ser ignoradas o no realizadas. Además, los acoplamientos mutuos o acoplamientos directos o conexiones de comunicación mostradas o explicadas se pueden implementar por medio de algunas interfaces. Los acoplamientos indirectos o conexiones de comunicación entre los aparatos o unidades se pueden implementar de forma electrónica u otras.
Las unidades descritas como partes independientes pueden o no ser físicamente independientes, y las partes visualizadas como unidades pueden o no ser unidades físicas, pueden estar ubicadas en una posición o pueden estar distribuidas en una serie de unidades de red. Una parte o la totalidad de las unidades se pueden seleccionar en función de las necesidades reales para conseguir los objetivos de las soluciones de las realizaciones.
Además, las unidades funcionales en las realizaciones de la presente invención se pueden integrar en una unidad de procesamiento, o cada una de las unidades puede existir por separado físicamente, o dos o más unidades estar integradas en una unidad. La unidad integrada se puede implementar en forma de hardware, o se puede implementar en forma de una unidad funcional de software.
Cuando la anterior unidad integrada es implementada en forma de una unidad funcional de software y vendida o utilizada como un producto independiente, la unidad integrada se puede almacenar en un medio de almacenamiento legible por ordenador. Comprendiendo lo anterior, las soluciones técnicas de la presente invención esencialmente, o la parte que contribuye a la técnica anterior, o la totalidad o una parte de las soluciones técnicas, se pueden implementar en forma de un producto de software. El producto de software se almacena en un medio de almacenamiento e incluye varias instrucciones para instruir a un dispositivo informático (que puede ser un ordenador personal, un servidor, o un dispositivo de red, y puede ser específicamente un procesador en un dispositivo informático) para realizar la totalidad o parte de las etapas de los anteriores procedimientos descritos en las realizaciones de la presente invención. El anterior medio de almacenamiento incluye: cualquier medio que pueda almacenar código de programa, tal como una unidad flash USB, un disco duro extraíble, una memoria de sólo lectura (ROM, Read-Only Memory), una memoria de acceso aleatorio (RAM, Random Access Memory), un disco magnético o un disco óptico.

Claims (15)

REIVINDICACIONES
1. Un procedimiento de procesamiento de edición de paquetes, que comprende:
generar (101) una plantilla de paquete de entrada
en base a N campos de cabecera de protocolo a editar de un paquete de entrada,
en donde la plantilla de paquete de entrada comprende N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo,
en donde la plantilla de paquete de entrada comprende además un descriptor de plantilla,
en donde el descriptor de plantilla comprende un campo de descripción de combinación de protocolos,
en donde el campo de descripción de combinación de protocolos se utiliza para describir una primera secuencia de indicaciones de protocolos, correspondiendo las indicaciones de protocolos a los descriptores de protocolo comprendidos en la plantilla de paquete de entrada,
generar una relación de mapeo de campos de protocolo preestablecida,
en donde la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo comprendido en un descriptor de protocolo y un campo de protocolo comprendido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo,
realizar (102) el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida,
en donde la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la primera secuencia; e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada,
realizar el procesamiento de edición sobre un paquete de entrada para obtener un paquete de salida,
donde la realización del procesamiento de edición sobre el paquete de entrada comprende:
convertir (103), en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo comprendidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y
reemplazar (104) los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida,
en donde N y M son enteros positivos;
en donde N no es igual a M;
en donde el procedimiento de procesamiento de edición de paquetes es tal que,
cuando se considera la realización del procesamiento de edición sobre la plantilla de paquete de entrada y la realización del procesamiento de edición sobre el paquete de entrada
el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada.
2. El procedimiento según la reivindicación 1, en el que la generación de una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada, y de una relación de mapeo de campos de protocolo preestablecida comprende: determinar, de acuerdo con la información de recepción de paquetes de paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
3. El procedimiento según la reivindicación 1 o 2, en el que un primer campo de protocolo comprendido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo comprendido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
4. El procedimiento según la reivindicación 1, 2 o 3, en el que un segundo campo de protocolo comprendido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo comprendido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
5. El procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo comprendidos actualmente en la plantilla de paquete de entrada.
6. El procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo comprendidos actualmente en la plantilla de paquete de entrada.
7. El procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: reemplazar por lo menos un descriptor de protocolo en la plantilla de paquete de entrada.
8. El procedimiento según una cualquiera de las reivindicaciones 1 a 7, en el que:
reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida comprende:
eliminar los N campos de cabecera de protocolo del paquete de entrada; e
insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
9. Un aparato de procesamiento de edición de paquetes, que comprende:
un analizador sintáctico de paquetes (510), configurado para generar una plantilla de paquete de entrada en base a N campos de cabecera de protocolo a editar de un paquete de entrada,
en donde la plantilla de paquete de entrada comprende N descriptores de protocolo que son correspondientes, uno a uno, a los N campos de cabecera de protocolo,
en donde la plantilla de paquete de entrada comprende además un descriptor de plantilla,
en donde el descriptor de plantilla comprende un campo de descripción de combinación de protocolos,
en donde el campo de descripción de combinación de protocolos se utiliza para describir una primera secuencia de indicaciones de protocolos, correspondiendo las indicaciones de protocolos a los descriptores de protocolo comprendidos en la plantilla de paquete de entrada; y
configurado para generar una relación de mapeo de campos de protocolo preestablecida,
en donde la relación de mapeo de campos de protocolo es una relación de mapeo entre un campo de protocolo comprendido en un descriptor de protocolo y un campo de protocolo comprendido en un campo de cabecera de protocolo que tiene una correspondencia con el descriptor de protocolo;
un procesador de edición de plantilla (520), configurado para realizar el procesamiento de edición sobre la plantilla de paquete de entrada para obtener una plantilla de paquete de salida,
en donde la realización del procesamiento de edición sobre la plantilla de paquete de entrada comprende: determinar una secuencia de instrucciones del procesamiento de edición correspondiente a la primera secuencia; e invocar la secuencia determinada de instrucciones del procesamiento de edición para realizar el procesamiento de edición sobre la plantilla de paquete de entrada;
un ensamblador de paquetes (530), configurado para realizar el procesamiento de edición sobre un paquete de entrada para obtener un paquete de salida,
en donde la realización del procesamiento de edición sobre el paquete de entrada comprende:
convertir, en base a la relación de mapeo de campos de protocolo preestablecida, M descriptores de protocolo comprendidos en la plantilla de paquete de salida obtenida, en M campos de cabecera de protocolo de un paquete de salida, y
reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida,
en donde N y M son enteros positivos,
en donde N no es igual a M,
en donde el aparato de procesamiento de edición de paquetes es tal que,
cuando se considera la realización del procesamiento de edición sobre la plantilla de paquete de entrada y
la realización del procesamiento de edición sobre el paquete de entrada
el procesamiento de edición se realiza principalmente sobre la plantilla de paquete de entrada en lugar de sobre todo el paquete de entrada.
10. El aparato de procesamiento de edición de paquetes según la reivindicación 9, en el que el analizador sintáctico de paquetes (510) está configurado específicamente para: determinar, de acuerdo con la información de recepción de paquetes del paquete de entrada, una tabla de análisis sintáctico de paquetes correspondiente al paquete de entrada; invocar una secuencia de instrucciones de análisis sintáctico en la tabla de análisis sintáctico de paquetes para generar la plantilla de paquete de entrada en base a los N campos de cabecera de protocolo a editar del paquete de entrada.
11. El aparato de procesamiento de edición de paquetes según la reivindicación 9 o 10, en el que un primer campo de protocolo comprendido en un primer descriptor de protocolo en los N descriptores de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo comprendido en un primer campo de cabecera de protocolo en los N campos de cabecera de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
12. El aparato de procesamiento de edición de paquetes según la reivindicación 9, 10 u 11, en el que un segundo campo de protocolo comprendido en el primer campo de cabecera de protocolo en los N campos de cabecera de protocolo tiene una relación de mapeo con por lo menos un campo de protocolo comprendido en el primer descriptor de protocolo en los N descriptores de protocolo, y el primer descriptor de protocolo tiene una correspondencia con el primer campo de cabecera de protocolo.
13. El aparato de procesamiento de edición de paquetes según una cualquiera de las reivindicaciones 9 a 12, en el que, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla está configurado específicamente para: crear por lo menos un descriptor de protocolo en la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo comprendidos actualmente en la plantilla de paquete de entrada.
14. El aparato de procesamiento de edición de paquetes según una cualquiera de las reivindicaciones 9 a 12, en el que, en el aspecto de realización del procesamiento de edición sobre la plantilla de paquete de entrada, el procesador de edición de plantilla está configurado específicamente para: eliminar por lo menos un descriptor de protocolo de la plantilla de paquete de entrada, y actualizar el campo de descripción de combinación de protocolos en el descriptor de plantilla en la plantilla de paquete de entrada, de manera que el campo de descripción de combinación de protocolos actualizado describe una secuencia de tipos de protocolo correspondiente a los descriptores de protocolo comprendidos actualmente en la plantilla de paquete de entrada.
15. El aparato de procesamiento de edición de paquetes según una cualquiera de las reivindicaciones 9 a 14, en el que:
en el aspecto de reemplazar los N campos de cabecera de protocolo en el paquete de entrada con los M campos de cabecera de protocolo para obtener el paquete de salida, el ensamblador de paquetes está configurado específicamente para: eliminar los N campos de cabecera de protocolo del paquete de entrada; e insertar los M campos de cabecera de protocolo en una posición correspondiente a los N campos de cabecera de protocolo eliminados del paquete de entrada.
ES14893121T 2014-05-30 2014-05-30 Procedimiento de edición de paquetes y dispositivo relacionado Active ES2870577T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/078917 WO2015180130A1 (zh) 2014-05-30 2014-05-30 报文编辑处理方法和相关设备

Publications (1)

Publication Number Publication Date
ES2870577T3 true ES2870577T3 (es) 2021-10-27

Family

ID=54697907

Family Applications (1)

Application Number Title Priority Date Filing Date
ES14893121T Active ES2870577T3 (es) 2014-05-30 2014-05-30 Procedimiento de edición de paquetes y dispositivo relacionado

Country Status (6)

Country Link
US (4) US10171356B2 (es)
EP (2) EP3139549B1 (es)
CN (1) CN105308927B (es)
ES (1) ES2870577T3 (es)
PL (1) PL3139549T3 (es)
WO (1) WO2015180130A1 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10063407B1 (en) 2016-02-08 2018-08-28 Barefoot Networks, Inc. Identifying and marking failed egress links in data plane
US10419366B1 (en) 2017-01-31 2019-09-17 Barefoot Networks, Inc. Mechanism for communicating to remote control plane from forwarding element
US10694006B1 (en) 2017-04-23 2020-06-23 Barefoot Networks, Inc. Generation of descriptive data for packet fields
US10601732B1 (en) 2017-07-23 2020-03-24 Barefoot Networks, Inc. Configurable packet processing pipeline for handling non-packet data
CN109388443A (zh) * 2017-08-09 2019-02-26 中兴通讯股份有限公司 一种多框架模板的模板独立方法、装置及存储介质
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
CN110099036B (zh) * 2018-01-31 2022-03-11 国广融合(北京)传媒科技发展有限公司 一种基于融合传输系统的数据封装方法
CN111294320B (zh) * 2018-12-07 2022-08-16 杭州海康威视系统技术有限公司 数据转换的方法和装置
CN111988266B (zh) * 2019-05-24 2022-05-17 华为技术有限公司 一种处理报文的方法
CN113079089B (zh) * 2020-01-03 2025-01-07 华为技术有限公司 业务链的故障保护方法、装置、设备、系统及存储介质
CN113765857B (zh) * 2020-06-04 2022-10-25 华为技术有限公司 报文转发方法、装置、设备及存储介质
CN111818098B (zh) * 2020-09-01 2020-12-11 广东省新一代通信与网络创新研究院 一种报文编辑方法、装置及计算机可读存储介质
WO2022110174A1 (zh) * 2020-11-30 2022-06-02 华为技术有限公司 一种编辑报文的方法及装置
CN114900571B (zh) * 2022-07-13 2022-09-27 工业信息安全(四川)创新中心有限公司 一种基于模板解析可信密码指令的方法、设备及介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5793954A (en) * 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US6651102B2 (en) * 1995-12-20 2003-11-18 Nb Networks Systems and methods for general purpose data modification
US6208649B1 (en) * 1998-03-11 2001-03-27 Cisco Technology, Inc. Derived VLAN mapping technique
US6502236B1 (en) * 1999-03-16 2002-12-31 Fujitsu Network Communications, Inc. Method and apparatus for automatic generation of programs for processing data units of multiple formats
US7093288B1 (en) * 2000-10-24 2006-08-15 Microsoft Corporation Using packet filters and network virtualization to restrict network communications
US20020157041A1 (en) * 2001-04-23 2002-10-24 Bennett David Charles Protocol parser-code generator
US20030172177A1 (en) * 2001-12-06 2003-09-11 Kersley Ian P. System and method for verifying a device
KR100405662B1 (ko) * 2001-12-28 2003-11-14 엘지전자 주식회사 서로 다른 세대 이동통신 시스템간 핸드오프 장치 및 방법
JP4317403B2 (ja) * 2002-08-09 2009-08-19 パナソニック株式会社 ヘッダ圧縮装置及びヘッダ圧縮方法
US6879682B1 (en) * 2002-09-26 2005-04-12 Bellsouth Intellectual Property Corporation AIN to ISDN message mapping for intelligent peripheral service enhancement
US7450499B2 (en) * 2003-02-21 2008-11-11 Samsung Electronics Co., Ltd. Method and apparatus for interconnecting IPv4 and IPv6 networks
FR2857538B1 (fr) * 2003-07-08 2006-10-06 At & T Corp Systeme et methode de compression d'en-tete de paquets bases sur la creation dynamique d'un gabarit
US20050078704A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for translating data packets from one network protocol to another
US20060077895A1 (en) * 2004-06-04 2006-04-13 Cary Wright Protocol emulator
US20060245358A1 (en) * 2005-04-29 2006-11-02 Beverly Harlan T Acceleration of data packet transmission
CN100479432C (zh) * 2005-10-10 2009-04-15 华为技术有限公司 一种报文编辑电路及方法
FR2909822B1 (fr) * 2006-12-06 2010-04-30 Radiotelephone Sfr Procede et systeme de controle de l'etablissement de canaux de communication pour permettre une transmission d'informations multimedia.
WO2009012812A1 (en) * 2007-07-23 2009-01-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for stream adaption in a packet switched network
US20090150286A1 (en) * 2007-12-10 2009-06-11 Blain Barton Point of sale automatic savings program contribution system using biometrics payment and authentication with smart cards, electronic payment, and wireless mechanisms
CN101335648A (zh) * 2008-07-25 2008-12-31 中兴通讯股份有限公司 一种不同接口报文间的自动转换方法及其装置
US8468223B2 (en) * 2008-12-04 2013-06-18 Cisco Technology, Inc. Cooperation for consumer and service provider MoCA networks
US8775651B2 (en) * 2008-12-12 2014-07-08 Raytheon Company System and method for dynamic adaptation service of an enterprise service bus over a communication platform
CN102036431B (zh) * 2009-09-25 2013-11-06 中兴通讯股份有限公司 用于资源管理的交互功能实体及协议映射方法
US8705533B1 (en) * 2010-12-10 2014-04-22 Juniper Networks, Inc. Fast packet encapsulation using templates
US8711860B2 (en) * 2011-12-22 2014-04-29 Telefonaktiebolaget L M Ericsson (Publ) Controller for flexible and extensible flow processing in software-defined networks
KR20130093848A (ko) * 2012-01-27 2013-08-23 한국전자통신연구원 멀티 계층 프로토콜 부하 분산을 위한 패킷 처리 장치
CN103780481B (zh) * 2012-10-18 2017-10-27 中兴通讯股份有限公司 一种数据通信网络中报文修改与转发的方法及装置
US9398117B2 (en) * 2013-09-26 2016-07-19 Netapp, Inc. Protocol data unit interface
CN103873464B (zh) * 2014-02-27 2017-05-10 华为技术有限公司 报文处理的方法及转发设备
US20150264404A1 (en) * 2014-03-17 2015-09-17 Nokia Technologies Oy Method and apparatus for video coding and decoding
US10031882B2 (en) * 2016-03-31 2018-07-24 Intel Corporation Sensor bus communication system

Also Published As

Publication number Publication date
EP3139549A1 (en) 2017-03-08
EP3139549A4 (en) 2017-08-30
US20230074815A1 (en) 2023-03-09
EP3799368A1 (en) 2021-03-31
US11516129B2 (en) 2022-11-29
US20170085477A1 (en) 2017-03-23
EP3139549B1 (en) 2021-03-03
US10171356B2 (en) 2019-01-01
PL3139549T3 (pl) 2021-08-23
US10819634B2 (en) 2020-10-27
US20190116120A1 (en) 2019-04-18
CN105308927B (zh) 2019-03-19
WO2015180130A1 (zh) 2015-12-03
US20210044524A1 (en) 2021-02-11
EP3799368B1 (en) 2024-11-27
CN105308927A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
ES2870577T3 (es) Procedimiento de edición de paquetes y dispositivo relacionado
ES3052640T3 (en) Method for forwarding packet on sr network, device, and system
Braun et al. Software-defined networking using OpenFlow: Protocols, applications and architectural design choices
WO2019210769A1 (en) Explicit routing with network function encoding
CN111818098B (zh) 一种报文编辑方法、装置及计算机可读存储介质
US20180069792A1 (en) Packet Processing Method, and Device and System
ES2967231T3 (es) Método, dispositivo y sistema de procesamiento de servicios
US10666564B2 (en) Increasing entropy across routing table segments
US10884960B2 (en) Offloading data movement for packet processing in a network interface controller
US20230030344A1 (en) Minimizing Differences In Segment Identifiers For Segment Routing
CN104660574B (zh) 数据中心的配置方法、控制实体和转发实体
CN112019433A (zh) 一种报文转发方法和装置
CN101127768B (zh) 创建多维网际协议的方法和装置以及系统
KR102146947B1 (ko) 네트워크 프로토콜 업데이트들에 적응하기 위한 시스템 및 방법
CN116266822B (zh) 报文转发方法及装置、存储介质、电子设备
ES2954462T3 (es) Método y aparato de procesamiento de datos
CN115428412B (zh) 由分段路由网络域中的第一节点实现的方法、装置及系统
CN105187330A (zh) 使用唯一分组标识符来标识分组的结构的方法及其装置
ES2381141T3 (es) Dispositivo y procedimiento para el tratamiento de tramas con campo de uso multiprotocolo, para una red de comunicaciones
EP4135274B1 (en) Segment routing header compression method, service processing method and device, computer device and computer-readable medium
CN102394817B (zh) 一种隧道转发方法、装置及网络设备
US20120189008A1 (en) Method for transmitting and configuring a data packet in a network
CN119814451B (zh) 二层业务转发方法、系统、电子设备及存储介质
Halavachou et al. Research on IPv4, IPv6 and IPv9 address representation
EP3326336B1 (en) Network service context