Passa al contenuto principale

3.2.1. ACK-on-Error Mode (Modalità ACK-on-Error) (Sostituisce la Sezione 8.4.3, RFC 8724)

3.2.1. ACK-on-Error Mode (Modalità ACK-on-Error)

La modalità ACK-on-Error supporta tecnologie L2 che hanno MTU variabile e consegna fuori sequenza. Richiede un L2 che fornisce un percorso di feedback dal riassemblatore al frammentatore. Vedere l'Appendice F per una discussione sull'uso della modalità ACK-on-Error su collegamenti quasi-bidirezionali.

Nella modalità ACK-on-Error, vengono utilizzate windows (finestre).

Tutte le tiles (tessere) tranne l'ultima e la penultima DEVONO essere di dimensioni uguali, di seguito chiamate "regular" (regolari). La dimensione dell'ultima tile DEVE essere inferiore o uguale alla dimensione della tile regolare. Per quanto riguarda la penultima tile, un Profile (profilo) DEVE scegliere una delle seguenti due opzioni:

  • La dimensione della penultima tile DEVE essere la dimensione della tile regolare, o

  • la dimensione della penultima tile DEVE essere la dimensione della tile regolare o la dimensione della tile regolare meno un L2 Word (parola L2).

Un messaggio SCHC Fragment trasporta nel suo payload una o più tiles contigue, che possono estendersi su più windows. Un SCHC Compound ACK riporta la ricezione di una window di tiles o di più windows di tiles, ciascuna identificata dal suo window number (numero di finestra).

Vedere la Figura 6 (vedere Figura 23 di RFC 8724) per un esempio.

       +---------------------------------------------...-----------+
| 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 |-----------|

Figura 6: SCHC Packet Frammentato in Tiles, Modalità ACK-on-Error (Figura 23 in RFC 8724)

Il campo W è sufficientemente ampio da rappresentare in modo inequivocabile un window number assoluto. Il fragment receiver (ricevitore di frammenti) invia SCHC Compound ACKs al fragment sender (mittente di frammenti) riguardo alle windows per le quali mancano tiles. Nessun SCHC Compound ACK viene inviato dal fragment receiver per le windows che sa essere state completamente ricevute.

Il fragment sender ritrasmette SCHC Fragments per le tiles segnalate come mancanti. Può avanzare alle windows successive anche prima di aver accertato che tutte le tiles appartenenti alle windows precedenti sono state ricevute correttamente, e può ancora successivamente ritrasmettere SCHC Fragments con tiles appartenenti alle windows precedenti. Pertanto, il mittente e il ricevitore possono operare in modo disaccoppiato. La trasmissione del SCHC Packet frammentato termina quando:

  • il controllo dell'integrità mostra che il SCHC Packet frammentato è stato correttamente riassemblato all'estremità ricevente, e questa informazione è stata trasmessa al mittente,

  • sono stati effettuati troppi tentativi di ritrasmissione, o

  • il ricevitore determina che la trasmissione di questo SCHC Packet frammentato è stata inattiva per troppo tempo.

Ogni Profile DEVE specificare quale/i valore/i di RuleID corrisponde/corrispondono ai messaggi SCHC F/R operanti in questa modalità.

Il campo W DEVE essere presente nei messaggi SCHC F/R.

Ogni Profile, per ogni valore di RuleID, DEVE definire:

  • la dimensione della tile (una tile non deve essere una copia di un L2 Word, ma DEVE essere almeno della dimensione di un L2 Word),

  • il valore di M,

  • il valore di N,

  • il valore di WINDOW_SIZE, che DEVE essere strettamente inferiore a 2^N,

  • la dimensione e l'algoritmo per il campo RCS,

  • il valore di T,

  • il valore di MAX_ACK_REQUESTS,

  • il tempo di scadenza del Retransmission Timer (timer di ritrasmissione),

  • il tempo di scadenza dell'Inactivity Timer (timer di inattività),

  • se l'ultima tile è trasportata in un Regular SCHC Fragment (frammento SCHC regolare) o in un All-1 SCHC Fragment (frammento SCHC All-1) (vedere Sezione 3.2.1.1),

  • se la penultima tile PUÒ essere di un L2 Word più piccola della dimensione della tile regolare (in questo caso, la dimensione della tile regolare DEVE essere almeno il doppio della dimensione del L2 Word),

  • utilizzo o meno del messaggio SCHC Compound ACK, e

  • utilizzo o meno del formato Compressed Bitmap (bitmap compressa) nell'ultima window del messaggio SCHC Compound ACK.

Per ogni coppia attiva di valori RuleID e DTag, il mittente DEVE mantenere:

  • un Attempts counter (contatore dei tentativi) e

  • un Retransmission Timer (timer di ritrasmissione).

Per ogni coppia attiva di valori RuleID e DTag, il ricevitore DEVE mantenere:

  • un Attempts counter (contatore dei tentativi) e

  • un Inactivity Timer (timer di inattività).