Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Documenti analoghi
Livello di trasporto: meccanismi trasferimento dati affidabile

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

Transmission Control Protocol: TCP

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

Livello 4 (trasporto): cosa vedremo

Livello di trasporto: TCP, controllo flusso, controllo congestione

ESERCIZIARIO. Risposte ai quesiti:

Livello di trasporto: TCP

Telematica di Base. IL Livello di Trasporto TCP

Esercitazione. Livello di Trasporto [Capitolo 3]

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

Controllo di congestione

Capitolo 3 Livello di trasporto

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

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

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


Parte II: Reti di calcolatori Lezione 12

Reti di Calcolatori:

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

Prestazioni stop-and-wait. Prestazioni

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

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

Livello trasporto. Servizi del livello trasporto

MODELLI ISO/OSI e TCP/IP

Principi di trasferimento affidabile

Reti di Calcolatori in Tecnologia IP

MODELLI ISO/OSI e TCP/IP

Reti di Telecomunicazioni 1

Università degli Studi di Bergamo

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

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

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

I protocolli UDP e TCP

Rete: classificazione in funzione della distanza fra due generici elementi

RETI DI CALCOLATORI Home Assignment protocollo TCP. Prima parte

Il livello trasporto Protocolli TCP e UDP

Livello di trasporto: meccanismi trasferimento dati affidabile

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

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

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

Livello di Trasporto

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

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

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

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

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

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP

CW = 3MSS Base = Y Next = Y + 3MSS

Esercizi: Telecomunicazioni parte Reti

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

LIVELLO DATA LINK (DI LINEA)

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

Reti di Comunicazione e Internet

Gestione delle Reti di Telecomunicazioni

Internet (- working). Le basi.

Introduzione (parte III)

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

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

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

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

Implementazioni tipiche del protocollo TCP

Livello trasporto in Internet

TCP/IP: una breve introduzione

Livello trasporto in Internet

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

RETI DI CALCOLATORI. TCP e UDP: Il Livello di Trasporto Internet

TCP/IP: una breve introduzione

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

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Le Reti Informatiche

Controllo di Congestione in Reti Internet Docente: Vincenzo Eramo

UDP. User Datagram Protocol. UDP Connectionless

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

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

4 - Il livello di trasporto

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Livello Trasporto Protocolli TCP e UDP

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

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

Livello trasporto in Internet

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

Livello trasporto in Internet

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

Livello trasporto in Internet

Transmission Control Protocol

Corso di Sistemi di Misura Distribuiti. Ing. Domenico Capriglione

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Gestione della Connessione in TCP

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Livello di trasporto e TSAP

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

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

ERRATA CORRIGE. Pagina IV Traduzione: Renato Cortinovis (Capitoli 1, 2, 3, 8, 9, 10), Laura Stecco (Capitoli 4, 5, 6, 7)

Transcript:

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013 McGraw-Hill Education Italy srl - All material copyright 1996-2007 J.F Kurose and K.W. Ross, All Rights Reserved 2-1

Protocolli con pipeline Pipelining: il mittente ammette più pacchetti in transito, ancora da notificare m l intervallo dei numeri di sequenza deve essere incrementato m buffering dei pacchetti presso il mittente e/o ricevente Due forme generiche di protocolli con pipeline: Go-Back-N e ripetizione selettiva 3-2

Go back N Schema generale 3-3

Numeri di sequenza e riscontro I numeri di sequenza sono calcolati modulo 2 m, dove m è la dimensione del campo numero di sequenza in bit Ack indica il numero di sequenza del prossimo pacchetto atteso Ack cumulativo: tutti i pacchetti fino al numero di sequenza indicato nell ack sono stati ricevuti correttamente Esempio AckNo=7, i pacchetti fino al 6 sono stati ricevuti correttamente e il destinatario attende il 7 3-4

Finestra di invio La finestra di invio è un concetto astratto che definisce una porzione immaginaria di dimensione massima 2 m -1 con tre variabili, S f, S n, S size. La finestra di invio può scorrere uno o più posizioni quando viene ricevuto un riscontro privo di errori con ackno maggiore o uguale a S f e, minore di S n in aritmetica modulare 3-5

Esempio di scorrimento della finestra di invio 3-6

Finestra di ricezione La finestra di ricezione ha dimensione 1 Il destinatario è sempre in attesa di uno specifico pacchetto, qualsiasi pacchetto arrivato fuori sequenza (appartenente alle due regioni esterne alla finestra) viene scartato La finestra di ricezione può scorrere di una sola posizione: R n = (R n + 1) mod 2 m 3-7

Timer e rispedizione Un timer per il più vecchio pacchetto non riscontrato Allo scadere del timer, Go back N, ovvero vengono rispediti tutti i pacchetti in attesa di riscontro (il destinatario ha finestra di ricezione pari a 1 e non può bufferizzare i pacchetti fuori sequenza) Esempio: se il mittente ha inviato il pacchetto 6 (S n = 7) e scade il timer. Se S f =3 allora i pacchetti 3,4,5,6 non sono stati riscontrati e devono essere rispediti 3-8

FSM mittente 3-9

FSM destinatario 3-10

Go back N in azione (ack cumulativo) 3-11

Go back N in azione (perdita pacchetto dati) 3-12

Dimensione finestra di invio Qual è la relazione fra lo spazio dei numeri di sequenza e la dimensione della finestra? Se dimensione = 2 m : 3-13

Dimensione finestra di invio La Dimensione deve essere 2 m -1 3-14

Ripetizione selettiva r In GBN per un solo pacchetto perso si ritrasmettono tutti i successivi già inviati nel pipeline r Nella ripetizione selettiva, il mittente ritrasmette soltanto i pacchetti per i quali non ha ricevuto un ACK m timer del mittente per ogni pacchetto non riscontrato r Il ricevente invia riscontri specifici per tutti i pacchetti ricevuti correttamente (sia in ordine, sia fuori sequenza) m buffer dei pacchetti, se necessario, per eventuali consegne in sequenza al livello superiore r Finestra del mittente m N numeri di sequenza consecutivi m Limita ancora i numeri di sequenza dei pacchetti inviati non riscontrati 3-15

Schema generale 3-16

Finestra di invio e ricezione per selective repeat Finestra di invio e ricezione hanno la stessa dimensione 0 1 3 3-17

Timer e riscontri Selective repeat usa un timer per ogni pacchetto in attesa di riscontro Quando scade un timer si rinvia solo il relativo pacchetto Riscontro individuale e non cumulativo ma associato al singolo pacchetto: il numero di riscontro indica il numero di sequenza di un pacchetto ricevuto correttamente (non il prossimo atteso) 3-18

FSM mittente Rispedisci pacchetto relativo al timer e riavvia timer Rispedisci pacchetto relativo al timer e riavvia timer 3-19

FSM destinatario 3-20

Esempio 3-21

Dimensione delle finestre invio e ricezione Dimensione > 2 m-1 3-22

Dimensione delle finestre invio e ricezione 3-23

Riassunto dei meccanismi di trasferimento dati affidabile e loro utilizzo Meccanismo Checksum Acknowledgment Numero di sequenza Timeout Finestra scorrevole, pipeling Uso Per gestire errori nel canale Per gestire errori nel canale Ack con errori Perdita pacchetti Perdita pacchetti Maggior utilizzo della rete Gestione canale inaffidabile Miglioramento prestazioni r Meccanismi per realizzare un trasferimento dati affidabile in un contesto generale r TCP come e quali meccanismi usa per realizzare un trasferimento affidabile? 3-24

Protocolli bidirezionali: piggybacking Abbiamo mostrato meccanismi unidirezionali : pacchetti dati in una direzione e ack nella direzione opposta In realtà entrambi viaggiano nelle due direzioni Per migliorare l efficienza dei protocolli bidirezionali viene utilizzata la tecnica del piggybacking: quando un pacchetto trasporta dati da A a B, può trasportare anche i riscontri relativi ai pacchetti ricevuti da B e viceversa 3-25

TCP: Transmission Control Protocol 3-26

Livello di trasporto: TCP r Trasporto orientato alla connessione: TCP 3-27

Alcune porte well-known 3-28

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581 r r r r r TRANSMISSION CONTROL PROTOCOL punto-punto: m un mittente, un destinatario flusso di byte affidabile, in sequenza: m pipeline: nessun limite ai messaggi m il controllo di flusso e di congestione TCP definiscono la dimensione della finestra buffer d invio e di ricezione r r r full duplex: m flusso di dati bidirezionale nella stessa connessione m MSS: dimensione massima di segmento (maximum segment size) orientato alla connessione: m l handshaking (scambio di messaggi di controllo) inizializza lo stato del mittente e del destinatario prima di scambiare i dati flusso controllato: m il mittente non sovraccarica il destinatario 3-29

Segmenti TCP Il TCP riceve uno stream di byte dal processo (applicazione) mittente TCP utilizza il servizio di comunicazione tra host del livello di rete che invia pacchetti TCP deve quindi raggruppare un certo numero di byte in segmenti, aggiungere un intestazione e consegnare al livello di rete per la trasmissione 3-30

Struttura dei segmenti 3-31

Flag di controllo 3-32

Struttura dei segmenti TCP Numero del primo byte di dati contenuto nel segmento Numero di sequenza del prossimo byte che il destinatario si aspetta di ricevere 3-33

Connessione TCP Percorso virtuale tra il mittente e il destinatario, sopra IP che è privo di connessione 3 fasi: 1. Apertura della connessione 2. Trasferimento dei dati 3. Chiusura della connessione 3-34

Apertura della connessione: 3 way handshake Random ISN 3.35

Trasferimento dati 3.36

Chiusura della connessione Ciascuna delle due parti coinvolta nello scambio di dati può richiedere la chiusura della connessione, sebbene sia solitamente richiesta dal client, oppure timer nel server (se non si ricevono richieste entro un determinato tempo si chiude la connessione) Doppio scambio di messaggi FIN e ACK 3-37

Chiusura della connessione 3.38

Chiusura della connessione: half close 3.39

Numeri di sequenza e ACK di TCP Numeri di sequenza: m numero del primo byte del segmento nel flusso di byte ACK: m numero di sequenza del prossimo byte atteso dall altro lato m ACK cumulativo D: come gestisce il destinatario i segmenti fuori sequenza? m R: la specifica TCP non lo dice solitamente il destinatario mantiene i byte non ordinati L utente digita C Il messaggio precedente conteneva un solo byte L host riscontra la ricezione della C reinviata Una semplice applicazione Telnet Host A Host B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 piggybacked L host riscontra la ricezione di C e reinvia C tempo N.B. Il numero di sequenza iniziale è scelto a caso Per evitare che un segmento di una precedente connessione ancora presente in rete possa essere interpretato come valido per la nuova connessione 3-40