FR3022094A1 - Methode et systeme de controle de flux - Google Patents

Methode et systeme de controle de flux Download PDF

Info

Publication number
FR3022094A1
FR3022094A1 FR1455147A FR1455147A FR3022094A1 FR 3022094 A1 FR3022094 A1 FR 3022094A1 FR 1455147 A FR1455147 A FR 1455147A FR 1455147 A FR1455147 A FR 1455147A FR 3022094 A1 FR3022094 A1 FR 3022094A1
Authority
FR
France
Prior art keywords
sequence number
message
destination node
source node
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1455147A
Other languages
English (en)
Other versions
FR3022094B1 (fr
Inventor
Axel Poudes
Ghassan Chehaibar
Sylvie Lesmanne
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull Sas Fr
COMMISSARIAT A L' ENERGIE ATOMIQUE ET AUX ENER, FR
Original Assignee
Bull SA
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 SA filed Critical Bull SA
Priority to FR1455147A priority Critical patent/FR3022094B1/fr
Priority to PCT/FR2015/051343 priority patent/WO2015185824A1/fr
Priority to EP15732319.7A priority patent/EP3152876A1/fr
Priority to BR112016028224A priority patent/BR112016028224A2/pt
Priority to JP2016567377A priority patent/JP6547973B2/ja
Priority to US15/316,355 priority patent/US10110350B2/en
Publication of FR3022094A1 publication Critical patent/FR3022094A1/fr
Application granted granted Critical
Publication of FR3022094B1 publication Critical patent/FR3022094B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

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 bouten-bout entre des noeuds 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 noeud source vers un ou plusieurs noeud(s) destination. Au cours d'une communication impliquant plusieurs noeuds 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 noeud 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 noeud 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 noeud 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 noeuds d'extrémité (noeud source et noeud destination) d'une liaison orientée connexion mettant en oeuvre 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 noeuds. De cette façon, le noeud destination vérifie pour chaque noeud 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 noeud source et du noeud destination pour stocker : le prochain numéro de séquence de bout-en-bout à utiliser pour chacun des noeuds vus, par ce noeud, comme des noeuds destination ; le prochain numéro de séquence de bout-en-bout attendus de chacun des noeuds vus, par ce noeud, comme des noeuds 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 noeuds à 4 réseaux virtuels, il faut stocker 2 (émission/réception) x 65 536 (nombre de noeuds) x 4 (nombre de réseaux virtuels) numéros de séquence de bout-en-bout par noeud. 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 524 288 entrées de 22 bits, soit 11 264 KB, est requise. L'allocation d'un tel espace mémoire, au niveau de chaque noeud source et chaque noeud destination du réseau, est très couteuse 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 noeud destination informe le noeud 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 noeud source procède à la retransmission du ou des paquets concernés. Pour ce faire, le noeud 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 noeud 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 noeud destination, le noeud source procède à sa retransmission et le cas échéant à la retransmission des messages suivants vers ce même noeud destination. En effet, dans le cas d'un trafic ordonné, le noeud 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 noeud destinataire. Un inconvénient de cette retransmission de données réside dans l'incommodité de son implémentation. En effet, le noeud source doit retransmettre le message en erreur ainsi que tous les messages suivants vers le noeud destination qui a détecté l'erreur et uniquement ce destinataire. Cependant, étant donné que les messages envoyés vers les différents noeuds destination sont stockés dans une même mémoire de retransmission (autrement, une mémoire de retransmission par noeud 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 noeud 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 noeud destination. Dans ce cas, le noeud source retransmet ce message et demande la retransmission d'un message d'acquittement, ce qui entraine une duplication du message du côté du noeud 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 noeud source retransmet ce message pensant qu'il a été perdu. Il en résulte que le noeud 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 noeud source peut envoyer pendant une durée égale à la somme du timeout et du pire temps de propagation entre ce noeud source et un noeud destination. Le timeout est une temporisation (RTO pour Retransmission Time Out) activée par le noeud 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 noeud source pouvant envoyer cent vingt-cinq millions de paquets par seconde ; - un timeout de quatre secondes ; et - un pire temps de propagation entre un noeud source et un noeud 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 bouten-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 coute use qui a pour conséquence une réduction considérable de la bande passante utile entre le noeud source et le(s) noeud(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 noeuds. 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é 20 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 25 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). 30 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 noeud source vers un groupe de noeuds destination dans un réseau de communications, le groupe de noeuds destination incluant au moins un premier noeud destination, cette méthode comprenant les étapes suivantes - marquage des messages transmis depuis le noeud source à destination dudit premier noeud destination par un numéro de séquence de bout-en-bout incrémental de sorte que ledit premier noeud destination s'attende, suite à un premier message reçu en provenance dudit noeud 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 noeud source; - à la transmission d'un message depuis le noeud source à destination d'un noeud destination inclus dans le groupe de noeuds 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 noeud source à destination d'un noeud destination inclus dans le groupe de noeuds destination et pour lequel le noeud 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 noeud source à destination d'un noeud destination inclus dans le groupe de noeuds 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 noeud source à destination du groupe de noeuds destination; - suite à cette suspension, le numéro de séquence de bout-en-bout marquant un message reçu par ledit premier noeud destination et en provenance dudit noeud source étant différent dudit numéro de séquence de bout-en-bout attendu, déduction par ledit premier noeud 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 inferieur 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 noeud destination, ce numéro étant mémorisé au niveau dudit noeud 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 noeud destination dans une liste doublement chainée, cette liste doublement chainée étant stockée dans ladite mémoire de retransmission et étant associée audit premier noeud 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 oeuvre au sein d'une unité de traitement informatique et comprenant des instructions pour la mise en oeuvre 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 noeud source vers une pluralité de noeuds 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 noeud source 10 transmettant des messages 1, 2, 3 à destinations, respectivement, d'une pluralité de noeuds destination 21, 22, 23 appartenant ou non à un même réseau virtuel. Le noeud source 10 transmet, aux noeuds destination 21, 22, 23, des messages 1, 2, 3 via des liaisons L1, L2, L3 mettant en oeuvre 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 noeud destination 21-23, chaque message 1-3 est marqué, au niveau du noeud 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 noeud source 10 et à destination du noeud 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 noeud source 10 à destination du noeud destination 21. Il s'ensuit que, suite à un message reçu par un noeud destination 21, ce dernier s'attend à la réception d'un message, en provenance du noeud 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 n1-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 noeud 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 noeud source 10 à destination des noeuds 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 noeud source 10 à destination d'un groupe de noeuds 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 noeud source 10.
Il est à noter que plus d'un groupe de noeuds destination 21-23 peut être envisagé, auquel cas un numéro de séquence global N est défini pour chaque groupe de noeuds 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 noeud destinataire 21-23, le numéro de séquence de bout-en-bout n1-n3 du message 1-3. Le noeud destination 21 est utilisé, ici, comme étant la clé pour la fonction de hachage pour accéder à un espace mémoire au niveau du noeud source 10 qui comprend le numéro de séquence de bout-en-bout n1 à affecter au message 1. Ainsi, au niveau du noeud source 10, un espace mémoire est utilisé pour stocker le numéro de séquence de bout-enbout n1-n3 de chaque noeud destination 21-23 (une entrée par destination). A chaque fois que l'on doit envoyer un message 1-3 vers un noeud 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 noeud 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 noeud destination 21-23, est incrémenté de un. Ainsi, le prochain message à transmettre vers ce même noeud 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 noeud 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 noeud source 10 à destination du noeud destination 21. Ce numéro de séquence n1 permet ainsi d'identifier le message 1 adressé au noeud destinataire 21 parmi l'ensemble des messages adressés à ce noeud destination 21. De préférence, une table de hachage est définie par groupe de noeuds destinataire 21-23.
Des listes doublement chainées c1-c3, respectivement, associées aux numéros de séquence de bout-en-bout n1-n3 (et donc à chaque noeud destinataire 21-23) sont configurées pour y, respectivement, stocker les messages 1-3. Une liste doublement chainé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 chainé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 noeud source 10 est insérée en fonction de leur destination, respectivement, dans les listes doublements chainées c1-c3. Avantageusement, il en résulte que la liste doublement chainé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 noeud destination 21-23 concerné tous les messages suivant le message en erreur.
L'utilisation des listes doublement chainées cl-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 noeud 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 noeuds 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 noeud 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 noeud destination 2123 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 noeud 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 noeud destinataire 21-23 en déduit qu'un message est perdu. De cette façon, le noeud 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 noeud 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 noeud 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 noeud 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 chainée cl-c3 associée via la table de hachage au noeud destination concerné. Si un message ordonné plus récent vers ce même noeud 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 noeud 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 noeud 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 noeud source de données et un ou plusieurs noeud(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 « noeud » 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 (10)

  1. REVENDICATIONS1 Méthode pour gérer la fiabilité de bout-en-bout dans la livraison avec acquittement de données depuis un noeud source (10) vers un groupe de noeuds destination (21-23) dans un réseau de communications, le groupe de noeuds destination (21-23) incluant au moins un premier noeud destination (21), cette méthode comprenant les étapes suivantes - marquage des messages (1) transmis depuis le noeud source (10) à destination dudit premier noeud destination (21) par un numéro de séquence de bout-en-bout (n1) incrémental de sorte que ledit premier noeud destination (21) s'attende, suite à un premier message reçu en provenance dudit noeud 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 noeud source; - à la transmission d'un message (1-3) depuis le noeud source (10) à destination d'un noeud destination (21-23) inclus dans le groupe de noeuds destination (21-23), 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 noeud source (10) à destination d'un noeud destination inclus dans le groupe de noeuds destination et pour lequel le noeud 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 noeud source (10) à destination d'un noeud destination (21-23) inclus dans le groupe de noeuds 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 noeud source (10) à destination du groupe de noeuds 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 noeud destination (21) et en provenance dudit noeud source (10), étant différent dudit numéro de séquence de bout-en-bout attendu, déduction par ledit premier noeud destinataire de la présence d'une erreur dans la livraison de données.
  2. 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. 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 inferieur au numéro de séquence de bout-en-bout attendu, l'erreur est que le message reçu est un message dupliqué.
  4. 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. 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. 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. 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. 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 noeud source à destination d'un noeud destination (21-23), une étape de lecture du numéro de séquence de bout-en-bout correspondant audit noeud destination (21-23), ce numéro étant mémorisé au niveau dudit noeud source (10), et une étape d'incrémentation de un du numéro de séquence de bout-en-bout lu.
  9. 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 noeud destination (21) dans une liste doublement chainée, cette liste doublement chainée étant stockée dans ladite mémoire de retransmission et étant associée audit premier noeud destination.
  10. 10. Produit programme d'ordinateur implémenté sur un support mémoire, susceptible d'être mis en oeuvre au sein d'une unité detraitement informatique et comprenant des instructions pour la mise en oeuvre d'une méthode selon l'une des revendications 1 à 9.
FR1455147A 2014-06-06 2014-06-06 Methode et systeme de controle de flux Active FR3022094B1 (fr)

Priority Applications (6)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
FR3022094A1 true FR3022094A1 (fr) 2015-12-11
FR3022094B1 FR3022094B1 (fr) 2017-12-08

Family

ID=51862393

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1455147A Active FR3022094B1 (fr) 2014-06-06 2014-06-06 Methode et systeme de controle 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
US7693125B2 (en) * 2004-12-27 2010-04-06 Lg Electronics Inc. Supporting hybrid automatic retransmission request in orthogonal frequency division multiplexing access radio access system
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 (1)

* 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 *

Also Published As

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

Similar Documents

Publication Publication Date Title
US9438938B2 (en) Layered multicast and fair bandwidth allocation and packet prioritization
CN107925674B (zh) 在内容为中心的网络(ccn)中推送数据的方法和装置
US8443101B1 (en) Method for identifying and blocking embedded communications
US7697524B2 (en) Method and system for determining path maximum transfer unit for IP multicast
US8799504B2 (en) System and method of TCP tunneling
US8520515B2 (en) Wireless performance improvement via client-free forward error correction
EP2885899B1 (fr) Dispositif et procédé de transfert unidirectionnel de données
CN111740808A (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
WO2015185824A1 (fr) Méthode et système de contrôle de flux
EP3637845B1 (fr) Procédé de communication basé sur un protocole de transmission par trames
US20060224745A1 (en) Error recovery mechanism and network element comprising same
FR2825865A1 (fr) Retransmission selective de paquets avec controle temporel a l'emission
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
WO2014029958A1 (fr) Procédé et système d'accusé de réception
Garcia-Luna-Aceves et al. A Connection-Free Reliable Transport Protocol
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
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
EP3146681B1 (fr) Procédé de distribution pour une liaison à liens multiples et hétérogènes
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
FR2534764A1 (fr) Procede et dispositif de demande d'allocation de ressource dans un commutateur a structure repartie

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20151211

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

TQ Partial transmission of property

Owner name: COMMISSARIAT A L' ENERGIE ATOMIQUE ET AUX ENER, FR

Effective date: 20221110

Owner name: BULL SAS, FR

Effective date: 20221110

PLFP Fee payment

Year of fee payment: 10