FR2958482A1 - Data stream managing method for transmitting device, involves stopping non-receiving indication message transmission to sending device by non-received parity data packet receiving device if retransmission of data packet is not required - Google Patents

Data stream managing method for transmitting device, involves stopping non-receiving indication message transmission to sending device by non-received parity data packet receiving device if retransmission of data packet is not required Download PDF

Info

Publication number
FR2958482A1
FR2958482A1 FR1052441A FR1052441A FR2958482A1 FR 2958482 A1 FR2958482 A1 FR 2958482A1 FR 1052441 A FR1052441 A FR 1052441A FR 1052441 A FR1052441 A FR 1052441A FR 2958482 A1 FR2958482 A1 FR 2958482A1
Authority
FR
France
Prior art keywords
data
packet
received
parity data
parity
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
FR1052441A
Other languages
French (fr)
Other versions
FR2958482B1 (en
Inventor
Stephane Baron
Pascal Viger
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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to FR1052441A priority Critical patent/FR2958482B1/en
Publication of FR2958482A1 publication Critical patent/FR2958482A1/en
Application granted granted Critical
Publication of FR2958482B1 publication Critical patent/FR2958482B1/en
Expired - Fee Related 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/326Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load

Landscapes

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

Abstract

The method involves detecting data loss relative to a non-received parity data packet by a receiving device, and verifying whether a transmitter device retransmits the non-received parity data packet according to a criterion applied to flow source data used to generate non-received packet parity data. Transmission of non-receiving indication message toward the sending device is stopped by the non-received parity data packet receiving device if retransmission of the non-received parity data packet is not required. Independent claims are also included for the following: (1) a computer program comprising a set of instructions for implementing a method for managing a data stream transmitted by a transmitting device via a communication link (2) a computer-readable storage unit for storing a computer program comprising a set of instructions for implementing a method for managing a data stream transmitted by a transmitting device via a communication link (3) a receiving device comprising units for managing data stream transmitted by a transmitting device.

Description

Procédé de gestion par un dispositif récepteur d'un flux de données transmis par un dispositif émetteur, produit programme d'ordinateur, moyen de stockage et dispositif récepteur correspondants 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des réseaux de communication. L'invention concerne une technique de transmission d'un flux de données par un dispositif émetteur vers un dispositif récepteur via un réseau de communication. Plus précisément, l'invention concerne une technique de gestion de retransmission de données de parité dans un tel réseau. 2. ARRIÈRE-PLAN TECHNOLOGIQUE La technologie des Réseaux Privés Virtuels (RPV, ou VPN pour « Virtual Private Network » en anglais) permet de communiquer de manière transparente, en temps réel et en continu, et de manière sécurisée, entre des individus partageant un même domaine d'intérêt tout en utilisant l'infrastructure réseau Internet peu sûre mais bon marché. Pour communiquer de manière transparente et s'affranchir des adresses non routables, les RPVs utilisent une encapsulation particulière (appelée « tunnellisation », ou « tunneling » en anglais) qui crée ce que l'on appelle un tunnel de communication (ou plus généralement lien de communication). Cette opération consiste à encapsuler un protocole de niveau A (protocole embarqué ou véhiculé ou passager) dans un protocole de niveau B (protocole de transport ou véhiculant) grâce à un protocole d'encapsulation C. Ainsi, le protocole de transport B traite le protocole embarqué A comme s'il s'agissait de données utiles. La figure 3, décrite en détail par la suite, présente un exemple d'encapsulation de paquets dans un RPV de niveau 2, c'est-à-dire dans un tunnel de niveau 2 (tunnel de niveau 2 signifie que le protocole embarqué A est un protocole de la couche 2 du modèle OSI, qui décrit les services offerts par chacune de ces couches et leurs interactions). Par exemple, les techniques de tunnellisation sont utilisées pour interconnecter deux réseaux locaux domestiques (appelés ci-après réseaux LAN, pour « Local Area Network » en anglais) afin de créer un réseau privé virtuel (ou RPV) composé de l'union des deux réseaux LAN originaux. Une configuration typique de RPV basé sur une technique de tunnellisation est illustrée sur la figure 1 (décrite en détail par la suite). Selon cette technique, le lien de communication utilisé pour interconnecter deux réseaux LAN est un tunnel. Chaque réseau LAN comprend un dispositif d'interconnexion, par exemple une tête de tunnel (TEP, pour « Tunnel End Point » en anglais), et une passerelle. Le tunnel est établi entre les têtes de tunnel, et chaque paquet (aussi appelé trame) à envoyer au réseau LAN distant est encapsulé par la tête de tunnel connectée au réseau LAN local, puis envoyé, via le tunnel, à la tête de tunnel (distante) connectée au réseau LAN distant, qui va le dés-encapsuler et l'envoyer sur le réseau LAN distant. Du point de vue des équipements des réseaux LAN interconnectés par un tunnel, ils sont virtuellement connectés à un même réseau LAN. Une communication entre deux équipements via le tunnel est appelée communication de bout en bout (« end-to-end communication » en anglais), ou communication passagère (dans le sens de « embarquée »), et l'utilisation du tunnel est transparente pour les équipements des réseaux LAN connectés. Method of management by a receiver device of a data stream transmitted by a transmitting device, computer program product, storage means and corresponding receiver device 1. FIELD OF THE INVENTION The field of the invention is that of the networks of communication. The invention relates to a technique for transmitting a data stream by a transmitting device to a receiving device via a communication network. More specifically, the invention relates to a management technique of retransmission of parity data in such a network. 2. TECHNOLOGICAL BACKGROUND The Virtual Private Networks (VPN) technology makes it possible to communicate transparently, in real time and continuously, and in a secure manner, between individuals sharing a virtual private network. same area of interest while using unsafe but cheap internet network infrastructure. To transparently communicate and get rid of non-routable addresses, RPVs use a special encapsulation (called "tunneling" or "tunneling" in English) that creates what is called a communication tunnel (or more generally a link Communication). This operation consists of encapsulating a level A protocol (embedded or vehicular or passenger protocol) in a B protocol (transport or carrier protocol) using an encapsulation protocol C. Thus, the transport protocol B processes the protocol embedded A as if they were useful data. Figure 3, described in detail later, shows an example of encapsulation of packets in a level 2 VPN, that is to say in a level 2 tunnel (level 2 tunnel means that the embedded protocol A is an OSI Layer 2 protocol that describes the services offered by each of these layers and their interactions). For example, tunneling techniques are used to interconnect two home local area networks (hereinafter referred to as Local Area Networks) to create a virtual private network (or VPN) consisting of the union of the two. original LAN networks. A typical VPN configuration based on a tunneling technique is illustrated in Figure 1 (described in detail later). According to this technique, the communication link used to interconnect two LANs is a tunnel. Each LAN network includes an interconnection device, for example a tunnel endpoint (TEP), and a gateway. The tunnel is established between the tunnelheads, and each packet (also called frame) to be sent to the remote LAN is encapsulated by the tunnelhead connected to the local LAN and sent, via the tunnel, to the tunnelhead ( remote) connected to the remote LAN, which will de-encapsulate it and send it to the remote LAN. From the point of view of the LAN equipment interconnected by a tunnel, they are virtually connected to the same LAN. A communication between two devices via the tunnel is called end-to-end communication, or transient communication (in the sense of "embedded"), and the use of the tunnel is transparent to the equipment of the connected LAN networks.

De nos jours, il existe des RPVs disposant de tunnel formé de plusieurs porteuses (ou canaux). De tels RPVs sont notamment décrits dans le document de brevet EP 2,020,799. On appelle « tunnel multi-transport » un tunnel qui est formé de multiples porteuses ayant des protocoles de transport distincts. Chaque tête de tunnel dispose alors d'un ensemble de porteuses ayant des caractéristiques distinctes, afin d'adapter la transmission des données d'un réseau LAN à l'autre aux besoins applicatifs ainsi qu'aux variations de conditions de transmission sur le réseau fédérateur (comme Internet par exemple), entre ces réseaux LAN. Dans l'état de la technique, on trouve des tunnels constitués de porteuses mettant en oeuvre un protocole de transport avec acquittement de données, tel que par exemple le protocole TCP (« Transmission Control Protocol » en anglais), et de porteuses mettant en oeuvre un protocole de transport sans acquittement de données, tel que par exemple le protocole UDP (« User Datagram Protocol » en anglais). Le protocole TCP est un protocole de type ARQ (« Automatic Repeat Request », ou demande de répétition automatique) qui est basé sur des mécanismes de contrôle de congestion et de retransmission, et assure ainsi la délivrance de chaque paquet vers la destination. Le protocole UDP est un protocole beaucoup plus simple et rapide, qui ne tient pas compte de l'ordre des trames, et ne gère pas d'acquittement. Nowadays, there are VPNs having a tunnel formed by several carriers (or channels). Such VPNs are described in particular in patent document EP 2,020,799. A "multi-transport tunnel" is a tunnel that is made up of multiple carriers with distinct transport protocols. Each tunnel head then has a set of carriers with different characteristics, in order to adapt the transmission of data from one LAN to another to the application needs as well as to the variations of transmission conditions on the backbone network. (like Internet for example), between these LAN networks. In the state of the art, there are tunnels consisting of carriers implementing a transport protocol with data acknowledgment, such as for example the Transmission Control Protocol (TCP), and carriers implementing a transport protocol without data acknowledgment, such as for example the UDP protocol ("User Datagram Protocol" in English). The TCP protocol is an ARQ (Automatic Repeat Request) type protocol that is based on congestion and retransmission control mechanisms, and thus ensures the delivery of each packet to the destination. The UDP protocol is a much simpler and faster protocol, which does not take into account the order of the frames, and does not handle acknowledgment.

Le protocole UDP permet alors une délivrance des données avec une latence maîtrisée, cependant sans aucune garantie vis-à-vis de la perte de données. Dans un tunnel, la porteuse UDP est utilisée pour convoyer des données (flux passager) à forte contrainte temporelle, comme par exemple des données audiovisuelles. Ces données audiovisuelles sont par exemple transmises sur un réseau LAN selon le protocole RTP (pour « Real-Time Transport Protocol », tel que défini par la norme RFC-3550). De telles données ne sauraient être transmises via la porteuse TCP du tunnel, car en cas de taux d'erreur élevé sur le réseau Internet, la porteuse TCP générerait de nombreuses retransmissions de paquets, afin d'assurer la délivrance des données à l'autre tête de tunnel. De telles retransmissions de paquets entraîneraient des variations importantes de la latence de bout en bout du flux RTP véhiculé. De plus, il est à noter que le mécanisme de contrôle de flux et le mécanisme de contrôle de congestion mis en oeuvre par le protocole TCP provoquent, selon l'évolution de la charge du réseau, des variations brutales dans le cadencement de la transmission des données. The UDP protocol then allows data delivery with controlled latency, however without any guarantee against data loss. In a tunnel, the UDP carrier is used to convey data (passenger stream) with high time constraints, such as audiovisual data. This audiovisual data is for example transmitted over a LAN according to the RTP protocol (for "Real-Time Transport Protocol", as defined by the RFC-3550 standard). Such data can not be transmitted via the TCP carrier of the tunnel, because in case of high error rate on the Internet, the TCP carrier would generate many retransmissions of packets, to ensure the delivery of data to the other tunnel head. Such packet retransmissions would result in significant variations in the end-to-end latency of the transported RTP stream. In addition, it should be noted that the flow control mechanism and the congestion control mechanism implemented by the TCP protocol cause, depending on the evolution of the network load, abrupt variations in the timing of the transmission of the signals. data.

Ainsi, un des principaux problèmes liés à ce type de réseau, est de maintenir une latence de transmission de bout en bout constante, tout en restant robuste vis-à-vis de la perte de données, afin de garantir une qualité perçue (« QoE » pour « Quality of Experience » en anglais) constante vis-à-vis de l'utilisateur. En effet, la moindre interruption dans la transmission du flux (causée par exemple par une perte de données sur la porteuse UDP du tunnel ou par un retard de la porteuse TCP conduisant à une obsolescence des données véhiculées) se traduit par une dégradation du flux passager. Ceci se traduit par exemple au niveau de l'utilisateur par une coupure du morceau musical écouté ou de la vidéo affichée. Dans l'état de la technique, il existe plusieurs techniques de gestion de retransmission de paquets de données perdus Selon une approche connue, présentée dans le document de brevet US 2005/0111371, un flux de données est transmis selon un protocole de transport combinant données de parité et retransmission. Les données de parité FEC (pour « Forward Error Correction » en anglais) sont insérées dans le flux à intervalle régulier. Thus, one of the main problems related to this type of network, is to maintain a constant end-to-end transmission latency, while remaining robust with respect to the loss of data, in order to guarantee a perceived quality ("QoE For "Quality of Experience" in English) constant vis-à-vis the user. Indeed, the slightest interruption in the transmission of the stream (caused for example by a loss of data on the UDP carrier of the tunnel or by a delay of the TCP carrier leading to an obsolescence of the conveyed data) results in a degradation of the passenger flow . This is reflected for example at the user level by a cut of the listened musical piece or the displayed video. In the state of the art, there are several techniques for managing the retransmission of lost data packets According to a known approach, presented in the patent document US 2005/0111371, a data stream is transmitted according to a transport protocol combining data. parity and retransmission. FEC ("Forward Error Correction") parity data is inserted into the stream at regular intervals.

Selon cette approche connue, le dispositif récepteur possède un mécanisme de détection de perte de données. Lorsqu'une perte de donnée du flux est détectée, le mécanisme détermine si la donnée de parité FEC associée (une donnée de parité FEC pour N données du flux) permet la restauration de la donnée du flux. Si plus d'une donnée du flux est perdue pour un même ensemble de N données utilisées pour générer la donnée de parité FEC, alors une requête de retransmission doit être formulée par le dispositif récepteur auprès du dispositif émetteur. Le dispositif récepteur en outre détermine si la retransmission de la donnée du flux est nécessaire en fonction du temps restant avant réception de la prochaine donnée de parité. Cependant un tel système, de par le fait de vérifier à chaque paquet de données du flux si une requête de retransmission doit être formulée auprès du dispositif émetteur, impose une latence de transmission accrue comparée à l'utilisation d'un protocole de transport sans acquittement ni retransmission. De plus, l'utilisation d'un protocole de retransmission sur l'ensemble du flux impose d'importantes ressources mémoire, au sein du dispositif émetteur notamment, afin de permettre les retransmissions de données sur demande du dispositif récepteur. According to this known approach, the receiver device has a data loss detection mechanism. When a data loss of the stream is detected, the mechanism determines whether the associated FEC parity data (a FEC parity data for N data of the stream) allows the restoration of the stream data. If more than one stream data is lost for the same set of N data used to generate the FEC parity data, then a retransmission request must be made by the receiving device to the transmitting device. The receiving device further determines whether the retransmission of the stream data is necessary based on the time remaining before receiving the next parity data. However, such a system, by checking each data packet of the stream if a retransmission request must be made to the sending device, imposes an increased transmission latency compared to the use of a transport protocol without acknowledgment. neither retransmission. In addition, the use of a retransmission protocol over the entire stream requires significant memory resources, within the transmitter device in particular, to allow retransmissions of data on request of the receiving device.

De plus, un tel système ne traite pas la gestion de retransmission dans le cas d'une perte d'une donnée de parité. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. In addition, such a system does not deal with retransmission management in the event of a loss of parity data. OBJECTIVES OF THE INVENTION The invention, in at least one embodiment, has the particular objective of overcoming these various disadvantages of the state of the art.

Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de transmission d'un flux de données par un dispositif émetteur vers un dispositif récepteur, qui permette d'améliorer l'efficacité globale de la transmission de bout en bout de ce flux, en termes de fiabilité de transmission, en termes de latence de transmission et en termes d'utilisation de la bande passante en cas d'erreurs de transmission. Au moins un mode de réalisation particulier de l'invention a pour objectif de fournir une technique qui permette, dans un environnement réseau de type RPV mettant en oeuvre une communication multi-transport, une délivrance fiable et rapide d'un flux multimédia. More specifically, in at least one embodiment of the invention, an objective is to provide a technique for transmitting a data stream by a transmitting device to a receiving device, which makes it possible to improve the overall efficiency of the transmission. end-to-end transmission of this stream, in terms of transmission reliability, in terms of transmission latency and in terms of bandwidth usage in the event of transmission errors. At least one particular embodiment of the invention aims to provide a technique that allows, in a network environment of the VPN type implementing a multi-transport communication, a reliable and fast delivery of a multimedia stream.

Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de gestion par un dispositif récepteur d'un flux de données transmis par un dispositif émetteur via un lien de communication, les données du flux de données étant transmises au dispositif récepteur par utilisation d'un protocole de transport sans acquittement de données. Le dispositif récepteur étant tel qu'il effectue des étapes consistant à : - détecter une perte de donnée relative à un paquet de données de parité non reçu par le dispositif récepteur, des données de parité ayant été transmises par le dispositif émetteur par utilisation d'un protocole de transport avec acquittement et retransmission de données, les données de parité ayant été générées à partir de données sources dudit flux ; - vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, en fonction d'au moins un critère appliqué aux données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - s'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception par le dispositif récepteur du paquet de données de parité non reçu. Another objective of at least one embodiment of the invention is to provide such a technique which is simple to implement and inexpensive. 4. DISCLOSURE OF THE INVENTION In a particular embodiment of the invention, there is provided a method of management by a receiving device of a data stream transmitted by a transmitting device via a communication link, the data of the stream data being transmitted to the receiver device by use of a transport protocol without data acknowledgment. The receiving device is such that it performs steps of: - detecting a loss of data relating to a packet of parity data not received by the receiving device, parity data having been transmitted by the transmitting device by use of a transport protocol with acknowledgment and retransmission of data, the parity data having been generated from source data of said stream; verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received, as a function of at least one criterion applied to the source data of said stream used to generate the parity data of said non-received packet; if it is not necessary for the transmitting device to retransmit said parity data packet not received, to cancel transmission to the transmitting device of a non-reception indication message by the receiving device of the data packet parity not received.

Ainsi, il est proposé de transmettre des données de parité sur une porteuse utilisant un protocole de transport avec acquittement et retransmission de données (par exemple, le protocole TCP) pour fiabiliser un flux de données transmis sur une porteuse utilisant un protocole de transport sans acquittement de données (par exemple, le protocole UDP). On tire ainsi avantage de la faible latence du protocole de transport sans acquittement de données, tel que le protocole UDP par exemple, ainsi que de la robustesse du protocole de transport avec acquittement de données, tel que le protocole TCP par exemple. De cette manière, la latence de transmission du flux de données se trouve améliorée comparativement à l'état de la technique. En outre, il est déterminé si une retransmission de données de parité perdues (non reçues) est nécessaire (dans le sens où ces données de parité perdues sont utiles au mécanisme de correction d'erreur), à partir d'un résultat de vérification de critère(s) appliqué(s) à des données du flux transmises selon le protocole de transport sans acquittement et utilisées pour générer les données de parité qui ont été perdues. Dans le cas où il n'est pas nécessaire que le dispositif émetteur retransmette les données de parité perdues, aucun message d'indication de non-réception de données de parité n'est envoyé vers le dispositif émetteur. Ainsi, on évite la retransmission des données de parité perdues, cette retransmission ayant été jugée inutile. L'utilisation de la bande passante entre le dispositif émetteur et le dispositif récepteur est donc améliorée. Selon une caractéristique avantageuse, ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à : - détecter que les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ont toutes été reçues par le dispositif récepteur ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. Thus, it is proposed to transmit parity data on a carrier using a transport protocol with acknowledgment and retransmission of data (for example, the TCP protocol) to make reliable a flow of data transmitted on a carrier using a transport protocol without acknowledgment. data (for example, the UDP protocol). This benefits from the low latency of the transport protocol without data acknowledgment, such as the UDP protocol for example, and the robustness of the transport protocol with data acknowledgment, such as the TCP protocol, for example. In this way, the transmission latency of the data stream is improved compared to the state of the art. In addition, it is determined whether a retransmission of lost (not received) parity data is necessary (in the sense that this lost parity data is useful for the error correction mechanism), from a check result of criterion (s) applied to stream data transmitted according to the transport protocol without acknowledgment and used to generate parity data that has been lost. In the case where it is not necessary for the transmitting device to retransmit the lost parity data, no non-receipt of parity data indication message is sent to the transmitting device. Thus, the retransmission of the lost parity data is avoided, this retransmission having been deemed unnecessary. The use of the bandwidth between the transmitting device and the receiving device is therefore improved. According to an advantageous characteristic, said step of verifying whether it is necessary for the transmitting device to retransmit said packet of non-received parity data comprises the steps of: detecting that the source data of said stream used to generate the parity data of said packet not received have all been received by the receiver device; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received.

Ainsi, une retransmission de données de parité perdues est jugée inutile lorsque toutes les données sources du flux (utilisées pour générer ces données de parité perdues) véhiculées selon le protocole de transport sans acquittement ont toutes été reçues par le dispositif récepteur. Selon une autre caractéristique avantageuse, ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à : - déterminer un instant auquel une donnée déterminée, parmi les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu, doit être obtenue par le dispositif récepteur ; - détecter que l'instant auquel la donnée déterminée doit être obtenue par le dispositif récepteur dépasse un instant estimé de réception d'une retransmission du paquet de données de parité non reçu ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. Thus, a retransmission of lost parity data is deemed unnecessary when all the source data of the stream (used to generate this lost parity data) conveyed according to the transport protocol without acknowledgment have all been received by the receiving device. According to another advantageous characteristic, said step of verifying whether it is necessary for the transmitting device to retransmit said packet of non-received parity data comprises the steps of: determining a time at which a given datum, among the source data of said stream used to generate the parity data of said non-received packet, must be obtained by the receiving device; detecting that the instant at which the determined data must be obtained by the receiving device exceeds an estimated time of reception of a retransmission of the parity data packet not received; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received.

Il est proposé ici de déterminer le temps restant avant que le paquet de parité perdu ne soit périmé. L'instant de péremption du paquet de parité perdu est l'instant auquel une donnée déterminée, parmi les données sources utilisées pour générer le paquet de parité perdu, doit être obtenue par le dispositif récepteur. Ainsi, une fois cet instant de péremption passé, si un paquet de parité retransmis est reçu, alors il ne sert plus à rien, car les données sources correspondantes sont périmées. En d'autres termes, une retransmission de données de parité perdues est jugée inutile lorsque l'instant de péremption de ces données de parité est passé (c'est-à-dire dépasse un instant estimé de réception d'une retransmission de ces données de parité). Dans un mode de réalisation préférentiel, l'instant estimé de réception est déterminé à partir d'un temps aller-retour des données transmises selon le protocole de transport avec acquittement et retransmission de données. Ainsi, par exemple dans le cadre de la mise oeuvre du protocole de transport avec acquittement et retransmission de données (pour rappel, pour le transport des données de parité et non des données sources) par utilisation du protocole TCP, la valeur du temps RTT (« Round Trip Time »), fournie par TCP selon la norme RFC-793, peut être utilisée pour effectuer l'estimation de l'instant de réception, ce qui permet une mise en oeuvre simple et peu coûteuse de cette estimation. Selon une autre caractéristique avantageuse, ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à : - détecter que le nombre de donnée(s) de parité déjà reçue(s) par le dispositif récepteur permet de reconstituer les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. It is proposed here to determine the time remaining before the lost parity packet has expired. The expiry time of the lost parity packet is the moment at which a given datum, among the source data used to generate the lost parity packet, must be obtained by the receiving device. Thus, once this moment of expiry has passed, if a retransmitted parity packet is received, then it is no longer useful because the corresponding source data is out of date. In other words, a retransmission of lost parity data is deemed unnecessary when the expiry time of this parity data has passed (ie, exceeds an estimated time of receipt of a retransmission of that data). parity). In a preferred embodiment, the estimated time of reception is determined from a round-trip time of the transmitted data according to the transport protocol with acknowledgment and retransmission of data. Thus, for example in the context of the implementation of the transport protocol with acknowledgment and retransmission of data (as a reminder, for the transport of the parity data and not the source data) using the TCP protocol, the value of the RTT time ( "Round trip time"), provided by TCP according to the RFC-793 standard, can be used to estimate the time of reception, which allows a simple and inexpensive implementation of this estimate. According to another advantageous characteristic, said step of verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received comprises the steps of: detecting that the number of parity data (s) already received ( s) by the receiver device allows to reconstruct the source data of said stream used to generate the parity data of said packet not received; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received.

Ainsi, une retransmission de données de parité perdues est jugée inutile lorsque le dispositif récepteur a déjà reçu un nombre de données de parité suffisant pour lui permettre de recréer les données sources perdues. De façon avantageuse, le dispositif récepteur effectue au préalable une étape consistant à intercepter ledit message d'indication de non-réception du paquet de données de parité non reçu, et l'étape consistant à annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception comprend des étapes consistant à : - supprimer ledit message d'indication de non-réception intercepté ; - générer un paquet de bourrage se substituant au paquet de données de parité non reçu - transmettre le paquet de bourrage généré à un module de traitement d'acquittement, de façon à obtenir un message d'indication de réception dudit paquet de données de parité non reçu. Ainsi, il est proposé de supprimer le message d'indication de non-réception intercepté. On doit aussi entendre par cette expression que l'on peut simplement supprimer l'indication de non-réception d'une trame contenant plusieurs messages. Par exemple, selon le protocole TCP, il est possible d'avoir, dans une trame émise par un dispositif A, un acquittement pour des données applicatives (ou sources) reçues d'un dispositif B et des données applicatives (ou sources) que le dispositif B transmet au dispositif A. Il est proposé ici de substituer le paquet de parité perdue par un paquet de bourrage qui va prendre la place du paquet de données de parité non reçu dans le contrôle de transmission effectué par le module de traitement d'acquittement. Par exemple, il est possible de remplacer les données de parité perdues avec des données de bourrage (« padding data» en anglais). La transmission de ce paquet de bourrage à un module de traitement d'acquittement a pour effet de déclencher un acquittement des données de parité qui n'ont pas été reçues. Ce mécanisme de génération de paquet de bourrage permet donc d'éviter de bloquer la porteuse mettant en oeuvre le protocole de transport avec acquittement et retransmission. On notera que l'acquittement qui est au final transmis vers le dispositif émetteur entraîne que ce dernier, sur réception de cet acquittement, n'effectuera aucune retransmission de données. De manière préférentielle, le paquet de bourrage a le même identifiant (numéro de séquence) et la même taille que le paquet de données de parité non-reçu. Ainsi, dans le cadre de la mise en oeuvre d'un protocole de transport avec acquittement et retransmission de données en mode connecté, tel que le protocole TCP, le paquet de bourrage permet de conserver l'alignement attendu des données. Thus, retransmission of lost parity data is deemed unnecessary when the receiving device has already received a sufficient number of parity data to enable it to recreate the lost source data. Advantageously, the receiving device first performs a step of intercepting said non-receiving indication message from the parity data packet not received, and the step of canceling transmission to the transmitting device of a Non-receipt indication message comprises steps of: - deleting said intercepted non-receiving indication message; generating a stuffing packet that replaces the non-received parity data packet; transmitting the generated stuff packet to an acknowledgment processing module so as to obtain a receive indication message of said non-parity data packet; received. Thus, it is proposed to delete the intercepted non-receipt indication message. It should also be understood by this expression that one can simply delete the indication of non-reception of a frame containing several messages. For example, according to the TCP protocol, it is possible to have, in a frame transmitted by a device A, an acknowledgment for application data (or sources) received from a device B and application data (or sources) that the Device B transmits to Device A. It is proposed here to substitute the lost parity packet with a stuffing packet that will take the place of the parity data packet not received in the transmission control performed by the Acknowledgment Processing Module. . For example, it is possible to replace lost parity data with padding data. The transmission of this stuffing packet to an acknowledgment processing module has the effect of triggering an acknowledgment of the parity data which has not been received. This stuffing packet generation mechanism thus makes it possible to avoid blocking the carrier implementing the transport protocol with acknowledgment and retransmission. It will be noted that the acknowledgment that is ultimately transmitted to the transmitting device causes the latter, on receipt of this acknowledgment, to perform no retransmission of data. Preferably, the stuffing packet has the same identifier (sequence number) and the same size as the non-received parity data packet. Thus, in the context of the implementation of a transport protocol with acknowledgment and retransmission of data in connected mode, such as the TCP protocol, the stuffing packet makes it possible to maintain the expected alignment of the data.

De façon avantageuse, s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, le dispositif récepteur effectue une étape consistant à transmettre ledit message d'indication de non-réception du paquet de données de parité non reçu vers le dispositif émetteur. Advantageously, if it is necessary for the transmitting device to retransmit said non-received parity data packet, the receiving device performs a step of transmitting said non-receiving indication message of the non-received parity data packet to the transmitting device.

Ainsi, une retransmission de données peut avoir lieu. Dans un mode de réalisation préférentiel, une fenêtre d'encodage de taille prédéfinie est appliquée aux données sources utilisées pour générer les données de parité dudit paquet non reçu, et chaque donnée de parité dudit paquet non reçu a le même identifiant qu'une donnée source de position prédéterminée dans la fenêtre d'encodage. Thus, a retransmission of data can take place. In a preferred embodiment, a predefined size encoding window is applied to the source data used to generate the parity data of said non-received packet, and each parity data of said non-received packet has the same identifier as a source data. predetermined position in the encoding window.

Ainsi, la relation entre données source et données de parité étant prédéfinie, la mise en oeuvre du procédé de gestion reste simple. Dans un mode de réalisation préférentiel, le lien de communication est un tunnel de communication interconnectant des réseaux locaux, et chacun des dispositifs émetteur et récepteur est une tête de tunnel appartenant à un réseau local respectif. Les données sources sont générées par un dispositif terminal source d'un dit réseau local et sont destinées à un dispositif terminal destination d'un dit réseau local distinct. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur qui comprend des instructions de code de programme pour la mise en oeuvre du procédé précité (dans l'un quelconque de ses différents modes de réalisation), lorsque ledit programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé précité (dans l'un quelconque de ses différents modes de réalisation). Thus, the relationship between source data and parity data being predefined, the implementation of the management method remains simple. In a preferred embodiment, the communication link is a communication tunnel interconnecting local area networks, and each of the transmitter and receiver devices is a tunnel head belonging to a respective local area network. The source data is generated by a source terminal device of a said local network and is intended for a terminal device destination of a said separate local network. In another embodiment, the invention relates to a computer program product which comprises program code instructions for carrying out the aforesaid method (in any of its various embodiments), when said program is running on a computer. In another embodiment, the invention relates to a computer readable storage means storing a computer program comprising a set of computer executable instructions for carrying out the above method (in any one of its different embodiments).

Dans un mode de réalisation particulier de l'invention, il est proposé un dispositif récepteur comprenant des moyens pour gérer un flux de données transmis par un dispositif émetteur via un lien de communication, les données du flux de données étant transmises au dispositif récepteur par utilisation d'un protocole de transport sans acquittement de données. Le dispositif récepteur est tel qu'il comprend : - des moyens pour détecter une perte de donnée relative à un paquet de données de parité non reçu par le dispositif récepteur, des données de parité ayant été transmises par le dispositif émetteur par utilisation d'un protocole de transport avec acquittement et retransmission de données, les données de parité ayant été générées à partir de données sources dudit flux ; - des moyens pour vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, en fonction d'au moins un critère appliqué aux données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - des moyens pour annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception par le dispositif récepteur du paquet de données de parité non reçu, lesdits moyens pour annuler étant activés si les moyens pour vérifier détectent qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. Avantageusement, le dispositif récepteur comprend des moyens de mise en oeuvre des étapes du procédé de gestion tel que décrit précédemment, dans l'un 15 quelconque de ses différents modes de réalisation. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : 20 - la figure 1 illustre schématiquement une configuration d'un réseau privé virtuel pour la mise en oeuvre de l'invention selon un mode de réalisation particulier ; - la figure 2 illustre schématiquement un exemple de modèle en couche d'une tête de tunnel dans laquelle est mis en oeuvre le procédé selon un mode de réalisation particulier ; 25 - la figure 3 illustre schématiquement un exemple de format d'une trame Ethernet véhiculant un paquet tunnel de niveau 2 ; - la figure 4 illustre schématiquement les blocs fonctionnels d'un bloc émetteur compris dans une tête de tunnel, selon un mode de réalisation particulier de l'invention ; 10 - la figure 5 illustre schématiquement les blocs fonctionnels d'un bloc récepteur compris dans une tête de tunnel, selon un mode de réalisation particulier de l'invention ; - la figure 6 représente un organigramme d'un algorithme de gestion de retransmission de données selon un mode de réalisation particulier du procédé selon l'invention, mis en oeuvre par le bloc récepteur de la figure 5 ; - la figure 7 illustre un exemple de formats de paquets de données échangés entre deux têtes de tunnel ; - la figure 8 illustre schématiquement un exemple d'une table de stockage gérée par un ordonnanceur de flux (compris dans le bloc récepteur de la figure 5) ; - la figure 9A représente un organigramme d'un algorithme de transmission d'un flux de données selon un mode de réalisation particulier du procédé selon l'invention, mis en oeuvre par le bloc émetteur de la figure 4 ; - la figure 9B présente un mode de réalisation particulier d'un algorithme, implémenté au sein d'un module de marquage (compris dans le bloc émetteur de la figure 4) ; et - la figure 9C présente un mode de réalisation particulier d'un algorithme, implémenté au sein d'un module de filtrage (compris dans le bloc récepteur de la figure 5). 20 6. DESCRIPTION DÉTAILLÉE Dans la suite de la description, on se place dans le cas où le réseau de communication met en oeuvre un lien de communication qui est un tunnel, permettant à des dispositifs émetteur et récepteur d'échanger des données multimédia. Bien entendu, la présente solution peut s'appliquer à tout autre type de lien de communication entre 25 des dispositifs émetteur et récepteur, comme par exemple des dispositifs émetteur et récepteur communiquant sur un même réseau LAN (« Local Area Network » en anglais). Dans un souci de simplification de la description, on considérera par la suite que la longueur des paquets de parités générés est égale à la valeur MSS (pour « Maximum 30 Segment Size » en anglais) de la porteuse TCP. On rappelle que le paramètre MSS 10 15 correspond à la plus grande quantité de données utiles pouvant être supportée par un unique segment TCP. La figure 1 illustre schématiquement, selon un mode de réalisation particulier de l'invention, une configuration de réseau privé virtuel (VPN pour « Virtual Private Network » en anglais) mettant en oeuvre un tunnel 100 de communication entre une première tête de tunnel locale 101 et une seconde tête de tunnel distante 102, à travers un réseau de communication 107, comme Internet par exemple. Ce tunnel 100 interconnecte un premier réseau de communication 103 et un second réseau de communication 104, encore appelés respectivement LAN A 103 et LAN B 104. Le premier réseau LAN A 103 et le second réseau LAN B 104 comportent chacun un équipement d'accès Internet haut débit de type passerelle Internet domestique (ou « Home Gateway » en anglais) (référencés respectivement 105 et 106), pouvant intégrer un pare-feu (ou « Firewall » en anglais) (référencés respectivement 105a et 106a), des équipements de type PC 109 et 111, des serveurs 110 et 113 permettant le stockage et le partage des media numériques (de type audio, vidéo, photo), ainsi que des équipements de restitution des médias numériques 108 et 112. Une tête de tunnel peut être un équipement dédié (comme illustré sur la figure 1) ou bien être intégrée dans un équipement audiovisuel comme un téléviseur numérique. Elle peut aussi être présente dans un équipement de type PC sous la forme d'un programme réalisant les fonctions associées à celle-ci. Une fois le tunnel 100 établi, les équipements 108, 109, et 110, connectés au premier réseau LAN A 103, sont capables de communiquer avec les équipements 111, 112 et 113, connectés au second réseau LAN B 104. Par exemple, le client local 108 connecté au premier réseau LAN A 103 peut communiquer, de manière transparente, avec le serveur local 113 connecté au second réseau LAN B 104. Sur cette figure 1 est représenté un réseau de communication simple avec un seul tunnel, mais il est bien entendu qu'un même réseau LAN peut comporter plusieurs têtes de tunnel et/ou qu'une même tête de tunnel peut être amenée à gérer plusieurs tunnels (à destination d'autant de têtes de tunnel) pour interconnecter un premier réseau LAN à plusieurs autres réseaux LAN. En outre, dans un souci de simplification, n'ont pas été représentés les équipements d'infrastructure dans le réseau Internet tels que les routeurs Internet. En relation avec la figure 2, on présente maintenant le cheminement d'une trame Ethernet issue d'un des équipements 108, 109, 110, connectés au premier réseau LAN A 103, et entrant dans le tunnel 100 pour y être acheminée jusqu'au second réseau LAN B 104. Pour ce faire, on utilise un modèle en couches décrivant les couches de protocoles nécessaires à la mise en oeuvre de ce tunnel 100. Dans ce modèle ne sont pas représentés les éléments de protocole nécessaire aux fonctions autres que la mise en oeuvre du tunnel. Par exemple, ne sont pas représentés les éléments de protocole associés à une architecture UPnP (pour « Universal Plug and Play » en anglais) lorsqu'une première tête de tunnel 101 est intégrée dans un équipement UPnP. La première tête de tunnel 101 comporte une interface physique Ethernet 235 qui remet les trames Ethernet issues des équipements 108, 109, 110 à la couche liaison 230 pour routage : vers la couche réseau IP 225, pour les trames Ethernet à destination de l'équipement comportant la tête de tunnel, ou vers la couche de pont (« bridge » en anglais) 240, pour les autres trames Ethernet. La couche de pont 240 réalise les opérations classiques d'un pont Ethernet telles que le filtrage des trames Ethernet et le relai de ces trames vers le ou les port(s) Ethernet de sortie approprié(s). Sur le pont sont attachées une interface Ethernet 230 et au moins une interface virtuelle 245 simulant un contrôleur Ethernet. Une interface virtuelle 245 est créée pour chaque tunnel instancié par l'application 200 à qui elle remet les trames Ethernet qui doivent transiter sur les tunnels respectivement instanciés. D'une manière générale, le protocole d'encapsulation du tunnel représenté par l'application 200 réalise les opérations nécessaires à la mise en oeuvre de chaque tunnel, parmi lesquelles on trouvera notamment la configuration, le filtrage et l'encapsulation, c'est-à-dire la formation d'un paquet tunnel, et l'extraction d'une trame. Dans un mode de réalisation particulier, l'application 200 met en oeuvre des étapes du procédé selon l'invention qui sont détaillées ci-après en relation avec les figures 6 et 9 (A, B, C). Les trames reçues de l'interface virtuelle 245, après traitement par l'application 200, sont remises sous la forme d'un paquet à travers une interface applicative 205 (ou « socket » en anglais) à un protocole de transport fiable TCP 210 ou non fiable UDP 220. Dans le cas où le protocole de transport fiable TCP 210 est sélectionné, les trames Ethernet sont dirigées vers le protocole tunnel hybride ARQ 215. La dénomination hybride ARQ est utilisée pour désigner un protocole utilisant à la fois un mécanisme de retransmission de type ARQ, et des mécanismes de correction d'erreur tel que l'envoi de paquets de parité (en utilisant, par exemple, un protocole Reed-Solomon) permettant de reconstruire des paquets perdus ou erronés. Après traitement par un protocole de transport pour former un paquet tunnel, celui-ci est transmis à la couche réseau 225. Le datagramme IP ainsi formé avec le paquet tunnel peut ensuite être transmis sur le réseau LAN à travers les couches liaison 230 et physique 235, pour ensuite être transmis sur le réseau Internet via la passerelle 105. La réception d'une trame en provenance du tunnel 100 suivra dans la tête de tunnel 101 le cheminement inverse à celui présenté ci-dessus. On note que dans le cas où le protocole hybride ARQ 215 est mis en oeuvre en dehors d'un contexte de tunnellisation, la couche de pont 240 et l'interface virtuelle 245 sont désactivés. Dans ce cas, la couche applicative 200 représente n'importe quelle couche applicative selon le modèle OSI, c'est-à-dire, par exemple, des applications classiques du type HTTP, FTP, etc... Ainsi, le protocole hybride ARQ 215 peut s'appliquer à toute communication depuis un premier dispositif vers un second dispositif. La figure 3 présente un exemple de format d'une trame Ethernet 360, transitant par exemple sur le premier réseau LAN A 103 de la figure 1 entre la première tête de tunnel 101 et la passerelle domestique 105. Cette trame Ethernet 360 peut être transmise vers le second réseau LAN B 104 via Internet ou être reçue du second réseau LAN B 104 via Internet. Cette trame Ethernet 360 comprend un champ d'en-tête Ethernet 361, un premier datagramme IP 362 véhiculant lui-même un paquet tunnel 350 de niveau 2, et un champ FCS 363 (pour « Frame Check Sequence » en anglais, ou « séquence de contrôle de trame » en français). In a particular embodiment of the invention, there is provided a receiver device comprising means for managing a data stream transmitted by a transmitting device via a communication link, the data of the data stream being transmitted to the receiving device by use a transport protocol without data acknowledgment. The receiving device is such that it comprises: means for detecting a loss of data relating to a packet of parity data not received by the receiving device, parity data having been transmitted by the transmitting device by use of a transport protocol with acknowledgment and retransmission of data, the parity data having been generated from source data of said stream; means for verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received, as a function of at least one criterion applied to the source data of said stream used to generate the parity data of said non-received packet; means for canceling transmission to the transmitting device of a non-reception indication message by the receiving device of the parity data packet not received, said means for canceling being activated if the means for verifying detect that it is not necessary for the transmitting device to retransmit said parity data packet not received. Advantageously, the receiver device comprises means for implementing the steps of the management method as described above, in one of its various embodiments. 5. LIST OF FIGURES Other features and advantages of the invention will appear on reading the following description, given by way of indicative and nonlimiting example, and the appended drawings, in which: FIG. 1 schematically illustrates a configuration of a virtual private network for the implementation of the invention according to a particular embodiment; FIG. 2 schematically illustrates an exemplary layered model of a tunnel head in which the method according to a particular embodiment is implemented; FIG. 3 schematically illustrates an exemplary format of an Ethernet frame carrying a level 2 tunnel packet; - Figure 4 schematically illustrates the functional blocks of a transmitter block included in a tunnel head, according to a particular embodiment of the invention; FIG. 5 diagrammatically illustrates the functional blocks of a receiver unit included in a tunnel head, according to a particular embodiment of the invention; FIG. 6 represents a flow diagram of a data retransmission management algorithm according to a particular embodiment of the method according to the invention, implemented by the receiver block of FIG. 5; FIG. 7 illustrates an example of data packet formats exchanged between two tunnel heads; FIG. 8 schematically illustrates an example of a storage table managed by a flow scheduler (included in the receiver block of FIG. 5); FIG. 9A represents a flowchart of an algorithm for transmitting a data stream according to a particular embodiment of the method according to the invention, implemented by the transmitter block of FIG. 4; FIG. 9B shows a particular embodiment of an algorithm implemented within a marking module (included in the transmitter block of FIG. 4); and FIG. 9C shows a particular embodiment of an algorithm implemented within a filtering module (included in the receiver block of FIG. 5). 6. DETAILED DESCRIPTION In the remainder of the description, one places oneself in the case where the communication network implements a communication link which is a tunnel, enabling sending and receiving devices to exchange multimedia data. Of course, the present solution can be applied to any other type of communication link between transmitter and receiver devices, for example transmitting and receiving devices communicating on the same LAN ("Local Area Network" in English). For the sake of simplification of the description, it will be considered later that the length of the packets of parities generated is equal to the value MSS (for "Maximum 30 Segment Size" in English) of the TCP carrier. It is recalled that the MSS parameter 10 corresponds to the largest amount of useful data that can be supported by a single TCP segment. FIG. 1 diagrammatically illustrates, according to a particular embodiment of the invention, a virtual private network (VPN) configuration implementing a tunnel 100 of communication between a first local tunnel head 101 and a second remote tunnel head 102, through a communication network 107, such as the Internet for example. This tunnel 100 interconnects a first communication network 103 and a second communication network 104, also called respectively LAN A 103 and LAN B 104. The first LAN A 103 and the second LAN B 104 each have an Internet access equipment. broadband gateway type home Internet (or "Home Gateway" in English) (referenced respectively 105 and 106), which can incorporate a firewall (or "Firewall" in English) (referenced respectively 105a and 106a), type of equipment PC 109 and 111 servers 110 and 113 for storing and sharing digital media (audio, video, photo), as well as digital media playback equipment 108 and 112. A tunnel head can be a piece of equipment dedicated (as shown in Figure 1) or be integrated into an audiovisual equipment such as a digital TV. It can also be present in a PC-type equipment in the form of a program performing the functions associated therewith. Once the tunnel 100 has been established, the devices 108, 109, and 110, connected to the first LAN A 103, are capable of communicating with the devices 111, 112 and 113 connected to the second LAN B 104. For example, the client local 108 connected to the first LAN A 103 network may communicate, in a transparent manner, with the local server 113 connected to the second LAN B network 104. In this Figure 1 is shown a simple communication network with a single tunnel, but it is of course that one and the same LAN can have several tunnel heads and / or that the same tunnel end can manage several tunnels (to as many tunnel heads) to interconnect a first LAN to several other networks LAN. In addition, for the sake of simplification, infrastructure equipment in the Internet network such as Internet routers has not been represented. With reference to FIG. 2, the path of an Ethernet frame originating from one of the devices 108, 109, 110, connected to the first LAN A 103, and entering the tunnel 100 to be routed to second LAN B network 104. To do this, we use a layered model describing the protocol layers necessary for the implementation of this tunnel 100. In this model are not represented the protocol elements necessary for the functions other than the implementation. implementation of the tunnel. For example, the protocol elements associated with a UPnP architecture (for "Universal Plug and Play") are not represented when a first tunneling head 101 is integrated in a UPnP equipment. The first tunnel head 101 comprises an Ethernet physical interface 235 which delivers the Ethernet frames from the equipment 108, 109, 110 to the link layer 230 for routing: to the IP network layer 225, for the Ethernet frames to the equipment. with the tunnel end, or towards the bridge layer 240, for the other Ethernet frames. The bridge layer 240 performs the typical operations of an Ethernet bridge such as filtering the Ethernet frames and relaying these frames to the appropriate output Ethernet port (s). On the bridge are attached an Ethernet interface 230 and at least one virtual interface 245 simulating an Ethernet controller. A virtual interface 245 is created for each tunnel instantiated by the application 200 to which it delivers the Ethernet frames that must pass on the tunnels respectively instantiated. In a general manner, the encapsulation protocol of the tunnel represented by the application 200 carries out the operations necessary for the implementation of each tunnel, among which we find in particular the configuration, the filtering and the encapsulation, it is ie the formation of a tunnel packet, and the extraction of a frame. In a particular embodiment, the application 200 implements steps of the method according to the invention which are detailed hereinafter in relation to FIGS. 6 and 9 (A, B, C). The frames received from the virtual interface 245, after processing by the application 200, are delivered in the form of a packet through an application interface 205 (or "socket" in English) to a reliable transport protocol TCP 210 or unreliable UDP 220. In the case where the reliable TCP transport protocol 210 is selected, the Ethernet frames are directed to the ARQ hybrid tunnel protocol 215. The ARQ hybrid name is used to designate a protocol using both a retransmission mechanism ARQ type, and error correction mechanisms such as sending parity packets (using, for example, a Reed-Solomon protocol) for reconstructing lost or errored packets. After processing by a transport protocol to form a tunnel packet, it is transmitted to the network layer 225. The IP datagram thus formed with the tunnel packet can then be transmitted over the LAN through the connection layers 230 and the physical layer 235. , to then be transmitted over the Internet through the gateway 105. The reception of a frame from the tunnel 100 will follow in the tunnel head 101 the reverse path to that presented above. Note that in the case where the ARQ hybrid protocol 215 is implemented outside a tunneling context, the bridge layer 240 and the virtual interface 245 are deactivated. In this case, the application layer 200 represents any application layer according to the OSI model, that is to say, for example, conventional applications of the HTTP, FTP, etc. type. Thus, the hybrid protocol ARQ 215 can apply to any communication from a first device to a second device. FIG. 3 shows an exemplary format of an Ethernet frame 360, for example passing over the first LAN A 103 of FIG. 1 between the first tunneling head 101 and the home gateway 105. This Ethernet frame 360 can be transmitted to the second LAN B network 104 via the Internet or to be received from the second LAN B 104 network via the Internet. This Ethernet frame 360 comprises an Ethernet header field 361, a first IP datagram 362 itself carrying a level 2 tunneling packet 350, and an FCS field 363 (for "Frame Check Sequence" in English, or "sequence frame control "in French).

Le paquet tunnel 350 comporte quatre parties : - un champ d'en-tête du protocole de transport 351 (à savoir TCP ou UDP dans cet exemple) ; - un champ d'en-tête du protocole d'encapsulation 352 (à savoir L2TP dans cet exemple, qui est décrit notamment dans le document suivant : « IETF RFC- 3931, "Layer two tunneling protocol û version 3 (L2TPv3)", J. Lau and ail, March 2005 » ; - un champ d'en-tête du protocole embarqué 353 (à savoir Ethernet dans cet exemple) ; et - un champ de données utiles 354, qui comporte un second datagramme IP complet si aucune fragmentation n'a été opérée lors de son transit depuis l'équipement source. La figure 4 illustre schématiquement les blocs fonctionnels d'un bloc émetteur compris dans les têtes de tunnel selon un mode de réalisation de l'invention. The tunnel packet 350 comprises four parts: a header field of the transport protocol 351 (namely TCP or UDP in this example); a header field of the encapsulation protocol 352 (namely L2TP in this example, which is described in particular in the following document: "IETF RFC-3931," Layer two tunneling protocol - version 3 (L2TPv3) ", J. Lau and ail, March 2005 "- an embedded protocol header field 353 (i.e. Ethernet in this example), and - a payload field 354, which includes a second full IP datagram if no fragmentation has been operated during its transit from the source equipment .. Figure 4 schematically illustrates the functional blocks of a transmitter block included in the tunnel heads according to one embodiment of the invention.

Chaque tête de tunnel (TEP) 101 ou 102 comprend un bloc émetteur 410 permettant l'émission de données via le tunnel 100 multi-transport (c'est-à-dire via un tunnel comprenant plusieurs porteuses utilisant chacune un protocole de transport, comme par exemple une porteuse TCP 100A et une porteuse UDP 100B). Les différentes couches protocolaires présentées en relation avec la figure 2 sont représentées ici de manière simplifiée, dans un souci de lisibilité de la représentation. De même, les passerelles 105 et 106 sont omises. De plus, les flux de données transportés via le tunnel 100, mais auxquels aucune donnée de correction d'erreur n'est adjointe dans le cadre du mode de réalisation particulier de l'invention, ne sont pas représentés (c'est le cas par exemple pour les flux intégralement transmis sur la porteuse UDP 100B sans transmission de données de redondance (ou de parité) sur la porteuse TCP 100A). La description suivante porte uniquement sur la transmission d'un flux de données 401 via le tunnel 100, depuis la tête de tunnel 101 vers la tête de tunnel 102. Une description analogue s'applique pour une transmission de flux, dans le sens inverse, c'est-à-dire depuis la tête de tunnel 102 vers la tête de tunnel 101. Each tunnel end (PET) 101 or 102 includes a transmitter block 410 for transmitting data via the multi-transport tunnel 100 (i.e. via a tunnel comprising a plurality of carriers each using a transport protocol, such as for example a TCP 100A carrier and a UDP carrier 100B). The different protocol layers presented in relation to FIG. 2 are represented here in a simplified manner, for the sake of legibility of the representation. Similarly, gateways 105 and 106 are omitted. In addition, the data flows conveyed via the tunnel 100, but to which no error correction data is added in the context of the particular embodiment of the invention, are not represented (this is the case by way of example). example for the streams integrally transmitted on the carrier UDP 100B without transmission of data of redundancy (or of parity) on the carrier TCP 100A). The following description relates only to the transmission of a data stream 401 via the tunnel 100, from the tunnel head 101 to the tunnel head 102. A similar description applies for a flow transmission, in the opposite direction, that is to say from the tunnel head 102 to the tunnel head 101.

Il convient aussi de noter qu'un seul flux 401 de données, transporté via le tunnel 100 depuis la tête de tunnel 101 vers la tête de tunnel 102, est considéré pour les besoins illustratifs. Cependant, plusieurs flux semblables au flux 401 peuvent simultanément bénéficier des avantages de la présente invention. Le bloc émetteur 410 de la tête de tunnel 101 reçoit en entrée un flux 401, en provenance du réseau LAN A 103, et est en charge de transporter les données de ce flux 401 via le tunnel 100, en tirant profit des porteuses TCP 100A et UDP 100B. Dans la suite de la description, le transport d'un flux 401 est effectué via la porteuse UDP 100B et le transport de données de parité associées à ce flux 401 est effectué via la porteuse TCP 100A. Dans le mode de réalisation illustré par la figure 4, le bloc émetteur 410 de la tête de tunnel 101 comprend les éléments suivants : - un module décisionnaire 412, en charge de déterminer des paramètres d'un code correcteur d'erreur (ou paramètres d'encodage de parité). Les paramètres du code correcteur d'erreur sont un nombre M de paquets de parité générés pour un nombre K de paquets du flux 401. Dans un premier mode de réalisation particulier (décrit en détail ci-après), le code correcteur d'erreur est un code de type Reed-Solomon appliqué au niveau paquet. Dans un second mode de réalisation particulier (décrit en détail ci-après), le code correcteur d'erreur est un code basé sur une utilisation de OU-EXCLUSIFs (XORs) appliqué au niveau paquet. Le module décisionnaire 412 est en charge d'aiguiller chacun des paquets du flux 401 du réseau LAN 103 vers l'une des porteuses du tunnel 100 ; - un module d'encodage 415, en charge de générer (ou encoder) des paquets de parité à partir du flux 401 selon les paramètres du code correcteur d'erreur déterminés par le module décisionnaire 412 ; - des empaqueteurs 413 et 414, chacun dédié à une porteuse du tunnel 100, en charge d'encapsuler les données issues du module d'encodage 415 ; - un port d'interface 411, représentant la couche réseau IP 225 ; - un module de marquage 416, en charge de valoriser un champ « PCL » (pour « Parity Code Localization ») contenu dans un paquet de parité 750, dont le format est décrit en détail ci-après en relation avec la figure 7. It should also be noted that only one data stream 401, transported through tunnel 100 from tunnel head 101 to tunnel head 102, is considered for illustrative purposes. However, several flow-like streams 401 can simultaneously benefit from the advantages of the present invention. The transmitter block 410 of the tunnel head 101 receives as input a stream 401, originating from the LAN network A 103, and is in charge of transporting the data of this stream 401 via the tunnel 100, taking advantage of the TCP 100A carriers and UDP 100B. In the rest of the description, the transport of a stream 401 is carried out via the UDP carrier 100B and the parity data transport associated with this stream 401 is carried out via the TCP 100A carrier. In the embodiment illustrated in FIG. 4, the transmitter block 410 of the tunnel head 101 comprises the following elements: a decision-making module 412, in charge of determining parameters of an error correction code (or parameters); 'parity encoding). The parameters of the error correction code are a number M of parity packets generated for a number K of packets of the stream 401. In a first particular embodiment (described in detail below), the error correction code is a Reed-Solomon type code applied at the packet level. In a second particular embodiment (described in detail below), the error correction code is a code based on an application of EXCLUSIVE OR (XORs) applied at the packet level. The decision-making module 412 is in charge of routing each of the packets of the stream 401 of the LAN 103 to one of the carriers of the tunnel 100; an encoding module 415, in charge of generating (or encoding) parity packets from the stream 401 according to the parameters of the error correction code determined by the decision-making module 412; packagers 413 and 414, each dedicated to a carrier of the tunnel 100, in charge of encapsulating the data coming from the encoding module 415; an interface port 411 representing the IP network layer 225; a marking module 416, in charge of valuing a "PCL" field (for "Parity Code Localization") contained in a parity packet 750, the format of which is described in detail below in relation with FIG. 7.

Le module décisionnaire 412 comprend un récepteur de statistiques (non représenté) recevant des informations relatives à des conditions de transmission via le tunnel 100, et permettant au module 412 de déterminer les paramètres du code correcteur d'erreur nécessaire à l'encodage des paquets de parité. Ces statistiques obtenues permettent de déterminer la proportion de données de parité à émettre pour rendre le flux a priori robuste aux pertes. Le fonctionnement d'un tel récepteur de statistiques est notamment décrit dans le document de brevet EP 2,020,799. Le module d'encodage 415 effectue un encodage sur un premier ensemble de K paquets du flux 401 (appelé par la suite fenêtre d'encodage de taille K) afin d'obtenir un second ensemble de M paquets de parité. Il est à noter que, dans un mode de réalisation particulier de l'invention, le module d'encodage 415 agit au niveau paquet (« at packet level » en anglais), c'est-à-dire que la taille considérée pour l'encodage et le décodage de parité correspond à la taille des données utiles véhiculées via les porteuses du tunnel 100. On obtient alors un nombre N total de paquets, tel que N = M + K, à transmettre via le tunnel 100. Le module décisionnaire 412 aiguille ensuite les M paquets de parité vers la porteuse TCP 100A via l'empaqueteur 413 et les K paquets issus du flux 401 vers la porteuse UDP 100B via l'empaqueteur 414. Ainsi l'émission des paquets du flux 401 via la porteuse UDP 100B du tunnel est fiabilisée par l'émission de paquets de parité via la porteuse TCP 100A du tunnel. Dans un mode de réalisation particulier de l'invention, les paquets du flux 401 ont une taille MTU (pour « Maximum Transmission Unit » en anglais) permettant une insertion directe des paquets de données constitués dans le champ de données utiles 354 (décrit en relation avec la figure 3) lors de l'encapsulation pour transport sur la porteuse UDP 100B. Dans le cas où le module décisionnaire 412 utilise un code correcteur d'erreur de type Reed-Solomon appliqué au niveau paquet, le codage est effectué à l'aide d'une matrice. Les K paquets issus du flux 401 sont rangés de telle sorte que chacun d'eux forme une colonne de la matrice, chaque élément de la matrice représentant alors un symbole. Un code correcteur d'erreur de type Reed-Solomon C(N, K) est ensuite appliqué sur chaque ligne de la matrice pour gérer au moins un symbole (selon le code C(N,K) appliqué) de parité. On obtient alors une matrice (ou un vecteur selon le code C(N,K) appliqué) de symboles de parité, chaque colonne formant un paquet de parité. De manière réciproque, l'opération de décodage s'effectue en rangeant les paquets reçus de manière à ce que chacun d'eux forme une colonne de la matrice, chaque élément de la matrice représentant alors un symbole reçu. Un décodage de type Reed-Solomon, correspondant au code C(N,K) appliqué, est ensuite appliqué sur chaque ligne de la matrice, de manière à obtenir une matrice résultante comprenant les symboles originaux. The decision module 412 comprises a statistics receiver (not shown) receiving information relating to transmission conditions via the tunnel 100, and allowing the module 412 to determine the parameters of the error correction code necessary for the encoding of the packets. parity. These statistics obtained make it possible to determine the proportion of parity data to be sent to make the flow a priori robust to losses. The operation of such a receiver of statistics is described in particular in patent document EP 2,020,799. The encoding module 415 encodes a first set of K packets of the stream 401 (hereinafter referred to as the K-size encoding window) to obtain a second set of M parity packets. It should be noted that, in a particular embodiment of the invention, the encoding module 415 acts at the packet level ("at packet level" in English), that is to say that the size considered for the encoding and parity decoding corresponds to the size of the useful data conveyed via the carriers of the tunnel 100. This gives a total number N of packets, such as N = M + K, to be transmitted via the tunnel 100. The decision module 412 then hands the M parity packets to the TCP 100A carrier via the packager 413 and the K packets from the stream 401 to the UDP carrier 100B via the packager 414. Thus the transmission of the packets of the stream 401 via the UDP carrier 100B of the tunnel is made reliable by the transmission of parity packets via the TCP 100A carrier of the tunnel. In a particular embodiment of the invention, the packets of the stream 401 have a MTU size (for "Maximum Transmission Unit" in English) allowing direct insertion of the data packets formed in the payload field 354 (described in relation with Figure 3) during encapsulation for transport on the UDP 100B carrier. In the case where the decision module 412 uses a Reed-Solomon error correction code applied at the packet level, the coding is performed using a matrix. The K packets from the stream 401 are arranged in such a way that each of them forms a column of the matrix, each element of the matrix then representing a symbol. A Reed-Solomon C error correction code (N, K) is then applied to each row of the matrix to manage at least one symbol (according to the C (N, K) applied) of parity. A matrix (or a vector according to the applied C (N, K) code) of parity symbols is then obtained, each column forming a parity packet. Reciprocally, the decoding operation is performed by arranging the received packets so that each of them forms a column of the matrix, each element of the matrix then representing a received symbol. A Reed-Solomon type decoding, corresponding to the C (N, K) code applied, is then applied to each row of the matrix, so as to obtain a resulting matrix comprising the original symbols.

Les K paquets de la fenêtre d'encodage forment les colonnes de la matrice résultante. Dans le cas où le module décisionnaire 412 utilise des fonctions de OUEXCLUSIFs (XORs) pour la construction d'un paquet de parité, les K paquets du flux 401 sont combinés de la manière suivante : - soit « pl,p2,...,pK » les K paquets (de taille « m ») du flux 401 et « » la valeur du ième bit du paquet « pi » (avec j=1,...,k) ; - soit « r » le paquet de parité à construire et « r' » la valeur du ième bit du paquet de parité ; - alors : K r1 = p~ (mod 2)Vi E 1,.., m} j=1 Ainsi, il suffit d'effectuer la somme bit à bit sur les K paquets reçus pour récupérer le paquet perdu parmi les K+1 paquets. Une telle opération est simple à mettre en oeuvre sur du matériel (« hardware » en anglais) embarqué. Cette opération nécessite un cycle de traitement (ou cycle CPU pour « Central Processing Unit » en anglais) par mot de code émis, ce qui induit un temps de traitement très faible. The K packets of the encoding window form the columns of the resulting matrix. In the case where the decision-making module 412 uses functions of OUEXCLUSIFs (XORs) for the construction of a parity packet, the K packets of the stream 401 are combined in the following manner: either "pl, p2, ..., pK "K packets (size" m ") of the stream 401 and" "the value of the ith bit of the packet" pi "(with j = 1, ..., k); either "r" the parity packet to be built and "r" the value of the ith bit of the parity packet; - then: K r1 = p ~ (mod 2) Vi E 1, .., m} j = 1 Thus, it suffices to perform the bitwise sum on the K packets received to recover the lost packet among the K + 1 packs. Such an operation is simple to implement on hardware ("hardware" in English) embedded. This operation requires a processing cycle (or CPU cycle for "Central Processing Unit" in English) by transmitted code word, which induces a very low processing time.

La figure 5 illustre schématiquement les blocs fonctionnels d'un bloc récepteur compris dans les têtes de tunnel selon un mode de réalisation de l'invention. Chaque tête de tunnel 101 ou 102 comprend un bloc récepteur 420 permettant la réception de données via le tunnel 100. Le bloc récepteur 420 de la tête de tunnel 102 reçoit les données depuis le tunnel 100, et restitue, sur le réseau LAN B 104, un flux 402 de données correspondant au flux 401 original (par exemple, le flux 402 est identique au flux 401 s'il n'y a pas eu de perte sur Internet. Dans le mode de réalisation illustré par la figure 5, le bloc récepteur 420 de la tête de tunnel 102 comprend les éléments suivants : - un port d'interface 411, représentant la couche réseau IP 225, sur lequel sont reçus les paquets encapsulés émis par le dispositif émetteur 101 ; - des dé-paqueteurs 421 et 422 chacun dédié à une porteuse du tunnel 100, en charge de dés-encapsuler les données en provenance du tunnel 100 ; - une unité de stockage temporaire 423, en charge de réordonner les données du flux 401 et d'y associer les données de parité reçues, grâce aux formats de paquets de données décrits ci-après en relation avec la figure 7. L'unité de stockage temporaire 423 permet de stocker temporairement les paquets reçus via les porteuses TCP 100A et UDP 100B. Ce stockage temporaire permet de laisser du temps aux paquets de parité associés à des paquets UDP pour être reçus via la porteuse TCP 100A. En effet, la porteuse TCP 100A a une latence plus importante que la porteuse UDP 100B, et les paquets de parité sont émis après l'émission sur la porteuse UDP 100B des paquets de donnée de la fenêtre d'encodage correspondante. De plus, ce stockage temporaire est utilisé par un ordonnanceur de flux 425 (décrit ci-dessous) pour garantir une faible variation de la latence ou gigue (« jitter » en anglais) pour les flux transmis via la porteuse UDP 100B. Enfin, ce stockage temporaire des paquets TCP de données (sans parité) permet à l'ordonnanceur 425 d'offrir une priorité d'émission plus importante aux paquets UDP ; - un régénérateur de trame 424, en charge de reconstituer les trames du flux 402 obtenu en sortie du tunnel, à partir des données du flux 401 transmises via la porteuse UDP 100B et des données de parité transmises via la porteuse TCP 100A et stockées dans l'unité de stockage temporaire 423. Le régénérateur de trame 424 comprend un module correcteur 4241, en charge de reconstituer les paquets de données du flux 401 malgré les pertes de données survenues lors de la transmission via le tunnel 100, et ce, en fonction de la fenêtre d'encodage (paramètres du code correcteur d'erreur) déterminée par le module décisionnaire 412. Les paramètres du code correcteur d'erreur appliqué sont communs et connus du module d'encodage 415 et du régénérateur de trame 424. Ceux-ci peuvent être prédéfinis et stockés en mémoire morte, ou bien échangés entre les blocs émetteur 410 et récepteur 420, par exemple dans une session de contrôle ; 5 10 15 20 25 30 - un module de gestion de retransmission de trame 426 comprenant les éléments suivants : o un module de filtrage de paquet TCP 4261 (par la suite dénommé filtre TCP 4261), en charge de : • pour les paquets issus de la couche TCP 210, et à destination du port d'interface 411, déterminer si un (paquet d')acquittement est représentatif d'une perte de donnée, et de potentiellement supprimer un tel acquittement selon des conditions déterminées par un module d'optimisation de retransmission 4262 (décrit ci-dessous) ; • pour les paquets issus du port d'interface 411 et à destination de la couche TCP 210, localiser le numéro de séquence TCP transportant une donnée de parité, et de mettre à jour une table d'index 4264. Pour cela, suite à la réception d'un message TCP du type de celui décrit à la figure 7, le filtre TCP 4261 renseigne la table d'index 4264 avec : • des associations entre numéros de séquence TCP et numéro de fenêtre d'encodage SBN (pour « Source Block Number ») ; • des associations entre numéros de séquence TCP et présence d'une donnée de parité ; o le module d'optimisation de retransmission 4262 est chargé de déterminer en fonction d'informations issues de l'ordonnanceur 425, de la table d'index 4264 et de l'unité de stockage temporaire 423, si une retransmission de donnée de parité est utile ou pas. Dans le cas où cette retransmission s'avérerait inutile, le module d'optimisation 4262 contrôle le filtrage des acquittements dupliqués « DUP ACK » (via le filtre TCP 4261), et commande la génération d'un paquet fictif, permettant d'éviter de bloquer la porteuse TCP. On entend par paquet fictif un paquet dont le numéro de séquence et la taille, correspondent au paquet TCP de parité perdu, et contenant des données de bourrage. En effet, lorsqu'un paquet est perdu, il bloque la porteuse, car tant que ce paquet n'est pas reçu, aucun autre paquet ne sera transmis par le dispositif récepteur ; 10 15 20 25 30 o un module générateur de paquet TCP 4263 en charge de générer et transmettre un paquet fictif (tel que défini ci-dessus). Comme on le verra ci-après avec la figure 7, un paquet fictif possède un drapeau « F » (pour « Flag FEC ») à 1, ce qui signifie que le paquet considéré est un paquet de parité, et des champs « SBN » (pour « Source Block Number ») et « ESI » (pour « Encoding Symbol Identifier ») à 0. Un tel paquet fictif contient un champ de données utiles rempli de données de bourrage (« padding data » an anglais), nécessaires pour garantir la bonne longueur de la trame ; o l'ordonnanceur de flux 425 est responsable de l'émission de données sur le réseau LAN 104, en fonction des paquets issus des porteuses TCP et UDP. Les flux transportés par la porteuse UDP, ayant une forte contrainte de temps, sont émis sur le réseau LAN B 104 avec régularité, et sans latence excessive. Les paquets TCP sont émis lorsque l'ordonnanceur peut le faire sans pénaliser les flux UDP. Par exemple, pour des flux 401 et 402 de type RTP, le marquage temporel (« timestamp » en anglais) compris dans le paquet RTP est utilisé pour effectuer le cadencement du flux 402 par l'ordonnanceur 425, de façon à maintenir une gigue (« jitter» en anglais) quasi-nulle, c'est-à-dire un délai inter-paquet quasi-constant. On peut également utiliser un intervalle de temps constant prédéfini. Si au moment où un paquet doit être émis, pour garantir une gigue nulle, celui-ci n'est pas disponible, la donnée est considérée comme périmée, et le premier paquet disponible pour ce flux est émis (le premier paquet étant le paquet dont la date de péremption est la plus proche de la date courante). Lorsque le dernier paquet d'une fenêtre d'encodage (correspondant à un numéro SBN de fenêtre d'encodage) est émis (ou périmé), toutes les informations de péremption associées aux paquets de cette fenêtre d'encodage sont supprimées de la table de stockage 800 de l'ordonnanceur et les informations d'une nouvelle fenêtre d'encodage sont pré-renseignées. Ces opérations de suppression et de pré renseignement sont décrites en détail ci-après en relation avec la figure 8. FIG. 5 diagrammatically illustrates the functional blocks of a receiver unit included in the tunnel heads according to one embodiment of the invention. Each tunnel head 101 or 102 includes a receiver block 420 for receiving data via the tunnel 100. The receiver block 420 of the tunnel head 102 receives the data from the tunnel 100, and restores, on the LAN B 104 network, a stream 402 of data corresponding to the original stream 401 (for example, the stream 402 is identical to the stream 401 if there has been no loss on the Internet) In the embodiment illustrated in FIG. 420 of the tunneling head 102 comprises the following elements: an interface port 411, representing the IP network layer 225, on which the encapsulated packets transmitted by the transmitting device 101 are received, deblockers 421 and 422 each. dedicated to a carrier of the tunnel 100, in charge of de-encapsulating the data coming from the tunnel 100: a temporary storage unit 423, responsible for reordering the data of the stream 401 and for associating therewith the received parity data, thanks to data packet formats described below in connection with FIG. 7. The temporary storage unit 423 makes it possible to temporarily store the packets received via the TCP 100A and UDP 100B carriers. This temporary storage allows time for parity packets associated with UDP packets to be received via the TCP 100A carrier. Indeed, the TCP 100A carrier has a higher latency than the UDP carrier 100B, and the parity packets are issued after the transmission on the UDP 100B carrier data packets of the corresponding encoding window. In addition, this temporary storage is used by a stream scheduler 425 (described below) to ensure a small variation in latency or jitter (jitter) for the streams transmitted via the UDP 100B carrier. Finally, this temporary storage of TCP data packets (without parity) allows the scheduler 425 to offer a higher transmission priority to the UDP packets; a frame regenerator 424, in charge of reconstructing the frames of the stream 402 obtained at the output of the tunnel, from the data of the stream 401 transmitted via the UDP carrier 100B and parity data transmitted via the TCP 100A carrier and stored in the 423. The frame regenerator 424 comprises a correction module 4241, in charge of reconstructing the data packets of the stream 401 despite the data losses occurring during the transmission via the tunnel 100, and this, depending on the encoding window (parameters of the error correction code) determined by the decision-making module 412. The parameters of the error correction code applied are common and known to the encoding module 415 and the frame regenerator 424. These can be predefined and stored in read-only memory, or exchanged between the transmitter 410 and receiver 420 blocks, for example in a control session; A frame retransmission management module 426 comprising the following elements: a TCP packet filter module 4261 (hereinafter referred to as TCP filter 4261), in charge of: for the packets originating from the TCP layer 210, and to the interface port 411, determine if a (packet of) acknowledgment is representative of a loss of data, and potentially delete such an acknowledgment according to conditions determined by an optimization module retransmission 4262 (described below); For the packets coming from the interface port 411 and destined for the TCP layer 210, locating the TCP sequence number carrying a piece of parity data, and updating a index table 4264. For this, following the receiving a TCP message of the type described in FIG. 7, the TCP filter 4261 informs the index table 4264 with: • associations between TCP sequence numbers and SBN encoding window number (for "Source Block Number "); • associations between TCP sequence numbers and the presence of parity data; the retransmit optimization module 4262 is responsible for determining according to information from the scheduler 425, the index table 4264 and the temporary storage unit 423, if a retransmission of parity data is useful or not. In the event that this retransmission proves to be useless, the optimization module 4262 controls the filtering of the duplicated acknowledgments "DUP ACK" (via the TCP filter 4261), and controls the generation of a fictitious packet, making it possible to avoid block the TCP carrier. A dummy packet is a packet whose sequence number and size correspond to the lost parity TCP packet, and contains stuffing data. Indeed, when a packet is lost, it blocks the carrier because until this packet is not received, no other packet will be transmitted by the receiving device; A TCP packet generator module 4263 in charge of generating and transmitting a dummy packet (as defined above). As will be seen below with FIG. 7, a dummy packet has a flag "F" (for "Flag FEC") at 1, which means that the packet considered is a parity packet, and "SBN" fields. (for "Source Block Number") and "ESI" (for "Encoding Symbol Identifier") to 0. Such a fictitious package contains a useful data field filled with padding data (English padding data), necessary to guarantee the correct length of the frame; the flow scheduler 425 is responsible for the transmission of data on the LAN 104, based on the packets from the TCP and UDP carriers. The flows transported by the UDP carrier, having a strong time constraint, are transmitted on the B 104 LAN network regularly, and without excessive latency. TCP packets are issued when the scheduler can do this without penalizing the UDP streams. For example, for streams 401 and 402 of the RTP type, the time stamp ("timestamp" in English) included in the packet RTP is used to effect the timing of the stream 402 by the scheduler 425, so as to maintain a jitter ( "Jitter" in English) quasi-zero, that is to say an inter-packet delay quasi-constant. It is also possible to use a predefined constant time interval. If at the moment when a packet has to be sent, to guarantee zero jitter, it is not available, the data is considered out of date, and the first packet available for this stream is sent (the first packet being the packet of which the expiry date is closest to the current date). When the last packet of an encoding window (corresponding to an encoding window SBN number) is sent (or out of date), all the expiry information associated with the packets of this encoding window are deleted from the encoding window. 800 storage of the scheduler and the information of a new encoding window are pre-filled. These deletion and pre-intelligence operations are described in detail below in connection with FIG. 8.

Dans la suite du document, les algorithmes d'un mode de réalisation de l'invention sont décrits selon une mise en place sur une tête de tunnel 101 ou 102. Le bloc émetteur 410 et le bloc récepteur 420, compris dans chaque tête de tunnel, se réalisent chacun indifféremment : • sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontrôleur) exécutant un programme comprenant une séquence d'instructions, ou • sur une machine de calcul dédiée (par exemple un ensemble de portes logiques comme un FPGA ou un ASIC). In the rest of the document, the algorithms of one embodiment of the invention are described according to an implementation on a tunnel head 101 or 102. The transmitter block 410 and the receiver block 420, included in each tunnel head , each are carried out indifferently: • on a reprogrammable calculation machine (a PC computer, a DSP processor or a microcontroller) executing a program comprising a sequence of instructions, or • on a dedicated computing machine (for example a set of doors as an FPGA or an ASIC).

Dans le cas d'une réalisation d'un module (bloc émetteur ou récepteur) sur une machine de calcul reprogrammable, le programme correspondant (c'est-à-dire la séquence d'instructions) pourra être stocké dans un médium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non amovible, ce médium de stockage étant lisible partiellement ou totalement par un ordinateur ou un processeur. La figure 6 représente un organigramme d'un algorithme de gestion de retransmission de données selon un mode de réalisation particulier du procédé selon l'invention, mis en oeuvre par le bloc récepteur 420 de la tête de tunnel 102. Dans ce mode de réalisation particulier, le bloc récepteur 420 stocke le numéro de séquence du paquet de données TCP du dernier acquittement (provenant de la couche TCP 210), noté « L_ACK » par la suite. Le bloc récepteur 420 stocke également une valeur de comptage « Nb_Ack » fournie par un compteur en charge de compter les messages d'acquittement interceptés par le bloc récepteur 420. Comme on le verra ci-après, ce nombre « Nb_Ack » permet de déterminer si un acquittement courant est significatif d'une perte de données véhiculées sur la porteuse TCP 100A. Le bloc récepteur 420 effectue les étapes de l'algorithme de la figure 6 (décrites ci-dessous), chaque fois que le filtre TCP 4261 intercepte un message d'acquittement (aussi appelé par la suite acquittement courant) d'un paquet de données TCP reçu. Ce message d'acquittement provient de la couche TCP 210. In the case of an embodiment of a module (transmitter or receiver block) on a reprogrammable calculation machine, the corresponding program (that is to say the sequence of instructions) can be stored in a removable storage medium (Such as for example a floppy disk, a CD-ROM or a DVD-ROM) or non-removable, this storage medium being partially or completely readable by a computer or a processor. FIG. 6 represents a flowchart of a data retransmission management algorithm according to a particular embodiment of the method according to the invention, implemented by the receiver block 420 of the tunnel head 102. In this particular embodiment , the receiver unit 420 stores the sequence number of the TCP data packet of the last acknowledgment (from the TCP layer 210), denoted "L_ACK" thereafter. The receiver unit 420 also stores a count value "Nb_Ack" supplied by a counter responsible for counting the acknowledgment messages intercepted by the receiver unit 420. As will be seen below, this number "Nb_Ack" makes it possible to determine whether a current acknowledgment is significant of a loss of data carried on the TCP 100A carrier. The receiver block 420 performs the steps of the algorithm of FIG. 6 (described below), each time the TCP filter 4261 intercepts an acknowledgment message (also hereinafter called current acknowledgment) of a data packet. TCP received. This acknowledgment message comes from the TCP layer 210.

A l'étape 610, un test est effectué pour déterminer si l'acquittement courant est un acquittement dupliqué « DUP ACK ». Pour cela, on vérifie si l'acquittement courant a déjà été émis par le récepteur. Plus précisément, si le numéro de séquence du paquet de données TCP de l'acquittement courant est différent du numéro de séquence L_ACK du paquet de données TCP du dernier acquittement, alors l'acquittement courant n'est pas un acquittement dupliqué DUP ACK, et on passe à l'étape 680. En revanche, si l'acquittement courant est un acquittement dupliqué DUP ACK, alors la valeur de comptage Nb_Ack est incrémentée d'une unité, puis on passe à l'étape 620. A l'étape 620, un test est effectué pour déterminer si l'acquittement courant (qui est donc un acquittement dupliqué DUP ACK) est significatif d'une perte de paquet TCP. Pour cela, à cette étape 620 la valeur de comptage Nb_Ack est comparée à une valeur de seuil, synonyme d'une perte (généralement cette valeur est égale à 3 dans les couches TCP standard). Si la valeur de comptage Nb_Ack est inférieure à la valeur de seuil, alors il n'y a pas de perte de paquet, et on passe à l'étape 690. Si la valeur de comptage Nb_Ack est supérieure ou égale à la valeur de seuil, alors il y a une perte de paquet, et on passe à l'étape 630. A l'étape 630, un test est effectué pour déterminer si le paquet perdu (et dans ce sens non reçu) est un paquet de parité, c'est-à-dire un paquet contenant des données de parité associées à des données sources du flux 401. Pour cela, on consulte la table d'index 4264. Cette table est mise à jour par le filtre TCP 4261 lors de la réception de données TCP. Si le paquet perdu est un paquet de parité, alors on passe à l'étape 640, sinon on passe à l'étape 690. A l'étape 640, la table d'index 4264 est analysée de façon à identifier les paquets UDP de la fenêtre d'encodage (chaque paquet UDP contenant des données sources du flux 401) qui est associé au paquet de parité perdu. Pour cela, la table 4264 est parcourue, afin de trouver l'enregistrement correspondant au numéro de séquence du paquet TCP perdu. Cet enregistrement contenant le numéro de la fenêtre d'encodage (SBN), cela permet d'identifier le paquet UDP associé. Ensuite, à cette même étape 640, l'unité de stockage temporaire 423 est analysée de façon à déterminer, parmi les paquets UDP de la fenêtre d'encodage identifiée, le nombre de paquet(s) UDP qui n'ont pas été reçus (aussi appelés par la suite paquets UDP manquants). Pour cela, l'unité de stockage 423 est interrogée (par exemple par parcours exhaustif de l'ensemble de ces enregistrements, rendu possible par le fait que cette zone de stockage temporaire ne contient qu'un nombre réduit d'enregistrements), pour obtenir la liste des paquets UDP, (identifiés lors de l'analyse de la table 4264), qui ont déjà été reçus et dépaquetées par le dé-paqueteur 421. Puis, l'étape 650 est effectuée. A l'étape 650, le bloc récepteur 420 détermine le temps restant avant que le paquet de parité perdu ne soit périmé. La date de péremption d'un paquet de parité est la date à laquelle le dernier des paquets UDP manquants (de la fenêtre d'encodage identifiée à l'étape 640) doit être émis sur le second réseau LAN B 104 par l'ordonnanceur 425. Cette information est obtenue en interrogeant la table de stockage 800 de l'ordonnanceur 425 (décrite en détail à la figure 8). On note qu'une fois cette date de péremption passée, si un paquet de parité correspondant à la fenêtre d'encodage identifiée est reçu, alors il ne sert plus à rien, car les paquets UDP manquants sont périmés. Dans ce cas, il est donc inutile de les reconstruire. A l'étape 660, un test est effectué pour déterminer si le paquet de parité perdu est utile ou pas. Pour qu'un paquet de parité soit utile, il faut que les deux conditions suivantes soient vérifiées : - la date de péremption du paquet de parité perdu (déterminée à l'étape 650) ne doit pas dépasser la date courante augmentée d'un temps de retransmission du paquet perdu. Ce temps de retransmission est égal à environ un temps RTT augmenté d'une valeur de sécurité paramétrable, par exemple, par l'utilisateur, ou généralement fixée à deux fois la valeur de la gigue constatée sur la porteuse TCP 100A. En effet, si une demande de retransmission d'un paquet est émise (sous forme de trois acquittements dupliqués DUP ACK) par le récepteur, alors dans le meilleur cas le récepteur recevra la retransmission après un temps RTT. En conséquence, si la date de péremption du paquet de parité perdu dépasse la date courante augmentée du temps de retransmission, ce paquet n'aura plus aucune utilité, car toutes les données sources du flux 401 associées à ce paquet 25 de parité auront été émises, ou ignorées (si elles sont périmées) par l'ordonnanceur 425 ; - le nombre de paquet(s) UDP manquant(s) doit être tel que le nombre de paquet(s) de parité déjà reçu(s) ne suffit pas à reconstituer tous les paquets manquants. Si les deux conditions précédentes sont vérifiées, alors la retransmission du paquet de parité non reçu est utile, et l'étape 690 est effectuée. Sinon, le module d'optimisation de retransmission 4262 empêche cette retransmission en effectuant l'étape 670. In step 610, a test is performed to determine whether the current acknowledgment is a duplicate "DUP ACK" acknowledgment. For this, it is checked whether the current acknowledgment has already been sent by the receiver. More specifically, if the sequence number of the TCP data packet of the current acknowledgment is different from the L_ACK sequence number of the TCP packet of the last acknowledgment, then the current acknowledgment is not a DUP ACK duplicate acknowledgment, and proceed to step 680. On the other hand, if the current acknowledgment is a duplicate acknowledgment DUP ACK, then the count value Nb_Ack is incremented by one unit, then step 620. At step 620 , a test is performed to determine whether the current acknowledgment (which is therefore a DUP ACK duplicate acknowledgment) is indicative of TCP packet loss. For this, at this step 620 the count value Nb_Ack is compared with a threshold value, synonymous with a loss (generally this value is equal to 3 in the standard TCP layers). If the count value Nb_Ack is less than the threshold value, then there is no packet loss, and proceed to step 690. If the count value Nb_Ack is greater than or equal to the threshold value then there is a packet loss, and proceed to step 630. In step 630, a test is performed to determine if the lost packet (and in this sense not received) is a parity packet, c. that is, a packet containing parity data associated with source data of the stream 401. For this, the index table 4264 is consulted. This table is updated by the TCP filter 4261 when it receives the data. TCP data. If the lost packet is a parity packet, then proceed to step 640, otherwise proceed to step 690. In step 640, the index table 4264 is parsed to identify the UDP packets of the encoding window (each UDP packet containing source data of stream 401) that is associated with the lost parity packet. For this, the table 4264 is traversed, in order to find the record corresponding to the sequence number of the TCP packet lost. This record contains the number of the encoding window (SBN), this makes it possible to identify the associated UDP packet. Then, at this same step 640, the temporary storage unit 423 is analyzed so as to determine, among the UDP packets of the identified encoding window, the number of UDP packets that have not been received ( also referred to as missing UDP packets). For this, the storage unit 423 is interrogated (for example by exhaustive browsing of all of these records, made possible by the fact that this temporary storage area contains only a small number of records), to obtain the list of UDP packets, (identified during the analysis of the 4264 table), which have already been received and unpacked by the de-packager 421. Then, the step 650 is performed. In step 650, the receiver block 420 determines the time remaining before the lost parity packet has expired. The expiry date of a parity packet is the date on which the last of the missing UDP packets (from the encoding window identified in step 640) is to be transmitted on the second LAN B 104 by the scheduler 425. This information is obtained by querying the storage table 800 of the scheduler 425 (described in detail in Figure 8). Note that once this expiry date has passed, if a parity packet corresponding to the encoding window identified is received, then it is no longer useful because the missing UDP packets are out of date. In this case, it is therefore useless to reconstruct them. In step 660, a test is performed to determine whether the lost parity packet is useful or not. For a parity packet to be useful, the following two conditions must be satisfied: - the expiry date of the lost parity packet (determined in step 650) must not exceed the current date plus a time retransmission of the lost packet. This retransmission time is equal to about an RTT time increased by a security value that can be parameterized, for example, by the user, or generally set at twice the value of the jitter found on the TCP 100A carrier. Indeed, if a request for retransmission of a packet is sent (in the form of three DUP ACK duplicate acknowledgments) by the receiver, then in the best case the receiver will receive the retransmission after a RTT time. Therefore, if the expiry date of the lost parity packet exceeds the current date plus the retransmission time, this packet will no longer be useful because all source data of stream 401 associated with this parity packet will have been issued. , or ignored (if out of date) by the scheduler 425; - the number of UDP packet (s) missing must be such that the number of parity packet (s) already received (s) is not sufficient to reconstruct all the missing packets. If both of the above conditions are true, then retransmission of the not received parity packet is useful, and step 690 is performed. Otherwise, the retransmit optimization module 4262 prevents this retransmission by performing step 670.

A l'étape 670, le paquet courant est modifié de manière à indiquer qu'il ne contient pas de numéro d'acquittement valide (pour ce faire, le bit ACK de l'entête TCP est mis à 0). Ensuite, le paquet modifié est envoyé vers le filtre TCP 4261, qui se charge de le transmettre vers le port d'interface 411. Il est à noter que lorsque le paquet TCP courant ne contient pas de données, mais seulement un acquittement, ce paquet est alors simplement détruit. Puis, à cette même étape 670, il est généré un paquet fictif (tel que défini ci-dessus). Ce paquet fictif est ensuite envoyé à la couche TCP 210. Ce paquet fictif contient des données de bourrage, il n'est donc pas utilisé par l'ordonnanceur 425. A l'étape 680, le numéro de séquence L_ACK est mis à jour avec le numéro de séquence du paquet de données TCP de l'acquittement courant, et la valeur de comptage Nb_Ack du compteur d'itération est remise à O. Puis, on passe à l'étape 690. A l'étape 690, le filtre TCP 4261 transmet vers le port d'interface 411 le paquet courant sans aucune modification. Ainsi, à cette étape 690, on émet un acquittement du paquet perdu. Il est à noter, que si les données de parité ne sont pas systématiquement alignées, alors l'utilisation d'une liste de numéros de séquence de début de donnée de parité permettrait de déterminer à l'étape 630 les paquets contenant des informations de parité complètes, ou la fin d'une information de parité. Cette liste de numéro de séquence des paquets TCP contenant des données de parité peut par exemple être envoyée en option de chaque paquet TCP. La longueur des données de parité étant connue (fixe), on peut alors en déduire par différence avec le numéro de séquence du dernier paquet reçu (déterminé par lecture de la table 4264, ou interrogation de la couche TCP 210), si le paquet perdu contient des infos de parité, et/ou des données applicatives (données autres que celles fournies par le protocole tunnel hybride ARQ 215). Ces paquets ne sont alors potentiellement pas retransmis. Dans ce cas, à l'étape 670, on modifie le paquet courant en indiquant dans le numéro de séquence d'acquittement, le numéro de séquence du premier octet de donnée du paquet perdu (égale au numéro de séquence de début de paquet de parité plus longueur, incrémentée de une unité, du paquet de parité). Puis, il est procédé à l'émission vers la couche supérieure, d'un paquet TCP avec le numéro de séquence du paquet perdu et d'une longueur correspondant à la taille des données de parité présentes dans le paquet perdu (différence entre le numéro de séquence du premier octet de donnée du paquet perdu, et le numéro de séquence du paquet perdu). La figure 7 illustre un exemple de formats de paquets de données échangés entre la tête de tunnel 101 et la tête de tunnel 102 via le tunnel 100. A titre d'exemple, une encapsulation de données selon le protocole L2TP (selon la norme RFC-3931) est utilisée. Le format des trames supportant une telle encapsulation peut être conservé pour toute communication mise en oeuvre en dehors d'un contexte de tunnellisation, c'est-à-dire que les données utiles transportées 723, 753 ne sont plus des trames Ethernet passagères mais des données applicatives locales. On note que, pour pouvoir appliquer un mécanisme de correction d'erreur de type FEC (pour « Forward Error Correction » en anglais), compatible entre un module d'encodage 415 et un module correcteur 4241, les paramètres du code correcteur d'erreur utilisés (notamment le paramètre K de nombre de paquets source dans une fenêtre d'encodage et le paramètre M de nombre de paquets de parité générés) sont échangés au préalable dans le cadre d'une session de contrôle du tunnel (non représentée). Dans un mode de réalisation particulier, la session de contrôle du tunnel multi-transport est établie sur la porteuse TCP 100A. Ainsi, pour pouvoir appliquer un mécanisme de correction d'erreur de type FEC, le module d'encodage 415 fournit au module correcteur 4241 les paramètres du code correcteur d'erreur utilisés (notamment les paramètres M et K, et le type de code correcteur d'erreur) lors de la session de contrôle. Dans un mode de réalisation particulier, les informations échangées sont relatives à l'objet FEC OTI (pour « Forward Error Correction Object Transmission Information »), qui est décrit notamment dans le document de normalisation RFC-5052 (« FEC Building Block »). On présente ci-après, en relation avec la figure 7, un exemple de format d'encapsulation 720 d'un paquet de données (issu du flux 401) selon le protocole L2TP sur une porteuse UDP 100B. Le paquet de données encapsulé 720 selon un tel protocole comporte plus précisément : - une première partie d'en-tête 721 d'encapsulation de session L2TP ; - une seconde partie d'en-tête 722 d'encapsulation spécifique au transport des paquets de données, comprenant les champs suivants : * un champ « Numéro de Séquence » contenant une valeur de numéro de séquence SN propre à chaque paquet de données L2TP. Ce numéro de séquence SN est utilisé pour les besoins d'opérations effectuées à la réception des paquets de données. Par exemple, on utilise un tel numéro de séquence SN lors d'une opération de ré-ordonnancement des données. Dans le cas d'un mode de réalisation particulier de l'invention, le numéro de séquence SN est utilisé pour regrouper les paquets du flux 401 d'une même fenêtre d'encodage (de taille K) ; * un drapeau « F » (pour « Flag ») indiquant si les données utiles encapsulées dans une troisième partie 723 ont fait l'objet d'un encodage de parité par le module d'encodage 415. On présente maintenant, toujours en relation avec la figure 7, un exemple de format d'encapsulation 750 d'un paquet de parité (généré par le module d'encodage 415) selon le protocole L2TP sur une porteuse TCP. Le paquet de parité encapsulé 750 selon un tel protocole comporte plus précisément : - une première partie d'en-tête 751 d'encapsulation de session L2TP ; - une seconde partie d'en-tête 752 d'encapsulation spécifique au transport des paquets de parité, comprenant les champs suivants : * un drapeau « F » (pour « Flag FEC ») indiquant si les données utiles constituent des données de parité (F égal à 1 si les données utiles constituent des données de parité, 0 sinon) ; * un drapeau « R » (pour « Retransmit FEC ») indiquant si les données de parité transportées sont issues d'une retransmission selon le protocole hybride ARQ 215 ; * un champ « SBN » (pour « Source Block Number ») contenant un numéro de fenêtre d'encodage, utilisé pour identifier la fenêtre d'encodage de K paquets à laquelle le paquet encapsulé est associé ; * un champ « ESI» (pour « Encoding Symbol Identifier ») contenant un identifiant de symbole de codage, utilisé pour identifier les paquets du flux 401 utilisés pour l'encodage des paquets de parité ; * un champ « PCL » (pour « Parity Code Localization ») contenant un marquage utilisé pour localiser des paquets/données de parité dans le flux de transport de la porteuse TCP 100A. L'unité de stockage temporaire 423 du bloc récepteur 420 est organisée sous forme de liste chaînée d'éléments, appelés noeuds, où chaque noeud regroupe un ensemble de paquets de données utiles 723 ou de données de parité 753 relatives au flux 401, estampillées par un même numéro SBN de fenêtre d'encodage. Du fait que le paramètre K de nombre de paquets source dans une fenêtre d'encodage et le paramètre M de nombre de paquets de parité générés sont connus par avance de l'émetteur et du récepteur, et du fait que la porteuse TCP 100A a une latence plus importante que la porteuse UDP 100B, alors à chaque réception d'un paquet TCP contenant une donnée de parité 753, le bloc récepteur 420 réorganise les données utiles 25 723 (en fonction du numéro de séquence SN que véhiculent les paquets UDP dans leur seconde partie d'en-tête 722) en relation avec le numéro SBN de fenêtre d'encodage. En d'autres termes, pour une donnée utile 723, il est procédé au rattachement de cette donnée utile 723 avec la donnée de parité 753 correspondante. Ensuite, il est procédé à l'identification des paquets UDP 720 perdus sur le réseau. 10 15 20 Dans le cas où le module décisionnaire 412 utilise un code correcteur d'erreur de type Reed-Solomon appliqué au niveau paquet, le champ ESI correspond à l'indice du paquet de parité généré. Pour une même fenêtre d'encodage de K paquets du flux 401, chaque paquet 750, transportant une donnée de parité Mi, a un champ ESI différent, selon l'indice i de génération, respectant i<M. La valeur du champ SBN est identique pour des paquets de parité d'une même fenêtre d'encodage. La valeur du champ SBN est incrémentée d'une unité à chaque nouvelle fenêtre d'encodage. Dans le cas où le module décisionnaire 412 utilise des fonctions de OUEXCLUSIFs (XORs) pour la construction d'un paquet de parité, c'est-à-dire dans le cas où une opération OU-EXCLUSIF (XOR) est appliquée entre les K paquets du flux 401, le champ ESI indique la portée de l'opération OU-EXCLUSIF (XOR) sur une fenêtre d'encodage de K paquets du flux 401. Par exemple, à chaque bit de la représentation binaire de la valeur du champ ESI est associé un paquet de la fenêtre d'encodage, et la valeur de ce bit indique si le paquet associé (parmi les K paquets) a été utilisé par le code correcteur d'erreur (bit à 1 si tel est le cas, bit à 0 sinon). Le champ PCL de la seconde partie d'en-tête 752 identifie la position des données de parité véhiculées sur la porteuse TCP 100A au regard des données classiques transportées sur cette porteuse TCP 100A. La structure 760 détaille le formatage du champ PCL. L'unité représentée par un bit correspond à un décalage de taille MSS dans les numéros de séquence TCP (par rapport au paquet reçu courant). Les bits représentés représentent des numéros de séquence TCP non assimilables à des paquets TCP. En effet, un paquet TCP peut véhiculer des retransmissions, ce qui ne permet pas de conserver un alignement entre numéro de paquet et numéro de séquence. Le champ PCL 760 se lit de droite à gauche, et comporte deux parties : - pour les bits 0 à 15, la valeur de chaque bit de ce premier sous-champ de 16 bits indique la localisation des fenêtres de codage (c'est-à-dire un changement de numéro SBN) dans le flux continu TCP à partir du paquet courant (représenté par le bit 15). L'index du bit à 1, dans le sens de lecture précité, donne le nombre de groupe de données de taille MSS compris entre le début de la fenêtre d'encodage considérée et le paquet courant (bit 15) ; - pour les bits 16 à 31, la valeur de chaque bit de ce second sous-champ de 16 bits indique la localisation d'un début d'une donnée de parité (c'est-à-dire le premier octet du paquet 750) dans le flux continu TCP à partir du paquet courant (représenté par le bit 31). L'index du bit à 1, dans le sens de lecture précité, donne le nombre de groupe de données de taille MSS compris entre la précédente donnée de parité transmise et le paquet courant (bit 31). La corrélation des premier et second sous-champs permet d'une part d'identifier les séquences TCP (avec une granularité de MSS octets) contenant des données de parité, et d'autre part d'identifier le numéro SBN de fenêtre d'encodage pour chacune de ces données de parité. Pour l'exemple du champ PCL 760 illustré sur la figure 7, on lit les informations suivantes : - le paquet TCP courant ne contient pas de paquet 750 transportant des données de parité (bit 31 à 0) ni de nouvelle fenêtre d'encodage (bit 15 à 0) ; - les données précédemment transmises étaient relatives à 3 fenêtres d'encodage : • le début de la fenêtre d'encodage courante (de numéro SBN = i) se situe à un ensemble de données de taille égal à 4 MSS (bit 12 à 1) du paquet courant (bit 15). Dans cet exemple, il y a eu deux paquets de parité 750 transmis pour ce numéro SBN (bits 30 et 28 à 1) ; • le début de la fenêtre d'encodage précédente (de numéro SBN = i-1) se situe à un ensemble de données de taille égal à 12 MSS (bit 4 à 1) du paquet courant (bit 15), et a couvert un ensemble de données de taille égal à 9 MSS. Il n'y a eu qu'un seul paquet de parité 750 transmis pour ce numéro SBN ; • on ne sait pas quand a débuté la fenêtre d'encodage de numéro SBN = i-2, mais on sait que le paquet de parité 750 qui se situe à 16 MSS du paquet courant, s'y rapporte (bit 16 à 1). Dans un autre mode de réalisation, le champ PCL n'est pas présent dans la zone d'encapsulation 752 mais plutôt dans l'entête de chaque segment TCP sous forme d'option TCP. Ceci a pour avantage d'éviter au récepteur de se synchroniser sur un début de paquet 750 pour l'obtention de ce champ PCL. Dans un tel mode de réalisation, les étapes 910 et 930 décrites ci-après en relation avec les figures 9C et 9B, sont optionnelles. On note que le mode de localisation présenté avec une granularité de MSS octets est suffisant au niveau du bloc récepteur 102 pour détecter la présence de données de parité dans des demandes de retransmission issues de la couche TCP 210 du bloc récepteur 420. On laisse le bloc émetteur 410 choisir plus finement les données qu'il va effectivement retransmettre car il a une connaissance fine de la localisation des données de parité dans le flux continu TCP. Dans un mode de réalisation (non présenté), le bloc émetteur 410 transmet sur le réseau des informations de localisation fine des données de parité dans le flux continu TCP, par exemple, sous la forme d'une liste de numéro de séquences TCP. La figure 8 illustre un exemple d'une table de stockage 800 gérée par l'ordonnanceur de flux 425. La table de stockage 800 de l'ordonnanceur de flux 425 est destinée à recevoir des informations sur les paquets reçus via la porteuse UDP 100B. Dans cette table, l'ordonnanceur 425 indique pour chaque paquet attendu, la date de péremption de ce paquet, c'est-à-dire la date à partir de laquelle un paquet non transmis devient inutile. Suite à la réception de paquets UDP, et après analyse du protocole RTP (protocole des paquets passagers encapsulés par UDP dans notre exemple), ou grâce à un échange de trame de contrôle entre le bloc émetteur 410 et le bloc récepteur 420, l'ordonnanceur 425 initialise la table 800 en pré-renseignant un nombre NbG de fenêtres d'encodage de paquets de données (ce nombre peut être fixé par l'utilisateur, ou être un nombre proportionnel au RTT). Le nombre de paquets UDP d'une fenêtre d'encodage étant connu, l'ordonnanceur crée, pour chacun des NbG blocs, autant de lignes qu'il y a de paquet par fenêtre d'encodage. La date de péremption de chaque paquet, étant pré-renseignée. Pour déterminer la date de péremption d'une trame UDP T 1, il est procédé à l'obtention de l'intervalle de temps maximum entre deux émissions de trames UDP sur le réseau LAN (trames reçues via le port d'interface 411). L'obtention de cet intervalle de temps maximum peut consister en l'analyse du contenu des trames RTP d'établissement du flux. Cet intervalle de temps maximum peut aussi être fourni par un administrateur réseau. Ensuite, on multiplie l'intervalle de temps maximum obtenu par le nombre de trame(s) séparant la dernière trame UDP réémise T2 et la trame UDP Ti (ce nombre est obtenu en calculant la différence entre les numéros de séquence des trames Ti et T2). Dans l'exemple illustré sur la figure 8, la table de stockage 800 comprend quatre colonnes : - une colonne 801 indiquant le numéro de séquence de la trame UDP (champ SN de la trame 720) ; - une colonne 802 indiquant le numéro SBN de fenêtre d'encodage correspondant ; - une colonne 803 indiquant si le paquet a été reçu ou non. Cette colonne 803 est mise à « Non » par défaut. Cette colonne 803 est renseignée par le dé-paqueteur 421 à chaque réception de paquet UDP ; - une colonne 804 contenant la date de péremption pré-renseignée par l'ordonnanceur 425. Cette date de péremption est par exemple précisée avec une granularité d'une milliseconde). La figure 9A représente un organigramme d'un algorithme de transmission d'un flux de données selon un mode de réalisation particulier du procédé selon l'invention, mis en oeuvre par le bloc émetteur 410. Sur réception d'un flux 401, le bloc émetteur 410 effectue les étapes suivantes. Dans une étape 920, le module d'encodage 415 génère M paquets de parité à partir des K paquets du flux 401 (les M paquets de parité étant alors aussi appelés données encodées). On obtient alors un nombre N total de paquets, tel que N = M + K, à transmettre via le tunnel 100. Le module décisionnaire 412 aiguille, dans une étape 921, les M paquets de parité vers la porteuse TCP 100A via l'empaqueteur 414 et, dans une étape 922, les K paquets issus du flux 401 vers la porteuse UDP 100B via l'empaqueteur 413. Ainsi, la transmission des paquets du flux via la porteuse UDP 100B du tunnel est fiabilisée par la transmission de paquets de parité via la porteuse TCP 100A du tunnel. In step 670, the current packet is modified to indicate that it does not contain a valid acknowledgment number (to do this, the ACK bit of the TCP header is set to 0). Then, the modified packet is sent to the TCP filter 4261, which is responsible for transmitting it to the interface port 411. It should be noted that when the current TCP packet does not contain data, but only an acknowledgment, this packet is then simply destroyed. Then, at this same step 670, a fictitious packet (as defined above) is generated. This dummy packet is then sent to the TCP layer 210. This dummy packet contains stuffing data, so it is not used by the scheduler 425. In step 680, the sequence number L_ACK is updated with the sequence number of the TCP data packet of the current acknowledgment, and the count value Nb_Ack of the iteration counter is reset to O. Then, proceed to step 690. In step 690, the TCP filter 4261 transmits to the interface port 411 the current packet without any modification. Thus, at this step 690, an acknowledgment of the lost packet is issued. Note that if the parity data is not systematically aligned, then using a list of parity data start sequence numbers would determine in step 630 the packages containing parity information. complete, or the end of a parity information. This sequence number list of TCP packets containing parity data may for example be sent as an option for each TCP packet. Since the length of the parity data is known (fixed), it can then be deduced by difference with the sequence number of the last received packet (determined by reading the table 4264, or interrogation of the TCP layer 210), if the lost packet contains parity info, and / or application data (data other than those provided by ARQ 215 hybrid tunnel protocol). These packets are then potentially not retransmitted. In this case, in step 670, the current packet is modified by indicating in the acknowledgment sequence number the sequence number of the first data byte of the lost packet (equal to the parity packet start sequence number). plus length, incremented by one, of the parity packet). Then, a TCP packet with the sequence number of the lost packet and a length corresponding to the size of the parity data present in the lost packet is transmitted to the upper layer (difference between the number sequence of the first data byte of the lost packet, and the sequence number of the lost packet). FIG. 7 illustrates an example of data packet formats exchanged between the tunnel head 101 and the tunnel head 102 via the tunnel 100. For example, an encapsulation of data according to the L2TP protocol (according to the RFC standard). 3931) is used. The format of the frames supporting such an encapsulation can be preserved for any communication implemented outside a tunneling context, ie the transported useful data 723, 753 are no longer temporary Ethernet frames but local application data. It should be noted that, in order to be able to apply a FEC ("Forward Error Correction") error correction mechanism, compatible between a coding module 415 and a correction module 4241, the parameters of the error correction code used (in particular the parameter K of the number of source packets in an encoding window and the parameter M of the number of parity packets generated) are exchanged beforehand in the context of a tunnel control session (not represented). In a particular embodiment, the control session of the multi-transport tunnel is established on the TCP 100A carrier. Thus, in order to be able to apply an error correction mechanism of the FEC type, the encoding module 415 supplies the correction module 4241 with the parameters of the error correction code used (in particular the parameters M and K, and the type of correction code error) during the control session. In a particular embodiment, the exchanged information relates to the object FEC OTI (for "Forward Error Correction Object Transmission Information"), which is described in particular in the standardization document RFC-5052 ("FEC Building Block"). An example of an encapsulation format 720 of a data packet (from the stream 401) according to the L2TP protocol on a UDP carrier 100B is presented below, in connection with FIG. The encapsulated data packet 720 according to such a protocol more precisely comprises: a first portion of header 721 of L2TP session encapsulation; a second header portion 722 of encapsulation specific to the transport of data packets, comprising the following fields: a "Sequence Number" field containing a sequence number value SN specific to each L2TP data packet. This SN sequence number is used for the purposes of operations performed upon receipt of the data packets. For example, such a sequence number SN is used during a re-ordering operation of the data. In the case of a particular embodiment of the invention, the sequence number SN is used to group the packets of the stream 401 of the same encoding window (of size K); * a flag "F" (for "Flag") indicating whether the useful data encapsulated in a third part 723 have been the subject of a parity encoding by the encoding module 415. It is now presented, still in relation with FIG. 7, an exemplary encapsulation format 750 of a parity packet (generated by the encoding module 415) according to the L2TP protocol on a TCP carrier. The parity packet encapsulated 750 according to such a protocol more precisely comprises: a first header session 751 portion L2TP encapsulation; a second header portion 752 of encapsulation specific to the transport of the parity packets, comprising the following fields: * a flag "F" (for "Flag FEC") indicating whether the payload data constitutes parity data ( F equal to 1 if the payload is parity data, 0 otherwise); * an "R" flag (for "Retransmit FEC") indicating whether the parity data transported are from a retransmission according to hybrid protocol ARQ 215; * a "SBN" (Source Block Number) field containing an encoding window number, used to identify the K packets encoding window to which the encapsulated packet is associated; an "Encoding Symbol Identifier" (ESI) field containing a coding symbol identifier, used to identify the packets of the stream 401 used for encoding the parity packets; * a "PCL" field (for "Parity Code Localization") containing a marking used to locate packets / parity data in the transport stream of the TCP 100A carrier. The temporary storage unit 423 of the receiver unit 420 is organized as a linked list of elements, called nodes, where each node groups together a set of user data packets 723 or parity data 753 relating to the stream 401, stamped by the same SBN number of encoding window. Since the parameter K of the number of source packets in an encoding window and the parameter M of the number of parity packets generated are known in advance from the transmitter and the receiver, and because the TCP 100A carrier has a higher latency than the UDP carrier 100B, then every time a TCP packet containing parity data 753 is received, the receiver block 420 rearranges the payload 723 (depending on the sequence number SN carried by the UDP packets in their second header portion 722) in relation to the encoding window SBN number. In other words, for a useful data item 723, this payload 723 is attached to the corresponding parity data item 753. Then, the UDP 720 packets lost on the network are identified. In case the decision module 412 uses a Reed-Solomon error correction code applied at the packet level, the ESI field corresponds to the index of the generated parity packet. For the same encoding window of K packets of the stream 401, each packet 750, carrying a parity data Mi, has a different field ESI, according to the index i of generation, respecting i <M. The value of the SBN field is identical for parity packets of the same encoding window. The value of the SBN field is incremented by one unit at each new encoding window. In case the decision-making module 412 uses functions of OUEXCLUSIFs (XORs) for the construction of a parity packet, that is to say in the case where an EXCLUSIVE-OR (XOR) operation is applied between the K packets of the stream 401, the ESI field indicates the scope of the EXCLUSIVE-OR (XOR) operation on an encoding window of K packets of the stream 401. For example, at each bit of the binary representation of the value of the ESI field is associated with a packet of the encoding window, and the value of this bit indicates whether the associated packet (among the K packets) was used by the error correction code (bit 1 if so, bit to 0 otherwise). The PCL field of the second header portion 752 identifies the position of the parity data carried on the TCP 100A carrier with respect to the conventional data carried on this TCP 100A carrier. Structure 760 details the formatting of the PCL field. The unit represented by a bit corresponds to an MSS size offset in the TCP sequence numbers (relative to the current received packet). The bits represented represent TCP sequence numbers that can not be assimilated to TCP packets. Indeed, a TCP packet can convey retransmissions, which does not allow to maintain an alignment between packet number and sequence number. The PCL 760 field reads from right to left, and has two parts: - for bits 0 to 15, the value of each bit of this first 16-bit subfield indicates the location of the coding windows (ie that is, a SBN number change) in the TCP stream from the current packet (represented by bit 15). The index of the bit at 1, in the reading direction mentioned above, gives the number of data group of size MSS between the beginning of the encoding window concerned and the current packet (bit 15); for bits 16 to 31, the value of each bit of this second 16-bit subfield indicates the location of a start of parity data (i.e., the first byte of packet 750) in the TCP stream from the current packet (represented by bit 31). The index of the bit at 1, in the reading direction mentioned above, gives the number of data group of size MSS between the preceding transmitted parity data and the current packet (bit 31). The correlation of the first and second subfields makes it possible, on the one hand, to identify the TCP sequences (with a granularity of MSS bytes) containing parity data, and on the other hand to identify the encoding window SBN number. for each of these parity data. For the example of the PCL field 760 illustrated in FIG. 7, the following information is read: the current TCP packet does not contain a packet 750 carrying parity data (bit 31 to 0) nor a new encoding window ( bit 15 to 0); the previously transmitted data were relative to 3 encoding windows: the beginning of the current encoding window (of number SBN = i) is at a set of data of size equal to 4 MSS (bit 12 to 1) of the current packet (bit 15). In this example, there were two parity packets 750 transmitted for this SBN number (bits 30 and 28 to 1); • the beginning of the previous encoding window (SBN number = i-1) is at a set of data equal to 12 MSS (bit 4 to 1) of the current packet (bit 15), and covered a data set of size equal to 9 MSS. There has been only one parity packet 750 transmitted for this SBN number; • It is not known when the SBN = i-2 encoding window has started, but we know that the parity packet 750 which is at 16 MSS of the current packet, relates to it (bit 16 to 1). . In another embodiment, the PCL field is not present in the encapsulation area 752 but rather in the header of each TCP segment as a TCP option. This has the advantage of avoiding the receiver to synchronize on a beginning of packet 750 to obtain this PCL field. In such an embodiment, the steps 910 and 930 described hereinafter with reference to FIGS. 9C and 9B are optional. Note that the location mode presented with a granularity of MSS bytes is sufficient at the receiver block 102 to detect the presence of parity data in retransmission requests from the TCP layer 210 of the receiver block 420. transmitter 410 choose more finely the data it will actually retransmit because it has a fine knowledge of the location of parity data in the continuous stream TCP. In one embodiment (not shown), the transmitter block 410 transmits on the network fine location information of the parity data in the TCP stream, for example, as a TCP sequence number list. FIG. 8 illustrates an example of a storage table 800 managed by the flow scheduler 425. The storage table 800 of the flow scheduler 425 is intended to receive information on the packets received via the UDP carrier 100B. In this table, the scheduler 425 indicates for each expected packet, the expiry date of this packet, that is to say the date from which an undelivered packet becomes useless. Following the reception of UDP packets, and after analysis of the RTP protocol (UDP encapsulated passenger pack protocol in our example), or thanks to a control frame exchange between the transmitter block 410 and the receiver block 420, the scheduler 425 initializes the table 800 by pre-filling a number NbG of data packet encoding windows (this number can be set by the user, or be a number proportional to the RTT). Since the number of UDP packets of an encoding window is known, the scheduler creates, for each of the NbG blocks, as many lines as there are packets per encoding window. The expiry date of each package, being pre-filled. To determine the expiry date of a UDP frame T 1, the maximum time interval between two UDP frame transmissions over the LAN (frames received via the interface port 411) is obtained. Obtaining this maximum time interval may consist of analyzing the content of the RTP frames for establishing the flow. This maximum time interval can also be provided by a network administrator. Next, the maximum time interval obtained is multiplied by the number of frames separating the last retransmitted UDP frame T2 and the UDP frame Ti (this number is obtained by calculating the difference between the sequence numbers of the frames T1 and T2 ). In the example illustrated in FIG. 8, the storage table 800 comprises four columns: a column 801 indicating the sequence number of the UDP frame (SN field of the frame 720); a column 802 indicating the corresponding encoding window SBN number; a column 803 indicating whether the packet has been received or not. This column 803 is set to "No" by default. This column 803 is filled by the de-packager 421 at each UDP packet reception; a column 804 containing the expiry date pre-filled by the scheduler 425. This expiry date is for example specified with a granularity of one millisecond). FIG. 9A represents a flowchart of an algorithm for transmitting a data stream according to a particular embodiment of the method according to the invention, implemented by the transmitter block 410. On reception of a stream 401, the block transmitter 410 performs the following steps. In a step 920, the encoding module 415 generates M parity packets from the K packets of the stream 401 (the M parity packets are then also called encoded data). This gives a total number N of packets, such as N = M + K, to be transmitted via the tunnel 100. The decision module 412 hands, in a step 921, the M parity packets to the TCP 100A carrier via the packager 414 and, in a step 922, the K packets from the stream 401 to the UDP carrier 100B via the packager 413. Thus, the transmission of the packets of the stream via the UDP carrier 100B of the tunnel is made reliable by the transmission of parity packets via the TCP 100A carrier of the tunnel.

La figure 9B présente un mode de réalisation particulier d'un algorithme, implémenté au sein du module de marquage 416 (compris dans le bloc émetteur 410). Lors de l'émission d'un paquet courant sur la porteuse TCP 100A, le module de marquage 416 effectue les étapes suivantes. FIG. 9B shows a particular embodiment of an algorithm implemented within the marking module 416 (included in the transmitter block 410). When transmitting a current packet on the TCP 100A carrier, the marking module 416 performs the following steps.

L'étape 930 consiste à déterminer au cours du flux TCP un début de trame 750. En d'autres termes, à cette étape 930, on cherche à localiser l'en-tête d'une trame 750. Pour ce faire, un compteur de numéro de séquence TCP (avec comme valeur d'initialisation la valeur de démarrage de la connexion TCP) peut être utilisé car la taille des segments 750 est connue (par exemple, l'en-tête du protocole embarqué 353 indique la taille de chaque trame). On note que dans le cas où le champ PCL n'est pas présent dans la zone d'encapsulation 752 mais est incorporé dans l'en-tête TCP via une option TCP, alors la recherche de l'en-tête de la trame 750 est grandement simplifiée. Une fois l'en-tête localisée, le drapeau « F » de la zone d'encapsulation 752 est analysé (étape 931) pour déterminer la nature du contenu du paquet courant. Step 930 consists in determining, during the TCP stream, a frame start 750. In other words, at this step 930, it is sought to locate the header of a frame 750. To do this, a counter TCP sequence number (with the start value of the TCP connection as initialization) can be used because the size of the segments 750 is known (for example, the embedded protocol header 353 indicates the size of each frame). Note that in the case where the PCL field is not present in the encapsulation area 752 but is embedded in the TCP header via a TCP option, then the search for the frame header 750 is greatly simplified. Once the header is located, the "F" flag of the encapsulation area 752 is analyzed (step 931) to determine the nature of the contents of the current packet.

Ensuite, le contenu du champ PCL 760 de la trame 750 est mis à jour, en décalant vers la gauche l'ensemble des 16 bits indiquant la localisation des données de parité (bits numérotés 16 à 31 sur la figure 7), puis en allouant la valeur courante du drapeau « F » au premier bit (bit numéroté 31 sur la figure 7). La figure 9C présente un mode de réalisation particulier d'un algorithme, implémenté au sein du filtre TCP 4261 (compris dans le bloc récepteur 420). Lors de la réception d'un paquet contenant des données en provenance du port d'interface 411, et à destination de la couche TCP 210, le filtre TCP 4261 effectue les étapes suivantes. L'étape 910 consiste à déterminer au cours du flux TCP un début de trame 750. Then, the content of the PCL field 760 of the frame 750 is updated, by shifting to the left all the 16 bits indicating the location of the parity data (bits numbered 16 to 31 in FIG. 7), then allocating the current value of the flag "F" at the first bit (bit numbered 31 in FIG. 7). FIG. 9C shows a particular embodiment of an algorithm implemented within the TCP filter 4261 (included in the receiver block 420). Upon receiving a packet containing data from the interface port 411, and destined for the TCP layer 210, the TCP filter 4261 performs the following steps. Step 910 is to determine during the TCP stream a frame start 750.

En d'autres termes, à cette étape 910 on cherche à localiser l'en-tête d'une trame 750. Pour ce faire, il est possible d'utiliser un compteur de numéro de séquence TCP, comme décrit ci-dessus (étape 930). Ensuite, la récupération et l'analyse du champ PCL sont effectuées (étape 911). L'analyse du champ PCL permet de connaître la localisation des données de parité 750 et surtout des changements de numéro de fenêtre SBN au cours du flux TCP. In other words, in this step 910 we seek to locate the header of a frame 750. To do this, it is possible to use a TCP sequence number counter, as described above (step 930). Then, recovery and analysis of the PCL field are performed (step 911). The analysis of the PCL field makes it possible to know the location of the parity data 750 and especially of the SBN window number changes during the TCP stream.

Puis, ces informations de numéro de séquence TCP supportant une donnée de parité et de changement de numéro de fenêtre SBN sont répertoriées dans la table d'index 4264 (étape 912). Then, this TCP sequence number information supporting parity data and SBN window number change is listed in the index table 4264 (step 912).

Claims (13)

REVENDICATIONS1. Procédé de gestion par un dispositif récepteur (102) d'un flux de données transmis par un dispositif émetteur (101) via un lien de communication (100), les données du flux de données étant transmises au dispositif récepteur par utilisation d'un protocole de transport sans acquittement de données, caractérisé en ce que le dispositif récepteur effectue des étapes consistant à : - détecter (620, 630) une perte de donnée relative à un paquet de données de parité non reçu par le dispositif récepteur, des données de parité ayant été transmises par le dispositif émetteur par utilisation d'un protocole de transport avec acquittement et retransmission de données, les données de parité ayant été générées à partir de données sources dudit flux ; - vérifier (640, 650, 660) s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, en fonction d'au moins un critère appliqué aux données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - s'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception par le dispositif récepteur du paquet de données de parité non reçu. REVENDICATIONS1. A method of management by a receiving device (102) of a data stream transmitted by a transmitting device (101) via a communication link (100), the data of the data stream being transmitted to the receiving device by use of a protocol transport device without data acknowledgment, characterized in that the receiving device performs steps of: - detecting (620, 630) a loss of data relating to a packet of parity data not received by the receiving device, parity data transmitted by the transmitting device by using a transport protocol with acknowledgment and retransmission of data, the parity data having been generated from source data of said flow; checking (640, 650, 660) whether it is necessary for the transmitting device to retransmit said parity data packet not received, as a function of at least one criterion applied to the source data of said stream used to generate the parity data of said package not received; if it is not necessary for the transmitting device to retransmit said parity data packet not received, to cancel transmission to the transmitting device of a non-reception indication message by the receiving device of the data packet parity not received. 2. Procédé selon la revendication 1, caractérisé en ce que ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à : - détecter que les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ont toutes été reçues par le dispositif récepteur ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. 2. Method according to claim 1, characterized in that said step of verifying whether it is necessary for the transmitting device to retransmit said packet of non-received parity data comprises the steps of: detecting that the source data of said stream used to generate the parity data of said non-received packet have all been received by the receiving device; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received. 3. Procédé selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à :- déterminer (650) un instant auquel une donnée déterminée, parmi les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu, doit être obtenue par le dispositif récepteur ; - détecter que l'instant auquel la donnée déterminée doit être obtenue par le dispositif récepteur dépasse un instant estimé de réception d'une retransmission du paquet de données de parité non reçu ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. The method of any one of claims 1 and 2, characterized in that said step of verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received comprises the steps of: - determining ( 650) a time at which a given datum, among the source data of said stream used to generate the parity data of said non-received packet, must be obtained by the receiving device; detecting that the instant at which the determined data must be obtained by the receiving device exceeds an estimated time of reception of a retransmission of the parity data packet not received; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received. 4. Procédé selon la revendication 3, caractérisé en ce que l'instant estimé de réception est déterminé à partir d'un temps aller-retour des données transmises selon le protocole de transport avec acquittement et retransmission de données. 4. Method according to claim 3, characterized in that the estimated time of reception is determined from a round trip time of the data transmitted according to the transport protocol with acknowledgment and retransmission of data. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite étape consistant à vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu comprend des étapes consistant à : - détecter que le nombre de donnée(s) de parité déjà reçue(s) par le dispositif récepteur permet de reconstituer les données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - décider qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. The method according to any one of claims 1 to 4, characterized in that said step of verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received comprises the steps of: detecting that the number of parity data (s) already received by the receiving device makes it possible to reconstitute the source data of said stream used to generate the parity data of said packet not received; - decide that it is not necessary for the transmitting device to retransmit said parity data packet not received. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le dispositif récepteur effectue au préalable une étape consistant à intercepter (610) ledit message d'indication de non-réception du paquet de données de parité non reçu, et en ce que l'étape consistant à annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception comprend des étapes consistant à : - supprimer ledit message d'indication de non-réception intercepté ; - générer (670) un paquet de bourrage se substituant au paquet de données de parité non reçu ; - transmettre le paquet de bourrage généré à un module de traitement d'acquittement, de façon à obtenir un message d'indication de réception dudit paquet de données de parité non reçu. The method according to any one of claims 1 to 5, characterized in that the receiving device first performs a step of intercepting (610) said non-receiving indication message of the parity data packet not received, and in that the step of canceling transmission to the transmitting device of a non-receiving indication message comprises steps of: - deleting said intercepted non-receiving indication message; generating (670) a stuffing packet that overrides the parity data packet not received; transmitting the generated stuffing packet to an acknowledgment processing module so as to obtain a receive indication message of said non-received parity data packet. 7. Procédé selon la revendication 6, caractérisé en ce que le paquet de bourrage a un identifiant et une taille identiques à ceux dudit paquet de données de parité non reçu. The method of claim 6, characterized in that the stuffing packet has an identifier and size identical to those of said parity data packet not received. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que, s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, le dispositif récepteur effectue une étape consistant à transmettre (690) ledit message d'indication de non-réception du paquet de données de parité non reçu vers le dispositif émetteur. 8. Method according to any one of claims 1 to 7, characterized in that, if it is necessary for the transmitting device to retransmit said parity data packet not received, the receiving device performs a step of transmitting (690) said non-receiving indication message of the parity data packet not received to the transmitting device. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que le lien de communication est un tunnel de communication interconnectant des réseaux locaux, et chacun des dispositifs émetteur et récepteur est une tête de tunnel appartenant à un réseau local respectif, et en ce que les données sources sont générées par un dispositif terminal source d'un dit réseau local et sont destinées à un dispositif terminal destination d'un dit réseau local distinct. 9. Method according to any one of claims 1 to 8, characterized in that the communication link is a communication tunnel interconnecting local area networks, and each of the transmitter and receiver devices is a tunnel head belonging to a respective local area network. , and in that the source data is generated by a source terminal device of a said local area network and is intended for a destination terminal device of a said separate local area network. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'une fenêtre d'encodage de taille prédéfinie est appliquée aux données sources utilisées pour générer les données de parité dudit paquet non reçu, et en ce que chaque donnée de parité dudit paquet non reçu a le même identifiant qu'une donnée source de position prédéterminée dans la fenêtre d'encodage. Method according to any of claims 1 to 9, characterized in that a predefined size encoding window is applied to the source data used to generate the parity data of said non-received packet, and in that each data parity of said non-received packet has the same identifier as a predetermined position source data in the encoding window. 11. Produit programme d'ordinateur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre du procédé selon au moins une des revendications 1 à 10, lorsque ledit programme est exécuté sur un ordinateur. 11. Computer program product, characterized in that it comprises program code instructions for implementing the method according to at least one of claims 1 to 10, when said program is executed on a computer. 12. Moyen de stockage lisible par ordinateur, stockant un programme d'ordinateur comprenant un jeu d'instructions exécutables par un ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 10. A computer readable storage medium storing a computer program comprising a set of computer executable instructions for carrying out the method according to at least one of claims 1 to 10. 13. Dispositif récepteur (102) comprenant des moyens pour gérer un flux de données transmis par un dispositif émetteur (101) via un lien de communication (100), les données du flux de données étant transmises au dispositif récepteur par utilisation d'un protocole de transport sans acquittement de données, caractérisé en ce que le dispositif récepteur comprend : 5 10- des moyens pour détecter une perte de donnée relative à un paquet de données de parité non reçu par le dispositif récepteur, des données de parité ayant été transmises par le dispositif émetteur par utilisation d'un protocole de transport avec acquittement et retransmission de données, les données de parité ayant été générées à partir de données sources dudit flux ; - des moyens pour vérifier s'il est nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu, en fonction d'au moins un critère appliqué aux données sources dudit flux utilisées pour générer les données de parité dudit paquet non reçu ; - des moyens pour annuler l'émission vers le dispositif émetteur d'un message d'indication de non-réception par le dispositif récepteur du paquet de données de parité non reçu, lesdits moyens pour annuler étant activés si les moyens pour vérifier détectent qu'il n'est pas nécessaire que le dispositif émetteur retransmette ledit paquet de données de parité non reçu. 15 Receiving device (102) comprising means for managing a data stream transmitted by a transmitting device (101) via a communication link (100), the data of the data stream being transmitted to the receiving device by use of a protocol transport device without data acknowledgment, characterized in that the receiver device comprises: means for detecting a loss of data relating to a packet of parity data not received by the receiver device, parity data having been transmitted by the transmitting device using a transport protocol with acknowledgment and retransmission of data, the parity data having been generated from source data of said stream; means for verifying whether it is necessary for the transmitting device to retransmit said parity data packet not received, as a function of at least one criterion applied to the source data of said stream used to generate the parity data of said non-received packet; means for canceling transmission to the transmitting device of a non-reception indication message by the receiving device of the parity data packet not received, said means for canceling being activated if the means for verifying detect that it is not necessary for the transmitting device to retransmit said parity data packet not received. 15
FR1052441A 2010-03-31 2010-03-31 METHOD FOR MANAGING A RECEIVER DEVICE OF A DATA STREAM TRANSMITTED BY A TRANSMITTER DEVICE, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM AND CORRESPONDING RECEIVER DEVICE Expired - Fee Related FR2958482B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1052441A FR2958482B1 (en) 2010-03-31 2010-03-31 METHOD FOR MANAGING A RECEIVER DEVICE OF A DATA STREAM TRANSMITTED BY A TRANSMITTER DEVICE, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM AND CORRESPONDING RECEIVER DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1052441A FR2958482B1 (en) 2010-03-31 2010-03-31 METHOD FOR MANAGING A RECEIVER DEVICE OF A DATA STREAM TRANSMITTED BY A TRANSMITTER DEVICE, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM AND CORRESPONDING RECEIVER DEVICE

Publications (2)

Publication Number Publication Date
FR2958482A1 true FR2958482A1 (en) 2011-10-07
FR2958482B1 FR2958482B1 (en) 2012-04-13

Family

ID=42984023

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1052441A Expired - Fee Related FR2958482B1 (en) 2010-03-31 2010-03-31 METHOD FOR MANAGING A RECEIVER DEVICE OF A DATA STREAM TRANSMITTED BY A TRANSMITTER DEVICE, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM AND CORRESPONDING RECEIVER DEVICE

Country Status (1)

Country Link
FR (1) FR2958482B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1361690A2 (en) * 2000-03-02 2003-11-12 Matsushita Electric Industrial Co., Ltd. Method and apparatus for retransmitting data packets based on channel conditions
WO2004036760A1 (en) * 2002-10-15 2004-04-29 Koninklijke Philips Electronics N.V. System and method for providing error recovery for streaming fgs encoded video over an ip network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1361690A2 (en) * 2000-03-02 2003-11-12 Matsushita Electric Industrial Co., Ltd. Method and apparatus for retransmitting data packets based on channel conditions
WO2004036760A1 (en) * 2002-10-15 2004-04-29 Koninklijke Philips Electronics N.V. System and method for providing error recovery for streaming fgs encoded video over an ip network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAMMLER R ET AL: "Performance of Parity-Based Loss Recovery for Reliable Multicast in Third-Generation Mobile Networks", PERSONAL, INDOOR AND MOBILE RADIO COMMUNICATIONS, 2005. PIMRC 2005. IE EE 16TH INTERNATIONAL SYMPOSIUM ON BERLIN, GERMANY 11-14 SEPT. 2005, PISCATAWAY, NJ, USA,IEEE LNKD- DOI:10.1109/PIMRC.2005.1651722, vol. 3, 11 September 2005 (2005-09-11), pages 1641 - 1645, XP010926492, ISBN: 978-978-38007-2-4 *

Also Published As

Publication number Publication date
FR2958482B1 (en) 2012-04-13

Similar Documents

Publication Publication Date Title
FR2949931A1 (en) METHODS AND DEVICES FOR TRANSMITTING A DATA STREAM, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.
FR2933834A1 (en) METHOD FOR MANAGING DATA STREAM TRANSMISSION ON A TUNNEL TRANSPORT CHANNEL, TUNNEL HEAD, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.
FR2939993A1 (en) METHOD FOR TRANSMITTING A MULTI-CHANNEL DATA STREAM ON A MULTI-TRANSPORT TUNNEL, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING TUNNEL HEADS
FR2909241A1 (en) METHODS AND DEVICES FOR DYNAMICALLY MANAGING TRANSMISSION ERRORS THROUGH NETWORK INTERCONNECTION POINTS.
FR2805112A1 (en) METHOD AND UNIT FOR CONTROLLING THE FLOW OF A TCP CONNECTION ON A CONTROLLED SPEED NETWORK
FR2926939A1 (en) DATA TRANSMISSION METHOD WITH ACQUITTATION ANTICIPATION, INPUT DEVICE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM
FR2933557A1 (en) METHOD AND DEVICE FOR PROTECTING THE INTEGRITY OF DATA TRANSMITTED ON A NETWORK
FR2908576A1 (en) METHOD, DEVICE AND SOFTWARE APPLICATION FOR SCHEDULING A PACKET TRANSMISSION OF A DATA STREAM
EP1676389B1 (en) Method for lost packet reconstruction and device for carrying out said method
FR2954029A1 (en) METHOD FOR TRANSMITTING PACKETS OF A PASSENGER BIDIRECTIONAL DATA STREAM, MANAGER DEVICE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM
FR2927749A1 (en) METHOD AND DEVICE FOR TRANSMITTING DATA, IN PARTICULAR VIDEO.
FR2929789A1 (en) Data flow transmission improvement mechanisms managing method for use over internet to passenger, involves determining nature and location of transmission problem, and managing transmission improvement mechanisms based on determined results
FR2939994A1 (en) METHOD FOR TRANSMITTING A MULTI-CHANNEL DATA STREAM ON A MULTI-TRANSPORT TUNNEL, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING TUNNEL HEADS
EP2282432B1 (en) Method for transmitting multimedia data in ad hoc communication networks
EP3857825A1 (en) Method and system for monitoring a connection between two terminal equipment items, corresponding computer program product
FR3071997A1 (en) SIGNALING A REQUEST FOR ADAPTATION OF AN IP VOICE COMMUNICATION SESSION
FR2995160A1 (en) TRANSMISSION METHOD IN AN AD HOC MULTISAUTAL IP NETWORK
FR2956271A1 (en) METHOD AND DEVICE FOR CALCULATING THE AVAILABLE SPACE IN A PACKET FOR TRANSPORTING DATA STREAMS
FR2958482A1 (en) Data stream managing method for transmitting device, involves stopping non-receiving indication message transmission to sending device by non-received parity data packet receiving device if retransmission of data packet is not required
FR2957736A1 (en) Data flow transmission method, involves generating set of parity data from information, and transmitting set of parity data to receiving device using transport protocol in response to received message
WO2015185824A1 (en) Method and system for flow control
EP3311545A1 (en) Method and device for managing packets in a multi-stream and multi-protocol connection
WO2023169938A1 (en) Method for managing a retransmission of data exchanged on a path established between a first communication equipment and a second communication equipment by way of a value of an intermediate performance parameter determined by an intermediate node belonging to said path
FR2951045A1 (en) Method for managing size of frames of e.g. audio, stream transmitted between source and destination devices, involves providing adaptation information allowing adaptation of size of packets of stream to source and/or destination device
EP1424832A1 (en) End-to-end measuring device of network information

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20141128