TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol...

57
TCP 1 Università di Palermo L A TCP

Transcript of TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol...

Page 1: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 1

Universitàdi Palermo LA

TCP

Page 2: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 2

Universitàdi Palermo LA

Transport Control Protocol

TCP is a connection-oriented, end-to-end reliable protocol designed to fit into

a layered hierarchy of protocols which support multi-network applications.

The TCP provides for reliable inter-process communication between pairs of

processes in host computers attached to distinct but interconnected computer

communication networks.

Very few assumptions are made as to the reliability of the communication

protocols below the TCP layer.

Protocollo di trasporto usato più largamente nel mondo

La RFC 793 recita:

Page 3: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 3

Universitàdi Palermo LA

Evoluzione del TCP

Formalizzato nel Sep 1981

RFC 793 – Transmission Control Protocol

TCP fu definito formalmente in RFC 793 anche se successivamente furono

scoperti vari errori e inconsistenze che vennero corrette con la pubblicazione

di nuove RFC (Cfr. RFC 813, RFC 1122, RFC 1323)

In breve tempo è divenuto così popolare che l’ISO

derivò da esso uno standard, il TP-4

Page 4: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 4

Universitàdi Palermo LA

Evoluzione del TCP (cont)

RFC 1122 – Requirements for Internet Hosts

RFC 2001 – TCP Slow start, Congestion avoidance, Fast retransmit and …….

RFC 1072 – TCP Extension for Long-Delay Paths

RFC 1185 – TCP Extension for High-Speed Paths

RFC 2581 – TCP Congestion Control

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

RFC 813 – Delayed ACK

RFC 1323 - TCP Extensions for High Performance

RFC 2988 – TCP’s computing retransmission timer

A partire dalla nascita evoluzione continua

Page 5: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 5

Universitàdi Palermo LA

Protocol Architecture

TCP sopra IP (un layer connection-less e con poche funzioni)

Ampio range di richieste in un ambiente dinamico

IP

Data Link

Physical

IP

TCP

Data Link

Physical

Up

per

Laye

rs

IP

Data Link

Physical

IP

TCP

Data Link

Physical

Up

per

Laye

rs

S.net_2S.net_3S.net_1

End-to-End communication

Page 6: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 6

Universitàdi Palermo LA

Overview

TCP non risiede nei router

IP non fornisce sequenziamento

TCP deve fornire sequenziamento

IP non fornisce traffic acknowledgment

TCP deve fornire reliability

IP è connectionless

TCP deve fornire flow control

TCP deve fornire multiplexing

Page 7: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 7

Universitàdi Palermo LA

Major Features of TCP

Servizi all’ULP:

� Resequencing

� Flow control (sliding window / credits)

� Multiplexing

� Full-duplex transmission

� Precedence and security

� Graceful close

� Stream oriented data transfer

� Push function

� Reliable data transfer

� Connection oriented data management

� Go-back n protocol

Page 8: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 8

Universitàdi Palermo LA

Stream Data Transfer

Il segmento, formato da un numero intero di bytes, contiene il numero

di sequenza dei byte di dati

Lo stream originario è numerato per byte

Il TCP spezza questi dati in segmenti, ciascuno

dei quali si adatta ad un datagram IP

L’applicazione consegna quantità arbitrarie di dati al TCP come

un un flusso (stream) senza confini di record; il TCP non garantisce

che i dati verranno ricevuti negli stessi blocchi come trasmessi

Page 9: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 9

Universitàdi Palermo LA

TCP connection

Process X Process Y

TCP

port N… …

TCP

port M… …

IP IP

reliable

TCP connection

unreliable

IP datagrams

connections

sockets

IP addresses

host A host B

Page 10: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 10

Universitàdi Palermo LA

Transport address

In uno stesso host possibili più applicazioni contemporanee

Insufficienza degli address degli strati inferiori

Conosciamo Physical, Data Link e Network adddresses

Servono indirizzi per gli strati di trasporto e applicazione

In OSI T-SAP

In TCP/IP Protocol ID, Port, Socket

Page 11: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 11

Universitàdi Palermo LA

Layer’s addresses

Physical

Sending computer Receiving computer

Physical

Internet ApplicationPorts

User ApplicationUsernames

Internet Application Ports

Transport Protocol ID

Network IP address

LLCSAPsEtherTypeLLC

SAPsEtherType

User ApplicationUsernames

NetworkIP address

TransportProtocol ID

MAC MAC addressMAC address MAC

Page 12: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 12

Universitàdi Palermo LA

Port & Socket

Socket = Port + IP Address

Una coppia di socket identifica una connessione

Numeri di Port ≤ 255 per porte usate frequentemente (Well Known)

23 � Telnet

25 � SMTP

137 � NETBIOS-NS

Page 13: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 13

Universitàdi Palermo LA

TCP Flow Control

TCP use a credit scheme to perform the flow control

This feature decouples acknowledgement from flow control

Each transmitted segment have to include in its header

three fields required for this flow control type:

� Sequence Number (SN)

� Acknowledgement Number (AN)

� Window (W)

Page 14: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 14

Universitàdi Palermo LA

TCP Segments

DataOffset Reserved

Source Port Destination Port

Sequence Number (SN)

Acknowledgment Number (AN)

Window

Urgent pointerChecksum

Options + Padding

Flags

Data

Page 15: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 15

Universitàdi Palermo LA

Sequence Number

Rappresenta (a parte un valore iniziale) il numero del primo

byte di dati nel segmento

Si tratta di un numero di 32 bit , quindi può avere come valore

massimo 2 -132

Tutti i calcoli riguardanti i sequence numbers devono essere modulo 2 32

Page 16: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 16

Universitàdi Palermo LA

Data Offset/Reserved bits

Il numero di word da 32 bit presenti nell’ header TCP

Indica il punto di inizio del campo data

Data Offset (4 bits)

Reserved bits (6 bits)

Must be zero

Reserved for future use

Page 17: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 17

Universitàdi Palermo LA

Flags

URG: Urgent Pointer field significant

ACK: Acknowledgment field significant

PSH: Push Function

RST: Reset the connection

SYN: Synchronize sequence numbers

FIN: No more data from sender

6 control bits

Page 18: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 18

Universitàdi Palermo LA

Window/Urgent Pointer

Il numero di Bytes di dati, ad iniziare da quello indicato nel campo

Acknowledgement che il sender del segmento è disposto ad accettare

TCP è un protocollo sliding window

Window

Urgent Pointer

Questo valore, sommato al sequence number del segmento, fornisce

il sequence number dell’ultimo ottetto in una sequenza di dati urgenti

Il ricevitore viene a conoscere la quantità di dati urgenti

Page 19: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 19

Universitàdi Palermo LA

Pseudo Header

Source IP Address

Destination IP Address

zero Protocol TCP Length

32

8 8 16

Page 20: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 20

Universitàdi Palermo LA

Options

In origine solo tre options:

Oggi molte altre

0 - End of option list1 - No operation2 4 Maximum segment size

Kind Length Option

3 Window scale factor3SACK Permitted4 2SACK5 NEcho (obsoleted by option 8)6 6Echo Reply (obsoleted by option 8)7 6Timestamp8 10Partial Order Connection Permitted9 2Partial Order Service Profile10 3CC11CC.NEW12

13 CC.ECHO

14 TCP Alternate Checksum Request315 TCP Alternate Checksum DataN19 MD5 Signature18

Page 21: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 21

Universitàdi Palermo LA

Window Scale Option

Definita nella RFC 1323

Con TCP normale la SEG.WND definita tramite un campo da 16 bit

Dimensione massima della finestra = Bytes162 1 65535− =

Dimensione troppo piccola nel caso delle LFT (elephan)

Con Window Scale Option finestra definita con 32 bit

Per compatibilità SEG.WND espressa sempre con 16 bit

Nella option è trasmesso uno shift.cnt che fornisce lo shift perpassare dall’una all’altra finestra

Entambi i sistemi devono accettare la option, altrimenti non si applica

L’option è negoziata soltanto nell’handshake iniziale (SYN)

Page 22: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 22

Universitàdi Palermo LA

Port Assignmet

Source Port = 400Destination Port = 25

3

Host A Host B Host C

Source Port = 401Destination Port = 25

2

Source Port = 400Destination Port = 25

1

+ IP Address

+ IP Address

+ IP Address

Page 23: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 23

Universitàdi Palermo LA

Passive and Active Opens

Instaurazione di connessione:

Passive-open

Active-open

Controllo dell’esistenza del corrispondente

Negoziazione dei parametri opzionali

Allocazione delle risorse

Due tipologie:

Page 24: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 24

Universitàdi Palermo LA

Transmission Control Block

Insieme di variabili che identifica la connessione ed il suo stato

� Local and remote socket numbers

� Pointers to send and receive buffers

� Pointers to the retransmit queue

� Security and precedence value for the connection

� Current segment

� Variables associated with send and receive sequence numbers

ISS Initial send sequence number

SND.UP Sequence number of last octet of urgent data

RCV.NXT Sequence number of next octet to be received

RCV.IRS Initial receive sequence number

………… ………………………………………………

Page 25: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 25

Universitàdi Palermo LA

Retransmission Operation

TCP non usa NAK In assenza di ACK, ritrasmissione

A B

SN = 3(300 bytes sent)

1

AN = 3032

4 AN = 303

SN = 303(300 bytes sent)

3

5SN = 603

(300 bytes sent)

6 AN = 303

7 {SN = 303

(300 bytes sent)SN = 603

(300 bytes sent)

8 AN = 903

Page 26: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 26

Universitàdi Palermo LA

User Interfaces

Service RequestPrimitives

Service ResponsePrimitives

UNSPECIFIED-PASSIVE

OPEN

FULL-PASSIVE-OPEN

ACTIVE-OPEN

ACTIVE-OPEN-WITH-DATA

SEND

RECEIVE

ALLOCATE

CLOSE

ABORT

STATUS

OPEN-ID

OPEN-FAILURE

OPEN-SUCCESS

DELIVER

CLOSING

TERMINATE

STATUS-RESPONSE

ERROR

Page 27: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 27

Universitàdi Palermo LA

Items Passed to IP

Il TCP passa alcuni parametri al sottostante modulo IP

� Precedence

� Normal/Low Delay

� Normal/High Throughput

� Normal/High Reliability

� Security

Page 28: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 28

Universitàdi Palermo LA

Connection Establishment

SYN = 1; SN = k

SYN = 1; ACK = k+1; SN = j

ACK = j+1

Process B

Passive OPEN,waits for active request

Process A

Active OPEN

Page 29: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 29

Universitàdi Palermo LA

Initial Sequence Numbers (ISN)

Problema:

Possibili diverse istanze (incarnazioni) della stessa connessione

Come evitare confusioni con i segmenti duplicati delle incarnazioni precedenti?

Bisogna evitare che i segmenti di una incarnazione utilizzino gli stessi SN dei

segmenti di una precedente incarnazione che possono ancora trovarsi in rete

Alla creazione di una connessione, uso di generatore di ISN legato al tempo

Scatto di un bit ogni ≈ 4 µs

Riciclo dopo 2^32 * 4*10^-6 ≈ 4,55 h

Tempo di riciclo > MSL

Page 30: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 30

Universitàdi Palermo LA

Connection Management

Passive OPENCreate TCB CLOSE

Delete TCB

Active OPENCreate TCBSend SYNCLOSE

Delete TCB

rcv SYNsnd SYN, ACK

rcv SYN, snd ACK

rcv ACK of SYN rcv SYN, ACKsnd ACK

ClosedSnd FIN

rcv FINsnd ACK

rcv ACK of FIN

rcv FINSnd ACK

Time=2 MSLdel TCB

CLOSED

LISTEN

ESTAB

CLOSING

TIME WAIT

SYN SENT

CLOSED

rcv ACK of FINrcv FINsnd ACKFIN WAIT-2

rcv ACK of FIN

CLOSEsnd FIN

FIN WAIT-1

LAST-ACK

CLOSE WAIT

SYN RCVD

CLOSEsnd FIN

Page 31: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 31

Universitàdi Palermo LA

Retransmission Timer

Problema: Stima del timer per Ritrasmissione

A B

Send Delay (SD)

Receive Delay (RD)

ProcessingTime (PT)

RTT = SD + RD + PT

Page 32: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 32

Universitàdi Palermo LA

Early Version

Media semplice

k

iRTTkARTT

k

i∑== 1

)()(

Valori descrescenti

0

5

10

15

20

0 5 10 15 20 25 30

Valori crescenti

0

5

10

15

0 5 10 15 20 25 30

OsservazioneMedia semplice

1)()1(1)( >∀+−−= kk

kRTTkARTTk

kkARTT

Page 33: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 33

Universitàdi Palermo LA

Smoothed Round-Trip Time

costRTTkRTTkRTTkRTTkSRTT

k )1(...)2()1()()(1210 −++−+−+= αααα

Per congruenza:

RTTcost

RTTSRTT i

i

=⋅=∞∑∞

=1)(α

11

10

<∀−

=∑∞

αα

i

i

∑=

− −=k

i

ik iRTTkSRTT1

)()1()( αα

∑∞

==

0i

icost αDa cui

Page 34: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 34

Universitàdi Palermo LA

Smoothed Round-Trip Time (2)

∑−

=

− −+−=1

1)()1()()1()(

k

i

ik iRTTkRTTkSRTT ααα

∑−

=

−− −⋅+−=1

1

1 )()1()()1()(k

i

ik iRTTkRTTkSRTT ααα α

)1()()1(1

1

1 −=−∑−

=

−− kSRTTiRTTk

i

ik αα

In conclusione relazione ricorsiva:

)1()()1()( −⋅+⋅−= kSRTTkRTTkSRTT αα

Page 35: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 35

Universitàdi Palermo LA

Smoothed and Simple Average

Valori decrescenti

0

5

10

15

20

25

0 5 10 15 20 25 30

Valori crescenti

0

2

4

6

8

10

12

0 5 10 15 20 25 30

Osserv .

Med. semplice

Med. sm.d a=0,5

Med. sm.d a=0,875

0

2

4

6

8

10

12

0 5 10 15 20 25 30

Osserv.Med. sempliceMed. sm.d a=0,5Med. sm.d a=0,875

Page 36: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 36

Universitàdi Palermo LA

Retransmission Timeout

IL Value for Timeout (VT) non può essere uguale a SRTT

δ+= SRTTVT Logica scorretta

Logica migliore

RFC 793 presenta as an illustration la relazione

s1Lbounds60Ubound

23,19,08,0

==

÷=÷= βα

)1( >⋅= βSRTTVT β

( )[ ]SRTTVT ⋅= βLbound,maxUbound,min

Page 37: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 37

Universitàdi Palermo LA

Round Trip Time variance

)1()()1()( −⋅+⋅−= kSRTTkRTTkSRTT αα

( ) [ ])1()(1)1()( −−⋅−+−= kSRTTkRTTkSRTTkSRTT α

Lo standard originale non funziona bene con varianza elevata

3 problemi:

Con bit rate basso stima dipendente fortemente dai dati

Brusche ed imprevedibili variazioni di RTT provocata dal traffico internet

Possibile assenza di un riscontro immediato dei singoli segmenti

Page 38: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 38

Universitàdi Palermo LA

Round Trip Time Variance (2)

RFC 793 tiene conto della variabilità di RTT con il fattore costante β

Procedura migliore: basarsi sulla varianza di RTT

mean deviation mdev

∑=

⋅−=n

iii pXxXmdev

1]E[)(

[ ]]E)( XXXmdev −= E[

Page 39: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 39

Universitàdi Palermo LA

Round Trip Time Variance (3)

Nel caso presente

∑=

−n

ii Xx

1]E[

2

22 1)(mdev

⋅=

nX ( )∑

=−⋅=

n

ii Xx

nX

1

22 ]E1)(σ [

∑=

−n

ii Xx

1]E[

2

( )∑=

−⋅n

ii Xxn

1

2]E[

X n^2

∑=

−=n

ii XxXmdev

1]E)( [1

n ⋅

Page 40: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 40

Universitàdi Palermo LA

Round Trip Time Variance (4)

Per distribuzione gaussiana

mdev approssimazione della varianza

Si vuole stimare mdev

stimatotimetrip-round)( =iARRT

Si definiscono

) = errore di stima1()()( −−= iARTTiRTTiAERR

)(2)(mdev 22 XX σ⋅=π

Page 41: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 41

Universitàdi Palermo LA

Round Trip Time Variance (5)

Si può esprimere la mean deviation calcolata su k samples come

∑=

−⋅=k

ik XiRTT

k 1]E)(1mdev [

Si sostituisce ad E[X] il valor medio stimato su i -1 samples ARTT(i -1)

Si ottiene un valore stimato ADEV della mean deviation

∑=

−−⋅=k

iiARTTiRTT

kk

1)1()(1)ADEV(

∑=

⋅=k

iiAERR

kk

1)(1)ADEV(

Page 42: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 42

Universitàdi Palermo LA

Round Trip Time variance (6)

AERR(k)1)1ADEV(1)ADEV( ⋅+−⋅−=k

kk

kk

Valore di ADEV ottenuto con media semplice

Opportunità di pesare in modo differente i samples

Procedura di Van jacobson

Uso della media esponenziale

Espressione di SRTT

)1()()1()( −⋅+⋅−= kSRTTkRTTkSRTT αα

Page 43: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 43

Universitàdi Palermo LA

Round Trip Time Variance (7)

α 1 - g

)RTT()1SRTT()1()SRTT( kgkgk ⋅+−⋅−=

In analogia a: AERR(k) = RTT(k) - ARTT(k-1)

Errore per media smoothed

SERR(k) = RTT(k) - SRTT(k-1)

Page 44: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 44

Universitàdi Palermo LA

Round Trip Time Variance (8)

In analogia alla media smoothed di RTT media smoothed della deviation

SDEV(k) = (1-h)·SDEV(k-1) + h·|SERR(k)|

Ora più correttamente:

RTO(k) = SRTT(k) + f·SDEV(k)

Van Jacobson ha proposto: g = 0,125 (α = 0,875)

h = 0,25

f = 4f = 2

Page 45: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 45

Universitàdi Palermo LA

Round Trip Time Variance (9)

Valori crescenti

0

5

10

15

20

25

0 5 10 15 20 25 30

Osserv .

SDEV

RTO f = 2

RTO f = 4

Valori decrescenti

0

5

10

15

20

25

30

35

40

0 5 10 15 20 25 30

Page 46: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 46

Universitàdi Palermo LA

Window Management

TCP self-clocking

ReceiverSender

bP

rP

rAsA

bA

Page 47: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 47

Universitàdi Palermo LA

Window Management (2)

• Congestion Window

Congestion Window fissata dal sender

Allowed_Window = (receiver_advertisement, congestion_window)min

Strategy:

Multiplicative Decrease Congestion Avoidance: Upon loss of a segment, reduce the

congestion window by half (down to a minimum of at least one segment).

For those segments that remain in the allowed window,

backoff the transmission timer exponentially.

Page 48: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 48

Universitàdi Palermo LA

Window Management (3)

• Slow-start

Send Time [s]

Segm

ent S

eque

nce N

umbe

r [K

B]

Page 49: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 49

Universitàdi Palermo LA

Window Management (4)

Slow Start (additive) Recovery

Whenever starting traffic on a new connection or increasing traffic

after a period of congestion, start the congestion window at the

size of a single segment and increase the congestion window by

one segment each time an acknowledgement arrives.

Con RFC 2001 introduzione di una partenza graduale

Avvio con finestra da un segmento e incremento fino al massimo

Page 50: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 50

Universitàdi Palermo LA

Window Management (5)

Congestion windowincreases exponentially

Increase by 1segment per ACK

Sender Receiver

Time

RTT

WRTTWTopening 2log)( ⋅=

Page 51: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 51

Universitàdi Palermo LA

Backoff esponenziale dell’RTO

Binary exponential backoff

� RTO viene incrementato ogni volta che un segmento è ritrasmesso

� RTO = β*RTO

� Normalmente β = 2

� Siccome il timeout è dovuto probabilmente ad una congestione (pacchetto perduto

o round trip lungo), il mantenimento di RTO non è una buona idea

RTO = Round trip Time Out

Page 52: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 52

Universitàdi Palermo LA

Delayed ACK - SWS

• Silly Window Syndrome ( SWS)

RFC 793 asserisce genericamente che i dati devono essere

promptly acknowledged

Il receiver invia al sender la offered window

Il sender in base alla offered window calcola la usable window

Usable Window = Offered Window – Unacknowledged Data

Esempio:Ricevitore � 1000 bytes

Sender invia 5 segmenti da 200

Dopo il primo segmento il receiver invia un ACKAl ricevitore nuovamente disponibile spazio per 1000

Page 53: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 53

Universitàdi Palermo LA

Silly Window Syndrome

Il sender ricalcola la Usable Window = 1000 – 800 = 200

Il sender ha 50 bytes da inviare fino all’arrivo di un “push” point

Il sender invia un segmento da 50 bytes

Il sender invia un segmento da 150 bytes

Il receiver riceve il segmento da 50 bytes e comunica una

offered window di 1000 bytes

Nuova usable window di 50 bytes

Il sender invia un segmento da 50 bytes (anche in presenza di molti bytes)

Page 54: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 54

Universitàdi Palermo LA

Silly Window Syndrome (2)

Occasionalmente, a causa di confini naturali, la finestra viene spezzata in due

La finestra non viene riunita naturalmente

Continuo invio di piccoli segmenti

Silly Window Syndrome

Per evitarla: Improved Window Algorithm

# Quando il receiver dispone di una piccola quantità di dati, riduce la O_wIl sender non può inviare altri datiQuando il receiver ha ricevuto abbastanza dati incremento la O_w

Page 55: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 55

Universitàdi Palermo LA

Silly Window Syndrome (3)

Quando si deve riaprire la finestra ?

Rule of thumb Reduce the offered window until the reduction

constitutes one half of the available space

Troppo presto � SWS Troppo tardi � Ritardo

Altro algoritmo:

Il sender calcola una U_w,La confronta con la O_w,Si ferma finchè la U_w non è maggiore di una frazione della O_w

Tipicamente 25 %

Page 56: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 56

Universitàdi Palermo LA

RTT Measurement

RTT calcolato partendo dalla differenza tra l’istante di trasmissione

e quello di arrivo ACK

Problema: Gli ACK non portano informazione circa il pacchetto a cui si riferiscono

Ambiguità dell’Acknowledgement

Scelta dell’istante della prima trasmissione � Sovrastima di RTT

Scelta dell’istante di ritrasmissione � Sottostima di RTT

Page 57: TCP - unipa.italcuri/Materiale_Telematica/Transport Control... · In OSI T-SAP In TCP/IP Protocol ID, Port, Socket. TCP 11 ... 23 Telnet 25 SMTP 137 NETBIOS-NS. TCP 13 ... Alla creazione

TCP 57

Universitàdi Palermo LA

Karn Algorithm

In caso di segmenti ritrasmessi il sender non misura RTT ( e non aggiorna RTO)

In caso di ritrasmissione calcolo di RTO non in base a RTT ma con la formula di backoff

RTO2RTO ⋅=

Uso ripetuto procedura di backoff fino a trasmissione singola

Risoluzione del problema della ambiguità con:

� Algoritmo di Karn (Nov. 1991)

� Echo option (Oct. 1988)