WO2005011229A2 - Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method - Google Patents

Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method Download PDF

Info

Publication number
WO2005011229A2
WO2005011229A2 PCT/FR2004/001865 FR2004001865W WO2005011229A2 WO 2005011229 A2 WO2005011229 A2 WO 2005011229A2 FR 2004001865 W FR2004001865 W FR 2004001865W WO 2005011229 A2 WO2005011229 A2 WO 2005011229A2
Authority
WO
WIPO (PCT)
Prior art keywords
loop delay
transmitter
window
time
delay
Prior art date
Application number
PCT/FR2004/001865
Other languages
French (fr)
Other versions
WO2005011229A3 (en
Inventor
Amine Lamani
Joël PENHOAT
Original Assignee
France Telecom
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom filed Critical France Telecom
Priority to EP04767689A priority Critical patent/EP1649666A2/en
Publication of WO2005011229A2 publication Critical patent/WO2005011229A2/en
Publication of WO2005011229A3 publication Critical patent/WO2005011229A3/en

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/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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]

Definitions

  • the invention relates to a method for evaluating the available bandwidth of a transmission channel during a data transmission between a transmitter and a receiver through said channel, said transmission using a so-called “sliding window” method and a device. of emission for the implementation of the process.
  • available bandwidth is meant the amount of data that can be transmitted per unit of time, that is to say the bit rate, through the transmission channel.
  • TCP Transfer Control Protocol
  • the transmitter assigns a sequence number to each byte of a transmitted data packet. On receipt of this packet, the receiver returns to the transmitter an acknowledgment of receipt "ACK" accompanied by the sequence number of the next expected byte.
  • ACK acknowledgment of receipt
  • the transmitter triggers a retransmission timer clock memorizing a retransmission delay "RTO" (Retransmission Time Out).
  • the transmitter If, at the end of the RTO retransmission period, the transmitter has not received an acknowledgment of receipt for a previously transmitted packet, it transmits it again.
  • This RTO retransmission delay is calculated, using an algorithm, according to a "RTT" loop delay (Round Trip Time), also called round trip delay, corresponding to the average duration between the emission of a forward packet and receipt of a return receipt. If the receiver receives non-successive packets, this is signaled to the transmitter by the arrival of duplicate acknowledgments.
  • a sliding window mechanism is used to allow the transmitter to transmit multiple data packets before receiving an acknowledgment. Ultimately, the size of the window fixes a number of packets that can be transmitted without the need for an acknowledgment.
  • This window moves as acknowledgments are received.
  • the transmitter upon receipt of each acknowledgment, deletes the transmitted and acknowledged packets in its transmission buffer memory and advances its window in order to transmit the following packets.
  • the window size is dynamic. Initially, it is fixed at a single packets, or even at a few packets (generally four at most), then it increases in the forum and as the acknowledgments of receipt are received, first exponentially, up to a threshold preset called “ssthresh" (Slow Start Threshold), then linearly.
  • the transmission window On reception of each acknowledgment, the transmission window not only advances, so that the next packets are transmitted, but also increases. The size of the window thus increases up to an upper congestion limit, the value of which depends on the available bandwidth of the transmission channel.
  • the available bandwidth in other words the maximum data rate permissible for transmission, essentially depends on the theoretical maximum capacity of the channel and the actual data traffic through this channel.
  • the window is too large (too high speed given the available bandwidth), there is congestion, which results in the loss of data packets.
  • the transmitter receives a notification of loss from the receiver or b) the RTO retransmission period expires before receipt of an acknowledgment of receipt.
  • the size of the window is halved, then remains stable for a short period before resuming linear growth until reaching an upper limit of congestion again.
  • the size of the window is reduced to a single packet and the "ssthresh" threshold is fixed at half the size of the window at the time when the congestion was detected. Window size starts to grow again exponential up to the "ssthresh” threshold then linearly until reaching an upper congestion limit again.
  • the detection of congestion is therefore carried out a posteriori, by detection of the loss of data packets.
  • the size of the window is then suddenly reduced to a conservative value and it takes a certain period of time for it to become optimal again in view of the available bandwidth. Such a reduction in the size of the window induces a significant recovery time and, consequently, considerably reduces the average data rate in transmission.
  • the invention aims to overcome this last drawback.
  • the invention relates to a method for evaluating the available bandwidth of a transmission channel during a data transmission between a transmitter and a receiver, through said channel, the transmission using a method called “window” sliding “according to which the sender is authorized to send to the receiver several data packets, contained in the window, before receiving an acknowledgment of receipt for at least one of these packets, and advances the window, in order to send the following packets, as it receives the acknowledgments, process in which the transmitter measures a loop delay corresponding to the time between sending a data packet and receiving a acknowledgment of receipt corresponding to successive sampling instants, characterized in that the transmitter observes the state of the loop delay and, each time it detects a state of stability thereof, it stores the pair of values (RTT n , W n , m ax) containing the stable value of the loop delay and the maximum size of the transmission window observed for this stable value of the loop delay.
  • the transmitter keeps in memory pairs of values associated with loop delay / window size corresponding to the states of stability observed for the transmission channel considered.
  • This history of loop delay / window size pairs makes it possible, after congestion or a period of instability through the transmission channel, to return to a window size having a reference value. It also makes it possible, in the event of a reduction in the available bandwidth, to quantify the oversizing of the transmission window in relation to the new bandwidth. In the event of a decrease in available bandwidth, the rate of decrease in bandwidth can be deducted from the rate of increase in loop delay.
  • the "available bandwidth” represents the maximum amount of data that the transmitter can transmit to the receiver per unit of time, that is, the maximum allowable data rate, through the transmission channel.
  • the invention therefore also consists in observing the evolution of the loop delay in order to deduce therefrom the availability of the bandwidth of the transmission channel.
  • the transmitter measures a loop delay error corresponding to the difference between the last two loop delay samples and calculates an accumulation of errors by adding the loop delay errors over the last N loop delay samples, - if the transmitter detects that the last N loop delay errors and the cumulative - SSS of errors are between and -, - representing a tolerance threshold, it
  • the transmitter detects a stable state of the loop delay.
  • the accumulation of errors makes it possible to quantify the evolution of the loop delay, in other words to measure the amount of increase or decrease in the loop delay.
  • the threshold duration is equal to the recorded loop delay.
  • the transmitter detects that C t ) - L for the first time at time t x , i) from time t x , for each sampling instant ti, the transmitter calculates the accumulation of errors Ci by adding all the errors measured from this instant t x to the sampling instant ti, and ii) if the transmitter detects that C i ) S c , S c representing a critical threshold, it signals that the data rate is greater than the available bandwidth.
  • the transmitter detects that C t (for the first time at time t y , i) from time t y , for each sampling instant ti, the transmitter calculates the cumulative error Ci by adding all the errors measured from this instant t x until the sampling instant ti, and ii) if it detects that C t ( ⁇ S C , it signals that the data rate is lower than the bandwidth
  • the transmitter records the stable value of the loop delay and the maximum size of available. the window observed for this stable value of the loop delay.
  • the transmitter can thus memorize one or more pair (s) each comprising a stable value RTT n of delay loop and the maximum value of window size W n) ma ⁇ observed when the loop delay is stable and is equal to RTT n and there is therefore no risk of congestion.
  • the invention also relates to a transmission device for implementing the previously defined method, comprising - transmission means through a transmission channel, using a method called “sliding window", arranged to send several packets of data, contained in the window, before receiving an acknowledgment for at least one of these packets and for advancing the window in order to transmit the following packets, and - means for measuring a loop delay corresponding to the duration between the sending of a data packet and the reception of a corresponding acknowledgment of receipt, at successive sampling instants, device characterized in that it comprises means for detecting a state of stability of the delay of loop and means for memorizing, each time the transmitter detects a state of stability of the loop delay (RTT n ), the pair of values
  • FIG. 4A there is shown a communication network 1, in this case the Internet, and a client communication terminal 2 connected to the Internet 1 via an ISP (Internet Service provider). Provider) 3.
  • the access provider 3 integrates a speed accelerator server 4, also called a "proxy" server.
  • the reference 5 designates the transmission channel between the communication terminal 2 and the rate accelerator server 4.
  • the transmission channel 5 is a TCP (Transfer Control Protocol) link by satellite.
  • the TCP flow control protocol used on the transmission channel 5, makes it possible to control the correct routing of data packets between the server 4 and the client terminal 2, using a cumulative acknowledgment mechanism. operating as follows:
  • the TCP sender assigns a sequence number to each byte of a transmitted data packet. After having received several packets transmitted by the TCP transmitter, the TCP receiver returns to the TCP transmitter an acknowledgment of receipt "ACK" accompanied by the sequence number of the next byte expected and thus confirming the good reception of all the packets preceding this byte .
  • the TCP transmitter In addition, if, at the expiration of a predetermined retransmission time (RTO) (Retransmission Time Out), the TCP transmitter has not received an acknowledgment of receipt for a previously transmitted packet, it transmits a new one times to the TCP receiver.
  • This RTO retransmission delay is calculated by the TCP transmitter, using an algorithm, according to a "RTT" (Round Trip Time) loop delay corresponding to the duration average between sending a forward packet and receiving a return acknowledgment.
  • the TCP transmitter also uses a "sliding transmission window" mechanism authorizing it to transmit several data packets, contained in the window, before receiving an acknowledgment. Due to its size, the transmission window fixes a number of packets that can be transmitted without the need for an acknowledgment of receipt (see Figure 3).
  • the TCP transmitter advances its transmission window in order to transmit the following packets and increases the size of the window.
  • the send window contains a packet, or even a few packets (generally not more than four), and increases first exponentially to a predefined threshold called "ssthresh" (Slow Start Threshold), then linear to an optimal limit beyond which there is congestion, which results in the loss of data packets.
  • ssthresh Slow Start Threshold
  • the data packets can be classified as follows: - packets sent and acknowledged 61: n ° ll to 13 - packets sent and unacknowledged 62: n ° 14 to 16 - packets to be sent 63: n ° 17 to 21 - packets not authorized to be sent 64: n ° 22 to 24
  • the last acknowledgment received "ACK" 60, of value 14 confirmed the reception of all the data packets preceding packet n ° 14.
  • the left edge of window 7 is therefore positioned just before package # 14.
  • the TCP sender is only allowed to send the packets contained in the send window (numbered from 14 to 21) without receiving an acknowledgment.
  • the next packet that the TCP sender will send is No. 17.
  • the TCP sender To be authorized to send the following packets, not contained in window 7 as shown in Figure 3 (i.e. packets # 22 and following), the TCP sender must receive a new acknowledgment ACK of value strictly greater than 14 and drag its window 7 to the right (in the direction of arrow 8), so as to position the left edge of window 7 just before the packet whose number corresponds to the value of the acknowledgment received. For example, if the next acknowledgment of receipt has the value 16, the left edge of window 7 is moved in the direction of arrow 8 so as to be positioned just before packet n ° 16. Furthermore, at the same time as it moves window 7, the transmitter
  • TCP increases the size of window 7. For example, if the phase in which it is located allows the TCP sender to increase the size of window 7 of a packet upon receipt of each acknowledgment, the new window 7 then contains nine packages.
  • the TCP transmitter shown in Figure 2 is the speed accelerator server
  • the transmission module 40 comprises, in known manner, a module 40 for transmitting data packets, a module 41 for receiving acknowledgments of receipt, a module 42 for calculating the retransmission delay RTO and a timer 43 for retransmission delay.
  • the transmission module 40 is arranged to transmit data packets using the method of the "sliding transmission window" previously explained (see FIG. 3). It is therefore authorized to send several data packets, contained in the transmission window, before receiving an acknowledgment of receipt.
  • the transmission module 40 As for and as the reception of the acknowledgments of reception, signaled by the reception module 41, the transmission module 40, on the one hand, advances the sliding transmission window and, on the other hand, calculates and updates the size of this window.
  • TCP the size of the window, initially set to a packet, or even a few packets
  • the module 41 for receiving acknowledgments is arranged to receive and process the "ACK" acknowledgments and to transmit to the other modules useful information, provided by acknowledgments, to update emission state variables such as in particular the RTO retransmission delay, the RTT loop delay, the size W of the sliding transmission window and the "ssthresh” threshold.
  • the RTO retransmission delay calculation module 42 is arranged to calculate the RTO retransmission delay using an algorithm provided by the TCP protocol, from the loop delay. It is recalled here that the loop delay corresponds to the average time between the sending of a forward data packet and the reception of a return acknowledgment. In operation, the calculation module 42 measures the loop delay
  • SRRTj represents the smoothed value of the RTTj sample of the Smoothed Round Trip Time measured at time tj. It then calculates the RTO retransmission delay from the measured and smoothed loop delay, using the algorithm of the TCP protocol. For more information on this subject, the reader is invited to refer in particular to document RFC2988 of ITETF (Internet Engineering Task Force). The RTO retransmission delay thus calculated is supplied to the clock 43.
  • the retransmission delay clock 43 connected to the module for calculating the RTO retransmission delay and to the transmission module 40, is arranged to control the retransmission of a data packet if, at the end of the RTO retransmission delay, the TCP sender has not yet received an acknowledgment for this packet.
  • the TCP transmitter 4 further comprises a module 44 for evaluating the available bandwidth of the transmission channel 5 and a memory 45.
  • the memory 45 connected to the evaluation module 44 and to the transmission module 40, is intended to memorize one or more pairs of values (RTT n , W n max ), each comprising a stable loop delay value and the maximum size of the sliding transmission window observed when the loop delay is stable and equals RTT n .
  • the evaluation module 44 is interposed between the module 42 for calculating the retransmission delay and the transmission module 40. During transmission, the evaluation module 44 observes the state of the loop delay measured and smoothed by the calculation module
  • the evaluation module 44 stores in memory 45 the pair of values ⁇ RTT n , W n max ⁇ containing the stable value of the loop delay RTT n and the maximum size of the sliding transmission window observed when the loop delay is stable and equals RTT n .
  • the evaluation module 44 signals to the transmission module 40 that the transmission data rate is greater than the available bandwidth.
  • the evaluation module 44 signals to the transmission module 40 that the transmission data rate is less than the available bandwidth.
  • the evaluation module 44 detects a state of stability of the loop delay. Case B If, after a period of stability of the loop delay, the evaluation module 44
  • the evaluation module 44 calculates the accumulation of errors by adding all the errors ⁇ j measured from this instant t x and up to instant t ;, and ii) if the evaluation module 44 detects that C,.) S C (S c representing a critical threshold), the loop delay is in a state of progressive increase. The evaluation module 44 then signals to the transmission module 40 that the transmission data rate is greater than the available bandwidth. Case C If, after a stable period of the loop delay, the evaluation module 44
  • the evaluation module 44 calculates the accumulation of errors by adding all the errors e, - measured from this instant t y and until instant tj, and ii) if the evaluation module 44 detects that C i ⁇ -S c , the loop delay is in a state of gradual decrease.
  • the evaluation module 44 then signals to the transmission module 40 that the transmission data rate is less than the available bandwidth. In other cases than cases A, B and C explained above, the loop delay is in an unidentifiable state which may correspond to a period of instability.
  • the server 4 can take various appropriate measures consisting of - reducing or stabilizing the size of the window, in order to avoid congestion, or - to increase the size of the window, in order to increase the data rate through the channel 5 from the server 4 to the client terminal 2.
  • maximum W n , max allows a faster increase in window size to an optimal value taking into account the available bandwidth.
  • the size W n of the transmission window increases and the evaluation module 44 stores it in memory 45. This allows the server 4 to memorize, for each stable value RTT n of the loop delay, the pair of reference values (RTT n , W n , max ) containing the stable value of the loop delay RTT n and the maximum size of the transmission window observed for this RTT n value of the loop delay.
  • the evaluation module 44 thus has the available bandwidth, worth
  • SRTT1 560 ms
  • FIG. 5A we can observe a momentary increase in the loop delay errors ⁇ j, slightly perceptible, shortly after the time t4 of reduction of the bandwidth.
  • FIG. 5B shows perfectly clearly a peak of increase in the cumulation of errors Ci, shortly after the instant t4.
  • the evaluation of the available bandwidth is performed in the server 4 in order to optimize the data rate in the downward direction (from the server 4 to the client terminal 2).
  • the invention applies not only to satellite networks but also to any other type of network, and more particularly to networks with long loop delay
  • GPRS Global System for Mobile communications
  • LFN Long Fat Network

Abstract

The transmission uses a so called sliding window method wherein an emitter (4) is authorised to transmit several data packets contained in a window to a receiver (2), prior to reception of an acknowledgement for at least one of said packets and to provide the window in order to emit the following packets gradually as far as the acknowledgement thereof is received. The emitter (4) measures the time for a corresponding loop between the transmission of a data packet and the reception of the acknowledgement thereof at successive sampling instants (ti) and monitors the state of a (RTT) loop time. Every time, when it detects a stable state thereof (RTTn) it records the pair of values (RTTn, Wn,max) containing the stable value of the (RTTn) loop time and the maximum size of the detected emitting window for said stable value of the (RTTn) loop time.

Description

- u - -- -l -- d'une transmission de données et dispositif d'émission pour la mise en œuvre du procédé- u - - - l - of a data transmission and transmission device for implementing the method
L'invention concerne un procédé pour évaluer la bande passante disponible d'un canal de transmission lors d'une transmission de données entre un émetteur et un récepteur à travers ledit canal, ladite transmission utilisant une méthode dite de "fenêtre glissante" et un dispositif d'émission pour la mise en œuvre du procédé. D'emblée, on notera que par les termes "bande passante disponible" on entend désigner la quantité de données pouvant être transmise par unité de temps, c'est-à-dire le débit, à travers le canal de transmission. Lors d'une transmission de paquets de données à travers un réseau, un protocole de contrôle de flux vérifie généralement le bon acheminement des paquets de données entre l'émetteur et le récepteur. Sur l'Internet, le protocole de contrôle de flux le plus largement utilisé est le protocole TCP (Transfer Control Protocol), lequel s'assure de la bonne réception des paquets de données émis par un mécanisme d'accusé de réception. Ce mécanisme fonctionne de la manière suivante: L'émetteur attribue un numéro de séquence à chaque octet d'un paquet de données émis. A la réception de ce paquet, le récepteur retourne à l'émetteur un accusé de réception "ACK" accompagné du numéro de séquence du prochain octet attendu. Afin de limiter le nombre d'accusés de réception, il est connu d'utiliser un mécanisme d'acquittement cumulatif consistant à émettre des accusés de réception "ACK" confirmant chacun la bonne réception de plusieurs paquets de données. Dans ce cas, chaque accusé de réception est accompagné du numéro de séquence du prochain octet attendu et signale à l'émetteur que tous les précédents paquets de données ont bien été reçus. De plus, pour chaque paquet de données émis, l'émetteur déclenche une horloge de temporisation de retransmission mémorisant un délai de retransmission "RTO" (Retransmission Time Out). Si, à l'expiration du délai de retransmission RTO, l'émetteur n'a pas reçu d'accusé de réception pour un paquet préalablement émis, il le transmet une nouvelle fois. Ce délai de retransmission RTO est calculé, à l'aide d'un algorithme, en fonction d'un délai de boucle "RTT" (Round Trip Time), encore appelé délai aller-retour, correspondant à la durée moyenne entre l'émission d'un paquet aller et la réception d'un accusé de réception retour. Si le récepteur reçoit des paquets non successifs, cela est signalé à l'émetteur par l'arrivée d'accusés de réception dupliqués. Parallèlement, un mécanisme de fenêtre glissante est utilisé afin d'autoriser l'émetteur à émettre plusieurs paquets de données avant de recevoir un accusé de réception. En définitive, la taille de la fenêtre fixe un nombre de paquets pouvant être transmis sans avoir besoin d'accusé de réception. Cette fenêtre se déplace au fur et à mesure que les accusés de réception sont reçus. Ainsi, à la réception de chaque accusé de réception, l'émetteur supprime les paquets transmis et acquittés dans sa mémoire tampon d'émission et fait avancer sa fenêtre afin d'émettre les paquets suivants. De plus, la taille de la fenêtre est dynamique. Au départ, elle est fixée à un seul paquets, voire à quelques paquets (généralement quatre au plus), puis elle augmente au for et à mesure que les accusés de réception sont reçus, d'abord de façon exponentielle, jusqu'à un seuil prédéfini appelé "ssthresh" (Slow Start Threshold), puis de façon linéaire. A la réception de chaque accusé de réception, la fenêtre d'émission non seulement avance, de façon à ce que les paquets suivants soient émis, mais augmente également. La taille de la fenêtre croît ainsi jusqu'à une limite supérieure de congestion dont la valeur dépend de la bande passante disponible du canal de transmission. La bande passante disponible, autrement dit le débit de données maximal admissible en émission, dépend essentiellement de la capacité maximale théorique du canal et du trafic de données réel à travers ce canal. Lorsque la fenêtre est trop large (débit trop important compte tenu de la bande passante disponible), il y a congestion, ce qui se traduit par la perte de paquets de données. Deux cas sont alors envisageables: a) l'émetteur reçoit une notification de perte provenant du récepteur ou b) le délai de retransmission RTO expire avant réception d'un accusé de réception. Dans le cas a), selon le protocole TCP, la taille de la fenêtre est divisée par deux, puis demeure stable pendant un courte période avant de recommencer à croître de manière linéaire jusqu'à atteindre à nouveau une limite supérieure de congestion. Dans le cas b), selon le protocole TCP, la taille de la fenêtre est réduite à un seul paquet et le seuil "ssthresh" est fixé à la moitié de la taille de la fenêtre au moment où la congestion a été détectée. La taille de la fenêtre recommence à croître de façon exponentielle jusqu'au seuil "ssthresh" puis de façon linéaire jusqu'à atteindre à nouveau une limite supérieure de congestion. Dans les deux cas a) et b), la détection d'une congestion s'effectue donc a posteriori, par détection de la perte de paquets de données. La taille de la fenêtre est alors brutalement réduite à une valeur conservatrice et il faut un certain laps de temps pour qu'elle redevienne optimale eu égard à la bande passante disponible. Une telle réduction de la taille de la fenêtre induit un temps de reprise important et, par conséquent, réduit considérablement le débit de données moyen en émission. La présente invention vise à pallier ce dernier inconvénient. A cet effet, l'invention concerne un procédé pour évaluer la bande passante disponible d'un canal de transmission lors d'une transmission de données entre un émetteur et un récepteur, à travers ledit canal, la transmission utilisant une méthode dite de "fenêtre glissante" selon laquelle l'émetteur est autorisé à envoyer vers le récepteur plusieurs paquets de données, contenus dans la fenêtre, avant de recevoir un accusé de réception pour l'un au moins de ces paquets, et fait avancer la fenêtre, afin d'émettre les paquets suivants, au fur et à mesure qu'il reçoit les accusés de réception, procédé dans lequel l'émetteur mesure un délai de boucle correspondant à la durée entre l'envoi d'un paquet de données et la réception d'un accusé de réception correspondant, à des instants d'échantillonnage successifs, caractérisé par le fait que l'émetteur observe l'état du délai de boucle et, à chaque fois qu'il détecte un état de stabilité de celui-ci, il mémorise le couple de valeurs (RTTn,Wn,max) contenant la valeur stable du délai de boucle et la taille maximale de la fenêtre d'émission observée pour cette valeur stable du délai de boucle. Grâce à cela, l'émetteur conserve en mémoire des couples de valeurs associées délai de boucle / taille de fenêtre correspondant à des états de stabilité observés pour le canal de transmission considéré. Cet historique de couples délai de boucle / taille de fenêtre permet, après une congestion ou une période d'instabilité à travers le canal de transmission, de revenir à une taille de fenêtre ayant une valeur de référence. Il permet également en cas de réduction de la bande passante disponible de quantifier le surdimensionnement de la fenêtre d'émission par rapport à la nouvelle bande passante. En cas de diminution de la bande passante disponible, on peut déduire le taux de diminution de la bande passante du taux d'augmentation du délai de boucle. A titre d'exemple illustratif, si la bande passante est divisée par deux, on observera un délai de boucle après réduction valant globalement le double du délai de boucle avant réduction, dans l'hypothèse où la taille de la fenêtre avant réduction est égale à la taille de la fenêtre après réduction. Avantageusement, - si, après une période de stabilité du délai de boucle, l'émetteur détecte une augmentation progressive dudit délai, il signale que le débit de données est supérieur à la bande passante disponible, - si, après une période de stabilité du délai de boucle, l'émetteur détecte une diminution progressive dudit délai, il signale que le débit de données est inférieur à la bande passante disponible. Par augmentation, ou diminution, "progressive", on entend désigner une augmentation, ou une diminution, régulière et continue, par opposition à une augmentation, ou une diminution, brusque généralement suivie d'un retour à une valeur normale du délai de boucle. La "bande passante disponible" représente la quantité de données maximale que l'émetteur peut émettre vers le récepteur par unité de temps, c'est-à-dire le débit de données maximal admissible, à travers le canal de transmission. L'invention consiste donc aussi à observer l'évolution du délai de boucle afin d'en déduire la disponibilité de la bande passante du canal de transmission. Avantageusement, - pour chaque instant d'échantillonnage, l'émetteur mesure une erreur de délai de boucle correspondant à l'écart entre les deux derniers échantillons de délai de boucle et calcule un cumul d'erreurs en additionnant les erreurs de délai de boucle sur les N derniers échantillons de délai de boucle, - si l'émetteur détecte que les N dernières erreurs de délai de boucle et le cumul — S S S d'erreurs sont compris entre et — , — représentant un seuil de tolérance, ilThe invention relates to a method for evaluating the available bandwidth of a transmission channel during a data transmission between a transmitter and a receiver through said channel, said transmission using a so-called "sliding window" method and a device. of emission for the implementation of the process. At the outset, it will be noted that by the terms "available bandwidth" is meant the amount of data that can be transmitted per unit of time, that is to say the bit rate, through the transmission channel. When transmitting data packets over a network, a flow control protocol generally verifies the correct routing of data packets between the transmitter and the receiver. On the Internet, the most widely used flow control protocol is the Transfer Control Protocol (TCP), which ensures that data packets sent by an acknowledgment mechanism are received correctly. This mechanism works as follows: The transmitter assigns a sequence number to each byte of a transmitted data packet. On receipt of this packet, the receiver returns to the transmitter an acknowledgment of receipt "ACK" accompanied by the sequence number of the next expected byte. In order to limit the number of acknowledgments, it is known to use a cumulative acknowledgment mechanism consisting in sending acknowledgments "ACK" each confirming the good reception of several data packets. In this case, each acknowledgment is accompanied by the sequence number of the next expected byte and signals to the transmitter that all the previous data packets have been received. In addition, for each transmitted data packet, the transmitter triggers a retransmission timer clock memorizing a retransmission delay "RTO" (Retransmission Time Out). If, at the end of the RTO retransmission period, the transmitter has not received an acknowledgment of receipt for a previously transmitted packet, it transmits it again. This RTO retransmission delay is calculated, using an algorithm, according to a "RTT" loop delay (Round Trip Time), also called round trip delay, corresponding to the average duration between the emission of a forward packet and receipt of a return receipt. If the receiver receives non-successive packets, this is signaled to the transmitter by the arrival of duplicate acknowledgments. At the same time, a sliding window mechanism is used to allow the transmitter to transmit multiple data packets before receiving an acknowledgment. Ultimately, the size of the window fixes a number of packets that can be transmitted without the need for an acknowledgment. This window moves as acknowledgments are received. Thus, upon receipt of each acknowledgment, the transmitter deletes the transmitted and acknowledged packets in its transmission buffer memory and advances its window in order to transmit the following packets. In addition, the window size is dynamic. Initially, it is fixed at a single packets, or even at a few packets (generally four at most), then it increases in the forum and as the acknowledgments of receipt are received, first exponentially, up to a threshold preset called "ssthresh" (Slow Start Threshold), then linearly. On reception of each acknowledgment, the transmission window not only advances, so that the next packets are transmitted, but also increases. The size of the window thus increases up to an upper congestion limit, the value of which depends on the available bandwidth of the transmission channel. The available bandwidth, in other words the maximum data rate permissible for transmission, essentially depends on the theoretical maximum capacity of the channel and the actual data traffic through this channel. When the window is too large (too high speed given the available bandwidth), there is congestion, which results in the loss of data packets. Two cases are then possible: a) the transmitter receives a notification of loss from the receiver or b) the RTO retransmission period expires before receipt of an acknowledgment of receipt. In case a), according to the TCP protocol, the size of the window is halved, then remains stable for a short period before resuming linear growth until reaching an upper limit of congestion again. In case b), according to the TCP protocol, the size of the window is reduced to a single packet and the "ssthresh" threshold is fixed at half the size of the window at the time when the congestion was detected. Window size starts to grow again exponential up to the "ssthresh" threshold then linearly until reaching an upper congestion limit again. In both cases a) and b), the detection of congestion is therefore carried out a posteriori, by detection of the loss of data packets. The size of the window is then suddenly reduced to a conservative value and it takes a certain period of time for it to become optimal again in view of the available bandwidth. Such a reduction in the size of the window induces a significant recovery time and, consequently, considerably reduces the average data rate in transmission. The present invention aims to overcome this last drawback. To this end, the invention relates to a method for evaluating the available bandwidth of a transmission channel during a data transmission between a transmitter and a receiver, through said channel, the transmission using a method called "window" sliding "according to which the sender is authorized to send to the receiver several data packets, contained in the window, before receiving an acknowledgment of receipt for at least one of these packets, and advances the window, in order to send the following packets, as it receives the acknowledgments, process in which the transmitter measures a loop delay corresponding to the time between sending a data packet and receiving a acknowledgment of receipt corresponding to successive sampling instants, characterized in that the transmitter observes the state of the loop delay and, each time it detects a state of stability thereof, it stores the pair of values (RTT n , W n , m ax) containing the stable value of the loop delay and the maximum size of the transmission window observed for this stable value of the loop delay. Thanks to this, the transmitter keeps in memory pairs of values associated with loop delay / window size corresponding to the states of stability observed for the transmission channel considered. This history of loop delay / window size pairs makes it possible, after congestion or a period of instability through the transmission channel, to return to a window size having a reference value. It also makes it possible, in the event of a reduction in the available bandwidth, to quantify the oversizing of the transmission window in relation to the new bandwidth. In the event of a decrease in available bandwidth, the rate of decrease in bandwidth can be deducted from the rate of increase in loop delay. As an illustrative example, if the bandwidth is divided by two, we will observe a loop delay after reduction being globally twice the loop delay before reduction, assuming that the size of the window before reduction is equal to window size after reduction. Advantageously, - if, after a period of stability of the loop delay, the transmitter detects a progressive increase in said delay, it signals that the data rate is greater than the available bandwidth, - if, after a period of stability of the delay loop, the transmitter detects a gradual decrease in said delay, it signals that the data rate is less than the available bandwidth. By increase, or decrease, "progressive" means an increase, or decrease, regular and continuous, as opposed to an increase, or decrease, abrupt generally followed by a return to a normal value of the loop delay. The "available bandwidth" represents the maximum amount of data that the transmitter can transmit to the receiver per unit of time, that is, the maximum allowable data rate, through the transmission channel. The invention therefore also consists in observing the evolution of the loop delay in order to deduce therefrom the availability of the bandwidth of the transmission channel. Advantageously, - for each sampling instant, the transmitter measures a loop delay error corresponding to the difference between the last two loop delay samples and calculates an accumulation of errors by adding the loop delay errors over the last N loop delay samples, - if the transmitter detects that the last N loop delay errors and the cumulative - SSS of errors are between and -, - representing a tolerance threshold, it
enregistre provisoirement le délai de boucle, - si le délai de boucle demeure sensiblement constant pendant une durée supérieure à un seuil prédéterminé, l'émetteur détecte un état de stabilité du délai de boucle. Le cumul des erreurs permet de quantifier l'évolution du délai de boucle, autrement dit de mesurer la quantité d'augmentation ou de diminution du délai de boucle. De préférence, la durée seuil est égale au délai de boucle enregistré. Ainsi, on observe un état de stabilité du délai de boucle sur une période au moins égale au délai de boucle lui-même. Avantageusement, si, après une période de stabilité du délai de boucle,temporarily records the loop delay, - if the loop delay remains substantially constant for a duration greater than a predetermined threshold, the transmitter detects a stable state of the loop delay. The accumulation of errors makes it possible to quantify the evolution of the loop delay, in other words to measure the amount of increase or decrease in the loop delay. Preferably, the threshold duration is equal to the recorded loop delay. Thus, a state of stability of the loop delay is observed over a period at least equal to the loop delay itself. Advantageously, if, after a period of stability of the loop delay,
l'émetteur détecte que Ct)— L pour la première fois à l'instant tx, i) à partir de l'instant tx, pour chaque instant d'échantillonnage ti, l'émetteur calcule le cumul d'erreurs Ci en additionnant toutes les erreurs mesurées à partir de cet instant tx jusqu'à l'instant d'échantillonnage ti, et ii) si l'émetteur détecte que Ci)Sc , Sc représentant un seuil critique, il signale que le débit de données est supérieur à la bande passante disponible. Avantageusement encore, si, après une période de stabilité du délai de boucle,the transmitter detects that C t ) - L for the first time at time t x , i) from time t x , for each sampling instant ti, the transmitter calculates the accumulation of errors Ci by adding all the errors measured from this instant t x to the sampling instant ti, and ii) if the transmitter detects that C i ) S c , S c representing a critical threshold, it signals that the data rate is greater than the available bandwidth. Advantageously still, if, after a period of stability of the loop delay,
l'émetteur détecte que Ct ( pour la première fois à l'instant ty, i) à partir de l'instant ty, pour chaque instant d'échantillonnage ti, l'émetteur calcule le cumul d'erreurs Ci en additionnant toutes les erreurs mesurées à partir de cet instant tx jusqu'à l'instant d'échantillonnage ti, et ii) s'il détecte que Ct (~SC , il signale que le débit de données est inférieur à la bande passante disponible. De préférence, lorsque le délai de boucle est stable, la taille de la fenêtre augmentant au fur et à mesure que l'émetteur reçoit des accusés de réception, l'émetteur enregistre la valeur stable du délai de boucle et la taille maximale de la fenêtre observée pour cette valeur stable du délai de boucle. L'émetteur peut ainsi mémoriser un ou plusieurs couple(s) comprenant chacun une valeur stable RTTn de délai de boucle et la valeur maximale de taille de fenêtre Wn)maχ observée lorsque le délai de boucle est stable et vaut RTTn et qu'il n'y a, par conséquent, pas de risque de congestion. L'invention concerne également un dispositif d'émission pour la mise en œuvre du procédé précédemment défini, comprenant - des moyens d'émission à travers un canal de transmission, utilisant une méthode dite de "fenêtre glissante", agencés pour envoyer plusieurs paquets de données, contenus dans la fenêtre, avant de recevoir un accusé de réception pour l'un au moins de ces paquets et pour faire avancer la fenêtre afin d'émettre les paquets suivants, et - des moyens pour mesurer un délai de boucle correspondant à la durée entre l'envoi d'un paquet de données et la réception d'un accusé de réception correspondant, à des instants d'échantillonnage successifs, dispositif caractérisé par le fait qu'il comprend des moyens pour détecter un état de stabilité du délai de boucle et des moyens pour mémoriser, à chaque fois que l'émetteur détecte un état de stabilité du délai de boucle (RTTn), le couple de valeursthe transmitter detects that C t (for the first time at time t y , i) from time t y , for each sampling instant ti, the transmitter calculates the cumulative error Ci by adding all the errors measured from this instant t x until the sampling instant ti, and ii) if it detects that C t (~ S C , it signals that the data rate is lower than the bandwidth Preferably, when the loop delay is stable, the size of the window increasing as the transmitter receives acknowledgments, the transmitter records the stable value of the loop delay and the maximum size of available. the window observed for this stable value of the loop delay. The transmitter can thus memorize one or more pair (s) each comprising a stable value RTT n of delay loop and the maximum value of window size W n) ma χ observed when the loop delay is stable and is equal to RTT n and there is therefore no risk of congestion. The invention also relates to a transmission device for implementing the previously defined method, comprising - transmission means through a transmission channel, using a method called "sliding window", arranged to send several packets of data, contained in the window, before receiving an acknowledgment for at least one of these packets and for advancing the window in order to transmit the following packets, and - means for measuring a loop delay corresponding to the duration between the sending of a data packet and the reception of a corresponding acknowledgment of receipt, at successive sampling instants, device characterized in that it comprises means for detecting a state of stability of the delay of loop and means for memorizing, each time the transmitter detects a state of stability of the loop delay (RTT n ), the pair of values
(RTTn,Wn,max) contenant la valeur stable du délai de boucle (RTTn) et la taille maximale de la fenêtre d'émission observée pour cette valeur stable du délai de boucle. L'invention sera mieux comprise à l'aide de la description suivante d'un mode de réalisation particulier du procédé pour évaluer la bande passante disponible d'un canal de transmission et du dispositif pour la mise en œuvre de ce procédé, selon l'invention, en référence aux dessins annexés sur lesquels: - la figure 1 représente une vue schématique d'un réseau de communication, d'un fournisseur d'accès au réseau, avec un serveur accélérateur de débit, un terminal de communication et un canal de transmission entre le serveur et le terminal; - la figure 2 représente un schéma bloc fonctionnel du serveur accélérateur de débit de la figure 1 ; - la figure 3 représente une succession de paquets de données transmis ou à transmettre par le serveur accélérateur de débit de la figure 1 et une fenêtre d'émission de ces paquets; - les figures 4A et 4B représentent respectivement le délai de boucle et le débit de données mesurés lors d'une transmission à travers le canal de transmission de la figure 1; - les figures 5A et 5B représentent respectivement les erreurs de délai de boucle et le cumul de ces erreurs, calculés à partir des échantillons de délai de boucle mesurés (figure 4A); - la figure 6A et 6B représentent l'évolution du délai de boucle mesuré (figure 4A) respectivement en début de transmission et à un instant auquel la bande passante est réduite. Sur la figure 1, on a représenté un réseau de communication 1, en l'espèce l'Internet, et un terminal de communication client 2 connecté à l'Internet 1 par l'intermédiaire d'un fournisseur d'accès ISP (Internet Service Provider) 3. Le fournisseur d'accès 3 intègre un serveur accélérateur de débit 4, encore appelé serveur "proxy". La référence 5 désigne le canal de transmission entre le terminal de communication 2 et le serveur accélérateur de débit 4. Dans l'exemple particulier de la description, le canal de transmission 5 est une liaison TCP (Transfer Control Protocol) par voie satellite. Le protocole TCP de contrôle de flux, utilisé sur le canal de transmission 5, permet de contrôler le bon acheminement de paquets de données entre le serveur 4 et le terminal client 2, à l'aide d'un mécanisme d'accusé de réception cumulatif fonctionnant de la manière suivante: L'émetteur TCP attribue un numéro de séquence à chaque octet d'un paquet de données émis. Après avoir reçu plusieurs paquets transmis par l'émetteur TCP, le récepteur TCP renvoie à l'émetteur TCP un accusé de réception "ACK" accompagné du numéro de séquence du prochain octet attendu et confirmant ainsi la bonne réception de tous les paquets précédant cet octet. De plus, si, à l'expiration d'un délai de retransmission "RTO" (Retransmission Time Out) prédéterminé, l'émetteur TCP n'a pas reçu d'accusé de réception pour un paquet préalablement émis, il le transmet une nouvelle fois vers le récepteur TCP. Ce délai de retransmission RTO est calculé par l'émetteur TCP, à l'aide d'un algorithme, en fonction d'un délai de boucle "RTT" (Round Trip Time) correspondant à la durée moyenne entre l'émission d'un paquet aller et la réception d'un accusé de réception retour. L'émetteur TCP utilise également un mécanisme de "fenêtre d'émission glissante" l'autorisant à émettre plusieurs paquets de données, contenus dans la fenêtre, avant de recevoir un accusé de réception. Par sa taille, la fenêtre d'émission fixe un nombre de paquets pouvant être transmis sans avoir besoin d'accusé de réception (voir figure 3). Cette fenêtre se déplace et augmente au for et à mesure que l'émetteur TCP reçoit les accusés de réception. Ainsi, à la réception de chaque accusé de réception, l'émetteur TCP fait avancer sa fenêtre d'émission afin d'émettre les paquets suivants et augmente la taille de la fenêtre. Au départ, la fenêtre d'émission contient un paquet, voire quelques paquets (généralement pas plus de quatre), et augmente d'abord de façon exponentielle jusqu'à un seuil prédéfini appelé "ssthresh" (Slow Start Threshold), puis de façon linéaire jusqu'à une limite optimale au-delà de laquelle il y a congestion, ce qui se traduit par la perte de paquets de données. Sur la figure 3, on a représenté une succession 6 de paquets de données numérotés de 11 à 24 et une fenêtre glissante d'émission 7 à un instant donné. Sur cette figure 3, on peut classer les paquets de données de la manière suivante: - paquets envoyés et acquittés 61: n°ll à 13 - paquets envoyés et non acquittés 62: n°14 à 16 - paquets devant être envoyés 63 : n°17 à 21 - paquets non autorisés à être envoyés 64: n°22 à 24 Le dernier acquittement reçu "ACK" 60, de valeur 14, a confirmé la réception de tous les paquets de données précédant le paquet n°14. Le bord gauche de la fenêtre 7 est donc positionné juste avant le paquet n°14. L'émetteur TCP n'est autorisé à envoyer que les paquets contenus dans la fenêtre d'émission (numérotés de 14 à 21) sans recevoir d'accusé de réception. Sur la figure 3, on voit que le prochain paquet que l'émetteur TCP va émettre est le n°17. Pour être autorisé à émettre les paquets suivants, non contenus dans la fenêtre 7 telle que représentée sur la figure 3 (c'est-à-dire les paquets n°22 et suivants), l'émetteur TCP doit recevoir un nouvel accusé de réception ACK de valeur strictement supérieure à 14 et faire glisser sa fenêtre 7 vers la droite (dans le sens de la flèche 8), de manière à positionner le bord gauche de la fenêtre 7 juste avant le paquet dont le numéro correspond à la valeur de l'accusé de réception reçu. Par exemple, si le prochain accusé de réception a la valeur 16, le bord gauche de la fenêtre 7 est déplacé dans le sens de la flèche 8 de manière à être positionné juste avant le paquet n°16. En outre, en même temps qu'il déplace la fenêtre 7, l'émetteur(RTT n , W n , m a x ) containing the stable value of the loop delay (RTT n ) and the maximum size of the transmission window observed for this stable value of the loop delay. The invention will be better understood using the following description of a particular embodiment of the method for evaluating the available bandwidth of a transmission channel and of the device for implementing this method, according to invention, with reference to the accompanying drawings in which: - Figure 1 shows a schematic view of a communication network, a network access provider, with a speed booster server, a communication terminal and a communication channel transmission between the server and the terminal; - Figure 2 shows a functional block diagram of the speed accelerator server of Figure 1; - Figure 3 shows a succession of data packets transmitted or to be transmitted by the rate accelerator server of Figure 1 and a window for transmitting these packets; - Figures 4A and 4B respectively show the loop delay and the data rate measured during a transmission through the transmission channel of Figure 1; FIGS. 5A and 5B respectively represent the loop delay errors and the accumulation of these errors, calculated from the measured loop delay samples (FIG. 4A); - Figure 6A and 6B show the evolution of the measured loop delay (Figure 4A) respectively at the start of transmission and at an instant at which the bandwidth is reduced. In Figure 1, there is shown a communication network 1, in this case the Internet, and a client communication terminal 2 connected to the Internet 1 via an ISP (Internet Service provider). Provider) 3. The access provider 3 integrates a speed accelerator server 4, also called a "proxy" server. The reference 5 designates the transmission channel between the communication terminal 2 and the rate accelerator server 4. In the particular example of the description, the transmission channel 5 is a TCP (Transfer Control Protocol) link by satellite. The TCP flow control protocol, used on the transmission channel 5, makes it possible to control the correct routing of data packets between the server 4 and the client terminal 2, using a cumulative acknowledgment mechanism. operating as follows: The TCP sender assigns a sequence number to each byte of a transmitted data packet. After having received several packets transmitted by the TCP transmitter, the TCP receiver returns to the TCP transmitter an acknowledgment of receipt "ACK" accompanied by the sequence number of the next byte expected and thus confirming the good reception of all the packets preceding this byte . In addition, if, at the expiration of a predetermined retransmission time (RTO) (Retransmission Time Out), the TCP transmitter has not received an acknowledgment of receipt for a previously transmitted packet, it transmits a new one times to the TCP receiver. This RTO retransmission delay is calculated by the TCP transmitter, using an algorithm, according to a "RTT" (Round Trip Time) loop delay corresponding to the duration average between sending a forward packet and receiving a return acknowledgment. The TCP transmitter also uses a "sliding transmission window" mechanism authorizing it to transmit several data packets, contained in the window, before receiving an acknowledgment. Due to its size, the transmission window fixes a number of packets that can be transmitted without the need for an acknowledgment of receipt (see Figure 3). This window moves and increases as the TCP sender receives the acknowledgments. Thus, upon receipt of each acknowledgment, the TCP transmitter advances its transmission window in order to transmit the following packets and increases the size of the window. Initially, the send window contains a packet, or even a few packets (generally not more than four), and increases first exponentially to a predefined threshold called "ssthresh" (Slow Start Threshold), then linear to an optimal limit beyond which there is congestion, which results in the loss of data packets. In Figure 3, there is shown a succession 6 of data packets numbered from 11 to 24 and a sliding transmission window 7 at a given time. In this figure 3, the data packets can be classified as follows: - packets sent and acknowledged 61: n ° ll to 13 - packets sent and unacknowledged 62: n ° 14 to 16 - packets to be sent 63: n ° 17 to 21 - packets not authorized to be sent 64: n ° 22 to 24 The last acknowledgment received "ACK" 60, of value 14, confirmed the reception of all the data packets preceding packet n ° 14. The left edge of window 7 is therefore positioned just before package # 14. The TCP sender is only allowed to send the packets contained in the send window (numbered from 14 to 21) without receiving an acknowledgment. In Figure 3, we see that the next packet that the TCP sender will send is No. 17. To be authorized to send the following packets, not contained in window 7 as shown in Figure 3 (i.e. packets # 22 and following), the TCP sender must receive a new acknowledgment ACK of value strictly greater than 14 and drag its window 7 to the right (in the direction of arrow 8), so as to position the left edge of window 7 just before the packet whose number corresponds to the value of the acknowledgment received. For example, if the next acknowledgment of receipt has the value 16, the left edge of window 7 is moved in the direction of arrow 8 so as to be positioned just before packet n ° 16. Furthermore, at the same time as it moves window 7, the transmitter
TCP augmente la taille de la fenêtre 7. Par exemple, si la phase dans laquelle il se trouve permet à l'émetteur TCP d'augmenter la taille de la fenêtre 7 d'un paquet à la réception de chaque accusé de réception, la nouvelle fenêtre 7 contient alors neuf paquets. L'émetteur TCP représenté sur la figure 2 est le serveur accélérateur de débitTCP increases the size of window 7. For example, if the phase in which it is located allows the TCP sender to increase the size of window 7 of a packet upon receipt of each acknowledgment, the new window 7 then contains nine packages. The TCP transmitter shown in Figure 2 is the speed accelerator server
4. Il comprend, de façon connue, un module 40 d'émission de paquets de données, un module 41 de réception d'accusés de réception, un module 42 de calcul du délai de retransmission RTO et une horloge 43 de temporisation de retransmission. Le module d'émission 40 est agencé pour émettre des paquets de données en utilisant la méthode de la "fenêtre glissante d'émission" précédemment explicitée (voir figure 3). Il est donc autorisé à envoyer plusieurs paquets de données, contenus dans la fenêtre d'émission, avant de recevoir un accusé de réception. Au for et à mesure de la réception des accusés de réception, signalés par le module de réception 41, le module d'émission 40, d'une part, fait avancer la fenêtre glissante d'émission et, d'autre part, calcule et met à jour la taille de cette fenêtre. On rappelle ici que, selon le protocole4. It comprises, in known manner, a module 40 for transmitting data packets, a module 41 for receiving acknowledgments of receipt, a module 42 for calculating the retransmission delay RTO and a timer 43 for retransmission delay. The transmission module 40 is arranged to transmit data packets using the method of the "sliding transmission window" previously explained (see FIG. 3). It is therefore authorized to send several data packets, contained in the transmission window, before receiving an acknowledgment of receipt. As for and as the reception of the acknowledgments of reception, signaled by the reception module 41, the transmission module 40, on the one hand, advances the sliding transmission window and, on the other hand, calculates and updates the size of this window. We recall here that, according to the protocol
TCP, la taille de la fenêtre, fixée au départ à un paquet, voire à quelques paquetsTCP, the size of the window, initially set to a packet, or even a few packets
(quatre au plus), augmente, dans un premier temps, de façon exponentielle jusqu'à un seuil "ssthresh" (Slow Start Threshold), puis, dans un second temps, de façon linéaire. Le module 41 de réception d'accusés de réception, interposé entre le module de calcul 42 et le module d'émission 40, est agencé pour recevoir et traiter les accusés de réception "ACK" et pour transmettre aux autres modules des informations utiles, fournies par les accusés de réception, pour mettre à jour des variables d'état d'émission telles que notamment le délai de retransmission RTO, le délai de boucle RTT, la taille W de la fenêtre glissante d'émission et le seuil "ssthresh". Le module 42 de calcul du délai de retransmission RTO est agencé pour calculer le délai de retransmission RTO à l'aide d'un algorithme prévu par le protocole TCP, à partir du délai de boucle. On rappelle ici que le délai de boucle correspond à la durée moyenne entre l'envoi d'un paquet de données aller et la réception d'un accusé de réception retour. En fonctionnement, le module de calcul 42 mesure le délai de boucle(four at most), increases, firstly, exponentially up to a "ssthresh" (Slow Start Threshold), then, secondly, linearly. The module 41 for receiving acknowledgments, interposed between the calculation module 42 and the sending module 40, is arranged to receive and process the "ACK" acknowledgments and to transmit to the other modules useful information, provided by acknowledgments, to update emission state variables such as in particular the RTO retransmission delay, the RTT loop delay, the size W of the sliding transmission window and the "ssthresh" threshold. The RTO retransmission delay calculation module 42 is arranged to calculate the RTO retransmission delay using an algorithm provided by the TCP protocol, from the loop delay. It is recalled here that the loop delay corresponds to the average time between the sending of a forward data packet and the reception of a return acknowledgment. In operation, the calculation module 42 measures the loop delay
RTT à des instants d'échantillonnage tj successifs, lisse les échantillons de délai de boucle mesurés RTTj de telle sorte que:RTT at successive sampling times tj, smoothes the RTTj measured loop delay samples so that:
SRTT; = (1 - ).SRTTt + a.RTTt avec a = - , 8 où SRRTj représente la valeur lissée de l'échantillon RTTj du délai de boucle (Smoothed Round Trip Time) mesuré à l'instant tj. Il calcule ensuite le délai de retransmission RTO à partir du délai de boucle mesuré et lissé, à l'aide de l'algorithme du protocole TCP. Pour plus de renseignements à ce sujet, le lecteur est invité à se reporter notamment au document RFC2988 de ITETF (Internet Engineering Task Force). Le délai de retransmission RTO ainsi calculé est fourni à l'horloge 43. L'horloge 43 de temporisation de retransmission, reliée au module de calcul du délai de retransmission RTO et au module d'émission 40, est agencée pour commander la retransmission d'un paquet de données si, à l'expiration du délai de retransmission RTO, l'émetteur TCP n'a pas encore reçu d'accusé de réception pour ce paquet. L'émetteur TCP 4 comprend en outre un module 44 d'évaluation de la bande passante disponible du canal de transmission 5 et une mémoire 45. La mémoire 45, reliée au module d'évaluation 44 et au module d'émission 40, est destinée à mémoriser un ou plusieurs couples de valeurs (RTTn, Wn max), comprenant chacun une valeur stable de délai de boucle et la taille maximale de la fenêtre glissante d'émission observée lorsque le délai de boucle est stable et vaut RTTn. Le module d'évaluation 44 est interposé entre le module 42 de calcul du délai de retransmission et le module d'émission 40. En cours d'émission, le module d'évaluation 44 observe l'état du délai de boucle mesuré et lissé par le module de calculSRTT ; = (1 -) .SRTT t + a.RTT t with a = -, 8 where SRRTj represents the smoothed value of the RTTj sample of the Smoothed Round Trip Time measured at time tj. It then calculates the RTO retransmission delay from the measured and smoothed loop delay, using the algorithm of the TCP protocol. For more information on this subject, the reader is invited to refer in particular to document RFC2988 of ITETF (Internet Engineering Task Force). The RTO retransmission delay thus calculated is supplied to the clock 43. The retransmission delay clock 43, connected to the module for calculating the RTO retransmission delay and to the transmission module 40, is arranged to control the retransmission of a data packet if, at the end of the RTO retransmission delay, the TCP sender has not yet received an acknowledgment for this packet. The TCP transmitter 4 further comprises a module 44 for evaluating the available bandwidth of the transmission channel 5 and a memory 45. The memory 45, connected to the evaluation module 44 and to the transmission module 40, is intended to memorize one or more pairs of values (RTT n , W n max ), each comprising a stable loop delay value and the maximum size of the sliding transmission window observed when the loop delay is stable and equals RTT n . The evaluation module 44 is interposed between the module 42 for calculating the retransmission delay and the transmission module 40. During transmission, the evaluation module 44 observes the state of the loop delay measured and smoothed by the calculation module
42 afin de détecter i) soit un état de stabilité du délai de boucle, ii) soit une augmentation progressive du délai de boucle, apparaissant à la suite d'une période de stabilité dudit délai, iii) soit une diminution progressive du délai de boucle, apparaissant à la suite d'une période de stabilité dudit délai. On rappelle ici que par les termes augmentation/diminution "progressive", on entend désigner une augmentation diminution régulière et continue, par opposition à une augmentation/diminution brusque. Dans le cas i), pour chaque valeur stable RTTn du délai de boucle, le module d'évaluation 44 enregistre dans la mémoire 45 le couple de valeurs {RTTn, Wn max} contenant la valeur stable du délai de boucle RTTn et la taille maximale de la fenêtre glissante d'émission observée lorsque le délai de boucle est stable et vaut RTTn. Dans le cas ii), le module d'évaluation 44 signale au module d'émission 40 que le débit de données en émission est supérieur à la bande passante disponible. Dans le cas iii), le module d'évaluation 44 signale au module d'émission 40 que le débit de données en émission est inférieur à la bande passante disponible. La méthode de détection de l'état du délai de boucle (stabilité, augmentation progressive ou diminution progressive) par le module d'évaluation 44 est décrite ci- après dans la description du procédé. Le procédé qui va maintenant être décrit permet d'évaluer la bande passante disponible du canal de transmission 5 entre le serveur accélérateur de débit 4 et le terminal 2, lors d'une transmission de données du serveur 4 vers le terminal 2. Lors d'une transmission de données du serveur 4, émetteur TCP, vers le terminal 2, récepteur TCP, le module de calcul 42 du serveur 4 mesure et lisse le délai de boucle à des instants d'échantillonnage successifs tj. On rappelle ici que "SRTTj"42 in order to detect i) either a state of stability of the loop delay, ii) either a progressive increase in the loop delay, appearing following a period of stability of said delay, iii) or a progressive decrease in the loop delay, appearing at the following a period of stability of the said period. It is recalled here that by the terms "progressive" increase / decrease, we mean to designate a regular and continuous decrease increase, as opposed to a sudden increase / decrease. In case i), for each stable value RTT n of the loop delay, the evaluation module 44 stores in memory 45 the pair of values {RTT n , W n max } containing the stable value of the loop delay RTT n and the maximum size of the sliding transmission window observed when the loop delay is stable and equals RTT n . In case ii), the evaluation module 44 signals to the transmission module 40 that the transmission data rate is greater than the available bandwidth. In case iii), the evaluation module 44 signals to the transmission module 40 that the transmission data rate is less than the available bandwidth. The method for detecting the state of the loop delay (stability, progressive increase or progressive reduction) by the evaluation module 44 is described below in the description of the process. The method which will now be described makes it possible to evaluate the available bandwidth of the transmission channel 5 between the rate accelerator server 4 and the terminal 2, during a data transmission from the server 4 to the terminal 2. During a data transmission from the server 4, TCP transmitter, to the terminal 2, TCP receiver, the calculation module 42 of the server 4 measures and smooths the loop delay at successive sampling instants tj. We recall here that "SRTTj"
(Smoothed Round Trip Time) représente la valeur de l'échantillon d'indice i du délai de boucle mesuré à l'instant t; et lissé. A partir des échantillons de délai de boucle mesurés et lissés SRTTj, fournis par le module de calcul 42, pour chaque instant d'échantillonnage t;, le module d'évaluation 44 calcule - une erreur de délai de boucle e égale à l'écart entre les deux derniers échantillons de délai de boucle mesurés et lissés SRTTj et SRTTi-l5 autrement dit: et = SRTT; - SRTT^ et - un cumul d'erreurs C; en additionnant les erreurs de délai de boucle sur les N derniers échantillons de délai de boucle mesurés et lissés, autrement dit:(Smoothed Round Trip Time) represents the value of the sample of index i of the loop delay measured at time t; and smoothed. From the measured and smoothed loop delay samples SRTTj, supplied by the calculation module 42, for each sampling instant t;, the evaluation module 44 calculates a loop delay error e equal to the difference between the last two measured and smoothed loop delay samples SRTTj and SRTT- l5 in other words: e t = SRTT ; - SRTT ^ and - a plurality of errors C; by adding the loop delay errors over the last N measured and smoothed loop delay samples, in other words:
C, = ±.j . j=i-N+l Cas A Si le module d'évaluation 44 détecte que les N dernières erreurs de délai de — S S boucle βj V/' e [ι - N + l,z] et le cumul d'erreurs ( ) sont compris entre et — '- , g — - représentant un seuil de tolérance, autrement dit que
Figure imgf000014_0001
C, = ± .j. j = i-N + l Case A If the evaluation module 44 detects that the last N delay errors of - SS loop β j V / ' e [ι - N + l, z] and the accumulation of errors ( ) are between and - '-, g - - representing a tolerance threshold, i.e.
Figure imgf000014_0001
^) ~ fi,{^ j i - N+ ,i], alors il enregistre provisoirement le délai de boucle. La valeur enregistrée du délai de boucle est ici égale à la moyenne des N derniers échantillons de délai de boucle. On pourrait envisager de déterminer le délai de boucle par une autre méthode consistant par exemple à retenir la valeur du dernier échantillon mesuré et lissé SRTTj et à ne la remplacer par une autre valeur d'échantillon SRTTj que si la différence entre les deux échantillons SRTTj et SRTTj est supérieure à un seuil de tolérance prédéfini. Si le délai de boucle demeure sensiblement constant pendant une durée au moins égale à une durée seuil, ici égale au délai de boucle lui-même, le module d'évaluation 44 détecte un état de stabilité du délai de boucle. Cas B Si, après une période de stabilité du délai de boucle, le module d'évaluation 44^) ~ fi, {^ ji - N +, i], then it temporarily records the loop delay. The recorded value of the loop delay is here equal to the average of the last N loop delay samples. One could consider determining the loop delay by another method consisting for example of retaining the value of the last measured and smoothed sample SRTTj and of replacing it with another value of sample SRTT j only if the difference between the two samples SRTTj and SRTT j is greater than a predefined tolerance threshold. If the loop delay remains substantially constant for a duration at least equal to a threshold duration, here equal to the loop delay itself, the evaluation module 44 detects a state of stability of the loop delay. Case B If, after a period of stability of the loop delay, the evaluation module 44
détecte que Ci)—L pour la première fois à l'instant tx, i) à partir de l'instant tx, pour chaque instant d'échantillonnage tj, le module d'évaluation 44 calcule le cumul d'erreurs en additionnant toutes les erreurs βj mesurées à partir de cet instant tx et jusqu'à l'instant t;, et ii) si le module d'évaluation 44 détecte que C,.)SC (Sc représentant un seuil critique), le délai de boucle est dans un état d'augmentation progressive. Le module d'évaluation 44 signale alors au module d'émission 40 que le débit de données en émission est supérieur à la bande passante disponible. Cas C Si, après une période de stabilité du délai de boucle, le module d'évaluation 44detects that C i ) - L for the first time at time t x , i) from the instant t x , for each sampling instant tj, the evaluation module 44 calculates the accumulation of errors by adding all the errors β j measured from this instant t x and up to instant t ;, and ii) if the evaluation module 44 detects that C,.) S C (S c representing a critical threshold), the loop delay is in a state of progressive increase. The evaluation module 44 then signals to the transmission module 40 that the transmission data rate is greater than the available bandwidth. Case C If, after a stable period of the loop delay, the evaluation module 44
détecte que Ci { pour la première fois à l'instant ty, i) à partir de l'instant ty, pour chaque instant d'échantillonnage tj, le module d'évaluation 44 calcule le cumul d'erreurs en additionnant toutes les erreurs e,- mesurées à partir de cet instant ty et jusqu'à l'instant tj, et ii) si le module d'évaluation 44 détecte que Ci {-Sc , le délai de boucle est dans un état de diminution progressive. Le module d'évaluation 44 signale alors au module d'émission 40 que le débit de données en émission est inférieur à la bande passante disponible. Dans les autres cas que les cas A, B et C explicités ci-dessus, le délai de boucle est dans un état non identifiable pouvant correspondre à une période d'instabilité. Dans les cas B et C, selon que le débit de données en émission est supérieur ou inférieur à la bande passante disponible, le serveur 4 peut prendre diverses mesures appropriées consistant - à diminuer ou à stabiliser la taille de la fenêtre, afin d'éviter une congestion, ou - à augmenter la taille de la fenêtre, afin d'augmenter le débit de données à travers le canal 5 du serveur 4 vers le terminal client 2. Dans le cas où l'émetteur TCP 4 a préalablement observé et mémorisé un délai de boucle stable, de valeur RTTn, et une valeur maximale Wn max pour la taille de la fenêtre d'émission, il peut décider de modifier la valeur du seuil "ssthresh" afin que ssthresh = aWn mΑ avec α proche de la valeur 1 mais strictement inférieur à 1. A titre 7 3 d'exemple, on peut prendre a = — ou a = — . Une seuil "ssthresh" proche de la valeurdetects that C i {for the first time at time t y , i) from time t y , for each sampling instant tj, the evaluation module 44 calculates the accumulation of errors by adding all the errors e, - measured from this instant t y and until instant tj, and ii) if the evaluation module 44 detects that C i {-S c , the loop delay is in a state of gradual decrease. The evaluation module 44 then signals to the transmission module 40 that the transmission data rate is less than the available bandwidth. In other cases than cases A, B and C explained above, the loop delay is in an unidentifiable state which may correspond to a period of instability. In cases B and C, depending on whether the transmission data rate is higher or lower than the available bandwidth, the server 4 can take various appropriate measures consisting of - reducing or stabilizing the size of the window, in order to avoid congestion, or - to increase the size of the window, in order to increase the data rate through the channel 5 from the server 4 to the client terminal 2. In the case where the TCP 4 transmitter has previously observed and memorized a stable loop delay, of value RTT n , and a maximum value W n max for the size of the transmission window, it can decide to modify the value of the "ssthresh" threshold so that ssthresh = aW n mΑ with α close to the value 1 but strictly less than 1. As an example 7 3, we can take a = - or a = -. A "ssthresh" threshold close to the value
maximale Wn,max permet une augmentation plus rapide de la taille de la fenêtre jusqu'à une valeur optimale compte tenu de la bande passante disponible. Lorsque le délai de boucle est stable et vaut RTTn, au fur et à mesure de la réception des accusés de réception, la taille Wn de la fenêtre d'émission augmente et le module d'évaluation 44 la mémorise dans la mémoire 45. Cela permet au serveur 4 de mémoriser, pour chaque valeur stable RTTn du délai de boucle, le couple de valeurs de référence (RTTn,Wn,max) contenant la valeur stable du délai de boucle RTTn et la taille maximale de la fenêtre d'émission observée pour cette valeur RTTn du délai de boucle.maximum W n , max allows a faster increase in window size to an optimal value taking into account the available bandwidth. When the loop delay is stable and equal to RTT n , as and when reception acknowledgments are received, the size W n of the transmission window increases and the evaluation module 44 stores it in memory 45. This allows the server 4 to memorize, for each stable value RTT n of the loop delay, the pair of reference values (RTT n , W n , max ) containing the stable value of the loop delay RTT n and the maximum size of the transmission window observed for this RTT n value of the loop delay.
Le module d'évaluation 44 dispose ainsi de la bande passante disponible, valantThe evaluation module 44 thus has the available bandwidth, worth
W "'""* , pour cette valeur RTTn du délai de boucle. Si, après une période de stabilité RTTn durant laquelle le délai de boucle vaut RTTn, le délai de boucle passe dans un état d'augmentation progressive, alors que la taille de la fenêtre continue parallèlement à augmenter comme cela est prévu par le protocole TCP, l'émetteur pourra limiter la taille de la fenêtre à la valeur Wn,maχ, et par conséquent le débit de données, afin d'éviter une congestion. En outre, si le délai de boucle varie de manière aléatoire en raison de perturbations (et non en raison du fait que le débit de données s'approche de la bande passante disponible du canal de transmission 5), ce couple (RTTn,Wn.max) constitue un point de référence pour la reprise de la transmission. Tous les couples de valeurs délai de boucle / taille de fenêtre pour lesquels un état de stabilité de la transmission est observée sont mémorisés. On conserve ainsi un historique de couples délai de boucle / taille de fenêtre de référence. A titre d'exemple illustratif, on va maintenant décrire le processus d'évaluation de la charge du canal de transmission 5 lors d'une transmission de données par liaison satellite du serveur 4 vers le terminal 2, au cours de laquelle la bande passante disponible sur le canal de transmission 5 est brutalement réduite. Pour cette évaluation, on prend: - N = 5, - St = 100 ms et - Sc = 200 ms. Les figures 4A et 4B représentent respectivement le délai de boucle lissé (en ms) et le débit de données (en kbits/s) à travers le canal de transmission 5, mesurés entre les instants t2 = 70 s et t3 = 85 s. Les figures 5A et 5B représentent respectivement les erreurs de délai de boucle βj (en ms) et le cumul d'erreurs Ci (en ms), entre les instants t2 = 70s et t3 = 85s, calculés à partir des échantillons du délai de boucle représentés sur la figure 4A. Les figures 6A et 6B représentent respectivement l'évolution du délai de boucle en début de transmission, entre l'instant tO = 38s (début de la transmission) et tl = 55s, et au moment d'une réduction de la bande passante disponible, entre les instants t2 et t3. Sur la figure 6A, on peut observer que le délai de boucle est instable en début de transmission puis se stabilise à la valeur SRTT1=560 ms. Cet état de stabilité est détecté par le processus d'évaluation à l'instant t5 = 46 s. Comme on peut le voir sur la figure 4B, le débit de données à travers le canal de transmission 5 vaut initialement 1000 kbits/s puis est brutalement réduit à 500 kbits/s, à l'instant t4 = 76,6s, en raison d'une réduction de la bande passante disponible.W "'"" * , for this value RTT n of the loop delay. If, after a period of stability RTT n during which the loop delay is RTT n , the loop delay goes into a state of progressive increase, then as the size of the window continues to increase in parallel as provided for by the TCP protocol, the sender may limit the size of the window to the value W n , ma χ, and consequently the data rate, in order to avoid In addition, if the loop delay varies randomly due to disturbances (and not because the data rate approaches the available bandwidth of transmission channel 5), this couple (RTT n , W n . max ) is a reference point for resuming the transmission. All the pairs of loop delay / window size values for which a transmission stability condition is observed are memorized. couples delay loop / reference window size. As an illustrative example, we will now describe the process for evaluating the load of the transmission channel 5 during a data transmission by link. satellite from server 4 to terminal 2, during which the bandwidth available on the transmission channel 5 is suddenly reduced. For this evaluation, we take: - N = 5, - St = 100 ms and - Sc = 200 ms. FIGS. 4A and 4B respectively represent the smoothed loop delay (in ms) and the data rate (in kbits / s) through the transmission channel 5, measured between the times t2 = 70 s and t3 = 85 s. FIGS. 5A and 5B respectively represent the loop delay errors βj (in ms) and the cumulative error Ci (in ms), between the instants t2 = 70s and t3 = 85s, calculated from the samples of the loop delay shown in Figure 4A. FIGS. 6A and 6B respectively represent the evolution of the loop delay at the start of transmission, between the instant t0 = 38s (start of the transmission) and tl = 55s, and at the time of a reduction in the available bandwidth, between times t2 and t3. In FIG. 6A, it can be observed that the loop delay is unstable at the start of transmission and then stabilizes at the value SRTT1 = 560 ms. This state of stability is detected by the evaluation process at time t5 = 46 s. As can be seen in FIG. 4B, the data rate through the transmission channel 5 is initially worth 1000 kbits / s then is suddenly reduced to 500 kbits / s, at the instant t4 = 76.6s, due to '' a reduction in available bandwidth.
Sur la figure 6B, on peut observer que le délai de boucle, qui vaut initialement SRTT1=560 ms, augmente progressivement à compter de l'instant t4 de réduction brutale du débit, jusqu'à une valeur SRTT2=1130 ms. Sur la figure 5A, on peut observer une augmentation momentanée des erreurs de délai de boucle βj, faiblement perceptible, peu après l'instant t4 de réduction de la bande passante. En revanche, la figure 5B fait apparaître de façon parfaitement distincte une pic d'augmentation du cumul d'erreurs Ci, peu après l'instant t4. Un tel pic d'augmentation signale une augmentation progressive du délai de boucle. Grâce au processus d'évaluation préalablement décrit, l'augmentation progressive du délai de boucle corrélative à la réduction de la bande passante disponible, est détectée à l'instant t6=77s. Dans la description qui précède, l'évaluation de la bande passante disponible est réalisée dans le serveur 4 afin d'optimiser le débit de données dans le sens descendant (du serveur 4 vers le tenninal client 2). On pourrait envisager d'évaluer la bande passante disponible dans le terminal client 2, afin d'optimiser le débit de données dans le sens montant (du terminal client 2 vers le serveur 4), ou encore, dans le cas d'une transmission de données entre deux terminaux, dans chaque terminal émetteur. L'invention s'applique non seulement aux réseaux satellites mais également à tout autre type de réseau, et plus particulièrement aux réseaux à long délai de boucleIn FIG. 6B, it can be observed that the loop delay, which is initially worth SRTT1 = 560 ms, increases progressively from the instant t4 of abrupt reduction in bit rate, up to a value SRTT2 = 1130 ms. In FIG. 5A, we can observe a momentary increase in the loop delay errors βj, slightly perceptible, shortly after the time t4 of reduction of the bandwidth. On the other hand, FIG. 5B shows perfectly clearly a peak of increase in the cumulation of errors Ci, shortly after the instant t4. Such an increase peak signals a gradual increase in the loop delay. Thanks to the evaluation process previously described, the gradual increase in the correlative loop to the reduction of the available bandwidth, is detected at time t6 = 77s. In the foregoing description, the evaluation of the available bandwidth is performed in the server 4 in order to optimize the data rate in the downward direction (from the server 4 to the client terminal 2). One could consider evaluating the bandwidth available in the client terminal 2, in order to optimize the data rate in the uplink direction (from the client terminal 2 to the server 4), or even, in the case of a transmission of data between two terminals, in each transmitting terminal. The invention applies not only to satellite networks but also to any other type of network, and more particularly to networks with long loop delay
(de plusieurs centaines de millisecondes), par exemple les réseaux GPRS ou plus particulièrement les réseaux LFN (Long Fat Network). (several hundred milliseconds), for example GPRS networks or more particularly LFN (Long Fat Network) networks.

Claims

Revendications claims
1. Procédé pour évaluer la bande passante disponible d'un canal de transmission (5) lors d'une transmission de données entre un émetteur (4) et un récepteur (2), à travers ledit canal (5), la transmission utilisant une méthode dite de1. Method for evaluating the available bandwidth of a transmission channel (5) during a data transmission between a transmitter (4) and a receiver (2), through said channel (5), the transmission using a so-called method
"fenêtre glissante" selon laquelle l'émetteur (4) est autorisé à envoyer vers le récepteur (2) plusieurs paquets de données, contenus dans la fenêtre (7), avant de recevoir un accusé de réception pour l'un au moins de ces paquets, et fait avancer la fenêtre (7), afin d'émettre les paquets suivants, au for et à mesure qu'il reçoit les accusés de réception, procédé dans lequel l'émetteur (4) mesure un délai de boucle correspondant à la durée entre l'envoi d'un paquet de données et la réception d'un accusé de réception correspondant, à des instants d'échantillonnage successifs (tj), caractérisé par le fait que l'émetteur observe l'état du délai de boucle (RTT) et, à chaque fois qu'il détecte un état de stabilité de celui-ci (RTTn), il mémorise le couple de valeurs (RTTn,Wn,max) contenant la valeur stable du délai de boucle (RTTn) et la taille maximale de la fenêtre d'émission observée pour cette valeur stable du délai de boucle (RTTn)."sliding window" according to which the transmitter (4) is authorized to send to the receiver (2) several data packets, contained in the window (7), before receiving an acknowledgment of receipt for at least one of these packets, and advances the window (7), in order to transmit the following packets, for and as it receives the acknowledgments of receipt, process in which the transmitter (4) measures a loop delay corresponding to the duration between the sending of a data packet and the reception of a corresponding acknowledgment of receipt, at successive sampling instants (tj), characterized in that the transmitter observes the state of the loop delay ( RTT) and, each time it detects a stable state of it (RTT n ), it stores the pair of values (RTT n , W n , max) containing the stable value of the loop delay (RTT n ) and the maximum size of the transmission window observed for this stable value of the loop delay (RTT n ).
2. Procédé selon la revendication 1, dans lequel - si, après une période de stabilité du délai de boucle, l'émetteur (4) détecte une augmentation progressive dudit délai, il signale que le débit de données est supérieur à la bande passante disponible, - si, après une période de stabilité du délai de boucle, l'émetteur (4) détecte une diminution progressive dudit délai, il signale que le débit de données est inférieur à la bande passante disponible.2. Method according to claim 1, in which - if, after a period of stability of the loop delay, the transmitter (4) detects a progressive increase in said delay, it signals that the data rate is greater than the available bandwidth , - if, after a stable period of the loop delay, the transmitter (4) detects a gradual decrease in said delay, it signals that the data rate is less than the available bandwidth.
3. Procédé selon la revendication 2, dans lequel - pour chaque instant d'échantillonnage (tj), l'émetteur (4) mesure une erreur de délai de boucle (e;) correspondant à l'écart entre les deux derniers échantillons de délai de boucle (SRTTj et SRTTj- et calcule un cumul d'erreurs (C;) en additionnant les erreurs de délai de boucle sur les N derniers échantillons de délai de boucle, - si l'émetteur (4) détecte que les N dernières erreurs de délai de boucle (ej 3. Method according to claim 2, in which - for each sampling instant (tj), the transmitter (4) measures a loop delay error (e;) corresponding to the difference between the last two samples of loop delay (SRTTj and SRTTj- and calculates a cumulative error (C;) by adding the loop delay errors over the last N loop delay samples, - if the transmitter (4) detects that the last N loop delay errors (e j
V; e [z' - N + lJ]) et le cumul d'erreurs (Ci) sont compris entre et — '- , — - À, À, représentant un seuil de tolérance, il enregistre provisoirement le délai de boucle, - si le délai de boucle demeure sensiblement constant pendant une durée supérieure à un seuil prédéterminé, l'émetteur (4) détecte un état de stabilité du délai de boucle. V; e [z ' - N + lJ]) and the cumulative errors (Ci) are between and -' -, - - À, À, representing a tolerance threshold, it temporarily records the loop delay, - if the loop delay remains substantially constant for a duration greater than a predetermined threshold, the transmitter (4) detects a stable state of the loop delay.
4. Procédé selon la revendication 3, dans lequel la durée seuil est égale au délai de boucle enregistré.4. The method of claim 3, wherein the threshold duration is equal to the recorded loop delay.
5. Procédé selon l'une des revendications 3 et 4, dans lequel si, après une5. Method according to one of claims 3 and 4, wherein if, after a
période de stabilité du délai de boucle, l'émetteur (4) détecte que C,>— pour laloop delay stability period, the transmitter (4) detects that C,> - for the
première fois à l'instant tx, i) à partir de l'instant tx, pour chaque instant d'échantillonnage ti, l'émetteur (4) calcule le cumul d'erreurs C; en additionnant toutes les erreurs ej mesurées à partir de cet instant tx jusqu'à l'instant d'échantillonnage tj, et ii) si l'émetteur (4) détecte que C,)SC , Sc représentant un seuil critique, il signale que le débit de données est supérieur à la bande passante disponible.first time at time t x , i) from time t x , for each sampling time ti, the transmitter (4) calculates the cumulative error C; by adding all the errors ej measured from this instant t x to the sampling instant tj, and ii) if the emitter (4) detects that C,) S C , S c representing a critical threshold, it signals that the data rate is higher than the available bandwidth.
6. Procédé selon l'une des revendications 3 à 5, dans lequel si, après une — S période de stabilité du délai de boucle, l'émetteur (4) détecte que C,( '- pour la6. Method according to one of claims 3 to 5, wherein if, after a - S period of stability of the loop delay, the transmitter (4) detects that C, ('- for the
première fois à l'instant ty, i) à partir de l'instant ty, pour chaque instant d'échantillonnage tj, l'émetteur (4) calcule le cumul d'erreurs Ci en additionnant toutes les erreurs ej mesurées à partir de cet instant tx jusqu'à l'instant d'échantillonnage t;, et ii) s'il détecte que C,(-Sc, il signale que le débit de données est inférieur à la bande passante disponible.first time at time t y , i) from time t y , for each sampling time tj, the emitter (4) calculates the cumulative error Ci by adding all the errors e j measured at from this instant t x to the sampling instant t ;, and ii) if it detects that C, (- S c , it signals that the data rate is less than the available bandwidth.
7. Dispositif d'émission pour la mise en œuvre du procédé de la revendication 1, comprenant - des moyens (40) d'émission à travers un canal de transmission, utilisant une méthode dite de "fenêtre glissante", agencés pour envoyer plusieurs paquets de données, contenus dans la fenêtre, avant de recevoir un accusé de réception pour l'un au moins de ces paquets et pour faire avancer la fenêtre afin d'émettre les paquets suivants, et - des moyens (42) pour mesurer un délai de boucle correspondant à la durée entre l'envoi d'un paquet de données et la réception d'un accusé de réception correspondant, à des instants d'échantillonnage successifs, dispositif caractérisé par le fait qu'il comprend des moyens (44) pour détecter un état de stabilité du délai de boucle et des moyens (45) pour mémoriser, à chaque fois que l'émetteur détecte un état de stabilité du délai de boucle (RTTn), le couple de valeurs (RTTn,Wn,max) contenant la valeur stable du délai de boucle (RTTn) et la taille maximale de la fenêtre d'émission observée pour cette valeur stable du délai de boucle. 7. Transmission device for implementing the method of claim 1, comprising - means (40) for transmission through a transmission channel, using a method called "sliding window", arranged to send several packets of data, contained in the window, before receiving an acknowledgment for at least one of these packets and for advancing the window in order to transmit the following packets, and - means (42) for measuring a delay of loop corresponding to the time between sending a data packet and receiving an acknowledgment corresponding to successive sampling instants, device characterized in that it comprises means (44) for detecting a loop delay stability state and means (45) for memorizing, each time the transmitter detects a loop delay stability state (RTT n ), the pair of values (RTT n , W n , max ) containing the stable value of del ai of loop (RTT n ) and the maximum size of the emission window observed for this stable value of the loop delay.
PCT/FR2004/001865 2003-07-21 2004-07-15 Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method WO2005011229A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP04767689A EP1649666A2 (en) 2003-07-21 2004-07-15 Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR03/50358 2003-07-21
FR0350358A FR2858144A1 (en) 2003-07-21 2003-07-21 Transmission channels available bandwidth evaluating method for e.g. GPRS network, involves signaling that data flow is higher and lower than available bandwidth, if progressive increase and decrease of delay is detected respectively

Publications (2)

Publication Number Publication Date
WO2005011229A2 true WO2005011229A2 (en) 2005-02-03
WO2005011229A3 WO2005011229A3 (en) 2005-05-19

Family

ID=33561187

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2004/001865 WO2005011229A2 (en) 2003-07-21 2004-07-15 Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method

Country Status (3)

Country Link
EP (1) EP1649666A2 (en)
FR (1) FR2858144A1 (en)
WO (1) WO2005011229A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163238B (en) * 2007-07-20 2010-12-01 中兴通讯股份有限公司 Stream media service method of implementing smoothly real-time relay broadcasting/living broadcast
CN112068997A (en) * 2020-09-09 2020-12-11 恒生电子股份有限公司 Data backup method, device, equipment and storage medium
CN115250288A (en) * 2022-07-18 2022-10-28 国仪量子(合肥)技术有限公司 Data communication method, lower computer, upper computer, data transmission system and medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415843A2 (en) * 1989-08-30 1991-03-06 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
EP0991244A2 (en) * 1998-09-30 2000-04-05 Nortel Networks Corporation Apparatus for and method of managing bandwith for a packet based connection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0415843A2 (en) * 1989-08-30 1991-03-06 Digital Equipment Corporation Delay-based congestion avoidance in computer networks
EP0991244A2 (en) * 1998-09-30 2000-04-05 Nortel Networks Corporation Apparatus for and method of managing bandwith for a packet based connection

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"DYNAMIC COMPUTATION OF TCP MAXIMUM WINDOW SIZE FOR DIRECTLY CONNECTED HOSTS" IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 37, no. 4A, 1 avril 1994 (1994-04-01), pages 601-607, XP000446797 ISSN: 0018-8689 *
STEVENS W R: "TCP/IP Illustrated, Volume 1 The Protocols, TCP TIMEOUT AND RETRANSMISSION" TCP/IP ILLUSTRATED. VOL. 1: THE PROTOCOLS, PROFESSIONAL COMPUTING SERIES, READING, MA: ADDISON WESLEY, US, vol. 1, 1994, pages 297-337, XP002223116 ISBN: 0-201-63346-9 *
STEVENS W. R.: "TCP/IP Illustrated, Volume 1 The Protocols, Bulk Data Throughput (Section 20.7)" TCP/IP ILLUSTRATED. VOL. 1: THE PROTOCOLS, PROFESSIONAL COMPUTING SERIES, ADDISON WESLEY, vol. 1, février 2000 (2000-02), pages 289-292, XP002277438 READING, MA, US *
TANENBAUM S: "Computer Networks, THE TRANSPORT LAYER" COMPUTER NETWORKS, LONDON: PRENTICE-HALL INTERNATIONAL, GB, 1996, pages 536-542, XP002233582 ISBN: 0-13-394248-1 *
V. PAXSON, M. ALLMAN: "RFC 2988: Computing TCP's Retransmission Timer" RFC 2988 IETF NETWORK WORKING GROUP, [Online] novembre 2000 (2000-11), pages 1-8, XP002277547 Extrait de l'Internet: URL:ftp://ftp.rfc-editor.org/> [extrait le 2004-04-21] cité dans la demande *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101163238B (en) * 2007-07-20 2010-12-01 中兴通讯股份有限公司 Stream media service method of implementing smoothly real-time relay broadcasting/living broadcast
CN112068997A (en) * 2020-09-09 2020-12-11 恒生电子股份有限公司 Data backup method, device, equipment and storage medium
CN112068997B (en) * 2020-09-09 2023-12-19 恒生电子股份有限公司 Data backup method, device, equipment and storage medium
CN115250288A (en) * 2022-07-18 2022-10-28 国仪量子(合肥)技术有限公司 Data communication method, lower computer, upper computer, data transmission system and medium

Also Published As

Publication number Publication date
FR2858144A1 (en) 2005-01-28
WO2005011229A3 (en) 2005-05-19
EP1649666A2 (en) 2006-04-26

Similar Documents

Publication Publication Date Title
EP1217778B1 (en) Data communication method and apparatus using automatic repeat request
US7782758B2 (en) Efficient loss recovery architecture for loss-decoupled TCP
US6587875B1 (en) Network protocol and associated methods for optimizing use of available bandwidth
EP1376945B1 (en) Receiver-based RTT measurement in TCP
WO2003030469A2 (en) Method of improving the performances of a transmission protocol using a retransmission timer
US7564792B2 (en) Transparent optimization for transmission control protocol flow control
US7444578B2 (en) Data unit sender and method of controlling the same
KR20040015009A (en) Method for reliable and efficient support of congestion control in nack-based protocols
FR2805112A1 (en) METHOD AND UNIT FOR CONTROLLING THE FLOW OF A TCP CONNECTION ON A CONTROLLED SPEED NETWORK
EP1349285A1 (en) Method for making efficient use of the bits allocated to the sequence number when transmitting compressed header data
WO2005011229A2 (en) Method for evaluating the available bandwidth of a transmission channel during data transmission and a transmitter for carrying out said method
EP1161023A1 (en) System and method to transmit data in two modes and corresponding transmitter and receiver
EP1668869B1 (en) Method for adapting a congestion avoidance threshold as a function of the load on a network and associated transmission device
EP1745603B8 (en) Method and device for transmitting data packets
EP1411689A1 (en) Data retransmission control method and device for implementing such a method
Bachmann et al. The Rx Hex [AFS remote procedure call package]
WO2023169938A1 (en) Method for managing a retransmission of data exchanged on a path established between a first communication equipment and a second communication equipment by way of a value of an intermediate performance parameter determined by an intermediate node belonging to said path
Xiao et al. Performance Evaluation of Transmission Protocols Based on Satellite Networks
CN115665058A (en) Data transmission speed control method, device, equipment and medium
CN116708247A (en) Router speed measuring method and router
Bachmann et al. CITI Technical Report 93− 8
FR2925806A1 (en) DATA TRANSMISSION METHOD AND CORRESPONDING DEVICE
WO2004091140A2 (en) Device for measuring service quality and use of said device in a real-time data transmission network
Martin et al. On End-to-End Congestion Avoidance for TCP/IP
Gupta et al. STUDY AND ANALYSIS OF DIFFERENT TASTES IN TCP TRAFFIC

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REEP Request for entry into the european phase

Ref document number: 2004767689

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2004767689

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004767689

Country of ref document: EP