290 likes | 409 Views
I protocolli TCP/UDP prof.: Alfio Lombardo. Formato del messaggio TCP. Stream oriented protocol. Application process. Application process. read bytes. write bytes. TCP send buffer. TCP receiver buffer. segments. Header TCP (Port address). Header TCP (Port address).
E N D
I protocolli TCP/UDP prof.:Alfio Lombardo
Stream oriented protocol Application process Application process read bytes write bytes TCP send buffer TCP receiver buffer segments
Header TCP (Port address) Header TCP (Port address) TCP data TCP data Header IP (IP address) Header IP (IP address) IP data IP data • Il TCP interpreta lo stream dati come sequenza di ottetti • Lo stream dati è suddiviso in segmenti ... ... ... Header TCP (Port address) TCP data Header IP (IP address) IP data
Apertura di connessione: Problemi. utilizzare identificatori delle connessioni sempre diversi (ad es. un numero sempre crescente)
Apertura di connessione: Problemi. TCP 1 TCP 2 Seqnum =X SYN =1 Seqnum=Y Acknum =X+1 ACK=1 SYN=1 Tempo ?
Instaurazione della connessionethree 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
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
three way handshake: duplicato CR, Ack TCP 1 TCP 2 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+1 ACK=1 RST=1
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
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
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
Chiusura simultanea TCP 1 TCP 2 L’applicazione 1 chiude la connessione Seqnum =X FIN =1 L’applicazione 2 chiude la connessione Il TCP 2 informa l’applicazione 2 della richiesta di disconnessione Seqnum =Y FIN =1 Il TCP 1 informa l’applicazione 1 della richiesta di disconnessione Acknum =X+1 ACK =1 Tempo Acknum =Y+1 ACK =1
Esercizio consigliato: TCP Ack e Ritrasmissioni TCP 1 TCP 2 Seqnum=5 Data=100 Acknum=5000 Seqnum=105 Data=200 Acknum=5000 Seqnum=5000 Data=100 Acknum=305 Viene attivato il timer Seqnum=305 Data=1000 Acknum=5100 Seqnum=5100 Data=500 Acknum=305 Time-out !!! ritrasmissione Seqnum=305 Data=2000 Acknum=5600 Seqnum=5600 Data=100 Acknum=2305
T T1 T2 Distribuzione dei tempi di round-trip Probabilita’ Probabilita’ 0 10 20 30 0 10 20 30 40 50 Tempo (ms) Tempo (ms) Livello di Data Link Livello di Trasporto
Algoritmo di Jacobson (1988) RTT = Round Trip Time RTT = a RTT + (1 - a) M a =7/8 T = b RTT b = f(s)
Gestione di flusso Write 2K Seq=0 Data=2K 2K 2K 3K 1K Ack =2048 WIN =2048 Write 3K Seq=2048 Data=2K 4K Ack =4096 WIN =0 Prelievo 2K Tx bloccato Ack =4096 WIN =2048 Seq=4096 Data=1K Esercizio consigliato: Controllo di Flusso 4K TCP TX TCP RX
Finestra permessa = minimo tra Finestra di congestione Finestra d controllo di flusso Fissata dal ricevitore Fissata dal trasmettitore Fissata dal ricevitore Parametri utilizzati per il controllo di congestione
Rilevazione degli stati di congestione Rumore su una linea di trasmissione Scadenza di un timeout = Congestione di un nodo
timeout timeout timeout 60 50 40 30 20 10 0 Finestra di congestione (Kbyte) 1 3 5 7 9 11 13 15 17 19 21 23 25 Numero di trasmissioni
Congestion Avoidance (Additive increase) soglia timeout Slow start Slow start Slow Start 60 50 40 30 20 10 0 Finestra di congestione (Kbyte) 1 3 5 7 9 11 13 15 17 19 21 23 25 1 3 5 7 9 11 13 15 17 19 21 23 25 Numero di trasmissioni
Additive increase timeout timeout Multiplicative decrease Slow start Fast Recovery 60 50 40 30 20 10 0 Finestra di congestione (Kbyte) soglia 1 3 5 7 9 11 13 15 17 19 21 23 25 Numero di trasmissioni
Servizi offerti da UDP Trasferimento dati appartenenti a diverse applicazioni residenti nello stesso host (multiplexing) Controllo d’errore (opzionale)
1. Send (n ottetti) 3. Deliver (n ottetti) 2. DATA Processo Applicativo A Processo Applicativo B UDP SERVICE PROVIDER UDP A UDP B
UDP 0 16 31 source port destination port length checksum data • Header, • data, • Pseudo header
Protocolli di Trasporto emergenti in INTERNET Real-time Transport Protocol (RTP) Real-time Transport Control Protocol (RTCP)
RTP Livello di trasporto RTCP APPLICAZIONE UDP IP
Macrolezione 7 Trasporto end-to-end dell’informazione