Brevet FR2907624A1 — publié le 20080425

DISPOSITIF DE COMPRESSION À ADAPTATION DE COMPRESSION EN FONCTION DU MÉDIUM DE TRANSPORT, ET DISPOSITIF DE DÉCOMPRESSION ASSOCIÉ, POUR DES ÉQUIPEMENTS DE COMMUNICATION L'invention concerne les réseaux de communication à protocole Internet (ou IP), et plus précisément la compression et/ou la décompression des données des paquets IP des flux que s'échangent les équipements de communication au sein de tels réseaux. On entend ici par réseau de communication IP (ou réseau IP) tout type de réseau disposant d'un réseau d'accès (éventuellement radio) capable de transmettre des données sous la forme de cellules, par exemple de type ATM ( Asynchronous Transfer Mode ), sur un médium de transport, par exemple de type TCP/IP ou UDP/IP. II est rappelé que les cellules ATM résultent d'une décomposition (ou segmentation) de paquets de données, par exemple de type IP, et que ces paquets (ici IP) comprennent un entête IP, un entête propre au médium de transport (par exemple UDP ou TCP) et des données utiles (ou payload ). Le réseau IP pourra notamment être un réseau satellitaire, comme par exemple un réseau DVB-RCS (pour Digital Video Broadcasting - Return Channel System - accès à l'Internet par satellite), ou un réseau SDMB (pour Satellite Digital Multimedia Broadcast )), ou un réseau terrestre, comme par exemple un réseau filaire (xDSL) ou un réseau mobile ou cellulaire (GPRS/EDGE, ou UMTS (éventuellement de type MBMS (pour Multimedia Broadcast / Multicast Services ), ou l'évolution de I'UMTS appelée LTE ( Long Term Evolution ), ou DVB-H (pour Digital Video Broadcasting û Handhelds - télévision mobile)), ou encore un réseau hybride (satellitaire et terrestre). De façon générale, l'invention s'applique à tout organe (ou terminal) devant émettre des cellules (éventuellement de type ATM) sur la couche AAL5 et dans des tranches temporelles allouées par un autre organe de contrôle d'allocation distant (par exemple une passerelle (ou gateway ) ou un Hub ). II s'agit en effet ici de réduire le nombre de cellules devant être 2 2907624 émises et dont le nombre dépend de la taille des données et des entêtes de protocole(s) utilisant les couches UDP/IP et TCP/IP. Par ailleurs, on entend ici par équipement de communication tout équipement de communication fixe ou mobile (ou portable ou encore 5 cellulaire) capable d'échanger des données par voie filaire ou par voie d'ondes avec un autre équipement, via un réseau d'accès (éventuellement radio). Par conséquent, il pourra par exemple s'agir d'un téléphone fixe ou mobile (ou cellulaire), d'un ordinateur fixe ou portable, ou d'une passerelle (ou gateway ) satellitaire. 10 Comme le sait l'homme de l'art, pour transmettre les données utiles dans les réseaux IP, on les intègre dans des paquets IP comprenant au moins deux entêtes (l'un de type IP (contenant généralement 20 octets), l'autre de type UDP ou TCP (contenant généralement 20 octets), ou bien IGMP, ICMP, DNS ou SNMP, par exemple). Dans certains cas, comme par 15 exemple en présence d'une transmission satellitaire sur un médium TCP (appelé T/TCP ) nécessitant un champ d'option (typiquement d'au moins 8 octets), on doit aussi y adjoindre un troisième entête appelé AAL5 traiter (contenant 8 octets) afin de terminer la couche de fragmentation AAL5 en cellules (par exemple de type ATM). 20 Pour un acquittement TCP classique sans option, 40 octets (20 octets pour IP et 20 octets pour l'acquittement TCP) sont nécessaires pour entrer exactement dans la partie réservée aux données utiles (ou payload ) d'une cellule ATM délimitée et fixe de 48 octets sous AAL5 incluant le trailer AAL5 de 8 octets (40 + 8 = 48). 25 Pour une transmission par satellite, il faut encore ajouter un champ option T/TCP d'au moins 1 octet (et plus typiquement 8), ce qui amène à 56 octets (20 + 20 + 8 + 8 = 56), ce qui ne peut pas enter dans 1 cellule ATM et donc nécessite 2 cellules ATM (l'une contenant 48 octets (20 (IP) + 20 (TCP) + 8 (options)) et l'autre contenant 8 octets pour décrire le trailer de la 3o PDU AAL5 ( Packet Data Unit ). Pour les réseaux dans lesquels l'attribution des emplacements d'émission des cellules (éventuellement ATM) à émettre est une denrée rare et chère, on comprend bien qu'il faut alors deux cellules au lieu d'une (facteur 2 sur la bande passante utile à cause du champ option ). De façon 3 2907624 générale, si N est le nombre de cellules initiales et N-1 le nombre de cellules finales après compression, le gain de compression est donné par le rapport N-1/N qui est très significatif pour les petits paquets. Ainsi, lorsque l'on segmente les paquets IP en cellules, chaque cellule 5 doit comprendre les entêtes du paquet IP dont elle est issue, ce qui a pour conséquence de réduire très notablement le rapport entre les données utiles transportées et les données d'entête associées et donc de monopoliser une grande quantité de ressources. Cela est particulièrement pénalisant lorsque le réseau IP utilise un réseau d'accès dont les ressources sont rares et 10 généralement chères, comme par exemple dans le cas d'un réseau satellitaire. Dans ce qui suit et sauf indication contraire, on appelle entête d'un paquet IP à la fois l'entête IP et l'entête du protocole de transport (UDP ou TCP, par exemple). Afin de réduire le nombre de données à transmettre, on peut aussi 15 simultanément mettre en oeuvre des techniques de compression. Ainsi, on peut par exemple utiliser la technique ZIP. Pour compresser les entêtes, on peut par exemple utiliser des techniques telles que Van Jacobson, IPHC (RFC 2508) ou ROHC (RFC 2509). Mais, ces techniques sont très complexes à mettre en oeuvre du fait de leur caractère très générique et entraînent une 20 compression des entêtes TCP/IP et de son option satellitaire T/TCP. En effet, ces techniques s'occupent principalement de réduire la taille des entêtes TCP/RTP/UDP/IP à émettre sur un canal mais sans se soucier de savoir si cette taille d'entêtes et la taille des données utiles (payload) occuperont ensemble N ou N-1 conteneurs (ici N ou N -1 cellules). 25 De plus, l'encodage des champs à compresser étant principalement basé sur la différence des entêtes à émettre, il faut alors utiliser des mécanismes de reprise délicats pour TCP et dont les performances en mode dégradé (perte de message) sont considérablement réduites via un réseau d'accès satellite (impact du temps de trajet aller/retour important). 30 Par ailleurs, les techniques de compression d'entête connues s'appliquent quel que soit le type de l'entête, et donc quelle que soit la durée de vie du flux auquel appartient l'entête, ce qui peut s'avérer inutilement consommateur de ressources de calcul (CPU). Enfin, les techniques de compression d'entête connues ne prennent 4 2907624 généralement pas en compte les disponibilités des ressources de calcul (CPU) et/ou de mémoire locales et distantes ce qui est problématique pour des équipements de communication à bas coût (tels que des terminaux mobiles ou portables, éventuellement à accès satellite). 5 Aucune solution connue n'apportant une entière satisfaction, l'invention a donc pour but d'améliorer la situation. Elle propose à cet effet un dispositif dédié à la compression de flux de paquets de données, pour un équipement de communication constituant un point d'extrémité de transmission au sein d'un réseau de communication à lo protocole Internet (IP), les paquets d'un flux comprenant chacun (initialement), notamment, un entête IP comportant un identifiant de point d'extrémité destinataire, un identifiant de session et des attributs de flux, et un entête de protocole de transport et chaque paquet étant destiné à être transmis après décomposition en cellules (éventuellement de type ATM). 15 Ce dispositif de compression se caractérise par le fait qu'il comprend des moyens de traitement chargés, lorsqu'ils reçoivent un paquet d'un flux à transmettre : de déterminer si l'entête IP de ce paquet peut être compressé en fonction d'au moins un critère choisi, puis 20 dans l'affirmative, de déterminer si la compression peut entraîner une réduction du nombre des cellules devant résulter de la décomposition du paquet reçu, et dans l'affirmative, de remplacer dans le paquet reçu au moins son entête IP par un entête compressé comprenant au moins l'identifiant de session et 25 un identifiant de compression, après avoir préalablement transmis (au moins une fois) à l'équipement de communication constituant le point d'extrémité destinataire du flux reçu, sous une forme partiellement compressée, au moins l'entête IP devant être remplacé. Le dispositif de compression selon l'invention peut comporter d'autres 30 caractéristiques qui peuvent être prises séparément ou en combinaison, et notamment : - ses moyens de traitement peuvent être chargés, en présence d'un protocole de transport de type TCP, de remplacer l'entête IP du paquet 5 2907624 reçu par un entête compressé de deux octets comprenant au moins l'identifiant de session, un identifiant de compression et un identifiant de type de protocole de transport ; ses moyens de traitement peuvent être chargés, en présence d'un 5 protocole de transport de type UDP, de remplacer l'entête IP et l'entête UDP du paquet reçu par un entête compressé de deux octets comprenant au moins l'identifiant de session, un identifiant de compression et un identifiant de type de protocole de transport ; - ses moyens de traitement peuvent être chargés de déterminer si l'entête lo du paquet reçu peut être compressé en fonction d'au moins un critère choisi parmi la fragmentation du paquet, le type du protocole de transport, un sous-type du protocole de transport, une autorisation de compression reçue du point d'extrémité destinataire, et une autorisation de compression locale ; 15 - ses moyens de traitement peuvent être chargés de déterminer des premier et second nombres de cellules qui résulteraient de la décomposition des paquets du flux respectivement en l'absence et en présence d'une compression de leur entête, et de procéder au remplacement d'au moins l'entête IP du dernier paquet reçu par un entête au moins partiellement 20 compressé lorsque le premier nombre est strictement supérieur au second nombre ; ses moyens de traitement peuvent être chargés, lorsqu'ils reçoivent un paquet d'un flux et qu'ils ont décidé de compresser au moins son entête IP, i) d'attribuer au flux une clé de hachage fonction de champs choisis de 25 l'entête IP de son paquet reçu, puis ii) de déterminer dans des moyens de mémorisation si cette clé de hachage s'y trouve stockée, et iii) dans la négative de considérer le flux comme un nouveau flux, puis de stocker la clé de hachage dans les moyens de mémorisation si l'identifiant de session qui est associé au flux est disponible depuis au moins l'expiration d'une 30 première temporisation, et de procéder au remplacement de l'entête IP du paquet reçu par un entête partiellement compressé, ou bien dans l'affirmative de remettre à zéro la première temporisation associée à l'identifiant de session du flux et de procéder au remplacement d'au moins l'entête IP du paquet reçu par un entête compressé ; 6 2907624 - ses moyens de traitement peuvent être chargés soit de déclencher une seconde temporisation associée au flux juste avant de procéder au remplacement d'au moins l'entête IP du paquet reçu par un entête partiellement compressé, soit, après avoir remis à zéro la première 5 temporisation associée à l'identifiant de session du flux, pour déterminer si la seconde temporisation associée à ce flux est expirée afin soit de procéder au remplacement de l'entête IP du paquet reçu par un entête compressé si la seconde temporisation n'est pas expirée, soit de déclencher une seconde temporisation associée au flux juste avant de 10 procéder au remplacement de l'entête IP du paquet reçu par un entête partiellement compressé ; • ses moyens de traitement peuvent être chargés, après avoir remis à zéro la première temporisation associée à l'identifiant de session du flux et en cas de non expiration de la seconde temporisation associée 15 à ce flux, de comparer à un seuil choisi le nombre de paquets du flux ayant été successivement transmis sous forme de cellules avec un entête compressé afin soit de procéder au remplacement d'au moins l'entête IP du dernier paquet reçu par l'entête compressé si la seconde temporisation n'est pas expirée, soit de déclencher la 20 seconde temporisation associée audit flux juste avant de procéder au remplacement de l'entête IP du paquet reçu par un entête partiellement compressé lorsque le nombre de paquets est supérieur ou égal au seuil ; ses moyens de traitement peuvent être chargés, en cas de remplacement 25 d'au moins l'entête IP d'un paquet reçu par un entête au moins partiellement compressé, de déterminer si les données utiles associées à l'entête au moins partiellement compressé peuvent être compressées en fonction d'au moins un critère choisi, et dans l'affirmative d'intégrer dans cet entête compressé un identifiant signalant la compression de données ; 30 > ses moyens de traitement peuvent être chargés de déterminer si les données utiles associées à l'entête au moins partiellement compressé peuvent être compressées en fonction d'au moins un critère choisi parmi la disponibilité de ressources locales, la disponibilité de ressources de décompression dans l'équipement de communication constituant le point 7 2907624 d'extrémité destinataire, et la taille du paquet reçu ; - ses moyens de traitement peuvent être chargés, en cas de détermination d'une possibilité de compression des données utiles du paquet comprenant l'entête compressé, de déterminer si la compression 5 de données peut entraîner une réduction du nombre des cellules devant résulter de la décomposition du paquet, puis, dans l'affirmative, d'intégrer dans l'entête compressé un identifiant signalant la compression des données utiles, et dans la négative, d'intégrer dans l'entête compressé un identifiant signalant l'interdiction de compression lo des données utiles. L'invention propose également un dispositif dédié à la décompression de cellules (éventuellement ATM) d'un paquet appartenant à un flux ayant fait l'objet d'une compression au moyen d'un dispositif de compression du type de celui présenté ci-avant, pour un équipement de communication constituant un 15 point d'extrémité de transmission au sein d'un réseau IP. Ce dispositif de décompression se caractérise par le fait qu'il comprend des moyens de traitement chargés, lorsqu'ils reçoivent des cellules d'un paquet d'un flux : de déterminer si ces cellules comprennent un (même) entête au moins 20 partiellement compressé comportant notamment un identifiant de compression et un identifiant de session, puis dans l'affirmative, de déterminer dans des moyens de mémorisation si cet identifiant de session s'y trouve déjà stocké et donc correspond à un flux connu, puis 25 dans l'affirmative, soit de stocker dans les moyens de mémorisation les informations relatives au flux lorsque l'identifiant de compression signale un entête partiellement compressé, puis de reconstruire l'entête IP originel à partir de l'entête partiellement compressé, soit, lorsque l'identifiant de compression signale un entête compressé, de reconstruire l'entête originel 30 à partir des informations correspondantes stockées dans les moyens de mémorisation et désignées par l'identifiant de session contenu dans l'entête compressé reçu. Le dispositif de décompression selon l'invention peut comporter d'autres caractéristiques qui peuvent être prises séparément ou en 8 2907624 combinaison, et notamment : - ses moyens de traitement peuvent être chargés, lorsqu'ils reçoivent des cellules d'un paquet d'un flux, de commencer par déterminer s'ils concernent un paquet IP à décompresser, et dans l'affirmative de ne 5 déterminer si ces cellules comprennent un entête au moins partiellement compressé qu'à condition qu'elles concernent des versions choisies du protocole IP (par exemple IPv4 ou IPv6) ; ses moyens de traitement peuvent être chargés, lorsque l'identifiant de compression signale un entête partiellement compressé, d'accéder aux 10 moyens de mémorisation afin de déterminer si l'identifiant de session contenu dans cet entête s'y trouve stocké, et dans la négative de stocker l'identifiant de session dans les moyens de mémorisation, puis de stocker dans les moyens de mémorisation les informations relatives au flux en correspondance de l'identifiant de session ; 15 ses moyens de traitement peuvent être chargés, lorsque l'identifiant de compression signale un entête compressé, d'accéder aux moyens de mémorisation afin de déterminer si l'identifiant de session contenu dans cet entête compressé s'y trouve stocké, et dans la négative de supprimer le paquet auquel appartiennent les cellules reçues ; 20 - ses moyens de traitement peuvent être chargés, lorsque l'identifiant de compression signale un entête partiellement compressé, de stocker dans les moyens de mémorisation les informations relatives au flux de cet entête, puis de déclencher une première temporisation relative à ce flux avant de reconstruire l'entête IP originel à partir de l'entête partiellement 25 compressé ; ses moyens de traitement peuvent être chargés, lorsque l'identifiant de compression signale un entête compressé, de remettre à zéro (réactiver) la première temporisation associée au flux de cet entête, avant de reconstruire l'entête originel à partir des informations correspondantes 30 stockées dans les moyens de mémorisation et désignées par l'identifiant de session contenu dans l'entête compressé reçu ; il peut comprendre des moyens de décompression chargés, en cas de reconstruction de l'entête originel de cellules d'un paquet d'un flux, de déterminer si cet entête comprend un identifiant de compression de 9 2907624 données signalant que les cellules ont fait l'objet d'une compression des données utiles, et dans l'affirmative, soit de procéder à la décompression des données utiles s'il existe localement des ressources qui le permettent, soit d'adresser à l'équipement de communication qui constitue la source s des cellules un message signalant une saturation des ressources en réception, puis de supprimer le paquet auquel appartiennent les cellules reçues. L'invention propose également un équipement de communication destiné à constituer un point d'extrémité de transmission au sein d'un réseau io IP et équipé d'un dispositif de compression et/ou d'un dispositif de décompression des types de ceux présentés ci-avant. Un tel équipement peut par exemple se présenter sous la forme d'un terminal satellitaire ou d'une passerelle ( gateway ) satellitaire. On notera que l'invention s'applique aussi bien aux communications dites en étoile (ou star ) entre un terminal et 15 une passerelle, qu'aux communications dites maillées (ou meshed ) entre terminaux qui ne repassent pas par une passerelle. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels : 20 la figure 1 illustre de façon très schématique et fonctionnelle un réseau satellitaire comprenant une passerelle satellitaire et un terminal mobile satellitaire équipés chacun d'un exemple de réalisation d'un dispositif de compression selon l'invention et d'un exemple de réalisation d'un dispositif de décompression selon l'invention, 25 la figure 2 illustre de façon très schématique les principaux champs d'un entête IP partiellement compressé selon l'invention, suivis d'un entête UDP ou TCP, la figure 3 illustre de façon très schématique les champs d'un entête UDP/IP compressé selon l'invention, suivis de données utiles, 30 la figure 4 illustre de façon très schématique les champs d'un entête IP compressé selon l'invention, suivis d'un entête TCP non compressé, la figure 5 illustre schématiquement un exemple d'algorithme de compression pouvant être mis en oeuvre par un dispositif de compression selon l'invention, IO 2907624 la figure 6 illustre schématiquement un exemple d'algorithme de décompression pouvant être mis en oeuvre par un dispositif de décompression selon l'invention, et la figure 7 illustre schématiquement et fonctionnellement les endroits où 5 sont effectuées les opérations de compression et de décompression dans le cas de communications respectivement entre une passerelle et un terminal (A) et entre deux terminaux (B). Les dessins annexés pourront non seulement servir à compléter l'invention, mais aussi contribuer à sa définition, le cas échéant. lo L'invention a pour objet de permettre l'adaptation de la compression en fonction du médium de transport, et si possible en tenant compte de la durée de vie des flux et de la disponibilité des ressources de calcul (CPU) et/ou de mémoire locales nécessaires à la compression et/ou des ressources de calcul et/ou de mémoire distantes nécessaires à la décompression. 15 On se réfère tout d'abord à la figure 1 pour présenter une mise en oeuvre de l'invention entre deux équipements de communication El et E2, constituant des points d'extrémité de communication au sein d'un réseau de communication à protocole Internet R (ci-après appelé réseau IP ). Dans ce qui suit, on considère à titre d'exemple non limitatif que le 20 réseau IP est un réseau satellitaire par exemple de type DVB-RCS (pour Digital Video Broadcasting - Return Channel System ). Mais, l'invention n'est pas limitée à ce type de réseau IP. Elle concerne en effet tout type de réseau IP disposant d'un réseau d'accès (éventuellement radio) capable de transmettre des données sous la forme de cellules sur un médium de 25 transport, par exemple de type TCP/IP ou UDP/IP. Le réseau IP pourra donc être un réseau satellitaire, par exemple de type SDMB (pour Satellite Digital Multimedia Broadcast ), ou un réseau terrestre, par exemple de type filaire (xDSL) ou de type mobile ou cellulaire (GPRS/EDGE, ou UMTS (éventuellement de type MBMS (pour Multimedia Broadcast / Multicast 30 Services ), ou l'évolution de l'UMTS appelée LTE ( Long Term Evolution ), ou DVB-H (pour Digital Video Broadcasting ù Handhelds - télévision mobile)), ou encore un réseau hybride (satellitaire et terrestre). Par ailleurs, on considère dans ce qui suit, à titre d'exemple non limitatif, que les équipements de communication El et E2 sont 11 2907624 respectivement une passerelle (ou gateway ) satellitaire (El) et un téléphone mobile (ou cellulaire) satellitaire (E2). Mais, l'invention n'est pas limitée à ces types d'équipement de communication. Elle concerne en effet tout type d'équipement de communication fixe ou mobile (ou portable ou s encore cellulaire) capable d'échanger des données par voie filaire ou par voie d'ondes avec un autre équipement, via un réseau d'accès (éventuellement radio). Par conséquent, il pourra par exemple s'agir d'un téléphone fixe ou mobile, ou d'un ordinateur fixe ou portable, voire même d'un équipement de réception radio de programmes de télévision, comme par exemple un 10 baladeur ou un téléviseur fixe ou portable, ou d'un équipement de réception radio ou filaire de programmes vidéos ou musicaux, ou encore d'un équipement radio embarqué dans un véhicule (voiture, camion, bus, train, et analogues). En outre, on considère dans ce qui suit, à titre d'exemple non limitatif, 15 et sauf mention contraire explicite, que les cellules sont de type ATM ( Asynchronous Transfer Mode ). En effet, l'émission d'une passerelle (ou gateway) El vers un terminal E2 (ou E2') peut ne pas être uniquement sur ATM (elle est classiquement sur MPE/MPEG, voire même sur ULE/MPEG). L'émission d'un terminal E2 (ou E2') vers une passerelle El est en revanche 20 de type ATM (AAL5/ATM classiquement). L'invention propose un dispositif de compression Dl et un dispositif de décompression D2 destinés à être implantés dans des équipements de communication connectés au réseau IP R, ou faisant partie de ce dernier (notamment de son réseau d'accès). Dans l'exemple non limitatif illustré sur la 25 figure 1, la passerelle satellitaire El et le téléphone mobile E2 sont chacun équipés d'un dispositif de compression Dl et d'un dispositif de décompression D2. Mais cela n'est pas obligatoire. On peut en effet envisager que la passerelle satellitaire El soit seulement équipée d'un dispositif de compression Dl, tandis que le téléphone mobile E2 est seulement équipé 30 d'un dispositif de décompression D2. D'une manière générale toutes les combinaisons sont envisageables dès lors qu'un premier équipement de communication, constituant un point d'extrémité de communication agissant en tant qu'émetteur, comprend au moins un dispositif de compression Dl, et qu'au moins un second équipement de communication, constituant un point 12 2907624 d'extrémité de communication agissant en tant que récepteur, comprend au moins un dispositif de décompression D2. Comme cela est schématiquement et fonctionnellement illustré sur la figure 1, un dispositif de compression Dl, selon l'invention, comprend au 5 moins un module de traitement MT1, ainsi que de préférence des moyens de mémorisation M1, comme par exemple une mémoire agencée sous la forme d'une table de correspondance, ou d'un arbre, ou encore de type CAM. Le module de traitement MT1 est chargé de compresser au moins une partie des entêtes des paquets de données de flux, avant que ces lo derniers ne soient décomposés ou segmentés en cellules (ici ATM) en vue d'être transmis en direction d'un point d'extrémité de communication (récepteur). II est rappelé qu'un paquet d'un flux (impliqué dans une session) comprend, notamment, un entête IP comportant un identifiant de point d'extrémité destinataire (récepteur), un identifiant de session ( session_id ) 15 et des attributs de flux, comme par exemple la version IP utilisée ( IP version , par exemple IPv4 ou IPv6), IHL, TOS, TTL, l'adresse IP source, l'adresse IP destinataire, le port source, le port destinataire, le type de protocole de transport (par exemple UDP ou TCP), un champ d'option (réservé pour une future utilisation), un champ d'indication d'aptitude à 20 compresser ou décompresser ( Rx_ready ), un champ de réservation ( reservé , par exemple pour le bourrage (ou padding ) notamment pour les évolutions des standards). Ce module de traitement MT1 intervient chaque fois qu'un paquet IP d'un flux doit être transmis. Les opérations effectuées par le module de 25 traitement MT1 sont décrites ci-après en référence à l'exemple d'algorithme illustré sur la figure 5. A réception d'un paquet IP (étape 10), le module de traitement MT1 commence par déterminer si l'entête de ce paquet IP peut faire l'objet d'une compression en fonction d'au moins un critère choisi (étape 20). II est rappelé 30 que l'on entend ici par entête d'un paquet IP à la fois son entête IP et son entête de protocole de transport (UDP ou TCP) éventuellement avec entête d'option. Parmi les critères qui peuvent être utilisés, on peut notamment citer la fragmentation du paquet ( le paquet a-t-il été fragmenté ? ), la présence 13 2907624 d'une option ( le paquet comprend-t-il une option ? ), le type du protocole de transport utilisé (par exemple UDP ou TCP), l'éventuel sous-type du protocole de transport (par exemple DNS ou SNMP ou ICMP ou T/TCP), l'autorisation de compression reçue dudit point d'extrémité destinataire ( le 5 récepteur du flux a-t-il autorisé la compression, du fait qu'il dispose de suffisamment de ressources de calcul (CPU) et/ou de mémoire pour procéder à la décompression ? ), et l'autorisation de compression locale ( l'émetteur du flux a-t-il autorisé la compression, du fait qu'il disposede suffisamment de ressources de calcul (CPU) pour procéder à la compression et/ou qu'il n'a pas 10 encore utilisé tous ses identifiants de session (session_id, en général au nombre de 254) ). Il est important de noter que ces critères peuvent être utilisés séparément ou bien en combinaison (y compris tous ensemble). L'application de critère(s) permet de ne pas compresser les entêtes 15 des paquets IP appartenant à un flux dont la durée de vie est réduite ou sporadique. C'est notamment le cas des flux DNS ou SNMP ou encore ICMP. Elle permet également d'éviter d'utiliser des ressources locales (émetteur El) pour compresser des paquets IP alors que les ressources de l'émetteur El, dédiées à cet effet, sont saturées, et/ou que les ressources du récepteur E2, 20 dédiées à la décompression, sont saturées. Si le résultat du test effectué à l'étape 20 est négatif, alors le module de traitement MT1 transmet par exemple le paquet IP à un module de compression de son équipement El (ou E2), ou de son dispositif de compression Dl, chargé de compresser les données utiles (ou payload ), 25 par exemple au moyen d'une technique de type ZIP. Si le résultat du test effectué à l'étape 20 est positif, alors le module de traitement MT1 détermine dans une étape 30 si la compression d'entête peut entraîner une réduction du nombre des cellules ATM qui résulteront de la décomposition du paquet IP reçu. 30 Pour ce faire, le module de traitement MT1 peut par exemple calculer les premier N1 et second N2 nombres de cellules ATM qui résulteraient de la décomposition du paquet IP reçu respectivement en l'absence et en présence d'une compression d'au moins son entête IP. II effectue pour ce faire une simulation. Puis, il autorise le remplacement d'au moins l'entête IP du paquet 14 2907624 IP reçu par un entête au moins partiellement compressé lorsque le premier nombre N1 est strictement supérieur au second nombre N2 (N1 > N2), par exemple. Dans une variante, il pourrait calculer la différence entre NI et N2 et autoriser la compression d'entête lorsque cette différence est supérieure à un s seuil choisi. Dans le cas d'une compression précédant une émission d'une passerelle El vers un terminal E2, le calcul du gain de compression peut se faire par le rapport en octets des tailles en octets avant compression et après compression, puis par la comparaison de ce gain à un pourcentage seuil Io choisi (par exemple égal à 10%). Si le résultat du test effectué à l'étape 30 est négatif, alors le module de traitement MT1 transmet par exemple le paquet IP à un module de compression de son équipement El (ou E2), ou de son dispositif de compression Dl, chargé de compresser les données utiles (ou payload ), 15 par exemple au moyen d'une technique de type ZIP. Si le résultat du test effectué à l'étape 30 est positif, alors le module de traitement MT1 remplace dans le paquet IP reçu (étape 120) au moins son entête IP par un entête compressé (C) qui comprend au moins l'identifiant de session (session_id) et un identifiant de compression (par exemple une valeur 20 spécifique du champ (ip_version) dédié à la version du protocole IP utilisée). Plus précisément, pour que le module de traitement MT1 puisse remplacer dans le paquet IP reçu au moins son entête IP par un entête compressé (C), il faut qu'il ait préalablement transmis au récepteur (par exemple E2), destinataire du flux, l'entête de ce paquet IP sous une forme 25 partiellement compressée (PC), afin qu'il soit en mesure de reconstruire l'entête originel (complet) à partir d'un entête compressé (C). En d'autres termes, lorsqu'est reçu un paquet IP appartenant à un (nouveau) flux inconnu, le module de traitement MT1 doit tout d'abord, dans une étape 110, remplacer son entête IP par un entête IP dit partiellement compressé (PC). Le paquet 30 IP, qui comprend alors un entête IP partiellement compressé (PC) et l'entête UDP ou TCP originel, peut alors être transmis au récepteur E2, sous forme de cellules ATM, afin qu'il stocke dans des moyens de mémorisation M2 (par exemple une mémoire, éventuellement agencée sous la forme d'une table de correspondance) les informations que contient au moins leur entête IP 15 2907624 compressé PC (ainsi que leur entête UDP, seulement lorsque le protocole de transport est UDP). Le module de traitement MT1 peut alors, dans une étape 120, remplacer au moins l'entête IP des paquets IP suivants du même flux par un entête IP compressé C. Ainsi, lorsque le récepteur E2 reçoit les 5 cellules ATM comportant l'entête compressé C il peut reconstruire l'entête originel (complet) à partir de cet entête compressé C et des informations qui lui correspondent, précédemment stockées dans la mémoire M2. Afin de pouvoir différencier un paquet IP d'un flux connu d'un paquet IP d'un flux inconnu, le module de traitement MT1 peut par exemple procéder lo comme indiqué ci-dessous. Tout d'abord, il peut calculer dans une étape 40 une clé de hachage associée au flux auquel appartient le paquet IP reçu. Afin d'être propre à un flux la clé de hachage peut par exemple être calculée à partir des valeurs de certains aux moins des champs de l'entête IP du paquet IP reçu. Par 15 exemple, on peut utiliser pour ce faire l'identifiant du récepteur (destinataire), l'adresse IP source, l'adresse IP destinataire, le port source, le port destinataire et le type du protocole de transport. Puis, dans une étape 50 le module de traitement MT1 détermine dans la mémoire M1 si la clé de hachage qu'il vient de calculer s'y trouve déjà 20 stockée. Si la clé ne s'y trouve pas stockée, il considère le flux comme un nouveau flux. Préférentiellement, le module de traitement MT1 détermine alors, dans une étape 60, si un identifiant de session (session_id) est encore disponible pour le flux considéré. Si ce n'est pas le cas, alors le module de 25 traitement MT1 transmet par exemple le paquet IP à un module de compression de son équipement E1 (ou E2), ou de son dispositif de compression Dl, chargé de compresser les données utiles (ou payload ), par exemple au moyen d'une technique de type ZIP. En revanche, si un identifiant de session est disponible depuis l'expiration d'une première 3o temporisation Ti, le module de traitement MT1 stocke la nouvelle clé de hachage dans la mémoire M1 (étape 70). On associe de préférence une première temporisation T1 de durée choisie (typiquement une minute, par exemple) à chaque flux qui vient de se terminer afin de pouvoir le réutiliser à l'expiration de cette première temporisation Ti tout en laissant suffisamment 16 2907624 de temps au récepteur E2 pour décompresser le dernier paquet IP de ce flux. Ensuite, le module de traitement MT1 associe de préférence une seconde temporisation T2, d'une durée choisie (par exemple égale à une seconde (1s)), à la session du nouveau flux, puis il active (met à zéro) cette 5 seconde temporisation T2 dans une étape 80, et procède dans l'étape 110 au remplacement d'au moins l'entête IP du paquet IP reçu par un entête partiellement compressé PC. Cette temporisation permet alors d'asservir périodiquement le récepteur avec des entêtes non compressés pour palier les modes dégradés. lo La seconde temporisation T2 est utilisée pour rafraîchir périodiquement les informations qui sont stockées dans la mémoire M2 du récepteur E2 et qui définissent l'entête IP originel des paquets IP ainsi que les données des entêtes UDP ou IP d'un flux en cours de transmission. On a schématiquement représenté sur la figure 2 un exemple 15 d'entête IP partiellement compressé PC, suivi d'un entête dédié au protocole de transport (par exemple UDP ou TCP). Dans cet exemple, l'entête IP partiellement compressé PC comprend 13 octets (au lieu des 20 octets d'un entête IP classique) : un champ (IP_version) désignant en même temps la version IP utilisée et 20 le fait que l'entête IP est partiellement compressé, par exemple valeur 0x00 pour IPv4 et valeur 0x02 pour IPv6, sur 4 bits, un champ de réservation ( reservé , par exemple pour le bourrage (ou padding )), sur quatre bits, le type de protocole de transport sur 2 bits, par exemple les valeurs 00 pour 25 UDP et 01 pour TCP, un champ d'option ( reserved ), pour une future utilisation, sur 1 bit, un champ d'indication d'aptitude à compresser ou décompresser ( Rx ready ), sur 1 bit, un champ de version de compression de données utiles ( zip_version ), 30 sur 4 bits, qui identifie l'algorithme sélectionné par l'émetteur pour compresser les données utiles, afin que le récepteur puisse reconstituer les données correctement si elles sont compressées. Certains de ces algorithmes sont fournis par des logiciels libres bien connus de l'homme de 17 2907624 l'art, - un champ ( zipped ), sur 1 bit, signalant si les données utiles ont été compressées ou non, pour que le récepteur applique ou non la décompression des données originales, s - un identifiant de session (session_id), sur 7 bits, - un champ dit DSCP/TOS , sur 1 octet, - un champ dit TTL , sur 1 octet, - l'adresse IP source, sur 4 octets, et - l'adresse IP destinataire, sur 4 octets. lo L'affectation et le nombre de bits des champs présentés ci-dessus sont donnés à titre d'exemple illustratif. Ils peuvent donc faire l'objet de nombreuses variantes. Si le module de traitement MT1 détermine dans l'étape 50 que la clé de hachage qu'il vient de calculer est stockée dans la mémoire MI, cela is signifie que le flux est connu et que ses paquets IP sont en cours de transmission. Alors, dans une étape 90 il ré-active (ou remet à zéro) la première temporisation T1 associée au flux auquel appartient le paquet IP reçu. Puis, dans une étape 100 il effectue un test afin de déterminer si la seconde temporisation T2 associée à l'identifiant de session du flux est 20 expirée. Si tel est le cas, alors il effectue l'étape 80 (ré-activation (ou remise à zéro) de la seconde temporisation T2 associée à l'identifiant de session), puis l'étape 110 (remplacement de l'entête IP du paquet IP reçu par l'entête partiellement compressé PC afin de rafraîchir les informations sur le flux, 25 stockées dans la mémoire M2 du récepteur E2). Si le résultat du test de l'étape 100 est négatif (seconde temporisation T2 pas encore expirée), le module de traitement MT1 procède au remplacement d'au moins l'entête IP du paquet IP reçu par un entête compressé C. 30 On a schématiquement représenté sur la figure 3 un exemple d'entête compressé C, dans le cas d'un médium de transport UDP/IP. Dans ce cas, l'entête IP originel et l'entête UDP originel sont remplacés par un entête compressé C de deux octets, suivi des données utiles (ou payload). 18 2907624 Dans l'exemple illustré, l'entête compressé C comprend : - le champ (IP_version) désignant en même temps la version IP utilisée et le fait que les entêtes IP et UDP sont compressés, par exemple valeur 0x01 pour IPv4 et valeur 0x03 pour IPv6, sur 4 bits, 5 - le type de protocole de transport sur 2 bits, par exemple (valeur 00 pour UDP), le champ d'option ( reserved , pour une future utilisation), sur 1 bit, le champ d'indication d'aptitude à compresser ou décompresser ( Rx_ready ), sur 1 bit, 10 le champ ( zipped ) signalant si les données utiles ont été compressées ou non, sur 1 bit, et l'identifiant de session (session_id), sur 7 bits. L'affectation et le nombre de bits des champs présentés ci-dessus sont donnés à titre d'exemple illustratif. Ils sont ici donnés de manière à 15 obtenir un entête de deux octets, notamment en présence d'un champ session_id comportant 7 bits. Ils peuvent donc faire l'objet de nombreuses variantes. On a également et schématiquement représenté sur la figure 4 un exemple d'entête compressé C, dans le cas d'un médium de transport 20 TCP/IP. Dans ce cas, seul l'entête IP originel est remplacé par un entête compressé PC de deux octets, suivi de l'entête TCP, puis des données utiles (non représentées). Dans l'exemple illustré, l'entête compressé C est identique à celui décrit ci-avant en référence à la figure 3 (seule la valeur du type de protocole de transport est différente du fait que le protocole de 25 transport est désormais TCP (par exemple on utilise la valeur 01 pour TCP)). On notera qu'à l'étape 100, après avoir remis à zéro la première temporisation T1 (qui est associée à l'identifiant de session du flux auquel appartient le paquet IP reçu) et si la seconde temporisation T2 associée à ce flux n'est pas expirée, le module de traitement MT1 peut en complément 30 comparer à un seuil choisi le nombre de paquets du flux qui ont été transmis sous forme de cellules ATM avec un entête compressé C depuis le début de la dernière activation de ladite seconde temporisation T2. Dans ce cas, le module de traitement MT1 ne procède au remplacement de l'entête IP (ou de 19 2907624 l'entête IP et de l'entête UDP) du dernier paquet IP reçu par l'entête compressé C qu'à condition que la seconde temporisation T2 correspondante n'ait pas expirée et que le nombre de paquets précité soit inférieur au seuil choisi. Dans les autres cas, le module de traitement MT1 effectue l'étape 80 s (ré-activation (ou remise à zéro) de la seconde temporisation T2 associée à l'identifiant de session), puis l'étape 110 (remplacement de l'entête IP du paquet IP reçu par l'entête partiellement compressé PC). Comme cela est illustré sur la figure 5, le module de traitement MT1 du dispositif de compression Dl peut être également chargé de déterminer s'il 10 est utile de procéder à une compression des données utiles du paquet IP reçu. Pour ce faire, le module de traitement MT1 peut par exemple commencer par déterminer dans une étape 130 si les données utiles associées à l'entête au moins partiellement compressé (C ou PC) peuvent 15 être compressées en fonction d'au moins un critère choisi. Parmi les critères qui peuvent être utilisés, on peut notamment citer l'autorisation de compression reçue du point d'extrémité destinataire E2 ( le récepteur du flux a-t-il autorisé la compression, du fait qu'il dispose de suffisamment de ressources de calcul (CPU) et/ou de mémoire pour procéder 20 à la décompression ? ), l'autorisation de compression locale ( l'émetteur du flux a-t-il autorisé la compression, du fait qu'il dispose de suffisamment de ressources de calcul (CPU) pour procéder à la compression et/ou qu'il n'a pas encore utilisé tous ses identifiants de session (session_id) ? ), et la taille du paquet reçu ( le paquet comprend-t-il un nombre d'octets supérieur à un 25 seuil choisi (par exemple égal à 80, typiquement) ). Il est important de noter que ces critères peuvent être utilisés séparément ou bien en combinaison (y compris tous ensemble). Si le paquet IP à entête au moins partiellement compressé (C ou PC) ne satisfait pas à l'un au moins des critères appliqués, alors le dispositif de 30 compression Dl stoppe son traitement. Le paquet IP est alors segmenté (ou décomposé) en cellules ATM par l'émetteur El, puis les cellules ATM sont transmises à destination du récepteur E2. Si le paquet IP à entête au moins partiellement compressé (C ou PC) satisfait à chaque critère appliqué, alors le module de traitement MT1 peut par 20 2907624 exemple déterminer dans une étape 140 si la compression des données utiles peut effectivement entraîner une réduction du nombre des cellules ATM qui devraient résulter de la décomposition (ou segmentation) du paquet IP à entête au moins partiellement compressé (C ou PC). 5 Pour ce faire, le module de traitement MT1 peut par exemple calculer les premier NI' et second N2' nombres de cellules ATM qui résulteraient de la décomposition du paquet IP à entête compressé respectivement en l'absence et en présence d'une compression de ses données utiles. Il effectue pour ce faire une simulation. Puis, il autorise la compression des données utiles lo lorsque le premier nombre NI' est strictement supérieur au second nombre N2' (N1' > N2'), par exemple. Dans une variante, il pourrait calculer la différence entre NI' et N2' et autoriser la compression des données utiles lorsque cette différence est supérieure à un seuil choisi. L'autorisation de compression des données utiles est signalée par le 15 placement dans l'entête au moins partiellement compressé (C ou PC), par le module de traitement MT1 (dans une étape 150), d'une première valeur choisie de l'identifiant de compression ( zipped ). En présence d'une autorisation de compression le module de traitement MT1 transmet le paquet IP à entête compressé (C ou PC) à un module de compression de données 20 utiles de son équipement El (ou E2), ou de son dispositif de compression D1, chargé de compresser les données utiles (ou payload ), par exemple au moyen d'une technique de type ZIP. Puis, le paquet IP est segmenté (ou décomposé) en cellules ATM par l'émetteur El, et les cellules ATM sont transmises à destination du récepteur E2. 25 L'interdiction de compression des données utiles est signalée par le placement dans l'entête au moins partiellement compressé (C ou PC), par le module de traitement MT1 (dans une étape 160), d'une seconde valeur choisie de l'identifiant de compression ( zipped ). En présence d'une interdiction de compression le dispositif de compression D1 stoppe son 30 traitement. I l transmet par exemple le paquet I P à entête compressé (C ou PC) à son équipement El (ou E2) afin qu'il le segmente (ou décompose) en cellules ATM, puis qu'il transmette les cellules ATM à destination du récepteur E2. On va maintenant décrire, en référence aux figures 1 et 6, un 21 2907624 exemple de réalisation d'un dispositif de décompression D2 selon l'invention. Comme cela est schématiquement et fonctionnellement illustré sur la figure 1, un dispositif de décompression D2, selon l'invention, comprend au moins un module de traitement MT2, ainsi que de préférence un module de 5 décompression de données utiles MD et des moyens de mémorisation M2, comme par exemple une mémoire agencée sous la forme d'une table de correspondance, ou d'un arbre, ou de type CAM. Le module de traitement MT2 est chargé de décompresser, au niveau d'un point d'extrémité de communication agissant en tant que récepteur E2 10 (ou E1), des cellules (éventuellement ATM) d'un paquet 1P d'un flux qui a fait l'objet d'une compression au moyen d'un dispositif de compression D1. Ce module de traitement MT2 intervient donc chaque fois qu'un récepteur E2 (ou El) a reconstitué un paquet d'un flux à partir des cellules (ATM) reçus et résultant de sa segmentation. Les opérations effectuées par le 15 module de traitement MT2 sont décrites ci-après en référence à l'exemple d'algorithme illustré sur la figure 6. A réception d'un paquet (étape 200), le module de traitement MT2 détermine dans une étape 230 si son entête est au moins partiellement compressé (C ou PC). 20 De préférence et comme illustré, avant d'effectuer cette étape 230, le module de traitement MT2 commence par déterminer dans une étape 210 si le paquet reçu est de type IP. Pour ce faire, il analyse par exemple la valeur de l'identifiant de version IP (IP_version) de son entête. Si le paquet n'est pas à un paquet IP, le dispositif de décompression 25 D2 stoppe son traitement et le communique à son équipement E2 (ou E1). En revanche, s'il s'agit d'un paquet IP, le module de traitement MT2 détermine de préférence dans une étape 220 le type du protocole IP utilisé (par exemple IPv4 ou IPv6). Ce type est défini par la valeur de l'identifiant de version IP (IP version) de l'entête de la cellule ATM reçue. Par exemple, les 30 valeurs 0x00, 0x02 et 0x04 désignent IPv4, tandis que les valeurs 0x01, 0x03 et 0x06 désignent IPv6. Si la valeur de l'identifiant de version IP est égale à 0x04 ou 0x06 (et donc qu'elle ne correspond pas à un protocole IP objet d'une compression 22 2907624 selon l'invention), le dispositif de décompression D2 stoppe son traitement et communique le paquet IP à son équipement E2 (ou El). En revanche, si la valeur de l'identifiant de version IP correspond à un protocole IP objet d'une compression selon l'invention, le dispositif de 5 décompression D2 détermine dans l'étape 230 si l'entête du paquet IP reçu est au moins partiellement compressé (C ou PC). Deux cas peuvent ici survenir. Si la valeur de l'identifiant de version IP correspond à une compression d'entête complète (C ù par exemple valeur 0x01 ou 0x03), alors le module de traitement MT2 passe à une étape 280 sur lo laquelle on reviendra plus loin. Si la valeur de l'identifiant de version IP correspond à une compression d'entête partielle (PC ù par exemple valeur 0x00 ou 0x02), alors le module de traitement MT2 passe à une étape 240. Dans l'étape 240, le module de traitement MT2 détermine dans la mémoire M2 de son dispositif de décompression D2 si l'identifiant de session 15 (contenu dans l'entête partiellement compressé PC du paquet IP) s'y trouve déjà stocké et donc correspond à un flux connu. Si l'identifiant de session n'est pas stocké dans la mémoire M2, cela indique que le paquet IP reçu appartient à un nouveau flux. Le module de traitement MT2 procède alors au stockage du nouvel identifiant de session 20 dans la mémoire M2, dans une étape 250. Puis, il passe à une étape 260 dans laquelle il stocke (toujours dans la mémoire M2) les informations relatives au nouveau flux (c'est-à-dire les informations contenues dans l'entête IP ainsi que dans l'éventuel entête UDP) en correspondance de l'identifiant de session précédemment stocké (à l'étape 25 250). Ce sont ces informations stockées (relatives au moins à l'entête IP) qui permettront plus tard au module de traitement MT2 de reconstruire des entêtes complets à partir d'entêtes compressés C. De préférence, avant de débuter chaque étape 260, le module de traitement MT2 vérifie si son équipement (récepteur) E2 (ou El) dispose de 30 ressources de calcul (CPU) pour mener à bien la reconstruction de l'entête IP (ou de l'entête IP et de l'entête UDP). Si tel est le cas, il passe à l'étape 260 décrite plus loin. En revanche, si l'équipement (récepteur) E2 (ou E1) ne dispose pas 23 2907624 de suffisamment de ressources de calcul et/ou de mémoire, le dispositif de décompression D2 demande à son équipement récepteur E2 (ou El) d'en informer l'équipement émetteur El (ou E2). Cela peut par exemple se faire en utilisant une valeur particulière du s champ Rx_ready de l'entête IP. A réception d'une telle information, le dispositif de compression D1 de l'équipement émetteur El (ou E2) va cesser momentanément d'autoriser la compression locale des entêtes et des données utiles associées. La compression pourra reprendre ultérieurement dès que l'équipement (récepteur) E2 (ou El) aura informé l'équipement io émetteur El (ou E2) de la fin de la saturation de ses ressources de calcul et/ou de mémoire dédiées à la décompression. Cela met fin au traitement effectué sur le paquet IP par le dispositif de décompression D2 Si l'identifiant de session est stocké dans la mémoire M2, cela indique 15 que le paquet IP reçu appartient à un flux connu. Le module de traitement MT2 est alors chargé de rafraîchir dans la mémoire M2, dans l'étape 260 (après avoir de préférence vérifié la disponibilité locale des ressources de calcul et/ou de mémoire), les informations relatives au flux connu (c'est-à-dire les informations contenues dans l'entête IP ainsi que dans l'éventuel entête 20 UDP et devant être stockées en correspondance de l'identifiant de session du flux). Préférentiellement, dans cette même étape 260 le module de traitement MT2 associe une première temporisation T1' à l'identifiant de session du flux, puis il l'active (ou la met à zéro). Cette première temporisation 25 T1' présente une durée qui est de préférence légèrement inférieure à celle de la première temporisation Ti du dispositif de compression D1. Cette première temporisation T1' sert à surveiller un flux dans le but de relâcher le contexte qui a été alloué à la session courante lorsqu'il est inutilisé pendant une durée supérieure ou égale à T1'. De façon générale, Ti' = Ti û 10 sec (T1 étant 30 typiquement de l'ordre de la minute). Puis, dans une étape 270 le module de traitement MT2 reconstruit l'entête IP originel des cellules ATM du paquet lP reçu à partir de leur entête partiellement compressé PC, et il remplace dans ces cellules ATM l'entête partiellement compressé PC par l'entête IP reconstruit. 24 2907624 Si le module de traitement MT2 s'aperçoit lors du test de l'étape 230 que la valeur de l'identifiant de version IP ne correspond pas à une compression d'entête partielle (PC), alors il passe à l'étape 280. Dans cette dernière, le module de traitement MT2 détermine si l'entête du paquet IP reçu s correspond à la compression C. Si la valeur de l'identifiant de version IP ne correspond pas à une compression d'entête complète de type C, alors le module de traitement MT2 supprime ( drop ) dans une étape 290 le paquet IP reçu, puisque l'on est en présence d'une incohérence. 10 En revanche, si la valeur de l'identifiant de version IP correspond effectivement à une compression d'entête complète (C û par exemple valeur 0x01 ou 0x03), alors le module de traitement MT2 passe à une étape 300. Dans l'étape 300, le module de traitement MT2 détermine dans la mémoire M2 de son dispositif de décompression D2 si l'identifiant de session 15 (contenu dans l'entête compressé C du paquet IP) s'y trouve déjà stocké et donc correspond à un flux connu. Si l'identifiant de session n'est pas stocké dans la mémoire M2, alors le module de traitement MT2 supprime ( drop ) dans l'étape 290 le paquet reçu, puisque l'on est en présence d'une incohérence. 20 En revanche, si dans l'étape 300 le module de traitement MT2 constate que l'identifiant de session est stocké dans la mémoire M2, et donc qu'il correspond bien à un flux connu, il passe à une étape 310 dans laquelle il ré-active (ou remet à zéro) la première temporisation T1' qui est associée à l'identifiant de session du flux. Cette ré-activation de la première temporisation 25 Ti' sert à réactiver le flux (afin de libérer le contexte associé en cas d'inactivité). Puis, dans une étape 320 le module de traitement MT2 reconstruit l'entête IP originel seul (dans le cas d'un protocole de transport TCP) et l'entête IP originel ainsi que l'entête UDP originel (dans le cas d'un protocole 30 de transport UDP) à partir de l'entête compressé C contenu dans les cellules (ATM) du paquet IP reçu et des informations correspondantes stockées dans la mémoire M2 lors d'une précédente étape 260. Puis, il remplace dans chaque cellule ATM du paquet IP reçu l'entête compressé C par l'entête reconstruit. 25 2907624 Comme cela est illustré sur la figure 6, le dispositif de décompression D2 peut être également chargé de décompresser les données utiles des cellules ATM reçues, une fois que leur entête originel a été reconstruit. Pour ce faire, il peut par exemple comprendre un module de 5 décompression de données utiles MD chargé tout d'abord de déterminer dans une étape 330 si le paquet reçu contient des données utiles compressées. A cet effet, il peut analyser la valeur du champ zipped . Si les données utiles ne sont pas compressées, le dispositif de décompression D2 stoppe son traitement du paquet IP. lo En revanche, si les données utiles sont compressées, le module de décompression MD détermine dans une étape 340 si son équipement (récepteur) E2 (ou El) dispose de ressources de calcul (CPU) pour mener à bien la décompression des données utiles. Si tel est le cas, le module de décompression MD décompresse les 15 données utiles du paquet IP reçu en utilisant la technique inverse de celle utilisée par le module de compression de l'équipement émetteur El (ou E2), par exemple UNZIP (outoute autre technique de décompression). Le paquet IP est alors entièrement décompressée, ce qui met fin au traitement effectué sur ce paquet IP par le dispositif de décompression D2. 20 En revanche, si l'équipement (récepteur) E2 (ou El) ne dispose pas de suffisamment de ressources de calcul, le dispositif de décompression D2 demande à son équipement récepteur E2 (ou El), dans une étape 360, d'en informer l'équipement émetteur El (ou E2). Cela peut par exemple se faire en utilisant une valeur particulière du 25 champ Rx ready de l'entête compressée. A réception d'une telle information, le dispositif de compression Dl de l'équipement émetteur El (ou E2) va cesser momentanément d'autoriser la compression locale des données utiles (ainsi qu'éventuellement des entêtes associés). La compression pourra reprendre ultérieurement dès que l'équipement 30 (récepteur) E2 (ou El) aura informé l'équipement émetteur El (ou E2) de la fin de la saturation de ses ressources de calcul dédiées à la décompression ou alors à l'échéance d'une troisième temporisation T3 côté émetteur d'une valeur typiquement de l'ordre d'une seconde (paramètre de configuration de l'émetteur). 26 2907624 Puis, dans une étape 370 le dispositif de décompression D2 supprime le paquet IP (reçu sous forme segmentée) étant donné qu'il n'est pas en mesure de décompresser ses données utiles ( payload ). Cela met alors fin au traitement effectué sur le paquet IP (reçu sous forme segmentée) par le 5 dispositif de décompression D2. Le dispositif de compression Dl selon l'invention, et notamment son module de traitement MT1 et son éventuelle mémoire M1, et le dispositif de compression Dl selon l'invention, et notamment son module de traitement MT2 et ses éventuels module de décompression MD et mémoire M2, peuvent lo être réalisés sous la forme de circuits électroniques, de modules logiciels (ou informatiques), ou d'une combinaison de circuits et de logiciels. On a schématiquement et fonctionnellement illustré sur la figure 7 les endroits où sont effectuées les opérations de compression (Dl) et de décompression (D2) dans le cas de communications respectivement entre 15 une passerelle El et un terminal E2 (A) et entre deux terminaux E2 et E2' (B). Plus précisément le cas A correspond à des communications en étoile (ou star) entre une passerelle El et un terminal E2, tandis que le cas B correspond à des communications maillées (ou meshed) entre deux terminaux E2. 20 Du côté d'un terminal E2 (ou E2') la compression (Dl) se fait en émission juste avant l'encapsulation IP sur AAL5/ATM, tandis que la décompression (D2) se fait en réception soit juste après le ré-assemblage de type MPE/MPEG ou ULE/MPEG (compression par une passerelle El au standard DVB-S ou DVB-S2) destiné à reconstituer les paquets IP, dans le 25 cas A (étoile), soit juste après le ré-assemblage de type AAL5/ATM destiné à reconstituer les paquets IP, dans le cas B (maillé). Du côté d'une passerelle El la compression (Dl) se fait en émission juste avant l'encapsulation IP sur MPE/MPEG ou IP sur ULE/MPEG (compression par une passerelle El au standard DVB-S ou DVB-S2), tandis 30 que la décompression (D2) se fait en réception juste après le ré-assemblage de type AAL5/ATM destiné à reconstituer les paquets IP. L'invention offre un certain nombre d'avantages, parmi lesquels : - une estimation du gain de compression avant que la compression n'ait été effectuée et seulement lorsque la compression est possible, 27 2907624 une compression d'entête simple et robuste, notamment dans le cas de la couche d'adaptation dite AAL5 , les compression/décompression peuvent être effectuées de façon dynamique en fonction des ressources de calcul disponibles localement, de s la taille mémoire disponible, et du nombre de sessions déjà ouvertes en parallèle, une mise en oeuvre de complexité notablement réduite par rapport à celles imposées par les RFCs, des puissances de calcul et de mémoire réduites, lo la transmission d'entêtes compressés de 2 octets (au lieu de 40) dans le cas d'un protocole de transport de type UDP/IP, de 22 octets (au lieu de 40) dans le cas d'un protocole de transport de type TCP/IP sans option, et de 30 octets (au lieu de 56) dans le cas d'un protocole de transport de type TCP avec option satellitaire (T/TCP), tous ces entêtes occupant ainsi une ls seule cellule ATM (de 48 octets au maximum incluant le traiter AAL5 de 8 octets), un champ UDP checksum qui n'a pas besoin d'être recalculé (du fait qu'il est mis à zéro et qu'un CRC32 est utilisé au niveau des couches protocolaires de bas niveau (MPE, AAL5)), permettant ainsi d'économiser 20 des ressources de calcul lors de la décompression, -si l'entête de compression est présent (identifié par le champ IP_version), alors il est possible de compresser les données applicatives selon les ressources locales/distantes et surtout si un gain de compression de données est effectivement obtenu pour un flux donné (cela ne présente 25 pas d'intérêt de continuer à tenter de compresser les données si la taille après compression est supérieure ou égale à celle d'origine du fait qu'un entête additionnel ( overhead ) est ajouté et que l'entropie est maximale, c'est-à-dire en cas d'absence de redondance d'information pouvant bénéficier d'un gain de compression), 30 le mode dégradé TCP (avec option) peut continuer à être utilisé sans perturbation du fait que l'entête TCP n'est pas compressé. L'invention ne se limite pas aux modes de réalisation de dispositif de compression, de dispositif de décompression et d'équipement de 28 2907624 communication décrits ci-avant, seulement à titre d'exemple, mais elle englobe toutes les variantes que pourra envisager l'homme de l'art dans le cadre des revendications ci-après. Ainsi, dans ce qui précède on a décrit des exemples d'équipement de 5 communication comprenant à la fois un dispositif de compression selon l'invention et un dispositif de décompression selon l'invention. Mais, un équipement de communication selon l'invention peut ne comporter qu'un dispositif de compression selon l'invention ou bien qu'un dispositif de décompression selon l'invention. lo Par ailleurs, dans ce qui précède on a décrit une situation dans laquelle un émetteur (pourvu d'un dispositif de compression) transmet des flux compressés vers un seul récepteur (pourvu d'un dispositif de décompression). Mais, le dispositif de compression d'un émetteur peut traiter en parallèle plusieurs flux destinés à plusieurs récepteurs (pourvus chacun d'un dispositif 15 de décompression). 29 REVENDICATIONS 1. Dispositif de compression de flux de paquets de données (D1), pour un équipement de communication (El) constituant un point d'extrémité de s transmission au sein d'un réseau de communication à protocole Internet (R), lesdits paquets d'un flux comprenant chacun, notamment, un entête IP comportant un identifiant de point d'extrémité destinataire (E2), un identifiant de session et des attributs de flux, et un entête de protocole de transport, et lesdits paquets étant destinés à être transmis après décomposition en lo cellules, caractérisé en ce qu'il comprend des moyens de traitement (MT1) agencés, en cas de réception d'un paquet d'un flux, i) pour déterminer si l'entête IP dudit paquet peut être compressé en fonction d'au moins un critère choisi, puis ii) dans l'affirmative, pour déterminer si ladite compression peut entraîner une réduction du nombre des cellules devant résulter de la 15 décomposition dudit paquet, puis iii) dans l'affirmative, pour remplacer dans ledit paquet au moins ledit entête IP par un entête compressé comprenant au moins l'identifiant de session et un identifiant de compression, après avoir préalablement transmis audit point d'extrémité (E2) destinataire du flux reçu, sous une forme partiellement compressée, au moins l'entête IP devant être 20 remplacé. 2. Dispositif selon la revendication 1, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, en présence d'un protocole de transport de type TCP, pour remplacer l'entête IP du paquet reçu par un entête compressé de deux octets comprenant au moins l'identifiant de 25 session, un identifiant de compression et un identifiant de type de protocole de transport. 3. Dispositif selon la revendication 1, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, en présence d'un protocole de transport de type UDP, pour remplacer l'entête IP et l'entête UDP du paquet 30 reçu par un entête compressé de deux octets comprenant au moins l'identifiant de session, un identifiant de compression et un identifiant de type de protocole de transport. 4. Dispositif selon l'une des revendications 1 à 3, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés pour déterminer si l'entête 30 2907624 du paquet reçu peut être compressé en fonction d'au moins un critère choisi dans un groupe comprenant au moins la fragmentation du paquet, le type du protocole de transport, un sous-type du protocole de transport, une autorisation de compression reçue dudit point d'extrémité destinataire (E2), et une autorisation de compression locale. 5. Dispositif selon l'une des revendications 1 à 4, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés pour déterminer des premier et second nombres de cellules qui résulteraient de la décomposition du paquet du flux respectivement en l'absence et en présence d'une compression de leur entête, et pour procéder au remplacement d'au moins l'entête IP du dernier paquet reçu par un entête au moins partiellement compressé lorsque ledit premier nombre est strictement supérieur audit second nombre. 6. Dispositif selon l'une des revendications 1 à 5, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, en cas de réception d'un paquet d'un flux et d'une prise de décision de compression d'au moins son entête IP, i) pour attribuer audit flux une clé de hachage fonction de champs choisis de l'entête IP de son paquet reçu, puis ii) pour déterminer dans des moyens de mémorisation (M1) si cette clé de hachage s'y trouve stockée, et iii) dans la négative pour considérer ledit flux comme un nouveau flux, puis pour stocker ladite clé de hachage dans lesdits moyens de mémorisation (Ml) si l'identifiant de session associé audit flux est disponible depuis au moins l'expiration d'une première temporisation, et pour procéder au remplacement de l'entête IP dudit paquet reçu par un entête partiellement compressé, ou dans l'affirmative pour remettre à zéro ladite première temporisation associée à l'identifiant de session dudit flux et procéder audit remplacement d'au moins l'entête IP dudit paquet reçu par un entête compressé. 7. Dispositif selon la revendication 6, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés soit pour déclencher une seconde temporisation associée audit flux juste avant de procéder au remplacement de l'entête IP du paquet reçu par un entête partiellement compressé, soit, après avoir remis à zéro ladite première temporisation associée à l'identifiant de session dudit flux, pour déterminer si ladite seconde temporisation associée audit flux est expirée afin soit de procéder audit remplacement d'au 31 2907624 moins l'entête IP du paquet reçu par un entête compressé si ladite seconde temporisation n'est pas expirée, soit de déclencher une seconde temporisation associée audit flux juste avant de procéder au remplacement de l'entête IP du paquet reçu par un entête partiellement compressé. s 8. Dispositif selon la revendication 7, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, après avoir remis à zéro ladite première temporisation associée à l'identifiant de session dudit flux et en cas de non expiration de ladite seconde temporisation associée audit flux, pour comparer à un seuil choisi le nombre de paquets dudit flux ayant été transmis lo sous forme de cellules avec un entête compressé afin soit de procéder audit remplacement d'au moins l'entête IP du dernier paquet reçu par ledit entête compressé si ladite seconde temporisation n'est pas expirée, soit de déclencher ladite seconde temporisation associée audit flux juste avant de procéder au remplacement de l'entête IP du paquet reçu par un entête 15 partiellement compressé lorsque ledit nombre de paquets est supérieur ou égal audit seuil. 9. Dispositif selon l'une des revendications 1 à 8, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, en cas de remplacement d'au moins l'entête IP d'un paquet reçu par un entête au moins partiellement 20 compressé, pour déterminer si les données utiles associées audit entête au moins partiellement compressé peuvent être compressées en fonction d'au moins un critère choisi, et dans l'affirmative pour intégrer dans ledit entête compressé un identifiant signalant ladite compression de données. 10. Dispositif selon la revendication 9, caractérisé en ce que lesdits 25 moyens de traitement (MT1) sont agencés pour déterminer si les données utiles associées audit entête au moins partiellement compressé peuvent être compressées en fonction d'au moins un critère choisi dans un groupe comprenant au moins la disponibilité de ressources locales, la disponibilité de ressources de décompression dans ledit point d'extrémité destinataire (E2) et 30 la taille du paquet reçu. 11. Dispositif selon l'une des revendications 9 et 10, caractérisé en ce que lesdits moyens de traitement (MT1) sont agencés, en cas de détermination d'une possibilité de compression des données utiles du paquet comprenant l'entête compressé, pour déterminer si ladite compression de 32 2907624 données peut entraîner une réduction du nombre des cellules devant résulter de la décomposition dudit paquet, puis, dans l'affirmative, pour intégrer dans ledit entête compressé un identifiant signalant ladite compression des données utiles, et dans la négative, pour intégrer dans ledit entête compressé s un identifiant signalant l'interdiction de compression des données utiles. 12. Dispositif (D2) de décompression de cellules d'un flux ayant fait l'objet d'une compression au moyen d'un dispositif de compression (Dl) selon l'une des revendications précédentes, pour un équipement de communication (E2) constituant un point d'extrémité de transmission au sein d'un réseau de lo communication à protocole Internet (R), caractérisé en ce qu'il comprend des moyens de traitement (MT2) agencés, en cas de réception de cellules d'un paquet d'un flux, i) pour déterminer si elles comprennent un entête au moins partiellement compressé comportant notamment un identifiant de compression et un identifiant de session, puis ii) dans l'affirmative pour 15 déterminer dans des moyens de mémorisation (M2) si ledit identifiant de session s'y trouve déjà stocké et donc correspond à un flux connu, puis iii) dans l'affirmative, soit pour stocker dans lesdits moyens de mémorisation (M2) les informations relatives audit flux lorsque ledit identifiant de compression signale un entête partiellement compressé, puis reconstruire 20 l'entête IP originel à partir dudit entête partiellement compressé, soit, lorsque ledit identifiant de compression signale un entête compressé, pour reconstruire l'entête originel à partir des informations correspondantes stockées dans lesdits moyens de mémorisation (M2) et désignées par l'identifiant de session contenu dans l'entête compressé reçu. 25 13. Dispositif selon la revendication 12, caractérisé en ce que lesdits moyens de traitement (MT2) sont agencés, en cas de réception de cellules d'un paquet d'un flux, pour commencer par déterminer s'ils concernent un paquet IP à décompresser, et dans l'affirmative pour ne déterminer si lesdites cellules comprennent un entête au moins partiellement compressé qu'à 30 condition qu'elles concernent des versions choisies du protocole IP. 14. Dispositif selon l'une des revendications 12 et 13, caractérisé en ce que lesdits moyens de traitement (MT2) sont agencés, lorsque ledit identifiant de compression signale un entête partiellement compressé, pour accéder auxdits moyens de mémorisation (M2) pour déterminer si l'identifiant de 33 2907624 session contenu dans cet entête s'y trouve stocké, et dans la négative pour stocker ledit identifiant de session dans lesdits moyens de mémorisation (M2), puis pour stocker dans lesdits moyens de mémorisation (M2) les informations relatives audit flux en correspondance dudit identifiant de session. 5 15. Dispositif selon l'une des revendications 12 à 14, caractérisé en ce que lesdits moyens de traitement (MT2) sont agencés, lorsque ledit identifiant de compression signale un entête compressé, pour accéder auxdits moyens de mémorisation (M2) pour déterminer si l'identifiant de session contenu dans cet entête compressé s'y trouve stocké, et dans la négative pour supprimer 10 ledit paquet reçu. 16. Dispositif selon l'une des revendications 12 à 15, caractérisé en ce que lesdits moyens de traitement (MT2) sont agencés, lorsque l'identifiant de compression signale un entête partiellement compressé, pour stocker dans lesdits moyens de mémorisation (M1) les informations relatives au flux de cet 15 entête, puis de déclencher une première temporisation relative à ce flux avant de reconstruire l'entête IP originel à partir de l'entête partiellement compressé ; 17. Dispositif selon l'une des revendications 12 à 16, caractérisé en ce que lesdits moyens de traitement (MT2) sont agencés, lorsque l'identifiant de 20 compression signale un entête compressé, pour remettre à zéro (réactiver) la première temporisation associée au flux de cet entête, avant de reconstruire l'entête originel à partir des informations correspondantes stockées dans lesdits moyens de mémorisation (Ml) et désignées par l'identifiant de session contenu dans l'entête compressé reçu. 25 18. Dispositif selon l'une des revendications 12 à 17, caractérisé en ce qu'il comprend des moyens de décompression (MD) agencés, en cas de reconstruction de l'entête originel de cellules d'un paquet d'un flux, pour déterminer si ledit entête comprend un identifiant de compression de données signalant que les cellules ont fait l'objet d'une compression des données 30 utiles, et dans l'affirmative, soit pour procéder à la décompression desdites données utiles s'il existe localement des ressources qui le permettent, soit pour adresser à l'équipement de communication (El) constituant la source desdites cellules un message signalant une saturation des ressources en réception puis pour supprimer ledit paquet reçu. 34 2907624 19. Equipement de communication (El, E2), destiné à constituer un point d'extrémité de transmission au sein d'un réseau de communication à protocole Internet, caractérisé en ce qu'il comprend un dispositif de compression (Dl) et/ou un dispositif de décompression (D2) selon l'une des s revendications précédentes. 20. Equipement selon la revendication 19, caractérisé en ce qu'il est choisi dans un groupe comprenant au moins un terminal satellitaire et une passerelle satellitaire.