ES2310530T3 - Metodo de control de flujo de datos. - Google Patents
Metodo de control de flujo de datos. Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004891 communication Methods 0.000 claims abstract description 17
- 230000006978 adaptation Effects 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/1607—Details of the supervisory signal
- H04L1/1635—Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems 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.
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.
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.
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.
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.
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.
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.
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.
invención.
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.
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.
1 a 18.
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)
| 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)
| 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 |
-
2001
- 2001-04-04 EP EP01107783A patent/EP1251661B1/en not_active Expired - Lifetime
- 2001-04-04 AT AT01107783T patent/ATE405066T1/de not_active IP Right Cessation
- 2001-04-04 DE DE60135304T patent/DE60135304D1/de not_active Expired - Lifetime
- 2001-04-04 ES ES01107783T patent/ES2310530T3/es not_active Expired - Lifetime
-
2002
- 2002-03-25 WO PCT/EP2002/003347 patent/WO2002082746A1/en not_active Ceased
- 2002-03-25 JP JP2002580578A patent/JP4016387B2/ja not_active Expired - Lifetime
- 2002-03-25 CN CN02807874.8A patent/CN1283078C/zh not_active Expired - Lifetime
- 2002-04-01 US US10/114,517 patent/US7203167B2/en not_active Expired - Lifetime
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 |