Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
I protocolli TCP/UDP prof.: Alfio Lombardo
2
Formato del messaggio TCP
3
Stream oriented protocol
Application process Application process write bytes read bytes TCP send buffer TCP receiver buffer segments
4
Il TCP interpreta lo stream dati come sequenza di ottetti
Lo stream dati è suddiviso in segmenti ... ... ... Header TCP (Port address) TCP data TCP data IP data Header IP (IP address) Header TCP (Port address) TCP data IP data Header IP (IP address) Header TCP (Port address) Header IP (IP address) IP data
5
Apertura di connessione: Problemi.
utilizzare identificatori delle connessioni sempre diversi (ad es. un numero sempre crescente)
6
Apertura di connessione: Problemi.
TCP 1 TCP 2 Seqnum =X SYN =1 Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Tempo ?
7
Instaurazione della connessione three way handshake
TCP 1 TCP 2 Seqnum =X SYN =1 Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Tempo Seqnum=X+1 Acknum =Y+1 ACK=1 SYN=1
8
Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Seqnum=X+1 Acknum =Y+1 ACK=1 RST=1
three way handshake: duplicato CR TCP 1 TCP 2 Seqnum =X SYN =1 Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Tempo ? Seqnum=X+1 Acknum =Y+1 ACK=1 RST=1
9
three way handshake: duplicato CR, Ack ? ? TCP 1 TCP 2 Tempo
Seqnum =X SYN =1 Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Tempo ? Seqnum=X+1 Acknum =z ACK=1 SYN=1 ? Seqnum=X+1 Acknum =Y ACK=1 RST=1
10
Instaurazione simultanea
TCP 1 TCP 2 Seqnum =X SYN =1 Seqnum =Y SYN =1 Tempo Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Seqnum=X Acknum =Y+1 ACK=1 SYN=1
11
Chiusura di connessione
TCP 1 TCP 2 L’applicazione 1 chiude la connessione Seqnum =X FIN =1 Il TCP 2 informa l’applicazione 2 della richiesta di disconnessione Tempo Acknum =X+1 ACK =1 L’applicazione 2 chiude la connessione Seqnum =Y Acknum=X+1 FIN =1 Acknum =Y+1 ACK =1
12
Chiusura di connessione: three way handshake
TCP 1 TCP 2 L’applicazione 1 chiude la connessione Seqnum =X FIN =1 Il TCP 2 informa l’applicazione 2 della richiesta di disconnessione e questa decide di chiudere la connessione Tempo Seqnum=Y Acknum =X+1 ACK=1 FIN =1 Acknum =Y+1 ACK =1
13
Chiusura di connessione: three way handshake con perdite
14
Chiusura simultanea TCP 1 TCP 2 L’applicazione 1 chiude la connessione
Seqnum =X FIN =1 L’applicazione 2 chiude la connessione Seqnum =Y FIN =1 Il TCP 2 informa l’applicazione 2 della richiesta di disconnessione Il TCP 1 informa l’applicazione 1 della richiesta di disconnessione Acknum =X+1 ACK =1 Tempo Acknum =Y+1 ACK =1
15
Ack e Ritrasmissioni Esercizio consigliato: TCP Viene attivato il
Seqnum=5 Data= Acknum=5000 Seqnum=105 Data= Acknum=5000 Seqnum= Data=100 Acknum=305 Viene attivato il timer Seqnum=305 Data=1000 Acknum=5100 Seqnum= Data=500 Acknum=305 Time-out !!! ritrasmissione Seqnum=305 Data= Acknum=5600 Seqnum= Data=100 Acknum=2305
16
Distribuzione dei tempi di round-trip
Probabilita’ Probabilita’ Tempo (ms) Tempo (ms) Livello di Data Link Livello di Trasporto
17
Algoritmo di Jacobson (1988)
RTT = Round Trip Time RTT = a RTT + (1 - a) M a =7/8 T = b RTT b = f(s)
18
Gestione di flusso Write 2K Write 3K Tx bloccato
Esercizio consigliato: Controllo di Flusso Write 2K Seq=0 Data=2K 2K 4K TCP TX TCP RX Ack = WIN =2048 4K Write 3K Seq=2048 Data=2K 1K Tx bloccato Ack = WIN =0 Prelievo 2K Ack = WIN =2048 2K Seq=4096 Data=1K 3K
19
algoritmo di Nagle (Silly windows)
quando un'applicazione genera dei dati addizionali che devono essere spediti su una connessione sulla quale sono stati già spediti dei dati in precedenza, e questi dati non sono ancora stati confermati, i dati addizionali verranno posti nel buffer di trasmissione, ma nessun segmento verrà spedito finché non vengono raccolti dati a sufficienza per trasmettere un segmento della massima dimensione permessa. Se, alla ricezione dell'ack dei dati trasmessi in precedenza, non è stato raccolto un numero sufficiente di bytes per spedire un pacchetto della massima dimensione, la trasmissione di tutto il contenuto del buffer avrà comunque luogo.
20
Parametri utilizzati per il controllo
di congestione Finestra permessa = minimo tra Fissata dal ricevitore Finestra d controllo di flusso Finestra di congestione Fissata dal trasmettitore
21
Rilevazione degli stati di congestione
Rumore su una linea di trasmissione Scadenza di un timeout = Congestione di un nodo
22
Numero di trasmissioni
60 50 40 30 20 10 timeout Finestra di congestione (Kbyte) timeout Numero di trasmissioni
23
Numero di trasmissioni
Slow Start 60 50 40 30 20 10 Congestion Avoidance (Additive increase) timeout soglia Finestra di congestione (Kbyte) Slow start Slow start Numero di trasmissioni
24
Numero di trasmissioni
Fast Recovery timeout 60 50 40 30 20 10 Additive increase timeout Multiplicative decrease Finestra di congestione (Kbyte) soglia Slow start Numero di trasmissioni
25
Servizi offerti da UDP Trasferimento dati appartenenti a diverse applicazioni residenti nello stesso host (multiplexing) Controllo d’errore (opzionale)
26
Processo Applicativo A Processo Applicativo B UDP A UDP B
1. Send (n ottetti) 3. Deliver (n ottetti) UDP SERVICE PROVIDER 2. DATA UDP A UDP B
27
UDP Header, data, Pseudo header 0 16 31 source port destination port
source port destination port length checksum data UDP è l’altro protocollo utilizzato nell’architettura Internet come protocollo di livello 4. Esso è un protocollo, alternativo a TCP, di tipo connectionless. UDP è un protocollo molto più semplice di TCP ed è utilizzato quando l’affidabilità di TCP non è richiesta. Non avendo funzioni di sicurezza, controllo di flusso o correzione degli errori, UDP svolge principalmente il ruolo di multiplatore/demultiplatore per la ricezione e la trasmissione di dati IP e dati delle applicazioni Aggiunge solo due funzionalità a quelle di IP: multiplexing delle informazioni tra le varie applicazioni, tramite il concetto di porta checksum (opzionale) per verificare l’integrità dei dati. UDP non prevede un controllo di flusso e, al contrario di TCP, non è in grado di adattarsi autonomamente a variazioni di traffico. Non prevede meccanismi di ritrasmissione in caso di errori, quindi eventuali meccanismi di ritrasmissione, se necessari, devono essere garantiti e gestiti direttamente dall’applicativo d’utente, o comunque da un protocollo di livello superiore. E’ presente un meccanismo di controllo dell’errore (fatto su tutto il pacchetto e non solo sull’intestazione), ma il protocollo non si preoccupa di correggere in alcun modo l’errore: semplicemente, scarta il pacchetto. Header, data, Pseudo header
28
Protocolli di Trasporto emergenti in INTERNET
Real-time Transport Protocol (RTP) Real-time Transport Control Protocol (RTCP)
29
APPLICAZIONE Livello di trasporto RTP RTCP UDP IP
30
Trasporto end-to-end dell’informazione
Macrolezione 7 Trasporto end-to-end dell’informazione
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.