Principi di trasferimento affidabile

Documenti analoghi
Livello trasporto. Servizi del livello trasporto

Livello di trasporto: meccanismi trasferimento dati affidabile

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Argomenti: ! Servizi dello strato di trasporto! multiplexing/demultiplexing! Servizio senza connessione: UDP

Prestazioni stop-and-wait. Prestazioni

Telecomunicazioni. Docente: Andrea Baiocchi. DIET - Stanza 107, 1 piano palazzina P. Piga Sede: Via Eudossiana 18

Homework assignment #2. Maurizio Bonuccelli. Dipartimento di Informatica Università di Pisa

Livello di trasporto: meccanismi trasferimento dati affidabile

Livello 4 (trasporto): cosa vedremo

RETI DI CALCOLATORI Home Assignment protocolli a finestra scorrevole. Prima parte

Capitolo 3 Livello di trasporto

Capitolo 3 Livello di trasporto

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Laurea in INFORMATICA

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto

Università degli Studi di Bergamo

Laurea in INFORMATICA

Livello di trasporto: meccanismi trasferimento dati affidabile (2), TCP

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

Esercitazione. Livello di Trasporto [Capitolo 3]

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Rete: classificazione in funzione della distanza fra due generici elementi

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

Internet (- working). Le basi.

ESERCIZIARIO. Risposte ai quesiti:

R. Cusani - F. Cuomo, Telecomunicazioni - Data link layer: controllo di flusso, Aprile 2010

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Implementazioni tipiche del protocollo TCP

Protocollo di Controllo della Linea Dati. Controllo della Linea Dati. Individuazione degli Errori. Servizi Offerti

Telematica di Base. IL Livello di Trasporto TCP

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

LIVELLO DATA LINK (DI LINEA)

Controllo di congestione

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581

Reti di Calcolatori in Tecnologia IP

Livello di trasporto: TCP

Parte II: Reti di calcolatori Lezione 12

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Collegamento dati per accesso ad Internet. Informatica Generale (CdL in E&C), A.A Informatica Generale (CdL in E&C), A.A.

Reti di Comunicazione e Internet

Un bit è trasmesso in 1/10^6 secondi =10^-6 sec Alla velocità di 2,5*10^8 m/s, un bit occupa 2,5*10^2 metri = 250 metri

Strato di Col o l l e l g e a g m a e m n e t n o

R. Cusani - F. Cuomo, Telecomunicazioni - Data link layer: Protocolli, Aprile 2010

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Reti di Calcolatori:

Esercizi: Telecomunicazioni parte Reti

Programmazione in Rete

Il livello Data-Link e i suoi protocolli

Reti e Protocolli rassegna (II)

Fondamenti di Internet e Reti

MODELLI ISO/OSI e TCP/IP

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

MODELLI ISO/OSI e TCP/IP

Livello di trasporto: TCP, controllo flusso, controllo congestione

1. Supponendo che il canale trasmissivo sia esente da errori, si determini il throughput di S1.

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Linee Commutate. Comunicazione telefonica:

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Nome e Cognome : Anno di corso Numero di matricola : Como, 7 maggio Quiz a risposta multipla

Modelli analitici per l analisi delle prestazioni del protocollo TCP

IL LIVELLO DI LINEA O LIVELLO DI DATA LINK 1. Servizi offerti 2. Struttura dei pacchetti 3 CAMPO DATI 3. Character stuffing 4.

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1

Allegato A al regolamento riguardante la portabilità dei numeri per i servizi di comunicazioni mobili e personali

Transmission Control Protocol: TCP

Livello di Trasporto

Le Reti Informatiche

7.4 Controllo di errore e ritrasmissione

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35.

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Vincenzo Eramo. Wireless LAN (WLAN) INFOCOM Dept. WLAN: lo standard IEEE

Elenco risposte ambigue del Test TFA A034 (Elettronica) del 23/07/2012

Soluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε);

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

Homework assignment TCP. Maurizio Bonuccelli. Dipartimento di Informatica Università di Pisa

RETI A COMMUTAZIONE DI PACCHETTO. Caratteristiche e principi di funzionamento

Strato trasporto. Per capir meglio la cosa analizziamo il seguente esempio:

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

UDP. User Datagram Protocol. UDP Connectionless

Livello di trasporto e TSAP

Le Reti Informatiche

Valutazione del TCP con NS2. Gaia Maselli

Controllo di flusso in TCP

Capitolo 3 Livello di trasporto

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete

Analisi dell avvio del TCP su canali satellitari a larga banda. Candidato Giovanni Verrecchia

PARTE 5 LIVELLO TRASPORTO. - Protocolli UDP e TCP. Parte 5. Modulo 1: Servizi del livello trasporto

Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa

Il livello di Trasporto del TCP/IP

Parte II: Reti di calcolatori Lezione 24

Politecnico di Milano Advanced Network Technologies Laboratory. Esercizi sul TCP

Regole e modalità di utilizzo della PEC e della PEO istituzionale

Reti di Telecomunicazioni 1

RETI DI CALCOLATORI Home Assignment protocollo TCP. Prima parte

Transcript:

Principi di trasferimento affidabile Il livello rete è inaffidabile: Presenza di errori Perdita e duplicazione di pacchetti Ordine dei pacchetti non garantito In caso di errori è necessario: Rilevare e/o identificare gli errori Correggere gli errori oppure notificare al mittente Chiedere la ritrasmissione Tutto questo considerando le risorse di rete e le risorse del destinatario Principi di trasferimento affidabile Servizio offerto Implementazione del servizio e caratteristiche del canale inaffidabile determinano la complessità del protocollo di trasferimento affidabile (rdt: reliable data transfer, udt: unreliable data transfer) 1

Trasferimento affidabile rdt_send(): chiamata dall alto (da app.). I dati vengono passati per la consegna al ricevente deliver_data(): chiamata da rdt per consegnare di dati al livello superiore send side receive side udt_send(): chiamata da rdt per trasferire pacchetti su un canale inaffidabile rdt_rcv(): chiamata quando i pacchetti arrivano su lato ricevente del canale Macchine a stati finiti (FSM) Stato iniziale Evento che causa la transizione di stato Azione conseguente stato 1 evento azione stato 2 o stato successivo è determinato dal prossimo evento 2

rdt1.0: trasferimento affidabile su canale affidabile Canale sottostante affidabile no errori sui bit no perdita di pacchetti FSM per sender e receiver: sender invia dati al canale sottostante receiver legge dati dal canale sottostante call from packet = make_pkt(data) udt_send(packet) call from rdt_rcv(packet) extract (packet,data) sender receiver rdt2.0: canale con errori sui bit Meccanismi: o riconoscimento errori (checksum) o feedback: messaggi di controllo (ACK,NAK) dal receiver al sender acknowledgements (ACK): il receiver conferma la ricezione corretta del pacchetto negative acknowledgements (NAK): il receiver conferma la ricezione del pacchetto con errori o Ritrasmissione del pacchetto al ricevimento di NAK 3

Protocolli ARQ Protocolli di tipo ARQ (Automatic Repeat request) basati su riscontri positivi (ACK), riscontri negativi (NAK) e ritrasmissione. Protocollo stop-and-wait: dopo l invio del pacchetto il sender deve ricevere ACK prima di poter inviare altri dati rdt2.0: FSM sndpkt = make_pkt(data, checksum) call from isack(rcvpkt) sender ACK or NAK isnak(rcvpkt) receiver corrupt(rcvpkt) udt_send(nak) call from notcorrupt(rcvpkt) udt_send(ack) 4

rdt2.0: problema Problema: ACK/NAK con errori Il sender non sa se il receiver ha inviato ACK o NACK Ritrasmette possibili duplicati Gestione dei duplicati: Il sender ritrasmette il pacchetto se ACK/NAK corrotti Il sender aggiunge un numero di sequenza ad ogni pacchetto Il receiver scarta i pacchetti duplicati rdt2.1: sender && isack(rcvpkt) isnak(rcvpkt) ) sndpkt = make_pkt(0, data, checksum) call 0 from ACK or NAK ACK or NAK call 1 from isnak(rcvpkt) ) && isack(rcvpkt) sndpkt = make_pkt(1, data, checksum) 5

rdt2.1: receiver (corrupt(rcvpkt) sndpkt = make_pkt(nak, chksum) not corrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ack, chksum) notcorrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ack, chksum) 0 from 1 from notcorrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ack, chksum) (corrupt(rcvpkt) sndpkt = make_pkt(nak, chksum) not corrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ack, chksum) Riscontri positivi e negativi Aggiungendo un campo di riscontro agli ACK, contenente il numero di sequenza del segmento cui l ACK si riferisce, il NAK può essere sostituito da un ACK duplicato, relativo all ultimo segmento ricevuto correttamente 6

rdt2.1 rdt2.2: sender && isack(rcvpkt,1) isack(rcvpkt,0) ) sndpkt = make_pkt(0, data, checksum) call 0 from ACK1 ACK0 call 1 from sndpkt = make_pkt(1, data, checksum) isack(rcvpkt,1) ) && isack(rcvpkt,0) rdt2.1 rdt2.2: receiver (corrupt(rcvpkt) has_seq1(rcvpkt)) notcorrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ack0, chksum) 0 from 1 from notcorrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ack1, chksum) (corrupt(rcvpkt) has_seq0(rcvpkt)) 7

rdt3.0: canale con errori e perdita di pacchetti Il canale sottostante può anche perdere pacchetti. È necessario meccanismo per rilevare la perdita di pacchetti (dati o ACK) Se il sender non riceve alcuna notifica dal receiver entro un tempo scelto opportunamente, il pacchetto (o l ACK) è andato perso e il sender ritrasmette Come scegliere tale tempo? Il pacchetto potrebbe arrivare con forte ritardo: problema dei duplicati, risolvibile con numeri di sequenza Ritrasmissione basata sul tempo Meccanismo di conto alla rovescia. Il sender deve: avviare il timer dopo la trasmissione di un pacchetto (nuovo o ritrasmesso) interrompere il timer al ricevimento di un ACK rispondere alle interruzioni del timer 8

rdt3.0 sender call 0 from && isack(rcvpkt,1) stop_timer timeout start_timer isack(rcvpkt,0) ) Wait for ACK1 sndpkt = make_pkt(0, data, checksum) start_timer Wait for ACK0 call 1 from sndpkt = make_pkt(1, data, checksum) start_timer isack(rcvpkt,1) ) timeout start_timer && isack(rcvpkt,0) stop_timer rdt3.0: receiver (corrupt(rcvpkt) has_seq1(rcvpkt)) notcorrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ack0, chksum) 0 from 1 from notcorrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ack1, chksum) (corrupt(rcvpkt) has_seq0(rcvpkt)) Uguale a rdt2.2 9