I protocolli TCP/UDP prof.: Alfio Lombardo

29
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 Presentation

Transcript of I protocolli TCP/UDP prof.: Alfio Lombardo

I protocolli TCP/UDPprof.: Alfio Lombardo

Formato del messaggio TCP

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 di connessione: three way handshake con perdite

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

Algoritmo di Jacobson (1988)

RTT = Round Trip Time

RTT = RTT + (1 -

T = RTT = f()

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

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