WO2015185824A1 - Méthode et système de contrôle de flux - Google Patents

Méthode et système de contrôle de flux Download PDF

Info

Publication number
WO2015185824A1
WO2015185824A1 PCT/FR2015/051343 FR2015051343W WO2015185824A1 WO 2015185824 A1 WO2015185824 A1 WO 2015185824A1 FR 2015051343 W FR2015051343 W FR 2015051343W WO 2015185824 A1 WO2015185824 A1 WO 2015185824A1
Authority
WO
WIPO (PCT)
Prior art keywords
sequence number
message
destination node
source node
node
Prior art date
Application number
PCT/FR2015/051343
Other languages
English (en)
Inventor
Axel POUDES
Ghassan Chehaibar
Sylvie Lesmanne
Original Assignee
Bull Sas
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 Bull Sas filed Critical Bull Sas
Priority to BR112016028224A priority Critical patent/BR112016028224A2/pt
Priority to US15/316,355 priority patent/US10110350B2/en
Priority to EP15732319.7A priority patent/EP3152876A1/fr
Priority to JP2016567377A priority patent/JP6547973B2/ja
Publication of WO2015185824A1 publication Critical patent/WO2015185824A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1685Details of the supervisory signal the supervisory signal being transmitted in response to a specific request, e.g. to a polling signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1838Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers

Definitions

  • the present invention relates to end-to-end flow control techniques between communicating nodes in a packet communications network, and more particularly to an optimal implementation of an end-to-end reliability mechanism in the delivery. Datas.
  • end-to-end reliability is meant here the end-to-end delivery guarantee (also referred to as “end-to-end”) of messages sent from a source node to one or more destination node (s). .
  • various errors may occur such as packet corruption, packet disordering, packet loss or duplication.
  • various end-to-end reliability mechanisms are provided such as, in particular, adding, by the source node, an end-to-end sequence number to each transmitted message so that the loss of a message can be detected by the destination node by noting a jump in the sequence numbers of the received messages;
  • each source-destination pair has a dedicated end-to-end sequence number (one in each sense).
  • the end-to-end sequence number of a given pair is incremented by one each time a new message is sent between these two nodes.
  • the destination node checks for each source node that the received packets have successive sequence numbers.
  • the number of sequence numbers is to be multiplied by the number of virtual networks used. For example, to guarantee the scheduling in a network of 65,536 nodes to 4 virtual networks, it is necessary to store 2 (transmission / reception) x 65,536 (number of nodes) x 4 (number of virtual networks) end-to-end sequence per node. In this case, with a 16-bit sequence number (plus 6 bits for the addition of an error correction code), a memory of 524288 22-bit inputs, that is 11 264 KB, is required. The allocation of such memory space, at each source node and each destination node of the network, is very expensive in resources, and impacts the performance of the network in a proportional manner to its size.
  • the destination node informs the source node by returning a "non-acknowledgment" response message specifying the type of error encountered. Subsequently, the source node retransmits the packet (s) concerned.
  • the source node stores in a retransmission memory a copy of all the messages it sends. When it receives a positive acknowledgment, the source node may delete the corresponding message from the retransmission memory. On the other hand, when it receives a negative acknowledgment (ie of "non-acknowledgment" type) or if it does not receive a response message for a certain message sent to a destination node, the source node proceeds to its retransmission and if necessary to the retransmission of the following messages to this same destination node.
  • a negative acknowledgment ie of "non-acknowledgment" type
  • the destination node refuses all the following packets an erroneous packet because the verification of the end-to-end sequence number is then erroneous until the first erroneous message is retransmitted and received without error by the destination node.
  • a disadvantage of this retransmission of data lies in the inconvenience of its implementation. Indeed, the source node must retransmit the error message and all subsequent messages to the destination node that detected the error and only this recipient. However, since the messages sent to the different destination nodes are stored in the same retransmission memory (otherwise, a retransmission memory per destination node is practically unrealizable), it is necessary to browse this retransmission memory to identify and retransmit only the required messages to the destination node that detected the error. This certainly affects the performance of the end-to-end reliability mechanism. Furthermore, it is possible that the acknowledgment message is lost even though the corresponding message has arrived at the destination node.
  • the source node retransmits this message and requests the retransmission of an acknowledgment message, which causes a duplication of the message on the destination node side.
  • Message duplication can also occur in the event of severe congestion of the network slowing down the transmitted message or its acknowledgment so that the source node retransmits this message thinking that it has been lost. As a result, the receiving node will receive the same message twice.
  • the maximum possible value of the end-to-end sequence number be much greater than twice the number of messages that a source node can send during a second message.
  • duration equal to the sum of the timeout and the worst propagation time between this source node and a destination node.
  • the timeout is a timing (RTO for Retransmission Time Out) activated by the source node when sending a data packet and after which the acknowledgment of receipt of this packet is expected.
  • the maximum possible value of the end-to-end sequence number must be very much greater than one billion two hundred and fifty million. It must, therefore, be encoded on at least 35 bits. In other words, this amounts to adding in each sent message an end-to-end sequence number of approximately 35 bits. However, adding a sequence number of such a size represents a very expensive overhead which results in a considerable reduction in the useful bandwidth between the source node and the destination node (s).
  • a 35-bit sequence number also increases the memory space required for storage at the nodes.
  • An object of the present invention is to overcome the aforementioned drawbacks.
  • Another object of the present invention is to reduce the complexity of implementing end-to-end flow control techniques, especially in large-scale IP networks.
  • Another object of the present invention is to increase reliability in data delivery within IP networks.
  • Another object of the present invention is to propose an end-to-end protection method which makes it possible to guarantee the reliability of a large-scale network while limiting:
  • the invention proposes, according to a first aspect, a method for managing the end-to-end reliability in the delivery with acknowledgment of data from a source node to a destination node group in a communications network, the destination node group including at least a first destination node, the method comprising the steps of: tagging messages transmitted from the source node to said first node destination by an incremental end-to-end sequence number so that said first destination node expects, following a first message received from said source node, to receive a second message marked with a number of an end-to-end sequence expected from said source node;
  • the calculated difference being equal to a predefined threshold, suspending the transmission of messages from the source node to the destination node group;
  • the end-to-end sequence number marking a message received by said first destination node and from said source node being different from said expected end-to-end sequence number, deduced by said first destination node the presence of an error in the delivery of data.
  • the method presents, according to various realizations, the following characters, if necessary combined: the end-to-end sequence number marking a received message being greater than the expected end-to-end sequence number, the error is a lost message;
  • the error is that the received message is a duplicate message
  • the predefined threshold is the integer value of half of said predefined maximum value
  • the global sequence number is coded on sixteen bits
  • the end-to-end sequence number is coded on sixteen bits.
  • This method further comprising: when the global sequence number reaches said predefined maximum value, a step of initializing this global sequence number;
  • the invention proposes a computer program product implemented on a memory medium, capable of being implemented within a computer processing unit and comprising instructions for the implementation of the method. summarized above.
  • Figure 1 illustrates an embodiment of delivery of data from a source node to a plurality of destination nodes
  • Figure 2 illustrates a method of storing and accessing data according to one embodiment.
  • a source node 10 transmitting messages 1, 2, 3 to destinations, respectively, of a plurality of destination nodes 21, 22, 23 belonging or not to the same virtual network is displayed.
  • the source node 10 transmits, to the destination nodes 21, 22, 23, messages 1, 2, 3 via links L1, L2, L3 implementing a transmission protocol with acknowledgment 4-6 (that is, with acknowledgment of receipt or with acknowledgment).
  • each message 1-3 is marked, at the source node 10, with an end-to-end sequence number n1-n3 which represents the position of this message in the stream of ordered messages from the source node 10 and to the corresponding destination node 21-23.
  • the end-to-end sequence number n1 marking the message 1 represents the order of this message 1 in the set of messages sent by the source node 10 to the destination node 21. It follows that following a message received by a destination node 21, the latter expects the reception of a message, from the source node 10, marked by an expected end-to-end sequence number (n1 + 1) which is successive to the end-to-end sequence number of the received message (n1).
  • the end-to-end sequence numbers n1-n3 are coded on 16 bits.
  • the limitation of the size of end-to-end sequence numbers n 1 -13 to 16 bits represents a gain of 20 bits per message compared to conventional methods where the size of a sequence number of end-to-end -Bout is 32 bits.
  • the sending of any message 1-3 by the source node 10 increments a global sequence number N which represents the position of this message in the global ordered data stream sent by the source node 10 to the destination nodes. -23.
  • N represents the position of this message in the global ordered data stream sent by the source node 10 to the destination nodes.
  • the number of The overall sequence of the message 2 is its order on the set of messages 1-3 sent by the source node 10 to a destination node group 21-23.
  • the global sequence number N is 16-bit coded, being of the same size as the end-to-end sequence number n1-n3.
  • the global sequence number N can not take values above two exponents sixteen minus one (2 16 -1).
  • the global sequence number increments cyclically, i.e., it is initialized each time it reaches this maximum possible value Nmax (that is, a circular global sequence number or, again, a global sequence number modulo Nmax).
  • the global sequence number N is not transmitted with the messages 1-3 on the network 30, and is kept in a retransmission memory 11 associated with the source node 10. It should be noted that more than one destination group of nodes 21-23 can be envisaged, in which case a global sequence number N is defined for each destination node group.
  • a predefined size hash table (in this case, 32) makes it possible to obtain on the basis of the destination node 21-23, the end-to-end sequence number n1-n3 of message 1-3.
  • the destination node 21 is used here as the key for the hash function to access memory space at the source node 10 which includes the end-to-end sequence number n1 to be assigned to the message 1.
  • a memory space is used to store the end-to-end sequence number n1-n3 of each destination node 21-23 (one entry per destination).
  • the end-to-end sequence number n1-n3 is obtained by reading the stored end-to-end sequence number in the memory space corresponding to the destination node 21-23. After each read of an end-to-end sequence number n1-n3, an increment of one of the end-to-end sequence number read is performed. That is, the end-to-end sequence number that has just been read, for the transmission of the message 1-3 to the destination node 21-23, is incremented by one. Thus, the next message to be transmitted to this same destination node will have an end-to-end sequence number incremented by one. In this case, the end-to-end sequence number n1 is incremented by one for each message 1 addressed to the destination node 21 which is the key to access this end-to-end sequence number.
  • This sequence number n1 is incremented linearly with the number of messages 1 sent by the source node 10 to the destination node 21. This sequence number n1 thus makes it possible to identify the message 1 addressed to the destination node 21 among the set messages addressed to this destination node 21.
  • a hash table is defined by destination node group 21-23.
  • Doubly linked lists c1-c3, respectively, associated with the end-to-end sequence numbers n1-n3 (and therefore each destination node 21-23) are configured to store messages 1-3 therein, respectively.
  • a doubly-linked list includes, for each message in the list, a pointer to the next message, and a pointer to the previous message in the relevant list.
  • the doubly chained lists c1-c3, respectively comprising the messages n1-n3, are stored in the retransmission memory 11.
  • a copy of the messages 1-3 sent from the source node 10 is inserted according to their destination, respectively, in the chained double lists c1-c3.
  • the doubly-linked list c1-c3 avoids, in case of error on an ordered message 1-3, to browse all the inputs of the retransmission memory 11 and, in particular, to retransmit to the destination node 21 -23 affected all messages following the error message.
  • the use of doubly-linked lists c1-c3 also makes it possible to reduce the travel time of the retransmission memory 11 in the event that an error is detected requiring the return of several messages to a destination node 21-23, without however, to significantly increase the memory space of the retransmission memory.
  • the sending of message on the network 30 is suspended.
  • the destination node 21-23 deduces that the received message is a duplicate message.
  • the destination node 21-23 deduces that a message is lost.
  • the destination node 21-23 can easily distinguish a duplicate message from a lost message by a simple comparison between the expected end-to-end sequence number n1-n3 and the end-to-end sequence number. received.
  • the destination node 21-23 is therefore responsible for detecting errors (loss or duplication of messages), and for requesting retransmission of the messages when it deems it necessary.
  • the predefined threshold is equal to half of the maximum possible value Nmax of the global sequence number N, or more generally the integer value of half of the maximum possible value Nmax of the global sequence number N.
  • the end-to-end flow control uses a window of width Nmax / 2 on the global sequence numbers N and whose upper bound is the global sequence number N of the next message to be sent.
  • the consequence is the suspension of the transmission of new message until the reception of the acknowledgment of the oldest message for which no acknowledgment has been received by the source node 10.
  • a implicit acknowledgment mechanism is triggered. It consists of browsing the messages in the retransmission memory 11 for the doubly linked list c1-c3 associated via the hash table to the destination node concerned. If a more recent ordered message to the same destination node 21-23 has received an acknowledgment 4-6, it means that the oldest message has also been acknowledged but this acknowledgment has been lost. In this case, it is decided to pay it implicitly and the traffic can resume.
  • the retransmission memory 11 is furthermore used to manage the transport layer with a view to retransmitting the messages, thus limiting the increase in the required memory space.
  • the retransmission memory 11 in order to increase the number of read and write ports of the retransmission memory 11, is divided into a plurality of memory banks.
  • the transmission memory is divided into four banks of memory to multiply the number of read and write ports available by four.
  • the distribution of the messages on the different banks of memories can be determined by a hash function dependent on the destination node 21-23 of the message 1-3.
  • the retransmission memory 11 can be used both for the application layer (sending of end of message event) and for the transport layer (management of retransmissions) without affecting the performance of a node in terms of the number of messages it can process per second.
  • message scheduling is provided for only two out of four virtual networks. This makes it possible to halve the size of the retransmission memory 11 necessary to store the end-to-end sequence numbers.
  • the two sequence numbers are stored in the same input and protected by one and the same error correction code. This allows an additional ten percent gain in memory without impacting performance (a single sequence number for one of the two virtual networks is needed at most for each cycle).
  • the embodiments described above apply regardless of the type of acknowledgment transmission protocol used between a data source node and one or more destination node (s).
  • This transmission protocol can be in point-to-point mode, or in point-to-multipoint mode.
  • this transmission protocol with acknowledgment can be TCP (Transmission Control Protocol) or SCTP (Stream Control Protocol).
  • node in the above description means any source element and / or destination of data in an IP communications network such as a terminal, a server or a router.
  • a message here denotes a packet, or a data frame.
  • the embodiments described above allow an orderly and reliable delivery (ie without loss) of data on several links by using a minimum of resources, particularly in terms of memory spaces.
  • the various embodiments described above make it possible to optimize, in terms of resources and performance, the flow control in a packet communication network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Une méthode pour gérer la fiabilité de bout-en-bout dans la livraison avec acquittement de données depuis un nœud source (10) vers un groupe de nœuds destination (21-23), cette méthode comprenant les étapes suivantes -marquage des messages (1) transmis depuis le nœud source (10); -à la transmission d'un message, incrémentation d'un numéro de séquence global; -identification du numéro de séquence global d'un message transmis pour lequel le nœud source n'a pas reçu un acquittement; -calcul de la différence entre le numéro de séquence global du prochain message à transmettre et le numéro de séquence global identifié; -la différence calculée étant égale à un seuil prédéfini, suspension de la transmission de messages depuis le nœud source (10) à destination du groupe de nœuds destination(21-23); -déduction de la présence d'une erreur dans la livraison de données.

Description

METHODE ET SYSTEME DE CONTROLE DE FLUX
La présente invention concerne les techniques de contrôle de flux de bout- en-bout entre des nœuds communicants dans un réseau de communications par paquets, et plus particulièrement à une implémentation optimale d'un mécanisme de fiabilité de bout-en-bout dans la livraison des données.
On entend ici par « fiabilité de bout-en-bout » la garantie de livraison de bout-en-bout (aussi dit « End-to-End ») des messages envoyés depuis un nœud source vers un ou plusieurs nœud(s) destination.
Au cours d'une communication impliquant plusieurs nœuds au sein d'un réseau de communications par paquets, diverses erreurs peuvent se produire telles qu'une corruption de paquets, un désordonnément de paquets, une perte ou une duplication de paquets. Pour cela, différents mécanismes de fiabilité de bout-en-bout sont prévus tels que, notamment, le rajout, par le nœud source, d'un numéro de séquence de bout-en- bout à chaque message transmis de sorte que la perte d'un message peut être détectée par le nœud destination en remarquant un saut dans les numéros de séquences des messages reçus;
le stockage, dans une mémoire au niveau du nœud source, d'une copie de tout message transmis en vue de sa retransmission future en cas d'erreur ; et
des méthodes de détection de ces erreurs, généralement, implémentées dans les nœuds d'extrémité (nœud source et nœud destination) d'une liaison orientée connexion mettant en œuvre un protocole de transmission avec acquittement (« acknowledgment »).
En effet, dans une solution basée sur l'ordonnancement des paquets à l'aide d'un numéro de séquence de bout-en-bout, chaque paire source- destination possède un numéro de séquence de bout-en-bout dédié (un dans chaque sens). Le numéro de séquence de bout-en-bout d'une paire donnée est incrémenté de un à chaque fois qu'un nouveau message est envoyé entre ces deux nœuds. De cette façon, le nœud destination vérifie pour chaque nœud source que les paquets reçus comportent bien des numéros de séquence successifs. Cette solution a pour inconvénient le rajout d'une mémoire, respectivement, au niveau du nœud source et du nœud destination pour stocker :
- le prochain numéro de séquence de bout-en-bout à utiliser pour chacun des nœuds vus, par ce nœud, comme des nœuds destination ; - le prochain numéro de séquence de bout-en-bout attendus de chacun des nœuds vus, par ce nœud, comme des nœuds source.
En outre, le nombre de numéros de séquence est à multiplier par le nombre de réseaux virtuels utilisés. A titre d'exemple, pour garantir l'ordonnancement dans un réseau de 65 536 nœuds à 4 réseaux virtuels, il faut stocker 2 (émission/réception) x 65 536 (nombre de nœuds) x 4 (nombre de réseaux virtuels) numéros de séquence de bout-en-bout par nœud. Dans ce cas, avec un numéro de séquence sur 16 bits (plus 6 bits pour le rajout d'un code de correction d'erreur), une mémoire de 524288 entrées de 22 bits, soit 11 264 KB, est requise. L'allocation d'un tel espace mémoire, au niveau de chaque nœud source et chaque nœud destination du réseau, est très coûteuse en ressources, et impacte les performances du réseau d'une manière proportionnelle à sa taille.
En cas d'erreur dans les données transmises (corruption de données, livraison non-ordonnée, ou paquet perdu per exemple), le nœud destination informe le nœud source par le renvoi d'un message de réponse de type « non-acquittement » précisant le type d'erreur rencontrée. Subséquemment, le nœud source procède à la retransmission du ou des paquets concernés.
Pour ce faire, le nœud source stocke dans une mémoire de retransmission une copie de tous les messages qu'il émet. Lorsqu'il reçoit un acquittement positif, le nœud source peut supprimer le message correspondant de la mémoire de retransmission. Par contre, lorsqu'il reçoit un acquittement négatif (c.à.d. de type « non-acquittement ») ou s'il ne reçoit pas de message de réponse pour un certains message envoyé à un nœud destination, le nœud source procède à sa retransmission et le cas échéant à la retransmission des messages suivants vers ce même nœud destination. En effet, dans le cas d'un trafic ordonné, le nœud destination refuse tous les paquets suivants un paquet erroné car la vérification du numéro de séquence de bout-en-bout est alors erronée jusqu'à ce que le premier message erroné soit retransmis et reçu sans erreur par le nœud destinataire.
Un inconvénient de cette retransmission de données réside dans l'incommodité de son implémentation. En effet, le nœud source doit retransmettre le message en erreur ainsi que tous les messages suivants vers le nœud destination qui a détecté l'erreur et uniquement ce destinataire. Cependant, étant donné que les messages envoyés vers les différents nœuds destination sont stockés dans une même mémoire de retransmission (autrement, une mémoire de retransmission par nœud destination est pratiquement irréalisable), il est nécessaire de parcourir cette mémoire de retransmission pour identifier et retransmettre uniquement les messages requis vers le nœud destination qui a détecté l'erreur. Ceci affecte, certainement, les performances du mécanisme de fiabilité de bout-en-bout. Par ailleurs, il est possible que le message d'acquittement soit perdu bien que le message correspondant soit bien arrivé au nœud destination. Dans ce cas, le nœud source retransmet ce message et demande la retransmission d'un message d'acquittement, ce qui entraine une duplication du message du côté du nœud destination. Une duplication de message peut également se produire en cas de forte congestion du réseau ralentissant le message émis ou son acquittement de sorte que le nœud source retransmet ce message pensant qu'il a été perdu. Il en résulte que le nœud destinataire recevra deux fois le même message.
Pour distinguer un message dupliqué d'un message perdu, il est généralement requis que la valeur maximale possible du numéro de séquence de bout-en-bout soit très largement supérieure à deux fois le nombre de messages qu'un nœud source peut envoyer pendant une durée égale à la somme du timeout et du pire temps de propagation entre ce nœud source et un nœud destination. Le timeout est une temporisation (RTO pour Retransmission Time Out) activée par le nœud source à l'envoi d'un paquet de données et au bout de laquelle l'accusé de réception de ce paquet est attendu.
En l'espèce, pour un nœud source pouvant envoyer cent vingt-cinq millions de paquets par seconde ;
un timeout de quatre secondes ; et
un pire temps de propagation entre un nœud source et un nœud destination de l'ordre d'une seconde (pour un réseau très congestionné), la valeur maximale possible du numéro de séquence de bout-en-bout doit être très largement supérieure à un milliard deux cent cinquante millions. Elle doit, donc, être codée sur au moins 35 bits. Autrement dit, ceci revient à rajouter dans chaque message envoyé un numéro de séquence de bout- en-bout d'environ 35 bits. Cependant, l'ajout d'un numéro de séquence d'une telle taille représente une surcharge très coûteuse qui a pour conséquence une réduction considérable de la bande passante utile entre le nœud source et le(s) nœud(s) destination. Un numéro de séquence de 35 bits augmente, également, l'espace mémoire nécessaire pour son stockage au niveau des nœuds.
Un objet de la présente invention est de remédier aux inconvénients précités.
Un autre objet de la présente invention est de réduire la complexité d'implémentation des techniques de contrôle de flux de bout-en-bout, notamment, dans les réseaux IP à grande échelle.
Un autre objet de la présente invention est d'augmenter la fiabilité dans la livraison des données au sein des réseaux IP.
Un autre objet de la présente invention est de proposer une méthode de protection de bout-en-bout qui permet de garantir la fiabilité d'un réseau de grande ampleur tout en limitant :
- l'espace mémoire requis ;
- l'impact sur les performances du réseau (notamment le nombre de messages traités par seconde ou la bande passante utile).
A ces fins, l'invention propose, selon un premier aspect, une méthode pour gérer la fiabilité de bout-en-bout dans la livraison avec acquittement de données depuis un nœud source vers un groupe de nœuds destination dans un réseau de communications, le groupe de nœuds destination incluant au moins un premier nœud destination, cette méthode comprenant les étapes suivantes - marquage des messages transmis depuis le nœud source à destination dudit premier nœud destination par un numéro de séquence de bout-en-bout incrémental de sorte que ledit premier nœud destination s'attende, suite à un premier message reçu en provenance dudit nœud source, à la réception d'un deuxième message marqué d'un numéro de séquence de bout-en-bout attendu en provenance dudit nœud source;
à la transmission d'un message depuis le nœud source à destination d'un nœud destination inclus dans le groupe de nœuds destination, incrémentation d'un numéro de séquence global, ce numéro de séquence global pouvant être incrémenté jusqu'à une valeur maximale prédéfinie ;
identification du numéro de séquence global d'un message transmis depuis le nœud source à destination d'un nœud destination inclus dans le groupe de nœuds destination et pour lequel le nœud source n'a pas reçu un acquittement ;
calcul de la différence entre le numéro de séquence global du prochain message à transmettre depuis le nœud source à destination d'un nœud destination inclus dans le groupe de nœuds destination et le numéro de séquence global identifié ;
- la différence calculée étant égale à un seuil prédéfini, suspension de la transmission de messages depuis le nœud source à destination du groupe de nœuds destination;
suite à cette suspension, le numéro de séquence de bout-en-bout marquant un message reçu par ledit premier nœud destination et en provenance dudit nœud source étant différent dudit numéro de séquence de bout-en-bout attendu, déduction par ledit premier nœud destinataire de la présence d'une erreur dans la livraison de données.
La méthode présente, selon diverses réalisations, les caractères suivants, le cas échéant combinés : le numéro de séquence de bout-en-bout marquant un message reçu étant supérieur au numéro de séquence de bout-en-bout attendu, l'erreur est un message perdu ;
- le numéro de séquence de bout-en-bout marquant un message reçu étant inférieur au numéro de séquence de bout-en-bout attendu, l'erreur est que le message reçu est un message dupliqué ;
le seuil prédéfini est la valeur entière de la moitié de la ladite valeur maximale prédéfinie ;
- le numéro de séquence global est codé sur seize bits ;
le numéro de séquence de bout-en-bout est codé sur seize bits.
Cette méthode comprenant en outre: lorsque le numéro de séquence global atteint ladite valeur maximale prédéfinie, une étape d'initialisation de ce numéro de séquence global ;
une étape de lecture du numéro de séquence de bout-en-bout correspondant audit nœud destination, ce numéro étant mémorisé au niveau dudit nœud source ;
une étape d'incrémentation de un du numéro de séquence de bout- en-bout lu ;
une étape de mémorisation du numéro de séquence global dans une mémoire de retransmission;
une étape de mémorisation de chaque message transmis audit premier nœud destination dans une liste doublement chaînée, cette liste doublement chaînée étant stockée dans ladite mémoire de retransmission et étant associée audit premier nœud destination.
L'invention propose, selon un deuxième aspect, un produit programme d'ordinateur implémenté sur un support mémoire, susceptible d'être mis en œuvre au sein d'une unité de traitement informatique et comprenant des instructions pour la mise en œuvre de la méthode résumée ci-dessus.
D'autres objets et avantages de l'invention apparaîtront à la lumière de la description de modes de réalisation, faite ci-après en référence aux dessins annexés dans lesquels : la figure 1 illustre un mode de réalisation de livraison de données depuis un nœud source vers une pluralité de nœuds destination ; la figure 2 illustre une méthode de stockage et d'accès à des données selon un mode de réalisation.
En se référant à la figure 1, il est affiché un nœud source 10 transmettant des messages 1, 2, 3 à destinations, respectivement, d'une pluralité de nœuds destination 21, 22, 23 appartenant ou non à un même réseau virtuel.
Le nœud source 10 transmet, aux nœuds destination 21, 22, 23, des messages 1, 2, 3 via des liaisons L1, L2, L3 mettant en œuvre un protocole de transmission avec acquittement 4-6 (c.à.d. avec accusé de réception ou avec « acknowledgment »).
Afin d'assurer une transmission de messages ordonnés à destination de chaque nœud destination 21-23, chaque message 1-3 est marqué, au niveau du nœud source 10, par un numéro de séquence de bout-en-bout n1-n3 qui représente la position de ce message dans le flux de messages ordonnés en provenance du nœud source 10 et à destination du nœud destination 21-23 correspondant. Autrement dit, le numéro de séquence de bout-en-bout n1 marquant le message 1 représente l'ordre de ce message 1 dans l'ensemble des messages émis par le nœud source 10 à destination du nœud destination 21. Il s'ensuit que, suite à un message reçu par un nœud destination 21, ce dernier s'attend à la réception d'un message, en provenance du nœud source 10, marqué par un numéro de séquence de bout-en-bout attendu (n1+1) qui est successifs au numéro de séquence de bout-en-bout du message reçu (n1).
Les numéros de séquence de bout-en-bout n1-n3 sont codés sur 16 bits. Avantageusement, la limitation de la taille des numéros de séquence de bout-en-bout n 1 -13 à 16 bits représente un gain de 20 bits par message par rapport aux méthodes conventionnelles où la taille d'un numéro de séquence de bout-en-bout est de 32 bits.
Par ailleurs, l'envoi de tout message 1-3 par le nœud source 10 incrémente un numéro de séquence global N qui représente la position de ce message dans le flux de données ordonné global émis par le nœud source 10 à destination des nœuds destination 21-23. En d'autres termes, le numéro de séquence global du message 2 est son ordre sur l'ensemble des messages 1-3 émis par le nœud source 10 à destination d'un groupe de nœuds destination 21-23.
Dans un mode de réalisation, le numéro de séquence global N est codé sur 16 bits, étant de même taille que le numéro de séquence de bout-en-bout n1-n3. Dans ce cas, le numéro de séquence global N ne peut prendre des valeurs au-dessus de deux exposant seize moins un (216-1). Le numéro de séquence global s'incrémente d'une manière cyclique, c'est-à-dire qu'il est initialisé à chaque fois qu'il atteint cette valeur maximale possible Nmax (autrement dit, un numéro de séquence global circulaire ou, encore, un numéro de séquence global modulo Nmax).
Le numéro de séquence global N n'est pas transmis avec les messages 1-3 sur le réseau 30, et est conservé dans une mémoire 11 de retransmission associée au nœud source 10. II est à noter que plus d'un groupe de nœuds destination 21-23 peut être envisagé, auquel cas un numéro de séquence global N est défini pour chaque groupe de nœuds destination.
En se référant maintenant à la figure 2 (les éléments analogues à ceux décrits ci-dessus portent les mêmes références), une table de hachage de taille prédéfinie (en l'espèce, 32) permet d'obtenir, sur la base du nœud destinataire 21-23, le numéro de séquence de bout-en-bout n1-n3 du message 1-3. Le nœud destination 21 est utilisé, ici, comme étant la clé pour la fonction de hachage pour accéder à un espace mémoire au niveau du nœud source 10 qui comprend le numéro de séquence de bout-en-bout n1 à affecter au message 1. Ainsi, au niveau du nœud source 10, un espace mémoire est utilisé pour stocker le numéro de séquence de bout-en- bout n1-n3 de chaque nœud destination 21-23 (une entrée par destination). A chaque fois que l'on doit envoyer un message 1-3 vers un nœud destination 21-23, le numéro de séquence de bout-en-bout n1-n3 est obtenu en lisant le numéro de séquence de bout-en-bout stocké dans l'espace mémoire correspondant au nœud destination 21-23. Après chaque lecture d'un numéro de séquence de bout-en-bout n1-n3, une incrémentation de un du numéro de séquence de bout-en-bout lu est effectuée. C'est-à-dire, le numéro de séquence de bout-en-bout qui vient d'être lu, pour la transmission du message 1-3 au nœud destination 21-23, est incrémenté de un. Ainsi, le prochain message à transmettre vers ce même nœud destination aura bien un numéro de séquence de bout-en-bout incrémenté de un. En l'espèce, le numéro de séquence de bout-en-bout n1 est incrémenté de un pour chaque message 1 adressé au nœud destination 21 qui est la clé pour accéder à ce numéro de séquence de bout-en-bout.
Ce numéro de séquence n1 s'incrémente linéairement avec le nombre de messages 1 émis par le nœud source 10 à destination du nœud destination 21. Ce numéro de séquence n1 permet ainsi d'identifier le message 1 adressé au nœud destinataire 21 parmi l'ensemble des messages adressés à ce nœud destination 21.
De préférence, une table de hachage est définie par groupe de nœuds destinataire 21-23. Des listes doublement chaînées c1-c3, respectivement, associées aux numéros de séquence de bout-en-bout n1-n3 (et donc à chaque nœud destinataire 21-23) sont configurées pour y, respectivement, stocker les messages 1-3. Une liste doublement chaînée comprend, pour chaque message dans la liste, un pointeur désignant le message suivant, ainsi qu'un pointeur désignant le message précédent dans la liste concernée.
Les listes doublement chaînées c1-c3, comprenant respectivement les messages n1-n3, sont stockées dans la mémoire 11 de retransmission. En d'autres termes, une copie des messages 1-3 émis depuis le nœud source 10 est insérée en fonction de leur destination, respectivement, dans les listes doublements chaînées c1-c3.
Avantageusement, il en résulte que la liste doublement chaînée c1-c3 évite, en cas d'erreur sur un message ordonné 1-3, de parcourir toutes les entrées de la mémoire 11 de retransmission et, notamment, de retransmettre vers le nœud destination 21-23 concerné tous les messages suivant le message en erreur. L'utilisation des listes doublement chaînées c1-c3 permet, en outre, de réduire le temps de parcours de la mémoire 11 de retransmission dans le cas où une erreur est détectée nécessitant le renvoi de plusieurs messages vers un nœud destination 21-23, sans pour autant augmenter de façon conséquente l'espace mémoire de la mémoire de retransmission.
Afin de permettre la détection de toute erreur sur les messages 1-3 adressés aux nœuds destination 21-23, lorsque la différence entre le numéro de séquence global N du plus vieux message 1-3 envoyé sur le réseau 30 et pour lequel aucun acquittement 4-5 (que ce soit positif ou négatif) n'a été reçu par le nœud source 10; et
le numéro de séquence global N du prochain message à envoyer, pour un index de hachage donné (c.à.d. pour un nœud destination 21- 23 donné),
est égale à un seuil prédéfini, alors l'envoi de message sur le réseau 30 est suspendu. De cette façon, si le numéro de séquence de bout-en-bout n1-n3 reçu est inférieur au numéro de séquence de bout-en-bout attendu, le nœud destination 21-23 en déduit que le message reçu est un message dupliqué. Au contraire, si le numéro de séquence de bout-en-bout n1-n3 du message 1-3 reçu est supérieur au numéro de séquence de bout-en-bout n1-n3 attendu, alors le nœud destinataire 21-23 en déduit qu'un message est perdu.
De cette façon, le nœud destination 21-23 peut aisément distinguer un message dupliqué d'un message perdu par une simple comparaison entre le numéro de séquence de bout-en-bout attendu n1-n3 et le numéro de séquence bout-en-bout reçu. Le nœud destination 21-23 a donc la charge de détecter les erreurs (perte ou duplication de message), et de demander une retransmission des messages lorsqu'il le juge nécessaire.
De préférence, le seuil prédéfini est égal à la moitié de la valeur maximale possible Nmax du numéro de séquence global N, ou plus généralement la valeur entière de la moitié de la valeur maximale possible Nmax du numéro de séquence global N. En effet, le contrôle de flux de bout-en-bout utilise une fenêtre de largeur Nmax/2 sur les numéros de séquence globaux N et dont la borne supérieure est le numéro de séquence global N du prochain message à envoyer.
Lorsque la borne inférieure de cette fenêtre correspond à un message 1-3 pour lequel aucun acquittement n'a été reçu par le nœud source 10, l'envoi de message 1-3 sur le réseau 30 est suspendu jusqu'à la résolution de cette erreur dans la livraison de données (à savoir, requérir la retransmission du message perdu ou considérer que le message reçu est un message dupliqué). Concernant l'optimisation du traitement de la perte d'un message d'acquittement, lorsque plus de la moitié des numéros de séquence globaux N ont été utilisés (c.à.d. le seuil est égal à la partie entière de Nmax/2) alors qu'un message émis 1-3 n'a toujours pas reçu d'acquittement 4-6, les deux cas les plus probables sont - une congestion du réseau 30 retardant la livraison de tous les messages 1-3 et de leurs acquittements respectifs 4-6 ; ou
- une perte d'un acquittement isolé.
La conséquence est la suspension de la transmission de nouveau message jusqu'à la réception de l'acquittement du plus vieux message pour lequel aucun acquittement n'a été reçu par le nœud source 10.
Afin de limiter l'impact de la perte effective d'un acquittement sur les performances du système (dans la mesure où la reprise du trafic n'interviendra qu'après une retransmission du message concerné suite à la détection d'un timeout), un mécanisme d'acquittement implicite est déclenché. Il consiste à parcourir les messages dans la mémoire 11 de retransmission pour la liste doublement chaînée c1-c3 associée via la table de hachage au nœud destination concerné. Si un message ordonné plus récent vers ce même nœud destinataire 21-23 a reçu un acquittement 4-6, cela signifie que le plus vieux message a également été acquitté mais que cet acquittement s'est perdu. On décide dans ce cas, de l'acquitter implicitement et le trafic peut reprendre. La mémoire 11 de retransmission est, en outre, utilisée pour gérer la couche transport en vue de la retransmission des messages, limitant ainsi l'augmentation l'espace mémoire requis.
Dans un mode de réalisation, afin d'augmenter le nombre de port de lecture et d'écriture de la mémoire 11 de retransmission, cette dernière est découpée en une pluralité de bancs de mémoire. A titre d'exemple, la mémoire de transmission est découpée en quatre bancs de mémoire à l'effet de multiplier par quatre le nombre de port de lecture et d'écriture disponibles. La répartition des messages sur les différents bancs de mémoires peut être déterminée par une fonction de hachage dépendante du nœud destinataire 21-23 du message 1-3.
Il s'ensuit que, avantageusement, la mémoire 11 de retransmission peut être utilisée à la fois pour la couche applicative (envoi d'événement de fin de message) et pour la couche transport (gestion des retransmissions) sans impacter les performances d'un nœud en termes de nombre de messages qu'il peut traiter par seconde.
Dans un mode de réalisation, l'ordonnancement des messages n'est assuré que pour deux réseaux virtuels sur quatre. Cela permet de diviser par deux la taille de la mémoire 11 de retransmission nécessaire pour stocker les numéros de séquence de bout-en-bout. De plus, pour limiter l'impact du code de correction d'erreur, les deux numéros de séquences (un par réseau virtuel) sont stockés dans la même entrée et protégés par un seul et même code de correction d'erreur. Ceci permet un gain en mémoire de dix pour cent supplémentaire sans impacter les performances (un seul numéro de séquence pour un des deux réseaux virtuels est nécessaire au maximum à chaque cycle).
Avantageusement, les modes de réalisation décrits ci-dessus s'appliquent quel que soit le type de protocole de transmission avec acquittement utilisé entre un nœud source de données et un ou plusieurs nœud(s) destination. Ce protocole de transmission peut être en mode point à point, ou en mode point à multipoint. A titre d'exemples non-limitatifs, ce protocole de transmission avec acquittement peut être le TCP (pour Transmission Control Protocol) ou le SCTP (pour Stream Control Protocol). Il est à noter qu'on entend par « nœud » dans toute la description ci-dessus tout élément source et/ou destination de données dans réseau de communications IP tel qu'un terminal, un serveur ou un routeur. De même, un message désigne, ici, un paquet, ou une trame de données. Avantageusement, les modes de réalisation décrits ci-dessus permettent une livraison ordonnée et fiable (c.à.d. sans perte) de données sur plusieurs liaisons en faisant appel à un minimum de ressources, notamment en termes d'espaces mémoire.
Avantageusement, les différents modes de réalisation décrits ci-dessus permettent d'optimiser, en termes de ressources et de performances, le contrôle de flux dans un réseau de communication par paquets.

Claims

REVENDICATIONS
1. Méthode pour gérer la fiabilité de bout-en-bout dans la livraison avec acquittement de données depuis un nœud source (10) vers un groupe de nœuds destination (21-23) dans un réseau de communications, le groupe de nœuds destination (21-23) incluant au moins un premier nœud destination (21), cette méthode comprenant les étapes suivantes
marquage des messages (1) transmis depuis le nœud source (10) à destination dudit premier nœud destination (21) par un numéro de séquence de bout-en-bout (n1) incrémental de sorte que ledit premier nœud destination (21) s'attende, suite à un premier message reçu en provenance dudit nœud source (10), à la réception d'un deuxième message marqué d'un numéro de séquence de bout-en-bout attendu en provenance dudit nœud source;
- à la transmission d'un message (1-3) depuis le nœud source (10) à destination d'un nœud destination (21-23) inclus dans le groupe de nœuds destination (21-23), incrémentation d'un numéro de séquence global représentant la position dudit message (1-3) dans le flux de données ordonné global émis par le nœud source (10) à destination du groupe de nœuds destination (21-23), ce numéro de séquence global pouvant être incrémenté jusqu'à une valeur maximale prédéfinie ;
identification du numéro de séquence global d'un message transmis depuis le nœud source (10) à destination d'un nœud destination inclus dans le groupe de nœuds destination et pour lequel le nœud source n'a pas reçu un acquittement ;
calcul de la différence entre le numéro de séquence global du prochain message à transmettre depuis le nœud source (10) à destination d'un nœud destination (21-23) inclus dans le groupe de nœuds destination (21-23) et le numéro de séquence global identifié ; la différence calculée étant égale à un seuil prédéfini, suspension de la transmission de messages depuis le nœud source (10) à destination du groupe de nœuds destination (21-23) ;
suite à cette suspension, le numéro de séquence de bout-en-bout (n1) marquant un message reçu, par ledit premier nœud destination
(21) et en provenance dudit nœud source (10), étant différent dudit numéro de séquence de bout-en-bout attendu, déduction par ledit premier nœud destinataire de la présence d'une erreur dans la livraison de données.
2. Méthode selon la revendication 1, dans laquelle, le numéro de séquence de bout-en-bout (n1) marquant un message reçu étant supérieur au numéro de séquence de bout-en-bout attendu, l'erreur est un message perdu.
3. Méthode selon la revendication 1, dans laquelle, le numéro de séquence de bout-en-bout (n1) marquant un message reçu étant inférieur au numéro de séquence de bout-en-bout attendu, l'erreur est que le message reçu est un message dupliqué.
4. Méthode selon l'une quelconque des revendications précédentes, dans laquelle le seuil prédéfini est la valeur entière de la moitié de la ladite valeur maximale prédéfinie.
5. Méthode selon l'une quelconque des revendications précédentes, comprenant en outre, lorsque le numéro de séquence global atteint ladite valeur maximale prédéfinie, une étape d'initialisation de ce numéro de séquence global.
6. Méthode selon l'une quelconque des revendications précédentes, dans laquelle le numéro de séquence global est codé sur seize bits.
7. Méthode selon l'une quelconque des revendications précédentes, dans laquelle le numéro de séquence de bout-en-bout est codé sur seize bits.
8. Méthode selon l'une quelconque des revendications précédentes, comprenant en outre, pour la transmission d'un message (1-3) depuis le nœud source à destination d'un nœud destination (21-23), une étape de lecture du numéro de séquence de bout-en-bout correspondant audit nœud destination (21-23), ce numéro étant mémorisé au niveau dudit nœud source (10), et une étape d'incrémentation de un du numéro de séquence de bout-en-bout lu.
9. Méthode selon l'une quelconque des revendications précédentes, comprenant en outre
une étape de mémorisation du numéro de séquence global dans une mémoire de retransmission;
une étape de mémorisation de chaque message transmis audit premier nœud destination (21) dans une liste doublement chaînée, cette liste doublement chaînée étant stockée dans ladite mémoire de retransmission et étant associée audit premier nœud destination.
Produit programme d'ordinateur implémenté sur un support mémoire, susceptible d'être mis en œuvre au sein d'une unité de traitement informatique et comprenant des instructions pour la mise en œuvre d'une méthode selon l'une des revendications 1 à 9.
PCT/FR2015/051343 2014-06-06 2015-05-21 Méthode et système de contrôle de flux WO2015185824A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BR112016028224A BR112016028224A2 (pt) 2014-06-06 2015-05-21 ?método e sistema de controle de fluxo?.
US15/316,355 US10110350B2 (en) 2014-06-06 2015-05-21 Method and system for flow control
EP15732319.7A EP3152876A1 (fr) 2014-06-06 2015-05-21 Méthode et système de contrôle de flux
JP2016567377A JP6547973B2 (ja) 2014-06-06 2015-05-21 ストリーム制御の方法およびシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1455147 2014-06-06
FR1455147A FR3022094B1 (fr) 2014-06-06 2014-06-06 Methode et systeme de controle de flux

Publications (1)

Publication Number Publication Date
WO2015185824A1 true WO2015185824A1 (fr) 2015-12-10

Family

ID=51862393

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2015/051343 WO2015185824A1 (fr) 2014-06-06 2015-05-21 Méthode et système de contrôle de flux

Country Status (6)

Country Link
US (1) US10110350B2 (fr)
EP (1) EP3152876A1 (fr)
JP (1) JP6547973B2 (fr)
BR (1) BR112016028224A2 (fr)
FR (1) FR3022094B1 (fr)
WO (1) WO2015185824A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190238605A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Verification of streaming message sequence
CN111970102B (zh) * 2020-08-31 2023-06-23 Oppo广东移动通信有限公司 数据处理方法、装置、电子设备及存储介质
US11695677B2 (en) * 2020-12-04 2023-07-04 Chicago Mercantile Exchange Inc. Secure message processing protocol

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754754A (en) * 1995-07-26 1998-05-19 International Business Machines Corporation Transmission order based selective repeat data transmission error recovery system and method
WO2004023736A1 (fr) * 2002-09-07 2004-03-18 Telefonaktiebolaget Lm Ericsson (Publ) Procede et dispositifs permettant de commander efficacement des liaisons de transmission de donnees dans des systemes de communication mobile a multidiffusion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629285B1 (en) * 2000-01-04 2003-09-30 Nokia Corporation Data transmission
US7394769B2 (en) * 2003-08-14 2008-07-01 International Business Machines Corporation Method, system and article for rapid detection and avoidance of high data corrupting routes within a network
CA2590858C (fr) * 2004-12-27 2014-08-19 Lg Electronics Inc. Compatibilite ahrq dans les systemes d'acces radio ofdm
US9379852B2 (en) * 2006-09-05 2016-06-28 Nec Corporation Packet recovery method, communication system, information processing device, and program
US8310920B2 (en) * 2007-03-02 2012-11-13 Saratoga Data Systems, Inc. Method and system for accelerating transmission of data between network devices
US7693070B2 (en) * 2007-03-15 2010-04-06 International Business Machines Corporation Congestion reducing reliable transport packet retry engine
KR101428041B1 (ko) * 2007-10-03 2014-08-07 삼성전자주식회사 통신 시스템에서 자동 재송신 요구 피드백 정보 엘리먼트송수신 장치 및 방법
CN101924603B (zh) * 2009-06-09 2014-08-20 华为技术有限公司 数据传输速率的自适应调整方法、装置及系统
US9531508B2 (en) * 2009-12-23 2016-12-27 Pismo Labs Technology Limited Methods and systems for estimating missing data
US9628226B2 (en) * 2010-09-30 2017-04-18 Qualcomm Incorporated Block acknowledgement with retransmission policy differentiation
US8971391B2 (en) * 2011-09-30 2015-03-03 Broadcom Corporation Systems and methods for equalizing retransmission delays for data retransmission over bonded modems
US20140269461A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Systems and methods for link augmentation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754754A (en) * 1995-07-26 1998-05-19 International Business Machines Corporation Transmission order based selective repeat data transmission error recovery system and method
WO2004023736A1 (fr) * 2002-09-07 2004-03-18 Telefonaktiebolaget Lm Ericsson (Publ) Procede et dispositifs permettant de commander efficacement des liaisons de transmission de donnees dans des systemes de communication mobile a multidiffusion

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDREW S. TANENBAUM: "Computers Networks", 1 January 1988, PRENTICE-HALL, ISBN: 0-13-166836-6, pages: 223 - 239, XP002737806 *
See also references of EP3152876A1 *

Also Published As

Publication number Publication date
BR112016028224A2 (pt) 2017-08-22
JP2017530566A (ja) 2017-10-12
JP6547973B2 (ja) 2019-07-24
EP3152876A1 (fr) 2017-04-12
US10110350B2 (en) 2018-10-23
FR3022094A1 (fr) 2015-12-11
US20170163386A1 (en) 2017-06-08
FR3022094B1 (fr) 2017-12-08

Similar Documents

Publication Publication Date Title
US7697524B2 (en) Method and system for determining path maximum transfer unit for IP multicast
EP2885899B1 (fr) Dispositif et procédé de transfert unidirectionnel de données
FR2818844A1 (fr) Procede de transmission de donnees entre au moins un emetteur et au moins un recepteur, emetteur, recepteur et systeme de transmission correspondants
CN1671094A (zh) 对假超时的响应
FR2954029A1 (fr) Procede de transmission de paquets d'un flux de donnees bidirectionnel passager, dispositif gestionnaire, produit programme d'ordinateur et moyen de stockage correspondants
FR3060920A1 (fr) Systeme et procede pour la transmission de donnees dans un systeme satellitaire
EP3152876A1 (fr) Méthode et système de contrôle de flux
US20060224745A1 (en) Error recovery mechanism and network element comprising same
EP3637845B1 (fr) Procédé de communication basé sur un protocole de transmission par trames
FR2825865A1 (fr) Retransmission selective de paquets avec controle temporel a l'emission
EP2122895B1 (fr) Procede de retransmission a redondance incrementale pour des paquets fragmentes
Altahir et al. Performance evaluation of TCP congestion control mechanisms using NS-2
KR101151615B1 (ko) Udp기반의 p2p 데이터 전송 방법 및 시스템
EP1733515B1 (fr) Procede et systeme de selection de paquets en fonction du volume emis par connexion
WO2023169938A1 (fr) Procédé de gestion d'une retransmission de données échangées sur un chemin établi entre un premier équipement de communication et un deuxième équipement de communication au moyen d'une valeur d'un paramètre de performance intermédiaire déterminée par un nœud intermédiaire appartenant audit chemin
Blanton et al. Rfc3517: A conservative selective acknowledgment (sack)-based loss recovery algorithm for tcp
WO2014029958A1 (fr) Procédé et système d'accusé de réception
WO2023078993A1 (fr) Procédé de gestion d'une retransmission de données échangées sur un chemin établi entre un premier équipement de communication et un deuxième équipement de communication au moyen d'une valeur d'un paramètre de performance intermédiaire
WO2023078995A2 (fr) Procédé de vérification de la fiabilité d'une première valeur d'un paramètre de contrôle de flux relatif à une connexion destinée à être établie entre un premier équipement de communication et un deuxième équipement de communication reliés par un chemin comprenant au moins un nœud intermédiaire au moyen d'une valeur d'un paramètre de performance intermédiaire déterminée par le nœud intermédiaire
EP1199832B1 (fr) Procédé de transmission sécurisé évitant les retransmission inutiles
EP3146681B1 (fr) Procédé de distribution pour une liaison à liens multiples et hétérogènes
Zabir et al. An efficient approach to performance improvement of different TCP enhancements using ECN
Im et al. Cost Efficient Group Communication & Management for Intrusion Tolerant System
Saikia et al. Reliable multicast protocol adopting hierarchical tree-based repair mechanism
FR2957736A1 (fr) Procedes et dispositifs de transmission et de reception d'un flux de donnees, avec gestion de retransmission de donnees de parite, produit programme d'ordinateur et moyen de stockage correspondants

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15732319

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015732319

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015732319

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2016567377

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15316355

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112016028224

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112016028224

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20161130