i protocolli tcp/udp prof.: alfio lombardo
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 PresentationTRANSCRIPT
![Page 1: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/1.jpg)
I protocolli TCP/UDPprof.: Alfio Lombardo
![Page 2: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/2.jpg)
Formato del messaggio TCP
![Page 3: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/3.jpg)
Stream oriented protocol
Application
processApplication
process
TCP
send buffer
TCP
receiver
buffer
write
bytes
segments
read
bytes
![Page 4: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/4.jpg)
• 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)
... ......
![Page 5: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/5.jpg)
utilizzare identificatori delle connessioni sempre diversi (ad es. un numero sempre crescente)
Apertura di connessione:Problemi.
![Page 6: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/6.jpg)
TCP 1 TCP 2
Seqnum=Y Acknum =X+1 ACK=1 SYN=1
Tem
po
Seqnum =X SYN =1
?
Apertura di connessione: Problemi.
![Page 7: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/7.jpg)
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
![Page 8: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/8.jpg)
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
?
![Page 9: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/9.jpg)
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
?
?
![Page 10: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/10.jpg)
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
![Page 11: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/11.jpg)
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
![Page 12: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/12.jpg)
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
![Page 13: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/13.jpg)
Chiusura di connessione: three way handshake con perdite
![Page 14: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/14.jpg)
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
![Page 15: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/15.jpg)
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
![Page 16: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/16.jpg)
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
![Page 17: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/17.jpg)
Algoritmo di Jacobson (1988)
RTT = Round Trip Time
RTT = a RTT + (1 - ) a M a=7/8
T = b RTT b = f(s)
![Page 18: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/18.jpg)
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
![Page 19: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/19.jpg)
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.
![Page 20: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/20.jpg)
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
![Page 21: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/21.jpg)
Scadenza di un timeout =
Rumore su una linea di trasmissione
Congestione di un nodo
Rilevazione degli stati di congestione
![Page 22: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/22.jpg)
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
![Page 23: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/23.jpg)
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
![Page 24: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/24.jpg)
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
![Page 25: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/25.jpg)
Servizi offerti da UDP
Trasferimento dati appartenenti a diverse applicazioni residenti nello stesso host (multiplexing)
Controllo d’errore (opzionale)
![Page 26: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/26.jpg)
1. Send (n ottetti)
ProcessoApplicativo
A
ProcessoApplicativo
B
2. DATA
3. Deliver (n ottetti)
UDP A UDP B
UDP SERVICE PROVIDER
![Page 27: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/27.jpg)
UDP
source port
data
destination port
length checksum
0 16 31
• Header,
• data,
• Pseudo header
![Page 28: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/28.jpg)
Protocolli di Trasporto emergenti in INTERNET
Real-time Transport Protocol (RTP)
Real-time Transport Control Protocol (RTCP)
![Page 29: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/29.jpg)
IP
UDP
APPLICAZIONE
RTP RTCPLivello di
trasporto
![Page 30: I protocolli TCP/UDP prof.: Alfio Lombardo](https://reader036.vdocument.in/reader036/viewer/2022062422/56813bf2550346895da529da/html5/thumbnails/30.jpg)
Macrolezione 7
Trasporto end-to-end dell’informazione