Strato di trasporto
Francesco Musumeci
Dipartimento di Elettronica, Informazione e Bioingegneria
(DEIB) – Politecnico di Milano
• Introduzione
• Protocollo UDP
• Trasporto affidabile
– Protocolli di ritrasmissione
– Controllo di flusso a finestra mobile
• Protocollo TCP
• Protocollo TCP
– Generalità
– Gestione delle connessioni
– Controllo di flusso e trasporto dei dati
– Meccanismo di ritrasmissione
– Controllo di congestione
Sequence Number
32 bit
20 Acknowledgment Number
byte 32 bit
C E U A P R S F
HLEN RSV
W C R C S S Y I
Window
4 bit 4 bit R E G K H T N N 16 bit
Dati
lunghezza variabile
Sequence Number
32 bit
Acknowledgment Number
32 bit
C E U A P R S F
HLEN Reserved
W C R C S S Y I Window
4 bit 4 bit R E G K H T N N 16 bit
Options e Padding
lunghezza variabile
dati
32 bit
Liv. di Trasporto Header TCP TCP data Header TCP TCP data
MTU = Maximum
Transmission Unit = MSS
dimensione max del
payload della PDU di
livello 2
es. trama ethernet:
MTU = 1500 byte
MTU
Rwnd = W ⋅ 2 fs
max{ fs} = 14 ⇒ max{Rwnd } = 216 ⋅ 214 = 230 < max{SN } = 232
(anche se il campo è a 8 bit)
24 bit
• Protocollo TCP
– Generalità
– Gestione delle connessioni
– Controllo di flusso e trasporto dei dati
– Meccanismo di ritrasmissione
– Controllo di congestione
client server
application application
2. Active Open 1. Passive Open
TCP TCP
client server
application application
3. SYN, SN=67803
TCP TCP
client server
application application
4. SYN / ACK,
SN=5608, AN=67804
TCP TCP
client server
application application
5. ACK,
TCP SN=67804, AN=5609 TCP
client server
application application
6. Connection Open 7. Connection Open
TCP TCP
TCP TCP
3. SYN, SN=67803
i messaggi di
setup per 4. SYN / ACK,
convenzione SN=5608, AN=67804 Three-way
“consumano” un
5. ACK, handshaking
byte (v. AN al
passo 4 ed AN- SN=67804, AN=5609
SN al passo 5.)
client server
application application
1. FIN, SN=127504
TCP TCP
2. ACK, AN=127505
client server
application application
SN=8763
TCP TCP
SN=9001
client server
application application
3. FIN, SN=9024
TCP TCP
4. ACK, AN=9025
TCP
TCP TCP
TCP
1. FIN, SN=120893
4. ACK, AN=9026
• Protocollo TCP
– Generalità
– Gestione delle connessioni
– Controllo di flusso e trasporto dei dati
– Meccanismo di ritrasmissione
– Controllo di congestione
• Lato ricevitore:
– Buffer di ricezione: accumula i byte ricevuti e non ancora assorbiti
dall’applicazione
• Lato trasmettitore:
– Buffer di trasmissione: accumula i byte in attesa di essere trasmessi
(ovvero, in attesa che il ricevitore dia il “consenso” a trasmetterli)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A B
Finestra di ricezione
Finestra di Ultimo byte che
Byte non ancora letto Dimensione fissa del buffer di viene
trasmissione dall’applicazione ricostruzione al ricevitore memorizzato
anche se arriva
fuori sequenza
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Ultimo byte letto
dall’applicazione
A Ultimo byte w
Primo byte che
viene scartato
ricevuto e
riscontrato B se arriva fuori
sequenza
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Ultimo byte x
riscontrato
A SN=x-L+1
B
L = numero di byte trasmessi con
AN=y Rwnd=w l’ultimo segmento TCP
(es. in questo caso L=5 se è stato
inviato un solo segmento con i
byte da 4 a 8)
• Protocollo TCP
– Generalità
– Gestione delle connessioni
– Controllo di flusso e trasporto dei dati
– Meccanismo di ritrasmissione
– Controllo di congestione
1 + 3 ripetuti = NACK
Si noti che non esiste NACK esplicito
• Protocollo TCP
– Generalità
– Gestione delle connessioni
– Controllo di flusso e trasporto dei dati
– Meccanismo di ritrasmissione
– Controllo di congestione
• Il controllo di flusso
– dipende solo dalla capacità del ricevitore
– non è sufficiente ad evitare la congestione nella rete
• Nella rete INTERNET attuale non ci sono meccanismi sofisticati
di controllo di congestione a livello di rete (come ad esempio
meccanismi di controllo del traffico in ingresso)
• Il controllo di congestione è delegato al TCP!!!
– Essendo il TCP implementato solo negli host, il controllo di
congestione è di tipo end-to-end
∑Ri
i >C
TCP
TCP
W 2W 4W 8W
W 2W 4W 8W
CWND = 1 2 34 56 78
Hp: riscontri
di durata
trascurabile
Cwnd RTT
R= [byte/s]
RTT
• Ad un certo punto, la trasmissione può
diventare continua
• Slow start continua fino a che Cwnd non eguaglia Ssthresh e poi
parte la fase di Congestion avoidance
• Regola di incremento della Cwnd in Congestion Avoidance:
– la Cwnd viene incrementata di 1/Cwnd ad ogni ACK ricevuto
4.71+1/4.71=4.9 ≈ 5
4.49+1/(4.49)=4.71 6 7
……… ……..
17/4+1/(17/4)=4.49
CWND = 4 5+1/5 6+1/6
4+1/4=17/4=4.25
Hp: riscontri
di durata
trascurabile
Finestra di
trasmissione
y+w–1 Finestra di ricezione
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
x
A SN=x-L+1
B
AN=y Rwnd=w
FlightSize=x-y+1
• Come risultato:
– Cwnd è minore di Ssthresh si entra nella fase di Slow Start
o Il trasmettitore invia un segmento e la sua Cwnd è incrementata di 1 ad
ogni ACK
– Il segmento che viene inviato per primo è quello per cui era scaduto
il timeout (le ritrasmissioni hanno precedenza sulle nuove
trasmissioni)
• In seguito:
– TCP base (Tahoe): il trasmettitore ritrasmette tutti i segmenti
successivi già trasmessi (il ricevitore li ha eliminati scadranno i
timeout loro associati). Analogo a GBN
– TCP avanzato (Reno): il trasmettitore invia nuovi segmenti (il
ricevitore può risequenziare quelli già ricevuti invia ACK
cumulativo con “delayed ACK”). Analogo a SR
• Il valore a cui è posta la Ssthresh corrisponde ad una stima
(conservativa) della finestra ottimale che eviterebbe futuri eventi
di congestione
SSTHRESH
Segment Timeout
loss
Segment
loss Timeout
CWND
Time
– Ssthresh = 2000
= 3.7 MSS
(Cwnd>Ssthr)
Cong Avoid
5+5⋅1/5=6
• Tahoe
– Versione base: non implementa il fast retransmit (3ack) e non
accetta fuori sequenza
• Reno: fast retransmit/fast recovery + fuori-sequenza accettati +
dopo 3 ACK ripetuti:
FlightSize Cwnd = Sshthresh
Sshthresh = max 2 MSS , (Invece di Cwnd = 1)
2 Così si salta la fase di Slow start
• Westwood
• TIBET Versioni TCP ottimizzate per scenari wireless
• ........