ES2249474T3 - Control de flujo. - Google Patents

Control de flujo.

Info

Publication number
ES2249474T3
ES2249474T3 ES01965510T ES01965510T ES2249474T3 ES 2249474 T3 ES2249474 T3 ES 2249474T3 ES 01965510 T ES01965510 T ES 01965510T ES 01965510 T ES01965510 T ES 01965510T ES 2249474 T3 ES2249474 T3 ES 2249474T3
Authority
ES
Spain
Prior art keywords
node
datagram
mode
transmitter
tcp
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
ES01965510T
Other languages
English (en)
Inventor
Jussi Ruutu
Jian Ma
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.)
Nokia Inc
Original Assignee
Nokia Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9896228&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2249474(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Inc filed Critical Nokia Inc
Application granted granted Critical
Publication of ES2249474T3 publication Critical patent/ES2249474T3/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
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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]

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)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Saccharide Compounds (AREA)
  • Paper (AREA)
  • Magnetically Actuated Valves (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

Nodo (25) de comunicaciones de datos destinado a funcionar en un camino (22) de comunicaciones entre un transmisor de datagramas (20) y un receptor de datagramas (21) bajo un protocolo en el que la transmisión de datagramas por parte del transmisor depende de la recepción, por parte de este último, de un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente, comprendiendo el nodo: un aparato (29) de detección para detectar comunicaciones en el camino; un generador (36) de confirmaciones de recepción adaptado para generar mensajes de confirmación de recepción para datagramas y transmitir dichos mensajes hacia el transmisor; y un aparato de interrupción del flujo adaptado para interrumpir comunicaciones en el camino; caracterizado porque el nodo está adaptado para funcionar en el segundo y en por lo menos uno de entre el primero y el tercero de los siguientes modos: - un primer modo en el cual no interrumpe las comunicaciones en el camino; - un segundo modo en el cual transmite un mensaje de confirmación de recepción para un datagrama que sucede al último datagrama detectado en el nodo; y - un tercer modo en el cual retarda la comunicación de mensajes de confirmación de recepción hacia el transmisor.

Description

Control de flujo.
La presente invención se refiere al control del flujo de datos, especialmente en redes de las cuales se requiere que funcionen a una velocidad elevada.
Muchas redes usan el protocolo de control de transmisión (TCP) como su protocolo de capa de transporte. El protocolo de control de transmisión es el protocolo de transporte principal en el conjunto de protocolos TCP/IP usado habitualmente. El protocolo de Internet (IP) no proporciona un tren de bits fiable: los errores durante el transcurso de la transmisión no son corregidos por el IP. La superposición del TCP sobre un enlace IP implementa un tren de bytes fiable con respecto al servicio de datagramas no fiable proporcionado por el IP. Como parte de la implementación del servicio fiable, el TCP también es responsable del control del flujo y de la congestión: garantizando que los datos se transmiten a una velocidad en concordancia con las capacidades tanto del receptor como de los enlaces intermedios en el camino de la red. Como consecuencia, el origen de la mayoría de los problemas del caudal en un sistema TCP/IP se encuentra en el TCP.
El TCP es uno de los pocos protocolos de transporte que tiene mecanismos de control de la congestión (ver las publicaciones "TCP/IP Illustrated Volume 1, The protocols", de W. Richard Stevens, y "Transport Control Protocol", IETF RFC 793, Septiembre de 1981). Un elemento clave del mecanismo de congestión del TCP es su algoritmo sonda de arranque lento. Cuando una conexión TCP se pone en marcha, la especificación TCP requiere que la conexión sea prudente y que considere que el ancho de banda disponible para el receptor es pequeño. Se supone que el TCP usa un algoritmo denominado de arranque lento, para sondear el camino con vistas a saber cuánto ancho de banda hay disponible antes de aumentar la velocidad del flujo de datos. El arranque lento se usa de manera que cuando se pone en marcha una conexión TCP nueva, el flujo TCP continuará después de cierto periodo de reposo o cuando no se haya conseguido devolver una confirmación de recepción (ACK) después de un periodo fijado (lo cual indica un paquete perdido). Adicionalmente, se reduce el tamaño de la ventana de transmisión. Cada confirmación de recepción TCP especifica un paquete correspondiente de manera que el sistema puede identificar qué paquete se ha perdido.
Se establece un enlace TCP entre dos unidades, una de las cuales es la fuente de un mensaje de datos a transmitir y la otra debe recibir el mensaje de datos. Las dos unidades están conectadas por un camino de datos a través del cual deben desplazarse los datos. La unidad fuente genera datagramas (es decir, paquetes) que combinados representan el mensaje que debe ser enviado. Los datagramas se transmiten a través del camino de datos. Finalmente, la unidad receptora vuelve a ensamblar los datagramas, solicitando además dicha unidad receptora la retransmisión de cualquier datagrama que no pueda decodificar correctamente.
Mientras se está ejecutando el algoritmo de arranque lento, la fuente TCP comienza con una ventana de transmisión imaginaria fijada a un segmento. En este estado, la misma no transmitirá más de un datagrama (es decir, paquete) si no ha recibido ninguna confirmación de recepción de la unidad receptora. Cuando se recibe una confirmación de recepción (ACK), el tamaño de la ventana se reduce en uno. En la práctica, el tamaño de la ventana tiende a aumentar exponencialmente, ya que una ACK aumenta el tamaño a dos, las ACK de estos dos segmentos aumentan el tamaño a cuatro, sus ACK aumentan el tamaño a ocho, etcétera. Esta situación se ilustra en la figura 1. La línea 1 de la figura 1 ilustra el aumento exponencial del tamaño de la ventana WS hasta un máximo WS_{dispon} en el instante de tiempo t_{1}.
Existen dos problemas relacionados con el algoritmo de arranque lento en redes de alta velocidad. En primer lugar, el algoritmo sonda es tal que el enlace puede tardar un tiempo considerable en alcanzar su velocidad máxima. El tiempo (t_{1} en la figura 1) requerido para llegar a la velocidad máxima es una relación directa del tiempo de ida y vuelta (RTT), el producto de retardo-ancho de banda (DBW) y una relación inversa de la longitud media del segmento (L). Si el ancho de banda disponible sube o el tiempo de ida y vuelta aumenta, o se producen ambas situaciones, este tiempo de arranque puede resultar bastante largo. Si, por otro lado, el enlace está en reposo, durante ese periodo no se hará uso de gran parte del ancho de banda del enlace y por lo tanto, potencialmente, el mismo se desperdicia. Esta situación se ilustra en la figura 1. Puede considerarse que desde la puesta en marcha de la conexión TCP, existe un ancho de banda disponible que se corresponde con el tamaño de la ventana disponible WS_{dispon}. No obstante, ese ancho de banda no se usa totalmente hasta el instante de tiempo t_{1}. Por esta razón, el área sombreada 2 de la figura 1 representa el ancho de banda desperdiciado.
Un problema potencialmente más significativo es que en muchos casos (especialmente cuando se deben enviar mensajes relativamente cortos) se habrá completado la transferencia total de datos antes de que haya finalizado el algoritmo de arranque lento y de que se haya alcanzado el tamaño de ventana máximo WS_{dispon} limitado por el ancho de banda. En esta situación, el usuario nunca probará el ancho de banda completo del enlace. Todo el tiempo de transferencia se consumirá en el arranque lento. Existen algunas situaciones prácticas habituales en las que se puede producir dicho fenómeno. Por ejemplo, este problema resulta particularmente grave para conexiones (como las que se usan para transferir datos de la malla mundial multimedia) de protocolo de transferencia de hipertexto (HTTP) ya que el HTTP es conocido por poner en marcha una conexión TCP nueva por cada elemento de una página web.
Además del derroche de ancho de banda que viene provocado por el algoritmo de arranque lento, existe un punto débil en el propio algoritmo de arranque lento por cuanto el mismo interpreta una pérdida de paquete como una indicación de congestión. De hecho, la pérdida de paquetes puede ser debida a otras causas, tales como errores de transmisión. No existe ningún camino sencillo abierto en el TCP para distinguir las pérdidas debidas a errores de transmisión con respecto a las pérdidas debidas a la congestión, por lo que el algoritmo de arranque lento se ha diseñado considerando prudentemente que todas las pérdidas son debidas a la congestión. De este modo, incluso si se produce una pérdida de paquetes debida a un error de transmisión en lugar de la congestión, la fuente TCP reduce su velocidad de transmisión. Después de dicha reducción de la velocidad, se puede tardar un tiempo innecesariamente prolongado en alcanzar la velocidad de transmisión completa. Como consecuencia, nuevamente se sigue desperdiciando el ancho de banda disponible.
Estos problemas se acentúan cuando el TCP se ejecuta sobre enlaces que presentan tasas de errores relativamente altas o una capacidad de datos variable. Por ejemplo, en algunos casos los enlaces inalámbricos (tales como los correspondientes a los teléfonos celulares o los satélites) presentan unas tasas de errores mayores que en los enlaces terrestres convencionales por cable. Dichas tasas de errores más grandes son importantes por dos razones. En primer lugar, provocan errores en los datagramas, los cuales deberán volver a ser transmitidos. En segundo lugar, el TCP interpreta típicamente una pérdida como una señal de congestión y cuando se observa dicha pérdida el mismo vuelve a una versión modificada del algoritmo de arranque lento.
Sí que existen sistemas que pueden hacer uso del ancho de banda de reserva de un enlace que sobra en ese momento de otras conexiones que se están ejecutando a través del enlace. Un ejemplo es el servicio de velocidad binaria disponible (ABR) del sistema de modo de transferencia asíncrono (ATM). Con el servicio ABR, un usuario puede usar el ancho de banda que sobra de la velocidad binaria constante (CBR) y otro tráfico de prioridad superior. Otro ejemplo es el sistema genérico de radiocomunicaciones por paquetes (GRPS), el cual utiliza el ancho de banda de una red telefónica celular del sistema global para comunicaciones móviles (GSM) que no se ha usado para las conexiones de voz GSM. En el sistema GSM, existe una serie de intervalos de frecuencia GSM, estando dividido cada uno de ellos en ocho intervalos de tiempo. Cada combinación de intervalo de tiempo y frecuencia puede soportar una conexión de voz GSM. La idea básica del GPRS es usar intervalos de tiempo que no estén siendo usados en ese momento para las comunicaciones de voz con vistas a transportar paquetes de datos. Naturalmente, el número de intervalos de tiempo disponibles para el GPRS varía con el tiempo, dependiendo de la demanda de conexiones de voz GSM del momento en cuestión.
Uno de los problemas de los sistemas dinámicos de este tipo es que el ancho de banda asignado para el servicio varía con el tiempo. Por ejemplo, cuando se transmite tráfico TCP a través del GPRS, el ancho de banda disponible para las conexiones TCP puede aumentar o reducirse de forma repentina (cuando finalizan o comienzan simultáneamente varias llamadas GSM). Esto significa que una conexión TCP a través de un sistema dinámico de este tipo puede tener que detenerse y arrancar frecuentemente, y en ese entorno, el algoritmo de arranque lento del TCP evita que la conexión TCP haga un uso total del ancho de banda disponible. De este modo, se desperdician recursos de la red y un usuario no puede aprovecharse completamente del ancho de banda disponible dinámico. Este problema resulta especialmente importante con sistemas de comunicaciones inalámbricas, ya que la capacidad de la interfaz de radiocomunicaciones es limitada y cara.
Si el sistema TCP dispusiera de más información sobre las características del camino a través del cual se están enviando los datos, en ese caso podría ser capaz de acelerar el proceso de arranque lento, por ejemplo, eludiendo por lo menos parte del proceso de arranque lento y comenzando la transmisión a una velocidad algo superior a la que representa un datagrama, si se supiera que existe la probabilidad de que la misma sea soportada por el enlace. Para acelerar el proceso de arranque lento, se han propuesto varios esquemas.
Una de dichas técnicas se conoce como "Fisgoneo (snooping) TCP". (Ver publicación "Evaluation of TCP Vegas: Emulation and Experiment", de Z. Liu et al., Proc. ACM SIGCOMM'95, Agosto de 1995, págs. 185 a 196; e "Improving TCP/IP Performance over Wireless Networks", de H. Balakrishnan, et al., Proc. ACM SIGCOMM'95, Agosto de 1995). Esta idea se ilustra en la figura 2. La idea requiere la presencia de un encaminador u otro nodo 10 entre la fuente TCP 11 y el receptor TCP 12. El nodo 10 envía de vuelta hacia la fuente 11 confirmaciones ACK correspondientes a los datos TCP que ha enviado la fuente, con vistas a generar en la fuente 11 la ilusión de un camino de retardo corto. A continuación, el nodo 10 suprime las ACK que vuelven desde el receptor 12, y acepta la responsabilidad de volver a transmitir hacia el receptor 12 cualquier segmento perdido en el camino después del encaminador según el sentido de avance (es decir, sobre la parte del camino entre el nodo 10 y el receptor 12). De este modo, dicho nodo 10 de fisgoneo TCP proporciona a la fuente TCP 11 la impresión de que el nodo 10 es el receptor TCP real.
La figura 2 ilustra el flujo de paquetes (PKn) y las confirmaciones de recepción numeradas de forma correspondiente (ACKn). En la disposición mostrada en la figura 2, cuando un paquete PK64 alcanza el nodo 10 proveniente de la fuente 11, el nodo genera una confirmación de recepción ACK64 correspondiente para el paquete y devuelve la misma a la fuente. El nodo 10 almacena en la memoria 13 los paquetes que él mismo ha recibido pero cuya recepción no ha sido confirmada todavía por el receptor 12. A su vez, el nodo 10 envía paquetes al receptor (ver los paquetes PK59, PK60). El receptor devuelve confirmaciones de recepción para los paquetes que ha recibido correctamente (ACK58, ACK59). Cuando el nodo 10 recibe una confirmación de recepción de este tipo (por ejemplo, la ACK57 tal como se ilustra en la figura 2), el mismo suelta el paquete correspondiente de sus medios 13 de almacenamiento. De este modo, el nodo 10 de fisgoneo debe realizar una cantidad considerable de trabajo después de enviar una ACK a la fuente 11. El mismo debe almacenar en memoria intermedia el segmento de datos que acaba de recibir debido a que en ese momento la fuente 11 tiene la libertad de rechazar su copia ya que se ha confirmado la recepción del segmento, y por lo tanto si el segmento se pierde entre el encaminador y el receptor, el encaminador debe poder responsabilizarse completamente de volver a transmitir dicho segmento. Por esta razón, los datos de la memoria intermedia no se pueden eliminar hasta que el nodo de fisgoneo obtenga las ACK pertinentes del receptor TCP 12. Desafortunadamente, este método presenta el gran problema de que la memoria intermedia en un nodo de fisgoneo se puede llenar rápidamente si se reduce el ancho de banda disponible (tal como los recursos de una red celular) entre el nodo y el receptor TCP (enlace 14 en la figura 2). El problema se ha ilustrado en la figura 3, la cual ilustra un paquete PK69 que desborda la capacidad de la memoria intermedia 13 del nodo 10.
Debería indicarse que la necesidad de que el nodo 10 almacene segmentos, y por lo tanto el problema del desbordamiento de la memoria intermedia, tiene su origen en el hecho de que el nodo de fisgoneo genera una confirmación de recepción que se corresponde con el mismo segmento TCP que acaba de recibir.
Otro de los planteamientos para superar algunos de los problemas del algoritmo de arranque lento TCP se conoce como TCP dividido. En este planteamiento, una conexión TCP se divide en múltiples conexiones TCP, con una conexión TCP especial. Como cada conexión TCP está terminada, el TCP dividido no es vulnerable a los caminos asimétricos. Además, el mismo funciona bien en los casos en los que las aplicaciones participan activamente en la gestión de conexiones TCP (tal como el almacenamiento de páginas web en memoria caché). No obstante, por otro lado el TCP dividido presenta los mismos problemas que el fisgoneo TCP, especialmente la acumulación de las memorias intermedias.
La publicación "TCP ACK pacing in ATM networks" de N Ghani describe un dispositivo de control de la cadencia de confirmaciones de recepción en un camino de transmisión. El dispositivo modula la temporización entre paquetes ACK TCP para limitar las emisiones durante los periodos de congestión. El dispositivo de control de la cadencia intercepta un paquete ACK y lo retarda si el enlace hacia adelante está congestionado.
El documento WO 00/21231 da a conocer una entidad de red de almacenamiento intermedio ubicada en un camino de transmisión. La entidad de almacenamiento intermedio intercepta paquetes y transmite un mensaje de estado a la entidad transmisora. La entidad de almacenamiento intermedio transmite el paquete recibido a la entidad receptora. Al recibir una confirmación de recepción de la entidad receptora, confirmando que el paquete se recibió correctamente, la entidad de almacenamiento intermedio transmite otro mensaje de estado a la entidad transmisora indicando la transmisión satisfactoria del paquete.
Por lo tanto, existe la necesidad de un método mejorado de funcionamiento en protocolos tales como el TCP para superar por lo menos parcialmente uno o más de los problemas descritos anteriormente.
Según un aspecto de la presente invención se proporciona un nodo de comunicaciones de datos destinado a funcionar en un camino de comunicaciones entre un transmisor de datagramas y un receptor de datagramas bajo un protocolo en el que la transmisión de datagramas por parte del transmisor depende de la recepción, por parte de este último, de un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente, comprendiendo el nodo: un aparato de detección para detectar las comunicaciones en el camino; un generador de confirmaciones de recepción capaz de generar mensajes de confirmaciones de recepción para datagramas y de transmitir dichos mensajes hacia el transmisor; y un aparato de interrupción del flujo capaz de interrumpir las comunicaciones en el camino; siendo capaz el nodo de funcionar en el segundo y en por lo menos uno de entre el primero y el tercero de los siguientes modos: un primer modo en el cual no interrumpe las comunicaciones en el camino; un segundo modo en el cual transmite un mensaje de confirmación de recepción para un datagrama que suceda al último datagrama detectado en el nodo; y un tercer modo en el cual retarda la comunicación de mensajes de confirmación de recepción hacia el transmisor.
Adecuadamente, en el primer modo, el nodo preferentemente no influye en las comunicaciones en el camino, de manera que los datagramas provenientes del transmisor pueden fluir libremente pasando por el nodo hacia el receptor y los mensajes de confirmación de recepción provenientes del receptor pueden fluir libremente hacia el transmisor.
En el segundo y/o tercer modo, el nodo preferentemente interrumpe la comunicación de los mensajes de confirmación de recepción provenientes del receptor hacia el transmisor. En el segundo y/o tercer modo, el nodo preferentemente interrumpe la comunicación de datagramas provenientes del transmisor hacia el receptor.
El nodo puede comprender una memoria capaz de almacenar datagramas y/o mensajes de confirmación de recepción. En el segundo y/o tercer modo, el nodo preferentemente almacena en la memoria datagramas detectados en la transmisión desde el transmisor al receptor. A continuación, en el segundo y/o tercer modo, si en un periodo fijado el nodo no detecta ningún mensaje de confirmación de recepción para un datagrama desde del receptor, el mismo puede volver a transmitir dicho datagrama hacia el receptor. Al recibir un mensaje de confirmación de recepción correspondiente a un datagrama, el nodo puede eliminar el datagrama de la memoria.
Preferentemente, el nodo comprende una unidad de determinación de modo para determinar el modo de funcionamiento del nodo. La unidad de determinación de modo es preferentemente capaz de determinar si hay capacidad disponible en el camino de comunicación, por ejemplo, ancho de banda sin usar en el camino de comunicación (preferentemente en ambas direcciones a través del camino), y/o capacidad disponible en dicha memoria del nodo (en caso de que la misma esté presente). Si existe dicha capacidad disponible, preferentemente la unidad de determinación de modo es capaz de provocar que el nodo funcione en el segundo modo. Preferentemente, la unidad de determinación de modo es capaz de determinar si existe congestión en el camino de comunicaciones. La congestión en el camino de comunicaciones puede venir indicada por retardos en la comunicación a través del camino (bien de datagramas o bien de confirmaciones de recepción), pérdidas excesivas de datos, demandas excesivas en el camino, etcétera. La congestión puede aparecer debido bien a un aumento de la cantidad de datos dirigidos a través del camino o bien a una reducción en la capacidad de datos (ancho de banda) del camino, o por ambos motivos simultáneamente. Cuando la unidad determina que existe congestión, preferentemente la misma es capaz de provocar que el nodo funcione en el tercer modo. En cualquier otro caso (es decir, si no existe capacidad disponible o congestión en el camino de comunicaciones), la unidad de determinación es capaz adecuadamente de provocar que el nodo entre en el primer modo.
Preferentemente, el nodo es capaz de funcionar en cualquiera de entre el primer, el segundo y el tercer modos.
De acuerdo con un segundo aspecto de la presente invención, se proporciona un método para la comunicación de datos a través de un camino de comunicaciones entre un transmisor de datagramas y un receptor de datagramas bajo un protocolo en el que la transmisión de datagramas por parte del transmisor depende de la recepción, por parte de este último, de un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente, existiendo un nodo ubicado en el camino de comunicaciones entre el transmisor y el receptor; comprendiendo el método: la transmisión de datagramas hacia el receptor por parte del transmisor; la detección de dichos datagramas por parte del nodo; y la transmisión repetida, por parte del nodo, hacia el transmisor, de un mensaje de confirmación de recepción correspondiente a un datagrama que sucede al último datagrama detectado en el nodo.
En ambos aspectos de la invención, el protocolo es preferentemente un protocolo de control de transmisión (TCP). Preferentemente, el protocolo proporciona un tipo de funcionamiento en el cual el transmisor no transmitirá un datagrama hasta que haya recibido un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente desde hace un intervalo almacenado, y con la mayor preferencia en el cual el intervalo almacenado se incrementa si se recibe un mensaje de confirmación de recepción. Este tipo de funcionamiento puede ser de arranque lento.
El intervalo almacenado se expresa preferentemente como un número de unidades de datos, por ejemplo, un número de datagramas o un número de bits. Preferentemente, el intervalo se expresa como un número de datagramas. En ese caso, el protocolo proporciona preferentemente un tipo de funcionamiento en el cual no se transmitirá un datagrama hasta que se haya recibido una confirmación de recepción correspondiente al datagrama que se transmitió n datagramas previamente, en el cual n es el número de datagramas expresado por el intervalo almacenado.
En ambos aspectos de la invención, por lo menos parte del camino de comunicaciones lo proporciona preferentemente un enlace de radiocomunicaciones, con la mayor preferencia un enlace celular de radiocomunicaciones.
A continuación se describirá la presente invención a título de ejemplo, haciendo referencia a los dibujos adjuntos, en los cuales:
la figura 1 ilustra el algoritmo de arranque lento TCP;
las figuras 2 y 3 ilustran aspectos del procedimiento de fisgoneo TCP;
la figura 4 muestra esquemáticamente la arquitectura de un sistema de comunicaciones;
la figura 5 ilustra regímenes preferidos del modo de funcionamiento;
las figuras 6 a 9 ilustran el funcionamiento del sistema de la figura 4 en los modos de la figura 5; y
la figura 10 ilustra una estrategia para seleccionar un modo de funcionamiento.
La figura 4 muestra una vista esquemática de un sistema de comunicaciones. El sistema de comunicaciones comprende una unidad emisora 20 conectada a una unidad receptora 21 por un camino bidireccional 22 de comunicaciones. La unidad emisora es capaz de descomponer un mensaje en paquetes y de enviarlo hacia la unidad receptora usando el protocolo TCP. En aras de una mayor simplicidad en la explicación, el camino 22 de comunicaciones se muestra de manera que comprende un canal 23 de salida y un canal 24 de retorno que pueden funcionar para enviar señales en direcciones opuestas, aunque en la práctica, el camino puede ser un único canal físico en cualquier punto de su dimensión longitudinal. El camino lo puede proporcionar una cadena de uno o más enlaces establecidos en serie, los cuales podrían ser del mismo o de diferente tipo físico (por ejemplo, cables fijos, canales de radiocomunicaciones o canales ópticos).
Se dispone de un nodo 25 establecido en el camino 22 de comunicaciones. El nodo 25 comprende conmutadores 26, 27 instalados, respectivamente, en los canales 23, 24 de salida y de retorno. Los conmutadores funcionan bajo el control de un controlador 28. Se dispone de un detector 29 de paquetes conectado a una salida del conmutador 26. Se dispone de un detector 30 de confirmaciones de recepción conectado a una salida del conmutador 27. Las otras salidas de los conmutadores 26, 27 van respectivamente al receptor 21 y el emisor 20. Las salidas de los detectores 29, 30 van al controlador 28. El nodo incluye también una memoria 31, en la cual el controlador 28 puede almacenar datos, y un generador 36 de confirmaciones de recepción el cual puede generar mensajes de confirmación de recepción para los paquetes bajo la dirección del controlador 28. En uno de los ajustes ("A") del conmutador 26, las señales entrantes hacia el nodo en el canal 23 (desde la entrada 32) se dirigen directamente a la salida 33 del nodo 25 en el canal 23. En el otro ajuste ("B") del conmutador 26, las señales de la entrada 32 están aisladas con respecto a la salida 33; en cambio, la salida de la memoria 31 va dirigida a la salida 33. En uno de los ajustes ("X") del conmutador 27, las señales entrantes al nodo en el canal 24 (provenientes de la entrada 34) se dirigen directamente a la salida 35 del nodo 25 en el canal 24. En el otro ajuste ("Y") del conmutador 27, las señales de la entrada 34 están aisladas con respecto a la salida 35; en cambio, la salida del generador 36 de confirmaciones de recepción va dirigida a la salida 35.
El controlador 28 funciona bajo la supervisión de una unidad 37 de selección de modo la cual monitoriza los canales 23 y 24 para determinar el estado del sistema de comunicaciones y es controlable por una señal externa en la referencia 38. La unidad 37 de selección de modo también puede monitorizar los canales 23 y 24, especialmente cuando los mismos incluyen un camino inalámbrico o algún otro camino que pueda resultar un cuello de botella.
En aras de una mayor claridad en la descripción, el nodo 25 se describe en el presente documento de manera que comprende diferentes aparatos individuales. No obstante, el nodo 25 se podría proporcionar en forma de uno o más bloques de funcionalidad diferente con respecto a los mostrados en la figura 4. Las funciones del nodo 25 las podría proporcionar de forma total o parcial un software que se ejecutase en uno o más microprocesadores.
Durante el funcionamiento, el nodo 25 tiene tres modos, a los que se hace referencia en el presente documento como modo "normal", modo "rápido" y modo de "confirmación de recepción anticipada".
\bullet
En el modo normal, el conmutador 26 se fija en el ajuste A y el conmutador 27 se fija en el ajuste X. Esto permite que las señales provenientes de la unidad emisora 20 vayan directamente a través del nodo hacia la unidad receptora 21, y que las señales provenientes de la unidad receptora vayan directamente hacia la unidad emisora.
\bullet
En el modo rápido, el conmutador 26 se fija al ajuste A, el conmutador 27 se fija al ajuste Y. Cuando el nodo recibe un paquete de la unidad emisora 20, el controlador 28 lo retransmite hacia la unidad receptora. La unidad receptora genera confirmaciones de recepción para los paquetes que recibe. Cuando se confirma la recepción de un paquete, el nodo 25 retransmite la confirmación de recepción después de un retardo hacia la unidad emisora. Adicionalmente, el nodo 25 puede almacenar el paquete recibido de la unidad emisora 21 y volver a enviarlo hacia la unidad receptora 21 si no se recibe ninguna confirmación de recepción después de un periodo de tiempo fijado. En la confirmación de recepción anticipada, los conmutadores 26 y 27 se fijan respectivamente al ajuste B e Y. Este proceso se describe posteriormente de forma más detallada.
\bullet
En el modo normal, el enlace 22 entre la unidad emisora 20 y la unidad receptora 21 funciona de extremo a extremo como si el nodo 25 no estuviera presente. En el modo de confirmación de recepción anticipada, el nodo proporciona la capacidad de acelerar que el aumento de la velocidad de transmisión por parte de la unidad emisora bajo el arranque lento TCP mediante el envío de confirmaciones de recepción inmediatas. En el modo rápido, el nodo puede reducir la velocidad de transmisión del emisor, con vistas a hacer frente a la reducción de la capacidad a través del enlace o al llenado de la memoria intermedia de los nodos. La disponibilidad de más de uno de estos modos proporciona al nodo la capacidad de mejorar el funcionamiento del enlace TCP en una amplia gama de circunstancias, tal como se describirá posteriormente de forma más detallada. En particular, la gama de modos permite un esquema de funcionamiento el cual puede evitar los inconvenientes del algoritmo de arranque lento TCP y aliviar la acumulación en memoria intermedia en el nodo retransmisor.
La unidad 37 de selección de modos monitoriza el enlace 22 y provoca que el controlador 28 adopte uno de entre los modos disponibles dependiendo de las condiciones del enlace. La figura 5 ilustra una estrategia preferida. En el funcionamiento normal, la unidad 37 de selección de modos selección el modo normal. Cuando la memoria intermedia 31 tiene espacio disponible y existe un ancho de banda disponible en el enlace en ambas direcciones, la unidad de selección de modos selecciona el modo de confirmación de recepción anticipada para conseguir que la velocidad de transmisión de paquetes aumente. Cuando existe congestión en el enlace, o la memoria intermedia está llena, la unidad de selección de modos selecciona el modo rápido para conseguir que la velocidad de transmisión de paquetes se reduzca.
A continuación se describirá más detalladamente el efecto de los modos disponibles.
Cuando existe un ancho de banda disponible por encima de un umbral fijado, y el selector 37 de modos no detecta pérdidas de paquetes debido a la congestión, se selecciona el modo de confirmación de recepción anticipada. Cuando un paquete es recibido por el nodo 25 y detectado por el detector 29, el controlador 28 controla el generador 36 de confirmaciones de recepción para que genere una confirmación de recepción "anticipada", y la envía hacia el emisor 20. El número de paquete especificado en el mensaje de confirmación de recepción anticipada es el correspondiente a un paquete que no ha sido recibido todavía por el nodo 25 (aunque, por compatibilidad con la mayoría de protocolos, es el correspondiente a uno que es probable que haya sido enviado por el emisor antes de que le llegue la confirmación de recepción). De este modo, mientras ese paquete de datos en cuestión está en camino desde el controlador de confirmaciones de recepción hacia el receptor TCP y/o la confirmación de recepción generada por el receptor TCP está en camino desde el receptor al controlador de confirmaciones de recepción. El número según el cual el número de confirmación de recepción se adelanta con respecto al último paquete recibido por el nodo depende del ancho de banda disponible, de la naturaleza de las pérdidas de los paquetes y del espacio de memoria intermedia disponible en el nodo de red. De este modo, el controlador de confirmaciones de recepción prevé la necesidad de enviar un mensaje de confirmación de recepción verdadero para un cierto paquete y envía una confirmación de recepción anticipada generada por él mismo hacia la fuente TCP de manera que la fuente TCP obtiene una confirmación de recepción antes de lo que lo haría incluso si se usara un nodo de fisgoneo. A continuación, el nodo 25 reenviará el paquete, cuando lo reciba, hacia el receptor, o simplemente permitirá que el paquete pase a través del nodo 25. Cuando el mensaje de confirmación de recepción correspondiente que es generado por el receptor TCP alcanza el nodo, el controlador 28 lo elimina de la memoria 31.
Para ilustrar la eficacia de este modo, con el número de secuencia del paquete de llegada en el nodo definido como PK(i), la confirmación de recepción de llegada como ACK^{i}(i) y la confirmación de recepción generada como ACK^{0}(i), respectivamente, la ACK^{0}(i) se puede ajustar en función del ancho de banda disponible BW_{a} y el espacio de memoria intermedia disponible BS_{a} y de ACK^{0}(i-1). Se puede formular de la manera siguiente
(1)ACK^{0} \ (i) = ACK^{0} \ (i-1) + f(BW_{a}, BS_{a})
ACK^{i}(i) \leq ACK^{0} \ (i) \leq PK(i)
Por ejemplo, la función f puede ser
(2)f = (PK - ACK^{0}(i-1))\left(a_{1}\frac{BS_{a}}{BS_{max}} + a_{2}BW_{a}\right)
en la que BS_{max} es el espacio de memoria intermedia máximo y a_{1} y a_{2} son constantes. Obsérvese que si f = PK-ACK^{0}(i-1), el método de confirmación de recepción anticipada se ha reducido al fisgoneo TCP convencional.
En el modo de confirmación de recepción anticipada, a la fuente TCP se le confirma rápidamente la recepción de sus paquetes, y la fuente comienza a aumentar su velocidad de transmisión. A su vez, esta situación reduce el tiempo que tarda el protocolo TCP en alcanzar su velocidad completa y mejora el caudal total.
Como la función f (ecuación 2) tiene en cuenta el ancho de banda disponible y la ocupación de la memoria intermedia, la misma supera los problemas del método de fisgoneo TCP. Efectivamente, la ACK^{0} transmitida se aproxima a ACK^{i} cuando el espacio de memoria intermedia y/o el ancho de banda disponibles se reducen. Cuando no hay disponible ningún ancho de banda no usado, ACK^{i} = ACK^{0}, y se ha alcanzado el funcionamiento normal del TCP. Por otro lado, cuando el ancho de banda y/o el espacio de memoria intermedia disponible aumenta, ACK^{0} se aproxima a PK. De este modo, cuando se dispone de una gran cantidad de ancho de banda disponible no usado, el nodo 25 en el modo de confirmaciones de recepción anticipadas funciona de una forma similar al método de fisgoneo TCP descrito anteriormente.
El modo normal se usa una vez que el sistema TCP en el emisor ha alcanzado la velocidad completa y no existe sustancialmente ningún ancho de banda disponible no usado en la dirección desde el emisor al receptor. La llegada de un paquete TCP al nodo ya no activa la generación de la confirmación de recepción anticipada. En su lugar, el controlador de confirmaciones de recepción simplemente deja que los paquetes TCP y las confirmaciones de recepción correspondientes fluyan a través de él de una manera natural, sin perturbaciones.
En el modo TCP rápido, el cual se usa si el selector de modos detecta pérdidas de paquetes debido a la congestión, el controlador de confirmaciones de recepción pospone la devolución de confirmaciones de recepción al emisor. Esto se podría realizar mediante la recepción de confirmaciones de recepción por parte del nodo desde el receptor, su almacenamiento durante un periodo y a continuación su retransmisión hacia el emisor; o mediante la introducción de un retardo por parte del nodo antes de que genere el mismo una confirmación de recepción. El proceso de posponer las confirmaciones de recepción se podría efectuar según una manera descrita en el documento WO 99/04536, cuyo contenido se incorpora al presente documento a título de referencia. El efecto del retardo de las confirmaciones de recepción es la reducción de la congestión, y por lo tanto de la pérdida de paquetes.
La figura 6 ilustra adicionalmente el modo de confirmaciones de recepción anticipadas. Sobre la base de la información que ha detectado sobre la naturaleza de la pérdida de paquetes y del ancho de banda disponible, el selector de modos del nodo 25 ha seleccionado el modo de confirmaciones de recepción anticipadas, y ha provocado que el controlador funcione en dicho modo. Hay un paquete TCP con el número de secuencia PK que viene desde la fuente hacia el nodo. El controlador de confirmaciones de recepción recibe el paquete TCP. El nodo envía una confirmación de recepción ACK^{0} hacia la fuente TCP. La confirmación de recepción podría ser generada en su totalidad por el nodo o se podría capturar y modificar un paquete de confirmación de recepción adecuado que pase por el nodo en ese momento (que haya sido generado por el receptor TCP) para transportar la ACK^{0}. En la anterior ecuación 1 se ha mostrado un método que puede usar el nodo en el cálculo del valor de ACK^{0}.
El envío de ACK^{0} y otros similares provocará que la fuente TCP se acelere rápidamente ya que entonces recibirá confirmaciones de recepción más rápidamente que con otros métodos. Esencialmente se produce un ahorro de más del tiempo de ida y vuelta entre el nodo y el receptor TCP. Efectivamente, la fuente TCP ve en esa situación que existe una distancia más corta al receptor que incluso la distancia al nodo.
El paquete TCP PK se reenvía al receptor TCP. Obsérvese que la generación y transmisión (o captura y modificación) de ACK^{0} y el reenvío (o la autorización a pasar) de PK se pueden producir también en el orden inverso. Una copia del paquete TCP PK se almacena en la memoria 31 de manera que la misma puede volver a ser transmitida por el nodo si el paquete se pierde entre el controlador ACK y el receptor TCP.
El receptor TCP recibe el paquete TCP PK y, como es habitual, confirma su recepción enviando una ACK^{i} correspondiente hacia la fuente TCP. Finalmente, el controlador ACK intercepta la ACK^{i} y la descarta o usa la ACK para alguna otra ACK^{0}.
El controlador ACK también debe ocuparse de las retransmisiones. De este modo, monitoriza el flujo de confirmaciones de recepción ACK^{i} desde el receptor TCP. Si antes de un cierto tiempo especificado, no ha llegado ninguna ACK, el mismo vuelve a transmitir el paquete TCP con el número de secuencia PK. Obsérvese que en este caso es posible el uso de los mecanismos de retransmisión TCP normalizados según se especifica en la publicación "Transport Control Protocol", IETF RFC 793, Septiembre de 1981.
La figura 7 ilustra un ejemplo más detallado de la transmisión según la presente invención. En este caso, se considera que existe el suficiente ancho de banda y espacio de memoria intermedia disponible como para aumentar adicionalmente las velocidades de transmisión. Supóngase que un paquete con el número de secuencia 64 llega al nodo proveniente de la fuente mientras que un mensaje de confirmación de recepción con el número 57 llega proveniente del receptor. Basándose en el ancho de banda disponible, el nodo ha determinado el uso del modo de confirmaciones de recepción anticipadas. El mismo crea un mensaje de confirmación de recepción con el número 60 y lo transmite hacia la fuente TCP. Obsérvese que el número de este mensaje está por debajo del 64 (el número de paquete que ha llegado). El mensaje de confirmación de recepción con el 57 recibido desde el receptor TCP se descarta (o el mismo se podría haber modificado para llevar el valor 60). El paquete 64 se almacena en la memoria intermedia del nodo por si debe volver a ser transmitido. El paquete 57 se elimina de la memoria intermedia ya que en ese momento ya ha sido recibido.
En una fase posterior, ilustrada por la figura 8, ya no existe ningún ancho de banda no usado disponible. Por esta razón, en este caso las confirmaciones de recepción provenientes del receptor TCP hacia el nodo simplemente se dejan pasar, de manera que ACK^{0} = ACK^{i}. Esta situación se corresponde con el modo TCP normal.
En alguna otra fase, tal como se ilustra por medio de la figura 9, se puede producir una congestión. La memoria intermedia en el nodo de red se ha llenado y/o el ancho de banda no usado es pequeño y/o se detectan errores debidos a la congestión. En ese caso, el nodo comienza a retardar las confirmaciones de recepción (confirmaciones ACK^{i}) que fluyen desde el receptor TCP hacia la fuente TCP para reducir la congestión.
La presente invención resulta especialmente adecuada para ser usada conjuntamente con redes de radiocomunicaciones, tales como el GPRS o las redes celulares de tercera generación (3GN), u otros sistemas en los cuales pueda haber un enlace que tenga una capacidad que varía rápidamente para la conexión TCP (debido, por ejemplo, a niveles variables de interferencia). En un sistema de radiocomunicaciones, el nodo 25 se podría situar cerca de la interfaz de radiocomunicaciones en un enlace de comunicaciones. El nodo podría recibir una señal indicativa de la capacidad disponible en ese momento a través de la interfaz de radiocomunicaciones. Por ejemplo, el nodo se podría situar en el controlador de red de radiocomunicaciones (RNC) de un sistema 3GN. El nodo monitoriza la capacidad disponible. Cuando existe una gran cantidad de capacidad libre para el tráfico TCP que viene desde fuera del sistema 3GN, el nodo comienza a generar confirmaciones de recepción anticipadas, incluso aunque los octetos reales sigan estando en el camino a través de la interfaz de radiocomunicaciones. De este modo, el transmisor TCP obtendrá confirmaciones de recepción antes, acelerará sus transmisiones, y hará un mejor uso de la capacidad disponible. Por otro lado, durante la congestión (por ejemplo, debido a unas condiciones de radiocomunicaciones deficientes) el nodo puede entrar en el modo TCP rápido.
El método de confirmaciones de recepción anticipadas puede acelerar el proceso de arranque lento TCP y de esta manera utilizar más eficazmente el ancho de banda disponible, así como mitigar los problemas de acumulación de la memoria intermedia que pueden experimentarse en los sistemas anteriores de fisgoneo TCP. El método se realiza por medio de un nodo ubicado entre un transmisor TCP y un receptor TCP. El nodo genera y devuelve confirmaciones de recepción al transmisor TCP por paquetes de datos que todavía no han llegado al nodo, y que por lo tanto no han sido recibidos ni su recepción ha sido confirmada por el receptor TCP. Esto puede reducir el tiempo que debe esperar el transmisor TCP por una confirmación de recepción, y por lo tanto permite que el transmisor TCP acelere sus transmisiones de forma más rápida que sin este mecanismo. La secuencia de confirmaciones de recepción se ajusta según el ancho de banda y el espacio de memoria intermedia disponible, la medición del número de secuencia de los paquetes de llegada y de las confirmaciones de recepción de llegada al nodo.
El método de confirmaciones de recepción anticipadas puede tomar forma en un nodo que pueda funcionar en dos o más (preferentemente por lo menos tres) modos, por ejemplo: el modo de confirmaciones de recepción anticipadas, un modo TCP normal y un modo TCP rápido. La decisión sobre el modo a usar se puede basar, por ejemplo, en el ancho de banda no usado, disponible, en los niveles de ocupación de la memoria intermedia, y en la congestión. La figura 10 es un diagrama de flujo que ilustra un ejemplo de un proceso de decisión sobre qué modo usar.
La presente invención no se limita a los ejemplos descritos anteriormente.
El solicitante llama la atención sobre el hecho de que la presente invención puede incluir cualquier característica o combinación de características dadas a conocer en el presente documento de forma bien implícita o bien explícita o cualquier generalización de las mismas.

Claims (24)

1. Nodo (25) de comunicaciones de datos destinado a funcionar en un camino (22) de comunicaciones entre un transmisor de datagramas (20) y un receptor de datagramas (21) bajo un protocolo en el que la transmisión de datagramas por parte del transmisor depende de la recepción, por parte de este último, de un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente, comprendiendo el nodo:
un aparato (29) de detección para detectar comunicaciones en el camino;
un generador (36) de confirmaciones de recepción adaptado para generar mensajes de confirmación de recepción para datagramas y transmitir dichos mensajes hacia el transmisor; y
un aparato de interrupción del flujo adaptado para interrumpir comunicaciones en el camino;
caracterizado porque el nodo está adaptado para funcionar en el segundo y en por lo menos uno de entre el primero y el tercero de los siguientes modos:
- un primer modo en el cual no interrumpe las comunicaciones en el camino;
- un segundo modo en el cual transmite un mensaje de confirmación de recepción para un datagrama que sucede al último datagrama detectado en el nodo; y
- un tercer modo en el cual retarda la comunicación de mensajes de confirmación de recepción hacia el transmisor.
2. Nodo de comunicaciones de datos según la reivindicación 1, en el que en el segundo y/o tercer modos, el nodo interrumpe la comunicación de mensajes de confirmación de recepción provenientes del receptor hacia el transmisor.
3. Nodo de comunicaciones de datos según la reivindicación 1 ó 2, que comprende una memoria; y en el que en el segundo y/o tercer modo, el nodo almacena en la memoria datagramas detectados en la transmisión desde el transmisor al receptor.
4. Nodo de comunicaciones de datos según la reivindicación 3, en el que en el segundo y/o tercer modo, el nodo interrumpe la comunicación de datagramas provenientes del transmisor hacia el receptor.
5. Nodo de comunicaciones de datos según la reivindicación 3 ó 4, en el que en el segundo y/o tercer modo, si en un periodo fijado el nodo no detecta ningún mensaje de confirmación de recepción para un datagrama desde del receptor, el mismo vuelve a transmitir dicho datagrama hacia el receptor.
6. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones 3 a 5, en el que en el segundo y/o tercer modo, al recibir un mensaje de confirmación de recepción correspondiente a un datagrama, el nodo elimina dicho datagrama de la memoria.
7. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones anteriores, que comprende una unidad (37) de determinación de modo para determinar el modo de funcionamiento del nodo.
8. Nodo de comunicaciones de datos según la reivindicación 7, en el que la unidad de determinación de modo es capaz de determinar si hay capacidad disponible en el camino de comunicación y, si hay capacidad disponible, es capaz de provocar que el nodo funcione en el segundo modo.
9. Nodo de comunicaciones de datos según la reivindicación 7 u 8, en el que la unidad de determinación de modo es capaz de determinar si existe congestión en el camino de comunicaciones y, si existe congestión, es capaz de provocar que el nodo funcione en el tercer modo.
10. Nodo de comunicaciones de datos según la reivindicación 9 en dependencia de la reivindicación 8, en el que si no existe capacidad disponible o congestión en el camino de comunicaciones, la unidad de determinación es capaz de provocar que el nodo entre en el primer modo.
11. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones anteriores, en el que el nodo es capaz de funcionar en cualquiera de entre el primer, el segundo y el tercer modos.
12. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones anteriores, en el que el protocolo es un protocolo de control de transmisión (TCP).
13. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones anteriores, en el que el protocolo proporciona un tipo de funcionamiento en el cual el transmisor no transmitirá un datagrama hasta que haya recibido un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente desde hace un intervalo almacenado.
14. Nodo de comunicaciones de datos según la reivindicación 13, en el que en dicho tipo de funcionamiento el protocolo prevé que el intervalo almacenado se incremente si se recibe un mensaje de confirmación de recepción.
15. Nodo de comunicaciones de datos según la reivindicación 13 ó 14, en el que dicho tipo de funcionamiento es un tipo de funcionamiento de arranque lento.
16. Nodo de comunicaciones de datos según cualquiera de las reivindicaciones anteriores, en el que por lo menos parte del camino de comunicaciones es un enlace de radiocomunicaciones.
17. Nodo de comunicaciones de datos según la reivindicación 16, en el que el enlace de radiocomunicaciones es un enlace de radiocomunicaciones celular.
18. Método para la comunicación de datos a través de un camino (22) de comunicaciones entre un transmisor de datagramas (20) y un receptor de datagramas (21) bajo un protocolo en el que la transmisión de datagramas por parte del transmisor depende de la recepción, por parte de este último, de un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente, existiendo un nodo (25) ubicado en el camino de comunicaciones entre el transmisor y el receptor; caracterizado porque el método comprende:
la transmisión de datagramas hacia el receptor por parte del transmisor;
la detección de dichos datagramas por parte del nodo; y
la transmisión repetida, por parte del nodo, hacia el transmisor, de un mensaje de confirmación de recepción correspondiente a un datagrama que sucede al último datagrama detectado en el nodo.
19. Método según la reivindicación 18, en el que el protocolo es un protocolo de control de transmisión (TCP).
20. Método según la reivindicación 18 ó 19, en el que el protocolo proporciona un tipo de funcionamiento en el cual el transmisor no transmitirá un datagrama hasta que haya recibido un mensaje de confirmación de recepción correspondiente a un datagrama transmitido previamente desde hace un intervalo almacenado.
21. Método según la reivindicación 20, en el que en dicho tipo de funcionamiento el protocolo prevé que el intervalo almacenado se incremente si se recibe un mensaje de confirmación de recepción.
22. Método según la reivindicación 20 ó 21, en el que dicho tipo de funcionamiento es un tipo de funcionamiento de arranque lento.
23. Método según cualquiera de las reivindicaciones anteriores, en el que por lo menos parte del camino de comunicaciones es un enlace de radiocomunicaciones.
24. Método según la reivindicación 23, en el que el enlace de radiocomunicaciones es un enlace de radiocomunicaciones celular.
ES01965510T 2000-07-24 2001-07-24 Control de flujo. Expired - Lifetime ES2249474T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0018119 2000-07-24
GBGB0018119.8A GB0018119D0 (en) 2000-07-24 2000-07-24 Flow control

Publications (1)

Publication Number Publication Date
ES2249474T3 true ES2249474T3 (es) 2006-04-01

Family

ID=9896228

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01965510T Expired - Lifetime ES2249474T3 (es) 2000-07-24 2001-07-24 Control de flujo.

Country Status (9)

Country Link
US (1) US20030149715A1 (es)
EP (1) EP1303970B1 (es)
AT (1) ATE305200T1 (es)
AU (1) AU2001286147A1 (es)
CA (1) CA2416897C (es)
DE (1) DE60113549T2 (es)
ES (1) ES2249474T3 (es)
GB (1) GB0018119D0 (es)
WO (1) WO2002009389A2 (es)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020059431A (ko) * 2000-09-28 2002-07-12 요트.게.아. 롤페즈 네트워크 인터페이스 드라이버 및 방법
US7249193B1 (en) * 2001-08-28 2007-07-24 Emc Corporation SRDF assist
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
EP1361721A1 (en) * 2002-05-06 2003-11-12 Alcatel Method for transporting data segments and corresponding transmitter and receiver
US7542471B2 (en) 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US7698453B2 (en) * 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US8238241B2 (en) * 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8432800B2 (en) * 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
CN1836410A (zh) * 2003-08-20 2006-09-20 日本电气株式会社 会话中继设备和中继方法
FR2866172B1 (fr) * 2004-02-10 2006-05-05 Renault Sas Passerelle et systeme de transmission de donnees pour reseau de diagnostic de vehicule automobile et procede de transmission de donnees correspondant.
US8077632B2 (en) 2005-01-20 2011-12-13 Citrix Systems, Inc. Automatic LAN/WAN port detection
CN100486174C (zh) * 2005-04-29 2009-05-06 华为技术有限公司 宽带接入终端参数配置方法
CN101305583A (zh) * 2005-11-07 2008-11-12 日本电气株式会社 会话中继设备和会话中继方法
JP2007288725A (ja) * 2006-04-20 2007-11-01 Sanden Corp 通信機器用の接続装置
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8493858B2 (en) 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US7706266B2 (en) 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
TWI337021B (en) * 2007-04-13 2011-02-01 Qisda Corp Apparatus and method for communicating with a receiving end via internet
US8201041B2 (en) * 2007-07-03 2012-06-12 Industrial Technology Research Institute Transmission control methods and devices for communication systems
FR2926939A1 (fr) * 2008-01-30 2009-07-31 Canon Kk Procede de transmission de donnees avec anticipation des acquittements, dispositif d'entree, produit programme d'ordinateur et moyen de stockage correspondants
KR101431272B1 (ko) * 2008-01-30 2014-08-20 엘지전자 주식회사 외장형 스토리지가 연결 접속된 보안기기에서의 비트레이트 조정 장치 및 방법
US8352558B2 (en) 2009-02-10 2013-01-08 Microsoft Corporation Transport high availability via acknowledge management
US8364812B2 (en) 2010-08-27 2013-01-29 Sandvine Incorporated Ulc Method and system for network data flow management
WO2012041404A1 (en) * 2010-09-27 2012-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Distributed database
US9762434B2 (en) * 2011-08-12 2017-09-12 Rambus Inc. Temporal redundancy
US9444749B2 (en) 2011-10-28 2016-09-13 Telecom Italia S.P.A. Apparatus and method for selectively delaying network data flows
US9935879B2 (en) * 2012-12-29 2018-04-03 Netronome Systems, Inc. Efficient intercept of connection-based transport layer connections
GB2520268A (en) * 2013-11-13 2015-05-20 Ibm Injecting lost packets and protocol errors in a simulation environment
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
US9894552B2 (en) * 2014-10-21 2018-02-13 Saguna Networks Ltd. Regulating data communication between a mobile data client and a remote server
US20160219458A1 (en) * 2015-01-26 2016-07-28 Qualcomm Incorporated Methods and apparatus for radio link control switching
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
WO2017196064A1 (en) * 2016-05-10 2017-11-16 Samsung Electronics Co., Ltd. Terminal and communication method thereof
WO2021001250A1 (en) * 2019-07-03 2021-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Packet acknowledgement techniques for improved network traffic management

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1021765A4 (en) * 1996-05-10 2005-06-08 Fujitsu Network Communications METHOD AND APPARATUS FOR CONTROLLING FLOWS ON MULTIPLE NETWORKS WITH DISPARATE FLOW CONTROL CAPABILITIES
US6038216A (en) * 1996-11-01 2000-03-14 Packeteer, Inc. Method for explicit data rate control in a packet communication environment without data rate supervision
US5974028A (en) * 1997-02-24 1999-10-26 At&T Corp. System and method for improving transport protocol performance in communication networks having lossy links
US6359882B1 (en) * 1997-04-01 2002-03-19 Yipes Communications, Inc. Method and apparatus for transmitting data
US6076114A (en) * 1997-04-18 2000-06-13 International Business Machines Corporation Methods, systems and computer program products for reliable data transmission over communications networks
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
US5978849A (en) * 1997-06-13 1999-11-02 International Business Machines Corporation Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state
US6167027A (en) * 1997-09-09 2000-12-26 Cisco Technology, Inc. Flow control technique for X.25 traffic in a high speed packet switching network
NO307640B1 (no) * 1998-04-23 2000-05-02 Ericsson Telefon Ab L M Fremgangsmåte til å forbedre sendinger mellom terminaler i et telekommunikasjonssystem
SE513327C2 (sv) * 1998-10-07 2000-08-28 Ericsson Telefon Ab L M System och metod för datakommunikation

Also Published As

Publication number Publication date
AU2001286147A1 (en) 2002-02-05
EP1303970A2 (en) 2003-04-23
DE60113549D1 (de) 2006-02-02
US20030149715A1 (en) 2003-08-07
WO2002009389A3 (en) 2002-06-27
EP1303970B1 (en) 2005-09-21
DE60113549T2 (de) 2006-06-22
CA2416897C (en) 2009-04-21
WO2002009389A2 (en) 2002-01-31
ATE305200T1 (de) 2005-10-15
CA2416897A1 (en) 2002-01-31
GB0018119D0 (en) 2000-09-13

Similar Documents

Publication Publication Date Title
ES2249474T3 (es) Control de flujo.
ES2315369T3 (es) Tratamiento de la congestion y del retardo en una red de datos por paquetes.
US7706269B2 (en) Method, system and device for controlling a transmission window size
US6535482B1 (en) Congestion notification from router
EP1376944B1 (en) Receiver-initiated transmission rate increment
ES2402828T3 (es) Establecimiento de prioridades de acuses de recibo en redes inalámbricas
AU2004303070A1 (en) A system and method for selecting size of dynamic voice jitter buffer for packet switched communications system
WO2001045331A1 (en) Congestion control method for a packet-switched network
ES2356861T3 (es) Utilización mejorada de enlaces de datos.
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
Francis et al. Techniques for enhancing TCP performance in wireless networks
US7349978B2 (en) Spurious timeout detection in TCP based networks
Liu et al. Approaches of wireless TCP enhancement and a new proposal based on congestion coherence
Wang et al. Use of TCP decoupling in improving TCP performance over wireless networks
Waghmare et al. Comparative Analysis of different TCP variants in a wireless environment
Sreenivas et al. L2DB-TCP: An adaptive congestion control technique for MANET based on link layer measurements
Jiong et al. TP-satellite: A new transport protocol for satellite IP networks
Yang et al. TCP bulk repeat
JP5405870B2 (ja) 通信機器
Sharma et al. Performance evaluation of TCP variants under different node speeds using OPNET simulator
Leung et al. TCP-Swift: an end-host enhancement scheme for TCP over satellite IP networks
Bajeja et al. Performance evaluation of traditional TCP variants in wireless multihop networks
Ma et al. An enhanced TCP mechanism–Fast‐TCP in IP networks with wireless links
Rani et al. Cross layer based schemes for improving the performance of TCP in wireless networks
Wu et al. ACK delay control for improving TCP throughput over satellite links