ES2310530T3 - Metodo de control de flujo de datos. - Google Patents

Metodo de control de flujo de datos. Download PDF

Info

Publication number
ES2310530T3
ES2310530T3 ES01107783T ES01107783T ES2310530T3 ES 2310530 T3 ES2310530 T3 ES 2310530T3 ES 01107783 T ES01107783 T ES 01107783T ES 01107783 T ES01107783 T ES 01107783T ES 2310530 T3 ES2310530 T3 ES 2310530T3
Authority
ES
Spain
Prior art keywords
data
segment
pair
sequence
segments
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.)
Expired - Lifetime
Application number
ES01107783T
Other languages
English (en)
Inventor
Michael Meyer
Reiner Ludwig
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2310530T3 publication Critical patent/ES2310530T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/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
    • 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
    • H04L1/1635Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/18End to end
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Magnetically Actuated Valves (AREA)
  • Flow Control (AREA)

Abstract

Un método para controlar el flujo de una cantidad de datos desde un par emisor hasta un par receptor de un protocolo de comunicación predeterminado, que comprende: dividir dicha cantidad de datos en una pluralidad de segmentos de datos, ordenándose dichos segmentos de datos según una secuencia, transmitir dichos segmentos de datos desde dicho par emisor hasta dicho par receptor en el orden de dicha secuencia, determinar en dicho par receptor si un segmento de datos se recibió correctamente, y si un segmentos de datos correctamente recibido está en el orden apropiado de dicha secuencia, enviar mensajes de acuse de recibo desde dicho par receptor hasta dicho par emisor, en donde un mensaje de acuse de recibo indica la correcta recepción de un segmento de datos e identifica el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia, y si el par receptor recibe un número umbral de mensajes de acuse de recibo duplicados que identifican cada uno de ellos el mismo un segmento de datos como el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia, retransmitir el segmento que sigue inmediatamente a dicho un segmento de datos, en donde dicho método comprende un procedimiento de adaptación de número umbral para adaptar dinámicamente dicho número umbral, lo cual comprende ejecutar un procedimiento de determinación de número de segmentos de datos, siendo dicho número de segmentos de datos un entero que identifica un número de segmentos de datos perteneciente a un grupo predeterminado asociado con un control de flujo, caracterizado porque dicho procedimiento de adaptación de número umbral comprende dividir dicho número de segmentos de datos por un factor predeterminado, y adaptar dicho número umbral sobre la base del resultado de dividir dicho número de segmentos de datos por el factor predeterminado, y dicho procedimiento de adaptación de número umbral está concebido de tal manera que dicho número umbral puede asumir valores mayores de tres.

Description

Método de control de flujo de datos.
Campo de la invención
La presente invención se refiere a un método para controlar el flujo de una cantidad de datos desde un par emisor hasta un par receptor de un protocolo dado de comunicación.
Antecedentes de la invención
En el campo de las comunicaciones, se conocen técnicas de transmisión de datos en las que una cantidad de datos que se ha de transmitir es dividida en una pluralidad de segmentos de datos, ordenándose los segmentos de datos según una secuencia. Estos segmentos de datos se transmiten posteriormente según el orden de dicha secuencia.
Este procedimiento tiene lugar en un denominado par emisor de una comunicación gobernada por un protocolo predeterminado que contiene las reglas para manejar tales segmentos de datos. La entidad receptora asociada al protocolo predeterminado se denomina par receptor. Los conceptos de protocolos, jerarquías de protocolos y pares de protocolos son bien conocidos en la técnica; véase por ejemplo "TCP/IP Ilustrados Volumen 1, Los Protocolos" por W. Richard Stevens, Addison Wesley 1994. El muy conocido Protocolo de Control de Transmisión (TCP) del conjunto de protocolos TCP/IP es un ejemplo de un protocolo de esta clase que organiza datos que se han de enviar según una secuencia de segmentos.
Típicamente, con el fin de ser enviados, los segmentos individuales se colocarán en unidades de datos que tienen una estructura definida por el protocolo dado. Estas unidades de datos pueden tener nombres diferentes en el contexto de protocolos diferentes, tales como paquetes, tramas, unidades de datos de protocolo, células, etc. En la presente descripción el término "unidad de datos" se usará de modo genérico para cubrir cualquier estructura definida de datos de esta clase. La presente memoria usará de manera intercambiable los términos "segmento" y "unidad de datos".
El par emisor pasará hacia abajo la unidad de datos hasta una capa inferior; por ejemplo, un par emisor TCP pasará una trama TCP a una capa de enlace, y en el lado receptor el par receptor recibirá unidades de datos desde las capas inferiores. La estructura predeterminada que define las unidades de datos, por ejemplo que define un comienzo y un final, permite al par receptor identificar segmentos individuales.
Puede observarse que, según el concepto de estratificación OSI, no importa cómo las unidades de datos pasadas a una capa inferior se procesen y se transporten hasta allí. Particularmente, el par emisor dado pasa un flujo de bits hacia abajo y el par receptor recibe un flujo de bits, en donde este flujo de bits contiene ciertos elementos identificadores, tales como indicadores de límites de trama, con la ayuda de los cuales el par receptor puede identificar unidades de datos individuales y segmentos individuales.
Con el fin de garantizar la transmisión fiable de datos, muchos protocolos proporcionan la característica de una retransmisión de unidad de datos, lo cual significa que puede retransmitirse segmentos de la secuencia, si es necesario. Típicamente, esto se hará con la ayuda de una técnica de acuse de recibo, lo cual significa que la recepción correcta de una unidad de datos por el par receptor es confirmada con un mensaje apropiado de acuse de recibo que el par receptor envía de vuelta al par emisor. Una vez que el par emisor ha recibido tal mensaje de acuse de recibo, puede continuar enviando adecuadamente unidades de datos adicionales, o si no se recibe un mensaje de acuse de recibo o se recibe un mensaje de acuse de recibo negativo, la unidad de datos que no se recibió correctamente por el par receptor puede ser retransmitida por el par emisor.
Se conocen diversos mecanismos con cuya ayuda se supone que un par emisor obtiene una indicación de que ha tenido lugar la pérdida de una unidad o segmento de datos, de tal manera que pueda tener lugar una retransmisión adecuada. Una característica conocida de esta clase es retransmisión por tiempo muerto, lo cual significa que, después de enviar una unidad de datos, se vigila un cronómetro, y si transcurre una cantidad predeterminada de tiempo sin haber recibido un acuse de recibo para la unidad dada de datos, se asume entonces que la unidad de datos se ha perdido y, en consecuencia, se la retransmite.
Otro mecanismo de esta clase es el de contar acuses de recibo duplicados. Un acuse de recibo duplicado es un acuse de recibo que identifica como el último segmento de datos correctamente recibido un segmento de datos cuya recepción ya ha sido acusada previamente en el orden de la secuencia. Particularmente, muchos protocolos, tales como por ejemplo TCP, tienen un mecanismo generador de acuse de recibo para pares receptores que funciona enviando un mensaje de acuse de recibo para cada segmento correctamente recibido de la secuencia, en donde el acuse de recibo identifica el último segmento de datos correctamente recibido en el orden de la secuencia. En otras palabras, si por ejemplo los segmentos de datos primero a cuarto se han recibido y se ha acusado recibo de ellos y entonces llega el quinto segmento de datos, el par receptor enviará un acuse de recibo para ese quinto segmento. Si después llegan correctamente los segmentos séptimo y octavo, el par receptor enviará entonces de nuevo uno o dos mensajes de acuse de recibo, pero estos mensajes de acuse de recibo únicamente identificarán al quinto segmento, porque el quinto fue el último segmento que se recibió correctamente según el orden de la secuencia. Particularmente, el par receptor está esperando el sexto segmento e incluso si recibe correctamente segmentos por encima del sexto segmento continuará acusando recibo del quinto segmento. En consecuencia, la recepción de acuses de recibo duplicados por el par emisor ofrece al par emisor una indicación de que se ha perdido una unidad de datos.
Como consecuencia, en protocolos que usan el mecanismo de acuse de recibo antes descrito según el cual unos mensajes de acuse de recibo solo acusan recibo de la última unidad de datos que se recibió correctamente según el orden de la secuencia, incluso si se reciben unidades de datos que están más adelante en dicha secuencia, puede implementarse un mecanismo de retransmisión que realice una retransmisión si se recibe un número predeterminado de acuses de recibo duplicados por el par emisor. En TCP, el mecanismo correspondiente se conoce como "retransmisión rápida", en donde se implementa una retransmisión después de la recepción de tres acuses de recibo duplicados. Una descripción detallada del mecanismo de retransmisión rápida en TCP puede encontrarse, por ejemplo, en el libro antes mencionado de Stevens, capítulo 21.7.
Problema que subyace bajo la invención
Todos los mecanismos de esta clase descritos anteriormente para recibir una indicación de que se ha perdido una unidad de datos, adolecen del problema de que el par emisor únicamente recibe una indicación indirecta de que se perdió una unidad de datos, y, de hecho, la aparición del evento disparador predeterminado (un tiempo muerto o un número predeterminado de acuses de recibo duplicados) no significa necesariamente que se perdió realmente una unidad de datos. Estos eventos disparadores también pueden provocarse de manera espuria, por ejemplo si se retrasa una unidad de datos en la red de transmisión, mientras que unidades de datos asociadas a segmentos más allá de la secuencia son entregadas por la red. Tal fenómeno también se denomina reordenación.
En "EFR: Un Esquema de Retransmisión para TCP en LANs Inalámbricas" por Yosuke Tamura, Yoghito Tobe y Hideyuki Tozuda, XP-002115028, se propone un nuevo esquema de retransmisión. Este documento aborda el problema que aparece cuando una ventana de emisión es pequeña, de tal manera que cuando se pierde un segmento, el receptor no enviará los tres acuses de recibo duplicados necesarios para disparar una retransmisión rápida porque el número de segmento que se están enviando es demasiado pequeño. En este caso no es posible una retransmisión rápida y el emisor esperará hasta que tenga lugar una retransmisión por tiempo muerto. Como solución a esta situación, se propone que cuando se reciba el primer acuse de recibo duplicado el emisor calcule el valor del umbral de acuse de recibo duplicado dependiendo del tamaño de la ventana de emisión. El algoritmo convierte en primer lugar el valor de la ventana de emisión, que se da en byte, en un valor que refleja un número de segmentos, dividiendo el tamaño de ventana entre un tamaño de segmento máximo. Posteriormente, se resta dos del resultado con el fin de determinar el umbral de acuse de recibo duplicado. Si el valor de umbral calculado es mayor de tres, entonces se ajusta automáticamente el umbral a tres. Por tanto, el valor del umbral de acuse de recibo duplicado se ajusta a uno, dos o como máximo tres.
El documento RFC 2893 de S. Floyd y otros, www.ietf.org, XP002173923, es un documento que se refiere en general a extender la opción SACK del TCP. Más específicamente, se sugiere que el par receptor use el campo de opción SACK para reportar los números de secuencia del paquete que ha disparado un acuse de recibo de tal manera que el par emisor pueda inferir el orden de paquetes recibidos en el par receptor. Esto permite que el par emisor ajuste el umbral de acuse de recibo duplicado con el fin de impedir Retransmisiones Rápidas innecesarias.
El artículo "Efectos sobre el TCP de estrategias de encaminamiento en constelaciones de satélites" de L. Word y otros, IEEE Communications Magazine, Volumen 39, número 3, marzo 2001, páginas 172-181, XP 002173922, es un documento que se refiere generalmente a los efectos que sobre el TCP tienen las estrategias de encaminamiento en conexiones por satélite. Se dirige la atención al uso de trayectorias múltiples en constelaciones de satélites, y al efecto perjudicial sobre el TCP. Se expone el algoritmo de Retransmisión Rápida, y se menciona que el encaminamiento multitrayectoria puede llevar a una recepción averiada y, por tanto, conduce a acuses de recibo duplicados, incluso cuando no han tenido lugar pérdidas. Además, se menciona que el requisito de tres acuses de recibo duplicados pueda aumentarse hasta un umbral mayor con el fin de mejorar el tráfico de datos total.
Objeto de la presente invención
Es un objeto de la presente invención mejorar en general las posibilidades de manejo de la retransmisión de segmentos en el par emisor.
Sumario de la invención
Este objeto se soluciona por un método que tiene las características de la reivindicación 1 y por un dispositivo de comunicación según la reivindicación 21. Se describen realizaciones ventajosas en las reivindicaciones independientes.
Según la presente invención, en un sistema en el que la recepción de un número predeterminado de mensajes de acuse de recibo duplicados dispara la retransmisión de un segmento de datos que sigue al segmento de datos identificado en el acuse de recibo duplicado, se propone hacer que este número predeterminado sea un parámetro adaptativo que pueda asumir valores mayores de tres. Esto significa que el umbral de acuse de recibo duplicado es un parámetro que se adapta a las condiciones generales que rodean a la emisión de segmentos de datos, por ejemplo las condiciones del par emisor, las condiciones de transmisión (por ejemplo, las determinadas por el enlace sobre el cual se están enviando los segmentos, o en general por la red de transmisión sobre la cual se están enviando los segmentos) o las condiciones del par receptor.
En la presente invención, se proporciona un procedimiento de determinación de número de segmentos de datos, en el que dicho número de segmentos de datos es un entero que identifica un número de segmentos de datos que pertenecen a un grupo predeterminado asociado a un control de flujo. El procedimiento de adaptación de número de umbral comprende dividir el número de segmentos de datos por un factor predeterminado, y adaptar el número umbral sobre la base del resultado de dividir el número de segmentos de datos por el factor predeterminado. El grupo predeterminado puede asociarse, por ejemplo, con una o más ventanas de control de flujo, o puede venir dado por el grupo de segmentos de datos pendientes.
Puede observarse que la presente invención puede implementarse con relación a cualquier tipo de control de flujo en tanto en cuanto el protocolo de comunicación, con el cual se estén enviando los segmentos, proporcione el mecanismo de acuse de recibo antes descrito según el cual un mensaje de acuse de recibo indica la recepción correcta de un segmento de datos e identifica el último segmento de datos correctamente recibido de la secuencia que se recibió en el orden adecuado de la secuencia, y el mecanismo por el que un segmento es retransmitido si se recibe por el par emisor un número de umbral de mensajes de acuse de recibo que identifican al mismo segmento de datos.
El hacer al umbral de acuse de recibo duplicado adaptativo y capaz de asumir valores mayores de tres aumenta enormemente la flexibilidad y controlabilidad de un par emisor que envía segmentos. Particularmente, el umbral de acuse de recibo duplicado ofrece una indicación de durante cuánto tiempo el par emisor considerará unos mensajes de acuse de recibo duplicados como debidos solamente a una reordenación de unidades de datos, y cuándo el par emisor asume que se ha perdido una unidad de datos. Es decir, hasta el umbral de acuse de recibo duplicado no tiene lugar una retransmisión, de tal manera que se asume que los primeros mensajes de acuse de recibo duplicados son debidos a una reordenación, mientras que cuando se alcanza el umbral de acuse de recibo duplicado se asume que ha tenido lugar una pérdida de una unidad de datos.
Por tanto, el umbral de acuse de recibo duplicado es un parámetro que se asocia con la decisión del par emisor de cuánto tiempo esperar hasta que se asuma que se ha perdido un segmento dado del cual se están recibiendo acuses de recibo duplicados. Debido a la solución de la presente invención, según la cual el umbral es adaptativo y puede asumir valores mayores de tres, es posible hacer que esta decisión sea ella misma adaptativa y, por tanto, más flexible, incluso si se está enviando un número mayor de segmentos.
De esta manera, el método de la presente invención está mejor equipado para manejar la reordenación de segmentos, incluso si se puede enviar simultáneamente un número grande de segmentos. Debido a este hecho, la presente invención se aplica ventajosamente a una implementación de protocolo que corre sobre una capa inferior que permite una entrega fuera de orden de unidades de datos en sentido ascendente hacia dicha implementación de protocolo, porque entonces es probable que ocurra una reordenación.
Según la invención, el umbral de acuse de recibo duplicado se adapta sobre la base de un número variable de segmentos de datos que pertenecen a un grupo predeterminado relacionado con el control de flujo.
Según una realización preferida, el umbral de acuse de recibo duplicado se adapta sobre la base de unas unidades de datos pendientes. Las unidades de datos dependientes son unidades de datos que fueron enviadas por el par emisor, pero que no han sido confirmadas como la última unidad de datos (segmento de datos) correctamente recibida de la secuencia que se está enviando. La adaptación del umbral de acuse de recibo duplicado sobre la base del número de unidades de datos pendientes es ventajosa ya que el número de unas unidades de datos pendientes es una indicación de hasta dónde puede llegar la reordenación, por ejemplo debido a efectos de capa inferior.
Según otra realización preferida, para los sistemas que emplean un control de flujo basado en ventana, el umbral de acuse de recibo duplicado también puede adaptarse sobre la base de una o más ventanas de control. En sistemas que usan un tipo de ventana de congestión (como, por ejemplo, las conocidas a partir del TCP), es preferible derivar el umbral de acuse de recibo duplicado sobre la base de la ventana de congestión, por ejemplo como una fracción predeterminada de la misma. La ventana de congestión también es un indicador del número de unidades de datos pendientes. Sin embargo, puede observarse que también es posible adaptar directamente el umbral de acuse de recibo duplicado sobre la base del número de unidades de datos pendientes, incluso en un sistema que use un control de flujo basado en ventana.
Además, también puede observarse que el umbral de acuse de recibo duplicado puede adaptarse sobre la base de uno o más parámetros, de tal manera que cualquiera de los tipos y ejemplos de parámetros antes mencionados puede usarse individualmente o en cualquier combinación arbitraria para adaptar el umbral de acuse de recibo dupli-
cado.
La adaptación o actualización del umbral de acuse de recibo duplicado puede realizarse de cualquier manera adecuada o deseable, y también dependerá de qué parámetro o parámetros se usan como base para la adaptación. Por ejemplo, es posible actualizar a intervalos regulares el umbral de acuse de recibo duplicado. En otras palabras, se miden regularmente el parámetro o parámetros usados como base para adaptar el umbral de acuse de recibo duplicado y se actualiza regularmente el umbral sobre la base de estas mediciones. Por otro lado, también es posible que la actualización del umbral de acuse de recibo duplicado únicamente tenga lugar cuando ocurre un evento disparador predeterminado. El evento disparador puede seleccionarse según sea adecuado o deseable y puede ser, por ejemplo, la primera recepción de un acuse de recibo duplicado, todas las recepciones de un acuse de recibo duplicado, o también siempre que cambie el parámetro relevante (o parámetros) sobre la base del cual se adapte el umbral de acuse de recibo duplicado.
Como otra posibilidad, también puede actualizarse el umbral de acuse de recibo duplicado con la recepción de cada acuse de recibo (es decir, no sólo en la recepción de un acuse de recibo duplicado), o en cada acuse de recibo que se refiere a una unidad o segmento de datos pendiente.
Breve descripción de los dibujos
Aspectos y ventajas adicionales de la presente invención se harán más fácilmente evidentes a partir del estudio de las realizaciones detalladas de la invención, que se describirán a continuación con referencia a las figuras adjuntas, en las que:
La figura 1 muestra un diagrama de flujo de una realización de la presente invención;
La figura 2a muestra un diagrama de flujo que se refiere a un posible procedimiento de actualización para el umbral de acuse de recibo duplicado;
La figura 2b muestra un diagrama de flujo de otra posibilidad de un procedimiento de actualización para el umbral de acuse de recibo duplicado;
La figura 3a muestra un intercambio de unidades de datos y mensajes de acuse de recibo entre un par emisor y un par receptor que funcionan según la técnica anterior;
La figura 3b muestra un ejemplo de un par emisor y un par receptor que intercambian unidades de datos y acuses de recibo según una realización de la presente invención;
La figura 4a muestra la relación entre el tamaño de ventana de transmisión y el tiempo de llegada de un ACK (acuse de recibo) en un sistema que usa un control de flujo basado en ventana y que funciona según la técnica anterior;
La figura 4b muestra la relación entre el tamaño de ventana de transmisión y el tiempo de llegada de un ACK en un sistema que usa un control de flujo basado en ventana y que funciona según un ejemplo de la presente invención; y
La figura 4c muestra la relación entre el tamaño de ventana de transmisión y el tiempo de llegada de un ACK en un sistema que usa un control de flujo basado en ventana y que funciona según otro ejemplo de la presente
invención.
Descripción detallada de realizaciones preferidas
La presente invención es aplicable a cualquier implementación de un protocolo de comunicación dado en el cual una cantidad de datos, que se ha de enviar, se divide en una pluralidad de segmentos de datos, y dichos segmentos de datos se ordenan según una secuencia, en donde los segmentos de datos se envían desde el par emisor hasta el par receptor con el orden de dicha secuencia, en donde un par receptor envía acuses de recibido al par emisor, indicando dichos acuses de recibo la correcta recepción en el orden apropiado de la secuencia, de tal manera que un mensaje de acuse de recibo indica que el último segmento de datos correctamente recibido de dicha secuencia se recibió en el orden apropiado de la secuencia, y en donde si el par emisor recibe un número umbral de mensajes de acuse de recibo que identifican cada uno de ellos el mismo segmento de datos como el último segmento de datos correctamente recibido de la secuencia que se recibió en el orden apropiado, se retransmite el segmento que sigue inmediatamente al segmento del cual se recibieron los acuses de recibo duplicados.
Un ejemplo de un protocolo de esta clase es el TCP. Sin embargo, se observa que la invención también es aplicable a cualquier otro protocolo de comunicación que tenga las características antes descritas.
Según la presente invención, el número umbral de mensajes de acuse de recibo, es decir, el umbral de acuse de recibo duplicado, es un parámetro adaptativo que puede asumir valores mayores de tres.
Por tanto, como ya se mencionó anteriormente, el umbral de acuse de recibo duplicado es un parámetro que está asociado a la decisión del par emisor de cuánto tiempo esperar hasta que se asuma que se ha perdido un segmento dado del cual se están recibiendo acuses de recibo duplicados. Debido a la solución de la presente invención, según la cual se adapta el umbral, es posible hacer que esta decisión sea ella misma adaptativa y, por ello, más flexible.
La figura 1 muestra un diagrama de flujo que describe una realización de la presente invención. La parte izquierda del diagrama de flujo se refiere a un control de flujo general, y debido al hecho de que la presente invención no se ocupa del tipo general de flujo de control esta parte únicamente se muestra esquemáticamente como una línea de trazos. La parte derecha de la figura describe un procedimiento para manejar acuses de recibo duplicados. Particularmente, si en el curso del control de flujo general se recibe un acuse de recibo (ACK) -véase paso S1-, se dispara entonces el procedimiento para manejar acuses de recibo duplicados.
En el paso S2 se determina si el acuse de recibo es un acuse de recibo duplicado. Particularmente, se determina el número de veces N que el acuse de recibo específico, que identifica el último segmento de datos correctamente recibido de la secuencia, se recibió en el orden apropiado de la secuencia, y se juzga si este número N es mayor de 1. Si no lo es, entonces el ACK no es un ACK duplicado y el procedimiento vuelve al control de flujo general.
Si el resultado del paso S2 indica que el acuse de recibo es un acuse de recibo duplicado, el procedimiento avanza hasta un paso S3, en donde se determina si N(ACK) es mayor que el umbral de acuse de recibo duplicado Th.
Este paso puede implementarse de cualquier manera apropiada, por ejemplo manteniendo sencillamente un registro del último segmento del que se ha acusado recibo y ajustando un contador asociado, de tal manera que si un acuse de recibo recientemente recibido es idéntico al acuse de recibo previo (es decir, un acuse de recibo duplicado) el contador se incremente en uno, y si el nuevo acuse de recibo identifica un segmento que es subsiguiente al segmento identificado en el último acuse de recibo recibido, entonces el contador se repone a 1.
En el ejemplo de la figura 1, N(ACK) indica el número de veces que el par emisor ha recibido el acuse de recibo dado ACK. En otras palabras, N=1 significa que el acuse de recibo para un segmento dado se ha recibido la primera vez, y un número N>1 indica que es un acuse de recibo duplicado.
Si el paso S3 determina que el número de acuses de recibo aún no ha alcanzado el umbral, el procedimiento retrocede hasta el control de flujo general. Sin embargo, si el umbral se ha alcanzado o superado, el procedimiento avanza hasta un paso S4, en donde se determina si el número de acuses de recibo duplicados recibidos es igual al umbral de acuse de recibo duplicado Th actualmente establecido. Si es así, se retransmite entonces en un paso S5 el segmento sin acuse de recibo más antiguo. El segmento sin acuse de recibo más antiguo sigue inmediatamente al segmento identificado en los acuses de recibo duplicados. Por otro lado, si el resultado del paso S4 es negativo, lo cual significa que N(ACK)>Th, entonces se retransmite el siguiente segmento de la secuencia que va detrás del segmento que sigue inmediatamente al segmento identificado en el acuse de recibo duplicado.
Después de los pasos S5 o S6, el procedimiento vuelve de nuevo al control de flujo general.
Puede observarse que la realización de la figura 1 es únicamente un ejemplo, y este ejemplo puede variarse de diversas maneras. La persona experta comprenderá que los pasos también pueden disponerse de manera diferente. Además, el paso S6 es únicamente un ejemplo, dado que la presente invención no se ocupa específicamente del procedimiento después de haber superado el umbral de acuse de recibo duplicado. En otras palabras, el procedimiento después de superar el umbral de acuse de recibo duplicado puede elegirse de cualquier manera adecuada o apropiada, y se expondrán posteriormente diferentes posibilidades para protocolos similares a TCP.
Igualmente, la respuesta del control de flujo general a acuses de recibo duplicados no es esencial en la presente invención. Por ejemplo, tras el resultado negativo del paso S3, lo cual significa que se ha recibido un acuse de recibo duplicado, pero el número de acuses de recibo duplicados aún no ha alcanzado el umbral, el control de flujo general puede detener el envío de segmentos adicionales o puede igualmente bien continuar enviando segmentos
adicionales.
El umbral de acuse de recibo duplicado puede actualizarse de cualquier manera adecuada o deseable. Por ejemplo, puede actualizarse a intervalos regulares, basándose en uno o más valores usados para actualizar el umbral. En otras palabras, este valor o estos valores se miden o se determinan regularmente y el umbral Th se actualiza correspondientemente. Este proceso tiene lugar fuera de lo que se muestra en la figura 1, en un procedimiento independiente. En consecuencia, este procedimiento independiente actualiza regularmente el valor de Th que esta almacenado adecuadamente y en los pasos S3 y S4 accede o llama sencillamente al valor actual de Th. Por otro lado, también es posible actualizar Th cuando ocurra un evento disparador predeterminado. Una posibilidad puede consistir en actualizar Th únicamente si ha cambiado uno o más del valor o valores usados para adaptar Th. Tal procedimiento sería de nuevo independiente de lo que se muestra en la figura 1, y los pasos S3 y S4 accederían o llamarían sencillamente al valor actual de Th.
Sin embargo, el evento disparador específico también puede ser parte del procedimiento mostrado en la figura 1. Particularmente, es posible ejecutar y actualizar Th cuando ocurra un evento disparador que esté asociado con la recepción de acuses de recibo. Por ejemplo, Th puede actualizarse en cada primera recepción de un ACK duplicado. Esto se muestra en la figura 2a, en donde los mismos números de referencia que los usados en la figura 1 se refieren a los mismos pasos. En otras palabras, los pasos S21 y S22 mostrados en la figura 2a se implementan entre los pasos S2 y S3 según se muestra en la figura 1. Tras haber determinado en el paso S2 que se ha recibido un acuse de recibo duplicado, el paso S21 determina si el acuse de recibo duplicado es el primer acuse de recibo duplicado, particularmente si N(ACK)=2, y si este es el caso, entonces se actualiza Th en el paso S22. Después de los pasos S21 o S22, se ejecuta el paso S3 y todos los otros pasos ya expuestos con relación a la figura 1, de tal manera que no es necesaria una exposición adicional.
Asimismo, es posible ejecutar una actualización de Th en cada acuse de recibo duplicado. Esto se muestra en la figura 2b. Particularmente, el paso de actualización S22 viene detrás del paso S2, de tal manera que cada acuse de recibo duplicado conduce a una actualización de Th.
Como otra alternativa, que no se muestra en las figuras, el umbral Th también puede actualizarse en cada acuse de recibo. En otras palabras, el paso de actualización S22 se implementaría entre los pasos S1 y S2 de la figura 1. Otra variación puede consistir en actualizar el umbral Th en cada ACK que se refiera a segmentos de datos pendientes, es decir únicamente para tales acuses de recibo en los que N(CK)=1. En consecuencia, el paso de actualización podría implementarse en la salida negativa del paso S2 de la figura 1.
Según se describió anteriormente, la actualización del umbral de acuse de recibo duplicado Th puede hacerse siempre que sea adecuada o deseable. Igualmente, podría hacerse fundamentalmente sobre cualquier base apropiada o adecuada. Es posible que el valor actual del umbral de acuse de recibo duplicado sea determinado sobre la base de mediciones realizadas con respecto a las características de la conexión entre el par emisor y el par receptor. Aunque tales mediciones pueden realizarse en cualquier punto, es decir, en el par emisor y/o en la red entre el par emisor y el par receptor y/o en el par receptor, se realizan preferiblemente en el par emisor.
Aunque el valor del umbral de acuse de recibo duplicado puede adaptarse sobre la base de cualquier característica o parámetro variable adecuado, en la presente invención se adapta sobre la base de un parámetro variable asociado con el control de flujo de segmentos de datos que se están enviando. Tal parámetro asociado con el control de flujo de segmentos de datos que se están enviando es un número de segmentos de datos de una categoría o grupo predeterminado, por ejemplo el número de unidades de datos de una ventana de transmisión dada en el caso de un sistema que use un control de flujo basado en ventana, o puede ser también el número de unidades de datos pendientes. Una unidad de datos pendiente es una unidad o segmento de datos que se envió por el par emisor, pero del cual el par emisor aún no ha recibido un mensaje de acuse de recibo que identifique dicha unidad o segmento de datos como el último segmento de datos correctamente recibido de la secuencia que se recibió en el orden adecuado de la secuencia.
Si el umbral de acuse de recibo duplicado se determina sobre la base de un número de segmentos, sea éste el número de segmentos pendientes o el número de segmentos en un grupo predeterminado, tal como una ventana de transmisión, entonces el umbral de acuse de recibo predeterminado se determina preferiblemente como una fracción predeterminada de dicho número de unidades de datos. Por ejemplo, esta fracción puede ser una mitad. En otras palabras, el número de segmentos del grupo se divide por un factor predeterminado, por ejemplo 2.
Esto es muy distinto del algoritmo propuesto por Tamura y otros, en donde el umbral se determina restando una constante del número de segmentos de la ventana de emisión.
Si el protocolo al cual se aplica la presente invención es el protocolo de control de transmisión (TCP), entonces el umbral de acuse de recibo duplicado puede determinarse como una fracción predeterminada de la ventana de congestión, por ejemplo una mitad. Es adecuada cualquier fracción entre un tercio y dos tercios. Puede observarse que una realización de esta clase de la invención que usa una fracción predeterminada de una ventana de transmisión y, más específicamente, de una ventana asociada de congestión, no está restringida al TCP, ya que tal aplicación es posible en el contexto de cualquier protocolo que esté basado en ventana y que use una ventana de transmisión asociada de congestión. Más específicamente, una ventana de transmisión asociada de congestión es una ventana que el par emisor inicializa con un tamaño inicial predeterminado, y posteriormente controla el tamaño dependiendo de los mensajes de acuse de recibo recibidos desde el par receptor, y de la aparición de eventos indicadores de congestión, tales como acuses de recibo duplicados, retransmisión por tiempos muertos, mensajes de acuse de recibo negativo, mensajes directos de indicación de congestión procedentes de la red, etc. Particularmente, tras la recepción de acuses de recibo, el tamaño de la ventana de congestión aumentará, y tras la aparición de eventos indicadores de congestión, se reducirá el tamaño de la ventana de congestión.
Para las realizaciones anteriores en las que el umbral de acuse de recibo duplicado, que es un valor entero, se determina sobre la base de un tamaño de ventana o, más generalmente, sobre la base de un número de unidades de datos pertenecientes a una categoría predeterminada, el cálculo del umbral de acuse de recibo duplicado dependerá del mecanismo según el cual el protocolo específico o la implementación específica del protocolo sigue la pista de segmentos de datos y cómo se representan tales ventanas o grupos. Particularmente, si el protocolo está orientado a segmentos, lo cual significa que los segmentos tienen números consecutivos y están identificados por estos números consecutivos de tal manera que una ventana también puede ser determinada directamente como un número de tales segmentos, entonces el cálculo de una fracción consiste sencillamente en dividir el número dado por un denominador o factor predeterminado, por ejemplo 2, si la fracción predeterminada antes mencionada es una mitad. Sin embargo, muchos protocolos, tales como TCP, están orientados a bytes, lo cual significa que los segmentos no están numerados directamente sino que muy preferiblemente están únicamente referenciados a una cuenta de bytes. Más específicamente, si la cantidad de datos que se ha de enviar consta de K bytes, entonces cada segmento estará identificado por una cuenta de bytes k_{i}, en donde k_{i} < K y k_{i} < k_{i+1}. Por ejemplo, si la cantidad de datos que se han de enviar consta de 10240 bytes, entonces esta cantidad puede dividirse en 10 segmentos, teniendo cada segmento 1024 bytes. El primer segmento es describen entonces por 1024, el segundo por 2048, el tercero por 3072, etc. En consecuencia, los mensajes de acuse recibo identifican entonces segmentos al comunicar tal cuenta de bytes. Además, en un protocolo orientado a bytes que usa un control de flujo basado en ventana, los tamaños de ventana también se representan en bytes. Como tales protocolos orientados a bytes son bien conocidos en la técnica, no resulta necesaria aquí una explicación adicional.
Para tales protocolos orientados a bytes, la determinación del umbral de acuse de recibo duplicado, que es un valor entero, puede realizarse dividiendo el valor de bytes relevante sobre cuya base el umbral está siendo adaptado (por ejemplo, un tamaño de ventana de transmisión o un número de unidades de datos, tal como el número de unidades de datos pendientes) por un denominador o factor predeterminado (tal como 2 si la fracción predeterminada es un medio), y por un tamaño de traducción de segmento adecuado para traducir el valor de bytes en un número de segmentos. Típicamente este tamaño de traducción de segmento será un tamaño máximo de segmento (por ejemplo, el valor máximo, en bytes, que puede adoptar un segmento). El tamaño máximo de segmento puede definirse específicamente para el proceso descrito, por ejemplo se establece inicialmente junto con un umbral de acuse de recibo duplicado inicial, o si el protocolo al cual se está aplicando la presente invención ya tiene como parámetro tal tamaño máximo de segmento, como es el caso en el TCP, entonces este parámetro disponible puede usarse directamente.
Puede advertirse que en ambos casos anteriores, es decir dividiendo directamente un número entero de segmentos o dividiendo un número de bytes y usando un parámetro de traducción de segmento, es posible que el resultado no sea un valor entero. En este caso, el umbral de acuse de recibo duplicado puede determinarse mediante una operación de redondeo adecuada al siguiente entero más alto o al siguiente más bajo.
Las gráficas de las figuras 4a-4c muestran el tamaño de ventana con relación a llegadas de acuses de recibo, en donde los puntos negros marcan la llegada de un acuse de recibo. La ordenada está representada en términos de múltiplos del tamaño máximo de segmento.
Ahora se describirá un ejemplo de la aplicación de la presente invención a una implementación de protocolo que funciona como el TCP. La figura 4a muestra el funcionamiento de la gestión convencional de acuses de recibo duplicados según se especifica en el TCP con respecto al ajuste del tamaño de ventana. Más específicamente, como se describe por ejemplo en el Capítulo 21.7 del libro antes mencionado de Stevens, el TCP está preparado para ejecutar una retransmisión después de haber recibido el tercer acuse de recibo duplicado, y después de la retransmisión se ajusta la ventana de congestión cwnd al denominado tamaño de umbral de arranque lento ssthresh, el cual en la figura 4a se determina como una mitad del tamaño de ventana en el momento de recibir el tercer acuse de recibo duplicado, y se añade posteriormente al resultado tres veces el tamaño de segmento. A continuación, la ventana de congestión cnwd se aumenta linealmente en respuesta a la llegada de acuses de recibo adicionales. Como consecuencia, puede verse que si el tamaño de ventana en el momento de recibir el tercer acuse de recibo duplicado es muy grande, entonces la reducción a la mitad de la ventana y la adición de solo 3 tamaños de segmento a la ventana resultante conducirá a una gran reducción del tamaño de ventana. Por lo tanto, pasará algún tiempo antes de que la ventana alcance el tamaño que tenía antes de la retransmisión.
La figura 4b muestra un ejemplo en donde se aplica la presente invención. Particularmente, el umbral de acuse de recibo duplicado no está fijado al valor de 3 como es el caso del TCP convencional (véase la figura 4a), y no está tampoco restringido a un máximo de 3 como en el artículo antes expuesto de Tamura et al., sino que se determina sobre la base de la ventana de congestión actual, la cual en el ejemplo de la figura 4b es once veces el tamaño máximo de segmento. Más específicamente, se determina como una mitad de este tamaño de ventana de congestión, redondeado hacia abajo en el caso de un resultado no entero. Dado que 11 es el tamaño de ventana, el resultado de tomar una mitad lleva a un resultado no entero de 5,5, de tal manera que el umbral de acuse de recibo duplicado se establece en 5. Según puede verse, este resultado supera a 3. En consecuencia, después de haber recibido el quinto acuse de recibo duplicado, se realiza una retransmisión. Según el ejemplo de la figura 4b, la ventana de congestión se reduce entonces como en el caso convencional, particularmente a ssthresh, es decir, una mitad de la ventana de congestión en el momento de la retransmisión. Sin embargo, el valor del umbral de acuse de recibo duplicado se añade posteriormente al resultado, es decir, 5 en el ejemplo de la figura 4b. Si el tamaño de ventana de congestión en el momento de la retransmisión es un valor par, entonces este procedimiento significaría que la ventana de congestión permanecerá con el mismo tamaño. Dado que la ventana de congestión tiene un tamaño que se corresponde con un múltiplo impar del tamaño máximo de segmento en el ejemplo mostrado, el tamaño de ventana de congestión vuelve a un valor ligeramente menor que el valor anterior a la retransmisión, a saber 10,5 en el ejemplo de la figura 4b.
Preferiblemente, el control del tamaño de ventana de congestión se desacopla del procedimiento de retransmisión, de tal manera que el proceso avanza según se muestra en la figura 4c. Particularmente, después de recibir el número umbral de acuses de recibo duplicados (en el ejemplo de la figura 4c el valor de Th es igual a 5, al igual que en la figura 4b), el tamaño de ventana de congestión permanece inalterado y tras recibir acuses de recibo adicionales, se incrementa linealmente el tamaño de ventana de congestión, por ejemplo según el algoritmo de evitación de congestión que es bien conocido en TCP.
Las ventajas de las realizaciones mostradas en las figuras 4b y 4c con respecto a la situación mostrada en la figura 4a y también con respecto a la técnica anterior de Tamura y otros se hacen más pronunciadas si la ventana de congestión es capaz de alcanzar tamaños que son mucho mayores de 3. Esto puede esperarse si la red de retransmisión sobre la cual se están enviando unidades de datos tiene una gran capacidad, como por ejemplo un sistema que funciona según la norma de sistema telefónico móvil universal (UMTS). En consecuencia, la presente invención se aplica preferiblemente en el contexto de protocolos que funcionan sobre protocolos de capa de enlace que proporcionan tales enlaces de alta velocidad de datos. En otras palabras, es preferible aplicar el método de la presente invención a una capa de transporte, denominada L4 en la norma OSI, cuando la capa de enlace L2, sobre la cual se implementa la capa L4, es una capa asociada con una red de transmisión de alto ancho de banda, tal como la red UMTS. Dado que el método de la presente invención es capaz de ocuparse de la reordenación, la presente invención es especialmente ventajosa si las capas inferiores de protocolo por debajo de L4 están implementadas de tal manera que puedan liberar fuera de orden unidades de datos L4, en cuyo caso es probable que tenga lugar una reordenación.
Se describirá ahora haciendo referencias a las figuras 3a y 3b un ejemplo de un intercambio de segmentos y acuses de recibo correspondientes entre un par emisor y un par receptor, tanto para la técnica anterior como al aplicar la presente invención. Más específicamente, la figura 3a muestra el caso en donde un emisor envía segmentos, que están referenciados por una variable entera n, a un receptor. En el ejemplo de la figura 3a, se envía un segmento n y se acusa recibo del mismo, mientras que un segmento n+1 es perdido en la transmisión. Como consecuencia, el receptor únicamente acusa recibo del segmento n como el último segmento de datos correctamente recibido de la secuencia que se recibió en el orden apropiado de la secuencia, aunque el receptor haya recibido correctamente los segmentos n+2, n+3, etc. Como ya se mencionó, la figura 3a muestra la situación de la técnica anterior en el TCP estándar, en donde se ejecuta una retransmisión después de la recepción del tercer acuse de recibo duplicado. Se muestra con una flecha en negrita la retransmisión del segmento n+1. Después de haber recibido correctamente el segmento transmitido n+1, el receptor acusa recibo del segmento n+11 como el último segmento de datos correctamente recibido de la secuencia que se recibió en el orden apropiado de la secuencia.
La figura 3b muestra la misma situación inicial que en la figura 3a, pero se aplica la presente invención y se determina el umbral de acuse de recibo duplicado sobre la base del tamaño de la ventana de congestión, particularmente como una mitad de este tamaño de ventana de congestión (determinado en múltiplos del tamaño máximo de segmento). Por tanto, el umbral de acuse de recibo duplicado no está restringido a un valor específico (como en el caso del TCP estándar) ni tampoco a un valor máximo específico (como en el caso del artículo de Tamura). En el ejemplo de la figura 3b, se presume que el tamaño de ventana de congestión es 10 u 11, de tal manera que el umbral de acuse de recibo duplicado es 5. Como resultado, el emisor espera un periodo de tiempo mayor \DeltaT hasta que retransmite el segmento n+1, si la situación es la mostrada en la figura 3b, particularmente cuando llega un quinto acuse de recibo duplicado al lado del emisor. Por otro lado, si el segmento n+1 no se ha perdido de hecho, sino que únicamente se ha retrasado, y llegaría durante el tiempo \DeltaT indicado en la figura 3b, entonces se acusaría recibo de la correcta recepción del segmento n+1 antes de que tenga lugar una retransmisión en el lado del emisor, dado que el número de umbral de acuse de recibo duplicado no se alcanzará en ese caso.
El método de la presente invención puede ponerse en práctica de cualquier manera adecuada o apropiada, y puede estar presente especialmente en forma de un programa de ordenador y, en consecuencia, también en la forma de un medio de almacenamiento que aloje tal programa de ordenador. Igualmente, la invención puede estar presente en la forma de un dispositivo de comunicación concebido para funcionar según el método de la invención.
Aunque la presente invención se ha descrito a modo de realizaciones detalladas, la invención no está de ninguna manera restringida a estas realizaciones, puesto que viene definida por las reivindicaciones anexas. Asimismo, los números de referencia incluidos con las reivindicaciones no han de entenderse como restrictivos, dado que únicamente sirven para facilitar la lectura de las reivindicaciones.

Claims (21)

1. Un método para controlar el flujo de una cantidad de datos desde un par emisor hasta un par receptor de un protocolo de comunicación predeterminado, que comprende:
dividir dicha cantidad de datos en una pluralidad de segmentos de datos, ordenándose dichos segmentos de datos según una secuencia,
transmitir dichos segmentos de datos desde dicho par emisor hasta dicho par receptor en el orden de dicha secuencia,
determinar en dicho par receptor si un segmento de datos se recibió correctamente, y si un segmentos de datos correctamente recibido está en el orden apropiado de dicha secuencia,
enviar mensajes de acuse de recibo desde dicho par receptor hasta dicho par emisor, en donde un mensaje de acuse de recibo indica la correcta recepción de un segmento de datos e identifica el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia, y
si el par receptor recibe un número umbral de mensajes de acuse de recibo duplicados que identifican cada uno de ellos el mismo un segmento de datos como el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia, retransmitir el segmento que sigue inmediatamente a dicho un segmento de datos,
en donde dicho método comprende un procedimiento de adaptación de número umbral para adaptar dinámicamente dicho número umbral, lo cual comprende ejecutar un procedimiento de determinación de número de segmentos de datos, siendo dicho número de segmentos de datos un entero que identifica un número de segmentos de datos perteneciente a un grupo predeterminado asociado con un control de flujo,
caracterizado porque
dicho procedimiento de adaptación de número umbral comprende
dividir dicho número de segmentos de datos por un factor predeterminado, y
adaptar dicho número umbral sobre la base del resultado de dividir dicho número de segmentos de datos por el factor predeterminado, y
dicho procedimiento de adaptación de número umbral está concebido de tal manera que dicho número umbral puede asumir valores mayores de tres.
\vskip1.000000\baselineskip
2. El método según la reivindicación 1, en el que dicho factor predeterminado es un número entero.
3. El método según la reivindicación 2, en el que dicho factor predeterminado es dos.
4. El método según una de las reivindicaciones 1 a 3, en el que dicho paso de adaptar dicho número umbral sobre la base del resultado de dividir dicho número de segmentos de datos por el factor predeterminado comprende hacer dicho número umbral igual a dicho resultado si dicho resultado es un número entero, y ejecutar, en caso contrario, una operación de redondeo predeterminada sobre dicho resultado y hacer luego el número umbral igual al resultado de dicha operación de redondeo.
5. El método según una de las reivindicaciones 1 a 4, en el que el control del flujo de segmentos de datos implica una técnica de ventana deslizante que usa una o más ventanas, y dicho grupo predeterminado está asociado con una dada de dichas una o más ventanas.
6. El método según la reivindicación 5, en el que dicho grupo predeterminado está asociado con una ventana que es calculada por dicho par emisor.
7. El método según una de las reivindicaciones 5 o 6, en el que dicha ventana dada es una ventana de congestión, estando asociada una ventana de congestión con un subprocedimiento de control de flujo según el cual, al comienzo del envío de dicha pluralidad de segmentos de datos, dicho par emisor inicializa el tamaño de dicha ventana de congestión según un valor inicial predeterminado y luego controla el tamaño dependiendo de dichos mensajes de acuse de recibo y de la aparición de eventos indicadores de congestión.
8. El método según la reivindicación 7, en el que dicho protocolo de comunicación predeterminado es el Protocolo de Control de Transmisión (TCP) y dicha ventana de congestión es la ventana de congestión (cwnd) de TCP.
9. El método según una de las reivindicaciones 5 a 8, en el que dicho procedimiento de determinación de número de segmentos de datos comprende dividir el tamaño de dicha ventana dada por un indicador de tamaño de segmento de datos.
10. El método según la reivindicación 9, en el que dicho indicador de tamaño de segmento de datos es el tamaño de segmento máximo.
11. El método según una de las reivindicaciones 1 a 4, en el que dicho grupo predeterminado es el conjunto de segmentos de datos pendientes, de tal manera que dicho número de segmentos de datos es igual al número de segmentos de datos pendientes, siendo un segmento de datos pendiente un segmento de datos que se envió por dicho par emisor, pero del cual dicho par emisor no recibió un mensaje de acuse de recibo identificando dicho segmento de datos como el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia.
12. El método según una de las reivindicaciones 1 a 11, en el que dicho número umbral se adapta cada vez que cambia dicho grupo predeterminado.
13. El método según una de las reivindicaciones 1 a 12, en el que dicho número umbral se actualiza al menos cada primera vez que se recibe un mensaje de acuse de recibo duplicado para cada uno de dichos segmentos de datos.
14. El método según la reivindicación 13, en el que dicho número umbral se actualiza cada vez que se recibe un mensaje de acuse de recibo duplicado.
15. El método según una de las reivindicaciones 1 a 11, en el que dicho número umbral se actualiza cada vez que se recibe un mensaje de acuse de recibo.
16. El método según una de las reivindicaciones 1 a 15, en el que dicho número umbral se actualiza cada vez que se recibe un mensaje de acuse de recibo que identifica un segmento de datos pendiente, siendo un segmento pendiente un segmento que se envió por dicho par emisor, pero del cual dicho par emisor no recibió un mensaje de acuse de recibo identificando dicho segmento como el último segmento de datos correctamente recibido de dicha secuencia que se recibió en el orden apropiado de dicha secuencia.
17. El método según una de las reivindicaciones 1 a 16, en el que dicho protocolo de comunicación predeterminado se encuentra en una primera capa de protocolo (L4), y una segunda capa de protocolo (L2), que comprende una implementación de protocolo predeterminada, está dispuesta debajo de dicha primera capa de protocolo (L4) para recibir dichos segmentos de datos desde el par emisor de dicho protocolo de comunicación predeterminado y liberar dichos segmentos de datos hacia el par receptor de dicho protocolo de comunicación predeterminado, en donde dicha implementación de protocolo predeterminada es operable para liberar dichos segmentos de datos fuera del orden de dicha secuencia.
18. El método según la reivindicación 17, en el que dicha primera capa (L4) de protocolo es una capa de transporte y dicha segunda capa (L2) de protocolo es una capa de enlace.
19. Un programa de ordenador concebido para realizar el método de una de las reivindicaciones 1 a 18 cuando se ejecuta en un ordenador.
20. Un dispositivo de memoria legible por ordenador que almacena el programa de ordenador según la reivindicación 19.
21. Un dispositivo de comunicación concebido para enviar y recibir datos, estando dicho dispositivo de comunicación concebido para funcionar como un par emisor y receptor según el método de una de las reivindicaciones
1 a 18.
ES01107783T 2001-04-04 2001-04-04 Metodo de control de flujo de datos. Expired - Lifetime ES2310530T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP01107783A EP1251661B1 (en) 2001-04-04 2001-04-04 Data flow control method

Publications (1)

Publication Number Publication Date
ES2310530T3 true ES2310530T3 (es) 2009-01-16

Family

ID=8176978

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01107783T Expired - Lifetime ES2310530T3 (es) 2001-04-04 2001-04-04 Metodo de control de flujo de datos.

Country Status (8)

Country Link
US (1) US7203167B2 (es)
EP (1) EP1251661B1 (es)
JP (1) JP4016387B2 (es)
CN (1) CN1283078C (es)
AT (1) ATE405066T1 (es)
DE (1) DE60135304D1 (es)
ES (1) ES2310530T3 (es)
WO (1) WO2002082746A1 (es)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1018821A1 (en) * 1999-01-08 2000-07-12 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Communication device and method
EP1518344B1 (en) * 2002-06-28 2005-11-02 International Business Machines Corporation Method and apparatus for adapting a link parameter according to the channel quality
US7418494B2 (en) 2002-07-25 2008-08-26 Intellectual Ventures Holding 40 Llc Method and system for background replication of data objects
DE10234348B4 (de) * 2002-07-26 2018-01-04 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung einer Datenübertragung
US8533307B2 (en) 2002-07-26 2013-09-10 Robert Bosch Gmbh Method and device for monitoring a data transmission
EP1543658B1 (en) * 2002-08-14 2007-10-17 Broadcom Corporation One shot rdma having a 2-bit state
US6934751B2 (en) * 2002-11-29 2005-08-23 Motorola, Inc. Method and device for providing more accurate subscriber device billing
JP4244159B2 (ja) * 2003-05-16 2009-03-25 株式会社エヌ・ティ・ティ・ドコモ 受信装置、通信システムおよびプログラム
US7613109B2 (en) * 2003-06-05 2009-11-03 Nvidia Corporation Processing data for a TCP connection using an offload unit
US7420931B2 (en) * 2003-06-05 2008-09-02 Nvidia Corporation Using TCP/IP offload to accelerate packet filtering
US7266754B2 (en) * 2003-08-14 2007-09-04 Cisco Technology, Inc. Detecting network denial of service attacks
JP2005167353A (ja) * 2003-11-28 2005-06-23 Ntt Docomo Inc 送信装置およびプログラム
EP1704685A1 (en) * 2003-12-23 2006-09-27 Telefonaktiebolaget LM Ericsson (publ) Method and device for controlling a queue buffer
US7203961B1 (en) 2004-01-09 2007-04-10 Cisco Technology, Inc. Preventing network reset denial of service attacks
US7472416B2 (en) * 2004-01-09 2008-12-30 Cisco Technology, Inc. Preventing network reset denial of service attacks using embedded authentication information
US7114181B2 (en) 2004-01-16 2006-09-26 Cisco Technology, Inc. Preventing network data injection attacks
CN1906884B (zh) * 2004-01-16 2012-09-05 思科技术公司 防止网络数据注入攻击
US7257840B2 (en) * 2004-01-16 2007-08-14 Cisco Technology, Inc. Preventing network data injection attacks using duplicate-ACK and reassembly gap approaches
JP4349141B2 (ja) * 2004-01-30 2009-10-21 沖電気工業株式会社 中継装置、通信システムおよび中継方法
US7940796B2 (en) * 2004-02-27 2011-05-10 Research In Motion Limited System and method for delivery of packets
KR100533686B1 (ko) * 2004-05-21 2005-12-05 삼성전자주식회사 모바일 애드 혹 네트워크에서의 데이터 전송 방법 및 이를이용한 네트워크 장치
US7565694B2 (en) * 2004-10-05 2009-07-21 Cisco Technology, Inc. Method and apparatus for preventing network reset attacks
US8200838B2 (en) * 2004-12-22 2012-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Data flow control with duplicate acknowledgement
CN104301079A (zh) * 2004-12-22 2015-01-21 艾利森电话股份有限公司 使用重复确认的数据流控制
KR100704355B1 (ko) * 2005-03-16 2007-04-09 가부시키가이샤 엔.티.티.도코모 이동국, 이동 통신 시스템 및 이동 통신 방법
US7366132B2 (en) * 2005-03-30 2008-04-29 At&T Corp. Loss tolerant transmission control protocol
US7889654B2 (en) 2005-03-30 2011-02-15 At&T Intellectual Property Ii, L.P. Loss tolerant transmission control protocol
WO2007084177A2 (en) * 2005-05-06 2007-07-26 California Institute Of Technology Efficient loss recovery architecture for loss-decoupled tcp
US7725595B1 (en) * 2005-05-24 2010-05-25 The United States Of America As Represented By The Secretary Of The Navy Embedded communications system and method
KR20080053334A (ko) * 2005-10-03 2008-06-12 마쯔시다덴기산교 가부시키가이샤 통신 장치
US7684319B2 (en) * 2006-06-29 2010-03-23 Intel Corporation Transmission control protocol congestion window
CN100466625C (zh) * 2006-09-07 2009-03-04 华为技术有限公司 一种实现业务流量控制的方法及系统
CN101227478B (zh) * 2008-02-02 2012-09-05 中兴通讯股份有限公司 一种对抗链路乱序的方法
KR101680868B1 (ko) * 2009-11-18 2016-11-30 삼성전자주식회사 무선통신시스템에서의 데이터 전송 제어장치 및 방법
CN101815004B (zh) * 2010-03-03 2011-11-16 烽火通信科技股份有限公司 无源光网络的设备业务配置方法
US9054998B2 (en) 2013-02-06 2015-06-09 Freescale Semiconductor, Inc. System and method for maintaining packet order in an ordered data stream
JP6409558B2 (ja) * 2014-12-19 2018-10-24 富士通株式会社 通信装置、中継装置、および、通信制御方法
WO2018189416A1 (en) * 2017-04-13 2018-10-18 Nokia Solutions And Networks Oy Backwards feedback bundling
CN107800519B (zh) * 2017-11-20 2020-12-01 烽火通信科技股份有限公司 一种数据包的重传方法和重传系统
CN110324256B (zh) * 2019-05-13 2022-10-14 西南交通大学 一种流式数据传输控制方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11163947A (ja) * 1997-09-22 1999-06-18 Toshiba Corp ゲートウェイ装置、無線端末装置、ルータ装置および通信ネットワークのゲートウェイ制御方法
US6882624B1 (en) * 1998-04-09 2005-04-19 Nokia Networks Oy Congestion and overload control in a packet switched network
US6483805B1 (en) * 1998-12-28 2002-11-19 Nortel Networks Limited Internet differentiated services service for transaction applications
US7082467B2 (en) * 2000-02-10 2006-07-25 Hughes Network Systems Method and device for selective transport level spoofing based on information in transport level packet
US6958997B1 (en) * 2000-07-05 2005-10-25 Cisco Technology, Inc. TCP fast recovery extended method and apparatus
US7046672B2 (en) * 2000-11-16 2006-05-16 Microsoft Corporation Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network

Also Published As

Publication number Publication date
JP2004523992A (ja) 2004-08-05
DE60135304D1 (de) 2008-09-25
EP1251661A1 (en) 2002-10-23
EP1251661B1 (en) 2008-08-13
CN1283078C (zh) 2006-11-01
US7203167B2 (en) 2007-04-10
WO2002082746A1 (en) 2002-10-17
ATE405066T1 (de) 2008-08-15
EP1251661A8 (en) 2003-04-02
JP4016387B2 (ja) 2007-12-05
US20020145976A1 (en) 2002-10-10
CN1511396A (zh) 2004-07-07

Similar Documents

Publication Publication Date Title
ES2310530T3 (es) Metodo de control de flujo de datos.
ES2221473T3 (es) Metodo y dispositivo de comunicacion.
ES2239721T3 (es) Metodo y receptor para la transferencia mejorada de paquetes de datos en un protocolo de transmision con peticiones de repeticion.
ES2296966T3 (es) Metodo y transmision para una transferencia eficaz de datos por paquetes en un protocolo de transmision con peticiones de repeticion.
ES2316361T3 (es) Notificacion de descarte de paquete para protocolo de retransmision semifiable.
ES2228604T3 (es) Metodo y dispositivo para determinar un parametro de temporizacion.
Mathis et al. RFC2018: TCP selective acknowledgement options
ES2402828T3 (es) Establecimiento de prioridades de acuses de recibo en redes inalámbricas
US8004983B2 (en) Methods to improve transmission control protocol (TCP) performance over large bandwidth long delay links
CA2663996C (en) Optimisation process of the control of traffic in a packet telecommunications network
EP2632102A1 (en) Method and device for data transmission
CN101945341B (zh) 一种无线传感器网络点对点传输协议
ES2684433T3 (es) Método para retransmisión de paquetes
US7813324B1 (en) Scalable mobile adaptive reliable ToS based automatic retransmit request
WO2022205248A1 (zh) 一种基于时间敏感传输协议的通信方法和相关装置
ES2561161T3 (es) Procedimiento de transmisión/recepción en tiempo real de datos por paquetes entre un servidor y un terminal cliente, servidor y terminal correspondientes
US20120102216A1 (en) Method And Device For Message Retransmission
CN101088243A (zh) 使用重复确认的数据流控制
CN115633104B (zh) 数据发送方法、数据接收方法、装置及数据收发系统
ES2199835T3 (es) Metodo y sistema para el acuse de recibo de datos.
ES2657298T3 (es) Procedimiento de transmisión en una red ad hoc multisalto IP
US7653060B2 (en) System and method for implementing ASI over long distances
US9510242B2 (en) Reducing superfluous traffic in a network
CA2010809A1 (en) Technique for acknowledging packets
US9306769B2 (en) Cell-based link-level retry scheme