ES2589566T3 - Método de manipulación de paquetes y dispositivo de reenvío - Google Patents

Método de manipulación de paquetes y dispositivo de reenvío Download PDF

Info

Publication number
ES2589566T3
ES2589566T3 ES15152713.2T ES15152713T ES2589566T3 ES 2589566 T3 ES2589566 T3 ES 2589566T3 ES 15152713 T ES15152713 T ES 15152713T ES 2589566 T3 ES2589566 T3 ES 2589566T3
Authority
ES
Spain
Prior art keywords
tcp
packet
value
client
ack 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
ES15152713.2T
Other languages
English (en)
Inventor
Hewen Zheng
Haibin Chen
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 ES2589566T3 publication Critical patent/ES2589566T3/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

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 método de manipulación de paquetes utilizado en un dispositivo de reenvío, que comprende: recibir un paquete TCP ACK actualmente enviado por un cliente (201); obtener una ventana de recepción actual y una ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual cuando se determina que el valor del campo del Número de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente difiere del valor del campo del Número de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexión TCP, o cuando un paquete TCP requerido para una retransmisión por el paquete TCP ACK actualmente recibido no se encuentra en un dispositivo de almacenamiento (205), en donde la obtención de la ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual comprende: establecer la ventana de recepción recomendada en conformidad con un umbral de ventana preestablecido; o en donde obtener la ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual comprende: obtener una ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo descendente; calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicación; obtener el producto del resultado de la multiplicación y un primer umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicación y el primer umbral multiplicador preestablecido como la ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual; o en donde la obtención de la ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual comprende: obtener un ancho de banda BD de flujo descendente y un tiempo de ida y vuelta T cuando el paquete TCP ACK es un paquete de flujo ascendente; calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicación; obtener el producto del resultado de la multiplicación y un segundo umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicación y el segundo umbral multiplicador preestablecido como la ventana de recepción recomendada del cliente que envía el paquete TCP ACK actual; los valores de la ventana de recepción actual y de la ventana de recepción recomendada son comparados y el más pequeño valor de los dos se selecciona como la nueva ventana de recepción del cliente que envía el paquete TCP ACK actual, siendo la ventana de recepción de la magnitud de recepción máxima actual del cliente que envía el TCP ACK actual (206); el valor de campo de ventana en la cabecera TCP del paquete TCP ACK se sustituye con la nueva ventana de recepción, y el paquete TCP ACK sustituido se envía al servidor para permitir al servidor controlar el tamaño de los paquetes TCP a enviarse en conformidad con la ventana de recepción (207).

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Metodo de manipulacion de paquetes y dispositivo de reenvfo CAMPO DE LA INVENCION
La presente invencion se refiere al campo tecnico de las comunicaciones y mas en particular, a un metodo de manipulacion de paquetes, un dispositivo de reenvfo y un sistema.
ANTECEDENTES DE LA INVENCION
En las redes actuales, el trafico de red esta constituido principalmente por un trafico de servicio de video. El 20 de octubre de 2010, Sandvine publico un informe de supervision sobre el trafico de red, en el que el trafico de servicio de video procedente de Netflix representaba un 20 por ciento de datos de flujo descendente desde las 8:00 horas de la tarde a las 10:00 horas de la tarde en toda America. Esta previsto que el trafico de servicio de video representara el 91 por ciento del trafico de red en 2014.
Los datos de video se transmiten en el formato de paquetes TCP por medio de un mecanismo de transmision de ventana deslizante, en particular en el proceso siguiente.
Etapa A: una conexion TCP se establece entre un cliente y un servidor, el servidor y el cliente transmiten entre sf sus magnitudes maximas de recepcion de datos.
Conviene senalar que antes de recibir un paquete TCP ACK (esto es, un mensaje de acuse de recibo de TCP con un bit indicador de ACK en la cabecera TCP del mensaje que se envfa a 1) desde el cliente, con la cantidad de datos que el servidor transmite en una sola transmision no sera superior a la magnitud de recepcion de datos maxima del cliente. Al mismo tiempo, el cliente incluye su tamano de recepcion de datos maxima actual en el paquete TCP ACK (esto es, segun se identifica en el campo de ventana de la cabecera TCP);
La ventana de envfo del servidor, esto es, la magnitud de datos que se transmiten en una sola transmision por el servidor, no es mayor que el mas pequeno entre el tamano de recepcion de datos maximo del cliente y una ventana de congestion cwnd.
Etapa B: el servidor envfa un primer paquete TCP;
El servidor recibe el primer paquete TCP ACK y establece la ventana de congestion cwnd a dos paquetes, esto es, el servidor puede enviar dos paquetes TCP al cliente en una sola transmision;
El servidor envfa dos paquetes TCP posteriores de forma continua, recibe un segundo y tercero paquetes TCP ACK y establece la ventana de congestion cwnd a 4, esto es, el servidor puede enviar cuatro paquetes TCP al cliente en una sola transmision;
Despues de que el servidor envfe posteriormente paquetes TCP y reciba todos los paquetes TCP ACK para esta conexion TCP desde el cliente, la ventana de congestion cwnd se aumenta en 1 cada vez que el servidor recibe un paquete TCP ACK, lo que se conoce como la fase SS (inicio lento), hasta que la ventana de congestion cwnd se aumente a un valor umbral de fase SS ssthresh, que es de 65536 bytes para la mayona de las puestas en practica de TCP.
Etapa C: Cuando la ventana de congestion cwnd se aumenta al umbral de fase SS y despues de que se confirme por el cliente con TCP ACK que todos los paquetes TCP enviados al cliente desde el servidor sean recibidos de forma satisfactoria, la ventana de congestion del servidor se aumenta en 1, lo que se conoce como CA (evitacion de congestion), hasta que la ventana de congestion cwnd alcance la magnitud de recepcion de datos maxima del cliente.
Etapa D: el cliente comprueba el numero de secuencia de un paquete TCP recibido, y cuando el numero de secuencia en la cabecera TCP del paquete TCP es mayor que la suma del numero de secuencia en la cabecera TCP de un paquete TCP anteriormente recibido por el cliente y el numero de bytes en la carga util (excluyendo la cabecera TCP) del paquete TCP anteriormente recibido, lo que indica la perdida de un paquete TCP, el cliente envfa paquetes TCP ACK repetidamente para demandar al servidor que retransmita el paquete TCP perdido.
Despues de notificar la perdida de paquetes, el servidor establece el umbral de fase de inicio lento ssthresh a la mitad de la ventana de congestion actual cwnd, restablece la ventana de congestion a 1 y reinicia la fase de inicio lento (SS).
Puede deducirse del proceso de manipulacion de paquetes TCP anterior, despues de que ocurra la perdida de paquetes TCP, que la ventana de congestion tCp cwnd se reduce con rapidez y tambien es necesario dedicar tiempo a gestionar la retransmision, lo que significa un descenso rapido en el rendimiento de TCP. Para las aplicaciones en tiempo real
5
10
15
20
25
30
35
40
45
50
55
60
65
sensibles a la latencia o rendimiento, tal como una comunicacion de v^deo, la experiencia del usuario se puede degradar en gran medida.
Para resolver este problema, la ventana de congestion cwnd puede inhibirse en el servidor, lo que hace que sea incapaz de ajustar el numero de bytes enviados por el servidor en funcion de las condiciones de congestion de la red con lo que se agrava todavfa mas la congestion de la red y se reduce la relacion de utilizacion de recursos de la red.
El documento EP 1169826 B1, publicado con fecha da a conocer un dispositivo de cadencia de acuse de recibo mejorado.
SUMARIO DE LA INVENCION
Para resolver los problemas tecnicos anteriores un metodo de manipulacion de paquetes, un dispositivo de reenvfo de paquetes y un sistema se dan a conocer en las formas de realizacion de esta invencion para resolver el problema de congestion de red mas agravado y la relacion de utilizacion de recursos de red de valor mas bajo debido a la ventana de congestion inhibida cwnd en el servidor. Las soluciones tecnicas son como sigue.
En conformidad con un aspecto de las formas de realizacion de esta invencion, un metodo de manipulacion de paquetes se da a conocer segun se estipula en la reivindicacion 1, que comprende:
recibir un paquete TCP ACK actualmente enviado por un cliente;
obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente difiere del valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, o cuando un paquete TCP requerido para una retransmision por el paquete TCP ACK actualmente recibido no se encuentra en un dispositivo de almacenamiento;
en donde la obtencion de la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende en particular:
obtener un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo descendente;
calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
obtener el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el primer umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual; o
en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende en particular:
obtener un ancho de banda BD de flujo descendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo ascendente;
calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
obtener el producto del resultado de la multiplicacion y un segundo umbral multiplicador preestablecido, y utilizar el producto del resultado de la multiplicacion y el segundo umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual;
los valores de la ventana de recepcion actual y de la ventana de recepcion recomendada se comparan, y el valor mas pequeno de los dos se selecciona como la nueva ventana de recepcion del cliente que envfa el paquete TCP ACK actual, siendo la ventana de recepcion la magnitud de recepcion maxima actual del cliente que envfa el tCp ACK actual;
el valor del campo de ventana en la cabecera TCP del paquete TCP ACK se sustituye con la nueva ventana de recepcion, y el paquete TCP ACK sustituido se envfa al servidor para permitir al servidor controlar la magnitud de los paquetes TCP a enviarse en conformidad con la ventana de recepcion.
En conformidad con otro aspecto de las formas de realizacion de esta invencion, se da a conocer un dispositivo de reenvfo segun la reivindicacion 7, que comprende:
5
10
15
20
25
30
35
40
45
50
55
60
65
un modulo de recepcion de paquete ACK (31) configurado para recibir un paquete TCP ACK actualmente enviado por un cliente;
un modulo de determinacion de valor de campo (32) configurado para determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP;
un modulo de adquisicion de ventana (35) configurado para obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo en las cabeceras TCP de los paquetes TCP ACK que se envfan por el cliente anteriormente en la misma conexion TCP, o cuando un paquete TCP requerido para una retransmision por el paquete TCP ACK actualmente recibido no se encuentra en el dispositivo de almacenamiento;
en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende en particular:
obtener un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo descendente;
calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
obtener el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el primer umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual; o
en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende, en particular:
obtener un ancho de banda BD de flujo descendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo ascendente;
calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
obtener el producto del resultado de la multiplicacion y un segundo umbral multiplicador preestablecido, y utilizar el producto del resultado de la multiplicacion y el segundo umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual;
un modulo de seleccion de ventana (36) configurado para comparar los valores de la ventana de recepcion actual y de la ventana de recepcion recomendada y seleccionar el mas pequeno valor de los dos como la nueva ventana de recepcion del cliente que envfa el paquete TCP ACK actual, siendo la ventana de recepcion la magnitud de recepcion maxima actual del cliente que envfa el paquete TCP ACK actual;
un modulo de envfo de paquete TCP ACK (37) configurado para sustituir el valor de campo de ventana en la cabecera TCP del paquete TCP ACK actual con la ventana de recepcion y para enviar el paquete TCP ACK sustituido.
En conformidad con otro aspecto de las formas de realizacion de esta invencion, se da a conocer un sistema de manipulacion de paquetes, que comprende: un cliente, un servidory un dispositivo de reenvfo, en donde los paquetes se transmiten entre el cliente y el servidor por intermedio del dispositivo de reenvfo; y el dispositivo de reenvfo se utiliza para recibir un paquete TCP aCk actualmente enviado por un cliente, para buscar en un dispositivo de almacenamiento un paquete TCP requerido para una retransmision por el paquete TCP ACK cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, y para rechazar el paquete TCP ACK y para transmitir el paquete TCP al cliente que envfa el paquete TCP ACK cuando el paquete TCP requerido para una retransmision se encuentra en el dispositivo de almacenamiento.
Con las soluciones tecnicas anteriores, despues de recibir un paquete TCP ACK, el dispositivo de reenvfo busca en un dispositivo de almacenamiento para un paquete TCP requerido para una retransmision por el paquete TCP ACK cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP; cuando el paquete TCP requerido para una retransmision por el paquete TCP ACK se encuentra en el dispositivo de almacenamiento, el dispositivo de
5
10
15
20
25
30
35
40
45
50
55
60
65
reenvfo transmite el paquete TCP al cliente. En comparacion con la tecnica anterior, en donde un paquete TCP, en cualquier momento, se transmite directamente desde un servidor al cliente por intermedio del dispositivo de reenvfo, puede economizarse el ancho de banda entre el servidor y el dispositivo de reenvfo y puede mejorarse la relacion de utilizacion del ancho de banda, con lo que se da lugar a una congestion de red reducida y a un aumento de la relacion de utilizacion de recursos de red.
BREVE DESCRIPCION DE LOS DIBUJOS
La Figura 1 es un diagrama de flujo de un metodo de manipulacion de paquetes dado a conocer en una forma de realizacion de esta invencion;
La Figura 2 es otro diagrama de flujo de un metodo de manipulacion de paquetes dado a conocer en una forma de realizacion de esta invencion;
La Figura 3 es un diagrama estructural esquematico de un dispositivo de reenvfo dado a conocer en una forma de realizacion de esta invencion;
La Figura 4 es un diagrama estructural esquematico de un modulo de determinacion de valor de campo en el dispositivo de reenvfo;
La Figura 5 es otro diagrama estructural esquematico del modulo de determinacion de valor de campo en el dispositivo de reenvfo;
La Figura 6 es tambien otro diagrama estructural esquematico del modulo de determinacion de valor de campo en el dispositivo de reenvfo;
La Figura 7 es otro diagrama estructural esquematico del dispositivo de reenvfo dado a conocer en una forma de realizacion de esta invencion;
La Figura 8 es un diagrama estructural esquematico de un modulo de adquisicion de ventana en el dispositivo de reenvfo;
La Figura 9 es otro diagrama estructural esquematico del modulo de adquisicion de ventana en el dispositivo de reenvfo;
La Figura 10 es otro diagrama estructural esquematico del modulo de adquisicion de ventana en el dispositivo de reenvfo.
DESCRIPCION DETALLADA DE LAS FORMAS DE REALIZACION
Para un mejor conocimiento de esta invencion por los expertos en esta tecnica, en el inicio, se describiran brevemente los paquetes TCP y los paquetes TCP ACK.
Una conexion TCP se establece entre un servidor y un cliente por intermedio de un dispositivo de reenvfo para transmitir paquetes. El servidor envfa un paquete TCP al cliente por intermedio de la conexion TCP. Un campo del "Numero de Secuencia" en la cabecera TCP del paquete TCP incluye el numero de secuencia del primer byte de la carga util de paquetes. Despues de recibir el paquete TCP, el cliente envfa un paquete TCP ACK al servidor por intermedio de la conexion TCP. El valor de campo de “Numero de Acuse de Recibo” en la cabecera TCP del paquete TCP ACK indica el valor del campo del "Numero de Secuencia" del siguiente paquete que esta previsto por el cliente recibir del servidor y asimismo, implica que todos los datos envidos desde el servidor que tengan valores del "Numero de Secuencia" menores que el valor del “Numero de Acuse de Recibo” del paquete TCP ACK han sido recibidos por el cliente.
A continuacion, se ilustrara un ejemplo particular. Se transmiten paquetes entre un servidor que tiene una direccion IP 192.168.0.199 y un cliente que tiene una direccion IP 192.168.0.8 por intermedio de un dispositivo de reenvfo. El primer paquete recibido por el dispositivo de reenvfo es un paquete TCP enviado por el servidor, en el que el valor del campo de "Numero de Secuencia" en la cabecera TCP es 14481, lo que indica que el numero de secuencia del primer byte de su carga util de paquetes es 14481.
Un segundo paquete es un paquete TCP enviado por el servidor, en el que el valor del campo de "Numero de Secuencia" en la cabecera TCP es 15929, lo que indica que el numero de secuencia del primer byte de su carga util de paquetes es 15529. El valor del campo de "Numero de Secuencia" en la cabecera TCP se calcula como sigue: anadir el valor del campo de "Numero de Secuencia" de un paquete TCP anteriormente enviado por el servidor por intermedio de esa conexion TCP al numero de bytes enviados en la carga util de paquete TCP anterior para obtener el valor del "Numero de Secuencia" en la cabecera TCP del paquete actual, esto es, 14481+1448= 15929.
Se supone que el valor del campo de "Numero de Secuencia" en la cabecera TCP del segundo paquete es 17377, lo que indica que el numero de secuencia del primer byte de su carga util de paquetes es 17377. Puesto que el valor del campo
5
10
15
20
25
30
35
40
45
50
55
60
65
de "Numero de Secuencia" en la cabecera TCP del paquete TCP anterior 14481 y el numero de bytes de su carga util de paquetes TCP es 1448, el valor del campo de "Numero de Secuencia" en la cabecera TCP del segundo paquete debe ser 15929 pero no 17377. Cuando ocurre lo que antecede, ello indica la perdida del segundo paquete (esto es, el paquete TCP que tiene el valor del "Numero de Secuencia" de 15929 en su cabecera TCP) enviado por el servidor.
Un tercer paquete es un paquete TCP ACK enviado por el cliente, en el que el valor de campo de "Numero de Secuencia" en la cabecera TCP es 15929, lo que indica que el valor de campo de "Numero de Secuencia" del siguiente paquete que esta previsto por este paquete desde el servidor es 15929. Este paquete TCP ACK enviado por el cliente representa que el primer paquete ha sido satisfactoriamente recibido por el cliente (esto es, se han recibido todos los datos de paquetes que tienen valores del campo de "Numero de Secuencia" menores que 15929 enviados desde el servidor). Esta es una respuesta del cliente que se envfa despues de la recepcion del primer paquete.
Se supone que el valor del campo de "Numero de Acuse de Recibo" en la cabecera TCP del tercer paquete es 14481, lo que indica que el valor del campo de "Numero de Secuencia" del paquete siguiente que se espera por este paquete desde el servidor es 14481. El valor del campo de "Numero de Secuencia" del segundo paquete enviado desde el servidor 15929 y el paquete TCP ACK enviado desde el cliente indica que el cliente espera recibir el primer paquete, dicho de otro modo, el primer paquete no ha sido satisfactoriamente recibido por el cliente. Cuando ocurre lo que antecede, ello indica la perdida del primer paquete enviado desde el servidor.
Una forma de realizacion
Se ha encontrado por los inventores como resultado de su invernadero que la retransmision de paquetes TCP es un aspecto que causa una mayor congestion de la red y una menor relacion de utilizacion de recursos de la red. En particular, cuando un paquete TCP se pierde durante la congestion de la red, el dispositivo de reenvfo envfa un paquete TCP ACK recibido desde el cliente al servidor y el servidor busca un paquete TCP a retransmitirse segun se demanda en el paquete TCP ACK y luego, envfa el paquete TCP al cliente por intermedio del dispositivo de reenvfo, lo que da lugar a una mayor congestion de la red y a una menor relacion de utilizacion de recursos de la red.
Con el fin de resolver el problema anterior, un metodo de manipulacion de paquetes se da a conocer en esta forma de realizacion de la invencion. El dispositivo de reenvfo almacena paquetes TCP recibidos en un dispositivo de almacenamiento - memoria intermedia. Cuando un paquete TCP se pierde durante la congestion de la red de flujo descendente, el dispositivo de reenvfo puede intentar obtener a partir de su memoria intermedia un paquete TCP a retransmitirse cuando se requiera en un paquete TCP ACK procedente del cliente. Si el paquete TCP requerido para retransmision se obtiene en la memoria intermedia, el dispositivo de reenvfo puede enviar directamente el paquete TCP requerido para retransmision, lo que puede economizar ancho de banda entre el servidor y el dispositivo de envfo y mejorar la relacion de utilizacion del ancho de banda y reducir la congestion de la red. Hay que referirse la Figura 1 para conocer el diagrama de flujo de este metodo, que comprende:
S101: recibir un paquete TCP ACK enviado desde un cliente.
El paquete TCP ACK se envfa desde un cliente a un dispositivo de reenvfo y luego, se envfa a un servidor por el dispositivo de reenvfo, lo que indica que un paquete TCP enviado desde el servidor ha sido recibido por el cliente. Cuando el valor de campo ACK en el campo de Bits de Control en la cabecera TCP del paquete recibido por el dispositivo de reenvfo se establece a 1, ello indica que el paquete recibido es un paquete TCP ACK.
S102: Determinar si el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente; si es asf, se ejecuta la etapa S103; de no ser asf, se realiza la etapa S106.
Puesto que un servidor puede establecer multiples conexiones TCP a multiples clientes, es decir, el dispositivo de reenvfo puede recibir al mismo tiempo paquetes TCP ACK enviados desde multiples clientes, la etapa S102 debe analizar los paquetes TCP ACK enviados en la misma conexion TCP por el mismo cliente. La conexion TCP entre el servidor y el cliente se identifica, de forma unica, por la direccion IP origen, la direccion IP de destino, el tipo de protocolo, el puerto origen de TCP y el puerto de destino de TCP en las cabeceras TCP de los paquetes enviados por el servidor y el cliente, y diferentes conexiones TCP tienen uno o mas valores de campo diferentes de entre los valores de campo de direccion IP origen, direccion IP de destino, tipo de protocolo, puerto origen de TCP y puerto de destino TCP. De este modo, analizando el valor del campo de la direccion IP origen, direccion IP destino, tipo de protocolo, puerto origen de TCP y puerto de destino de TCP, en la cabecera TCP del paquete, puede reconocerse si los paquetes TCP ACK se envfan desde el mismo cliente a la misma conexion TCP.
Cuando se determina en la etapa S102 si el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo de la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente, el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente pueden determinarse en este momento operativo.
5
10
15
20
25
30
35
40
45
50
55
60
65
El dispositivo de reenvfo puede almacenar, ademas, una lista de valores de campo del Numero de Acuse de Recibo en las cabeceras TCP de paquetes TCP ACK recibidos en cualquier momento en que se envfen por el cliente a la misma conexion TCP y determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado y los valores de campo del Numero de Acuse de Recibo almacenados. Cuando el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo almacenado; de no ser asf, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
Por supuesto, el dispositivo de reenvfo puede almacenar, ademas, los paquetes TCP ACK recibidos cada vez que se envfan por el cliente en la misma conexion TCP, analizar los paquetes TcP ACK almacenados y el paquete TCP ACK actualmente recibido para adquirir sus valores de campo del Numero de Acuse de Recibo respectivamente para tomar la decision. Cuando el valor del campo del Numero de Acuse de Recibo en la cabecera tCp del paquete TCP ACK actualmente enviado es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo almacenado. De no ser asf, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
S103: determinar si un paquete TCP a retransmitirse segun se requiere por el paquete TCP ACK puede encontrarse en la memoria intermedia; si es asf, se realiza la etapa S104; de no ser asf, se realiza la etapa S105. En donde la memoria intermedia esta integrada en el dispositivo de reenvfo o esta unida exteriormente al dispositivo de reenvfo.
S104: rechazar el paquete TCP ACK procedente del cliente, y enviar el paquete TCP requerido para retransmision, es decir, el paquete TCP encontrado, al cliente.
S105: enviar un paquete TCP ACK al servidor y enviar por el servidor el paquete TCP a transmitirse como se requiere por el paquete tCp ACK al cliente por intermedio del dispositivo de reenvfo.
A continuacion, la presente invencion se ilustrara con una realizacion ejemplo en la que se transmiten paquetes entre un servidor que tiene una direccion IP 192.168.0.198 y un cliente que tiene una direccion IP 192.168.0.9 por intermedio de un dispositivo de reenvfo, en donde el tamano de los paquetes enviados por el servidor es de 1400 bytes.
El primer paquete recibido por el dispositivo de reenvfo es un paquete TCP enviado por el servidor, en el que el valor del campo de "Numero de Secuencia" en la cabecera TCP es 14000, lo que indica el numero de secuencia del primer byte de su carga util de paquetes es 14000.
El segundo paquete es un paquete TCP enviado por el servidor, en el que el valor del campo de "Numero de Secuencia" en la cabecera TCP es 15400, lo que indica que el numero de secuencia del primer byte de su carga util de paquetes es 15400.
El tercer paquete es un paquete TCP ACK enviado por el cliente, en el que el valor del campo del “Numero de Acuse de Recibo” en la cabecera TCP es 15400, lo que indica que el valor del campo del "Numero de Secuencia" del paquete siguiente a enviarse que se espera por este paquete es 15400. El paquete TCP ACK enviado por el cliente indica que el primer paquete ha sido recibido satisfactoriamente por el cliente. Esta es una respuesta que se envfa despues de que se haya recibido el primer paquete.
El cuarto paquete es un paquete TCP ACK enviado por el cliente, en el que el valor del campo de “Numero de Acuse de Recibo” en la cabecera TCP es 15400, lo que indica que el valor del campo de "Numero de Secuencia" del siguiente paquete a enviarse como esta previsto por este paquete es tambien 15400, es decir, el cliente deja de recibir el segundo paquete.
El dispositivo de reenvfo compara el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del cuarto paquete con el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del tercer paquete, y determina que los valores de campo del Numero de Acuse de Recibo en las cabeceras TCP del tercer y cuarto paquetes son los mismos, lo que indica que el cliente deja de recibir el segundo paquete enviado por el servidor de forma satisfactoria. El dispositivo de reenvfo intenta obtener, en su memoria intermedia de trabajo, un paquete con el valor del campo de "Numero de Secuencia" de 15400, esto es, el segundo paquete a retransmitirse segun se requiere por el cuarto paquete. Si el dispositivo de reenvfo encuentra el segundo paquete en su memoria intermedia de trabajo, el dispositivo de reenvfo envfa directamente el segundo paquete contenido al cliente. Si el segundo paquete se pierde cuando se envfa al dispositivo de reenvfo desde el servidor al dispositivo de reenvfo, el dispositivo de reenvfo no puede encontrar el segundo paquete en su memoria intermedia de trabajo, en cuyo caso, el dispositivo de reenvfo envfa el cuarto paquete al servidor
5
10
15
20
25
30
35
40
45
50
55
60
65
y el servidor envfa el paquete a retransmitirse segun se requiere por el cuarto paquete, en el que el valor del campo de "Numero de Secuencia" es 15400, esto es, el segundo paquete al cliente por intermedio del dispositivo de reenvfo.
Con la solucion tecnica anterior, despues de recibir un paquete TCP ACK, el dispositivo de reenvfo determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, y entonces, el dispositivo de reenvfo busca en un dispositivo de almacenamiento un paquete TCP a retransmitirse segun se requiere por el paquete TCP ACK; cuando el paquete TCP a retransmitirse segun se requiere por el paquete TCP ACK se encuentra en el dispositivo de almacenamiento, el dispositivo de reenvfo envfa el paquete TCP al cliente. En comparacion con la tecnica anterior, en donde un paquete TCP, en cualquier momento, se transmite directamente desde un servidor al cliente por intermedio del dispositivo de reenvfo se puede economizar ancho de banda entre el servidor y el dispositivo de reenvfo y se puede mejorar la relacion de utilizacion del ancho de banda, con lo que se obtiene una reduccion de la congestion de la red y se aumenta la relacion de utilizacion de recursos de la red.
Otra forma de realizacion
Otro aspecto de los metodos de manipulacion de paquetes existentes que pueden causar una mayor congestion de la red y disminuir la relacion de utilizacion de recursos es: la ventana de congestion cwnd se inhibe por el servidor, y el tamano de los paquetes TCP enviados no se asigna en conformidad con la ventana de recepcion del cliente. Se ha reconocido por los inventores utilizando sus propias experiencias que cuando la ventana de congestion cwnd es inhibida en el servidor, en conformidad con el metodo en el que la ventana de recepcion controla el tamano de los paquetes TCP que se envfan por el servidor, se reduce el tamano de los paquetes TCP enviados en el momento de congestion de la red, lo que puede reducir la congestion de la red y mejorar la relacion de utilizacion de recursos de la red.
Con el fin de conseguir el objeto anterior, haciendo referencia a la Figura 2, otro diagrama de flujo del metodo de manipulacion de paquetes dado a conocer en una forma de realizacion de esta invencion comprende:
S201: Recibir un paquete TCP ACK enviado por un cliente.
El paquete TCP ACK se envfa desde un cliente a un dispositivo de reenvfo, y luego se envfa a un servidor por el dispositivo de reenvfo, indicando que un paquete TCP enviado desde el servidor ha sido recibido por el cliente. Cuando el valor del campo ACK en el campo de Bits de Control en la cabecera TCP del paquete recibido por el dispositivo de reenvfo se establece a 1, ello indica que el paquete recibido es un paquete TCP ACK.
S202: Determinar si el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es un valor de campo repetitivo; si es asf, se realiza la etapa S203 y de no ser asf, se realiza la etapa S205.
Puesto que un servidor puede establecer multiples conexiones TCP a multiples clientes, es decir, el dispositivo de reenvfo puede recibir al mismo tiempo paquetes TCP ACK enviados desde multiples clientes, la etapa S202 debe analizar los paquetes TCP ACK enviados en la misma conexion TCP por el mismo cliente. Las conexiones TCP entre el servidor y el cliente se identifican, de forma unica, por la direccion IP origen, la direccion IP destino, el tipo de protocolo, el puerto origen TCP y el puerto destino TCP en las cabeceras TCP de los paquetes enviados por el servidor y el cliente, y diferentes conexiones TCP tienen uno o mas valores de campo diferentes de la direccion IP origen, la direccion iP destino, el tipo de protocolo, el puerto origen TCP y el puerto destino TCP en sus valores de campos respectivos. De este modo, analizando el valor del campo de la direccion IP origen, la direccion IP destino, el tipo de protocolo, el puerto origen TCP y el puerto destino TCP en las cabeceras TCP del paquete, puede reconocerse si los paquetes TCP ACK se envfan desde el mismo cliente por intermedio de la misma conexion TCP.
Cuando se determina en la etapa S202 que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente, el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente pueden determinarse segun lo que antecede.
El dispositivo de reenvfo puede almacenar, ademas, una lista de valores de campo del Numero de Acuse de Recibo en las cabeceras TCP de los paquetes TCP ACK recibidos en cualquier momento que se envfen por el cliente a la misma conexion TCP, y determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado y los valores de campo del Numero de Acuse de Recibo dados. Cuando el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo almacenado; de no ser asf, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
5
10
15
20
25
30
35
40
45
50
55
60
65
Por supuesto, el dispositivo de reenvm puede almacenar tambien los paquetes TCP ACK recibidos cada vez que se envfan por el cliente en la misma conexion TCP, analizar los paquetes TCP ACK almacenados y el paquete TCP ACK actualmente recibido para adquirir sus valores de campo del Numero de Acuse de Recibo respectivamente para tomar la decision. Cuando el valor del campo del Numero de Acuse de Recibo en la cabecera tCp del paquete TCP ACK
actualmente enviado es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo
almacenados, se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado es igual al valor del campo del Numero de Acuse de Recibo almacenado. De no ser asf,
se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK
actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
S203: Determinar si un paquete TCP a retransmitirse segun se requiere por el paquete TCP ACK puede encontrarse en la memoria intermedia de trabajo; si es asf, se realiza la etapa S204, de no ser asf, se realiza la etapa S205. En donde la memoria intermedia esta integrada en el dispositivo de reenvfo o esta exteriormente asociada al dispositivo de reenvm.
S204: Desechar el paquete TCP ACK y enviar el paquete TCP requerido para la retransmision, esto es, el paquete TCP encontrado, al cliente.
S205: Obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente, en donde
el valor de campo de ventana en la cabecera TCP de un paquete TCP ACK es la ventana de recepcion. Por lo tanto, despues de recibir el paquete TCP ACK, el paquete TCP ACK se analiza para obtener el valor de campo de ventana en la cabecera TCP del paquete TCP ACK, que es la ventana de recepcion actual del cliente desde donde se envfa el paquete TCP ACK.
La ventana de recepcion recomendada del cliente puede adquirirse mediante tres maneras operativas. Estas tres maneras se describiran a continuacion.
Primera manera: establecer la ventana de recepcion recomendada en conformidad con un umbral de ventana preestablecido, en particular estableciendo la ventana de recepcion recomendada a 0, o reduciendo la ventana de recepcion actual, a modo de ejemplo, multiplicando el valor de la ventana de recepcion actual con un coeficiente predeterminado menor que 1 y utilizando su producto como la ventana de recepcion recomendada.
Segunda manera: cuando el paquete TCP ACK es un paquete de flujo descendente, esto es, el paquete se transmite desde el servidor al cliente, se obtiene un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta de los paquetes, y un resultado del calculo se obtiene como la ventana recomendada del cliente aplicando la ecuacion siguiente: ventana de recepcion R = BD*T*TH, en donde R se expresa en bytes, BD en Mbps y T es una longitud de tiempo en ms (milisegundos) entre una temporizacion en la que un paquete TCP alcanza al cliente y una temporizacion en la que el paquete TCP ACK que responde al paquete TCP alcanza el servidor, lo que puede obtenerse consultando el campo de marca temporal en la cabecera TCP del paquete TCP. TH es un primer umbral multiplicador preestablecido, que difiere dependiendo de las diferentes situaciones. En particular,
se supone que BD = 2 Mbps, T = 500 ms y TH= 120,
con lo que se tiene R = 2*106*500*10-3*120/8 = 1.5*107 bytes.
El ancho de banda BD de flujo ascendente es un ancho de banda de lmea de flujo ascendente o un ancho de banda de sesion de flujo ascendente o un ancho de banda de paquete de flujo ascendente ajustado, en donde, el ancho de banda de lmea de flujo ascendente puede ser el ancho de banda de acceso del cliente, tal como un ancho de banda de 2 Mbps proporcionado para el cliente por un operador de comunicaciones. El ancho de banda de sesion de flujo ascendente puede ser un trafico multimedia de video o una tasa binaria constante, tal como la tasa binaria constante de una senal de video que se vigila actualmente por un usuario.
El ancho de banda de paquete de flujo ascendente ajustado es un ancho de banda de paquete de flujo ascendente obtenido reajustando los anchos de banda de multiples paquetes de flujo ascendente transmitidos en una sesion de flujo ascendente en conformidad con algunos criterios. A modo de ejemplo, existen tres paquetes de flujo ascendente transmitidos en una sesion de flujo ascendente, el paquete de flujo ascendente A con un ancho de banda de 2 Mbps, el paquete B de flujo ascendente con un ancho de banda de 3 Mbps y el paquete C de flujo ascendente con un ancho de banda de 4 Mbps. Reajustando los anchos de banda de dichos paquetes en conformidad con el principio de distribucion uniforme del ancho de banda, el ancho de banda de estos tres paquetes es 3 Mbps. De este modo, el ancho de banda BD de flujo ascendente es 3 Mbps cuando se calcula una ventana recomendada del cliente para recibir un paquete de flujo ascendente A. Por supuesto, el ancho de banda del paquete de flujo ascendente puede aumentarse en un valor, tal como 1 Mbps sobre la base de su ancho de banda original.
Tercera manera: cuando el paquete TCP ACK es un paquete de flujo ascendente, esto es, el paquete se transmite desde el servidor al cliente, un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta del paquete se obtiene de
5
10
15
20
25
30
35
40
45
50
55
60
65
esta manera y un resultado del calculo se obtiene como la ventana recomendada del cliente aplicando la ecuacion siguiente: ventana de recepcion R = BD*T*TH, en donde R se expresa en bytes, BD en Mbps y T es una longitud de tiempo en ms entre una temporizacion en la que un paquete TCP alcanza al cliente y una temporizacion en la que el paquete TCP ACK alcanza el servidor, lo que puede obtenerse consultando el campo de marca temporal en la cabecera TCP del paquete TCP. TH es un primer umbral multiplicador preestablecido, que difiere dependiendo de las diferentes situaciones. En particular,
se supone que BD = 4 Mbps, T = 400 ms y TH= 100, con lo que se tiene R = 4*106*400*10-3*100/8 = 2*107 bytes.
El ancho de banda BD de flujo descendente es un ancho de banda de lmea de flujo descendente o un ancho de banda de sesion de flujo descendente o un ancho de banda de paquete de flujo descendente ajustado, en donde el ancho de banda de lmea de flujo descendente puede ser el ancho de banda de acceso del cliente, tal como un ancho de banda de 6 Mbps proporcionado para el cliente por un operador de comunicaciones. El ancho de banda de la sesion de flujo descendente puede ser un trafico multimedia de video o una tasa binaria constante, tal como la tasa binaria constante de una senal de video que se vigila actualmente por un usuario.
El ancho de banda de paquete de flujo descendente ajustado es un ancho de banda de paquete de flujo descendente obtenido reajustando los anchos de banda de multiples paquetes de flujo descendente transmitidos en una sesion de flujo descendente en conformidad con algunos criterios. A modo de ejemplo, existen tres paquetes de flujo descendente transmitidos en una sesion de flujo descendente, el paquete de flujo descendente A con un ancho de banda de 2 Mbps, el paquete B de flujo descendente con un ancho de banda de 3 Mbps y el paquete C de flujo descendente con un ancho de banda de 4 Mbps. Reajustando los anchos de banda de dichos paquetes en conformidad con el principio de distribucion uniforme del ancho de banda, el ancho de banda de estos tres paquetes de flujo descendente es 3 Mbps. De este modo, el ancho de banda BD de flujo descendente es 3 Mbps cuando se calcula una ventana recomendada del cliente para recibir un paquete de flujo descendente A. Por supuesto, el ancho de banda del paquete de flujo descendente puede aumentarse en un valor, tal como 1 Mbps sobre la base de su ancho de banda original.
S206: Seleccionar un valor mas pequeno de entre la ventana de recepcion actual y la ventana de recepcion recomendada como la nueva ventana de recepcion del cliente, en donde la ventana de recepcion es el tamano de recepcion maximo actual del cliente.
S207: Sustituir el valor de campo de ventana en la cabecera TCP del paquete TCP ACK con la nueva ventana de recepcion, y enviar el paquete TCP ACK sustituido al servidor. El servidor establece su ventana de congestion cwnd actual para la ventana de recepcion y controla el tamano de los paquetes TCP a enviase en conformidad con la ventana de congestion actual.
Conviene senalar que el valor del campo de suma de control del paquete TCP ACK es una suma de control calculada sobre la base de todos los campos en el paquete TCP ACK. De este modo, despues de sustituir el valor del campo de ventana, es necesario recalcular y sustituir el valor del campo de suma de control original para garantizar la transmision efectiva del paquete TCP ACK.
Con la solucion tecnica anterior, cuando el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere del valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, o cuando un paquete TCP requerido para retransmision por el paquete TCP ACK se encuentra en el dispositivo de almacenamiento, se obtienen la ventana de recepcion actual la ventana de recepcion recomendada del cliente; una de ellas que tenga un tamano mas pequeno se selecciona como la nueva ventana de recepcion del cliente, el valor del campo de ventana en el paquete TCP ACK se sustituye con la nueva ventana de recepcion y el paquete TCP ACK sustituido se envfa al servidor. El servidor recibe el paquete TCP ACK sustituido y utiliza la ventana de recepcion en el paquete TCP ACK como el numero maximo de bytes que pueden transmitirse en un paquete TCP bajo el control del servidor. En comparacion con la tecnica anterior, la forma de realizacion de esta invencion reduce el numero maximo de bytes en un paquete TCP que se envfa por el servidor disminuye la magnitud de la ventana de recepcion del cliente, con lo que se da lugar a una reduccion de la congestion de la red y se aumenta la relacion de utilizacion de recursos de la red.
Las formas de realizacion en la presente especificacion se describen de una manera progresiva. Para las mismas partes o similares de varias formas de realizacion, puede hacerse entre las formas de realizacion. Cada forma de realizacion se centra en la diferencia con respecto a otras formas de realizacion. A partir de la descripcion de las formas de realizacion de los metodos anteriores, los expertos en esta tecnica pueden entender claramente que la invencion puede ponerse en practica de una manera de software junto con una plataforma de hardware de uso general esencial. Por supuesto, esta invencion puede ponerse en practica en hardware, pero lo anterior se prefiere en la mayona de los casos. Sobre la base de dicho entendimiento, las soluciones tecnicas de la invencion o una parte de ellas, que contribuyen a la tecnica anterior, pueden materializarse esencialmente en la forma de un producto informatico, que puede almacenarse en un soporte de memorizacion, incluyendo varias instrucciones para hacer que un dispositivo de reenvfo informatico (que puede ser un ordenador personal, un servidor, un dispositivo de reenvfo de red, etc.) para realizar la totalidad o una parte
5
10
15
20
25
30
35
40
45
50
55
60
65
de las etapas en los metodos en conformidad con las respectivas formas de realizacion de la invencion. El soporte de memorizacion anteriormente descrito comprende una memoria ROM, una memoria RAM, un disco magnetico, un disco optico y otros soportes que pueden memorizar un codigo de programa.
En correspondencia con las formas de realizacion de los metodos anteriores, un dispositivo de reenvfo se da a conocer, ademas, en una forma de realizacion de esta invencion, cuya estructura se ilustra en la Figura 3, que comprende: un modulo de recepcion de paquetes ACK 31, un modulo de determinacion de valor de campo 32, un modulo de adquisicion de paquete TCP 33 y un modulo de envfo de paquete TCP 34, en donde,
el modulo de recepcion de paquete ACK 31 se utiliza para recibir un paquete TCP ACK actualmente enviado por un cliente;
El modulo de determinacion de valor de campo 32 se utiliza para determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK que se envfa con anterioridad en la misma conexion TCP.
El modulo de busqueda de paquete TCP 33 se utiliza para buscar en un dispositivo de almacenamiento un paquete TCP requerido para retransmision por el paquete TCP ACK cuando el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK que se envio anteriormente por el cliente en la misma conexion TCP. El dispositivo de almacenamiento es una memoria intermedia. La memoria intermedia puede incorporase en el dispositivo de reenvfo o puede asociarse exteriormente al dispositivo de reenvfo.
El modulo de envfo de paquete TCP 34 se utiliza para rechazar un paquete TCP ACK y enviar el paquete TCP requerido para retransmision al cliente que envfa el paquete TCP ACK cuando el paquete TCP requerido para retransmision por el paquete TCP ACK se encuentra en el dispositivo de reenvfo.
El modulo de determinacion de valor de campo anterior 32 puede tomar una decision operativa sobre la base del valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK que se envio anteriormente por el cliente. De este modo, el modulo de determinacion de valor de campo anterior 32 comprende: una primera unidad de adquisicion de valor de campo actual 321, una unidad de adquisicion de valor de campo anterior 322 y una primera unidad de determinacion 323. Haciendo referencia a la Figura 4 en la que se ilustra un diagrama estructural esquematico, en donde:
La primera unidad de adquisicion de valor de campo actual 321 se utiliza para analizar el paquete TCP ACK actual y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual.
La unidad de adquisicion de valor de campo anterior 322 se utiliza para analizar un paquete TCP ACK anteriormente enviado por el cliente que envfa el paquete TCP ACK actual, en la misma conexion TCP, y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo anterior.
La primera unidad de determinacion 323 se utiliza para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual al valor del campo del Numero de Acuse de Recibo anterior.
El modulo de determinacion de valor de campo 32 puede memorizar, ademas, el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de cada paquete TCP ACK recibido que se envfa por el cliente en la misma conexion TCP, y para determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado y los valores de campo del Numero de Acuse de Recibo anteriormente memorizados. Su estructura se ilustra en la Figura 5 que comprende: una unidad de almacenamiento de campos 324, una segunda unidad de adquisicion de valor de campo actual 325 y una segunda unidad de determinacion 326, en donde:
La unidad de almacenamiento de campo 324 se utiliza para memorizar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de cada paquete TCP ACK recibido que se envfa por el cliente en la misma conexion TCP.
La segunda unidad de adquisicion de valor de campo actual 325 se utiliza para analizar el paquete TCP ACK y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual.
La segunda unidad de determinacion 326 se utiliza para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado. Cuando el valor del campo del Numero de Acuse de Recibo actual es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del
5
10
15
20
25
30
35
40
45
50
55
60
65
campo del Numero de Acuse de Recibo almacenado; de no ser as^ se determina que el valor del campo del Numero de Acuse de Recibo actual difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
Por supuesto, el dispositivo de reenvfo puede almacenar, ademas, cada paquete TCP ACK recibido que se envfa por el cliente en la misma conexion TCP; analizar los paquetes TCP ACK almacenados y el paquete TCP ACK actualmente recibido, respectivamente, para adquirir sus valores de campo del Numero de Acuse de Recibo para su determinacion. La estructura del modulo de determinacion de valor de campo se ilustra en la Figura 6, que comprende: una unidad de almacenamiento de paquetes 327, una tercera unidad de adquisicion del valor del campo actual 328, una unidad de adquisicion de campo almacenado 329 y una tercera unidad de determinacion 330, en donde:
La unidad de almacenamiento de paquetes 327 se utiliza para almacenar cada paquete TCP ACK recibido que se envfa por el cliente en la misma conexion tCp.
La tercera unidad de adquisicion de valor de campo actual 328 se utiliza para analizar el paquete TCP ACK actual, y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual.
La unidad de adquisicion de campo almacenado 329 se utiliza para analizar los paquetes TCP ACK almacenados para obtener los valores de campo del Numero de Acuse de Recibo en las cabeceras tCp de los paquetes TCP ACK como los valores de campo del Numero de Acuse de Recibo almacenados.
La tercera unidad de determinacion 330 se utiliza para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado. Cuando el valor del campo del Numero de Acuse de Recibo actual es igual a por lo menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado; de no ser asf, se determina que el valor del campo del Numero de Acuse de Recibo actual difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
Otro aspecto de los metodos de manipulacion de paquetes existentes que pueden causar una mayor congestion de la red y reducir la relacion de utilizacion de recursos de la red es: la ventana de congestion cwnd se inhibe por el servidor y la magnitud de los paquetes TCP enviados no se asigna en conformidad con la ventana de recepcion del cliente. Se ha reconocido por los inventores gracias a sus experiencias que cuando la ventana de congestion cwnd se inhibe en el servidor, en conformidad con el metodo en el que la ventana de recepcion controla la magnitud de los paquetes TCP que se envfan por el servidor, se reduce la magnitud de los paquetes TCP enviados en el momento de congestion de la red, lo que puede reducir la congestion de la red y mejorar la relacion de utilizacion de recursos de la red.
Para poder conseguir el objetivo anterior, un dispositivo de reenvfo se da a conocer en una forma de realizacion de esta invencion, sobre la base de la ilustracion de la Figura 3, que comprende, ademas: un modulo de adquisicion de ventana 35, un modulo de seleccion de ventana 36 y un modulo de envfo de paquete TCP ACK 37, segun se ilustra en la Figura 7, en donde:
El modulo de adquisicion ventana 35 se utiliza para obtener la ventana de recepcion actual y una ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera tCp del paquete TCP ACK actualmente enviado difiere de los valores de campo del Numero de Acuse de Recibo en las cabeceras TCP de los paquetes TCP ACK que se enviaron anteriormente por el cliente en la misma conexion TCP, o cuando un paquete tCp requerido para retransmision por el paquete TCP ACK actualmente recibido no se encuentra en el dispositivo de almacenamiento.
El modulo de seleccion de ventana 36 se utiliza para seleccionar una mas pequena de entre la ventana de recepcion actual y la ventana de recepcion recomendada como la nueva ventana de recepcion del cliente que envfa el paquete TCP ACK actual, en donde la ventana de recepcion indica la magnitud de recepcion maxima actual del cliente que envfa el paquete TCP ACK actual.
El modulo de envfo de paquete TCP ACK 37 se utiliza para sustituir el valor del campo de ventana en la cabecera TCP del paquete TCP ACK actual con la ventana de recepcion, y para enviar el paquete TCP ACK sustituido al servidor. El servidor controla la magnitud de los paquetes TCP a enviarse sobre la base de la ventana de recepcion.
Conviene senalar que el valor del campo de la suma de control del paquete TCP ACK es una suma de control calculada sobre la base de todos los campos en el paquete TCP ACK. De este modo, despues de sustituir el valor del campo de ventana, es necesario recalcular y sustituir el valor de campo de suma de control original para garantizar la transmision efectiva del paquete TCP ACK.
Haciendo referencia a la Figura 8 para conocer la estructura del modulo de adquisicion de ventana 35, que comprende una unidad de analisis 351 y una unidad de adquisicion de ventana 352, en donde:
La unidad de analisis 351 se utiliza para analizar el paquete TCP ACK recibido actualmente enviado por el cliente;
5
10
15
20
25
30
35
40
45
50
55
60
65
La unidad de adquisicion de ventana 352 se utiliza para obtener el valor del campo de ventana en la cabecera TCP del paquete TCP ACK, en donde el valor del campo de ventana es la ventana de recepcion actual del cliente que envfa el paquete TCP ACK actual.
Cuando el paquete TCP ACK actual es un paquete de flujo descendente, con el fin de obtener la ventana de recepcion recomendada del cliente, sobre la base de la ilustracion de la Figura 9, el modulo de adquisicion de ventana 35 comprende, ademas: una primera unidad de adquisicion de parametros 353, una primera unidad de calculo 354 y una primera unidad de adquisicion 355, segun se ilustra en la Figura 10, en donde:
La primera unidad de adquisicion de parametros 353 se utiliza para obtener un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta de paquetes cuando el paquete TCP ACK actual es un paquete de flujo descendente, en donde el ancho de banda BD de flujo ascendente es un ancho de banda de lmea de flujo ascendente o un ancho de banda de sesion de flujo ascendente o un ancho de banda de paquete de flujo ascendente ajustado.
La primera unidad de calculo 354 se utiliza para calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta de paquetes para obtener un resultado de la multiplicacion.
La primera unidad de adquisicion 355 se utiliza para obtener el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido, y para utilizar el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual.
Cuando el paquete TCP ACK actual es un paquete de flujo ascendente, con el fin de obtener la ventana de recepcion recomendada del cliente, sobre la base de la ilustracion de la Figura 9, el modulo de adquisicion de ventana 35 comprende, ademas: una segunda unidad de adquisicion de parametros 356, una segunda unidad de calculo 357 y una segunda unidad de adquisicion 358, segun se ilustra en la Figura 10, en donde:
La segunda unidad de adquisicion de parametros 356 se utiliza para obtener un ancho de banda BD de flujo descendente y un tiempo T de ida y vuelta de paquetes cuando el paquete TCP ACK es un paquete de flujo ascendente, en donde el ancho de banda BD de flujo descendente es un ancho de banda de lmea de flujo descendente o un ancho de banda de sesion de flujo descendente o un ancho de banda de paquete de flujo descendente ajustado.
La segunda unidad de calculo 357 se utiliza para calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta de paquetes para obtener un resultado de la multiplicacion.
La segunda unidad de adquisicion 358 se utiliza para obtener el producto del resultado de la multiplicacion y un segundo umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual.
En correspondencia con la forma de realizacion del aparato anterior, un sistema de manipulacion de paquetes se da a conocer, ademas, en una forma de realizacion de esta invencion, que comprende un cliente, un servidor y un dispositivo de reenvfo, siendo los paquetes transmitidos entre el cliente y el servidor por intermedio del dispositivo de reenvfo, en donde el dispositivo de reenvfo se utiliza para recibir un paquete TCP aCk actualmente enviado por un cliente, para obtener un paquete TCP requerido para retransmision por el paquete TCP ACK cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, y para rechazar el paquete TCP ACK y enviar el paquete TCP al cliente desde el que el paquete TCP ACK fue enviado cuando el paquete TCP se requerfa para la retransmision por el paquete TCP ACK que se encuentra en el dispositivo de almacenamiento.
El dispositivo de reenvfo se utiliza, ademas, cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere del valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP o cuando un paquete TCP requerido para retransmision por el paquete TCP aCk no se encuentra en el dispositivo de almacenamiento, obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente; seleccionar la mas pequena entre la ventana de recepcion actual y la ventana de recepcion recomendada como la nueva ventana de recepcion del cliente, en donde la ventana de recepcion es la magnitud de recepcion maxima actual del cliente que envfa el paquete TCP ACK actual; sustituir el valor del campo de ventana en el paquete TCP ACK con el valor del campo de ventana en el paquete TCP ACK y enviar el paquete TCP ACK sustituido al servidor. El servidor controla la magnitud de los paquetes tCp a enviarse en conformidad con la ventana de recepcion.
La forma de realizacion del aparato anterior y la forma de realizacion del sistema pueden adoptar el metodo de manipulacion de paquetes dado a conocer en la forma de realizacion del metodo anterior para resolver el problema en la tecnica anterior, es decir, inhibir la ventana de congestion cwnd en el servidor puede hacer imposible ajustar el numero
5
10
15
20
25
30
35
de bytes que el servidor puede enviar en funcion de las situaciones de congestion de la red, lo que puede dar lugar a una mayor congestion de la red y a una reduccion de la relacion de utilizacion de recursos de la red.
En cuanto a la forma de realizacion del aparato, puesto que practicamente corresponde a la forma de realizacion del metodo, para sus partes relacionadas, puede hacerse referencia a la forma de realizacion del metodo. La forma de realizacion del aparato anteriormente descrita es simplemente ilustrativa, por cuanto que los elementos que se describen como partes separadas pueden estar o no pueden estar ffsicamente separados entre sf y los que se ilustran de forma individual pueden ser, o pueden no ser, elementos ffsicos, que pueden situarse en una posicion o pueden distribuirse en multiples unidades de red. Algunos o la totalidad de sus modulos pueden seleccionarse como requeridos para realizar el objeto de las formas de realizacion de esta invencion como puede entenderse y ponerse en practica por los expertos en esta tecnica sin necesidad de esfuerzos creativos.
A partir de las formas de realizacion dadas a conocer en esta invencion, puede entenderse que el aparato y metodo aqrn dados a conocer, sin desviarse del esprntu y del alcance de esta invencion, pueden realizarse en otras maneras operativas. Las presentes formas de realizacion son simplemente ejemplos ilustrativos, pero no establecen ninguna limitacion, y los contenidos particulares aqrn dados a conocer no deben considerarse como limitacion a la presente invencion. A modo de ejemplo, la division de unidades o de sub-unidades es simplemente una division funcional logica y otras maneras de division son tambien posibles en las puestas en practica de la invencion, tales como unidades o sub- unidades multiples pueden combinarse juntas. Ademas, multiples elementos o componentes pueden combinarse en otro sistema o integrarse en dicho sistema o algunas caracterfsticas pueden omitirse o no realizarse.
La anterior descripcion es simplemente formas de realizacion particulares de esta invencion. Conviene senalar que numerosas variaciones y modificaciones pueden realizarse por expertos en esta tecnica sin desviarse por ello del alcance de proteccion de las reivindicaciones adjuntas.

Claims (12)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Un metodo de manipulacion de paquetes utilizado en un dispositivo de reenvfo, que comprende: recibir un paquete TCP ACK actualmente enviado por un cliente (201);
    obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente difiere del valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP, o cuando un paquete TCP requerido para una retransmision por el paquete TCP ACK actualmente recibido no se encuentra en un dispositivo de almacenamiento (205),
    en donde la obtencion de la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende: establecer la ventana de recepcion recomendada en conformidad con un umbral de ventana preestablecido; o
    en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende:
    obtener una ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo descendente;
    calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
    obtener el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el primer umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual; o
    en donde la obtencion de la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende:
    obtener un ancho de banda BD de flujo descendente y un tiempo de ida y vuelta T cuando el paquete TCP ACK es un paquete de flujo ascendente;
    calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
    obtener el producto del resultado de la multiplicacion y un segundo umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el segundo umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual;
    los valores de la ventana de recepcion actual y de la ventana de recepcion recomendada son comparados y el mas pequeno valor de los dos se selecciona como la nueva ventana de recepcion del cliente que envfa el paquete TCP ACK actual, siendo la ventana de recepcion de la magnitud de recepcion maxima actual del cliente que envfa el TCP ACK actual (206);
    el valor de campo de ventana en la cabecera TCP del paquete TCP ACK se sustituye con la nueva ventana de recepcion, y el paquete TCP ACK sustituido se envfa al servidor para permitir al servidor controlar el tamano de los paquetes TCP a enviarse en conformidad con la ventana de recepcion (207).
  2. 2. El metodo de manipulacion de paquetes segun la reivindicacion 1, en donde buscar en un dispositivo de almacenamiento un paquete TCP requerido para una retransmision por el paquete TCP ACK cuando se determina que el valor del campo de Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP;
    rechazar el paquete TCP ACK y transmitir (S105) el paquete TCP al cliente que envfa el paquete TCP ACK cuando el paquete TCP requerido para una retransmision se encuentra en el dispositivo de almacenamiento.
  3. 3. El metodo de manipulacion de paquetes segun la reivindicacion 2, en donde el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP son el valor del campo de Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK que se envfa actualmente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK que fue enviado la ultima vez por el cliente en la misma conexion TCP.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
  4. 4. El metodo de manipulacion de paquetes segun la reivindicacion 2, en donde el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP son el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK que se envfa actualmente y un valor del campo del Numero de Acuse de Recibo almacenado, en donde el valor del campo del Numero de Acuse de Recibo almacenado se obtiene a partir de la cabecera TCP de un paquete TCP ACK enviado por el cliente en la misma conexion TCP.
  5. 5. El metodo de manipulacion de paquetes segun la reivindicacion 2, en donde el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente a traves de la misma conexion TCP son el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK que se envfa actualmente y un valor del campo del Numero de Acuse de Recibo obtenido a partir de un paquete TCP ACK almacenado enviado por el cliente en la misma conexion TCP.
  6. 6. El metodo de manipulacion de paquetes segun la reivindicacion 1, en donde obtener una ventana de recepcion actual del cliente que envfa el paquete TCP ACK comprende:
    analizar el paquete TCP ACK actualmente recibido enviado por el cliente;
    obtener el valor del campo de ventana en la cabecera TCP el paquete TCP ACK, en donde el valor del campo de ventana es la ventana de recepcion actual del cliente que envfa el paquete TCP ACK actual.
  7. 7. Un dispositivo de reenvfo, que comprende:
    un modulo de recepcion de paquete ACK (31) configurado para recibir un paquete TCP ACK actualmente enviado por un cliente;
    un modulo de determinacion de valor de campo (32) configurado para determinar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente y el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de un paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP;
    un modulo de adquisicion de ventana (35) configurado para obtener una ventana de recepcion actual y una ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado difiere de los valores del campo del Numero de Acuse de Recibo en las cabeceras TCP de los paquetes TCP ACK que se envfan por el cliente con anterioridad en la misma conexion TCP o cuando un paquete TCP requerido para una retransmision por el paquete TCP ACK actualmente recibido no se encuentra en el dispositivo de almacenamiento,
    en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende: establecer la ventana de recepcion recomendada en conformidad con un umbral de ventana preestablecido; o
    en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende:
    obtener un ancho de banda BD de flujo ascendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo descendente;
    calcular el producto del ancho de banda BD de flujo ascendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
    obtener el producto del resultado de la multiplicacion y un primer umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el primer umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual, o
    en donde obtener la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual comprende:
    obtener un ancho de banda BD de flujo descendente y un tiempo T de ida y vuelta cuando el paquete TCP ACK es un paquete de flujo ascendente;
    calcular el producto del ancho de banda BD de flujo descendente y el tiempo T de ida y vuelta para obtener un resultado de la multiplicacion;
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    obtener el producto del resultado de multiplicacion y un segundo umbral multiplicador preestablecido y utilizar el producto del resultado de la multiplicacion y el segundo umbral multiplicador preestablecido como la ventana de recepcion recomendada del cliente que envfa el paquete TCP ACK actual;
    un modulo de seleccion de ventana (36) configurado para comparar los valores de la ventana de recepcion actual y de la ventana de recepcion recomendada y seleccionar el mas pequeno valor de los dos como la nueva ventana de recepcion del cliente que envfa el paquete TCP ACK actual, siendo la ventana de recepcion la magnitud de recepcion maxima actual del cliente que envfa el paquete TCP ACK actual;
    un modulo de envfo de paquete TCP ACK (37) configurado para sustituir el valor del campo de ventana en la cabecera TCP del paquete TCP ACK actual con la ventana de recepcion, y enviar el paquete TCP aCk sustituido.
  8. 8. El dispositivo de reenvfo segun la reivindicacion 7, que comprende, ademas: un modulo de busqueda de paquete TCP (33) configurado para buscar en un dispositivo de almacenamiento un paquete TCP requerido para una retransmision por el paquete TCP ACK cuando se determina que el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK actualmente enviado por el cliente es igual al valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK anteriormente enviado por el cliente en la misma conexion TCP;
    un modulo de envfo de paquete TCP (34) configurado para rechazar el paquete TCP ACK y transmitir el paquete TCP al cliente que envfa el paquete TCP ACK cuando el paquete TCP requerido para una retransmision se encuentra en el dispositivo de almacenamiento.
  9. 9. El dispositivo de reenvfo segun la reivindicacion 8, en donde el modulo de determinacion de valor de campo (32) comprende:
    una primera unidad de adquisicion de valor de campo actual (321) configurada para analizar el paquete TCP ACK actual y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual;
    una unidad de adquisicion de valor de campo anterior (322) configurada para analizar un paquete TCP ACK anteriormente enviado por el cliente que envfa el paquete TCP ACK actual en la misma conexion tCp y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo anterior;
    una primera unidad de determinacion (323) configurada para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual al valor del campo del Numero de Acuse de Recibo anterior.
  10. 10. El dispositivo de reenvfo segun la reivindicacion 8, en donde el modulo de determinacion del valor del campo (32) comprende:
    una unidad de almacenamiento de campo (324) configurada para almacenar el valor del campo del Numero de Acuse de Recibo en la cabecera TCP de cada paquete TCP ACK recibido enviado por el cliente en la misma conexion TCP;
    una segunda unidad de adquisicion de valor de campo actual (325) configurada para analizar el paquete TCP ACK actual y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual;
    una segunda unidad de determinacion (326) configurada para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado; cuando el valor del campo del Numero de Acuse de Recibo actual es igual a al menos uno de los valores del campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado; de no ser asf, se determina que el valor del campo del Numero de Acuse de Recibo actual difiere de los valores del campo de Numero de Acuse de Recibo almacenados.
  11. 11. El dispositivo de reenvfo segun la reivindicacion 8, en donde el modulo de determinacion del valor de campo (32) comprende:
    una unidad de almacenamiento de paquetes (327) configurada para almacenar cada paquete TCP ACK recibido enviado por el cliente en la misma conexion TCP;
    una tercera unidad de adquisicion de valor de campo actual (328) configurada para analizar el paquete TCP ACK actual y para obtener el valor del campo del Numero de Acuse de Recibo en la cabecera TCP del paquete TCP ACK como el valor del campo del Numero de Acuse de Recibo actual;
    una unidad de adquisicion de campo almacenado (329) configurada para analizar los paquetes TCP ACK almacenados y para obtener los valores del campo de Numero de Acuse de Recibo en las cabeceras TCP de los paquetes TCP ACK almacenados como los valores del campo de Numero de Acuse de Recibo almacenados;
    5 una tercera unidad de determinacion (330) configurada para determinar si el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado; cuando el valor del campo del Numero de Acuse de Recibo actual es igual a al menos uno de los valores de campo del Numero de Acuse de Recibo almacenados, se determina que el valor del campo del Numero de Acuse de Recibo actual es igual a un valor del campo del Numero de Acuse de Recibo almacenado; de no ser asf, se determina que el valor del campo del Numero de Acuse 10 de Recibo actual difiere de los valores de campo del Numero de Acuse de Recibo almacenados.
  12. 12. El dispositivo de reenvfo segun la reivindicacion 7, en donde el modulo de adquisicion de ventana (35) comprende:
    una unidad de analisis (351) configurada para analizar el paquete TCP ACK recibido actualmente enviado por el cliente; 15
    una unidad de adquisicion de ventana (352) configurada para obtener el valor de campo de ventana en la cabecera TCP del paquete TCP ACK, siendo el valor del campo de ventana la ventana de recepcion actual del cliente que envfa el paquete TCP ACK actual.
    20
ES15152713.2T 2011-03-29 2011-11-28 Método de manipulación de paquetes y dispositivo de reenvío Active ES2589566T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201110078459XA CN102143078B (zh) 2011-03-29 2011-03-29 一种报文处理方法、转发设备及系统
CN201110078459 2011-03-29

Publications (1)

Publication Number Publication Date
ES2589566T3 true ES2589566T3 (es) 2016-11-15

Family

ID=44410313

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15152713.2T Active ES2589566T3 (es) 2011-03-29 2011-11-28 Método de manipulación de paquetes y dispositivo de reenvío

Country Status (5)

Country Link
US (1) US9325628B2 (es)
EP (2) EP2693707B1 (es)
CN (1) CN102143078B (es)
ES (1) ES2589566T3 (es)
WO (1) WO2012129922A1 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143078B (zh) * 2011-03-29 2013-10-02 华为技术有限公司 一种报文处理方法、转发设备及系统
CN103595511A (zh) * 2013-10-17 2014-02-19 广东电网公司茂名供电局 一种电力系统内部网络i区至iii区数据传输的方法
CN105991359A (zh) * 2015-02-06 2016-10-05 中兴通讯股份有限公司 一种检测重复仿真报文的方法及装置
CN104780028A (zh) * 2015-04-02 2015-07-15 京信通信技术(广州)有限公司 一种实现tcp数据报文重传的方法及设备
CN105245528B (zh) * 2015-10-20 2019-02-12 北京小鸟听听科技有限公司 一种基于用户数据报协议(udp)的控制命令传输方法、发送端和接收端
WO2017145227A1 (ja) * 2016-02-22 2017-08-31 富士通株式会社 通信装置、中継装置、及び通信システム
CN106332145A (zh) * 2016-10-04 2017-01-11 陕西尚品信息科技有限公司 一种移动Ad‑hoc网络中TCP连接性能的优化方法
CN106657078B (zh) * 2016-12-27 2020-05-05 京信通信系统(中国)有限公司 Tcp传输方法及装置
CN109842564B (zh) 2017-11-28 2022-11-11 华为技术有限公司 一种业务报文发送的方法、网络设备和系统
CN110213167A (zh) * 2018-02-28 2019-09-06 吴瑞 一种传输控制协议在网络拥塞时的处理方法和装置
CN112119621A (zh) * 2018-05-14 2020-12-22 富士通株式会社 基站装置、终端装置以及通信方法
CN109639340B (zh) * 2018-12-11 2021-05-28 成都天奥信息科技有限公司 一种适用于卫星链路的tcp加速方法
US11329922B2 (en) * 2019-12-31 2022-05-10 Opanga Networks, Inc. System and method for real-time mobile networks monitoring
CN113726671B (zh) * 2020-05-26 2023-06-30 华为技术有限公司 一种网络拥塞控制方法及相关产品
CN113950099B (zh) * 2020-07-17 2024-06-25 华为技术有限公司 一种网络拥塞控制方法及设备
CN115134049B (zh) * 2021-03-24 2025-09-09 华为技术有限公司 通信方法及装置
US11924678B2 (en) 2021-11-17 2024-03-05 Charter Communications Operating, Llc Adapting TCP in SAS-controlled CBRS networks
CN114157727B (zh) * 2021-12-10 2024-05-14 北京华环电子股份有限公司 Tcp加速在osu中的应用方法及设备
US20250126142A1 (en) * 2023-10-13 2025-04-17 Dell Products L.P. Attack prevention for transmission control protocol layer

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6118765A (en) * 1998-01-13 2000-09-12 Qualcomm Inc. System method and computer program product for eliminating unnecessary retransmissions
US6215769B1 (en) * 1998-10-07 2001-04-10 Nokia Telecommunications, Inc. Enhanced acknowledgment pacing device and method for TCP connections
US6934257B2 (en) * 2001-04-04 2005-08-23 Intel Corporation Transferring transmission control protocol packets
US7089312B2 (en) * 2001-09-20 2006-08-08 Intel Corporation System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network
EP1300991A1 (en) * 2001-10-02 2003-04-09 Lucent Technologies Inc. A method for filtering redundant data packets
EP1479213A2 (en) * 2002-02-15 2004-11-24 Koninklijke Philips Electronics N.V. Modifications to tcp/ip for broadcast or wireless networks
US20040213278A1 (en) * 2003-04-24 2004-10-28 Broadcom Corporation System, method, and computer program product for in-place, lightweight Ack promotion in a cable modem environment
US7593338B2 (en) * 2003-06-27 2009-09-22 Samsung Electronics Co., Ltd. Congestion control method and system for reducing a retransmission timeout count in a transmission control protocol
CN101114999B (zh) * 2007-08-26 2010-08-04 上海华为技术有限公司 数据发送控制方法及数据传输设备
JP2009152953A (ja) * 2007-12-21 2009-07-09 Nec Corp ゲートウェイ装置およびパケット転送方法
CN101854738B (zh) * 2010-05-21 2012-10-24 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN101924625A (zh) * 2010-08-23 2010-12-22 华为技术有限公司 数据包重传控制的方法和网络侧设备
US8717900B2 (en) * 2011-02-07 2014-05-06 LivQoS Inc. Mechanisms to improve the transmission control protocol performance in wireless networks
CN102143078B (zh) * 2011-03-29 2013-10-02 华为技术有限公司 一种报文处理方法、转发设备及系统

Also Published As

Publication number Publication date
EP2903192A1 (en) 2015-08-05
US9325628B2 (en) 2016-04-26
EP2693707A4 (en) 2014-02-05
CN102143078B (zh) 2013-10-02
US20140029620A1 (en) 2014-01-30
EP2903192B1 (en) 2016-06-15
EP2693707A1 (en) 2014-02-05
EP2693707B1 (en) 2015-04-15
CN102143078A (zh) 2011-08-03
WO2012129922A1 (zh) 2012-10-04

Similar Documents

Publication Publication Date Title
ES2589566T3 (es) Método de manipulación de paquetes y dispositivo de reenvío
US9386128B2 (en) Delay based active queue management for uplink traffic in user equipment
US11012367B2 (en) Technologies for managing TCP/IP packet delivery
US10791162B2 (en) Maximizing quality of service for QoS adaptive video streaming via dynamic application-layer throughput rate shaping
ES2902497T3 (es) Método para regular la velocidad de flujos de datos
US20170149675A1 (en) Packet retransmission method and apparatus
KR102187810B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
WO2010083329A1 (en) System and method for retransmission and fragmentation in a communication network
CN109120540B (zh) 传输报文的方法、代理服务器和计算机可读存储介质
WO2017045501A1 (zh) 一种报文调度方法和装置、存储介质
US7643420B2 (en) Method and system for transmission control protocol (TCP) traffic smoothing
WO2013097218A1 (zh) 一种流媒体数据处理方法、装置及系统
KR102601348B1 (ko) 데이터 송신 방법, 송신 장치, 데이터 수신 방법 및 수신 장치
CN117412120A (zh) 视频传输方法、视频发送设备、系统以及存储介质
Rüngeler et al. Congestion and flow control in the context of the message-oriented protocol SCTP
Irawan et al. Performance evaluation of queue algorithms for video-on-demand application
CN106657131B (zh) 一种基于互联网的云通讯平台
CN118714093B (zh) 以太网rdma主动拥塞控制方法、装置和设备
Shi et al. A reliable real-time transport protocol for control systems over wireless networks
Havey et al. Fast wireless protocol: A network stack design for wireless transmission
ES2703153T3 (es) Método, dispositivo, producto de programa informático y medio de almacenamiento para distribuir solicitudes de archivos en sistemas de transmisión en continuo adaptables
Mahajan et al. High performance vehicular connectivity using opportunistic erasure coding
Seytnazarov Performance Improvements with QoS-aware A-MPDU aggregation and Enhanced Mathematical Model of IEEE 802.11 n/ac WLANs
Park et al. Design and analysis of high performance TCP
Park IEEE 802.11 n TCP TCP ACK