3.2.1. ACK-on-Error Mode (Mode ACK-on-Error) (Remplace la Section 8.4.3, RFC 8724)
3.2.1. ACK-on-Error Mode (Mode ACK-on-Error)
Le mode ACK-on-Error prend en charge les technologies L2 qui ont un MTU variable et une livraison hors séquence. Il nécessite un L2 qui fournit un chemin de retour du réassembleur au fragmenteur. Voir l'Annexe F pour une discussion sur l'utilisation du mode ACK-on-Error sur des liens quasi-bidirectionnels.
Dans le mode ACK-on-Error, les windows (fenêtres) sont utilisées.
Toutes les tiles (tuiles) sauf la dernière et l'avant-dernière DOIVENT être de taille égale, ci-après appelées "regular" (régulières). La taille de la dernière tile DOIT être inférieure ou égale à la taille de tile régulière. Concernant l'avant-dernière tile, un Profile (profil) DOIT choisir l'une des deux options suivantes:
-
La taille de l'avant-dernière tile DOIT être la taille de tile régulière, ou
-
la taille de l'avant-dernière tile DOIT être soit la taille de tile régulière, soit la taille de tile régulière moins un L2 Word (mot L2).
Un message SCHC Fragment transporte dans sa charge utile une ou plusieurs tiles contiguës, qui peuvent s'étendre sur plusieurs windows. Un SCHC Compound ACK rapporte la réception d'une window de tiles ou de plusieurs windows de tiles, chacune identifiée par son window number (numéro de fenêtre).
Voir la Figure 6 (voir Figure 23 du RFC 8724) pour un exemple.
+---------------------------------------------...-----------+
| SCHC Packet |
+---------------------------------------------...-----------+
Tile# | 4 | 3 | 2 | 1 | 0 | 4 | 3 | 2 | 1 | 0 | 4 | | 0 | 4 |3|
Window# |-------- 0 --------|-------- 1 --------|- 2 ... 27 -|- 28-|
SCHC Fragment msg |-----------|
Figure 6: SCHC Packet Fragmenté en Tiles, Mode ACK-on-Error (Figure 23 dans RFC 8724)
Le champ W est suffisamment large pour représenter sans ambiguïté un window number absolu. Le fragment receiver (récepteur de fragments) envoie des SCHC Compound ACKs au fragment sender (émetteur de fragments) concernant les windows pour lesquelles des tiles sont manquantes. Aucun SCHC Compound ACK n'est envoyé par le fragment receiver pour les windows qu'il sait avoir été entièrement reçues.
Le fragment sender retransmet les SCHC Fragments pour les tiles signalées comme manquantes. Il peut avancer vers les windows suivantes même avant d'avoir vérifié que toutes les tiles appartenant aux windows précédentes ont été correctement reçues, et il peut toujours retransmettre plus tard des SCHC Fragments avec des tiles appartenant aux windows précédentes. Par conséquent, l'émetteur et le récepteur peuvent fonctionner de manière découplée. La transmission du SCHC Packet fragmenté se termine lorsque:
-
la vérification d'intégrité montre que le SCHC Packet fragmenté a été correctement réassemblé à l'extrémité de réception, et cette information a été transmise à l'émetteur,
-
trop de tentatives de retransmission ont été effectuées, ou
-
le récepteur détermine que la transmission de ce SCHC Packet fragmenté a été inactive pendant trop longtemps.
Chaque Profile DOIT spécifier quelle(s) valeur(s) de RuleID correspond(ent) aux messages SCHC F/R fonctionnant dans ce mode.
Le champ W DOIT être présent dans les messages SCHC F/R.
Chaque Profile, pour chaque valeur de RuleID, DOIT définir:
-
la taille de tile (une tile n'a pas besoin d'être une duplication d'un L2 Word, mais elle DOIT être au moins de la taille d'un L2 Word),
-
la valeur de M,
-
la valeur de N,
-
la valeur de WINDOW_SIZE, qui DOIT être strictement inférieure à 2^N,
-
la taille et l'algorithme pour le champ RCS,
-
la valeur de T,
-
la valeur de MAX_ACK_REQUESTS,
-
le temps d'expiration du Retransmission Timer (temporisateur de retransmission),
-
le temps d'expiration de l'Inactivity Timer (temporisateur d'inactivité),
-
si la dernière tile est transportée dans un Regular SCHC Fragment (fragment SCHC régulier) ou un All-1 SCHC Fragment (fragment SCHC All-1) (voir Section 3.2.1.1),
-
si l'avant-dernière tile PEUT être d'un L2 Word plus petite que la taille de tile régulière (dans ce cas, la taille de tile régulière DOIT être au moins le double de la taille du L2 Word),
-
utilisation ou non du message SCHC Compound ACK, et
-
utilisation ou non du format Compressed Bitmap (bitmap compressée) dans la dernière window du message SCHC Compound ACK.
Pour chaque paire active de valeurs RuleID et DTag, l'émetteur DOIT maintenir:
-
un Attempts counter (compteur de tentatives) et
-
un Retransmission Timer (temporisateur de retransmission).
Pour chaque paire active de valeurs RuleID et DTag, le récepteur DOIT maintenir:
-
un Attempts counter (compteur de tentatives) et
-
un Inactivity Timer (temporisateur d'inactivité).