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