4. Regroupement des paquets en flux de paquets
4. Regroupement des paquets en flux de paquets (Grouping packets into packet streams)
Cette section explique comment les paquets sont regroupés en flux de paquets pour la compression. Pour obtenir le meilleur taux de compression, les paquets DEVRAIENT être regroupés de telle sorte que les paquets du même flux aient des en-têtes similaires. Si ce regroupement échoue, les performances de la compression d'en-têtes seront médiocres, car l'algorithme de compression pourra rarement exploiter le contexte existant du flux de paquets et devra envoyer fréquemment des en-têtes complets.
Le regroupement est effectué par le compresseur. Le compresseur PEUT utiliser tout critère qu'il juge approprié pour regrouper les paquets en flux de paquets. Pour déterminer à quel flux de paquets appartient un paquet, le compresseur PEUT :
a) examiner la chaîne de sous-en-têtes compressibles (voir section 7),
b) examiner le contenu des en-têtes de protocole de couche supérieure suivant la chaîne de sous-en-têtes compressibles, par exemple les en-têtes ICMP, DVMRP ou les en-têtes IPX encapsulés,
c) utiliser les informations obtenues d'un gestionnaire de ressources, par exemple si le gestionnaire de ressources demande la compression d'un flux de paquets particulier et fournit un moyen d'identifier les paquets appartenant à ce flux,
d) utiliser toute autre information pertinente, par exemple si le routage est instable et que le champ de limite de sauts (TTL) dans le flux de paquets change fréquemment entre n et n+k, le compresseur PEUT choisir de regrouper les paquets en deux flux de paquets différents.
Le compresseur PEUT également choisir de ne pas regrouper certains paquets en flux de paquets pour la compression, laissant ces paquets conserver leurs en-têtes réguliers et les transmettre sans modification.
Tant que les règles d'envoi des en-têtes complets pour les flux de paquets non-TCP sont respectées, et que les sous-en-têtes sont compressés comme spécifié dans ce document, le décompresseur sera capable de reconstruire correctement les en-têtes compressés, quel que soit le regroupement des paquets en flux de paquets.
4.1 Directives pour le regroupement des paquets (Guidelines for grouping packets)
Dans cette section, nous fournissons des directives optionnelles sur la façon dont le compresseur PEUT regrouper les paquets en flux de paquets pour la compression.
Champs de définition (Defining fields)
Les champs de définition d'un en-tête DEVRAIENT être présents et identiques dans tous les paquets appartenant au même flux de paquets. Ces champs sont marqués DEF dans la section 7. Les champs de définition comprennent l'étiquette de flux, les adresses source et de destination de l'en-tête IP, l'adresse de destination finale dans l'en-tête de routage, le champ d'en-tête suivant (pour IPv6), le champ de protocole (IPv4), les numéros de port (UDP et TCP) et le SPI dans les en-têtes d'authentification et de chiffrement.
Paquets fragmentés (Fragmented packets)
Les paquets fragmentés et non fragmentés NE DEVRAIENT JAMAIS être regroupés dans le même flux de paquets. L'en-tête de fragmentation ou le champ d'identification de l'en-tête IPv4 NE DEVRAIT PAS être utilisé pour identifier les flux de paquets. Si c'est le cas, le premier fragment d'un nouveau paquet déclenchera un démarrage lent de compression.
Aucun champ après l'en-tête de fragmentation ou après l'en-tête IPv4 utilisé pour la fragmentation NE DEVRAIT être utilisé à des fins de regroupement.
Identification du protocole de couche supérieure (Upper protocol identification)
Le premier champ d'en-tête suivant identifiant un en-tête non décrit dans la section 7 DEVRAIT être utilisé pour identifier les flux de paquets, c'est-à-dire que tous les paquets ayant les mêmes champs DEF et le même protocole de couche supérieure DEVRAIENT être regroupés ensemble.
Champ TTL (champ de limite de sauts) (TTL field, Hop Limit field)
Les implémentations sophistiquées PEUVENT surveiller le champ TTL (limite de sauts) et l'utiliser comme champ DEF s'il change fréquemment. Cela peut se produire en cas d'instabilité fréquente du routage, de sorte que les paquets traversent différents chemins sur Internet.
Champ de classe de trafic (IPv6), champ de type de service (IPv4) (Traffic Class field, Type of Service field)
Le champ de classe de trafic de l'en-tête IPv6 et le type de service de l'en-tête IPv4 PEUVENT changer fréquemment entre les paquets ayant les mêmes champs DEF. Les implémentations sophistiquées DEVRAIENT en tenir compte et être prêtes à utiliser ces champs comme champs de définition.
Lorsque des paquets IP sont encapsulés dans un tunnel, ils sont encapsulés avec un en-tête IP supplémentaire au point d'entrée du tunnel, puis envoyés au point de sortie du tunnel. Pour regrouper ces paquets en flux de paquets, les en-têtes internes DEVRAIENT également être examinés pour déterminer le flux de paquets. Si cela n'est pas fait, un en-tête complet sera envoyé chaque fois que l'en-tête du paquet IP interne change. Par conséquent, lorsque des paquets sont encapsulés dans un tunnel, les champs d'identification des sous-en-têtes internes DEVRAIENT être pris en compte en plus des champs d'identification de l'en-tête IP initial.
Les implémentations PEUVENT utiliser d'autres champs que ceux décrits ici pour l'identification. Si trop de champs sont utilisés pour l'identification, les performances peuvent en souffrir car davantage de CID seront utilisés et le mauvais CID peut être réutilisé lorsqu'un nouveau flux a besoin d'un CID. Si trop peu de champs sont utilisés pour l'identification, les performances peuvent en souffrir car les modifications du contexte seront trop fréquentes.
Nous soulignons que ces directives sont des suppositions éclairées. Lorsque IPv6 sera largement déployé et que le trafic IPv6 pourra être analysé, nous pourrons découvrir que d'autres algorithmes de regroupement fonctionnent mieux. Nous soulignons également que si le regroupement échoue, le résultat sera de mauvaises performances, mais pas une décompression incorrecte. Le décompresseur peut accomplir sa tâche quel que soit le fonctionnement de l'algorithme de regroupement.