FR2922068A1 - Data packet i.e. datagram, size limit intimating method for e.g. TV, involves comparing size limits of data packets to detect changing packet size and transmitting changing packet size message to source device when changing size is detected - Google Patents

Data packet i.e. datagram, size limit intimating method for e.g. TV, involves comparing size limits of data packets to detect changing packet size and transmitting changing packet size message to source device when changing size is detected Download PDF

Info

Publication number
FR2922068A1
FR2922068A1 FR0758149A FR0758149A FR2922068A1 FR 2922068 A1 FR2922068 A1 FR 2922068A1 FR 0758149 A FR0758149 A FR 0758149A FR 0758149 A FR0758149 A FR 0758149A FR 2922068 A1 FR2922068 A1 FR 2922068A1
Authority
FR
France
Prior art keywords
channel
tunnel
packet size
packet
stream
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
FR0758149A
Other languages
French (fr)
Other versions
FR2922068B1 (en
Inventor
Pascal Rousseau
Stephane Baron
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 FR0758149A priority Critical patent/FR2922068B1/en
Publication of FR2922068A1 publication Critical patent/FR2922068A1/en
Application granted granted Critical
Publication of FR2922068B1 publication Critical patent/FR2922068B1/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2832Interconnection of the control functionalities between home networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2834Switching of information between an external network and a home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size

Abstract

The method involves detecting an initiating event i.e. transmission failover, related to a new channel i.e. user datagram protocol channel, that transfers data stream in a communication tunnel. Size limits of data packets associated to a preceding channel i.e. transmission control protocol channel, and the new channel, respectively, are obtained. The size limits of the data packets are compared to detect a changing data packet size. A changing data packet size message is transmitted to a source device e.g. TV, when the changing data packet size is detected. Independent claims are also included for the following: (1) a computer program product comprising instructions to perform a method for intimating a size limit of a data packet (2) a storage medium comprising instructions to perform a method for intimating a size limit of a data packet (3) a tunnel head comprising a detecting unit.

Description

Procédé de notification à un dispositif source d'une taille limite de paquets de données, produit programme d'ordinateur, moyen de stockage et tête de tunnel correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des réseaux de communication. Plus précisément, l'invention concerne une technique de notification à un dispositif source d'une taille limite (désignée ci-après par MTU pour Maximum Transmission Unit en anglais) des données utiles pouvant être transmises dans un paquet de données (aussi appelés datagrammes) transitant dans un tunnel de communication. L'invention s'applique notamment, mais non exclusivement, à des dispositifs tels que, par exemple, les télévisions, les systèmes de type home cinéma, les caméscopes, les imprimantes, les appareils photo ou tout autre équipement photo et audio/vidéo numérique pour le grand public. A method of notifying a source device of a data packet size limit, computer program product, storage medium and corresponding tunnel end. FIELD OF THE INVENTION The field of the invention is that of communication networks. More specifically, the invention relates to a notification technique to a source device of a size limit (hereinafter referred to as MTU for Maximum Transmission Unit in English) useful data that can be transmitted in a data packet (also called datagrams). passing through a communication tunnel. The invention applies in particular, but not exclusively, to devices such as, for example, televisions, home theater-type systems, camcorders, printers, cameras or other digital photo and audio / video equipment. for the general public.

La démocratisation d'Internet haut débit d'une part et l'apparition d'équipements audiovisuels grand public ayant une connectivité réseau d'autre part vont créer de nouveaux comportements des utilisateurs. Parmi ces nouveaux comportements, il fait peu de doute que nous verrons apparaître des individus appartenant à des groupes de personnes ayants des domaines d'intérêts communs (loisirs, famille...) que nous pourrions appeler en liaison permanente . Ceux-ci établiront des connections quasi permanentes avec les autres individus d'un même domaine d'intérêt en établissement des communications audio et/ou vidéo et partageant des informations de tout type (audio, vidéo, photo, texte ...). La technologie des Réseaux Privés Virtuels (RPV, ou VPN pour Virtual Private Network en anglais) offre une solution intéressante pour répondre à cette attente. En effet, elle permet de communiquer de manière transparente en temps réel, 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ûr mais bon marché. Les RPVs (VPN) sont fréquemment utilisés 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 local virtuel composé de l'union des deux réseaux LAN originaux. Il existe de nombreuses technologies pour mettre en oeuvre un RPV. On trouve généralement ces technologies dans les équipements d'infrastructure des réseaux des opérateurs et les passerelles Internet pour le grand public. Ces technologies peuvent être également mises en oeuvre sur un ordinateur à l'aide de logiciels spécifiques, par exemple, openVPN, SoftEther, L2TP, etc. Une configuration typique de RPV basé sur une technique de tunnellisation est illustrée sur la figure la (décrite en détail par la suite). Dans cet exemple, les têtes de tunnel ( Tunnel End Point en anglais) ne sont pas intégrées aux passerelles. Le tunnel est établi entre deux têtes de tunnel, et chaque paquet (aussi appelé trame) envoyé à un équipement connecté au réseau LAN distant est encapsulé par la tête de tunnel locale, puis envoyé à la tête de tunnel distante qui va le désencapsuler et l'envoyer sur le réseau LAN distant. Les équipements de ces réseaux LAN 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-toend communication en anglais). The democratization of high-speed Internet on the one hand and the emergence of consumer-oriented audiovisual equipment with network connectivity on the other hand will create new user behaviors. Among these new behaviors, there is little doubt that we will see individuals belonging to groups of people with common areas of interest (leisure, family ...) that we could call in permanent liaison. These will establish almost permanent connections with other individuals of the same field of interest in establishing audio and / or video communications and sharing information of any type (audio, video, photo, text ...). The Virtual Private Networks (VPN) technology offers an interesting solution to meet this expectation. Indeed, it makes it possible to communicate transparently in real time, in a secure manner between individuals sharing the same field of interest while using the Internet infrastructure unsafe but cheap. VPNs (VPNs) are frequently used to interconnect two home local area networks (hereinafter referred to as LANs for Local Area Network in English) to create a virtual LAN consisting of the union of the two original LANs. There are many technologies for implementing a VPN. These technologies are typically found in carrier network infrastructure equipment and Internet gateways for the general public. These technologies can also be implemented on a computer using specific software, for example, openVPN, SoftEther, L2TP, etc. A typical VPN configuration based on a tunneling technique is illustrated in Figure la (described in detail later). In this example, Tunnel End Points are not integrated into the gateways. The tunnel is established between two tunnelheads, and each packet (also called a frame) sent to a device connected to the remote LAN is encapsulated by the local tunnel endpoint and sent to the remote tunnelhead which will unpack it and send on the remote LAN. The equipment of these LANs is virtually connected to the same LAN. Communication between two devices via the tunnel is called end-to-end communication.

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. Cette opération consiste à encapsuler un protocole de niveau A (protocole embarqué) dans un protocole de niveau B (protocole de transport) grâce à un protocole d'encapsulation C, B étant un protocole de niveau supérieur au protocole de niveau A dans un modèle en couche tel le modèle OSI (pour Open Systems Interconnection en anglais) qui décrit les services offerts par chacune de ces couches et leurs interactions. Dans la suite de la description, on considère, à titre d'exemple uniquement, les RPVs de niveau 2, c'est-à-dire comportant un tunnel de niveau 2 (tunnel de niveau 2 signifie que le protocole embarqué est un protocole de la couche 2 du modèle OSI). 2. ARRIÈRE-PLAN TECHNOLOGIQUE Une opération d'encapsulation a pour conséquence de réduire la quantité d'information utilisateur pouvant être envoyée dans une trame émise sur un support physique donné. En effet, les longueurs des en-têtes du protocole embarqué et du protocole d'encapsulation viennent réduire d'autant la longueur des données utilisateurs dans la trame à transmettre. To transparently communicate and avoid non-routable addresses, RPVs use a special encapsulation (called tunneling) that creates what is called a tunnel. This operation consists in encapsulating an A level protocol (embedded protocol) in a B protocol (transport protocol) using a C encapsulation protocol, B being a higher level protocol than the A level protocol in a model. layer such as the Open Systems Interconnection (OSI) model which describes the services offered by each of these layers and their interactions. In the remainder of the description, it is considered, by way of example only, the level 2 RPVs, that is to say having a level 2 tunnel (level 2 tunnel means that the embedded protocol is a protocol of layer 2 of the OSI model). 2. TECHNOLOGICAL BACKGROUND An encapsulation operation has the effect of reducing the amount of user information that can be sent in a frame transmitted on a given physical medium. In fact, the lengths of the headers of the embedded protocol and the encapsulation protocol reduce the length of the user data in the frame to be transmitted.

En effet, bien qu'un datagramme puisse atteindre une longueur maximale de 64 ko, la plupart des interfaces de communication autorisent une taille limite de paquets qui est dépendante de la technologie de communication et qui est très inférieure à cette valeur. Indeed, although a datagram can reach a maximum length of 64 KB, most communication interfaces allow a packet size limit that is dependent on the communication technology and is much lower than this value.

Pour s'accommoder de la différence entre le MTU d'un réseau local dont est issu le datagramme et le MTU du tunnel, une solution consiste à fragmenter le datagramme. En d'autres termes, on découpe le datagramme en fragments de taille inférieure au MTU du tunnel lors de sa transition vers le tunnel (le tunnel présentant un MTU inférieur au MTU du réseau local). In order to accommodate the difference between the MTU of a local network from which the datagram is derived and the MTU of the tunnel, one solution is to fragment the datagram. In other words, the datagram is cut into fragments smaller than the MTU of the tunnel during its transition to the tunnel (the tunnel having an MTU lower than the MTU of the local network).

Cette solution de l'art antérieur qui consiste à fragmenter un datagramme à l'entrée d'un tunnel et opérer un réassemblage à la sortie de ce tunnel présente un certain nombre d'inconvénients. Tout d'abord, les opérations de fragmentation et de réassemblage génèrent une augmentation de la charge de l'unité de traitement ( CPU ) ainsi qu'une utilisation moins efficace de la mémoire. En effet, les traitements associés à la fragmentation ou au réassemblage augmentent l'utilisation de l'unité de traitement. Par ailleurs, la mémoire associée à un datagramme ne peut être libérée que lorsque tous les fragments associés à ce datagramme ont été reçus avec succès pour alors opérer une opération de réassemblage, ce qui entraîne une diminution de l'efficacité. This solution of the prior art which consists in fragmenting a datagram at the entrance of a tunnel and performing a reassembly at the exit of this tunnel has a number of disadvantages. Firstly, the fragmentation and reassembly operations generate an increase in the CPU load as well as a less efficient use of the memory. In fact, the treatments associated with fragmentation or reassembly increase the use of the processing unit. In addition, the memory associated with a datagram can be released only when all the fragments associated with this datagram have been successfully received to then perform a reassembly operation, resulting in a decrease in efficiency.

Un autre inconvénient majeur de cette technique connue réside dans le fait que les équipements d'infrastructure (par exemple les routeurs Internet) ne sont pas adaptés à ces opérations de fragmentation et de réassemblage, leur rôle étant de réaliser au plus vite une transition entre deux réseaux. En outre, l'efficacité globale de la communication diminue car la perte d'un fragment nécessite la retransmission de l'ensemble des fragments, ce qui entraîne une augmentation de la probabilité de retransmission. Les inventeurs ont également constaté que dans un environnement IP v6 (ou Internet Protocol version 6 ) seul l'ordinateur source peut fragmenter le datagramme. Les équipements d'infrastructure tels que les routeurs Internet sur le trajet ne le peuvent pas. Another major disadvantage of this known technique lies in the fact that the infrastructure equipment (for example Internet routers) are not adapted to these fragmentation and reassembly operations, their role being to achieve as quickly as possible a transition between two networks. In addition, the overall efficiency of the communication decreases because the loss of a fragment requires the retransmission of all fragments, resulting in an increase in the probability of retransmission. The inventors have also found that in an IP v6 (or Internet Protocol version 6) environment only the source computer can fragment the datagram. Infrastructure equipment such as Internet routers on the way can not.

Pour s'accommoder des différences de MTU et éviter la fragmentation dans les réseaux de type IP (pour Internet Protocol en anglais), il est proposé dans le document IETF RFC1191, "Path MTU Discovery", J. Mogul from DECWRL, S. Deering from Standford University, November 1990 une technique d'adaptation dynamique du MTU sur un chemin Internet arbitraire. Un chemin est défini par la combinaison des informations suivantes : une adresse source, une adresse destination et un type de service IP et accessoirement un niveau de sécurité. Cette technique pour découvrir la valeur maximale du MTU sur un chemin appelé PMTU (pour Path MTU en anglais) est basée d'une part sur l'utilisation d'un bit du type DF (pour Don't fragment en anglais) contenu dans l'en-tête IP du datagramme et d'autre part sur l'utilisation d'un message d'erreur du type ICMP (pour Internet Control Message Protocol en anglais) retourné par les équipements d'infrastructure de type routeur lorsque la taille du message à faire suivre sur un sous-réseau excède le MTU de celui-ci. To accommodate differences in MTU and to avoid fragmentation in IP-based networks, it is proposed in IETF RFC1191, "Path MTU Discovery", J. Mogul from DECWRL, S. Deering from Standford University, November 1990 a dynamic adaptation technique of MTU on an arbitrary Internet path. A path is defined by the combination of the following information: a source address, a destination address and a type of IP service and secondarily a security level. This technique to discover the maximum value of the MTU on a path called PMTU (for Path MTU in English) is based on the one hand on the use of a bit of the type DF (for Do not fragment in English) contained in the the IP header of the datagram and secondly on the use of an ICMP (Internet Control Message Protocol) type error message returned by the router type infrastructure equipment when the message size to be forwarded on a subnet exceeds the MTU of that subnet.

Ainsi, une machine hôte générant un datagramme avec le bit DF à 1 se verra retourner un message d'erreur ICMP (type = 3, code =4) avec la valeur du MTU du sous-réseau suivant à atteindre, le datagramme étant quant à lui détruit. La machine hôte à l'origine du datagramme de taille trop grande peut alors adopter différentes stratégies : par exemple réduire la valeur du PMTU et donc des datagrammes suivants avec la valeur retournée dans le message d'erreur ICMP ou cesser de positionner le bit DF à 1 dans les datagrammes relatifs au PMTU. Dans le document de brevet US 5,959,974, il est également proposé de sonder le chemin à considérer en utilisant un message de contrôle du type ICMP Echo Request , ce qui permet d'évaluer la valeur du MTU sans perte de données utilisateur par les équipements d'infrastructure (par exemple les routeurs Internet). On connaît plusieurs techniques permettant d'améliorer davantage l'efficacité (c'est-à-dire réduire davantage le temps de détermination du PMTU). Une première technique connue consiste à mettre en oeuvre un mécanisme de retour de message d'erreur ICMP en cas de datagramme trop grand et un mécanisme de détermination du PMTU sur le chemin restant à parcourir par le datagramme à l'origine de cette erreur. Cette première technique est notamment présentée dans le document de brevet US2003/0188015. Une deuxième technique, notamment présentée dans le document de brevet US2003/0185208, propose pour un environnement IP v6 une amélioration de la méthode de découverte d'un PMTU en émettant un message de découverte d'un PMTU dont l'en-tête IP contient la valeur courante du PMTU qui est mise à jour par les routeurs mettant en oeuvre le mécanisme de découverte. La machine hôte qui réceptionne ce message de découverte extrait la valeur du PMTU à la réception pour le retourner à la machine hôte dont est issu ce message. Thus, a host machine generating a datagram with the DF bit at 1 will be returned an ICMP error message (type = 3, code = 4) with the value of the MTU of the next subnet to be reached, the datagram being as for destroy him. The host machine at the origin of the datagram of size too big can then adopt different strategies: for example to reduce the value of the PMTU and thus of the following datagrams with the value returned in the ICMP error message or stop positioning the bit DF to 1 in the PMTU datagrams. In patent document US Pat. No. 5,959,974, it is also proposed to probe the path to be considered by using a control message of the ICMP Echo Request type, which makes it possible to evaluate the value of the MTU without any loss of user data by the equipments. infrastructure (eg Internet routers). Several techniques are known to further improve efficiency (i.e., further reduce the PMTU determination time). A first known technique consists in implementing an ICMP error message return mechanism in case of a datagram that is too large and a mechanism for determining the PMTU on the path remaining to be traversed by the datagram causing this error. This first technique is in particular presented in patent document US2003 / 0188015. A second technique, in particular presented in the patent document US2003 / 0185208, proposes for an IP v6 environment an improvement of the PMTU discovery method by issuing a PMTU discovery message whose IP header contains the current value of the PMTU that is updated by the routers implementing the discovery mechanism. The host machine that receives this discovery message retrieves the value of the PMTU upon receipt to return it to the host machine from which this message originated.

Dans le document IETF internet draft, " Packetization Layer Path MTU Discovery " , M. Mathis, J. Heffner from PSC, September 25, 2006 , il est décrit une méthode de découverte robuste du MTU sur un chemin basée sur l'émission de messages de découverte à partir d'une valeur initiale du MTU puis en augmentant sa valeur jusqu'à l'échec de la transmission afin de déterminer la valeur limite du MTU pour ce chemin. Ces techniques connues permettent dans le cas général de déterminer la valeur du MTU sur un chemin entre deux machines hôtes d'un réseau IP. Cependant la présence d'un tunnel sur le chemin reliant deux machines hôtes nécessite des opérations particulières des têtes de tunnel. En effet, l'encapsulation du datagramme original dans un tunnel a pour effet de masquer l'adresse de la véritable machine hôte dont est issu ce datagramme par l'adresse de la tête de tunnel. Ainsi, un routeur en cas de problème de taille de MTU retournera un message d'erreur ICMP non pas à la machine hôte source du datagramme mais à la tête de tunnel. Pour résoudre les problèmes précités, il est traditionnellement envisagé de mettre en oeuvre un mécanisme de fragmentation à l'entrée du tunnel ou un mécanisme de découverte du MTU dans le tunnel. Cependant, un inconvénient majeur de cette solution connue réside dans le fait qu'elle ne permet pas de relayer les messages d'erreur ICMP pour des RPVs de niveau 2. En effet, dans le cas d'un RPV de niveau 2, compte tenu de la méthode d'encapsulation réalisée, les informations contenues dans le message d'erreur ICMP, issu du routeur ayant détecté une erreur, ne permettent pas la reconstruction d'un message d'erreur ICMP en tête de tunnel. Il en résulte un délai d'attente qui peut atteindre la valeur d'épuisement du temporisateur du protocole de transport de la machine hôte entre le moment où la tête de tunnel est informée du nouveau MTU et sa prise en compte par la machine hôte. A titre d'exemple, pour le protocole TCP (pour Transmission Control Protocol en anglais, protocole de contrôle de transmissions en français), la valeur du temporisateur avant retransmission, qui dépend du temps d'aller retour sur le réseau (ou RTT , pour Round Trip Time en anglais), est bornée entre 1 et 64 secondes. 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. Plus précisément, dans au moins un mode de réalisation de l'invention, un objectif est de fournir une technique de notification à un dispositif source d'une taille limite de datagrammes transitant dans un tunnel, permettant d'éviter la fragmentation des datagrammes. Au moins un mode de réalisation de l'invention a également pour objectif de fournir une telle technique qui soit simple à mettre en oeuvre et peu coûteuse. Un autre objectif d'au moins un mode de réalisation de l'invention est de fournir une telle technique pouvant être mise en oeuvre dans les têtes de tunnel, et qui soit donc transparente pour les équipements source et destination. Un objectif complémentaire d'au moins un mode de réalisation de l'invention est de fournir une telle technique qui soit notamment bien adaptée au cas d'un tunnel mettant en oeuvre une sélection dynamique du protocole de transport. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de notification à un dispositif source d'une taille limite de paquets de données destinées à être transmises dans un tunnel comprenant une pluralité de canaux de transmission, ledit dispositif source étant relié à une tête de tunnel via un réseau de communication, ledit procédé étant mis en oeuvre par ladite tête de tunnel formant un point d'entrée dudit tunnel. In the IETF internet draft, "Packetization Layer Path MTU Discovery", M. Mathis, J. Heffner from PSC, September 25, 2006, a method for robust MTU discovery on a message-based path is described. of discovery from an initial value of the MTU and then increasing its value until the failure of the transmission to determine the MTU limit value for that path. These known techniques allow in the general case to determine the value of the MTU on a path between two host machines of an IP network. However, the presence of a tunnel on the path connecting two host machines requires particular operations of the tunnel heads. Indeed, the encapsulation of the original datagram in a tunnel has the effect of masking the address of the real host machine from which this datagram came from the address of the tunnel head. Thus, a router in the event of an MTU size problem will return an ICMP error message not to the source host machine of the datagram but to the tunnelhead. To solve the aforementioned problems, it is traditionally envisaged to implement a fragmentation mechanism at the tunnel entrance or a discovery mechanism of the MTU in the tunnel. However, a major disadvantage of this known solution lies in the fact that it does not allow ICMP error messages to be relayed for level 2 VPNs. Indeed, in the case of a level 2 VPN, given of the encapsulation method carried out, the information contained in the ICMP error message, from the router having detected an error, does not allow the reconstruction of an ICMP error message at the head of the tunnel. This results in a timeout that can reach the timeout value of the transport protocol timer of the host machine between the time the tunnelhead is informed of the new MTU and its consideration by the host machine. For example, for the TCP (Transmission Control Protocol in English) protocol, the value of the timer before retransmission, which depends on the time of return on the network (or RTT, for Round Trip Time in English), is bounded between 1 and 64 seconds. 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. Specifically, in at least one embodiment of the invention, an objective is to provide a notification technique to a source device of a size limit of datagrams passing through a tunnel, to avoid the fragmentation of datagrams. At least one embodiment of the invention also aims to provide such a technique that is simple to implement and inexpensive. Another objective of at least one embodiment of the invention is to provide such a technique that can be implemented in the tunnel heads, and is therefore transparent to the source and destination equipment. A complementary objective of at least one embodiment of the invention is to provide such a technique which is particularly well suited to the case of a tunnel implementing a dynamic selection of the transport protocol. SUMMARY OF THE INVENTION In a particular embodiment of the invention, there is provided a method of notifying a source device of a size limit of data packets intended to be transmitted in a tunnel comprising a plurality of channels. transmission device, said source device being connected to a tunnel head via a communication network, said method being implemented by said tunnel head forming an entry point of said tunnel.

Selon l'invention, le procédé de notification comprend les étapes suivantes, pour chaque flux de données destinées à être transmises dans ledit tunnel et provenant dudit dispositif source : a) détection d'un événement déclencheur lié à un nouveau canal associé audit flux pour le transport dudit flux dans ledit tunnel ; b) obtention d'une première taille limite de paquets associée à un canal précédent associé audit flux pour le transport dudit flux dans ledit tunnel ; c) obtention d'une deuxième taille limite de paquets associée audit nouveau canal ; d) détection d'un changement de taille limite de paquets, par comparaison de ladite première taille limite de paquets avec ladite deuxième taille limite de paquets ; e) en cas de détection positive, transmission d'un message de changement de taille limite de paquets vers ledit dispositif source. Le principe général de l'invention consiste donc à retourner un message de changement de taille limite de paquets vers le dispositif source de manière à ne pas mettre en oeuvre un mécanisme de fragmentation à l'entrée du tunnel. Ainsi, l'invention permet de résoudre le problème du masquage d'adresse du dispositif source par le mécanisme d'encapsulation de la tête de tunnel et donc de notifier plus rapidement un changement de taille limite de paquets au dispositif source. Selon l'invention, la transmission du message de changement de taille limite de paquets est conditionnée par la détection successive d'un événement déclencheur et d'un changement de taille limite de paquets, c' est-à-dire la diminution ou l'augmentation de taille limite de paquets. De façon avantageuse, un premier événement déclencheur est un basculement de transmission, pour ledit flux, dudit canal précédent vers ledit nouveau canal, qui est un canal distinct dudit canal précédent. On a par exemple un basculement d'un canal TCP (canal précédent) vers un canal UDP (nouveau canal). D'une part, ces canaux peuvent emprunter des chemins différents pour relier un premier réseau de communication local (LAN) à un second réseau de communication local (LAN) par un tunnel, ce qui fait que les tailles maximales de paquets autorisées associées à ces chemins diffèrent. De plus, le fait de basculer d'un canal précédent utilisant un premier protocole d'encapsulation et de transport vers un nouveau canal utilisant un second protocole d'encapsulation et de transport engendre un changement de taille d'entête de paquet ajoutée par la tête de tunnel ce qui provoque un changement de taille maximale de paquets autorisée pour les flux subissant ce basculement de canal. According to the invention, the notification method comprises the following steps, for each data stream intended to be transmitted in said tunnel and coming from said source device: a) detecting a triggering event linked to a new channel associated with said stream for the transporting said stream in said tunnel; b) obtaining a first packet size limit associated with a previous channel associated with said stream for transporting said stream in said tunnel; c) obtaining a second packet size limit associated with said new channel; d) detecting a packet size change, by comparing said first packet size with said second packet size; e) in case of positive detection, transmission of a packet size change message to said source device. The general principle of the invention is therefore to return a packet size change message to the source device so as not to implement a fragmentation mechanism at the tunnel entrance. Thus, the invention makes it possible to solve the problem of masking the address of the source device by the encapsulation mechanism of the tunnel head and thus to notify faster a packet size change to the source device. According to the invention, the transmission of the packet size change message is conditioned by the successive detection of a triggering event and a packet size change, that is, the decrease or the packet size increase. Advantageously, a first triggering event is a transmission switch for said stream from said previous channel to said new channel, which is a separate channel from said previous channel. For example, there is a switch from a TCP channel (previous channel) to a UDP channel (new channel). On the one hand, these channels can take different paths to connect a first local area network (LAN) to a second local area network (LAN) through a tunnel, so that the maximum allowed packet sizes associated with these paths differ. In addition, switching from a previous channel using a first encapsulation and transport protocol to a new channel using a second encapsulation and transport protocol results in a packet header size change added by the head. This causes a maximum allowed packet size change for streams undergoing this channel failover.

Avantageusement, le tunnel comprend des canaux de transmission réels et des canaux de transmission virtuels, un canal réel étant un canal dans lequel les flux transportés sont encapsulés par un protocole de transport unique. Le premier événement déclencheur est un basculement appartenant au groupe comprenant : - un basculement depuis un premier canal réel vers un second canal réel ; - un basculement depuis un canal réel vers un canal virtuel ; - un basculement depuis un canal virtuel vers un canal réel ; -un basculement depuis un premier canal virtuel vers un second canal virtuel. Un canal virtuel associé à un flux donné pour le transport dudit flux dans ledit tunnel est défini par : - deux canaux réels dudit tunnel, et - un mécanisme de basculement progressif de l'un vers l'autre desdits canaux réels, permettant pour chaque paquet dudit flux donné de sélectionner de façon dynamique un canal effectif parmi lesdits canaux réels. Le canal réel peut être par exemple un canal réel TCP ou un canal réel UDP. Advantageously, the tunnel comprises real transmission channels and virtual transmission channels, a real channel being a channel in which the transported streams are encapsulated by a single transport protocol. The first trigger event is a failover belonging to the group comprising: - a switch from a first real channel to a second real channel; a switch from a real channel to a virtual channel; a switch from a virtual channel to a real channel; a switch from a first virtual channel to a second virtual channel. A virtual channel associated with a given stream for transporting said stream in said tunnel is defined by: - two real channels of said tunnel, and - a progressive switching mechanism from one to the other of said real channels, allowing for each packet said given stream dynamically selecting an effective one of said real channels. The real channel may be for example a real TCP channel or a real UDP channel.

Le canal virtuel peut être par exemple un canal virtuel TCP vers UDP ou un canal virtuel UDP vers TCP. Le mécanisme de basculement progressif permet d'éviter de brutales variations de la quantité de donnée à transmettre sur un canal, qui auraient pour conséquences une détérioration de la transmission. The virtual channel may be for example a virtual channel TCP to UDP or a virtual channel UDP to TCP. The progressive tilting mechanism makes it possible to avoid sudden variations in the amount of data to be transmitted on a channel, which would result in a deterioration of the transmission.

Par exemple, lors d'un basculement d'un canal UDP vers un canal TCP (c'est-à-dire d'un canal dont le protocole de transport est le protocole UDP vers un canal dont le protocole de transport est le protocole TCP), si l'on bascule immédiatement tous les paquets sur le canal TCP, sans prendre garde de respecter la fenêtre (de congestion) TCP du canal TCP, les paquets ne pouvant être transmis immédiatement vont être temporisés (bufferisés), créant une augmentation artificielle du RTT ( Round Trip Time , ou temps d'aller-retour de bout en bout dans le réseau ) pour ces paquets, pouvant aller jusqu'à une retransmission de certains paquets qui aurait des effets catastrophiques dans le cas de où le protocole embarqué est le protocole TCP. En clair, tous les bénéfices attendus d'un basculement du canal UDP vers le canal TCP seraient perdus, et l'on aurait juste fait empirer les choses en introduisant des perturbations artificielles. For example, during a switchover from a UDP channel to a TCP channel (that is to say from a channel whose transport protocol is the UDP protocol to a channel whose transport protocol is the TCP protocol ), if we immediately switch all the packets on the TCP channel, without taking care to respect the TCP TCP congestion window, the packets that can not be transmitted immediately will be timed (buffered), creating an artificial increase of RTT (Round Trip Time, or end-to-end round-trip time in the network) for these packets, up to a retransmission of some packets that would have catastrophic effects in the case of where the embedded protocol is the TCP protocol. Clearly, all the expected benefits of switching from the UDP channel to the TCP channel would be lost, and we would have just made things worse by introducing artificial disturbances.

De même, un basculement d'un canal TCP vers un canal UDP sans contrôle pourrait engorger le medium de transmission, car n'oublions pas que les différents canaux de transmission partagent le même accès physique à l'Internet. Dans le cas d'un basculement d'un canal TCP vers un canal UDP, des paquets temporisés sur le canal TCP et destinés à être transmis sur le canal TCP seraient fortement pénalisés par une augmentation rapide du débit sur le canal UDP. Il faut donc mettre en place un système progressif permettant de transférer l'utilisation de la bande passante par le canal TCP vers le canal UDP. Avec un tel système, les paquets temporisés sur le canal TCP ont le temps d'être écoulés , Si bien que lorsque la totalité des paquets sont transmis sur le nouveau canal (canal UDP), aucun paquet n'a été pénalisé. Similarly, a switch from a TCP channel to a UDP channel without control could clog the medium of transmission, because let us not forget that the different transmission channels share the same physical access to the Internet. In the case of a switchover from a TCP channel to a UDP channel, time-delayed packets on the TCP channel intended to be transmitted over the TCP channel would be strongly penalized by a rapid increase in the bit rate on the UDP channel. It is therefore necessary to set up a progressive system making it possible to transfer the use of the bandwidth by the TCP channel to the UDP channel. With such a system, the packets timed on the TCP channel have time to be passed, so that when all the packets are transmitted on the new channel (UDP channel), no packet has been penalized.

Selon une caractéristique avantageuse, la taille limite de paquets associée à un canal virtuel est égale à la plus petite taille limite de paquets parmi les deux tailles limites de paquets associées aux deux canaux réels. Avantageusement, un second événement déclencheur est une réception d'un message d'erreur indiquant un changement de taille limite de paquets pour un canal de 20 transport du flux qui constitue à la fois le canal précédent et le nouveau canal, lesdites première et deuxième tailles limites de paquets étant respectivement une précédente et une nouvelle taille limite de paquets dudit canal de transmission. Selon une caractéristique avantageuse, le procédé de notification comprend : - une phase de configuration comprenant une première étape d'association d'une information de type de paquet, à une information de canal de transmission, à une information de taille limite de paquets, et à une liste d'identifiants de flux transmis par ledit canal de transmission et composés de paquets dudit type de paquet ; - une phase de mise à jour, quand un changement de taille limite de paquets est détecté pour la transmission d'un type de paquet donné, de l'information de taille limite de paquets associée audit type de paquet. 25 30 Avantageusement, si ledit nouveau canal est un canal réel, la phase de mise à jour comprend une étape de mise à jour de l'information de taille limite de paquets associée à des types de paquets transmis par un canal virtuel défini par un couple de canaux réels comprenant ledit nouveau canal. Selon un mode de réalisation particulier, la phase de configuration comprend en outre une deuxième étape d'association d'un identifiant de flux à une adresse de dispositif source. La phase de mise à jour comprend en outre les étapes suivantes, en cas de détection du second événement déclencheur : -récupération d'un identifiant de flux dans le message d'erreur, ledit identifiant de flux étant inséré par la tête de tunnel dans les paquets dudit flux pendant une étape de transmission desdits paquets dans le tunnel ; - récupération de l'adresse de dispositif source associée à l'identifiant de flux récupéré ; - construction d'un message de changement de taille limite de paquets à partir de l'information de taille limite de paquets mise à jour ; - transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. Dans une variante de réalisation, le procédé de notification comprend les étapes suivantes : 20 - récupération d'un ensemble d'identifiants de flux à partir d'un identifiant dudit nouveau canal ; pour chaque identifiant de flux de l'ensemble récupérée : -récupération de l'adresse de dispositif source associée audit identifiant de flux; - construction d'un message de changement de taille limite de paquets à partir de 25 ladite information de taille limite de paquets mise à jour ; - transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un 30 support lisible par ordinateur et/ou exécutable par un processeur, le programme comprenant des instructions de code de programme pour l'exécution des étapes du 10 15 procédé de notification tel que précédemment décrit, 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 un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé de notification tel que précédemment décrit. Dans un autre mode de réalisation, l'invention concerne une tête de tunnel destinée à mettre en oeuvre un procédé de notification à un dispositif source d'une taille limite de paquets de données destinées à être transmises dans un tunnel comprenant une pluralité de canaux de transmission, ledit dispositif source étant relié à ladite tête de tunnel via un réseau de communication, ladite tête de tunnel comprenant des moyens de transmission dans ledit tunnel de flux de données provenant dudit dispositif source. Selon l'invention, la tête de tunnel comprend : - des moyens de détection d'un événement déclencheur lié à un nouveau canal associé à un flux donné pour le transport dudit flux donné dans ledit tunnel ; - des moyens d'obtention d'une première taille limite de paquets associée à un canal précédent associé audit flux donné pour le transport dudit flux donné dans ledit tunnel ; - des moyens d'obtention d'une deuxième taille limite de paquets associée audit nouveau canal ; - des moyens de détection d'un changement de taille limite de paquets, par comparaison de ladite première taille limite de paquets avec ladite deuxième taille limite de paquets ; - des moyens de transmission d'un message de changement de taille limite de paquets vers ledit dispositif source. According to an advantageous characteristic, the packet size limit associated with a virtual channel is equal to the smallest packet size limit among the two packet size limits associated with the two real channels. Advantageously, a second triggering event is a receipt of an error message indicating a packet size change for a transport channel of the stream that constitutes both the previous channel and the new channel, said first and second sizes. packet limits being respectively a previous and a new packet size limit of said transmission channel. According to an advantageous characteristic, the notification method comprises: a configuration phase comprising a first step of associating a packet type information, a transmission channel information, a packet size information, and a list of stream identifiers transmitted by said transmission channel and composed of packets of said packet type; an update phase, when a packet size change is detected for the transmission of a given packet type, packet size information associated with said packet type. Advantageously, if said new channel is a real channel, the updating phase includes a step of updating the packet size information associated with packet types transmitted by a virtual channel defined by a pair real channels comprising said new channel. According to a particular embodiment, the configuration phase further comprises a second step of associating a stream identifier with a source device address. The update phase further comprises the following steps, in case of detection of the second triggering event: retrieval of a stream identifier in the error message, said stream identifier being inserted by the tunnel head into the packets of said stream during a step of transmitting said packets in the tunnel; recovering the source device address associated with the retrieved flow identifier; constructing a packet size change message from the updated packet size information; transmitting said packet size change message to the source device corresponding to the recovered source device address. In an alternative embodiment, the notification method comprises the following steps: recovering a set of stream identifiers from an identifier of said new channel; for each stream identifier of the retrieved set: retrieving the source device address associated with said stream identifier; constructing a packet size change message from said updated packet size information; transmitting said packet size change message to the source device corresponding to the recovered source device address. In another embodiment, the invention relates to a computer program product downloadable from a communication network and / or recorded on a computer-readable and / or executable medium by a processor, the program comprising code instructions of program for performing the steps of the notification method as previously described, when said program is executed on a computer. In another embodiment, the invention relates to a computer readable storage means, storing a set of instructions executable by said computer to implement the notification method as previously described. In another embodiment, the invention relates to a tunnel end for implementing a method of notifying a source device of a size limit of data packets to be transmitted in a tunnel comprising a plurality of communication channels. transmission, said source device being connected to said tunnel head via a communication network, said tunnel head comprising transmission means in said data stream tunnel from said source device. According to the invention, the tunnel head comprises: means for detecting a triggering event linked to a new channel associated with a given stream for transporting said given stream in said tunnel; means for obtaining a first packet size limit associated with a previous channel associated with said given stream for transporting said given stream in said tunnel; means for obtaining a second packet size limit associated with said new channel; means for detecting a change in packet size limit, by comparing said first packet size limit with said second packet size limit; means for transmitting a packet size change message to said source device.

Les avantages des produit programme d'ordinateur, moyen de stockage et tête de tunnel sont sensiblement les mêmes que ceux du procédé de notification et ne sont donc pas repris ci-après. De façon avantageuse, un premier événement déclencheur est un basculement de transmission, pour ledit flux donné, dudit canal précédent vers ledit nouveau canal, qui est un canal distinct dudit canal précédent. The advantages of computer program products, storage medium and tunnel end are substantially the same as those of the notification method and are therefore not repeated hereinafter. Advantageously, a first triggering event is a transmission switchover, for said given stream, from said previous channel to said new channel, which is a separate channel from said previous channel.

Préférentiellement, le tunnel comprend des canaux de transmission réels et des canaux de transmission virtuels, un canal réel étant un canal dans lequel les flux transportés sont encapsulés par un protocole de transport unique. Le premier événement déclencheur est un basculement appartenant au groupe comprenant : - un basculement depuis un premier canal réel vers un second canal réel ; - un basculement depuis un canal réel vers un canal virtuel ; - un basculement depuis un canal virtuel vers un canal réel ; -un basculement depuis un premier canal virtuel vers un second canal virtuel ; Un canal virtuel associé à un flux donné pour le transport dudit flux donné dans ledit tunnel est défini par : - deux canaux réels dudit tunnel, et - un mécanisme de basculement progressif de l'un vers l'autre desdits canaux réels, permettant pour chaque paquet dudit flux donné de sélectionner de façon dynamique un canal effectif parmi lesdits canaux réels. Preferentially, the tunnel comprises real transmission channels and virtual transmission channels, a real channel being a channel in which the transported streams are encapsulated by a single transport protocol. The first trigger event is a failover belonging to the group comprising: - a switch from a first real channel to a second real channel; a switch from a real channel to a virtual channel; a switch from a virtual channel to a real channel; a switch from a first virtual channel to a second virtual channel; A virtual channel associated with a given stream for the transport of said given stream in said tunnel is defined by: - two real channels of said tunnel, and - a mechanism of progressive switching from one to the other of said real channels, allowing for each packet of said given stream to dynamically select an effective one of said real channels.

Avantageusement, la taille limite de paquets associée à un canal virtuel est égale à la plus petite taille limite de paquets parmi les deux tailles limites de paquets associées aux deux canaux réels. Selon un mode de réalisation préférentiel de l'invention, un second événement déclencheur est une réception d'un message d'erreur indiquant un changement de taille limite de paquets pour un canal de transport du flux donné qui constitue à la fois le canal précédent et le nouveau canal, lesdites première et deuxième tailles limites de paquets étant respectivement une précédente et une nouvelle taille limite de paquets dudit canal de transmission. Avantageusement, la tête de tunnel comprend : - des moyens de configuration comprenant des premiers moyens d'association d'une information de type de paquet, à une information de canal de transmission, à une information de taille limite de paquets, et à une liste d'identifiants de flux transmis par ledit canal de transmission et composés de paquets dudit type de paquet ; - des moyens de mise à jour de l'information de taille limite de paquets associée audit type de paquet. Advantageously, the packet size limit associated with a virtual channel is equal to the smallest packet size limit of the two packet size limits associated with the two real channels. According to a preferred embodiment of the invention, a second triggering event is a reception of an error message indicating a change in packet size limit for a transport channel of the given stream which constitutes both the preceding channel and the new channel, said first and second packet size limits being respectively a previous and a new packet size limit of said transmission channel. Advantageously, the tunnel head comprises: - configuration means comprising first means for associating a packet type information, a transmission channel information, a packet size information, and a list stream identifiers transmitted by said transmission channel and composed of packets of said packet type; means for updating the packet size information associated with said packet type.

Préférentiellement, la tête de tunnel comprend des moyens de mise à jour de l'information de taille limite de paquets associée à des types de paquets transmis par un canal virtuel défini par un couple de canaux réels comprenant ledit nouveau canal. Avantageusement, les moyens de configuration comprennent en outre des deuxièmes moyens d'association d'un identifiant de flux à une adresse de dispositif source. Les moyens de mise à jour comprennent : - des moyens de récupération d'un identifiant de flux dans le message d'erreur, ledit identifiant de flux étant inséré par la tête de tunnel dans les paquets dudit flux pendant une étape de transmission desdits paquets dans le tunnel ; - des moyens de récupération de l'adresse de dispositif source associée à l'identifiant de flux récupéré ; - des moyens de construction d'un message de changement de taille limite de paquets à partir de l'information de taille limite de paquets mise à jour ; - des moyens de transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. Préférentiellement, la tête de tunnel comprend : - des moyens de récupération d'un ensemble d'identifiants de flux à partir d'un identifiant dudit nouveau canal ; -des moyens de récupération de l'adresse de dispositif source associée audit identifiant de flux; - des moyens de construction d'un message de changement de taille limite de paquets à partir de ladite information de taille limite de paquets mise à jour ; - des moyens de transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de modes de réalisation de l'invention apparaîtront à la lecture de la description suivante, donnée à titre d'exemple indicatif et non limitatif (tous les modes de réalisation de l'invention ne sont pas limités aux 5 10 15 20 25 30 caractéristiques et avantages des modes de réalisation décrits ci-après), et des dessins annexés, dans lesquels : - la figure la illustre une configuration typique de réseau privé virtuel (VPN) mettant en oeuvre un tunnel ; - la figure lb présente un diagramme de séquences illustrant un scénario relatif à l'émission d'un datagramme TCP de taille trop grande ; - la figure 2a présente un exemple de modèle en couche classique d'une tête de tunnel dans laquelle peut être mis en oeuvre le procédé selon l'invention ; - la figure 2b présente un exemple de format d'encapsulation d'une trame Ethernet véhiculant un paquet tunnel de niveau 2 ; - la figure 3 présente un format, selon un mode de réalisation particulier de l'invention, d'un datagramme IP ; - la figure 4 présente un format, selon un mode de réalisation particulier de l'invention, d'un message d'erreur ICMP ; - la figure 5 présente une table de flux de données selon un mode de réalisation particulier de l'invention ; - la figure 6 présente une table des canaux de transport selon un mode de réalisation particulier de l'invention ; - la figure 7 présente un organigramme d'un algorithme de génération d'un deuxième message d'erreur ICMP par la tête de tunnel ; - la figure 8 présente un organigramme d'un algorithme de gestion du mode de transport courant et de fenêtres de transmission pour un type de paquet, selon un mode de réalisation particulier du procédé selon l'invention ; -la figure 9a présente un organigramme d'un algorithme de gestion d'un mode transitoire UDP-vers-TCP , selon un mode de réalisation particulier du procédé selon l'invention ; - la figure 9b présente un organigramme d'un algorithme de gestion d'un mode transitoire TCP-vers-UDP , selon un mode de réalisation particulier du procédé selon l'invention ; - la figure 10 présente la structure d'un appareil de communication (tête de tunnel) selon un mode de réalisation particulier de l'invention ; - la figure 11 présente un organigramme d'un algorithme de sortie, exécuté par la tête de tunnel qui transmet via le tunnel, selon un mode de réalisation particulier du procédé selon l'invention ; - la figure 12 présente un organigramme d'un algorithme d'entrée, exécuté par la tête de tunnel qui reçoit via le tunnel, selon un mode de réalisation particulier du procédé selon l'invention ; - la figure 13 présente un organigramme d'un algorithme de sélection d'un canal effectif (détail de l'étape 3 de la figure 11), selon un mode de réalisation particulier du procédé selon l'invention. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. La présente invention concerne donc une technique permettant de notifier à un dispositif source une taille limite de paquet associée à un canal de transport, pour éviter une fragmentation de datagrammes. Le principe général de l'invention consiste à utiliser un identifiant de flux pour retrouver l'adresse du dispositif source à laquelle un message de changement de taille limite de paquets (comprenant une information relative à la taille limite de paquet associée au canal de transport) doit être transmis. Preferably, the tunnel head includes means for updating the packet size information associated with packet types transmitted by a virtual channel defined by a pair of real channels comprising said new channel. Advantageously, the configuration means further comprise second means for associating a stream identifier with a source device address. The updating means comprise: means for retrieving a stream identifier in the error message, said stream identifier being inserted by the tunnel head into the packets of said stream during a step of transmission of said packets in said packet. the tunnel ; means for recovering the source device address associated with the recovered stream identifier; means for constructing a packet size change message from the updated packet size information; means for transmitting said packet size change message to the source device corresponding to the recovered source device address. Preferably, the tunnel head comprises: means for recovering a set of stream identifiers from an identifier of said new channel; means for recovering the source device address associated with said stream identifier; means for constructing a packet size change message from said updated packet size information; means for transmitting said packet size change message to the source device corresponding to the recovered source device address. 5. LIST OF FIGURES Other features and advantages of embodiments of the invention will become apparent on reading the following description, given by way of indicative and nonlimiting example (not all the embodiments of the invention are not limited to the features and advantages of the embodiments described hereinafter), and the accompanying drawings, in which: FIG. 1a illustrates a typical virtual private network (VPN) configuration implementing a tunnel ; FIG. 1b presents a sequence diagram illustrating a scenario relating to the issuance of a TCP datagram of a size that is too large; FIG. 2a shows an example of a conventional layer model of a tunnel head in which the method according to the invention can be implemented; FIG. 2b shows an exemplary encapsulation format of an Ethernet frame carrying a level 2 tunnel packet; FIG. 3 shows a format, according to a particular embodiment of the invention, of an IP datagram; FIG. 4 shows a format, according to a particular embodiment of the invention, of an ICMP error message; FIG. 5 presents a data flow table according to a particular embodiment of the invention; FIG. 6 presents a table of the transport channels according to a particular embodiment of the invention; FIG. 7 presents a flow chart of an algorithm for generating a second ICMP error message by the tunnel head; FIG. 8 presents a flowchart of an algorithm for managing the current transport mode and transmission windows for a type of packet, according to a particular embodiment of the method according to the invention; FIG. 9a presents a flowchart of an algorithm for managing a UDP-to-TCP transient mode, according to a particular embodiment of the method according to the invention; FIG. 9b presents a flowchart of a TCP-to-UDP transient mode management algorithm, according to a particular embodiment of the method according to the invention; - Figure 10 shows the structure of a communication apparatus (tunnel head) according to a particular embodiment of the invention; FIG. 11 shows a flowchart of an output algorithm, executed by the tunnel head which transmits via the tunnel, according to a particular embodiment of the method according to the invention; FIG. 12 presents a flowchart of an input algorithm, executed by the tunnel head which receives via the tunnel, according to a particular embodiment of the method according to the invention; FIG. 13 presents a flowchart of an algorithm for selecting an effective channel (detail of step 3 of FIG. 11), according to a particular embodiment of the method according to the invention. 6. DETAILED DESCRIPTION In all the figures of this document, the elements and identical steps are designated by the same numerical reference. The present invention therefore relates to a technique for notifying a source device a packet size limit associated with a transport channel, to avoid fragmentation of datagrams. The general principle of the invention is to use a stream identifier to retrieve the address of the source device to which a packet size change message (including packet size information associated with the transport channel). must be transmitted.

La figure la illustre une configuration typique de réseau privé virtuel (VPN) mettant en oeuvre un tunnel 100 entre une tête de tunnel locale 101 et une tête de tunnel distante 102, à travers un réseau de communication 107 (Internet par exemple). Ce tunnel 100 interconnecte deux réseaux locaux : LAN A 103 et LAN B 104. Chacun des réseaux LAN 103 et 104 comporte un équipement d'accès Internet haut débit (passerelle domestique, ou Home Gateway , pouvant intégrer un pare-feu ( Firewall 105 et 106, 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 restitutions des médias numériques 108 et 112. Une tête de tunnel peut ê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. FIG. 1a illustrates a typical virtual private network (VPN) configuration implementing a tunnel 100 between a local tunnel endpoint 101 and a remote tunnel endpoint 102, through a communication network 107 (Internet for example). This tunnel 100 interconnects two local networks: LAN A 103 and LAN B 104. Each of the LANs 103 and 104 includes high-speed Internet access equipment (home gateway, or Home Gateway, which can integrate a firewall (Firewall 105 and 106, PC 109 and 111 type equipment, servers 110 and 113 for storing and sharing digital media (audio, video, photo), as well as digital media rendering equipment 108 and 112. The tunnel system can be integrated into audiovisual equipment such as a digital television, or it can be present in a PC-type device in the form of a program performing the functions associated with it.

Une fois que le tunnel 100 est établi, les équipements 108, 109, et 110, connectés au réseau LAN A 103, sont capables de communiquer avec les équipements 111, 112 et 113, connectés au réseau LAN B 104. Par exemple, le client 108 connecté au réseau LAN A 103 peut communiquer avec le serveur 113 connecté au réseau LAN B 104. Once the tunnel 100 is established, the devices 108, 109, and 110, connected to the LAN network A 103, are capable of communicating with the devices 111, 112 and 113, connected to the LAN B network 104. For example, the client 108 connected to the LAN A 103 may communicate with the server 113 connected to the LAN B 104.

Dans cette figure la, on a représenté un réseau de communication simple avec un seul tunnel, mais il est bien entendu 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 lb, nous allons maintenant décrire un diagramme de séquences illustrant un scénario relatif à l'émission d'un datagramme TCP de taille trop grande transitant dans un tunnel de niveau 2 classique. Pour une meilleure compréhension de ce diagramme, on a repris dans la partie haute de cette figure lb, les éléments importants de la figure la à laquelle on a ajouté deux routeurs Internet 114 et 115. Dans une première phase 120, un datagramme 150, par exemple, de longueur 1500 octets ( bytes en anglais) est issu du serveur d'application 110 du réseau LAN A 103 à destination du terminal 112 du réseau LAN B 104. La tête de tunnel compare la taille de ce datagramme 150 et la valeur du MTU du tunnel 100. Bien que l'interface de communication de la tête de tunnel 101 soit la même que celle du serveur 110, compte tenu du mécanisme d'encapsulation réalisé par la tête de tunnel, la valeur du MTU du tunnel 100 est, dans cet exemple, de 1420 octets. La taille du datagramme 150 de longueur 1500 octets est donc supérieure au MTU du tunnel 100. In this figure, there is shown a simple communication network with a single tunnel, but it is understood that the same tunnel head may be required to manage several tunnels (to as many tunnel heads) to interconnect. a first LAN network to several other LAN networks. In addition, for the sake of simplification, infrastructure equipment in the Internet network such as Internet routers has not been represented. In relation to FIG. 1b, we will now describe a sequence diagram illustrating a scenario relating to the issuance of a TCP datagram of too large size passing through a conventional level 2 tunnel. For a better understanding of this diagram, we have taken up in the upper part of this figure lb, the important elements of Figure la to which we added two Internet routers 114 and 115. In a first phase 120, a datagram 150, by example, of length 1500 bytes (bytes in English) is from the application server 110 of the LAN A 103 network to the terminal 112 of the LAN B network 104. The tunnel head compares the size of this datagram 150 and the value of the MTU tunnel 100. Although the communication interface of the tunnel head 101 is the same as that of the server 110, given the encapsulation mechanism performed by the tunnel end, the MTU value of the tunnel 100 is, in this example, 1420 bytes. The size of the datagram 150 of length 1500 bytes is therefore greater than the MTU of the tunnel 100.

Il s'ensuit alors une deuxième phase 121, dans laquelle la tête de tunnel rejette le datagramme 150 et émet un message d'erreur ICMP 151 (code=3, type=4) à destination du serveur 110 (à l'origine du datagramme de taille trop grande), en lui précisant la valeur du MTU du tunnel (soit MTU = 1420 octets) prenant en compte les éléments nécessaires à l'encapsulation et à la signalisation dans le tunnel ajoutés par la tête de tunnel. Sur réception de ce message, le serveur 110 peut ajuster la longueur de ses datagrammes à cette nouvelle valeur de MTU. Ainsi dans une troisième phase 122 il effectue une nouvelle transmission 152 en tenant compte de la nouvelle valeur de MTU. La taille de ce datagramme 152 répond ainsi à la limite du MTU imposée par le tunnel. La tête de tunnel réalise donc son opération d'encapsulation et transfère le nouveau datagramme 153 ainsi formé dans le tunnel. Cependant, dans cette quatrième phase, alors que le datagramme 153 transite dans le tunnel 110 à travers Internet 107, il entre dans un premier routeur Internet 114 pour être routé vers un deuxième routeur Internet 115 sur le chemin de sa destination. Ce premier routeur compare à son tour la taille du datagramme 153 avec la valeur du MTU sur le chemin menant vers le deuxième routeur. Dans cet exemple, la taille du datagramme 153 est supérieure au MTU du chemin menant vers le deuxième routeur Internet 115. Le routeur Internet 114 exécute alors une cinquième phase dans laquelle il rejette ce datagramme 153 et émet à son tour un message d'erreur ICMP 154 (code=3, type=4), en précisant la valeur du MTU pour le chemin à destination du deuxième routeur 115. Du fait de l'encapsulation, ce message d'erreur ICMP 154 est émis à destination de la tête de tunnel 101 dont est issu ce datagramme 153 comportant lui-même le datagramme original 152 encapsulé. Sur réception de ce message d'erreur ICMP 154, la tête de tunnel 101 met à jour le MTU du tunnel 100 (soit MTU = 920 octets) en tenant compte de la nouvelle valeur du MTU contenue dans le message d'erreur ICMP et l'opération d'encapsulation du tunnel 100. Dans une sixième phase 125, le serveur 110, ne recevant pas de message d'acquittement de son datagramme 152 après une temporisation prédéterminée (par exemple le délai d'attente de retransmission RTO (pour Retransmission Timeout en anglais) du protocole TCP), fait une nouvelle tentative d'émission 155 de son datagramme 152 de longueur 1420 octets. A l'entrée du tunnel, la taille de ce datagramme 155 est à nouveau comparée à la nouvelle valeur du MTU du tunnel 100 (soit MTU = 920 octets). La taille du datagramme 155 est 1420 octets et est donc supérieure au nouveau MTU du tunnel 100. Ensuite, dans une septième phase 126, le datagramme 155 est rejeté et un message d'erreur ICMP 156 (code=3, type=4) est retourné au serveur 110 avec la nouvelle valeur de MTU du tunnel 100 (soit MTU = 920 octets). Enfin, dans une huitième phase 127 (comme dans la troisième phase 122), suite à la réception du message d'erreur ICMP 156, le serveur émet un nouveau datagramme 157 de taille inférieure (soit 920 octets) au datagramme 155 rejeté. Celui-ci est encapsulé dans un nouveau datagramme 158 par la tête de tunnel pour être transféré dans le tunnel à travers le réseau de communication 107. Le datagramme 157 sera donc reçu avec succès et pourra être acquitté conformément au protocole de transport utilisé par le serveur. It then follows a second phase 121, in which the tunnel head rejects the datagram 150 and sends an ICMP error message 151 (code = 3, type = 4) to the server 110 (at the origin of the datagram large size), by specifying the value of the MTU of the tunnel (MTU = 1420 bytes) taking into account the elements necessary for the encapsulation and signaling in the tunnel added by the tunnel head. Upon receipt of this message, the server 110 may adjust the length of its datagrams to this new MTU value. Thus in a third phase 122 it performs a new transmission 152 taking into account the new value of MTU. The size of this datagram 152 thus meets the limit of the MTU imposed by the tunnel. The tunnel head thus performs its encapsulation operation and transfers the new datagram 153 thus formed in the tunnel. However, in this fourth phase, while the datagram 153 passes through the tunnel 110 through the Internet 107, it enters a first Internet router 114 to be routed to a second Internet router 115 on the path to its destination. This first router in turn compares the size of the datagram 153 with the value of the MTU on the path to the second router. In this example, the size of the datagram 153 is greater than the MTU of the path leading to the second Internet router 115. The Internet router 114 then executes a fifth phase in which it rejects this datagram 153 and in turn sends an ICMP error message. 154 (code = 3, type = 4), specifying the value of the MTU for the path to the second router 115. Due to the encapsulation, this ICMP error message 154 is sent to the tunnel end 101 from which this datagram 153 is derived including itself the encapsulated original datagram 152. On receipt of this ICMP error message 154, the tunnel head 101 updates the MTU of the tunnel 100 (MTU = 920 bytes) taking into account the new value of the MTU contained in the ICMP error message. encapsulation operation of the tunnel 100. In a sixth phase 125, the server 110, not receiving an acknowledgment message from its datagram 152 after a predetermined time delay (for example the retransmission timeout RTO (for Retransmission Timeout in English) of TCP), makes a new attempt to issue 155 of its datagram 152 of length 1420 bytes. At the entrance of the tunnel, the size of this datagram 155 is again compared to the new value of the MTU of the tunnel 100 (MTU = 920 bytes). The size of the datagram 155 is 1420 bytes and is therefore greater than the new MTU of the tunnel 100. Then, in a seventh phase 126, the datagram 155 is rejected and an ICMP error message 156 (code = 3, type = 4) is returned to the server 110 with the new MTU value of the tunnel 100 (MTU = 920 bytes). Finally, in an eighth phase 127 (as in the third phase 122), following the reception of the ICMP error message 156, the server sends a new datagram 157 of smaller size (ie 920 bytes) to the rejected datagram 155. It is encapsulated in a new datagram 158 by the tunnel end to be transferred into the tunnel through the communication network 107. The datagram 157 will therefore be received successfully and may be acknowledged in accordance with the transport protocol used by the server. .

Comme on peut le constater à la lecture de ce diagramme de séquences, l'émission d'un datagramme 150 de taille trop importante provoque plusieurs retransmissions 152 et 155 ainsi qu'un délai significatif entre la transmission du datagramme 150 initial (ayant échoué) et la transmission finale du datagramme 157 (résultant des opérations décrites ci-dessus). Ce délai peut être considérable lorsque la sixième phase 125 résulte de l'échéance d'une temporisation avant retransmission, comme le délai d'attente de retransmission RTO du protocole TCP qui peut être compris entre 1 et 64 secondes en fonction du temps d'aller-retour sur le réseau (ou Round Trip Time en anglais). En relation avec la figure 2a, nous allons désormais décrire le cheminement d'une trame Ethernet issue d'un des équipements 108, 109, 110 (connectés au réseau LAN A 103) et qui va entrer dans le tunnel 100. Pour ce faire, on va utiliser un modèle en couche 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écessaires 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 lorsqu'une tête de tunnel 101 est intégrée dans un équipement conforme à la norme UPnP. La tête de tunnel 101 comporte une interface physique Ethernet 208 qui remet les trames Ethernet issues des équipements 108, 109, 110 à la couche liaison 207 pour routage : vers la couche réseau 206, pour les trames Ethernet à destination de l'équipement comportant la tête de tunnel, ou vers la couche de pont ( bridge ) 209, pour les trames Ethernet à destination du réseau LAN B 104. La couche de pont 209 réalise les opérations classiques d'un pont Ethernet telles que le filtrage des trames Ethernet et le relais de ces trames vers le ou les port(s) Ethernet de sortie approprié(s). Sur le pont sont attachées une interface Ethernet 207 et au moins une interface virtuelle 210 simulant un contrôleur Ethernet. Une interface virtuelle 210 est créée pour chaque tunnel instancié par l'application 200 à qui elle remet les trames Ethernet qui doivent transiter sur les tunnels respectivement établis. 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 (par la suite, on entendra par encapsulation la formation d'un paquet tunnel) et l'extraction d'une trame. Les trames reçues de l'interface virtuelle 210, après traitement par l'application 200, sont remises sous la forme de paquets à travers une interface applicative ( socket en anglais) 201 à un protocole de transport fiable TCP 203 ou non fiable UDP 205, respectivement sécurisés par les protocoles SSL 202 et DTLS 204. Après traitement par un protocole de transport pour former le paquet tunnel 250 (cf. figure 2a), on passe celui-ci à la couche réseau 206. Le datagramme IP ainsi formé avec le paquet tunnel peut maintenant être transmis sur le réseau LAN à travers les couches liaison 207 et physique 208. La réception d'une trame en provenance du tunnel 100 suivra dans la tête de tunnel le cheminement inverse à celui présenté ci-dessus. La figure 2b présente un exemple de format d'encapsulation d'une trame Ethernet (référencée 260), transitant par exemple sur le réseau LAN A 103 de la figure la entre la tête de tunnel 101 et la passerelle domestique 105 (destiné à être émis sur Internet ou reçu d'Internet), et qui comporte : un champ d'en-tête Ethernet 261, un premier datagramme IP véhiculant lui-même un paquet tunnel de niveau 2 (référencé 250), et un champ FCS ( Frame Check Sequence , ou séquence de contrôle de trame ). Le paquet tunnel 250 comporte quatre parties : - un champ d'en-tête du protocole de transport 251 (à savoir TCP ou UDP dans cet exemple), - un champ d'en- tête du protocole d'encapsulation 252 (à savoir L2TP ou TLS dans cet exemple, qui sont décrits notamment dans les documents suivants : IETF RFC3931, "Layer two tunneling protocol û version 3 (L2TPv3)", J. Lau and ail, March 2005 et IETF RFC2246, "The TLS Protocol Version 1.0" , - un champ d'en-tête du protocole embarqué 253 (à savoir Ethernet dans cet exemple), et enfin - un champ de données utilisateurs 254, qui lui-même comporte un second datagramme IP complet si aucune fragmentation n'a été opérée lors de son transit depuis l'équipement source. On décrit maintenant, en relation avec la figure 3, un format, selon un mode de réalisation particulier de l'invention, d'un datagramme IP (version 4) 300 qui comporte : un champ d'en-tête IP fixe 350 (par exemple de 20 octets), un champ d'en-tête optionnel 309 (peu usité, de longueur variable), et un champ de données 310. As can be seen from the reading of this sequence diagram, the emission of a datagram 150 of too large size causes several retransmissions 152 and 155 as well as a significant delay between the transmission of the initial datagram 150 (having failed) and the final transmission of datagram 157 (resulting from the operations described above). This delay can be considerable when the sixth phase 125 results from the expiry of a delay before retransmission, such as the TCP RTO retransmission delay, which can be between 1 and 64 seconds depending on the time to go. -Return on the network (or Round Trip Time in English). In relation with FIG. 2a, we will now describe the routing of an Ethernet frame originating from one of the devices 108, 109, 110 (connected to the LAN A 103) and which will enter the tunnel 100. To do this, we will use a layer 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 of the tunnel. For example, the protocol elements associated with a UPnP architecture are not represented when a tunnel head 101 is integrated into UPnP compliant equipment. The tunnel head 101 comprises an Ethernet physical interface 208 which delivers the Ethernet frames from the equipment 108, 109, 110 to the link layer 207 for routing: to the network layer 206, for the Ethernet frames destined for the equipment comprising the device. tunnel end, or to the bridge layer 209, for the Ethernet frames to the B-LAN 104. The bridge layer 209 carries out the conventional operations of an Ethernet bridge such as the filtering of the Ethernet frames and the relay these frames to the appropriate output Ethernet port (s). On the bridge are attached an Ethernet interface 207 and at least one virtual interface 210 simulating an Ethernet controller. A virtual interface 210 is created for each tunnel instantiated by the application 200 to which it gives the Ethernet frames that must pass on the tunnels respectively established. 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 (thereafter encapsulation means the formation of a tunnel packet) and the extraction of a frame. The frames received from the virtual interface 210, after processing by the application 200, are delivered in the form of packets through an application interface (socket in English) 201 to a reliable transport protocol TCP 203 or unreliable UDP 205, respectively secured by the SSL 202 and DTLS 204. After processing by a transport protocol to form the tunnel packet 250 (see Figure 2a), it passes it to the network layer 206. The IP datagram thus formed with the packet tunnel can now be transmitted over the LAN through link layers 207 and physical 208. The reception of a frame from tunnel 100 will follow in the tunnel head the reverse path to that presented above. FIG. 2b shows an exemplary encapsulation format of an Ethernet frame (referenced 260), for example transiting on the A LAN 103 of FIG. 1a, between the tunnel head 101 and the home gateway 105 (intended to be transmitted on the Internet or received from the Internet), and which comprises: an Ethernet header field 261, a first IP datagram itself carrying a level 2 tunnel packet (referenced 250), and an FCS field (Frame Check Sequence) , or frame control sequence). The tunnel packet 250 comprises four parts: a header field of the transport protocol 251 (namely TCP or UDP in this example), a header field of the encapsulation protocol 252 (namely L2TP or TLS in this example, which are described in particular in the following documents: IETF RFC3931, "Layer two tunneling protocol - version 3 (L2TPv3)", J. Lau and ail, March 2005 and IETF RFC2246, "The TLS Protocol Version 1.0" a header field of the embedded protocol 253 (namely Ethernet in this example), and finally a user data field 254, which itself comprises a second complete IP datagram if no fragmentation has been operated. during its transit from the source equipment We now describe, in relation with FIG. 3, a format, according to a particular embodiment of the invention, of an IP datagram (version 4) 300 which comprises: a field fixed IP header 350 (for example 20 bytes), an optional header field 309 (eg u usity, of variable length), and a data field 310.

Le champ d'en-tête IP fixe 350 comporte : - un champ d'identification 302 ( Identification ), - un champ d'adresse source 307 qui identifie l'origine du datagramme, - un champ d'adresse de destination 308 qui identifie le destinataire du datagramme, - un champ de type de service (ou TOS pour Type Of Service ) 301 qui précise le type de service demandé, - un champ de protocole ( Protocol ) 306 qui permet le démultiplexage vers l'application appropriée en réception, et - un champ de temps de vie (ou TTL pour Time To Live ) 312 qui limite le nombre de routeurs que le datagramme peut traverser. Le champ d'en-tête IP fixe 350 comporte en outre un ensemble de champs non référencés car non utilisés de manière spécifique dans la présente invention. Selon l'invention, on interdit la fragmentation du datagramme entrant dans le tunnel, en positionnant un bit de non fragmentation (ou DF pour Don't Fragment ) 311 dans le champ Flags 303 (noté F). En outre, on recopie dans l'en-tête IP de la trame tunnel 260 les champs indentification 302, TOS 301, et TTL 312 décrémenté du datagramme entrant dans le tunnel. Dans un premier mode de réalisation particulier de l'invention, il est possible d'envisager d'utiliser l'option STREAMID du champ d'en-tête optionnel 309 afin d'identifier l'origine du datagramme envoyé dans le tunnel. Dans une variante, compte tenu du fait que le tunnel ne réalise pas d'opération de fragmentation, il est également possible d'envisager d'utiliser le champ Fragment Offset 304 (noté FO). Cette variant permet un traitement plus rapide du datagramme par les routeurs du réseau du fait de l'absence du champ d'en-tête optionnel 309 qui simplifie et accélère le traitement de routage. The fixed IP header field 350 comprises: - an identification field 302 (identification), - a source address field 307 which identifies the origin of the datagram, - a destination address field 308 which identifies the addressee of the datagram, - a Type of Service (TOS) field 301 which specifies the type of service requested, - a protocol field 306 which allows the demultiplexing to the appropriate application in reception, and a Time To Live (TTL) field 312 which limits the number of routers that the datagram can traverse. The fixed IP header field 350 further includes a set of unreferenced fields as not specifically used in the present invention. According to the invention, the fragmentation of the datagram entering the tunnel is forbidden, by positioning a non-fragmentation bit (or DF for Do not Fragment) 311 in the Flags 303 field (denoted F). In addition, the IP header of the tunnel frame 260 is copied with the identification fields 302, TOS 301, and TTL 312 decremented from the datagram entering the tunnel. In a first particular embodiment of the invention, it is possible to envisage using the STREAMID option of the optional header field 309 in order to identify the origin of the datagram sent in the tunnel. In a variant, considering that the tunnel does not perform fragmentation operation, it is also possible to consider using the field Fragment Offset 304 (noted FO). This variant allows faster processing of the datagram by the routers of the network due to the absence of the optional header field 309 which simplifies and speeds up the routing process.

La figure 4 présente un format, selon un mode de réalisation particulier de l'invention, d'un message d'erreur ICMP 410 retourné par un routeur Internet sur réception d'un datagramme IP 300 (décrit précédemment en relation avec la figure 3) n'autorisant pas la fragmentation (le bit de non fragmentation DF est à 1) et de taille trop grande. Dans ce mode de réalisation particulier, le routeur Internet 114 (cf. figure lb) va générer un message d'erreur ICMP 410 comportant un champ d'en-tête ICMP 400 et trois recopies de champ du datagramme IP 300 (ayant amené la génération du message d'erreur ICMP 410), à savoir : les recopies du champ d'en-tête IP fixe 350, du champ d'en-tête optionnel (s'il existe) 309, et des 8 premiers octets 411 du champ de données 310 (cf. figure 3). FIG. 4 shows a format, according to a particular embodiment of the invention, of an ICMP error message 410 returned by an Internet router on receipt of an IP datagram 300 (previously described in connection with FIG. 3) not allowing fragmentation (the DF bit is 1) and too big. In this particular embodiment, the Internet router 114 (see FIG. 1b) will generate an ICMP error message 410 comprising an ICMP header field 400 and three field replicas of the IP datagram 300 (having brought the generation of the error message ICMP 410), namely: the recopies of the fixed IP header field 350, the optional header field (if it exists) 309, and the first 8 bytes 411 of the data 310 (see Figure 3).

Plus précisément, le champ d'en-tête ICMP 400 comprend un premier champ Type 401 indiquant que la destination n'est pas accessible (Type = 3), un deuxième champ Code 402 indiquant que la fragmentation du datagramme 300 est nécessaire mais interdite du fait que le bit de non fragmentation DF est à 1 dans le champ Flags 303 du champ d'en-tête IP fixe 350 (Code = 4), un troisième champ Prochain MTU (ou Next Hop MTU ) 404 précisant la valeur du MTU du sous-réseau par lequel doit transiter le datagramme 300 par la suite, et un quatrième champ checksum 403 relatif à un code de contrôle. Dans un premier cas, si le datagramme IP 300 (ayant amené la génération du message d'erreur ICMP 410) encapsule un paquet UDP, alors les 8 premiers octets 411 du champ de données 310 comprennent les champs port source et port destination du paquet UDP transporté, ainsi que la longueur de ce paquet UDP et le code de contrôle qui lui est associé. Dans un deuxième cas, si le datagramme IP 300 (ayant amené la génération du message d'erreur ICMP 410) encapsule un paquet TCP, alors les 8 premiers octets 411 du champ de données 310 comprennent les champs port source et port destination du paquet TCP transporté, ainsi que le numéro de séquence qui lui est associé. Specifically, the ICMP header field 400 includes a first Type 401 field indicating that the destination is not accessible (Type = 3), a second Code field 402 indicating that the fragmentation of the datagram 300 is necessary but forbidden. causes the non-fragmentation bit DF to be 1 in the Flags field 303 of the fixed IP header field 350 (Code = 4), a third Next MTU field 404 specifying the MTU value of the MTU. subnet through which the datagram 300 must pass thereafter, and a fourth checksum field 403 relating to a control code. In a first case, if the IP datagram 300 (having caused the generation of the ICMP error message 410) encapsulates a UDP packet, then the first 8 bytes 411 of the data field 310 include the source port and destination port fields of the UDP packet. transported, as well as the length of this UDP packet and the control code associated with it. In a second case, if the IP datagram 300 (having caused the generation of the ICMP error message 410) encapsulates a TCP packet, then the first 8 bytes 411 of the data field 310 include the source port and destination port fields of the TCP packet. transported, as well as the sequence number associated with it.

Le rôle et les valeurs possibles de chacun des champs d'un datagramme IP, ICMP, UDP et TCP sont bien connus de l'Homme du Métier et sont notamment décrits en détail dans le document TCP/IP illustrated, Volumes 1, 2 et 3 ", Stevens, Wright, Addison-Wesley, 1994, 1995 et 1996 . The role and the possible values of each of the fields of an IP, ICMP, UDP and TCP datagram are well known to those skilled in the art and are described in detail in the document TCP / IP illustrated, Volumes 1, 2 and 3. ", Stevens, Wright, Addison-Wesley, 1994, 1995 and 1996.

La figure 5 décrit une première base d'information 500 sous la forme d'une table de flux de données qui est mise à jour notamment lors de chaque transfert d'un paquet vers le tunnel 100, chaque paquet ainsi en transit appartenant à un flux de données 510 dans cette table 500. Cette base d'information, vise à conserver les informations essentielles à la construction d'un message d'erreur ICMP 410 à destination d'une ou plusieurs sources de datagramme IP. Selon l'invention, un deuxième message d'erreur ICMP est généré par la tête de tunnel sur réception d'un premier message d'erreur ICMP provenant du tunnel 100 ou généré suite à un changement de canal de transport du tunnel, en raison de modifications des conditions de transport sur le réseau. FIG. 5 describes a first information base 500 in the form of a data flow table which is updated notably during each transfer of a packet to the tunnel 100, each packet thus in transit belonging to a stream data base 510 in this table 500. This information base, aims to retain the essential information for the construction of an ICMP 410 error message to one or more IP datagram sources. According to the invention, a second ICMP error message is generated by the tunnel head on receipt of a first ICMP error message from the tunnel 100 or generated following a tunnel transport channel change, due to changes in the conditions of transport on the network.

Les informations contenues dans cette table d'information des flux de données 500 sont extraites des datagrammes IP entrant dans le tunnel 100. On y trouve pour chaque flux de données 510, l'adresse source 502 SA (correspondant au champ d'adresse source 307 du datagramme IP), l'adresse de destination 503 DA (correspondant au champ de destination 308 du datagramme IP), le protocole véhiculé 506 Protocol (correspondant au champ de protocole 306 du datagramme IP), le port source 504 S Port , et le port de destination 505 D Port contenu dans les 8 premiers octets 411 du champ de données 310 du datagramme IP. En outre, on y trouve un champ d'identification 501 FID des flux de données 510 qui permet d'identifier de manière unique chaque élément entré (chaque flux) dans cette table d'information 500, et un champ PID 550 d'identification du canal de transport dans la table de canaux de transport 600 (décrit ci-après) du tunnel, utilisée pour le transit des datagrammes appartenant au flux de données. Le changement de canal de transport précité repose sur la mise en oeuvre d'un mécanisme de sélection dynamique de protocole de transport. Le principe de ce mécanisme de sélection dynamique consiste à sélectionner, pour chaque paquet de données à transmettre via le tunnel, le meilleur canal (caractérisé typiquement par son protocole de transport) à utiliser. La sélection est basée sur le type des données à transmettre (protocole des données utiles contenues dans ce paquet, type d'application, etc.), mais aussi sur les conditions de transmission sur le réseau (entre les deux têtes de tunnel). The information contained in this information table of the data streams 500 is extracted from the IP datagrams entering the tunnel 100. There is found for each data stream 510, the source address 502 SA (corresponding to the source address field 307 the IP datagram), the destination address 503 DA (corresponding to the destination field 308 of the IP datagram), the protocol conveyed 506 Protocol (corresponding to the protocol field 306 of the IP datagram), the source port 504 S Port, and the destination port 505 D Port contained in the first 8 bytes 411 of data field 310 of the IP datagram. In addition, there is a data identification 510 FID identification field 510 which uniquely identifies each input element (each flow) in this information table 500, and a PID field 550 identifying the data element 510. transport channel in the transport channel table 600 (described below) of the tunnel, used for the transit of datagrams belonging to the data stream. The aforementioned transport channel change is based on the implementation of a dynamic transport protocol selection mechanism. The principle of this dynamic selection mechanism is to select, for each data packet to be transmitted via the tunnel, the best channel (typically characterized by its transport protocol) to use. The selection is based on the type of data to be transmitted (protocol of the useful data contained in this packet, type of application, etc.), but also on the transmission conditions on the network (between the two tunnel heads).

On décrit ci-après, en relation avec les figures 11 à 13, des exemples d'algorithmes de sortie, d'entrée, et de sélection mis en oeuvre par le mécanisme de sélection dynamique précité. On décrit maintenant, en relation avec la figure 11, un exemple d'algorithme de sortie de LAN, exécuté par la tête de tunnel (par exemple celle référencée 101 sur la figure la) qui transmet via le tunnel 100. Cette figure explique le traitement global de données à envoyer à l'autre tête de tunnel 102 à travers le tunnel 100. Dans l'étape 1, on écoute sur une interface réseau, et on capture des paquets de données IP ou Ethernet, destinés à au moins un équipement connecté au réseau LAN B 104. Ceci peut être réalisé en utilisant un pont ( bridge en anglais), et avec quelques dispositifs réseaux virtuels tels que TUN/TAP ajoutés au pont. Dans l'étape 2, on décide si le paquet est autorisé ou non à être transmis vers le LAN B. Par exemple, un paquet reçu du LAN B ne sera pas retransmis en direction de ce même LAN. Ceci peut être réalisé par exemple en comparant l'adresse source MAC Ethernet à une liste prédéfinie d'adresses MAC autorisées. In the following, with reference to FIGS. 11 to 13, examples of output, input, and selection algorithms implemented by the aforementioned dynamic selection mechanism are described. FIG. 11 shows an example of a LAN output algorithm executed by the tunnel head (for example that referenced 101 in FIG. 1a) which transmits via the tunnel 100. This figure explains the processing global data to be sent to the other tunnel end 102 through the tunnel 100. In step 1, listening on a network interface, and capturing IP or Ethernet data packets for at least one connected equipment This can be done using a bridge, and with some virtual network devices such as TUN / TAP added to the bridge. In step 2, it is decided whether or not the packet is allowed to be transmitted to LAN B. For example, a packet received from LAN B will not be forwarded to the same LAN. This can be done for example by comparing the Ethernet MAC source address to a predefined list of allowed MAC addresses.

Dans l'étape 3, on sélectionne le canal le plus approprié à utiliser pour transmettre ce paquet de données vers le réseau LAN B 104. Cette étape 3 est détaillée ci-après en relation avec les autres figures. Dans l'étape 4 (optionnelle), un chiffrement des données peut être effectué, pour garantir le secret des données utilisateur. Cette étape peut être réalisée en utilisant un algorithme de chiffrement bien connu, comme l'algorithme AES ( Advanced Encryption Standard ) par exemple. Dans l'étape 5, basée sur le résultat de l'étape 3, le paquet reçu est encapsulé avec un protocole d'encapsulation (aussi appelé protocole de tunnellisation) associé au canal sélectionné à l'étape 3. Ce protocole d'encapsulation ajoute des informations spécifiques (en-tête), et peut optionnellement ajouter des données supplémentaires pour fournir des caractéristiques spécifiques aux fonctionnalités du tunnel (comme par exemple un mécanisme de keep-alive ( maintien ouvert ) permettant aux deux têtes de tunnel de savoir si le canal est toujours ouvert , c'est-à-dire si la transmission est toujours possible). Ces fonctionnalités supplémentaires peuvent être dépendantes du canal. Par exemple, dans le cas d'un canal caractérisé par son protocole de transport, il peut être utile d'ajouter des données supplémentaires pour mesurer le RTT ( Round Trip Time , ou temps d'aller-retour de bout en bout dans le réseau ) d'un canal UDP qui de manière classique ne fournit pas de mécanisme de mesure de RTT. Ceci peut être fait en ajoutant une requête pour réponse immédiate (incluant un identifiant) dans les données d'encapsulation. Quand la tête de tunnel distante reçoit une telle requête, elle répond immédiatement. A la réception de la réponse, la tête de tunnel locale peut alors déterminer le RTT. Un tel mécanisme n'a bien sûr pas besoin d'être mis en oeuvre sur un canal qui met déjà en oeuvre un mécanisme d'évaluation du RTT (cas par exemple d'un canal basé sur TCP) (voir le document : " TCP/IP illustrated, Volumes 1, 2 et 3 ", Stevens, Wright, Addison-Wesley, 1994, 1995 et 1996). In step 3, the most appropriate channel to be used for transmitting this data packet to the B-LAN 104 is selected. This step 3 is detailed below in connection with the other figures. In step 4 (optional), data encryption can be performed, to ensure the secrecy of the user data. This step can be performed using a well-known encryption algorithm, such as the Advanced Encryption Standard (AES) algorithm for example. In step 5, based on the result of step 3, the received packet is encapsulated with an encapsulation protocol (also called tunneling protocol) associated with the channel selected in step 3. This encapsulation protocol adds specific information (header), and optionally can add additional data to provide features specific to the tunnel's features (such as a keep-alive mechanism) allowing the two tunnel heads to know if the channel is always open, ie if transmission is still possible). These additional features may be channel dependent. For example, in the case of a channel characterized by its transport protocol, it may be useful to add additional data to measure the RTT (round trip time, or end-to-end round trip time in the network ) of a UDP channel which conventionally does not provide a mechanism for measuring RTT. This can be done by adding a request for immediate response (including an identifier) in the encapsulation data. When the remote tunnel end receives such a request, it responds immediately. Upon receiving the response, the local tunnel head can then determine the RTT. Such a mechanism does not of course need to be implemented on a channel that already implements a mechanism for evaluating the RTT (for example a TCP-based channel) (see the document: "TCP / IP illustrated, Volumes 1, 2 and 3 ", Stevens, Wright, Addison-Wesley, 1994, 1995 and 1996).

Dans l'étape 6, on transmet le paquet résultant de l'encapsulation sur le canal sélectionné dans l'étape 3. Ceci peut être réalisé en écrivant les données sur une interface de connexion ( socket ) configurée pour envoyer des paquets sur le tunnel. Après cette étape, le paquet aura finalement la forme de celui référencé 250 sur la figure 2b. Cette étape permet aussi de mettre à jour les statistiques de canal (retransmission, type des données transmises, etc.). On décrit maintenant, en relation avec la figure 12, un exemple d'algorithme d'entrée sur un LAN, exécuté par la tête de tunnel (par exemple celle référencée 102 sur la figure la) qui reçoit via le tunnel 100. Cette figure explique le traitement global de données provenant de l'autre tête de tunnel 101 et reçues à travers le tunnel 100. In step 6, the packet resulting from encapsulation is transmitted on the channel selected in step 3. This can be done by writing the data on a socket interface configured to send packets over the tunnel. After this step, the packet will finally have the form of that referenced 250 in Figure 2b. This step also makes it possible to update the channel statistics (retransmission, type of transmitted data, etc.). An example of an input algorithm on a LAN executed by the tunnel end (for example that referenced 102 in FIG. 1a) receiving via the tunnel 100 is described in relation with FIG. 12. This figure explains the overall processing of data from the other tunnel head 101 and received through the tunnel 100.

Dans l'étape 7, on écoute sur chaque interface de connexion ( socket ) spécifique (correspondant à chaque canal), pour recevoir des paquets. Dans l'étape 8, on met à jour les informations relatives à la qualité réseau (retransmission, RTT, PER, congestion, etc.) du canal sur lequel on reçoit. In step 7, we listen on each specific socket (corresponding to each channel), to receive packets. In step 8, the information relating to the network quality (retransmission, RTT, PER, congestion, etc.) of the channel on which we receive is updated.

Dans l'étape 9, on déchiffre les données utiles (si l'étape 4 de la figure 11 a été mise en oeuvre) en utilisant un algorithme de déchiffrement et des clés associées, compatibles avec ceux utilisés à l'étape 4. Dans l'étape 10, on désencapsule le paquet de données, pour retrouver le paquet de données d'origine (préalablement capturé sur le réseau LAN A 103 par la tête de tunnel 101). Dans cette étape, on traite aussi les éventuelles données supplémentaires associées à des mécanismes supplémentaires optionnels (voir la description de l'étape 5). Dans l'étape 11, on décide si le paquet résultant de la désencapsulation est autorisé ou non. Par exemple, un paquet dont le déchiffrement ou la désencapsulation ne donne pas de résultat satisfaisant ne sera pas autorisé à être transmis sur le LAN B afin de ne pas perturber le fonctionnement des équipements connectés sur ce LAN. Ceci peut aussi être réalisé par exemple en comparant l'adresse source MAC Ethernet à une liste prédéfinie d'adresses MAC autorisées. In step 9, the useful data is deciphered (if step 4 of FIG. 11 has been implemented) using a decryption algorithm and associated keys, compatible with those used in step 4. In step 10, the data packet is de-encapsulated, to find the original data packet (previously captured on the LAN A 103 network by the tunnel head 101). In this step, any additional data associated with optional additional mechanisms is also processed (see the description of step 5). In step 11, it is decided whether the packet resulting from the decapsulation is allowed or not. For example, a packet whose decryption or decapsulation does not give a satisfactory result will not be allowed to be transmitted on the LAN B so as not to disturb the operation of the equipment connected on this LAN. This can also be done for example by comparing the Ethernet MAC source address to a predefined list of allowed MAC addresses.

Dans l'étape 12, on met à jour les statistiques de canal (bande passante, type des données transmises, etc.). Dans l'étape 13, on envoie le paquet résultant de la désencapsulation sur le réseau LAN B 104. Ceci peut être réalisé en utilisant un dispositif réseau virtuel tel que TUN/TAP. In step 12, the channel statistics (bandwidth, type of transmitted data, etc.) are updated. In step 13, the packet resulting from the de-encapsulation is sent over the B-LAN 104. This can be done using a virtual network device such as TUN / TAP.

On décrit désormais, en relation avec la figure 13, un exemple d'algorithme de sélection d'un canal effectif (détail de l'étape 3 de la figure 11). Le paquet reçu de l'étape 2 (cf. figure 11) est analysé dans l'étape 31, afin de déterminer s'il s'agit d'un paquet IP ou non (car dans ce mode de réalisation on considère uniquement les paquets IP). Ceci est réalisé en analysant le contenu du paquet (en-tête LLC...). S'il ne s'agit pas d'un paquet IP, on passe à l'étape 37 de sélection d'un canal par défaut. Ce canal par défaut peut être déterminé par l'utilisateur, et est par exemple un canal TCP. S'il s'agit d'un paquet IP, on passe à l'étape 32. Dans l'étape 32, le paquet est classifié (on extrait toutes les informations concernant le paquet qui seront utilisées ultérieurement pour sélectionner le meilleur canal). Typiquement, pour déterminer le type du paquet (résultat de la classification) en fonction de ses données utiles, on détermine le protocole de transport des données utiles (protocole de transport sur IP), cette information étant codée dans les 8 bits réservés de l'en-tête IP. Dans la suite de la description, on utilisera le protocole de transport des données utiles comme identifiant de type de paquets (TCP, UDP, SCTP, DCCP, ...) Dans l'étape 33, on détermine si le type de paquet déterminé à l'étape 32 est géré par l'étape 35 ci-après. Dans la négative, on passe à l'étape 37. Dans l'affirmative, on passe à l'étape 34. Dans l'étape 34, on détermine le QoE ( Quality Of the Experiment , ou qualité de l'essai ). Pour cela, on retrouve toutes les données concernant la qualité du réseau (congestion, PER, bande passante, RTT, taux de retransmission, etc.). Toutes ces données sont évaluées à chaque fois qu'un paquet est envoyé ou reçu par le tunnel (étapes 8, 12, 384 et 387). Dans l'étape 35, on détermine un canal préféré (et donc un protocole de transport préféré) à utiliser pour transmettre dans les meilleures conditions les données utiles au réseau LAN distant. Un canal peut être caractérisé uniquement par son protocole de transport, mais d'autres caractéristiques peuvent être utilisées telles que le paramètre TOS ( Type Of Service , ou type de service ). Dans l'étape 36, on détermine un mode de transport pour le type du paquet en cours de traitement (appelé ci-après paquet traité ). Le mode de transport correspond à la manière de gérer la transmission d'un type de paquet donné. Ce mode peut être stable (TCP ou UDP, par exemple) ou transitoire (TCP-vers-UDP ou UDP-vers-TCP, par exemple). Une mise en oeuvre possible de cette étape 36 est illustrée en figures 8, 9a et 9b. Dans cette mise en oeuvre, on considère le cas de canaux caractérisés par leur protocole de transport. En fonction du protocole de transport préféré et du mode de transport courant pour le type du paquet traité, on gère à l'étape 36 l'évolution du mode de transport (parmi quatre modes possibles : deux modes stables, TCP et UDP, et deux modes transitoires, TCP-vers-UDP, et UDP-vers-TCP) pour chaque type de paquet (type déterminé à l'étape 32). Par exemple, si on détermine à l'étape 35 que pour un paquet de type UDP, aussi appelé paquet UDP (c'est-à-dire un paquet dont UDP est le protocole des données utiles du protocole embarqué), le protocole de transport préféré est TCP (c'est-à-dire le canal préféré est le canal TCP), mais que le mode de transport courant pour les paquets UDP est le mode UDP, alors dans l'étape 36 on entre dans le mode transitoire UDP-vers-TCP, et le canal de transmission effectif pour le paquet traité peut être soit le canal préféré TCP, soit le canal UDP (voir ci-après la description détaillée des figures 8, 9a et 9b). Dans l'étape 38, on sélectionne le canal effectif, en fonction du canal préféré (cf étape 35), du mode de transport courant et de paramètres de fenêtres de transmission (voir description ci-après) pour le type du paquet traité. C'est un mécanisme de sélection, permettant de passer progressivement d'un mode de transport à un autre, pour un type de paquet donné. Ce mécanisme est important pour éviter une congestion du tunnel qui serait liée au basculement de la transmission d'un flux de données d'un canal de transmission à un autre. Par exemple, si le protocole de transport préféré pour un type de paquet commute de UDP à TCP, il n'est pas possible d'envoyer directement tous les paquets de ce type sur le canal TCP, car l'augmentation brutale du nombre de paquets à transmettre sur ce canal TCP va amener un dépassement de la fenêtre de congestion TCP. En conséquence, les paquets seront temporisés par la pile TCP même si la bande passante réellement disponible est assez grande. Ces paquets temporisés vont augmenter le RTT mesuré de la communication de bout en bout, et peuvent générer une retransmission inutile dans le cas de paquets TCP (expiration d'une temporisation de retransmission, appelée RTO ( Retransmission Time Out ) dans le cas TCP). Dans le cas d'une commutation du mode de transport TCP au mode de transport UDP, il faut faire attention à une augmentation brutale de la taille du canal UDP, qui peut brutalement ralentir la transmission TCP, générant également des troubles. La figure 6 décrit une deuxième base d'information 600 sous la forme d'une table des canaux de transport d'un ou plusieurs tunnels 100. Chaque canal 610 est identifié de manière unique par son identifiant PID 650 et est notamment caractérisé par l'adresse IP de la tête de tunnel distante 601 TDA , située à l'extrémité du tunnel (c'est-à-dire à la sortie du tunnel), et par son mode de transport 602 ( Carrier mode ). An example of an algorithm for selecting an effective channel is described in connection with FIG. 13 (detail of step 3 of FIG. 11). The packet received from step 2 (see FIG. 11) is analyzed in step 31, in order to determine whether it is an IP packet or not (because in this embodiment only the packets are considered. IP). This is done by analyzing the contents of the package (LLC header ...). If it is not an IP packet, proceed to step 37 of selecting a default channel. This default channel can be determined by the user, and is for example a TCP channel. If it is an IP packet, go to step 32. In step 32, the packet is classified (one extracts all the information about the packet that will be used later to select the best channel). Typically, in order to determine the type of the packet (classification result) as a function of its useful data, the transport protocol of the useful data (transport protocol over IP) is determined, this information being encoded in the 8 reserved bits of the IP header. In the remainder of the description, the transport protocol of the useful data will be used as a packet type identifier (TCP, UDP, SCTP, DCCP, etc.). In step 33, it is determined whether the packet type determined in FIG. step 32 is managed by step 35 below. If not, proceed to step 37. If yes, proceed to step 34. In step 34, the QoE (Quality of the Experiment) is determined. For that, one finds all the data concerning the quality of the network (congestion, PER, bandwidth, RTT, rate of retransmission, etc.). All of these data are evaluated each time a packet is sent or received through the tunnel (steps 8, 12, 384, and 387). In step 35, a preferred channel (and therefore a preferred transport protocol) to be used for transmitting payload data to the remote LAN is determined under the best conditions. A channel may be characterized only by its transport protocol, but other features may be used such as the Type Of Service (TOS) parameter. In step 36, a transport mode is determined for the type of the packet being processed (hereinafter referred to as the processed packet). The transport mode is the way of handling the transmission of a given packet type. This mode can be stable (TCP or UDP, for example) or transient (TCP-to-UDP or UDP-to-TCP, for example). A possible implementation of this step 36 is illustrated in Figures 8, 9a and 9b. In this implementation, we consider the case of channels characterized by their transport protocol. According to the preferred transport protocol and the current transport mode for the type of the processed packet, the evolution of the transport mode is managed in step 36 (among four possible modes: two stable modes, TCP and UDP, and two transient modes, TCP-to-UDP, and UDP-to-TCP) for each type of packet (type determined in step 32). For example, if it is determined in step 35 that for a UDP type packet, also called UDP packet (that is to say a packet whose UDP protocol is the useful data of the embedded protocol), the transport protocol preferred is TCP (i.e. the preferred channel is the TCP channel), but the current transport mode for UDP packets is UDP mode, so in step 36 one enters the UDP transient mode. to-TCP, and the actual transmission channel for the processed packet may be either the preferred TCP channel or the UDP channel (see hereinafter detailed description of Figs. 8, 9a and 9b). In step 38, the actual channel is selected, depending on the preferred channel (see step 35), the current transport mode and transmission window parameters (see description below) for the type of the processed packet. It is a selection mechanism, allowing to progressively move from one mode of transport to another, for a given type of package. This mechanism is important to avoid congestion of the tunnel that would be related to switching the transmission of a data stream from one transmission channel to another. For example, if the preferred transport protocol for a packet type switches from UDP to TCP, it is not possible to send all such packets directly to the TCP channel because the sudden increase in the number of packets to transmit on this TCP channel will cause an overflow of the TCP congestion window. As a result, the packets will be delayed by the TCP stack even if the bandwidth actually available is large enough. These timed packets will increase the measured RTT of the end-to-end communication, and may generate unnecessary retransmission in the case of TCP packets (expiration of a retransmission timeout, called RTO (Retransmission Time Out) in the TCP case). In the case of switching from the TCP transport mode to the UDP transport mode, attention must be paid to a sharp increase in the size of the UDP channel, which can brutally slow down TCP transmission, also generating trouble. FIG. 6 describes a second information base 600 in the form of a table of the transport channels of one or more tunnels 100. Each channel 610 is uniquely identified by its PID identifier 650 and is notably characterized by the IP address of the remote 601 TDA tunnel headend, located at the end of the tunnel (i.e. at the tunnel exit), and by its mode of transport 602 (Carrier mode).

En effet, une même tête de tunnel peut ouvrir plusieurs tunnels à destination de têtes de tunnel distinctes utilisant chacune un ou plusieurs canaux. Dans une variante d'implémentation, il est possible d'envisager d'ajouter les numéros de ports source et destination du mode de transport 602. Ceci aura pour avantage de pouvoir gérer de manière distincte plusieurs canaux utilisant le même mode de transport 602, mais avec, par exemple, des types de services 310 différents pour les datagrammes transitant dans chacun de ces canaux. Dans un mode de réalisation particulier, correspondant au cas où on gère des basculements de transmission entre des canaux TCP et UDP, le mode de transport 602 peut prendre les quatre valeurs suivantes : - un mode TCP utilisant le canal réel TCP ; - un mode UDP utilisant le canal réel UDP ; - un mode TCP vers UDP (aussi appelé canal virtuel TCP vers UDP ), utilisant les canaux réels TCP et UDP. Dans ce mode transitoire, pour, on sélectionne de façon dynamique un canal effectif parmi les canaux réels TCP et UDP au moyen d'un mécanisme de basculement progressif (décrit en relation avec la figure 9b) ; - un mode UDP vers TCP (aussi appelé canal virtuel UDP vers TCP ), utilisant les canaux réels UDP et TCP. Dans ce mode transitoire, pour, on sélectionne de façon dynamique un canal effectif parmi les canaux réels UDP et TCP au moyen d'un mécanisme de basculement progressif (décrit en relation avec la figure 9a) ; Comme illustré sur la figure 6, pour chaque canal 610, on dispose d'informations complémentaires, à savoir : la taille maximale MTU 605 des datagrammes pouvant transiter dans le canal, et un identifiant FIDs 606 d'une liste 607 des identifiants 501 des flux de données 510 (de la table de flux de données 500). On présente maintenant, en relation avec la figure 7, un algorithme de génération d'un deuxième message d'erreur ICMP par la tête de tunnel suite à la réception d'un premier message d'erreur ICMP 410 issu d'un tunnel tel que défini à la figure 4. Indeed, the same tunnel head can open several tunnels to separate tunnel heads each using one or more channels. In an implementation variant, it is possible to envisage adding the source and destination port numbers of the transport mode 602. This will have the advantage of being able to separately manage several channels using the same mode of transport 602, but with, for example, different types of services 310 for datagrams passing through each of these channels. In a particular embodiment, corresponding to the case where transmission failovers between TCP and UDP channels are managed, the transport mode 602 can take the following four values: a TCP mode using the real TCP channel; a UDP mode using the real UDP channel; a TCP to UDP mode (also called TCP virtual channel to UDP), using the TCP and UDP real channels. In this transient mode, for, one dynamically selects an effective channel from the real TCP and UDP channels by means of a progressive switching mechanism (described in connection with FIG. 9b); a UDP to TCP mode (also called UDP to TCP virtual channel), using the real UDP and TCP channels. In this transient mode, for, one dynamically selects an effective channel from the real UDP and TCP channels by means of a progressive switching mechanism (described in connection with FIG. 9a); As illustrated in FIG. 6, for each channel 610, there is additional information, namely: the maximum size MTU 605 of the datagrams that can pass in the channel, and a FID identifier 606 of a list 607 of the identifiers 501 of the streams data stream 510 (from the data flow table 500). FIG. 7 shows an algorithm for generating a second ICMP error message by the tunnel header after receiving a first ICMP message 410 from a tunnel such as defined in Figure 4.

Dans une première étape 701, l'application tunnel 200 (cf. figure 2a) analyse et extrait des informations du premier message d'erreur ICMP 410. Dans l'étape 702, on prépare un deuxième message d'erreur ICMP (du même type que le premier message d'erreur ICMP 410) dans lequel on recopie les valeurs des champs de type de service TOS 301, de temps de vie TTL 312, d'identification Identification 302, et la valeur du champ Next Hop MTU 404 contenues dans le premier message d'erreur ICMP 410 reçu. Dans l'étape 703, on détermine l'identifiant 650 PID du canal 610 de transport (cf. figure 6) dont est issu le premier message d'erreur ICMP 410 à l'aide des informations des champs de destination 308 Adresse Destination et de protocole 306 Protocol , contenues dans le champ d'en-tête IP fixe 350 retourné dans le message d'erreur ICMP 410, que l'on compare respectivement aux informations contenues dans les champs d'adresse IP de la tête de tunnel distante TDA 601 et de son mode de transport 602 de la base d'information des canaux de transport 600. In a first step 701, the tunnel application 200 (see FIG. 2a) analyzes and extracts information from the first ICMP error message 410. In step 702, a second ICMP error message (of the same type) is prepared. as the first ICMP error message 410) in which the values of the TOS service type fields 301, the TTL lifetime 312, the identification identification 302, and the value of the Next Hop MTU field 404 contained in FIG. first ICMP 410 error message received. In step 703, the 650 PID identifier of the transport channel 610 (see FIG. 6) is determined from which the first ICMP 410 error message is derived using the information of the Destination and destination address fields 308. Protocol 306 Protocol, contained in the fixed IP header field 350 returned in the ICMP 410 error message, which is compared respectively to the information contained in the IP address fields of the TDA 601 remote tunnel endpoint and its mode of transport 602 of the information base of the transport channels 600.

Dans une variante de réalisation, pour identifier de manière unique le canal il est possible d'envisager d'utiliser en outre les informations contenues dans les 8 premiers octets 411 du premier message d'erreur ICMP 410 reçu (lorsque plusieurs canaux utilisant un même type de protocole de transport sont présents dans le tunnel considéré). En effet, ces 8 premiers octets 411 peuvent contenir les ports source et destination du mode de transport 602, utilisés par le datagramme IP ayant provoqué le premier message d'erreur ICMP 410. Dans l'étape 704, on détermine la valeur du MTU (taille limite des données utiles pouvant être transmises dans un paquet) du canal 610 en lisant la valeur contenue dans le champ Next Hop MTU 404 du message d'erreur ICMP 410 en cours d'analyse, décrémenté de : (en référence à la figure 2b) - la taille d'un champ d'en-tête IP, - la taille du champ d'en-tête du mode de transport 251, - la taille du champ d'en-tête du protocole d'encapsulation 252, et -la taille du champ d'en-tête du protocole embarqué 253. In an alternative embodiment, to uniquely identify the channel it is possible to consider further using the information contained in the first 8 bytes 411 of the first ICMP message 410 received (when multiple channels using the same type of transport protocol are present in the tunnel considered). Indeed, these first 8 bytes 411 may contain the source and destination ports of the transport mode 602, used by the IP datagram having caused the first ICMP error message 410. In step 704, the value of the MTU is determined ( size limit of payload data in a packet) of channel 610 by reading the value contained in the Next Hop MTU 404 field of the ICMP 410 error message being analyzed, decremented by: (referring to Figure 2b ) - the size of an IP header field, - the size of the transport mode header field 251, - the header field size of the encapsulation protocol 252, and - the size of the header field of the embedded protocol 253.

Dans l'étape 705, on met à jour la valeur du MTU 605 du canal 610 (de la base d'information des canaux 600), dont l'identifiant 650 PID a été déterminé à l'étape 703, avec la valeur du MTU du canal déterminée à l'étape 704. Dans l'étape 706, on extrait l'identifiant du flux de données 606 FID contenu dans le champ d'en-tête optionnel 309 du datagramme IP (ayant provoqué le premier message d'erreur ICMP 410) en cours d'analyse. Dans l'étape 707, on achève la préparation du deuxième message d'erreur ICMP à l'aide des champs 502 à 506 (cf. figure 5) préalablement enregistrés pour le flux de données FID déterminé à l'étape 706. En d'autres termes, les champs 502 à 506 sont lus dans la table de flux de données 500, grâce à l'identifiant du flux de données FID obtenu à l'étape 706. Ce deuxième message d'erreur ICMP peut alors être envoyé à destination de l'équipement dont l'adresse est contenue dans le champ d'adresse source SA 502 du flux de données 510. Après l'envoi du deuxième message d'erreur ICMP, on passe aux étapes 710 et 711 au cours desquelles on compare (étape 710) et met à jour (étape 711), si nécessaire, la valeur courante du MTU de chaque canal 610 dont le mode de transport 602 Carrier indique un mode de transport virtuel (par exemple protocole UDP vers protocole TCP, ou réciproquement), dans l'hypothèse ou celui-ci met en oeuvre temporairement le même mode de transport 602 et utilise la même adresse TDA 601 (adresse IP de la tête de tunnel distante) que le canal identifié par l'identifiant 650 PID déterminé à l'étape 703. Dans cette affirmative, on met à jour la ou les valeurs du MTU 605, comme à l'étape 705. Dans une variante de réalisation, à l'émission d'un seul message d'erreur ICMP à destination de l'équipement identifié par son identifiant 606 FID à l'étape 706, il est possible d'envisager d'émettre un message d'erreur ICMP à destination de chacun des équipements source qui émettent les flux de la liste 607, identifiée à l'aide de l'identifiant FIDs 606 qui est associé à l'identifiant 650 PID du canal 610 déterminé à l'étape 703. On présente maintenant, en relation avec la figure 8, un algorithme de gestion du mode de transport courant et de fenêtres de transmission, pour un type de paquet, selon un mode de réalisation particulier du procédé selon l'invention. In step 705, the value of MTU 605 of channel 610 (of channel information base 600), whose identifier 650 PID was determined in step 703, with the value of MTU is updated. of the channel determined in step 704. In step 706, the identifier of the data stream 606 FID contained in the optional header field 309 of the IP datagram is extracted (having caused the first ICMP error message 410) being analyzed. In step 707, the preparation of the second ICMP error message is completed using fields 502 to 506 (see FIG. 5) previously recorded for the FID data stream determined in step 706. In FIG. other words, the fields 502 to 506 are read in the data flow table 500, thanks to the identifier of the FID data stream obtained in step 706. This second ICMP error message can then be sent to the equipment whose address is contained in the source address field SA 502 of the data stream 510. After sending the second ICMP error message, we go to the steps 710 and 711 in which we compare (step 710) and updates (step 711), if necessary, the current value of the MTU of each channel 610 whose transport mode 602 Carrier indicates a virtual transport mode (for example UDP protocol to TCP protocol, or conversely), in hypothesis or this one implements temporarily the m transport mode 602 and uses the same address TDA 601 (IP address of the remote tunnel end) as the channel identified by the identifier 650 PID determined in step 703. In this case, we update the one or more values of the MTU 605, as in step 705. In an alternative embodiment, when a single ICMP error message is sent to the equipment identified by its identifier 606 FID in step 706, it it is possible to consider issuing an ICMP error message to each of the source devices that emit the stream of the list 607, identified using the identifier FIDs 606 which is associated with the identifier 650 PID of the channel 610 determined in step 703. With reference to FIG. 8, an algorithm for managing the current transport mode and transmission windows for a type of packet according to a particular embodiment of the method is presented. according to the invention.

Comme on le verra, l'invention permet de notifier à un équipement source un changement de MTU provoqué par un changement de canal de transport 610 lors du démarrage d'une phase transitoire (aussi appelée phase de transport virtuel) de basculement d'un canal de transport à un autre. As will be seen, the invention makes it possible to notify a source equipment of a change in MTU caused by a change of transport channel 610 during the start of a transient phase (also called the virtual transport phase) of switching a channel. from transportation to another.

Pour chacun des types de paquet, on gère donc un mode de transport et deux fenêtres de transmission (une par canal de transmission du tunnel). Une fenêtre de transmission associée à un canal donné est définie par un jeu de paramètres qui permettent de définir une quantité maximale de paquets pouvant être transmis sur ce canal donné pendant une durée déterminée (qui correspond au RTT). Pour un type de paquet donné, en fonction du mode de transport, les deux fenêtres augmenteront ou diminueront afin de commuter progressivement d'un canal à un autre. On rappelle que le type d'un paquet en cours de traitement (ou paquet traité) est déterminé lors de l'étape de classification 32 de la figure 3. Dans le présent exemple, on considère deux types de paquets : paquet TCP ou paquet UDP. Pour chacun de ces deux types de paquet, on gère un mode de transport et deux fenêtres de transmission, appelées ci-après fenêtre de transmission TCP et fenêtre de transmission UDP . Il est important de noter que la description ci-après de la figure 8 est faite pour un paquet ayant un type donné, et donc qu'à chaque fois que le mode de transport ou un paramètre de fenêtre (Wtcp, Stcp, Wtcp_max, Wudp, Sudp, Wudp_max) est mentionné, il convient de comprendre qu'il s'agit du mode de transport ou d'un paramètre de fenêtre appartenant à un ensemble de variables propres audit type de paquet donné. La même remarque s'applique pour les figures 9a et 9b décrites ci-après. Pour un paquet traité ayant un type donné, on arrive à l'étape 860 après avoir déterminé le canal de transmission préféré à l'étape 35 (cf. figure 3). Dans l'étape 860, on commute en fonction du canal préféré : on passe à l'étape 861 si le canal préféré est le canal UDP (c'est-à-dire si le protocole de transport préféré est UDP), ou à l'étape 862 si le canal préféré est le canal TCP (c'est-à-dire si le protocole de transport préféré est TCP). For each of the packet types, a transport mode and two transmission windows (one per transmission channel of the tunnel) are thus managed. A transmission window associated with a given channel is defined by a set of parameters which make it possible to define a maximum quantity of packets that can be transmitted on this given channel for a determined duration (which corresponds to the RTT). For a given type of packet, depending on the mode of transport, both windows will increase or decrease to switch gradually from one channel to another. It is recalled that the type of a packet being processed (or processed packet) is determined during the classification step 32 of FIG. 3. In the present example, two types of packets are considered: TCP packet or UDP packet. . For each of these two types of packet, one manages a transport mode and two transmission windows, hereinafter called TCP transmission window and UDP transmission window. It is important to note that the following description of FIG. 8 is for a packet having a given type, and therefore that whenever the transport mode or a window parameter (Wtcp, Stcp, Wtcp_max, Wudp , Sudp, Wudp_max) is mentioned, it should be understood that this is the mode of transport or a window parameter belonging to a set of variables specific to said given packet type. The same applies for Figures 9a and 9b described below. For a processed packet having a given type, step 860 is obtained after determining the preferred transmission channel in step 35 (see FIG. In step 860, it is switched according to the preferred channel: step 861 is passed if the preferred channel is the UDP channel (i.e. if the preferred transport protocol is UDP), or step 862 if the preferred channel is the TCP channel (i.e. if the preferred transport protocol is TCP).

Dans l'étape 862 (cas où le canal préféré est le canal TCP), on commute en fonction du mode de transport courant (pour le type du paquet traité). In step 862 (in which case the preferred channel is the TCP channel), it is switched according to the current transport mode (for the type of the processed packet).

Si à l'étape 862 le mode courant est le mode stable TCP (associé à un précédent canal préféré qui est le canal TCP), le système doit entrer dans le mode transitoire TCP-vers-UDP, qui est établi à l'étape 863. Au préalable, on passe à l'étape 869, dans laquelle on initialise les paramètres de fenêtre pour le type du paquet traité : - la quantité de données déjà transmises sur le canal UDP pour le type du paquet traité (Sudp) est mise à 0 (Sudp=O) ; - la taille (Wudp) de la fenêtre UDP (quantité maximale de paquets pouvant être transmis sur le canal UDP) est mise à la taille de segment maximale (MSS, pour Maximum Segment Size en anglais) de la connexion TCP sur le canal TCP (Wudp=MSS) ; - la condition d' arrêt (Wudp_max), qui correspond à la taille maximale de la fenêtre UDP, est mise à la valeur courante (Cwnd) de la fenêtre de congestion TCP (Wudp_max=Cwnd). Cette condition d'arrêt déterminera la sortie du mode transitoire TCP-vers-UDP. If in step 862 the current mode is the TCP stable mode (associated with a previous preferred channel which is the TCP channel), the system must enter TCP-to-UDP transient mode, which is set at step 863 In advance, step 869, in which the window parameters are initialized for the type of the processed packet: the amount of data already transmitted on the UDP channel for the type of packet processed (Sudp) is set to 0 (Sudp = O); - the size (Wudp) of the UDP window (maximum amount of packets that can be transmitted on the UDP channel) is set to the Maximum Segment Size (MSS) of the TCP connection on the TCP channel ( Wudp = MSS); - the stop condition (Wudp_max), which corresponds to the maximum size of the UDP window, is set to the current value (Cwnd) of the TCP congestion window (Wudp_max = Cwnd). This stop condition will determine the TCP-to-UDP transient output.

Si à l'étape 862 le mode courant est le mode transitoire UDP-vers-TCP (associé à un précédent canal préféré qui est le canal TCP), le système doit là aussi entrer dans le mode transitoire TCP-vers-UDP, qui est établi à l'étape 863. On peut conserver les paramètres de fenêtre, pour le type du paquet traité, qui ont déjà été initialisés (cf figure 9a). If at step 862 the current mode is the transient UDP-to-TCP mode (associated with a previous preferred channel which is the TCP channel), the system must again enter the TCP-to-UDP transient mode, which is established in step 863. It is possible to retain the window parameters, for the type of the processed packet, which have already been initialized (see FIG. 9a).

Si à l'étape 862 le mode courant est le mode stable UDP (associé à un précédent canal préféré qui est le canal UDP) ou le mode transitoire TCP-vers-UDP (associé à un précédent canal préféré qui est le canal UDP), aucune action n'est nécessaire. Après l'étape 863 (dans laquelle on entre dans la phase transitoire où l'on va utiliser le mode de transport virtuel TCP vers UDP), on passe à l'étape 801. Pour le type du paquet traité, son canal de transport (identifié par son identifiant PID 550) est modifié pour référencer le mode de transport 602, de type TCP vers UDP, dans la table des canaux de transport 600. Ensuite, on ajoute l'identifiant FID 501 du type du paquet traité dans la liste des flux 607 transitant dans le canal 610 (de la base d'information des canaux 600). Enfin, on vérifie si la valeur du MTU du canal de transport nouvellement sélectionné est inférieure à la valeur du MTU du canal précédemment utilisé par le type du paquet traité. En cas de vérification positive, on génère un message d'erreur ICMP (type=3, code=4) à partir des informations contenues dans le datagramme IP en cours de traitement, sans pour autant éliminer ce datagramme. Ensuite, comme en cas de vérification négative, l'étape 801 est terminée. Après l'étape 801, on passe à l'étape 866 dans laquelle on lance l'exécution de l'algorithme de gestion du mode transitoire TCP-vers-UDP (décrit ci-après en relation avec la figure 9b). Après ce lancement, on passe à l'étape 38 de la figure 13. Dans l'étape 861 (cas où le canal préféré est le canal UDP), on commute en fonction du mode de transport courant (pour le type du paquet traité). Si à l'étape 861 le mode courant est le mode stable UDP (associé à un précédent canal préféré qui est le canal UDP), le système doit entrer dans le mode transitoire UDP-vers-TCP, qui est établi à l'étape 864. Au préalable, on passe à l'étape 868, dans laquelle on initialise les paramètres de fenêtre pour le type du paquet traité : - la quantité de données déjà transmises sur le canal TCP pour le type du 15 paquet traité (Stcp) est mise à 0 (Stcp=0) ; - la taille (Wtcp) de la fenêtre TCP (quantité maximale de paquets pouvant être transmis sur le canal TCP) est mise à la taille de la valeur courante (Cwnd) de la fenêtre de congestion TCP (Wtcp=Cwnd). Ainsi, initialement, les deux fenêtres (Wtcp et Cwnd) ont la même taille ; 20 - la condition d'arrêt (Wtcp_max), qui correspond à la taille maximale de la fenêtre TCP, est mise à la valeur courante de la fenêtre UDP (Wudp). Cette condition d'arrêt déterminera la sortie du mode transitoire UDP-vers-TCP. Si à l'étape 861 le mode courant est le mode transitoire TCP-vers-UDP (associé 25 à un précédent canal préféré qui est le canal UDP), le système doit là aussi entrer dans le mode transitoire UDP-vers-TCP, qui est établi à l'étape 864. On peut conserver les paramètres de fenêtre, pour le type du paquet traité, qui ont déjà été initialisés (cf figure 9a). 10 Si à l'étape 861 le mode courant est le mode stable TCP (associé à un précédent canal préféré qui est le canal TCP) ou le mode transitoire UDP-vers-TCP (associé à un précédent canal préféré qui est le canal TCP), aucune action n'est nécessaire. Après l'étape 864 (dans laquelle on entre dans une phase transitoire où l'on va utiliser le mode de transport virtuel UDP vers TCP), on passe à l'étape 802. Pour le type du paquet traité, son canal de transport (identifié par son identifiant PID 550) est modifié pour référencer le mode de transport 602, de type UDP vers TCP, dans la table des canaux de transport 600. Ensuite, on ajoute l'identifiant FID 501 du type du paquet traité dans la liste des flux 607 transitant dans le canal 610 (de la base d'information des canaux 600). Enfin, on vérifie si la valeur du MTU du canal de transport nouvellement sélectionné est inférieure à la valeur du MTU du canal précédemment utilisé par le type du paquet traité. En cas de vérification positive, on génère un message d'erreur ICMP (type=3, code=4) à partir des informations contenues dans le datagramme IP en cours de traitement, sans pour autant éliminer ce datagramme. If in step 862 the current mode is the UDP stable mode (associated with a previous preferred channel which is the UDP channel) or the transient TCP-to-UDP mode (associated with a previous preferred channel which is the UDP channel), no action is necessary. After step 863 (in which we enter the transitional phase where we will use the TCP-UDP virtual transport mode), we go to step 801. For the type of packet processed, its transport channel ( identified by its PID identifier 550) is modified to reference the transport mode 602, of TCP to UDP type, in the table of the transport channels 600. Then, the FID identifier 501 of the type of the processed packet is added to the list of stream 607 transiting in channel 610 (from the information base of channels 600). Finally, it is checked whether the value of the MTU of the newly selected transport channel is smaller than the value of the channel MTU previously used by the type of the processed packet. In the case of positive verification, an ICMP error message (type = 3, code = 4) is generated from the information contained in the IP datagram being processed, without eliminating this datagram. Then, as in the case of negative verification, step 801 is completed. After step 801, proceed to step 866 in which the execution of the TCP-to-UDP transient mode management algorithm (described below in connection with FIG. 9b) is started. After this launch, step 38 of FIG. 13 is carried out. In step 861 (in the case where the preferred channel is the UDP channel), it is switched according to the current transport mode (for the type of the processed packet) . If in step 861 the current mode is the UDP stable mode (associated with a previous preferred channel which is the UDP channel), the system must enter the transient UDP-to-TCP mode, which is set at step 864 Beforehand, proceed to step 868, in which the window parameters are initialized for the type of the processed packet: the quantity of data already transmitted on the TCP channel for the type of the processed packet (Stcp) is set at 0 (Stcp = 0); the size (Wtcp) of the TCP window (maximum amount of packets that can be transmitted over the TCP channel) is set to the size of the current value (Cwnd) of the TCP congestion window (Wtcp = Cwnd). Thus, initially, the two windows (Wtcp and Cwnd) have the same size; The stop condition (Wtcp_max), which corresponds to the maximum size of the TCP window, is set to the current value of the UDP window (Wudp). This stop condition will determine the output of the UDP-to-TCP transient mode. If at step 861 the current mode is the TCP-to-UDP transient mode (associated with a previous preferred channel which is the UDP channel), the system must again enter the UDP-to-TCP transient mode, which is established in step 864. It is possible to preserve the window parameters, for the type of the processed packet, which have already been initialized (see FIG. 9a). If in step 861 the current mode is the TCP stable mode (associated with a previous preferred channel which is the TCP channel) or the transient UDP-to-TCP mode (associated with a previous preferred channel which is the TCP channel) no action is necessary. After step 864 (in which we enter a transitional phase where we will use the virtual transport mode UDP to TCP), we go to step 802. For the type of packet processed, its transport channel ( identified by its PID identifier 550) is modified to reference the transport mode 602, of the UDP to TCP type, in the table of the transport channels 600. Then, the FID identifier 501 of the type of the processed packet is added to the list of stream 607 transiting in channel 610 (from the information base of channels 600). Finally, it is checked whether the value of the MTU of the newly selected transport channel is smaller than the value of the channel MTU previously used by the type of the processed packet. In the case of positive verification, an ICMP error message (type = 3, code = 4) is generated from the information contained in the IP datagram being processed, without eliminating this datagram.

Ensuite, comme en cas de vérification négative, l'étape 802 est terminée. Après l'étape 802, on passe à l'étape 865 dans laquelle on lance l'exécution de l'algorithme de gestion du mode transitoire UDP-vers-TCP (décrit ci-après en relation avec la figure 9a). Après ce lancement, on passe à l'étape 38 de la figure 13. Dans une variante de réalisation des étapes 801 et 802 précitées, pour chacun des flux (de la liste des flux 607) transitant dans le canal de transport (identifié par l'identifiant PID 650) du flux traité, il est possible d'envisager d'appliquer la méthode consistant à générer un message d'erreur ICMP en utilisant les informations contenues dans la table des flux de données 500 pour construire le message d'erreur ICMP 410 et la valeur du MTU du nouveau canal de transport considéré. Then, as in the case of negative verification, step 802 is completed. After step 802, proceed to step 865 in which the execution of the UDP-to-TCP transient mode management algorithm (described hereinafter with reference to FIG. 9a) is started. After this launch, step 38 of FIG. 13 is carried out. In an alternative embodiment of the steps 801 and 802 mentioned above, for each of the streams (from the list of streams 607) passing through the transport channel (identified by FIG. PID identifier 650) of the processed stream, it is possible to consider applying the method of generating an ICMP error message using the information contained in the data stream table 500 to construct the ICMP error message. 410 and the value of the MTU of the new transport channel considered.

La figure 9a présente un algorithme de gestion du mode transitoire UDP-vers-TCP, selon un mode de réalisation particulier du procédé selon l'invention. Comme on le verra, l'invention permet de notifier à un équipement source un changement de MTU (taille limite des données utiles pouvant être transmises dans un paquet) provoqué par un changement de canal de transport 610 lors de l'échéance d'une phase transitoire. FIG. 9a presents a UDP-to-TCP transient mode management algorithm, according to a particular embodiment of the method according to the invention. As will be seen, the invention makes it possible to notify a source equipment of a change in MTU (size limit of useful data that can be transmitted in a packet) caused by a change of transport channel 610 when a phase expires. transient.

Cette figure décrit comment, pour un flux donné, les paramètres des fenêtres de transmission TCP et UDP (pour ce flux donné) évoluent pour permettre une commutation progressive depuis le mode de transport stable UDP vers le mode de transport stable TCP. This figure describes how, for a given stream, the parameters of the TCP and UDP transmission windows (for this given stream) evolve to allow a progressive switching from the stable UDP transport mode to the TCP stable transport mode.

Afin d'éviter des problèmes dus à l'envoi d'un trop grand nombre de paquets sur le canal TCP comparé à la taille (Cwnd) de sa fenêtre de congestion, on prend en compte le mécanisme prévu dans le canal TCP pour éviter les congestions et on augmente la taille (Wtcp) de la fenêtre (virtuelle) de transmission TCP, pour être en accord avec l'évolution naturelle de la taille (Cwnd) de la fenêtre de congestion. In order to avoid problems due to sending too many packets on the TCP channel compared to the size (Cwnd) of its congestion window, we take into account the mechanism provided in the TCP channel to avoid congestions and increases the size (Wtcp) of the (virtual) TCP transmission window, to be in agreement with the natural evolution of the size (Cwnd) of the congestion window.

Dans une étape 959, on incrémente d'une unité le nombre (Nudp_tcp) de types de paquet dans le mode UDP-vers-TCP. Les basculements de canal de transmission dans un tunnel faisant suite à des variations de conditions de transmission dans le tunnel ayant un impact sur les flux d'un type donné transitant dans le tunnel, il est opéré un basculement de canal pour l'ensemble des flux du type donné. C'est pourquoi on stocke le nombre de types de paquet dans un mode et non le nombre de flux dans ce mode. Puis, pour gérer la taille (Wtcp) de la fenêtre de transmission TCP, une temporisation est lancée dans l'étape 951 (correspondant au RTT du canal TCP, mis à jour à chaque fois qu'un paquet est reçu, cf étape 12), et on attend l'expiration de cette temporisation, à l'étape 952. Pendant ce temps (entre les étapes 951 et 952), des données sont envoyés conformément à l'étape 38 (cette étape 38 est effectuée une fois pour chaque flux). Après que la temporisation a expiré, on teste dans l'étape 953 si le mode de transport a changé (suite à une modification du canal préféré à l'étape 35, on peut décider à l'étape 36 de changer le mode de transport depuis le mode transitoire UDP- vers-TCP vers le mode transitoire TCP-vers-UDP). Si le mode de transport a changé, on passe avant de terminer à l'étape 957 dans laquelle on décrémente le nombre (Nudptcp) de types de paquet dans le mode UDP-vers-TCP. In a step 959, the number (Nudp_tcp) of packet types in the UDP-to-TCP mode is incremented by one. Transmission channel failovers in a tunnel following variations in transmission conditions in the tunnel having an impact on the flows of a given type transiting the tunnel, a channel switchover is performed for all the flows of the given type. This is why we store the number of packet types in a mode and not the number of streams in this mode. Then, to manage the size (Wtcp) of the TCP transmission window, a timer is started in step 951 (corresponding to the RTT of the TCP channel, updated each time a packet is received, see step 12) , and this timer expires at step 952. During this time (between steps 951 and 952), data is sent in accordance with step 38 (this step 38 is performed once for each stream ). After the timer has expired, it is tested in step 953 whether the mode of transport has changed (following a modification of the preferred channel in step 35, it can be decided at step 36 to change the mode of transport from transient mode UDP-to-TCP to TCP-to-UDP transient mode). If the transport mode has changed, it passes before ending at step 957 in which the number (Nudptcp) of packet types in the UDP-to-TCP mode is decremented.

Si le mode de transport n'a pas changé, l'algorithme se poursuit pour continuer à gérer l'évolution de la fenêtre (virtuelle) de transmission TCP. On passe à l'étape 954 dans laquelle on augmente la taille (Wtcp) de la fenêtre de transmission TCP de MSS/Nudptcp. Ainsi, on suit l'évolution maximale de la taille (Cwnd) de la fenêtre de congestion TCP en évitant des congestions, et en tenant compte de ce que Nudp_tcp types de paquets sont simultanément dans le mode transitoire UDP-vers-TCP. En outre, dans l'étape 954, la quantité de données déjà transmises sur le canal TCP pour le type de paquet traité (Stcp) pendant le dernier RTT est mise à 0 (Stcp=O). Dans l'étape 955, on décide si la phase transitoire dans le mode transitoire UDP-vers-TCP est terminée. Pour cela on vérifie si la taille (Wtcp) de la fenêtre de transmission TCP a été suffisamment augmentée (Wtcp > Wtcp_max ?), et s'il n'y a plus de données destinées à être envoyées sur le canal UDP pour le type de paquet traité (Sudp=O ?). Si la phase transitoire est terminée, on passe à l'étape 956 dans laquelle on établit le mode stable TCP. Ensuite, on passe à l'étape 960 dans laquelle on met à jour les paramètres du canal de transport (identifié par son identifiant PID 550) du flux traité. On va ainsi supprimer le flux traité de la liste des flux 607 du canal de transport précédemment utilisé (par le flux traité) et l'ajouter à la liste des flux du canal de transport nouvellement sélectionné à l'étape 956 (mode TCP). Dans cette même étape 960, on teste si la valeur du MTU 605 du canal de transport nouvellement sélectionné est supérieure à la valeur du MTU du canal de transport précédent. En cas de vérification positive, on génère un message d'erreur ICMP (type=3, code=4), puis on le transmet à l'équipement source (c'est-à-dire à l'équipement qui a émis le datagramme IP en cours de traitement), pour lui notifier une augmentation du MTU. Enfin, on passe à l'étape 957 dans laquelle on décrémente le nombre (Nudp_tcp) de types de paquet dans le mode UDP-vers-TCP. Si la phase transitoire n'est pas terminée, on passe à l'étape 958 dans laquelle on met à 0 la quantité de données déjà transmises sur le canal UDP pour le type du paquet traité (Sudp=O), puis on revient à l'étape 951 et une nouvelle temporisation est lancée. La figure 9b présente un algorithme de gestion du mode transitoire TCP-vers- UDP, selon un mode de réalisation particulier du procédé selon l'invention. If the mode of transport has not changed, the algorithm continues to continue to manage the evolution of the (virtual) TCP transmission window. Proceed to step 954 in which the size (Wtcp) of the TCP transmission window of MSS / Nudptcp is increased. Thus, one follows the maximum evolution of the size (Cwnd) of the TCP congestion window by avoiding congestion, and taking into account that Nudp_tcp types of packets are simultaneously in the UDP-to-TCP transient mode. Further, in step 954, the amount of data already transmitted on the TCP channel for the processed packet type (Stcp) during the last RTT is set to 0 (Stcp = 0). In step 955, it is decided whether the transient phase in the UDP-to-TCP transient mode is complete. For this we check if the size (Wtcp) of the TCP transmission window has been sufficiently increased (Wtcp> Wtcp_max?), And if there is more data to be sent on the UDP channel for the type of processed packet (Sudp = O?). If the transient phase is complete, proceed to step 956 in which the TCP stable mode is established. Then, we go to step 960 in which the parameters of the transport channel (identified by its PID identifier 550) of the processed stream are updated. It will thus remove the processed stream from the stream list 607 of the previously used transport channel (by the processed stream) and add it to the list of streams of the transport channel newly selected in step 956 (TCP mode). In this same step 960, it is tested whether the value of the MTU 605 of the newly selected transport channel is greater than the value of the MTU of the previous transport channel. In the case of positive verification, an ICMP error message (type = 3, code = 4) is generated and then transmitted to the source equipment (ie to the device that issued the datagram IP being processed), to notify him of an increase in the MTU. Finally, proceed to step 957 in which the number (Nudp_tcp) of packet types in the UDP-to-TCP mode is decremented. If the transient phase is not completed, proceed to step 958 in which the amount of data already transmitted on the UDP channel for the type of the processed packet is set to 0 (Sudp = 0), then back to the step 951 and a new timer is started. FIG. 9b presents a TCP-to-UDP transient mode management algorithm, according to a particular embodiment of the method according to the invention.

Cette figure décrit comment, pour un flux donné, les paramètres des fenêtres de transmission TCP et UDP (pour ce flux donné) évoluent pour permettre une commutation progressive depuis le mode de transport stable TCP vers le mode de transport stable UDP. This figure describes how, for a given stream, the parameters of the TCP and UDP transmission windows (for this given stream) evolve to allow a progressive switching from the TCP stable transport mode to the stable UDP transport mode.

Ce mécanisme de gestion de la fenêtre de transmission UDP est similaire à celui décrit ci-dessus en relation avec la figure 9a pour la fenêtre de transmission TCP. La taille (Wudp) de la fenêtre de transmission UDP indique la quantité maximale de flux pouvant être transmis sur le canal UDP pendant une durée RTT. Cette durée RTTu est une valeur calculée par le système, et correspond à un temps d'aller-retour comme décrit pour TCP (cette valeur peut être calculée en envoyant périodiquement une requête de contrôle spécifique, depuis une tête de tunnel vers une autre, l'autre tête de tunnel répondant immédiatement à cette requête). Pour éviter une congestion due à l'envoi d'un trop grand nombre de flux sur le canal UDP (avant que le canal TCP ait fini de vider sa mémoire tampon d'émission), on ne peut pas brutalement commuter depuis une transmission entièrement TCP vers une transmission entièrement UDP. On utilise donc le mécanisme de la figure 9b (similaire à celui de la figure 9a). Dans une étape 909, on incrémente d'une unité le nombre (Ntcpudp) de types de paquet dans le mode TCP-vers-UDP. This mechanism for managing the UDP transmission window is similar to that described above in relation to FIG. 9a for the TCP transmission window. The size (Wudp) of the UDP transmission window indicates the maximum amount of streams that can be transmitted on the UDP channel for an RTT duration. This duration RTTu is a value calculated by the system, and corresponds to a round-trip time as described for TCP (this value can be calculated by periodically sending a specific control request, from one end of tunnel to another, l another tunnel head immediately responding to this request). To avoid congestion due to sending too many streams on the UDP channel (before the TCP channel has finished emptying its transmit buffer), you can not abruptly switch from a fully TCP transmission to a fully UDP transmission. Thus the mechanism of Figure 9b (similar to that of Figure 9a) is used. In a step 909, the number (Ntcpudp) of packet types in the TCP-to-UDP mode is incremented by one.

Puis, pour gérer la taille (Wudp) de la fenêtre de transmission UDP, une temporisation est lancée dans l'étape 901 (correspondant au RTTu précité), et on attend l'expiration de cette temporisation, à l'étape 902. Pendant ce temps (entre les étapes 901 et 902), des flux sont envoyés conformément à l'étape 38 (cette étape 38 est effectuée une fois pour chaque flux). Then, to manage the size (Wudp) of the UDP transmission window, a timer is started in step 901 (corresponding to the aforementioned RTTu), and the timer expires at step 902. time (between steps 901 and 902), streams are sent in accordance with step 38 (this step 38 is performed once for each stream).

Après que la temporisation a expiré, on teste dans l'étape 903 si le mode de transport a changé (suite à une modification du canal préféré à l'étape 35, on peut décider à l'étape 36 de changer le mode de transport depuis le mode transitoire TCP-vers-UDP vers le mode transitoire UDP-vers-TCP). Si le mode de transport a changé, on passe avant de terminer à l'étape 907 dans laquelle on décrémente le nombre (Ntcp_udp) de types de paquet dans le mode TCP- vers-UDP. After the timer has expired, it is tested in step 903 whether the transport mode has changed (following a modification of the preferred channel in step 35, it can be decided in step 36 to change the mode of transport from TCP-to-UDP transient mode to transient UDP-to-TCP mode). If the transport mode has changed, it passes before ending at step 907 in which the number (Ntcp_udp) of packet types in the TCP-to-UDP mode is decremented.

Si le mode de transport n'a pas changé, l'algorithme se poursuit pour continuer à gérer l'évolution de la fenêtre (virtuelle) de transmission UDP. On passe à l'étape 904 dans laquelle on augmente la taille (Wudp) de la fenêtre de transmission UDP de MSS/Ntcpudp. En outre, dans l'étape 904, la quantité de flux déjà transmis sur le canal UDP pour le flux traité (Sudp) pendant le dernier RTT (RTTu) est mise à 0 (Sudp=O). Dans l'étape 905, on décide si la phase transitoire dans le mode transitoire TCP-vers-UDP est terminée. Pour cela on vérifie si la taille (Wudp) de la fenêtre de transmission UDP a été suffisamment augmentée (Wudp > Wudp max ?), et s'il n'y a plus de données destinées à être envoyées sur le canal TCP pour le type de paquet traité (Stcp=0 ?). Si la phase transitoire est terminée, on passe à l'étape 906 dans laquelle on établit le mode stable UDP. Ensuite, on passe à l'étape 910 dans laquelle on met à jour les paramètres du canal de transport (identifié par son identifiant PID 550) des flux du type de paquet traité. On va ainsi supprimer chacun de ces flux de la liste des flux 607 du canal de transport précédemment utilisé (par le flux traité) et l'ajouter à la liste des flux du canal de transport nouvellement sélectionné à l'étape 906 (mode UDP). Dans cette même étape 960, on teste si la valeur du MTU 605 du canal de transport nouvellement sélectionné est supérieure à la valeur du MTU du canal de transport précédent. En cas de vérification positive (augmentation ou diminution du MTU), on génère un message d'erreur ICMP (type=3, code=4), puis on le transmet à l'équipement source (c'est-à-dire à l'équipement qui a émis le datagramme IP en cours de traitement), pour lui notifier une augmentation du MTU. Enfin, on passe à l'étape 907 dans laquelle on décrémente le nombre (Ntcp_udp) de types de paquet dans le mode TCP-vers-UDP. Si la phase transitoire n'est pas terminée, on passe à l'étape 908 dans laquelle on met à 0 la quantité de données déjà transmises sur le canal TCP pour le type de paquet traité (Stcp=O), puis on revient à l'étape 901 et une nouvelle temporisation est lancée. Dans une variante de réalisation des étapes 910 et 960 précitées, pour chacun des flux (de la liste des flux 607) transitant dans le canal de transport (identifié par l'identifiant PID 650) du flux traité, il est possible d'envisager d'appliquer la méthode consistant à générer un message d'erreur ICMP en utilisant les informations contenues dans la table des flux de données 500 pour construire le message d'erreur ICMP 410 et la valeur du MTU du nouveau canal de transport considéré. La figure 10 illustre une configuration schématique d'un appareil de communication 1000 (tête de tunnel 101 ou 102 de la figure la) adapté pour mettre en oeuvre la technique de l'invention. Il comprend une mémoire de type RAM 1002 qui fonctionne comme une mémoire principale, une zone de travail, etc., de l'unité centrale (CPU) 1001. L'unité centrale 1001 est capable, à la mise sous tension de l'appareil de communication, d'exécuter des instructions à partir de la mémoire de type ROM 1003. If the mode of transport has not changed, the algorithm continues to continue to manage the evolution of the (virtual) UDP transmission window. Proceed to step 904 in which the size (Wudp) of the UDP transmission window of MSS / Ntcpudp is increased. In addition, in step 904, the amount of stream already transmitted on the UDP channel for the processed stream (Sudp) during the last RTT (RTTu) is set to 0 (Sudp = 0). In step 905, it is decided whether the transient phase in the TCP-to-UDP transient mode is complete. For this we check if the size (Wudp) of the UDP transmission window has been sufficiently increased (Wudp> Wudp max?), And if there is more data to be sent on the TCP channel for the type of processed packet (Stcp = 0?). If the transient phase is complete, proceed to step 906 in which the UDP stable mode is established. Then, we go to step 910 in which the parameters of the transport channel (identified by its PID identifier 550) of the stream of the processed packet type are updated. Thus, each of these streams will be deleted from the list of streams 607 of the transport channel previously used (by the processed stream) and added to the list of streams of the transport channel newly selected in step 906 (UDP mode). . In this same step 960, it is tested whether the value of the MTU 605 of the newly selected transport channel is greater than the value of the MTU of the previous transport channel. In the case of positive verification (increase or decrease of the MTU), an ICMP error message (type = 3, code = 4) is generated and then transmitted to the source equipment (ie to the equipment that issued the IP datagram being processed), to notify it of an increase in the MTU. Finally, proceed to step 907 in which the number (Ntcp_udp) of packet types in the TCP-to-UDP mode is decremented. If the transient phase is not complete, proceed to step 908 in which the amount of data already transmitted on the TCP channel for the processed packet type (Stcp = O) is set to 0, then back to the step 901 and a new timer is started. In an alternative embodiment of the above-mentioned steps 910 and 960, for each of the streams (from the stream list 607) transiting in the transport channel (identified by the PID identifier 650) of the processed stream, it is possible to envisage applying the method of generating an ICMP error message using the information contained in the data flow table 500 to construct the ICMP error message 410 and the MTU value of the new transport channel under consideration. FIG. 10 illustrates a schematic configuration of a communication apparatus 1000 (tunnel end 101 or 102 of FIG. 1a) adapted to implement the technique of the invention. It comprises a memory of the RAM type 1002 which functions as a main memory, a working area, etc., of the central processing unit (CPU) 1001. The central unit 1001 is capable, at power-on of the apparatus communication, to execute instructions from the ROM 1003 type memory.

Après la mise sous tension, l'unité centrale 1001 est capable d'exécuter des instructions provenant de la mémoire RAM 1002 en relation avec une application logicielle après que ces instructions ont été chargées à partir de la ROM 1003 ou du disque dur (HD) 1006, par exemple. Une telle application logicielle, lorsqu'elle est exécutée par l'unité centrale 1001, provoque la réalisation de tout ou partie des étapes des organigrammes illustrés sur les figures 7, 8, 9a, 9b, 11, 12 et 13. After power-on, CPU 1001 is able to execute instructions from RAM 1002 in connection with a software application after these instructions have been loaded from ROM 1003 or hard disk (HD). 1006, for example. Such a software application, when executed by the central unit 1001, causes the realization of all or part of the steps of the flow charts illustrated in Figures 7, 8, 9a, 9b, 11, 12 and 13.

Claims (12)

REVENDICATIONS 1. Procédé de notification à un dispositif source (109, 110, 111, 112) d'une taille limite de paquets de données destinées à être transmises dans un tunnel (100) comprenant une pluralité de canaux de transmission, ledit dispositif source étant relié à 5 une tête de tunnel (101) via un réseau de communication (107), ledit procédé étant mis en oeuvre par ladite tête de tunnel formant un point d'entrée dudit tunnel, caractérisé en ce qu'il comprend les étapes suivantes, pour chaque flux de données destinées à être transmises dans ledit tunnel et provenant dudit dispositif source : a) détection d'un événement déclencheur lié à un nouveau canal associé audit flux pour le transport dudit flux dans ledit tunnel ; b) obtention d'une première taille limite de paquets associée à un canal précédent associé audit flux pour le transport dudit flux dans ledit tunnel ; c) obtention d'une deuxième taille limite de paquets associée audit nouveau canal ; d) détection d'un changement de taille limite de paquets (701), par comparaison de ladite première taille limite de paquets avec ladite deuxième taille limite de paquets ; e) en cas de détection positive, transmission (707) d'un message de changement de taille limite de paquets vers ledit dispositif source. A method of notifying a source device (109, 110, 111, 112) of a size limit of data packets for transmission in a tunnel (100) comprising a plurality of transmission channels, said source device being connected at a tunnel head (101) via a communication network (107), said method being implemented by said tunnel head forming an entry point of said tunnel, characterized in that it comprises the following steps, for each stream of data intended to be transmitted in said tunnel and coming from said source device: a) detecting a triggering event linked to a new channel associated with said stream for transporting said stream in said tunnel; b) obtaining a first packet size limit associated with a previous channel associated with said stream for transporting said stream in said tunnel; c) obtaining a second packet size limit associated with said new channel; d) detecting a packet size change (701) by comparing said first packet size with said second packet size; e) in case of positive detection, transmitting (707) a packet size change message to said source device. 2. Procédé selon la revendication 1, caractérisé en ce qu'un premier événement 20 déclencheur est un basculement de transmission, pour ledit flux, dudit canal précédent vers ledit nouveau canal, qui est un canal distinct dudit canal précédent. A method according to claim 1, characterized in that a first triggering event is a transmission switch for said stream from said previous channel to said new channel, which is a separate channel from said previous channel. 3. Procédé selon la revendication 2, caractérisé en ce que le tunnel comprend des canaux de transmission réels et des canaux de transmission virtuels, un canal réel étant un canal dans lequel les flux transportés sont encapsulés par un protocole de transport 25 unique, en ce que ledit premier événement déclencheur est un basculement appartenant au groupe comprenant : - un basculement depuis un premier canal réel vers un second canal réel ; - un basculement depuis un canal réel vers un canal virtuel ; - un basculement depuis un canal virtuel vers un canal réel ; 30 - un basculement depuis un premier canal virtuel vers un second canal virtuel ; 10 15et en ce que un canal virtuel associé à un flux donné pour le transport dudit flux dans ledit tunnel est défini par : - deux canaux réels dudit tunnel, et - un mécanisme de basculement progressif de l'un vers l'autre desdits canaux réels, permettant pour chaque paquet dudit flux donné de sélectionner de façon dynamique un canal effectif parmi lesdits canaux réels. 3. Method according to claim 2, characterized in that the tunnel comprises real transmission channels and virtual transmission channels, a real channel being a channel in which the transported streams are encapsulated by a single transport protocol, in that said first triggering event is a failover belonging to the group comprising: - a switch from a first real channel to a second real channel; a switch from a real channel to a virtual channel; a switch from a virtual channel to a real channel; A switch from a first virtual channel to a second virtual channel; And in that a virtual channel associated with a given stream for transporting said stream in said tunnel is defined by: - two real channels of said tunnel, and - a mechanism for progressive switching from one to the other of said real channels allowing for each packet of said given stream to dynamically select an effective one of said real channels. 4. Procédé selon la revendication 3, caractérisé en ce que la taille limite de paquets associée à un canal virtuel est égale à la plus petite taille limite de paquets parmi les deux tailles limites de paquets associées aux deux canaux réels. 4. Method according to claim 3, characterized in that the packet size limit associated with a virtual channel is equal to the smallest packet size limit among the two packet size limits associated with the two real channels. 5. Procédé selon la revendication 1, caractérisé en ce qu'un second événement déclencheur est une réception d'un message d'erreur indiquant un changement de taille limite de paquets pour un canal de transport du flux qui constitue à la fois le canal précédent et le nouveau canal, lesdites première et deuxième tailles limites de paquets étant respectivement une précédente et une nouvelle taille limite de paquets dudit canal de transmission. Method according to claim 1, characterized in that a second triggering event is a reception of an error message indicating a change in packet size limit for a transport channel of the stream which constitutes both the previous channel and the new channel, said first and second packet size limits being respectively a previous and a new packet size limit of said transmission channel. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend : - une phase de configuration comprenant une première étape d'association d'une information de type de paquet, à une information de canal de transmission, à une information (605) de taille limite de paquets, et à une liste (607) d'identifiants de flux (501) transmis par ledit canal de transmission et composés de paquets dudit type de paquet ; - une phase de mise à jour, quand un changement de taille limite de paquets est détecté pour la transmission d'un type de paquet donné, de l'information de taille limite de paquets associée audit type de paquet. 6. Method according to any one of claims 1 to 5, characterized in that it comprises: - a configuration phase comprising a first step of association of a packet type information to a transmission channel information packet size information (605) and a list (607) of stream identifiers (501) transmitted by said transmission channel and composed of packets of said packet type; an update phase, when a packet size change is detected for the transmission of a given packet type, packet size information associated with said packet type. 7. Procédé selon la revendication 6, caractérisé en ce que, si ledit nouveau canal est un canal réel, la phase de mise à jour comprend une étape de mise à jour de l'information de taille limite de paquets associée à des types de paquets transmis par un canal virtuel défini par un couple de canaux réels comprenant ledit nouveau canal. 7. Method according to claim 6, characterized in that, if said new channel is a real channel, the update phase comprises a step of updating the packet size information associated with packet types transmitted by a virtual channel defined by a pair of real channels comprising said new channel. 8. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce que la phase de configuration comprend en outre une deuxième étape d'association d'un identifiant de flux (501) à une adresse de dispositif source (502), et en ce que la phase de mise à jour comprend en outre les étapes suivantes, en cas de détection du second événement déclencheur : -récupération d'un identifiant de flux (501) dans le message d'erreur, ledit identifiant de flux étant inséré par la tête de tunnel dans les paquets dudit flux pendant une étape de transmission desdits paquets dans le tunnel ; - récupération de l'adresse de dispositif source (502) associée à l'identifiant de flux récupéré ; - construction d'un message de changement de taille limite de paquets à partir de l'information de taille limite de paquets mise à jour ; - transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source (502) récupérée. The method according to any one of claims 6 and 7, characterized in that the configuration phase further comprises a second step of associating a stream identifier (501) with a source device address (502), and in that the update phase further comprises the following steps, in case of detection of the second triggering event: retrieval of a stream identifier (501) in the error message, said stream identifier being inserted by the tunnel end in the packets of said stream during a step of transmitting said packets in the tunnel; recovering the source device address (502) associated with the retrieved stream identifier; constructing a packet size change message from the updated packet size information; transmitting said packet size change message to the source device corresponding to the recovered source device address (502). 9. Procédé selon la revendication 8, caractérisé en ce qu'il comprend les étapes suivantes : - récupération d'un ensemble (607) d'identifiants de flux (501) à partir d'un identifiant dudit nouveau canal ; pour chaque identifiant de flux de l'ensemble récupérée : - récupération de l'adresse de dispositif source (502) associée audit identifiant de flux; -construction d'un message de changement de taille limite de paquets à partir de ladite information de taille limite de paquets mise à jour ; -transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source (502) récupérée. 9. Method according to claim 8, characterized in that it comprises the following steps: recovering a set (607) of stream identifiers (501) from an identifier of said new channel; for each stream identifier of the retrieved set: - retrieving the source device address (502) associated with said stream identifier; constructing a packet size change message from said updated packet size information; transmitting said packet size change message to the source device corresponding to the recovered source device address (502). 10. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, 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 à 9, lorsque ledit programme est exécuté sur un ordinateur. Computer program product downloadable from a communication network and / or recorded on a computer-readable medium and / or executable by a processor, characterized in that it comprises program code instructions for the implementation of the Method according to at least one of Claims 1 to 9, when said program is executed on a computer. 11. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé selon au moins une des revendications 1 à 9. 11. Storage medium, possibly completely or partially removable, readable by a computer, storing a set of instructions executable by said computer to implement the method according to at least one of claims 1 to 9. 12. Tête de tunnel destinée à mettre en oeuvre un procédé de notification à un dispositif source d'une taille limite de paquets de données destinées à être transmises dans un tunnel comprenant une pluralité de canaux de transmission, ledit dispositif source étant relié à ladite tête de tunnel via un réseau de communication, ladite tête de tunnel comprenant des moyens de transmission dans ledit tunnel de flux de données provenant dudit dispositif source, caractérisée en ce que la tête de tunnel comprend : - des moyens de détection d'un événement déclencheur lié à un nouveau canal associé à un flux donné pour le transport dudit flux donné dans ledit tunnel ; - des moyens d'obtention d'une première taille limite de paquets associée à un canal précédent associé audit flux donné pour le transport dudit flux donné dans ledit tunnel ; - des moyens d'obtention d'une deuxième taille limite de paquets associée audit nouveau canal ; -des moyens de détection d'un changement de taille limite de paquets, par comparaison de ladite première taille limite de paquets avec ladite deuxième taille limite de paquets ; - des moyens de transmission d'un message de changement de taille limite de paquets vers ledit dispositif source. 18. Tête de tunnel selon la revendication 12, caractérisée en ce qu'un premier événement déclencheur est un basculement de transmission, pour ledit flux donné, dudit 25 canal précédent vers ledit nouveau canal, qui est un canal distinct dudit canal précédent. 19. Tête de tunnel selon la revendication 13, caractérisée en ce que le tunnel comprend des canaux de transmission réels et des canaux de transmission virtuels, un canal réel étant un canal dans lequel les flux transportés sont encapsulés par un protocole de transport unique, en ce que ledit premier événement déclencheur est un 30 basculement appartenant au groupe comprenant : - un basculement depuis un premier canal réel vers un second canal réel ; 20-un basculement depuis un canal réel vers un canal virtuel ; - un basculement depuis un canal virtuel vers un canal réel ; - un basculement depuis un premier canal virtuel vers un second canal virtuel ; et en ce que un canal virtuel associé à un flux donné pour le transport dudit flux donné dans ledit tunnel est défini par : - deux canaux réels dudit tunnel, et - un mécanisme de basculement progressif de l'un vers l'autre desdits canaux réels, permettant pour chaque paquet dudit flux donné de sélectionner de façon dynamique un canal effectif parmi lesdits canaux réels. 15. Tête de tunnel selon la revendication 14, caractérisée en ce que la taille limite de paquets associée à un canal virtuel est égale à la plus petite taille limite de paquets parmi les deux tailles limites de paquets associées aux deux canaux réels. 16. Tête de tunnel selon la revendication 12, caractérisée en ce qu'un second événement déclencheur est une réception d'un message d'erreur indiquant un changement de taille limite de paquets pour un canal de transport du flux donné qui constitue à la fois le canal précédent et le nouveau canal, lesdites première et deuxième tailles limites de paquets étant respectivement une précédente et une nouvelle taille limite de paquets dudit canal de transmission. 17. Tête de tunnel selon l'une quelconque des revendications 12 à 16, caractérisée en ce qu'elle comprend : - des moyens de configuration comprenant des premiers moyens d'association d'une information de type de paquet, à une information de canal de transmission, à une information de taille limite de paquets, et à une liste d'identifiants de flux transmis par ledit canal de transmission et composés de paquets dudit type de paquet ; - des moyens de mise à jour de l'information de taille limite de paquets associée audit type de paquet. 18. Tête de tunnel selon la revendication 17, caractérisée en ce qu'elle comprend des moyens de mise à jour de l'information de taille limite de paquets associée à des types de paquets transmis par un canal virtuel défini par un couple de canaux réels comprenant ledit nouveau canal.19. Tête de tunnel selon l'une quelconque des revendications 17 et 18, caractérisée en ce que les moyens de configuration comprennent en outre des deuxièmes moyens d'association d'un identifiant de flux à une adresse de dispositif source, et en ce que les moyens de mise à jour comprennent : - des moyens de récupération d'un identifiant de flux dans le message d'erreur, ledit identifiant de flux étant inséré par la tête de tunnel dans les paquets dudit flux pendant une étape de transmission desdits paquets dans le tunnel ; - des moyens de récupération de l'adresse de dispositif source associée à l'identifiant de flux récupéré ; - des moyens de construction d'un message de changement de taille limite de paquets à partir de l'information de taille limite de paquets mise à jour ; - des moyens de transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. 15 20. Tête de tunnel selon la revendication 19, caractérisée en ce qu'elle comprend : - des moyens de récupération d'un ensemble d'identifiants de flux à partir d'un identifiant dudit nouveau canal ; - des moyens de récupération de l'adresse de dispositif source associée audit identifiant de flux; 20 -des moyens de construction d'un message de changement de taille limite de paquets à partir de ladite information de taille limite de paquets mise à jour ; - des moyens de transmission dudit message de changement de taille limite de paquets au dispositif source correspondant à l'adresse de dispositif source récupérée. 10 A tunnel head for implementing a method of notifying a source device of a size limit of data packets for transmission in a tunnel comprising a plurality of transmission channels, said source device being connected to said head tunneling via a communication network, said tunnel head comprising transmission means in said data stream tunnel from said source device, characterized in that the tunnel head comprises: - means for detecting a related trigger event a new channel associated with a given stream for transporting said given stream in said tunnel; means for obtaining a first packet size limit associated with a previous channel associated with said given stream for transporting said given stream in said tunnel; means for obtaining a second packet size limit associated with said new channel; means for detecting a change in packet size limit, by comparing said first packet size limit with said second packet size limit; means for transmitting a packet size change message to said source device. A tunnel head according to claim 12, characterized in that a first triggering event is a transmission switchover, for said given stream, from said previous channel to said new channel, which is a separate channel from said previous channel. 19. Tunnel head according to claim 13, characterized in that the tunnel comprises real transmission channels and virtual transmission channels, a real channel being a channel in which the transported streams are encapsulated by a single transport protocol, in said first triggering event is a failover belonging to the group comprising: - a switch from a first real channel to a second real channel; A switch from a real channel to a virtual channel; a switch from a virtual channel to a real channel; a switch from a first virtual channel to a second virtual channel; and in that a virtual channel associated with a given stream for transporting said given stream in said tunnel is defined by: - two real channels of said tunnel, and - a mechanism for progressive switching from one to the other of said real channels allowing for each packet of said given stream to dynamically select an effective one of said real channels. 15. Tunnel head according to claim 14, characterized in that the packet size limit associated with a virtual channel is equal to the smallest packet size limit among the two packet size limits associated with the two real channels. 16. Tunnel head according to claim 12, characterized in that a second triggering event is a reception of an error message indicating a change in packet size limit for a transport channel of the given stream which constitutes at the same time the previous channel and the new channel, said first and second packet size limits being respectively a previous and a new packet size limit of said transmission channel. 17. Tunnel head according to any one of claims 12 to 16, characterized in that it comprises: - configuration means comprising first means of association of a packet type information to a channel information transmission, packet size information, and a list of stream identifiers transmitted by said transmission channel and composed of packets of said packet type; means for updating the packet size information associated with said packet type. 18. Tunnel head according to claim 17, characterized in that it comprises means for updating the packet size limit information associated with packet types transmitted by a virtual channel defined by a pair of real channels. including said new channel. Tunnel head according to any one of claims 17 and 18, characterized in that the configuration means further comprise second means for associating a stream identifier with a source device address, and in that the means of update include: - means for recovering a stream identifier in the error message, said stream identifier being inserted by the tunnel end into the packets of said stream during a step of transmitting said packets in the tunnel ; means for recovering the source device address associated with the recovered stream identifier; means for constructing a packet size change message from the updated packet size information; means for transmitting said packet size change message to the source device corresponding to the recovered source device address. 20. Tunnel head according to claim 19, characterized in that it comprises: means for recovering a set of stream identifiers from an identifier of said new channel; means for recovering the source device address associated with said stream identifier; Means for constructing a packet size change message from said updated packet size information; means for transmitting said packet size change message to the source device corresponding to the recovered source device address. 10
FR0758149A 2007-10-08 2007-10-08 METHOD FOR NOTIFYING A SOURCE DEVICE OF A DATA PACKET LIMIT SIZE, COMPUTER PROGRAM PRODUCT, CORRESPONDING STORAGE MEDIUM AND TUNNEL HEAD Expired - Fee Related FR2922068B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0758149A FR2922068B1 (en) 2007-10-08 2007-10-08 METHOD FOR NOTIFYING A SOURCE DEVICE OF A DATA PACKET LIMIT SIZE, COMPUTER PROGRAM PRODUCT, CORRESPONDING STORAGE MEDIUM AND TUNNEL HEAD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0758149A FR2922068B1 (en) 2007-10-08 2007-10-08 METHOD FOR NOTIFYING A SOURCE DEVICE OF A DATA PACKET LIMIT SIZE, COMPUTER PROGRAM PRODUCT, CORRESPONDING STORAGE MEDIUM AND TUNNEL HEAD

Publications (2)

Publication Number Publication Date
FR2922068A1 true FR2922068A1 (en) 2009-04-10
FR2922068B1 FR2922068B1 (en) 2009-12-18

Family

ID=39345252

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0758149A Expired - Fee Related FR2922068B1 (en) 2007-10-08 2007-10-08 METHOD FOR NOTIFYING A SOURCE DEVICE OF A DATA PACKET LIMIT SIZE, COMPUTER PROGRAM PRODUCT, CORRESPONDING STORAGE MEDIUM AND TUNNEL HEAD

Country Status (1)

Country Link
FR (1) FR2922068B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116319105A (en) * 2023-05-22 2023-06-23 北京中鼎昊硕科技有限责任公司 High-reliability data transmission management system based on multipath secure tunnel

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094723A1 (en) * 2005-10-24 2007-04-26 Short Todd M Method for dynamically tunneling over an unreliable protocol or a reliable protocol, based on network conditions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070094723A1 (en) * 2005-10-24 2007-04-26 Short Todd M Method for dynamically tunneling over an unreliable protocol or a reliable protocol, based on network conditions

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHRISTIAN NORTEL NETWORKS P: "Generic Routing Encapsulation over CLNS Networks; rfc3147.txt", IETF STANDARD, INTERNET ENGINEERING TASK FORCE, IETF, CH, 1 July 2001 (2001-07-01), XP015008928, ISSN: 0000-0003 *
CISCO SYSTEMS, INC.: "Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC", DOCUMENT ID: 25885, 2 October 2006 (2006-10-02), pages 1 - 27, XP002479899, Retrieved from the Internet <URL:http://www.cisco.com/warp/public/105/pmtud_ipfrag.pdf> [retrieved on 20080513] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116319105A (en) * 2023-05-22 2023-06-23 北京中鼎昊硕科技有限责任公司 High-reliability data transmission management system based on multipath secure tunnel
CN116319105B (en) * 2023-05-22 2023-08-15 北京中鼎昊硕科技有限责任公司 High-reliability data transmission management system based on multipath secure tunnel

Also Published As

Publication number Publication date
FR2922068B1 (en) 2009-12-18

Similar Documents

Publication Publication Date Title
US7894364B2 (en) Method for the transmission of data packets in a tunnel, corresponding computer program product, storage means and tunnel end-point
FR2939993A1 (en) METHOD FOR TRANSMITTING A MULTI-CHANNEL DATA STREAM ON A MULTI-TRANSPORT TUNNEL, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING TUNNEL HEADS
FR2926939A1 (en) DATA TRANSMISSION METHOD WITH ACQUITTATION ANTICIPATION, INPUT DEVICE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM
WO2017220892A1 (en) Method for multi-path udp communication method between two terminals
FR2933834A1 (en) METHOD FOR MANAGING DATA STREAM TRANSMISSION ON A TUNNEL TRANSPORT CHANNEL, TUNNEL HEAD, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.
WO2006111635A1 (en) Method and system for transmitting a multicast stream in data exchange network
FR2923969A1 (en) METHOD FOR MANAGING FRAMES IN A GLOBAL COMMUNICATION NETWORK, COMPUTER PROGRAM PRODUCT, CORRESPONDING STORAGE MEDIUM AND TUNNEL HEAD
FR2930100A1 (en) METHOD OF ESTABLISHING A COMMUNICATION PATH IN AN EXTENSIVE COMMUNICATION NETWORK, TUNNEL HEADS, COMPUTER PROGRAM PRODUCT AND CORRESPONDING STORAGE MEDIUM
EP3053303B1 (en) Method for subscribing to streams coming from multicast clients
FR2909241A1 (en) METHODS AND DEVICES FOR DYNAMICALLY MANAGING TRANSMISSION ERRORS THROUGH NETWORK INTERCONNECTION POINTS.
FR2949931A1 (en) METHODS AND DEVICES FOR TRANSMITTING A DATA STREAM, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM.
FR2939994A1 (en) METHOD FOR TRANSMITTING A MULTI-CHANNEL DATA STREAM ON A MULTI-TRANSPORT TUNNEL, COMPUTER PROGRAM PRODUCT, STORAGE MEDIUM, AND CORRESPONDING TUNNEL HEADS
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
FR2954029A1 (en) METHOD FOR TRANSMITTING PACKETS OF A PASSENGER BIDIRECTIONAL DATA STREAM, MANAGER DEVICE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM
EP3210346A1 (en) Method of creating a substream of data packets
FR2925808A1 (en) COMMUNICATION METHOD IN A NETWORK COMPRISING A PRIMARY NETWORK AND A SECONDARY NETWORK
WO2009138650A2 (en) Mechanism for updating parameters of a session established through a virtual circuit
EP3503499B1 (en) Method for optimizing spectral efficiency in an mpls interconnection context
FR2922068A1 (en) Data packet i.e. datagram, size limit intimating method for e.g. TV, involves comparing size limits of data packets to detect changing packet size and transmitting changing packet size message to source device when changing size is detected
EP2469793B1 (en) Device for transmitting data packets and corresponding method, computer program and storage means
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
EP1432210A1 (en) System to control processes associated to flows inside a communication network
FR2857539A1 (en) Packet communication network node e.g. IP router, operating method for data packet transmission, involves receiving packet and information independent of open system interconnection layer protocol, and processing packet by node
FR2951044A1 (en) Multimedia data e.g. audio data, transmission management method for domestic local area network, involves adjusting value of multiplication factor of congestion window contained in message, and transmitting message with value
FR2935576A1 (en) Data flow&#39;s e.g. audio flow, hybrid transmission managing method for multi-channel tunnel, involves sending acknowledgement to transmission device with delay determined from instant at which delayed acknowledgement is received by head

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140630