Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo...

17
Rete di calcolatori Modulo 2 - Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo di trasferimento dati affidabile

Transcript of Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo...

Page 1: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rete di calcolatori

Modulo 2 - Protocollo di rete TCP/IP

Unità didattica 5 – Tecniche di controllo

Ernesto Damiani

Università di Milano

Lezione 15 – Protocollo di trasferimento dati affidabile

Page 2: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Automi a stati finiti (1)

• Svilupperemo progressivamente i punti d’invio e di ricezione di un protocollo di trasferimento dati affidabile (rdt)

• Considereremo soltanto i trasferimenti dati unidirezionali

– ma le informazioni di controllo fluiranno in entrambe le direzioni!

• Utilizzeremo FSM (Finite State Machines, Automi a Stati Finiti ) per specificare il mittente e il ricevente

Page 3: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Automi a stati finiti (2)

Page 4: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Protocollo rdt 1.0: trasferimento affidabile su un canale affidabile (1)

• Canale sottostante perfettamente affidabile– Nessun errore nei bit

– Nessuna perdita di pacchetti (nessun riordine)

• FSM separato per il mittente e il ricevente– Il mittente invia i dati nel canale sottostante

– Il ricevente riceve i dati dal canale sottostante

Page 5: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Protocollo rdt 1.0: trasferimento affidabile su un canale affidabile (2)

Page 6: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: canale con errore nei bit (1)

• Il canale sottostante può confondere i bit nel pacchetto

– Somma di controllo per rilevare errori nei bit

• Il problema è come correggere gli errori– ACK (ACKnowledgment, conferma di ricezione): il ricevente

comunica espressamente al mittente che il pacchetto ricevuto è corretto

– NAK (Negative AcKnowledgment, conferma negativa): il ricevente comunica espressamente al mittente che il pacchetto contiene errori

Il mittente ritrasmette il pacchetto se riceve un NAK Questo lo rende un protocollo di ARQ (Automatic Repeat reQuest, Richiesta Automatica di Ripetizione)

Page 7: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: canale con errore nei bit (2)

• Servono nuovi meccanismi in rdt 2.0 (oltre a rdt 1.0):

– Rilevamento di errori

– Feedback del destinatario: messaggi di controllo (ACK, NAK) dal ricevente al mittente

Page 8: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: specifica FSM

Page 9: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: operazione senza errori

Page 10: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: scenario di errori (nessuna perdita!)

Page 11: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.0: ha un difetto fatale!

• Che cosa accade se i pacchetti ACK/NAK sono danneggiati?

– Il mittente non sa che cosa sia accaduto al destinatario!

– Non basta ritrasmettere: possibili duplicati

• Gestione dei duplicati:– Il mittente aggiunge un numero di sequenza a ogni

pacchetto

– Il mittente ritrasmette il pacchetto corrente se ACK/NAK è alterato

– Il ricevente scarta il pacchetto duplicato

Page 12: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.1 (1)

Mittente

• Numero di sequenza aggiunto al pacchetto– Sono sufficienti due numeri di sequenza (0 e 1). Perché?

• Deve controllare se ACK/NAK sono danneggiati– Il doppio di stati

Lo stato deve “ricordarsi” se il pacchetto “corrente” ha numero di sequenza 0

Page 13: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.1 (2)

Ricevente

• Deve controllare se il pacchetto ricevuto è duplicato– Lo stato indica se il numero di sequenza previsto è 0 o 1

• Il ricevente non può sapere se il suo ultimo ACK/NAK è stato ricevuto correttamente dal mittente

Page 14: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

RDT 2.1: Il mittente gestisce ACK/ NAK alterati

Page 15: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

RDT2.1: il ricevente gestisce ACK/NAK alterati

Page 16: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

RDT 2.2: un protocollo senza NAK

• Stessa funzionalità di RDT2.1, utilizzando soltanto ACK

• Invece di 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 determina la stessa azione del NAK: ritrasmettere il pacchetto corrente

Page 17: Rete di calcolatori Modulo 2 -Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Lezione 15 – Protocollo.

Rdt 2.2: frammenti del mittente e del ricevente

FINE