10. Amélioration de la récupération après perte pour TCP
10. Amélioration de la récupération après perte pour TCP (Improving loss recovery for TCP)
Cette section décrit deux mécanismes pour accélérer la récupération après perte d'en-têtes TCP compressés. Ces mécanismes sont particulièrement importants pour les liaisons à moyen débit avec un taux de perte de paquets élevé.
10.1 Demande d'en-tête explicite du décompresseur (Explicit header request from decompressor)
Lorsque le décompresseur détecte que le contexte d'une connexion TCP est désynchronisé, il PEUT demander un en-tête complet en envoyant une demande d'en-tête au compresseur. La demande d'en-tête est un paquet spécial contenant la liste des CID des connexions TCP désynchronisées.
Une façon pour le décompresseur de détecter une désynchronisation est de recevoir un paquet TCP dont la somme de contrôle TCP échoue. Cela indique que l'en-tête TCP compressé a été décompressé incorrectement.
Après réception d'une demande d'en-tête, le compresseur DEVRAIT envoyer un en-tête complet ou un paquet COMPRESSED_TCP_NODELTA pour les connexions TCP correspondant aux CID listés.
10.2 Paquet CONTEXT_STATE (CONTEXT_STATE packet)
Le paquet CONTEXT_STATE est un paquet spécial envoyé du décompresseur au compresseur. Il contient la liste des CID TCP qui ont perdu la synchronisation.
Le format du paquet CONTEXT_STATE est le suivant :
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Marqueur CONTEXT_STATE | Nombre de CID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CID 1 | CID 2 | ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Le marqueur CONTEXT_STATE est une valeur spéciale de 16 bits identifiant ce paquet comme un paquet CONTEXT_STATE.
Le champ Nombre de CID indique combien de CID sont inclus dans ce paquet.
Les champs CID sont des valeurs CID de 8 bits.
Après réception d'un paquet CONTEXT_STATE, le compresseur DEVRAIT envoyer un en-tête complet ou un paquet COMPRESSED_TCP_NODELTA pour les connexions TCP correspondant aux CID listés.