Post on 30-Dec-2015
description
Stream oriented protocol
Application
process
Application
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
po
Seqnum =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
po
L’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
po
L’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 simultaneaTCP 1 TCP 2
Tem
po
L’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
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
Parametri utilizzati per il controllo
di congestioneFinestra 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. DATA2. DATA
3. Deliver (n ottetti)
UDP A UDP B
UDP SERVICE PROVIDERUDP SERVICE PROVIDER
Protocolli di Trasporto emergenti in INTERNET
Real-time Transport Protocol (RTP)
Real-time Transport Control Protocol (RTCP)