1 / 10

Complementi sul controllo d’errore (parte III)

Complementi sul controllo d’errore (parte III). Selective Repeat (richiesta esplicita). Come nello schema Idle RQ, per velocizzare la ritrasmissione di un pacchetto difettoso, il mittente M può inviare al ricevente R il pacchetto NAK di not-acknowledgment.

chase
Download Presentation

Complementi sul controllo d’errore (parte III)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Complementi sul controllo d’errore (parte III)

  2. Selective Repeat (richiesta esplicita) • Come nello schema Idle RQ, per velocizzare la ritrasmissione di un pacchetto difettoso, il mittente M può inviare al ricevente R il pacchetto NAK di not-acknowledgment. • Alternativamente, dopo un NAK, R può smettere di inviare ACK.

  3. Selective Repeat [richiesta esplicita] Frame N+1 corrotto Usando l’explicit request, ACK(N) notifica la ricezione di tutti i frame fino ad N compreso! ACK(N+4) X Dopo l’invio di un NAK, R smette di inviare ACK. Altrimenti un NAK corrotto porterebbe alla perdita del pacchetto!

  4. Go-Back-N (1) • Il metodo Selective Repeat è molto costoso in termini di buffer al ricevente. Viene utilizzato soprattutto: • quando l’ordine di ricezione dei pacchetti non è importante (per esempio, quando i pacchetti sono molto piccoli); • quando i pacchetti vengono riassemblati direttamente dal ricevente, prima di essere inviati al livello superiore (bit rate elevati, pacchetti piccoli). • Nei casi in cui i pacchetti possono essere più grandi, viene preferito lo schema Go-Back-N. • Go-Back-N è lo schema usato per TCP/IP

  5. Go-Back-N (2) Frame N+1 corrotto

  6. Go-Back-N (3) ACK N e N+1 corrotti ACK(N) notifica la ricezione di tutti i frame fino ad N compreso!

  7. Go-Back-N lato mittente • [V(S) = 0] • [RL] = retransmission list; • start: • switch(evento) { • case ‘arriva pacchetto dal livello superiore’ : • assegnagli il numero V(S); V(S)++; mettilo in [RL]; • trasmettilo; Timer pacchetto V(S) start; • case ‘ACK[N]’ : • if(corretto) • Elimina pacchetti <= N da [RL], Stop Timers; • else • Trascura ACK; • case ‘NAK[N]’ : • case ‘scade timer pacchetto’ : • for(i=1; i<=numero pacchetti in [RL], i++) • trasmetti pacchetto i in [RL]; Timer pacchetto start; • } • goto start;

  8. Go-Back-N lato destinatario • [V(R) = 0] • stato = "normale" • start: • switch(evento) { • case ‘pacchetto[N]’ : • if(corretto) • if(N == V(R)) • stato = "normale"; timer NAK stop; • manda ACK[V(R)]; • passa pacchetto al livello superiore, V(R)++; • else if( (N > V(R)) && (stato == "normale") ) • invia NAK[V(R)]; Timer NAK start; stato = "nak"; • else • manda ACK[V(R)], elimina pacchetto; • else • elimina pacchetto; • case ‘scade timer nak’ : • invia NAK[V(R)]; Timer NAK start; • } • goto start;

  9. Commenti • Con lo schema Go-Back-N, al ricevente è richiesta una finestra di ricezione di solo 1 frame. • Il mittente invece deve avere una retransmission list abbastanza grande da contenere tutti i pacchetti in attesa di un ACK dal secondario. • La lista deve quindi contenere almeno (Tix+2Tp)/Tix pacchetti.

  10. FINE Piggybacking • Nei tre schemi ARQ considerati abbiamo sempre supposto che la comunicazione fosse half-duplex. • In genere, le connessioni sono full-duplex e ciascuno dei due host si comporta sia da mittente che da ricevente. • In ciascuna delle due direzioni fluiscono quindi sia pacchetti che ACK e NAK. • Per ridurre il flusso di pacchetti si utilizza una tecnica detta piggyback (portare sulla schiena). • Tutti i pacchetti contengono un codice I(N) che indica il loro ordine nella sequenza di spedizione e un codice di ACK o NAK N(R) che indica l’ ordine per la direzione opposta.

More Related