Questo schema di Error Control cerca di aumentare l’efficienza di utilizzo della connessione a spese della dimensione dei buffers di ricezione e trasmissione che devono essere più capienti.
L’idea di base è semplice: l’ inefficienza dell’idle RQ è dovuta al fatto che quando P attende un ACK per il frame trasmesso non trasmette altri pacchetti.
Nel continuous RQ, il primario trasmette i-frames continuamente (“continuous” = continuo vs “idle” = inattivo, inoperoso).
Il primario P:
Spedisce continuamente I-Frames [vengono distinti dal numero progressivo di trasmissione N(S)].
Conserva ogni frame spedito in un buffer detto Retransmission List?Quando riceve l’ ACK[N], rimuove il frame N corrispondente dal buffer.
Per ciascun frame spedito viene attivato un timer di timeout. Allo scadere del timer, se il pacchetto è ancora nella lista di ritrasmissione viene rispedito a S.
?Memorizza in una variabile V(S) il numero del prossimo frame da trasmettere.
Il secondario S:
Quando riceve correttamente il frame N, manda a P un frame ACK[N] per confermare la ricezione. L’ACK contiene il numero N del frame ricevuto.
Mette il frame ricevuto in una lista di attesa: la receive list.
La variabile V(R) contiene il numero del prossimo frame da trasferire al livello applicativo superiore [che attende da P].
Se il frame N arriva ad S corrotto, viene scartato.
Quando S riceve il frame successivo, N+1, si rende conto che V(S) è diverso da N+1: manca un frame!
Ci sono due possibili strategie:
Selective Repeat: S attende che P, alla scadenza del timer, rimandi il frame N (implicit retransmission) oppure chiede a P di rimandare il frame N tramite un frame di controllo NAK (explicit request). Nel frattempo, accumula i frames corretti che arrivano nella receive list (devono essere trasferiti in ordine al livello superiore quindi bisogna aspettare il frame N).
Go Back N: S chiede a P di rimandare il frame N e tutti i successivi tramite un frame di controllo NAK chiamato reject. Nel frattempo, scarta tutti i frames corretti che riceve.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.