30
I protocolli TCP/UDP prof.: Alfio Lombardo

I protocolli TCP/UDP prof.: Alfio Lombardo

  • Upload
    napua

  • View
    28

  • Download
    0

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

Page 1: I protocolli TCP/UDP prof.: Alfio Lombardo

I protocolli TCP/UDPprof.: Alfio Lombardo

Page 2: I protocolli TCP/UDP prof.: Alfio Lombardo

Formato del messaggio TCP

Page 3: I protocolli TCP/UDP prof.: Alfio Lombardo

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

• 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

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

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

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

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

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

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

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

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

Chiusura di connessione: three way handshake con perdite

Page 14: I protocolli TCP/UDP prof.: Alfio Lombardo

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

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

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

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

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

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

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

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

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

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

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

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

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

UDP

source port

data

destination port

length checksum

0 16 31

• Header,

• data,

• Pseudo header

Page 28: I protocolli TCP/UDP prof.: Alfio Lombardo

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

IP

UDP

APPLICAZIONE

RTP RTCPLivello di

trasporto

Page 30: I protocolli TCP/UDP prof.: Alfio Lombardo

Macrolezione 7

Trasporto end-to-end dell’informazione