Last t ime: Transport 1 Transport 2 t ransport layer services - - PDF document

last t ime transport 1 transport 2
SMART_READER_LITE
LIVE PREVIEW

Last t ime: Transport 1 Transport 2 t ransport layer services - - PDF document

Last t ime: Transport 1 Transport 2 t ransport layer services connect ion-orient ed t ransport : TCP reliable t r ansf er mult iplexing/ demult iplexing f low cont r ol connect ionless t ransport : UDP connect ion


slide-1
SLIDE 1

1

21 September 2001 Transport 2 1 Data Communications, Jonny Pettersson, UmU

Last t ime: Transport 1

❒ t ransport layer services ❒ mult iplexing/ demult iplexing ❒ connect ionless t ransport : UDP ❒ principles of reliable dat a t ransf er ❒ sliding window prot ocols

❍ go-back-N ❍ selct ive r epeat

21 September 2001 Transport 2 2 Data Communications, Jonny Pettersson, UmU

Transport 2

❒ connect ion-orient ed t ransport : TCP

❍ reliable t r ansf er ❍ f low cont r ol ❍ connect ion management

❒ principles of congest ion cont rol ❒ TCP

congest ion cont rol

21 September 2001 Transport 2 3 Data Communications, Jonny Pettersson, UmU

Transmission Cont rol Prot ocol(TCP)

❒ Def inierar säker överf ör ing i TCP

/ I P I nt ernet genom at t bland annat def iniera

❍ Formen på paket och ackar ❍ Funkt ioner som kan användas f ör at t se t ill at t

dat a anländer korr ekt

❍ Hur TCP

  • mj ukvar an skilj er på f ler a mot t agare

inom en maskin

❍ Hur kommunikat ionen init ier as och avslut as

❒ VI KTI GT!

❍ TCP

är et t prot okol, ej en mj ukvara

21 September 2001 Transport 2 4 Data Communications, Jonny Pettersson, UmU

Vad TCP måst e klara

❒ Koppla ihop många olika maskiner

❍ Behov av explicit upp- och nedkoppling

❒ Hant er a var ierande RTT

❍ Behov av adapt iv t imeout f ör omsändning

❒ Hant er a långa f ör dröj ningar i nät et

❍ Behov av hant er ing av sent anländande paket ❍ TTL (nu r ekomenderas 120 sek)

❒ Hant er a olika kapacit et er hos mot t agar e

❍ Behov av at t kunna anpassa t ill olika noder s resurser

❒ Hant er a olika nät ver kskapacit et er

❍ Behov av at t hant er a t raf ikst ockningar på nät et 21 September 2001 Transport 2 5 Data Communications, Jonny Pettersson, UmU

TCP - Överblick

❒ Kopplingsor ient er at ❒ Byt e-st ream

❍ app skr iver byt es ❍ TCP sänder segment ❍ app läser byt es

Application process Write bytes TCP Send buffer Segment Segment Segment Transmit segments Application process Read bytes TCP Receive buffer … … …

❒ Full duplex ❒ Flow cont rol: Så sändar en

int e dr änker mot t agar en

❒ Congest ion cont rol: Så

sändar en int e dr änker nät ver ket

RFCs: 793, 1122, 1323, 2018, 2581

21 September 2001 Transport 2 6 Data Communications, Jonny Pettersson, UmU

När skickas segment ?

❒ Tre sät t at t t rigga en sändning

❍ MSS (Maximum Segment Size), of t ast lika med

MTU (Maximum Tr ansf er Unit ) f ör lokala nät ver ket

❍ P

ush operat ion f rån applikat ionen

❍ Timeout

slide-2
SLIDE 2

2

21 September 2001 Transport 2 7 Data Communications, Jonny Pettersson, UmU

Port ar och kopplingar

❒ TCP

använder port ar på et t mer komplicerat sät t än UDP

❒ Flera kopplingar per port ❒ TCP

ident if ierar kopplingar som par av kommunikat ionspunkt er

❍ <

SrcPort, SrcIPAddr, DesPort, DesIPAddr >

21 September 2001 Transport 2 8 Data Communications, Jonny Pettersson, UmU

Välkända TCP port ar

❒ 7 - Echo ❒ 9 - Discard ❒ 21 - FTP ❒ 25 - SMTP ❒ 79 - Finger

21 September 2001 Transport 2 9 Data Communications, Jonny Pettersson, UmU

TCP segment st r uct ur e

source port # dest port #

32 bit s

applicat ion dat a (var iable lengt h) sequence number acknowledgement number

r cvr window size pt r ur gent dat a checksum

F S R P A U

head len not used

Opt ions (variable lengt h)

URG: ur gent dat a (gener ally not used) ACK: ACK # valid PSH: push dat a now (gener ally not used) RST, SYN, FI N: connect ion est ab (set up, t ear down commands) # byt es r cvr willing t o accept count ing by byt es

  • f dat a

(not segment s!) I nt er net Checksum (TCP header + dat a + pseudo header )

21 September 2001 Transport 2 10 Data Communications, Jonny Pettersson, UmU

TCP seq. # ’s and ACKs

  • Seq. # ’s:

❍ byt e st ream

“number” of f ir st byt e in segment ’s dat a ACKs:

❍ seq # of next byt e

expect ed f rom

  • t her side

❍ cumulat ive ACK

Q: how r eceiver handles

  • ut -of -order segment s

❍ A: TCP spec doesn’t

say, - up t o implement or

Host A Host B

Seq=42, ACK=79, data = ‘C’ S e q = 7 9 , A C K = 4 3 , d a t a = ‘ C ’ Seq=43, ACK=80

User t ypes ‘C’ host ACKs r eceipt

  • f echoed

‘C’ host ACKs r eceipt of ‘C’, echoes back ‘C’

t ime simple t elnet scenar io

21 September 2001 Transport 2 11 Data Communications, Jonny Pettersson, UmU

TCP Sliding Window

❒ Garant erar t illf örlit lig leverans av dat a ❒ Garant erar ordning ❒ Flow Cont rol

❍ RcvWindow

21 September 2001 Transport 2 12 Data Communications, Jonny Pettersson, UmU

TCP: r eliable dat a t r ansf er

simplif ied sender , assuming

wait f or event

wait f or event

event: data received from application above event: timer timeout for segment with seq # y event: ACK received, with ACK # y create, send segment retransmit segment ACK processing

  • one way dat a t r ansf er
  • no f low, congest ion cont rol

not pur e go-back-N

slide-3
SLIDE 3

3

21 September 2001 Transport 2 13 Data Communications, Jonny Pettersson, UmU

TCP ACK gener at ion [RFC 1122, RFC 2581]

Event

in-order segment arrival, no gaps, everything else already ACKed in-order segment arrival, no gaps,

  • ne delayed ACK pending
  • ut-of-order segment arrival

higher-than-expect seq. # gap detected arrival of segment that partially or completely fills gap

TCP Receiver action

delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK immediately send single cumulative ACK send duplicate ACK, indicating seq. #

  • f next expected byte

immediate ACK if segment starts at lower end of gap

21 September 2001 Transport 2 14 Data Communications, Jonny Pettersson, UmU

TCP: r et r ansmission scenar ios

Host A

Seq=92, 8 bytes data ACK=100

loss

t imeout

t ime lost ACK scenar io

Host B

X

Seq=92, 8 bytes data ACK=100

Host A

S e q = 1 , 2 b y t e s d a t a ACK=100 Seq=92 t imeout

t ime pr emat ur e t imeout , cumulat ive ACKs

Host B

Seq=92, 8 bytes data ACK=120 Seq=92, 8 bytes data Seq=100 t imeout ACK=120 21 September 2001 Transport 2 15 Data Communications, Jonny Pettersson, UmU

TCP Flow Cont r ol

receiver : explicit ly inf orms sender of (dynamically changing) amount of f r ee buf f er space

❍ RcvWindow f ield in

TCP segment sender : keeps t he amount

  • f t r ansmit t ed,

unACKed dat a less t han most recent ly received RcvWindow sender won’t overrun receiver’s buf f ers by t ransmit t ing t oo much, t oo f ast

f low cont r ol

r eceiver buf f er ing

RcvBuffer = size or TCP Receive Buf f er RcvWindow = amount of spare room in Buf f er 21 September 2001 Transport 2 16 Data Communications, Jonny Pettersson, UmU

Tillf örlit lig och ordnad leverans

Sändaren

LastByteAcked ≤ ≤ ≤ ≤ LastByteSent LastByteSent ≤ ≤ ≤ ≤ LastByteWritten Buf f r ar mellan LastByteAcked och LastByteWritten

Sending application LastByteWritten TCP LastByteSent LastByteAcked Receiving application LastByteRead TCP LastByteRcvd NextByteExpected

Mot t agaren

LastByteRead < < < < NextByteExpected NextByteExpected ≤ ≤ ≤ ≤ LastByteRcvd + 1 Buf f r ar mellan LastByteRead och LastByteRcvd

21 September 2001 Transport 2 17 Data Communications, Jonny Pettersson, UmU

Flow Cont rol - Mot t agaren

❒ Hos mot t agaren

❍ LastByteRcvd - LastByteRead ≤

≤ ≤ ≤ RcvBuffer

❍ RcvWindow = RcvBuffer - (LastByteRcvd -

LastByteRead)

Sending application LastByteWritten TCP LastByteSent LastByteAcked Receiving application LastByteRead TCP LastByteRcvd NextByteExpected

21 September 2001 Transport 2 18 Data Communications, Jonny Pettersson, UmU

Flow Cont rol - Sändaren

❒ Hos sändaren

❍ LastByteSent - LastByteAcked ≤

≤ ≤ ≤ RcvWindow

❍ EffectiveWindow = RcvWindow - (LastByteSent -

LastByteAcked)

❍ LastByteWritten - LastByteAcked ≤

≤ ≤ ≤ MaxSendBuffer

Sending application LastByteWritten TCP LastByteSent LastByteAcked Receiving application LastByteRead TCP LastByteRcvd NextByteExpected

slide-4
SLIDE 4

4

21 September 2001 Transport 2 19 Data Communications, Jonny Pettersson, UmU

Flow Cont rol

❒ Om RcvWindow = 0

❍ Hur f år sändar en r eda på at t den kan sända

igen?

❍ Egent ligen ska inga paket skickas ❍ Men, sändar en f or t sät t er at t skicka 1-byt e

dat a

  • Får r eda på när RcvWindow ändras
  • Smart sender/ dumb receiver

21 September 2001 Transport 2 20 Data Communications, Jonny Pettersson, UmU

Skydd mot “Wrap Around”

❒ 32-bit SequenceNum ❒ Det ber or av sändhast ighet en

❍ I ngen “wrap around” bör ske inom 120 sek

Bandwidt h Time Unt il Wrap Around T1 (1.5 Mbps) 6.4 hours Et hernet (10 Mbps) 57 minut es T3 (45 Mbps) 13 minut es FDDI (100 Mbps) 6 minut es STS-3 (155 Mbps) 4 minut es STS-12 (622 Mbps) 55 seconds STS-24 (1.2 Gbps) 28 seconds

21 September 2001 Transport 2 21 Data Communications, Jonny Pettersson, UmU

Håll pipan f ull

❒ 16-bit AdvertisedWindow ger 64KB dat a Bandwidt h Delay x Bandwidt h Product T1 (1.5 Mbps) 18KB Et hernet (10 Mbps) 122KB T3 (45 Mbps) 549KB FDDI (100 Mbps) 1.2MB STS-3 (155 Mbps) 1.8MB STS-12 (622 Mbps) 7.4MB STS-24 (1.2 Gbps) 14.8MB

21 September 2001 Transport 2 22 Data Communications, Jonny Pettersson, UmU

TCP Ext ent ions

❒ I mplement erat som header opt ion ❒ Användandet av ext ent ions avgörs vid

uppkopplingen

❒ Tre ext ent ions

❍ Timest amp: 32-bit ars vär de, f ör RTT ber äkning ❍ Timest amp f ör skydd mot “wr ap around” ❍ Skalningsf akt or f ör AdvertisedWindow

21 September 2001 Transport 2 23 Data Communications, Jonny Pettersson, UmU

TCP Round Tr ip Time and Timeout

Q: how t o set TCP t imeout value?

❒ longer t han RTT

❍ not e: RTT will vary

❒ t oo short : premat ure

t imeout

❍ unnecessary

ret ransmissions

❒ t oo long: slow react ion

t o segment loss

Q: how t o est imat e RTT?

❒ SampleRTT: measured t ime f rom

segment t ransmission unt il ACK receipt

❍ ignor e ret ransmissions,

cumulat ively ACKed segment s

❒ SampleRTT will vary, want

est imat ed RTT “smoot her”

❍ use several r ecent

measurement s, not j ust curr ent SampleRTT

21 September 2001 Transport 2 24 Data Communications, Jonny Pettersson, UmU

TCP Round Tr ip Time and Timeout

EstimatedRTT = (1-x)*EstimatedRTT + x*SampleRTT

❒ exponent ial weight ed moving average ❒ inf luence of given sample decreases exponent ially f ast ❒ t ypical value of x: 0.1

Set t ing t he t imeout

❒ EstimtedRTT plus “saf et y mar gin” ❒ large var iat ion in EstimatedRTT -> larger saf et y margin

Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x*|SampleRTT-EstimatedRTT|

(ht t p:/ / www.ce.chalmer s.se/ %7Ef cela/ t cp-t our .ht ml)

slide-5
SLIDE 5

5

21 September 2001 Transport 2 25 Data Communications, Jonny Pettersson, UmU

TCP Connect ion Management

Three way handshake

Active participant (client) Passive participant (server) S Y N , S e q u e n c e N u m = x S Y N + A C K , S e q u e n c e N u m = y, ACK, Acknowledgment = y + 1 Acknowledgment = x + 1 allocates buffers allocates buffers

21 September 2001 Transport 2 26 Data Communications, Jonny Pettersson, UmU

TCP Connect ion Management (cont .)

Closing a connect ion:

client closes socket :

St ep 1: client end syst em

sends TCP FI N cont rol segment t o server

St ep 2: server receives

FI N, r eplies wit h ACK. Closes connect ion, sends FI N.

client

FIN

ser ver

ACK ACK FIN

close close closed t imed wait

21 September 2001 Transport 2 27 Data Communications, Jonny Pettersson, UmU

TCP Connect ion Management (cont .)

St ep 3: client r eceives FI N,

replies wit h ACK.

❍ Ent ers “t imed wait ” -

will respond wit h ACK t o received FI Ns

St ep 4: server, r eceives

  • ACK. Connect ion closed.

Not e: wit h small

modif icat ion, can handly simult aneous FI Ns.

client

FIN

ser ver

ACK ACK FIN

closing closing closed t imed wait closed

21 September 2001 Transport 2 28 Data Communications, Jonny Pettersson, UmU

TCP t illst åndsdiagram

CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED CLOSE_WAIT LAST_ACK CLOSING TIME_WAIT FIN_WAIT_2 FIN_WAIT_1 Passive open Close Send/SYN SYN/SYN + ACK SYN + ACK/ACK SYN/SYN + ACK ACK Close/FIN FIN/ACK Close/FIN FIN/ACK ACK + FIN/ACK Timeout after two segment lifetimes FIN/ACK ACK ACK ACK Close/FIN Close CLOSED Active open/SYN

TCP client lif ecycle TCP server lif ecycle

21 September 2001 Transport 2 29 Data Communications, Jonny Pettersson, UmU

Pr inciples of Congest ion Cont r ol

Congest ion:

❒ inf or mally: “t oo many sour ces sending t oo much

dat a t oo f ast f or net wor k t o handle”

❒ dif f er ent f r om f low cont r ol! ❒ manif est at ions:

❍ lost packet s (buf f er over f low at rout er s) ❍ long delays (queueing in rout er buf f er s)

❒ a t op-10 problem!

21 September 2001 Transport 2 30 Data Communications, Jonny Pettersson, UmU

Causes/ cost s of congest ion: scenario 1

❒ t wo sender s, t wo

receiver s

❒ one r out er ,

inf init e buf f er s

❒ no ret ransmission ❒ large delays

when congest ed

❒ maximum

achievable t hr oughput

slide-6
SLIDE 6

6

21 September 2001 Transport 2 31 Data Communications, Jonny Pettersson, UmU

Causes/ cost s of congest ion: scenario 2

❒ one r out er , f init e buf f er s ❒ sender r et ransmission of lost packet “cost s” of congest ion:

❒ more work

(ret rans) f or given “goodput ”

❒ unneeded

ret ransmissions: link car ries mult iple copies

  • f pkt

no loss ”perfect” retrans ”premature timeout”

21 September 2001 Transport 2 32 Data Communications, Jonny Pettersson, UmU

Causes/ cost s of congest ion: scenario 3

❒ f our senders ❒ mult ihop pat hs ❒ t imeout / r et ransmit

Anot her “cost ” of congest ion:

❒ when packet dropped,

any “upst r eam t r ansmission capacit y used f or t hat packet was wast ed!

21 September 2001 Transport 2 33 Data Communications, Jonny Pettersson, UmU

Approaches t owards congest ion cont r ol

End-end congest ion cont r ol:

❒ no explicit f eedback f rom

net work

❒ congest ion inf er red f rom

end-syst em observed loss, delay

❒ approach t aken by TCP

Net wor k-assist ed congest ion cont rol:

❒ rout er s provide f eedback

t o end syst ems

❍ single bit indicat ing

congest ion (SNA, DECbit , TCP/ I P ECN, ATM)

❍ explicit rat e sender

should send at

Two broad approaches t owar ds congest ion cont rol:

21 September 2001 Transport 2 34 Data Communications, Jonny Pettersson, UmU

TCP Congest ion Cont rol

❒ St rat egi

❍ Skicka paket in i nät verket ut an reservat ion och r eager a

på observerade händelser ❒ Ant ag

❍ Best -ef f ort nät verk ❍ Sj älvklockande: Varj e anländande ACK innebär at t et t

nyt t paket kan sändas ❒ Ut maning

❍ Best äm kapacit et vid st art ❍ Anpassa t ill f ör ändringar i t illgänglig kapacit et

❒ Best år av t re delar

❍ AI MD - Addit ive I ncrease/ Mult iplicat ive Decr ease ❍ Slow St art ❍ Fast Ret ransmit och Fast Recovery 21 September 2001 Transport 2 35 Data Communications, Jonny Pettersson, UmU

Addit ive I ncr ease/ Mult iplicat ive Decr ease - AI MD

❒ Mål: Anpassa t ill f örändringar i kapacit et ❒ Ny variabel: CongWindow

❍ För varj e uppkoppling ❍ Begränsar hur mycket dat a en sändare kan ha

ut est ående oACKat

MaxWindow = Min(CongWindow, RcvWindow) EffectiveWindow = MaxWindow - (LastByteSent- LastByteAcked)

❍ I dé

  • Öka CongWindow när congest ion går ner
  • Minska CongWindow när congest ion går upp

21 September 2001 Transport 2 36 Data Communications, Jonny Pettersson, UmU

AI MD (f ort s)

❒ Fråga: Hur lär sig sändaren om nät verket

är överbelast at eller ej ?

❒ Svar: En t imeout sker

❍ En t imeout signaler ar at t et t paket f ör svunnit ❍ P

aket f ör svinner sällan pga överf öringsf el

❍ För lorade paket indiker ar över belast ning

slide-7
SLIDE 7

7

21 September 2001 Transport 2 37 Data Communications, Jonny Pettersson, UmU

AI MD (f ort s)

❒ Algorit m

❍ Öka CongWindow med et t MSS

per RTT

❍ Halvera CongWindow när en

t imeout sker ❒ I prakt iken

❍ Öka lit e f ör var j e anländ ACK ❍ CongWindow += MSS *

(MSS/CongWindow)

Source Destination …

t hroughput = w * MSS RTT Byt es/ sec

21 September 2001 Transport 2 38 Data Communications, Jonny Pettersson, UmU

AI MD (f ort s)

❒ Vikt igt !

❍ CongWindow minskar snabbar e än ökar ❍ Nödvändigt villkor f ör st abilit et i syst emet

60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB Time (seconds) 70 30 40 50 10 10.0 21 September 2001 Transport 2 39 Data Communications, Jonny Pettersson, UmU

Slow St art

❒ P

roblem: Tar lång t id at t komma upp i “st abil” Congest ionWindow

❒ Lösning: Öka f önst ret

exponent iellt

❍ Börj a med CongWindow = 1 (MSS) ❍ Dubbla CongWindow var j e RTT

(öka med 1 paket f ör var j e ACK)

Source Destination …

21 September 2001 Transport 2 40 Data Communications, Jonny Pettersson, UmU

Slow St art (f ort s)

❒ Körs vid t vå t illf ällen

❍ Vid st ar t av ny uppkoppling ❍ När ut sändning av dat a st oppat s i vänt an på

t imeout ❒ Def inera CongestionThreshold som

halva värdet av det CongWindow som result erade i congest ion

❒ Slow St art t ill CongestionThreshold,

där ef t er Addit ive I ncr ease

21 September 2001 Transport 2 41 Data Communications, Jonny Pettersson, UmU

Slow St art (f ort s)

❒ P

roblem: Förlorar dat a värt upp t ill halva st orleken av CongWindow

60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 KB Time (seconds) 70 30 40 50 10 Additive Increase Inga ACK Slow Start Additive Increase 21 September 2001 Transport 2 42 Data Communications, Jonny Pettersson, UmU

Timeout

❒ Vikt igt med bra t imeout mekanism

❍ Timeout f unkt ion av både medel-RTT och

st andar davvikelsen f ör medel-RTT

❍ P

ga kost naden at t mät a var j e sändning med en t illf ör lit lig klocka, används endast sampling av RTT en gång per RTT med en klocka med grov granular it et (500 ms)

slide-8
SLIDE 8

8

21 September 2001 Transport 2 43 Data Communications, Jonny Pettersson, UmU

Fast Ret ransmit

❒ P

roblem: Grovkornig klocka ger lång t id innan t imeout

❒ Lösning: Fast Ret ransmit

❍ Använd “duplicat e ACK” ❍ När sändaren f år t r e

“duplicat e ACK” t r iggas

  • msändning

❒ 20% bät t re

genomst römning

❒ Minskar ant alet “vanliga”

t imeout med hälf t en

Packet 1 Packet 2 Packet 3 Packet 4 Packet 5 Packet 6 Retransmit packet 3 ACK 1 ACK 2 ACK 2 ACK 2 ACK 6 ACK 2 Sender Receiver

21 September 2001 Transport 2 44 Data Communications, Jonny Pettersson, UmU

Result at och Fast Recovery

❒ Fast Recovery

❍ Vid Fast Ret r ansmit , skippa Slow St ar t och

st ar t a dir ekt på CongestionThreshold med Addit ive I ncr ease

60 20 1.0 2.0 3.0 4.0 5.0 6.0 7.0 KB 70 30 40 50 10 21 September 2001 Transport 2 45 Data Communications, Jonny Pettersson, UmU

Why is TCP f air?

Two compet ing sessions:

❒ Addit ive increase

gives slope of 1, as t hroughput incr eases

❒ mult iplicat ive

decrease decreases t hroughput proport ionally R R

equal bandwidt h share

Connect ion 1 t hr oughput C

  • n

n e c t i

  • n

2 t h r

  • u

g h p u t

congest ion avoidance: addit ive increase loss: decrease window by f act or of 2 congest ion avoidance: addit ive increase loss: decrease window by f act or of 2 TCP connect ion 1 bot t leneck rout er capacit y R TCP connect ion 2 21 September 2001 Transport 2 46 Data Communications, Jonny Pettersson, UmU

A t rip t o Nevada

❒ Tahoe

❍ AI MD and Slow St art

❒ Reno

❍ Tahoe + Fast Ret ransmit + Fast Recover y

❒ Vegas

❍ ”congest ion avoidance” ❍ basic idea

  • det ect congest ion in rout ers bef ore packet loss
  • lower t he rat e linearly

21 September 2001 Transport 2 47 Data Communications, Jonny Pettersson, UmU

Chapt er 3: Summary

❒ pr inciples behind

t r anspor t layer ser vices:

❍ mult iplexing/ demult iplexing ❍ reliable dat a t r ansf er ❍ f low cont rol ❍ congest ion cont rol

❒ inst ant iat ion and

implement at ion in t he I nt ernet

❍ UDP ❍ TCP

Next :

❒ leaving t he net work

“edge” (applicat ion t ransport layer)

❒ int o t he net work “core”