SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
Dove ci troviamo?
• Abbiamo trattato il livello h2n:
• Abbiamo trattato il livello IP


                               DA FARE:

                            Applicazioni di rete
                          Protocolli applicativi
                            Supporti SO e esterni

                                 Trasporto

                                        IP

                                     Host-to-
                                     network




  PARTE 5


  LIVELLO TRASPORTO
  - Fondamenti teorici del
    trasporto affidabile




                                                    1
Livello 4 (transport)

• Il livello trasporto estende il servizio di consegna
  con impegno proprio del protocollo IP tra due
  host terminali ad un servizio di consegna a due
  processi applicativi in esecuzione sugli host

• In più, il protocollo di trasporto TCP
  (Transmission Control Protocol) offre un livello
  di trasporto affidabile e orientato alla
  connessione utilizzando un canale trasmissivo
  inaffidabile quale Internet

Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                           5.3




                       Applicazioni e trasporto




                  Assunzione
               delle applicazioni                                 Realtà implementativa

Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                           5.4




                                                                                                2
Problema del trasferimento affidabile

  • Il problema del trasferimento affidabile di dati
    su infrastruttura inaffidabile riguarda un
    contesto più generale del livello TCP
        – E’ uno dei problemi principali del networking!
        – Esiste anche a livello 2 e a livello 7 (applicazioni)

        – Il livello di inaffidabilità del canale di
          comunicazione determina la complessità del
          protocollo che deve gestire tale inaffidabilità



Protocolli e Architetture di Rete 2009/2010 – Livello trasporto             5.5




                      Ipotesi: protocolli diversi
                          per diversi canali
  1. Protocollo rdt1.0:    Trasferimento                          su   canale
     completamente affidabile

  2. Protocollo rdt2.x: Trasferimento su un canale con
     possibili errori sui bit
               2.0 - versione base
               2.1 - risolve i problemi di duplicazione
               2.2 - evita due tipi di ACK


  3. Protocollo rdt3.0: Trasferimento su un canale con
     possibili errori sui bit e perdita di pacchetti
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto             5.6




                                                                                  3
Parte 5




                                            Modulo 1:
     Protocolli su canale affidabile




                   Trasferimento affidabile su
                        canale affidabile
1) Trasferimento su canale completamente affidabile (prot. rdt1.0)
rdt_send(): chiamata da applicazione di                           deliver_data(): chiamata da
   rete, passa i dati da consegnare al                             rdt per consegnare i dati
              destinatario




  lato                                                                                       lato
mittente                                                                                 destinatario




   udt_send(): chiamata da rdt,                                   rdt_rcv(): chiamata all’arrivo del
     trasferisce i pacchetti sul                                      pacchetto al destinatario
       canale non affidabile
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                        5.8




                                                                                                             4
Formalismo: FSM
Uso del formalismo di macchine a stati finiti (FSM) per
modellare il comportamento del mittente e del destinatario

Stato: lo stato                                  evento che causa la transizione di stato
successivo è                                      azioni svolte per la transizione di stato
determinato in modo                     stato
unico dallo stato                                             evento                          stato
                                          1                                                     2
attuale e dall’evento                                          azioni
che si verifica


                Sviluppo incrementale delle funzioni svolte
                dal mittente e dal destinatario


Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                        5.9




                                                  Ipotesi

  • Trasferimento dei dati unidirezionale, anche se
    le informazioni per la gestione della
    comunicazione possono viaggiare in modo
    bidirezionale

  • Meccanismo STOP-AND-WAIT
       Il mittente invia un pacchetto e si mette in attesa
       della risposta prima di inviare un altro pacchetto


Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                       5.10




                                                                                                             5
Automi FSM per protocollo rdt1.0

• Canale affidabile: non ci sono errori di bit, non c’è perdita
  di pacchetti
• Va definito un automa per il mittente, uno per il destinatario
     • Il mittente invia dati sul canale sottostante
     • Il destinatario legge dati dal canale sottostante

                                                 EVENTO



                                                 AZIONI
                            mittente                              destinatario


Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                  5.11




   Parte 5



                                            Modulo 2:
               Protocolli su canale con
                possibili errori nei bit




                                                                                        6
Trasferimento affidabile su
             canale con errori a livello di bit
2) Trasferimento su un canale con errore nei bit
(protocollo rdt2.0)
– Il canale trasmissivo può modificare il valore di un bit
– Possibile modalità per recuperare l’errore
 - Acknowledgement (ACK): il destinatario comunica esplicitamente
 al mittente che il pacchetto ricevuto è OK
 - Acknowledgement negativo (NAK): il destinatario comunica
 esplicitamente al mittente che il pacchetto ricevuto ha un errore.
   Il mittente ritrasmette il pacchetto se riceve un NAK


Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.13




                                             Differenze
• Nuovi meccanismi in rdt2.0 rispetto a rdt1.0:

     – Rilevamento dell’errore  checksum

     – Feedback da parte del destinatario  messaggio
       di controllo (ACK o NAK) inviato dal destinatario al
       mittente




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.14




                                                                         7
Automa mittente per protocollo rdt2.0
     Meccanismo di stop-and-wait
         Il mittente invia un pacchetto
         e si mette in attesa della
         risposta (ACK o NAK)                                            rdt_send(data)
                                                                         - calcola checksum
                                                                         - crea pacchetto
                                                                         - invia pacchetto su canale
                                                                           inaffidabile

                                                                        rdt_rcv(pacchetto NAK)
                                                                        - ri-invia pacchetto su canale
                                                                          inaffidabile

                                                                  rdt_rcv(pacchetto ACK)
                                                                  - i dati sono arrivati correttamente
                                                                  quindi è possibile mettersi in attesa
FSM per mittente                                                  di altri dati da inviare
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                     5.15




                        Automa destinatario per
                           protocollo rdt2.0

                                                    FSM per destinatario




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                     5.16




                                                                                                           8
Protocollo rdt2.0 nel caso di
                    trasferimento corretto
                                                                  FSM per destinatario
             FSM per mittente




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                       5.17




               Protocollo rdt2.0 nel caso di
              trasferimento con errore di bit
                                                                   FSM per destinatario
                 FSM per mittente




Il mittente che ha inviato un pacchetto ed è
in attesa della risposta ACK o NAK del
destinatario, cicla in questo stato rinviando
il pacchetto finché non riceve un ACK
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                       5.18




                                                                                             9
Problema del protocollo rdt2.0
Cosa succede se ad essere danneggiati sono i messaggi di
ACK/NAK?
 A causa del danneggiamento, il mittente non sa se il
destinatario ha ricevuto o meno il pacchetto (ricordarsi che non
c’è perdita di pacchetti)

  Prima soluzione: ritrasmettere il pacchetto quando si ha un
  messaggio ACK o NAK difettoso  non funziona perché vi è la
  possibilità di duplicazione dei pacchetti. E il protocollo rdt2.0 non
  gestisce la duplicazione di pacchetti (ovvero il destinatario non sa
  se un pacchetto è nuovo o uno di quelli ritrasmessi)
  Seconda soluzione: inviare ACK/NAK in risposta a ACK/NAK del
  destinatario  non funziona perché se un ACK/NAK di risposta si
  danneggia, c’è rischio di ritrasmissioni continue
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto    5.19




        Protocollo rdt2.1: possibile
    miglioramento del protocollo rdt2.0

 SOLUZIONE Protocollo rdt2.1: Trasferimento su
 un canale con errore sui bit e gestione dei numeri
 di sequenza

   Nuovi meccanismi in rdt2.1: numeri di sequenza
         - il mittente aggiunge un numero di sequenza a ciascun
         pacchetto
         - il mittente ritrasmette il pacchetto se il messaggio di
         ACK/NAK è danneggiato (e quindi scartato)
         - il destinatario scarta (nel senso che non consegna al
         livello superiore) i pacchetti duplicati

Protocolli e Architetture di Rete 2009/2010 – Livello trasporto    5.20




                                                                          10
NOTA
  Nell’ipotesi di un sistema di comunicazione
  STOP-AND-WAIT
    è sufficiente un bit come numero di sequenza

  • Se il numero di sequenza è lo stesso  il mittente
    ha rispedito un pacchetto
  • Se il numero di sequenza è incrementato di 1
    (modulo 2)  il mittente ha spedito un nuovo
    pacchetto


Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.21




                  Automa FSM per protocollo
                       rdt2.1- mittente




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.22




                                                                         11
Automa FSM per protocollo
                      rdt2.1- destinatario
                                                                  pacchetto integro
                                                                  sequenza corretta




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                       5.23




                  Analisi del protocollo rdt2.1
• Mittente
      – Numero di sequenza aggiunto a ciascun pacchetto
      – Due sequenze di numeri (0,1) sono sufficienti nel caso di ACK/NAK
        per singolo pacchetto in caso di trasmissione STOP-AND-WAIT
      – Deve verificare se anche ACK/NAK è danneggiato
      – Serve il doppio di stati rispetto a rdt2.0 in quanto lo stato corrente
        deve “ricordarsi” se il pacchetto corrente ha un numero di sequenza
        pari a 0 o 1

• Destinatario
      – Deve controllare se il pacchetto ricevuto è duplicato (lo stato
        consente di verificare se il numero di sequenza del pacchetto è 0 o 1)
      – Il destinatario può non sapere se il suo ultimo ACK/NAK è stato
        ricevuto correttamente dal mittente

Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                       5.24




                                                                                             12
Protocollo rdt2.2: possibile
    miglioramento del protocollo rdt2.1
Nel protocollo rdt2.1, per ogni pacchetto ricevuto,
il destinatario deve inviare sempre un pacchetto di
ACK o NAK al mittente

Possibile miglioramento:
Invece di inviare NAK  inviare solo messaggi di ACK per
l’ultimo pacchetto ricevuto correttamente (il destinatario deve
includere il numero di sequenza del pacchetto a cui si riferisce
l’ACK)



Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.25




        Protocollo rdt2.2: possibile
    miglioramento del protocollo rdt2.1
DESTINATARIO
- Se il pacchetto i ricevuto è corretto (giusta sequenza,
pacchetto integro), inviare un ACK con etichetta i
- Se il pacchetto i ricevuto non è corretto e il pacchetto i-1 era
corretto, inviare un ACK con etichetta i-1

MITTENTE
Se il mittente riceve due ACK per il pacchetto i-1, può dedurre
che il destinatario non ha ricevuto correttamente il pacchetto i e
quindi deve agire come se fosse un (NAK, i)  ritrasmettere il
pacchetto i

Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.26




                                                                         13
Automa FSM per protocollo
                       rdt2.2- mittente




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.27




                  Automa FSM per protocollo
                      rdt2.2- destinatario




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.28




                                                                         14
Parti di automi FSM per rdt2.2
                                  rdt_send(data)
                                  sndpkt = make_pkt(0, data, checksum)
                                  udt_send(sndpkt)                  rdt_rcv(rcvpkt) &&
                                                                    ( corrupt(rcvpkt) ||
                              Wait for                  Wait for
                                                          ACK         isACK(rcvpkt,1) )
                             call 0 from
                               above                        0         udt_send(sndpkt)
                                           Parte di FSM
                                           del mittente                rdt_rcv(rcvpkt)
                                                                       && notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) &&                                                     && isACK(rcvpkt,0)
  (corrupt(rcvpkt) ||                                                          
   has_seq1(rcvpkt))     Wait for       Parte di FSM
                         0 from
udt_send(sndpkt)         below         del destinatario
                                    rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
                                     && has_seq1(rcvpkt)
                                        extract(rcvpkt,data)
                                        deliver_data(data)
                                        sndpkt = make_pkt(ACK1, chksum)
                                        udt_send(sndpkt)
  Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                              5.29




    Parte 5



                  Modulo 3:
      Protocolli su canale con errori a
      livello di bit e perdita pacchetti




                                                                                                      15
Nuova ipotesi
       Il canale di trasmissione può causare errori
       sui bit e perdita di pacchetti (sia dati, sia ACK)

  Come realizzare una trasmissione affidabile?
  • L’uso di checksum, numeri di sequenza dei pacchetti,
    ACK, ritrasmissioni sono utili, ma non sufficienti

  SOLUZIONE  COINVOLGERE IL “TEMPO”
  Dopo aver spedito il pacchetto i, il mittente attende
  (ACK, i) per un intervallo di tempo “ragionevole”;
  poi, se non ha ricevuto l’ACK, ritrasmette il pacchetto
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto             5.31




 Trasferimento affidabile su canale con
    errore sui bit e perdita pacchetti
3.0) Trasferimento su un canale con errore sui bit
   e perdita di pacchetti (protocollo rdt3.0)
Soluzione  il mittente attende l’ACK per un intervallo di
   tempo “ragionevole”, poi ritrasmette
NECESSITA’
1) Se il pacchetto (messaggio o ACK) è in ritardo (ma non
   perso), il pacchetto ritrasmesso sarà duplicato 
            Questo caso è già risolto dall’uso dei numeri di sequenza
            (per poter funzionare, anche il destinatario deve specificare
            il numero di sequenza del pacchetti per cui ha inviato ACK)

2) Intervallo di tempo ragionevole 
            Richiede l’uso di un countdown timer
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto             5.32




                                                                                   16
Automa FSM per protocollo
                       rdt3.0 - mittente




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                 5.33




               Sequenza operazioni in rdt3.0
                                                       tempo




   Es. operazioni senza perdite

                                                                  Es., operazioni con perdita
           Il meccanismo send-ack per singolo pacchetto è
           molto semplice ed affidabile, ma INEFFICIENTE
Protocolli e Architetture di Rete 2009/2010 – Livello trasporto                                 5.34




                                                                                                       17
Prossimo obiettivo


       Si sfruttano questi risultati teorici per
       analizzare quali meccanismi utilizza il
       protocollo TCP per realizzare una
       “comunicazione affidabile” e “orientata alla
       connessione” su di un “canale inaffidabile”




Protocolli e Architetture di Rete 2009/2010 – Livello trasporto   5.35




                                                                         18

Contenu connexe

Tendances

5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2Majong DevJfu
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranettingacapone
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocolss_Morpheus
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzioneacapone
 
Datalink lan equipment
Datalink lan equipmentDatalink lan equipment
Datalink lan equipments_Morpheus
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprisefestival ICT 2016
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasportoacapone
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Luca Cicchelli
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wirelessSalvatore La Tona
 
4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color4 Livello Ip Parte2 Color
4 Livello Ip Parte2 ColorMajong DevJfu
 
DXFP Routing Protocol
DXFP Routing ProtocolDXFP Routing Protocol
DXFP Routing Protocolgiova841
 
Confronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPConfronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPRiccardoReani
 
Livello Fisico
Livello FisicoLivello Fisico
Livello Fisicos_Morpheus
 

Tendances (20)

5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2
 
Datalink wlan
Datalink wlanDatalink wlan
Datalink wlan
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranetting
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocols
 
ISO-OSI
ISO-OSIISO-OSI
ISO-OSI
 
2 Suite Standard
2 Suite Standard2 Suite Standard
2 Suite Standard
 
6 Dns Parte1
6 Dns Parte16 Dns Parte1
6 Dns Parte1
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzione
 
Datalink lan equipment
Datalink lan equipmentDatalink lan equipment
Datalink lan equipment
 
DataLink LAN
DataLink LANDataLink LAN
DataLink LAN
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprise
 
Introduzione
IntroduzioneIntroduzione
Introduzione
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasporto
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wireless
 
4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color
 
DXFP Routing Protocol
DXFP Routing ProtocolDXFP Routing Protocol
DXFP Routing Protocol
 
Confronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPConfronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IP
 
Livello Fisico
Livello FisicoLivello Fisico
Livello Fisico
 

En vedette

4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 ColorMajong DevJfu
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Majong DevJfu
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11Majong DevJfu
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Majong DevJfu
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendMajong DevJfu
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d aziendaMajong DevJfu
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Majong DevJfu
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Majong DevJfu
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaMajong DevJfu
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneMajong DevJfu
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Majong DevJfu
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiMajong DevJfu
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: FunzioniMajong DevJfu
 

En vedette (20)

4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color4 Livello Ip Parte1 Color
4 Livello Ip Parte1 Color
 
Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03Sistemi Operativi: Meccanismi - Lezione 03
Sistemi Operativi: Meccanismi - Lezione 03
 
esercizio sigda n 11
esercizio sigda n 11esercizio sigda n 11
esercizio sigda n 11
 
8 Www2009 Parte1
8 Www2009 Parte18 Www2009 Parte1
8 Www2009 Parte1
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04Sistemi Operativi: Struttura - Lezione 04
Sistemi Operativi: Struttura - Lezione 04
 
Linguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: FrontendLinguaggi Formali e Compilazione: Frontend
Linguaggi Formali e Compilazione: Frontend
 
2 sistemi informativi d azienda
2 sistemi informativi d azienda2 sistemi informativi d azienda
2 sistemi informativi d azienda
 
E6 Concorre
E6 ConcorreE6 Concorre
E6 Concorre
 
Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86Architettura dei Calcolatori Subroutines80x86
Architettura dei Calcolatori Subroutines80x86
 
6 Dns Parte2
6 Dns Parte26 Dns Parte2
6 Dns Parte2
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
esercizio sigda n 8
esercizio sigda n 8esercizio sigda n 8
esercizio sigda n 8
 
Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07Sistemi Operativi: Processi - Lezione 07
Sistemi Operativi: Processi - Lezione 07
 
Calcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di MacchinaCalcolo Numerico - 2 - Numeri Di Macchina
Calcolo Numerico - 2 - Numeri Di Macchina
 
Introduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazioneIntroduzione a Linguaggi formali e compilazione
Introduzione a Linguaggi formali e compilazione
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
 
Linguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: AutomiLinguaggi Formali e Compilazione: Automi
Linguaggi Formali e Compilazione: Automi
 
05 - Programmazione: Funzioni
05 - Programmazione: Funzioni05 - Programmazione: Funzioni
05 - Programmazione: Funzioni
 
Py a5 python-text
Py a5 python-textPy a5 python-text
Py a5 python-text
 

Similaire à 5 Trasporto Affidabile Teoria

Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 
5 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte35 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte3Majong DevJfu
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoStefano Scarpellini
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)Giuseppe Vizzari
 
Il protocollo can e l'integrazione con vnt™
Il protocollo can e l'integrazione con vnt™Il protocollo can e l'integrazione con vnt™
Il protocollo can e l'integrazione con vnt™Antonio Mangiardi
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeuticiacapone
 
Qualità del servizio con DiffServ e MPLS
Qualità del servizio con DiffServ e MPLSQualità del servizio con DiffServ e MPLS
Qualità del servizio con DiffServ e MPLSClaudio Bortone
 
Reti di computer e protocolli
Reti di computer e protocolliReti di computer e protocolli
Reti di computer e protocollifilibertodicarlo
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18Giuseppe Vizzari
 
Sistemi Middleware - Communications
Sistemi Middleware - CommunicationsSistemi Middleware - Communications
Sistemi Middleware - CommunicationsFederico Barocci
 
2. Introduzione a internet (I)
2. Introduzione a internet (I)2. Introduzione a internet (I)
2. Introduzione a internet (I)Roberto Polillo
 
SignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaSignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaAndrea Tosato
 
Presentazione Wap Vs I Mode
Presentazione Wap Vs I ModePresentazione Wap Vs I Mode
Presentazione Wap Vs I Modemasso87
 
Composizione dinamica di funzioni di rete virtuali in ambiente cloud
Composizione dinamica di funzioni di rete virtuali in ambiente cloudComposizione dinamica di funzioni di rete virtuali in ambiente cloud
Composizione dinamica di funzioni di rete virtuali in ambiente cloudFrancesco Foresta
 

Similaire à 5 Trasporto Affidabile Teoria (20)

Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 
5 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte35 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte3
 
QoS a Livello Network
QoS a Livello NetworkQoS a Livello Network
QoS a Livello Network
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasporto
 
IsoOsi
IsoOsiIsoOsi
IsoOsi
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)
 
Il protocollo can e l'integrazione con vnt™
Il protocollo can e l'integrazione con vnt™Il protocollo can e l'integrazione con vnt™
Il protocollo can e l'integrazione con vnt™
 
Network essentials
Network essentialsNetwork essentials
Network essentials
 
Reti
RetiReti
Reti
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeutici
 
Gestione Reti
Gestione RetiGestione Reti
Gestione Reti
 
Qualità del servizio con DiffServ e MPLS
Qualità del servizio con DiffServ e MPLSQualità del servizio con DiffServ e MPLS
Qualità del servizio con DiffServ e MPLS
 
Reti di computer e protocolli
Reti di computer e protocolliReti di computer e protocolli
Reti di computer e protocolli
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18
 
Sistemi Middleware - Communications
Sistemi Middleware - CommunicationsSistemi Middleware - Communications
Sistemi Middleware - Communications
 
2. Introduzione a internet (I)
2. Introduzione a internet (I)2. Introduzione a internet (I)
2. Introduzione a internet (I)
 
SignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancavaSignalR, il WebSocket che tanto ci mancava
SignalR, il WebSocket che tanto ci mancava
 
Presentazione Wap Vs I Mode
Presentazione Wap Vs I ModePresentazione Wap Vs I Mode
Presentazione Wap Vs I Mode
 
Composizione dinamica di funzioni di rete virtuali in ambiente cloud
Composizione dinamica di funzioni di rete virtuali in ambiente cloudComposizione dinamica di funzioni di rete virtuali in ambiente cloud
Composizione dinamica di funzioni di rete virtuali in ambiente cloud
 

Plus de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Plus de Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

5 Trasporto Affidabile Teoria

  • 1. Dove ci troviamo? • Abbiamo trattato il livello h2n: • Abbiamo trattato il livello IP DA FARE: Applicazioni di rete Protocolli applicativi Supporti SO e esterni Trasporto IP Host-to- network PARTE 5 LIVELLO TRASPORTO - Fondamenti teorici del trasporto affidabile 1
  • 2. Livello 4 (transport) • Il livello trasporto estende il servizio di consegna con impegno proprio del protocollo IP tra due host terminali ad un servizio di consegna a due processi applicativi in esecuzione sugli host • In più, il protocollo di trasporto TCP (Transmission Control Protocol) offre un livello di trasporto affidabile e orientato alla connessione utilizzando un canale trasmissivo inaffidabile quale Internet Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.3 Applicazioni e trasporto Assunzione delle applicazioni Realtà implementativa Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.4 2
  • 3. Problema del trasferimento affidabile • Il problema del trasferimento affidabile di dati su infrastruttura inaffidabile riguarda un contesto più generale del livello TCP – E’ uno dei problemi principali del networking! – Esiste anche a livello 2 e a livello 7 (applicazioni) – Il livello di inaffidabilità del canale di comunicazione determina la complessità del protocollo che deve gestire tale inaffidabilità Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.5 Ipotesi: protocolli diversi per diversi canali 1. Protocollo rdt1.0: Trasferimento su canale completamente affidabile 2. Protocollo rdt2.x: Trasferimento su un canale con possibili errori sui bit 2.0 - versione base 2.1 - risolve i problemi di duplicazione 2.2 - evita due tipi di ACK 3. Protocollo rdt3.0: Trasferimento su un canale con possibili errori sui bit e perdita di pacchetti Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.6 3
  • 4. Parte 5 Modulo 1: Protocolli su canale affidabile Trasferimento affidabile su canale affidabile 1) Trasferimento su canale completamente affidabile (prot. rdt1.0) rdt_send(): chiamata da applicazione di deliver_data(): chiamata da rete, passa i dati da consegnare al rdt per consegnare i dati destinatario lato lato mittente destinatario udt_send(): chiamata da rdt, rdt_rcv(): chiamata all’arrivo del trasferisce i pacchetti sul pacchetto al destinatario canale non affidabile Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.8 4
  • 5. Formalismo: FSM Uso del formalismo di macchine a stati finiti (FSM) per modellare il comportamento del mittente e del destinatario Stato: lo stato evento che causa la transizione di stato successivo è azioni svolte per la transizione di stato determinato in modo stato unico dallo stato evento stato 1 2 attuale e dall’evento azioni che si verifica Sviluppo incrementale delle funzioni svolte dal mittente e dal destinatario Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.9 Ipotesi • Trasferimento dei dati unidirezionale, anche se le informazioni per la gestione della comunicazione possono viaggiare in modo bidirezionale • Meccanismo STOP-AND-WAIT Il mittente invia un pacchetto e si mette in attesa della risposta prima di inviare un altro pacchetto Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.10 5
  • 6. Automi FSM per protocollo rdt1.0 • Canale affidabile: non ci sono errori di bit, non c’è perdita di pacchetti • Va definito un automa per il mittente, uno per il destinatario • Il mittente invia dati sul canale sottostante • Il destinatario legge dati dal canale sottostante EVENTO AZIONI mittente destinatario Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.11 Parte 5 Modulo 2: Protocolli su canale con possibili errori nei bit 6
  • 7. Trasferimento affidabile su canale con errori a livello di bit 2) Trasferimento su un canale con errore nei bit (protocollo rdt2.0) – Il canale trasmissivo può modificare il valore di un bit – Possibile modalità per recuperare l’errore - Acknowledgement (ACK): il destinatario comunica esplicitamente al mittente che il pacchetto ricevuto è OK - Acknowledgement negativo (NAK): il destinatario comunica esplicitamente al mittente che il pacchetto ricevuto ha un errore. Il mittente ritrasmette il pacchetto se riceve un NAK Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.13 Differenze • Nuovi meccanismi in rdt2.0 rispetto a rdt1.0: – Rilevamento dell’errore  checksum – Feedback da parte del destinatario  messaggio di controllo (ACK o NAK) inviato dal destinatario al mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.14 7
  • 8. Automa mittente per protocollo rdt2.0 Meccanismo di stop-and-wait Il mittente invia un pacchetto e si mette in attesa della risposta (ACK o NAK) rdt_send(data) - calcola checksum - crea pacchetto - invia pacchetto su canale inaffidabile rdt_rcv(pacchetto NAK) - ri-invia pacchetto su canale inaffidabile rdt_rcv(pacchetto ACK) - i dati sono arrivati correttamente quindi è possibile mettersi in attesa FSM per mittente di altri dati da inviare Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.15 Automa destinatario per protocollo rdt2.0 FSM per destinatario Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.16 8
  • 9. Protocollo rdt2.0 nel caso di trasferimento corretto FSM per destinatario FSM per mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.17 Protocollo rdt2.0 nel caso di trasferimento con errore di bit FSM per destinatario FSM per mittente Il mittente che ha inviato un pacchetto ed è in attesa della risposta ACK o NAK del destinatario, cicla in questo stato rinviando il pacchetto finché non riceve un ACK Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.18 9
  • 10. Problema del protocollo rdt2.0 Cosa succede se ad essere danneggiati sono i messaggi di ACK/NAK?  A causa del danneggiamento, il mittente non sa se il destinatario ha ricevuto o meno il pacchetto (ricordarsi che non c’è perdita di pacchetti) Prima soluzione: ritrasmettere il pacchetto quando si ha un messaggio ACK o NAK difettoso  non funziona perché vi è la possibilità di duplicazione dei pacchetti. E il protocollo rdt2.0 non gestisce la duplicazione di pacchetti (ovvero il destinatario non sa se un pacchetto è nuovo o uno di quelli ritrasmessi) Seconda soluzione: inviare ACK/NAK in risposta a ACK/NAK del destinatario  non funziona perché se un ACK/NAK di risposta si danneggia, c’è rischio di ritrasmissioni continue Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.19 Protocollo rdt2.1: possibile miglioramento del protocollo rdt2.0 SOLUZIONE Protocollo rdt2.1: Trasferimento su un canale con errore sui bit e gestione dei numeri di sequenza Nuovi meccanismi in rdt2.1: numeri di sequenza - il mittente aggiunge un numero di sequenza a ciascun pacchetto - il mittente ritrasmette il pacchetto se il messaggio di ACK/NAK è danneggiato (e quindi scartato) - il destinatario scarta (nel senso che non consegna al livello superiore) i pacchetti duplicati Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.20 10
  • 11. NOTA Nell’ipotesi di un sistema di comunicazione STOP-AND-WAIT  è sufficiente un bit come numero di sequenza • Se il numero di sequenza è lo stesso  il mittente ha rispedito un pacchetto • Se il numero di sequenza è incrementato di 1 (modulo 2)  il mittente ha spedito un nuovo pacchetto Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.21 Automa FSM per protocollo rdt2.1- mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.22 11
  • 12. Automa FSM per protocollo rdt2.1- destinatario pacchetto integro sequenza corretta Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.23 Analisi del protocollo rdt2.1 • Mittente – Numero di sequenza aggiunto a ciascun pacchetto – Due sequenze di numeri (0,1) sono sufficienti nel caso di ACK/NAK per singolo pacchetto in caso di trasmissione STOP-AND-WAIT – Deve verificare se anche ACK/NAK è danneggiato – Serve il doppio di stati rispetto a rdt2.0 in quanto lo stato corrente deve “ricordarsi” se il pacchetto corrente ha un numero di sequenza pari a 0 o 1 • Destinatario – Deve controllare se il pacchetto ricevuto è duplicato (lo stato consente di verificare se il numero di sequenza del pacchetto è 0 o 1) – Il destinatario può non sapere se il suo ultimo ACK/NAK è stato ricevuto correttamente dal mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.24 12
  • 13. Protocollo rdt2.2: possibile miglioramento del protocollo rdt2.1 Nel protocollo rdt2.1, per ogni pacchetto ricevuto, il destinatario deve inviare sempre un pacchetto di ACK o NAK al mittente Possibile miglioramento: Invece di inviare NAK  inviare solo messaggi di ACK per l’ultimo pacchetto ricevuto correttamente (il destinatario deve includere il numero di sequenza del pacchetto a cui si riferisce l’ACK) Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.25 Protocollo rdt2.2: possibile miglioramento del protocollo rdt2.1 DESTINATARIO - Se il pacchetto i ricevuto è corretto (giusta sequenza, pacchetto integro), inviare un ACK con etichetta i - Se il pacchetto i ricevuto non è corretto e il pacchetto i-1 era corretto, inviare un ACK con etichetta i-1 MITTENTE Se il mittente riceve due ACK per il pacchetto i-1, può dedurre che il destinatario non ha ricevuto correttamente il pacchetto i e quindi deve agire come se fosse un (NAK, i)  ritrasmettere il pacchetto i Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.26 13
  • 14. Automa FSM per protocollo rdt2.2- mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.27 Automa FSM per protocollo rdt2.2- destinatario Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.28 14
  • 15. Parti di automi FSM per rdt2.2 rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || Wait for Wait for ACK isACK(rcvpkt,1) ) call 0 from above 0 udt_send(sndpkt) Parte di FSM del mittente rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) rdt_rcv(rcvpkt) && && isACK(rcvpkt,0) (corrupt(rcvpkt) ||  has_seq1(rcvpkt)) Wait for Parte di FSM 0 from udt_send(sndpkt) below del destinatario rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK1, chksum) udt_send(sndpkt) Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.29 Parte 5 Modulo 3: Protocolli su canale con errori a livello di bit e perdita pacchetti 15
  • 16. Nuova ipotesi Il canale di trasmissione può causare errori sui bit e perdita di pacchetti (sia dati, sia ACK) Come realizzare una trasmissione affidabile? • L’uso di checksum, numeri di sequenza dei pacchetti, ACK, ritrasmissioni sono utili, ma non sufficienti SOLUZIONE  COINVOLGERE IL “TEMPO” Dopo aver spedito il pacchetto i, il mittente attende (ACK, i) per un intervallo di tempo “ragionevole”; poi, se non ha ricevuto l’ACK, ritrasmette il pacchetto Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.31 Trasferimento affidabile su canale con errore sui bit e perdita pacchetti 3.0) Trasferimento su un canale con errore sui bit e perdita di pacchetti (protocollo rdt3.0) Soluzione  il mittente attende l’ACK per un intervallo di tempo “ragionevole”, poi ritrasmette NECESSITA’ 1) Se il pacchetto (messaggio o ACK) è in ritardo (ma non perso), il pacchetto ritrasmesso sarà duplicato  Questo caso è già risolto dall’uso dei numeri di sequenza (per poter funzionare, anche il destinatario deve specificare il numero di sequenza del pacchetti per cui ha inviato ACK) 2) Intervallo di tempo ragionevole  Richiede l’uso di un countdown timer Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.32 16
  • 17. Automa FSM per protocollo rdt3.0 - mittente Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.33 Sequenza operazioni in rdt3.0 tempo Es. operazioni senza perdite Es., operazioni con perdita Il meccanismo send-ack per singolo pacchetto è molto semplice ed affidabile, ma INEFFICIENTE Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.34 17
  • 18. Prossimo obiettivo Si sfruttano questi risultati teorici per analizzare quali meccanismi utilizza il protocollo TCP per realizzare una “comunicazione affidabile” e “orientata alla connessione” su di un “canale inaffidabile” Protocolli e Architetture di Rete 2009/2010 – Livello trasporto 5.35 18