3.2.1. ACK-on-Error Mode (ACK-on-Error-Modus) (Ersetzt Abschnitt 8.4.3, RFC 8724)
3.2.1. ACK-on-Error Mode (ACK-on-Error-Modus)
Der ACK-on-Error-Modus unterstützt L2-Technologien mit variabler MTU und Auslieferung außer der Reihe. Er erfordert ein L2, das einen Rückmeldungspfad vom Reassembler zum Fragmenter bereitstellt. Siehe Anhang F für eine Diskussion über die Verwendung des ACK-on-Error-Modus auf quasi-bidirektionalen Verbindungen.
Im ACK-on-Error-Modus werden windows (Fenster) verwendet.
Alle tiles (Kacheln) außer der letzten und der vorletzten MÜSSEN gleich groß sein, im Folgenden als "regular" (regulär) bezeichnet. Die Größe der letzten tile MUSS kleiner oder gleich der regulären tile-Größe sein. Bezüglich der vorletzten tile MUSS ein Profile (Profil) eine der folgenden beiden Optionen wählen:
-
Die vorletzte tile-Größe MUSS die reguläre tile-Größe sein, oder
-
die vorletzte tile-Größe MUSS entweder die reguläre tile-Größe oder die reguläre tile-Größe minus ein L2 Word (L2-Wort) sein.
Eine SCHC Fragment-Nachricht trägt in ihrer Nutzlast eine oder mehrere zusammenhängende tiles, die sich über mehrere windows erstrecken können. Ein SCHC Compound ACK berichtet über den Empfang eines window von tiles oder mehrerer windows von tiles, die jeweils durch ihre window number (Fensternummer) identifiziert werden.
Siehe Abbildung 6 (siehe Abbildung 23 von RFC 8724) für ein Beispiel.
+---------------------------------------------...-----------+
| 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 |-----------|
Abbildung 6: SCHC Packet in Tiles Fragmentiert, ACK-on-Error-Modus (Abbildung 23 in RFC 8724)
Das W-Feld ist breit genug, um eindeutig eine absolute window number darzustellen. Der fragment receiver (Fragment-Empfänger) sendet SCHC Compound ACKs an den fragment sender (Fragment-Sender) über windows, für die tiles fehlen. Kein SCHC Compound ACK wird vom fragment receiver für windows gesendet, von denen er weiß, dass sie vollständig empfangen wurden.
Der fragment sender überträgt SCHC Fragments für tiles erneut, die als fehlend gemeldet werden. Er kann zu nächsten windows voranschreiten, noch bevor er festgestellt hat, dass alle zu vorherigen windows gehörenden tiles korrekt empfangen wurden, und er kann später immer noch SCHC Fragments mit zu vorherigen windows gehörenden tiles erneut übertragen. Daher können Sender und Empfänger in entkoppelter Weise arbeiten. Die fragmentierte SCHC Packet-Übertragung endet, wenn:
-
die Integritätsprüfung zeigt, dass das fragmentierte SCHC Packet am Empfangsende korrekt wiederzusammengesetzt wurde und diese Information an den Sender zurückübermittelt wurde,
-
zu viele Neuübertragungsversuche gemacht wurden, oder
-
der Empfänger feststellt, dass die Übertragung dieses fragmentierten SCHC Packet zu lange inaktiv war.
Jedes Profile MUSS angeben, welcher bzw. welche RuleID-Wert(e) SCHC F/R-Nachrichten entspricht/entsprechen, die in diesem Modus arbeiten.
Das W-Feld MUSS in den SCHC F/R-Nachrichten vorhanden sein.
Jedes Profile MUSS für jeden RuleID-Wert definieren:
-
die tile-Größe (eine tile muss keine Kopie eines L2 Word sein, aber sie MUSS mindestens die Größe eines L2 Word haben),
-
den Wert von M,
-
den Wert von N,
-
den Wert von WINDOW_SIZE, der strikt kleiner als 2^N sein MUSS,
-
die Größe und den Algorithmus für das RCS-Feld,
-
den Wert von T,
-
den Wert von MAX_ACK_REQUESTS,
-
die Ablaufzeit des Retransmission Timer (Neuübertragungstimers),
-
die Ablaufzeit des Inactivity Timer (Inaktivitätstimers),
-
ob die letzte tile in einem Regular SCHC Fragment (regulären SCHC-Fragment) oder einem All-1 SCHC Fragment (All-1 SCHC-Fragment) übertragen wird (siehe Abschnitt 3.2.1.1),
-
ob die vorletzte tile um ein L2 Word kleiner als die reguläre tile-Größe sein KANN (in diesem Fall MUSS die reguläre tile-Größe mindestens doppelt so groß wie die L2 Word-Größe sein),
-
Verwendung oder Nichtverwendung der SCHC Compound ACK-Nachricht, und
-
Verwendung oder Nichtverwendung des Compressed Bitmap (komprimierten Bitmap) Formats im letzten window der SCHC Compound ACK-Nachricht.
Für jedes aktive Paar von RuleID- und DTag-Werten MUSS der Sender beibehalten:
-
einen Attempts counter (Versuchszähler) und
-
einen Retransmission Timer (Neuübertragungstimer).
Für jedes aktive Paar von RuleID- und DTag-Werten MUSS der Empfänger beibehalten:
-
einen Attempts counter (Versuchszähler) und
-
einen Inactivity Timer (Inaktivitätstimer).