il livello trasporto: tecniche di trasmissione affidabile...

21
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico ([email protected] ) Giorgio Ventre ([email protected] ) Il livello trasporto: tecniche di trasmissione affidabile dei dati I lucidi presentati al corso sono uno strumento didattico che NON sostituisce i testi indicati nel programma del corso

Upload: others

Post on 06-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Corso di Laurea in Ingegneria Informatica

Corso di Reti di Calcolatori I

Roberto Canonico ([email protected] )Giorgio Ventre ([email protected] )

Il livello trasporto:

tecniche di trasmissione affidabile dei dati

I lucidi presentati al corso sono uno strumento did attico che NON sostituisce i testi indicati nel programma del corso

Page 2: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Nota di Copyright

Questo insieme di trasparenze è stato ideato e realizzato dai ricercatori del Gruppo di Ricerca COMICS del Dipartimento di Informatica e Sistemistica dell’Università di Napoli Federico II. Esse possono essere impiegate liberamente per fini didattici

Nota Nota didi copyright per le slide COMICScopyright per le slide COMICS

Esse possono essere impiegate liberamente per fini didattici esclusivamente senza fini di lucro, a meno di un esplicito consenso scritto degli Autori. Nell’uso dovranno essere esplicitamente riportati la fonte e gli Autori. Gli Autori non sono responsabili per eventuali imprecisioni contenute in tali trasparenze né per eventuali problemi, danni o malfunzionamenti derivanti dal loro uso o applicazione.

Autori: Simon Pietro Romano, Antonio Pescapè, Stefano Avallone, Marcello Esposito, Roberto Canonico, Giorgio Ventre

Page 3: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Realizzare una trasmissione affidabileRealizzare una trasmissione affidabile

• Se il livello rete è inaffidabile:• Presenza di errori• Perdita di pacchetti• Ordine dei pacchetti non garantito• Duplicazione di pacchetti

3

• Duplicazione di pacchetti• Inoltre bisogna tenere in considerazione:

• Le risorse del computer ricevente:– Controllo di flusso

• Le risorse della rete– Controllo di congestione

Page 4: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

• Soluzioni:• Rete che presenta errori di trasmissione:

• In questo caso il ricevente deve effettuare:

• Rilevamento degli errori e:

Realizzare una trasmissione affidabile Realizzare una trasmissione affidabile -- 2 2

1) Correzione degli errorioppure

4

• Rilevamento degli errori e:

• La prima soluzione introduce complicazioni, la seconda introduce possibili duplicazioni sulla rete che il ricevente non è in grado di interpretare

2) Notifica al mittenteRichiesta ritrasmissione

oppure

Page 5: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Realizzare una trasmissione affidabile Realizzare una trasmissione affidabile -- 3 3

data ACK = notifica

ACK

dataL’errore è rilevato

NAK = notificanegativa

5

sender receiver

L’errore è rilevato

NAK

Data(ritrasmissione)

Il ricevente non può saperese la richiesta di ritrasmissioneè arrivata al sender, quindinon sa interpretare se quelloappena ricevuto è il segmentoritrasmesso dal sender, o un segmento contenente nuovi dati

Canale con errori ma senza perdita di pacchetti

Page 6: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Realizzare una trasmissione affidabile Realizzare una trasmissione affidabile -- 4 4

• Per risolvere il problema dei duplicati che il ricevente non è in grado di interpretare, occorre inserire nell’header del segmento da inviare un’ ulteriore informazione:• numero di sequenza

6

• numero di sequenza

• Nel caso di protocolli che inviano un messaggio e quindi aspettano un riscontro prima di ritrasmettere un nuovo messaggio (stop & wait), è sufficiente un numero di sequenza su un bit (0,1). Vediamo un esempio:

Page 7: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Realizzare una trasmissione affidabile Realizzare una trasmissione affidabile -- 5 5

data (seq.=0)

ACK = notifica

ACK

data (seq.=1) L’errore è rilevato

NAK = notificanegativa

7

receiver

(seq.=1) L’errore è rilevatoAspetto ancora

data(seq.=1)NAK

Accetto data (seq.=1)

sender

data (seq.=1)

ACK

Page 8: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Un Un protocolloprotocollo senzasenza NAKNAK

• Stessa funzionalità del precedente, utilizzando soltanto gli ACK

• Al posto del NAK, il destinatario invia un ACK per l’ultimo pacchetto ricevuto correttamente• il destinatario deve includere esplicitamente il numero

di sequenza del pacchetto con l’ACK

• Un ACK duplicato presso il mittente determinala stessa azione del NAK: ritrasmettereil pacchetto corrente

Page 9: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Realizzare una trasmissione affidabile Realizzare una trasmissione affidabile -- 6 6

data (seq.=0)

ACK

Nel caso di canale che introduce perdita di pacchetti, è necessario introdurre un altro parametro: il tempo

In particolare un conto alla rovescia: timeout

Si può fare a meno dei NAK

timeou

9

receiver

data (seq.=0)

ACK

Il receiver si accorge di aver già ricevuto data (seq.=0), scarta tale segmento e invia nuovamente l’ACK al mittente

sender

Canale con errori e con perdita di pacchetti

Si può fare a meno dei NAKut

Problema: quanto dovrà essere grande il timeout?

Page 10: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Stop&WaitStop&Wait: : RicapitolandoRicapitolando (1/2)(1/2)

Mittente Ricevente Mittente Ricevente

(perdita)

a) Operazioni senza perdite

b) Perdita di pacchetto

Page 11: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Stop&WaitStop&Wait: : RicapitolandoRicapitolando (2/2)(2/2)

Mittente Ricevente Mittente Ricevente

(perdita) X

c) Perdita di ACK d) Timeout prematuro

… anche detto “protocollo ad alternanza di bit”

Page 12: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Aumentare l’efficienzaAumentare l’efficienza

Pipelining: il mittente invia pacchetti prima di ricevere il riscontro dei precedenti• Occorre aumentare l’intervallo dei num. sequenza• Aggiungere buffer nel sender e/o receiver

In alternativa al semplice Stop & Wait …

12

• Due alternative per il pipelining: go-Back-N, selective repeat

Page 13: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

PerformancePerformance

• Funziona, ma le performance…• Esempio: 1 Gbps link, 15 ms e-e prop. delay, 1KB packet:

Ttransmit = 8kb/pkt

10**9 b/sec= 8 microsec

L (packet length in bits)R (transmission rate, bps)

=10**9 b/secR (transmission rate, bps)

Page 14: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

FunzionamentoFunzionamento con stopcon stop --andand--waitwait

Primo bit del pacchetto trasmesso, t = 0Mittente Ricevente

RTT

Ultimo bit delpacchetto trasmesso, t = L / R

Arriva il primo bitArriva l’ultimo bit, invia ACK

Arriva ACK, invia il prossimo pacchetto, t = RTT + L / R

Umitt =

0,008

30,008= 0,00027 = 0,027 %

L / R

RTT + L / R=

Page 15: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Pipelining: Pipelining: aumentoaumento dell’utilizzodell’utilizzo

Mittente Ricevente

RTT

Ultimo bit del primopacchetto trasmesso, t = L / R

Arriva il primo bit del primo pacchetto

Arriva l’ultimo bit del primo pacchetto,invia ACKArriva l’ultimo bit del secondo pacchetto,invia ACK

Primo bit del primopacchetto trasmesso, t = 0

Arriva ACK, invia il prossimo pacchetto, t = RTT + L / R

invia ACK

Arriva l’ultimo bit del terzo pacchetto,invia ACK

Umitt =

0,024

30,008= 0,0008

3 * L / R

RTT + L / R=

Aumento dell’utilizzodi un fattore 3!

Page 16: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Go BackGo Back --NN

Sender:• Nell’header del segmento k-bit per il num. sequenza• Una finestra di max N pacchetti senza riscontro• ACK numerati

16

• ACK cumulativo: ricevere ACK(n) significa che tutti i pkts precedenti l’n-esimo sono stati ricevuti correttamente

• Un solo timer per il primo pacchetto trasmesso e non ancora riscontrato• timeout(n): ritrasmetti pkt n e tutti i pacchetti che seguono n• Il ricevente non deve accumulare i pacchetti arrivati: se il pacchetto

arrivato non è quello atteso, il pacchetto è scartato

Page 17: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Go BackGo Back --N in azioneN in azione

17

Page 18: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

RipetizioneRipetizione selettivaselettiva

• Il ricevente invia riscontri specifici per tutti i pacchetti ricevuti correttamente• buffer dei pacchetti, se necessario, per eventuali consegne in

sequenza al livello superiore

• Il mittente ritrasmette soltanto i pacchetti per i quali non ha ricevuto un ACKricevuto un ACK• timer del mittente per ogni pacchetto non riscontrato

• Finestra del mittente• N numeri di sequenza consecutivi• limita ancora i numeri di sequenza dei pacchetti inviati non

riscontrati

Page 19: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Selective RepeatSelective Repeat

19

Page 20: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

Selective Repeat in azioneSelective Repeat in azione

20

Page 21: Il livello trasporto: tecniche di trasmissione affidabile ...wpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1-2020-L17.pdf · Il livello trasporto: tecniche di trasmissione affidabile

RipetizioneRipetizione selettivaselettiva: dilemma: dilemma

Esempio: • Numeri di sequenza: 0, 1, 2, 3• Dimensione della finestra = 3

• Il ricevente non vede alcuna differenza fra i due scenari!differenza fra i due scenari!

• Passa erroneamente i dati duplicati come nuovi in (a)

D: Qual è la relazione fra lo spazio dei numeri di sequenza e la dimensione della finestra?