TCP: Overblikk RFCs: 793, 1122, 1323, 2018,

Like dokumenter
Transportlaget. Transporttjenester og protokoll. Overblikk: Mål: nettlaget: dataoverføring mellom endesystemer

Linklaget. Olav Lysne. (med bidrag fra Stein Gjessing og Frank Eliassen) Oppsummering 1

ITF20205 Datakommunikasjon - høsten 2011

Løsningsforslag Gruppeoppgaver, 28. april 2. mai. 1. Metningskontroll ( Congestion control ) og ressursallokering.

Alle enheter som skal sende datapakker fra forskjellige strømmer inn på samme link må forholde seg til hvordan strømmene skal prioriteres.

Kapittel 4: Transportlaget

IT Grunnkurs Nettverk 3 av 4

Transport - laget (ende-til-ende protokoller) Internett Best-effort overføring. Best-effort nett kvaliteter

KTN1 - Design av forbindelsesorientert protokoll

Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/9/2005 1

+ % + % #% % ) % 6 % % 1& % 1& 7 7 % % * % % * % + %%,- %%, %*%..% % 8%% #% % 7 % + %*% # %+ 90: 3 # 1 #% + & 2%%, %%, %*% %+ /0 #.%%,. ;*#..< 0 4 0%.

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Forelesning 1. Introduksjon til (eller repetisjon av) TCP/IP Datasikkerhet

Detaljerte funksjoner i datanett

Løsningsforslag. Datakommunikasjon

Hva består Internett av?

Praktisk informasjon. Forelesning 1. Forelesningsform. Lærebok. Lærebok forts. Eksamen. Forelesninger. ØvingerØvinger

Computer Networks A. Tanenbaum

Linklaget - avslutning

Oppsummering: Linjesvitsjing kapasiteten er reservert, og svitsjing skjer etter et fast mønster. Linjesvitsj

Linklaget. Stop-and-Wait. Hvis vi ikke fyller opp røret. Fyll opp røret. Feildeteksjon/feilretting - pålitelig overføring

Gjennomgang av kap Kommunikasjonsformer Typer av nettverk Adressering og routing Ytelse Protokoller

in270 Datakommunikasjon, vår 03 forelesningsnotater, kap. 4

Flere detaljerte funksjoner i datanett

Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/17/2004 1

Forelesning Oppsummering

2EOLJDWRULVNRSSJDYHQU L GDWDNRPPXQLNDVMRQ + VWHQ.,QQOHYHULQJVIULVWRNWREHU *MHQQRPJnVWRUVGDJRNWREHU

Lagene spiller sammen

Obligatorisk oppgave nr 2 i datakommunikasjon. Høsten Innleveringsfrist: 04. november 2002 Gjennomgås: 7. november 2002

KTN1. Gruppe 502. Håkon Sandsmark, Torbjørn Kvåle, Kristoffer Eckhoff, Daniel Børseth og Steffen Amundsen

Sentrale deler av pensum i INF

Utvikling av TCP og RED-moduler i en Javabasert Nettverkssimulator

6107 Operativsystemer og nettverk

6107 Operativsystemer og nettverk

Løsningsforslag Gruppeoppgaver mars 2003

EKSAMEN. Emne: Datakommunikasjon

INF Hjemmeeksamen 2

6107 Operativsystemer og nettverk

Hva er en protokoll? INF1060 Introduksjon 2

INF3190 DATAKOMMUNIKASJON

TDT4110 IT Grunnkurs: Kommunikasjon og Nettverk. Læringsmål og pensum. Hva er et nettverk? Mål. Pensum

Sentrale deler av pensum i INF240. Hensikt. Pål Spilling og Kjell Åge Bringsrud

EKSAMEN. Emne: Datakommunikasjon. Dato: 30. Nov 2016 Eksamenstid: kl. 9:00 til kl. 13:00

Nettlaget. Nettlagets oppgaver

Datateknikk TELE1005-A 15H HiST-FT-IEFE

EKSAMEN. Emne: Datakommunikasjon

Detaljerte Funksjoner i Datanett

Medium Access Control (MAC) Linklaget avslutning. Kjell Åge Bringsrud kjellb. Foreleser: 14/02/2006 1

Nettverkslaget. Fragmentering/framsending Internetworking IP

Ennå litt mer detaljer: Flere detaljerte funksjoner i datanett

Transport - laget (ende-til-ende protokoller) Glidende vindu protokoll. Flyt kontroll. dataoverføringsfasen. Sender. Mottaker

Dypere forståelse av Linklaget Egenskaper ved Ethernet CSMA/CD

Løsningsforslag til EKSAMEN

Høgskolen i Telemark EKSAMEN Operativsystem og nettverk inkludert denne forsiden og vedlegg. Merknader:

Ennå litt mer detaljer: Flere detaljerte funksjoner i datanett

Gruppe KTN2 innlevering. Endringer gjort siden KTN1:

Tjenester i skyen. 19. desember

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

SLA og KPIer i skytjenester

UNIVERSITETET I OSLO

6105 Windows Server og datanett

Antall sider:5 (Inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

Løsningsforslag Gruppeoppgaver, januar INF240 Våren 2003

Brannmurer. fire wall (noun): A fireproof wall used as a barrier to prevent spread of fire.

6105 Operativsystem og nettverk

Høgskoleni Østfold EKSAMEN. Emnekode: Emne: ITF20205 Datakommunikasjon. Dato: 04. Des 2015 Eksamenstid: kl. 9:00 til kl. 13:00

PRADS PASSIVE REAL-TIME ASSET DETECTION SYSTEM. Edward Fjellskål & Kacper Wysocki

Linklaget - direkte. forbindelser mellom noder. Foreleser: Kjell Åge Bringsrud kjellb 2/8/2005 1

Temaer: r Nettlagets oppgaver r Rutingprinsipp: veivalg r Hierarkisk ruting r IP r Internettets ruting protokoller. m intra-domain.

Eksamensoppgave/eksamensoppgåve i

6107 Operativsystemer og nettverk

Kommunikasjonsnett. Et kommunikasjonsnett er utstyr (maskinvare og programvare) for utveksling av informasjon

Internettets Overlay Arkitektur

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

Linklaget. Feildeteksjon/feilretting. Feil-deteksjon. Feildeteksjon/feilretting - pålitelig overføring. Oppgaver: 1. Finne feil 2.

UNIVERSITETET I OSLO

INF2270. Input / Output (I/O)

Kapittel 5 Nettverkslaget

Litt mer detaljer om: Detaljerte funksjoner i datanett. Fysisk Lag. Multipleksing

Computer Networks A. Tanenbaum

INF Hjemmeeksamen 1 - Vår 2014 Bridging på linklaget

Det matematisk-naturvitenskapelige fakultet

6107 Operativsystemer og nettverk

6105 Windows Server og datanett

6105 Windows Server og datanett

LØSNINGSFORSLAG; INF-240 Våren 2002

INF3190 Obligatorisk oppgave: Linklagets flytkontroll

Løsningsforslag EKSAMEN

MTU i nettverk Ei lita innføring i generelt nettverk. Av Yngve Solås Nesse Bildeseksjonen/MTA/Haukeland universitetssjukehus

IP Internet. Tjenestemodell. Sammensetning av nettverk. Protokollstack

Kap 3: Anvendelser av Internett

TwidoSuite kommunikasjon

Introduksjon til nettverksteknologi

Hva er en protokoll? Hva er Internet?

6105 Operativsystem og nettverk

Input/Output. når tema pensum. 13/4 busser, sammenkobling av maskiner /4 PIO, DMA, avbrudd/polling

Trådløse Systemer. Arild Trobe Engineering Manager. Trådløse Systemer for å løse.. dette?

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

EKSAMEN. Emne: Datakommunikasjon

Socket og ServerSocket

Transkript:

TCP: Overblikk RFCs: 793, 1122, 1323, 2018, 2581 socket dør Punkt-til-punkt: En sender, en mottaker Pålitelig ordnet byte strøm: Ingen meldingsgrenser Sliding window: TCP metnings og flytkontroll gir vindusstørrelse send & receive buffere applikasjon skriver data TCP send buffer segment apapplikasjon leser data TCP receive buffer socket dør full duplex data: Bidireksjonal dataflyt i samme forbindelse MSS: maximum segment size forbindelsesorientert: handshaking (utveksling av kontrollmeldinger) initialiserer tilstanden i begge endene før data sendes flytkontroll: Sender ikke mer data enn mottakeren kan akseptere Transportlaget 10 TCP segment struktur URG: urgent data (sjelden i bruk) ACK: ACK # PSH: push data nå (sjelden i bruk) RST, SYN, FIN: Forbindelses håndtering (setup, teardown kommandoer) Internett sjekksum (som i UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used UA P R S F checksum rcvr window size ptr urgent data Options (variable length) application data (variable length) Brukes av sliding window Brukes av sliding window Transportlaget 11 1

TCP sekvensnummer og ACKer Sekvensnummer byte strøm tallet til første byte i segmentets data ACKer: Sekvensnummer til neste byte som er ventet fra andre siden kumulativ ACK Q: hvordan håndterer mottaker data i feil rekkefølge TCP spec overlater dette til implementasjonen Bruker skriver C A ACKer Mottaket av C som ekko Maskin A Maskin B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 Et enkelt telnet scenario B ACKer Mottaket av C, sender C tilbake som ekko tid Transportlaget 12 TCP: pålitelig overføring event: data mottatt fra applikasjonen over Skap og send segment Vent på event event: timeout for segment med seq # y Send segment på nytt Forenklet sender under antakelse av Enveis dataflyt Ingen flyt- eller metningskontroll event: ACK mottatt, med ACK # y ACK prosessering Transportlaget 13 2

TCP: pålitelig data overføring Forenklet TCP sender 00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number 02 03 loop (forever) { 04 switch(event) 05 event: data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compute new timeout interval for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y > sendbase) { /* cumulative ACK of all data up to y */ 16 cancel all timers for segments with sequence numbers < y 17 sendbase = y 18 } 19 else { /* a duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y == 3) { 22 /* TCP fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 26 } /* end of loop forever */ Transportlaget 14 TCP ACK generering [RFC 1122, RFC 2581] Event Ordnet segmentmottak, Ingen hull, Alt annet er allerede ACKet Ordnet segmentmottak, Ingen hull, en ACK på etterskudd Uordnet segmentmottak Høyere seq. # enn ventet Hull påvist Mottak av segment som delvis Eller helt fyller hullet TCP Mottaker aksjon forskinket ACK. Vent opp til 500ms På neste segment. Hvis intet kommer, send ACK Send en enkelt kumulativ ACK umiddelbart send duplikat ACK som indikerer seq. # Til neste ventede byte send ACK umiddelbart dersom segmentet starter i nedre ende av hullet Transportlaget 15 3

TCP: retransmisjons-scenarier Maskin A Maskin B Maskin A Maskin B Seq=92, 8 bytes data timeout Seq=92, 8 bytes data X tap ACK=100 Seq=92, 8 bytes data Seq=100 timeout Seq=92 timeout Seq=100, 20 bytes data ACK=100 ACK=120 Seq=92, 8 bytes data ACK=100 ACK=120 tid tapt ACK scenario tid For tidlig timeout, kumulative ACKer Transportlaget 16 TCP Flytkontroll flytkontroll sender sender ikke raskere enn at mottaker klarer å svelge unna RcvBuffer = størrelse på TCP Receive Buffer RcvWindow = størrelse på ledig plass i Buffer mottaker buffering mottaker: informerer sender eksplisitt om hvor mye bufferplass han har ledig RcvWindow felt i TCP segment sender: holder mengden av sendte uackede data mindre enn det siste RcvWindow han mottok Transportlaget 17 4

TCP Round Trip Time og Timeout Q: hvordan setter man TCP timeout verdien? Lenger enn RTT merk: RTT vil variere For kort: prematur timeout unødvendige retransmisjoner For lang: langsom reaksjon på tap av segment. Q: hvordan estimere RTT? SampleRTT: målt tid fra segmentsending til mottak av ACK Ignorer retransmisjoner og kumulativt ACKede segmenter SampleRTT vil variere, ønsker beregnet RTT som er mer stabil Bruk flere målinger, ikke bare siste SampleRTT Transportlaget 18 TCP Round Trip Time og Timeout EstimatedRTT = (1-x)*EstimatedRTT + x*samplertt Eksponensielt vektet flytende gjennomsnitt. Innflytelsen til en måling synker eksponensielt Typisk verdi for x: 0.1 Setting av timeout EstimtedRTT pluss sikkerhetsmargin Stor variasjon i EstimatedRTT -> større sikkerhetsmargin Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x* SampleRTT-EstimatedRTT Transportlaget 19 5

Prinsipper for metningskontroll Metning: uformelt: for mange kilder sender data for fort til at nettverket klarer å håndtere det Ikke det samme som flytkontroll! Manifestasjoner av metning: pakketap (buffer overflow) long delays (køing i rutere) Et av de virkelig store problemene! Transportlaget 24 Årsaker til/kostnader ved metning: scenario 1 To sendere to mottakere En ruter, uendelige bufre Ingen retransmisjon Lange forsinkelser ved metning Maksimum gjennomstrømning Transportlaget 25 6

Årsaker til/kostnader ved metning: scenario 2 En ruter, endelige bufre sender retransmiterer tapte pakker Transportlaget 26 Årsaker til/kostnader ved metning: scenario 2 alltid: λ = λ in out perfekt retransmisjon bare ved tap: λ > λ in out Retransmisjon av forsinkede (ikke tapte) pakker gjør λ større in (enn det perfekte tilfelle) for samme λ out kostnader ved metning : Mer arbeid (retransmisjoner) for gitt gjennomstrømning Unødvendige retransmisjoner: link videresender flere kopier av samme pakke Transportlaget 27 7

Årsaker til/kostnader ved metning: scenario 3 Fire sendere Stier med flere hopp timeout/retransmisjon Q: hva skjer når og øker? λ in λ in Transportlaget 28 Årsaker til/kostnader ved metning: scenario 3 En annen kostnad ved metning: Når pakker blir kastet er all transmisjonskapasitet brukt for å få pakken så langt bortkastet. Transportlaget 29 8

Tilnærminger til metningskontroll To vanlige tilnærminger: Ende-ende metningskontroll: Ingen eksplisitt feedback fra nettverket Metning detekteres ved observert tap og forsinkelse Denne tilnærmingen tas av TCP Nettverksassistert metningskontroll: Rutere gir feedback til endesystemer Ett bit indikerer metning (SNA, DECbit, TCP/IP ECN, ATM) Eksplisitt senderate Transportlaget 30 Eksempel: ATM ABR metningskontroll ABR: available bit rate: elastisk tjeneste Dersom senderens sti er underbelastet : Sender bør bruke tilgjengelig båndbredde Om senderens sti er mettet Sender strupes til minimum garantert rate RM (resource management) celler: Sendt av sender innimellom datacellene Bit i RM cellen satt av svitsjene ( network-assisted ) NI bit: ingen økning i raten (mild metning) CI bit: metningsindikasjon RM cellene returnert til sender med bits intakt. Transportlaget 31 9

Eksempel: ATM ABR metningskontroll to-byte ER (explicit rate) felt i RM celle Mettet svitsj kan senke ER verdi i cellen Senders sende rate blir minste tilgjengelige rate i stien. EFCI bit i data celler: satt til 1 i mettet svitsj Dersom datacellen før RM har EFCI satt, setter senderen CI bit i returnert RM celle. Transportlaget 32 TCP Metningskontroll ende-ende kontroll (ingen støtte fra nettverket) Senderaten begrenset av metnings-vindusstørrelse, Congwin, over segmenter: Congwin w segmenter, hvert med MSS byte sent i en RTT: throughput = w * MSS RTT Bytes/sek Transportlaget 33 10

TCP metningskontroll: testing for tilgjengelig båndbredde: ideellt: send så fort som mulig (Congwin så stor som mulig) uten tap øk Congwin til du får tap (metning) tap: senk Congwin, så start testing (økning) igjen to faser slow start unngå metning viktige variable: Congwin threshold: definerer terskel mellom to slow start fasermetningskontroll faser Transportlaget 34 TCP Slowstart Slowstart algoritmen initialize: Congwin = 1 for (each segment ACKed) Congwin++ until (loss event OR CongWin > threshold) RTT Maskin A Maskin B ett segment to segment fire segment Eksponensiell økning (per RTT) i vindusstørrelse (not so slow!) Ved tap: timeout (Tahoe TCP) og/eller tre duplikate ACKer (Reno TCP) time Transportlaget 35 11

TCP metningsunngåelse Metningsunngåelse /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 1 perform slowstart 1: TCP Reno dropper slowstart (fast recovery) etter tre duplikate ACKer Transportlaget 36 AIMD TCP metningsunngåelse: AIMD: additive increase, multiplicative decrease Øk vinduet med 1 per RTT Reduser vindu med faktor 2 ved tap TCP Fairness Fairness mål: om N TCP sesjoner deler den samme flaskehalslinken, bør hver av dem få 1/N av linkkapasiteten TCP forbindelse 1 TCP forbindelse 2 Flaskehalsrouter Kapasitet R Transportlaget 37 12

Hvorfor er TCP fair? To konkurrerende sesjoner: Additive increase derivert lik 1, så lenge throughput øker multiplicative decrease senker throughput proporsjonalt R Forbindelse 2 throughput Forbindelse 1 throughput Lik andel av båndbredden tap: senk vindusstørrelsen med faktor 2 metningsunngåelse: additive increase tap: senk vindusstørrelsen med faktor 2 metningsunngåelse: additive increase R Transportlaget 38 TCP modellering av forsinkelse Q: Hvor lang tid tar det å motta et objekt fra en Web server etter at forespørselen er sendt? Oppretting av TCP forbidelse dataoverføringsforsinkelse Notasjon, antakelser: Anta en link mellom klient og tjener med rate R Anta: fast metningsvindu, W segmenter S: MSS (bits) O: object size (bits) Ingen retrasmisjoner To tilfeller må vurderes: WS/R > RTT + S/R: ACK for første segment i vindu kommer tilbake før data tilsvarende hele viduet er sendt. WS/R < RTT + S/R: vent på ACK etter å ha sendt de data som vinduet tillater Transportlaget 39 13

TCP forsinkelsesmodellering K:= O/WS Tilfelle 1: latency = 2RTT + O/R Tilfelle 2: latency = 2RTT + O/R + (K-1)[S/R + RTT - WS/R] Transportlaget 40 TCP forsinkelsesmodellering: Slow Start Anta så at vindusstørrelsen øker som i Slow Start. Forsinkelsen til et objekt av størrelse O er: O ' S $ P Latency = 2 RTT + + P RTT! (2! 1) R % + & R" # hvor P er antallet ganger TCP stopper hos tjeneren P = min { Q, K! 1} S R - hvor Q er antallet ganger tjeneren ville stoppe om O var uendelig stort - og K er antallet vinduer som trengs for å dekke objektet Transportlaget 41 14

Metoder for å unngå metning Transportlaget 42 TCP sin strategi kontroller metning når det skjer å øke belastningen helt til metning detekteres, trekke seg tilbake igjen, for så å øke på nytt Alternativ strategi å forutsi når nettet holder på å gå i metning, og så redusere senderaten akkurat før pakker går tapt dette blir altså å unngå metningsproblemer i stedet for metningskontroll To muligheter ruter-sentrisk: DECbit og RED Gateways endemaskin-sentrisk: TCP Vegas Transportlaget 43 15

DECbit Legg til et metningsbit i hver pakkeheader Ruter følger gj.snittlig kølengde over siste busy+idle sykel + nåværende busysykel. sett metningsbit dersom gjenomsnittet er større enn 1 når pakken mottas forsøker å balansere gjennomstrømning mot forsinkelse Queue length Current time Previous cycle Averaging interval Current cycle Time Transportlaget 44 Endemaskinene destinasjonen gir ekko tilbake til kilden kilden merker seg hvor mange pakker som resulterer i et satt metningsbit hvis mindre enn 50% av siste vindus pakker hadde satt metningsbit, øk CongestionWindow med 1 pakke dersom 50% eller mer av siste vindus pakker hadde satt metningsbit, så multipliser CongestionWindow med 0.875 Transportlaget 45 16

Random Early Detection (RED) Gateways Informasjonsflyten er implisitt bare dropp en pakke (TCP vil gå i timeout) kan i prinsippet gjøres eksplisitt ved å merke pakken Tidlig tilfeldig dropping av pakker i stedet for å vente til køen blir full, dropp noen pakker i henhold til en sannsynlighet (drop probability) når kølengden er over et visst nivå (drop level) RED: detaljer regn ut gjennomsnittlig kølengde: AvgLen=(1-Weight)*AvgLen+Weight*SampleLen 0 < Weight < 1 (vanligvis 0.002) SampleLen er kølengden hver gang en pakke ankommer Transportlaget 46 To terskler for kølengde if AvgLen MinThreshold then legg pakken i køen if MinThreshold < AvgLen < MaxThreshold regn ut sannsynligheten P dropp pakken med sannsynlighet P if MaxThreshold AvgLen dropp pakken MaxThreshold MinThreshold AvgLen Transportlaget 47 17

Sannsynlighet P flytende funksjon av AvgLen og hvor lenge siden forrige drop. Variabelen count holder rede på antallet nye pakker som er lagt inn i køen (ikke droppet) mens AvgLen lå mellom de to tersklene TempP = MaxP * (AvgLen - MinThreshold) /(MaxThreshold - MinThreshold) P = TempP/(1 - count * TempP) Transportlaget 48 Merk sannsynligheten for å droppe pakker fra en gitt flyt er grovt sett proporsjonal med størrelsen på flyten MaxP vil typisk være 0.02. Det betyr at når gjennomsnittlig kølengde er midt mellom terskelene vil omtrent 1 av 50 pakker bli kastet. Når trafikken er bursty bør MinThreshold være høy nok til at utnyttelsen av linkene er akseptabel. Differansen mellom tersklene bør være større enn den typiske økningen i beregnet gjennomsnittlig kølengde i en RTT. For dagens Internettrafikk er det rimelig å la MaxThreshold være MinThreshold multiplisert med 2. Transportlaget 49 18

TCP Vegas Ide: Kilden ser etter tegn til at en ruter nærmer seg metning -- f. eks ved at RTT vokser den opplevde senderaten flater ut Transportlaget 50 Ide: kilden ser etter tegn til at ruterens kø bygger seg opp og metning er på vei, ved f. eks at RTT stiger Senderaten flater ut Kort strek er sendte 70 60 50 B 40 K 30 20 10 s p B K g 1100 n i r 900 e d 700 t n 500 u e o 300 S r 100 n i e z i s 10 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 Time (seconds) 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 Time (seconds) pakker Lang strek er når en retransmittert pakke ble sendt første gang Punkt markerer timeout hos sender e u e u Q 5 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 Time (seconds) Transportlaget 51 19

Algoritme la BaseRTT være minimum av alle målte RTTer (vanligvis RTT til den første pakken) dersom vi ikke overforbruker forbindelsen kan vi anta ExpectedRate = CongestionWindow / BaseRTT kilden regner ut den faktiske sendraten (ActualRate) en gang per RTT kilden sammenligner ActualRate med ExpectedRate: Diff = ExpectedRate - ActualRate if Diff < α increase CongestionWindow linearly else if Diff > β decrease CongestionWindow linearly else leave CongestionWindow unchanged Transportlaget 52 Parametre α: 1 pakke β: 3 pakker Eksempel på en trace Øverst: metningsvindu Under: ActualRate (svart) Expectedrate (blå) Intervall mellom α og β (skyggelagt) 70 60 50 B 40 K 30 20 10 s p B240 K200 160 M120 A 80 C 40 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Time (seconds) 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 Time (seconds) Transportlaget 53 20

Oppsummering Prinsipper på transportlaget multiplexing/demultiplexing Pålitelig overførig flytkontroll metningskontroll Eksempler i Tnternett UDP TCP Transportlaget 54 21