Kapittel 3 · Transportlaget

Transportlaget

Fra enkel multipleksing og UDP til pålitelig TCP, metningskontroll og QUIC.

Overblikk

Det store bildet

Transportlaget bygger bro mellom det upålitelige nettverket og applikasjonene som krever orden og garantier.

Transportlaget er som forskjellen mellom å sende et postkort og et rekommandert brev. Et postkort er raskt og billig — du skriver det, putter det i postkassen, og håper det kommer frem. Du får aldri vite om mottakeren fikk det. Et rekommandert brev koster mer innsats (kvittering, sporing, signatur ved mottak), men du vet at det kom frem. I nettverksverdenen er UDP postkortet og TCP det rekommanderte brevet.

Nettverkslaget (IP) leverer pakker mellom maskiner — men det gir ingen garantier. Pakker kan forsvinne, komme i feil rekkefølge, eller dupliseres. Transportlaget sitter oppå IP og tilbyr to vidt forskjellige tjenester til applikasjonene: UDP legger bare til portnumre (slik at riktig prosess får pakken) og en enkel sjekksum, men arver ellers IP sin «best effort»-leveranse. TCP legger til pålitelig levering, rekkefølge-garanti, flytkontroll og metningskontroll — alt det IP mangler.

Vert A Applikasjon Transportlaget UDP / TCP Nettverkslaget (IP) Lenke + fysisk Vert B Applikasjon Transportlaget UDP / TCP Nettverkslaget (IP) Lenke + fysisk UDP: «fire and forget» TCP: data + ACK (pålitelig) IP: «best effort» — ingen garantier
Transportlaget sitter mellom applikasjonen og nettverkslaget. UDP sender data rett av gårde uten å vente på svar. TCP bygger en pålitelig toveis-forbindelse med kvitteringer (ACK) og retransmisjon.
Når brukes hva?

Når du laster ned en fil, brukes TCP fordi hver eneste byte må komme frem i riktig rekkefølge. Når du snakker på Discord, brukes UDP fordi det er viktigere at lyden kommer raskt enn at hvert eneste lydpakke kommer frem — en tapt pakke gir et lite hakk, men en forsinket pakke gjør samtalen ubrukelig.

Kapittelet bygger seg opp lag for lag: først multipleksing og UDP (det enkle), deretter prinsippene bak pålitelig dataoverføring (rdt-protokollene), så TCP med alt den innebærer, og til slutt metningskontroll — mekanismene som hindrer Internett i å kollapse under sin egen trafikk.

Flashcards

Rask repetisjon

Åpne spørsmål i tilfeldig rekkefølge. Klikk kortet for å snu — bruk ← / → for å bla, mellomrom for å snu, R for å shuffle.

Spørsmål

 

Klikk eller mellomrom for å vise svar
Svar
 
1 / 1

Test deg selv

Sjekk om du har forstått de viktigste konseptene fra dette kapittelet.

Spørsmål 1 · Lett
Hva er multiplexing og demultiplexing i transportlaget?
Portnumre brukes til å levere data til riktig prosess på riktig vert.
Spørsmål 2 · Middels
Hva er størrelsen på UDP-headeren, og hva inneholder den?
UDP-headeren er alltid 8 byte og består av fire 16-bits felt: kildeport, destinasjonsport, lengde (hele segmentet) og sjekksum. Det gir lav overhead sammenliknet med TCP.
Spørsmål 3 · Vanskelig
Hva er begrensningene ved enkel sjekksumdeteksjon?
Sjekksum oppdager mange feil, men kan i sjeldne tilfeller overse bestemte bitmønstre.
Spørsmål 4 · Middels
Forklar stop-and-wait-prinsippet.
Stop-and-wait tillater kun én utestående pakke før avsender må vente på ACK.
Spørsmål 5 · Lett
Hvorfor øker pipelining overføringseffektiviteten?
Pipelining holder flere pakker i flyt samtidig og reduserer tomgang mellom RTT-er.
Spørsmål 6 · Vanskelig
Hva skjer i Go-Back-N ved pakketap?
Go-Back-N sender den tapte pakken og alle etterfølgende pakker i vinduet på nytt.
Spørsmål 7 · Middels
Hva skjer i Selective Repeat ved pakketap?
Selective Repeat retransmitterer kun de manglende pakkene og bufferer resten.
Spørsmål 8 · Vanskelig
Hva er rollen til sekvensnumre i pålitelig dataoverføring?
Sekvensnumre gjør det mulig å oppdage duplikater og rekonstruere riktig rekkefølge.
Spørsmål 9 · Lett
Hva er kumulative ACK-er i TCP?
Et ACK-nummer bekrefter at alle bytes før nummeret er mottatt korrekt.
Spørsmål 10 · Vanskelig
Forklar treveis håndtrykk (three-way handshake) i TCP.
Treveis håndtrykk: klient sender SYN (med eget ISN), server svarer med SYN-ACK (med serverens ISN og ACK på klientens), klient bekrefter med ACK. Etter dette er sekvensnumre synkronisert i begge retninger og forbindelsen er klar til dataoverføring.
Spørsmål 11 · Middels
Hva er flytkontroll i TCP, og hvordan fungerer rwnd?
Mottakeren annonserer rwnd for å hindre at avsender oversvømmer mottaksbufferen.
Spørsmål 12 · Vanskelig
Hva er cwnd, og hvilken rolle spiller det i overbelastningskontroll?
cwnd (congestion window) er senderens eget vindu mot nettverksmetning. Mengden data «in flight» er begrenset av min(cwnd, rwnd) — det minste av metningsvinduet og mottakerens receive window. Effektiv sendefart er omtrent cwnd/RTT når rwnd ikke er flaskehalsen.
Spørsmål 13 · Lett
Forklar slow start i TCP.
Slow start starter cwnd på 1 MSS og dobles for hvert RTT (én økning per mottatt ACK) — altså eksponentiell vekst. Fasen avsluttes når cwnd når ssthresh-terskelen eller ved pakketap, og TCP går over til lineær congestion avoidance.
Spørsmål 14 · Middels
Hva skjer i TCP under congestion avoidance-fasen?
I congestion avoidance øker cwnd lineært, omtrent 1 MSS per RTT.
Spørsmål 15 · Vanskelig
Hva er AIMD-prinsippet i TCP-overbelastningskontroll?
AIMD (Additive Increase, Multiplicative Decrease): cwnd økes lineært med 1 MSS per RTT (additiv), men halveres ved tap (multiplikativ). Dette konvergerer mot rettferdig kapasitetsdeling mellom samtidige forbindelser på samme flaskehals.
Spørsmål 16 · Middels
Hvordan reagerer klassisk TCP Reno på en timeout?
Ved timeout (klassisk Reno, samme som Tahoe her): ssthresh = cwnd/2, cwnd = 1 MSS, og TCP går tilbake til slow start. Timeout tyder på alvorlig tap eller lang stillestand, så senderen starter på nytt fra bunnen i stedet for fast recovery.
Spørsmål 17 · Lett
Hva indikerer tre duplikat-ACK-er i TCP?
Tre duplikat-ACK-er tolkes som sannsynlig tap og utløser fast retransmit før timeout.
Spørsmål 18 · Vanskelig
Forklar fast recovery i TCP Reno.
Etter fast retransmit (utløst av tre duplikat-ACK) setter TCP Reno ssthresh til cwnd/2 og cwnd til ssthresh+3, og fortsetter i congestion avoidance i stedet for å starte slow start på nytt. Forbindelsen holder høyere gjennomstrømning enn ved timeout.
Spørsmål 19 · Middels
Hva er forholdet mellom MTU og MSS?
MSS er nyttelaststørrelsen TCP kan sende uten IP-fragmentering gitt aktuell MTU.
Spørsmål 20 · Vanskelig
Hvordan estimerer TCP RTT for retransmisjonsstimeren?
TCP måler SampleRTT på kvitterte segmenter og glatter med EWMA: EstimatedRTT = (1−α)·EstimatedRTT + α·SampleRTT (typisk α = 1/8). Avvik glattes til DevRTT = (1−β)·DevRTT + β·|SampleRTT − EstimatedRTT| (typisk β = 1/4). Retransmisjonstimer: TimeoutInterval = EstimatedRTT + 4·DevRTT — stor margin når RTT svinger, tettere når nettet er stabilt.
Spørsmål 21 · Middels
Hva betyr det at TCP-sekvensnumre er byte-orienterte?
Sekvensnummeret peker på første byte i segmentets nyttelast, ikke på pakketeller.
Spørsmål 22 · Vanskelig
Hva er head-of-line blocking i TCP?
Tap av ett segment kan blokkere levering av senere data selv om de allerede er mottatt.
Spørsmål 23 · Middels
Hva skjer typisk i TCP Reno når avsenderen mottar tre duplikat-ACK for samme segment?
Avsenderen tolker det som tegn på et pakketap uten å vente på timeout: den retransmitterer det mistede segmentet raskt (fast retransmit) og går inn i fast recovery — cwnd reduseres (typisk halveres) i stedet for å gå helt tilbake til én MSS som ved timeout.
Spørsmål 24 · Middels
Hva er forskjellen mellom well-known porter og ephemeral porter?
Servere lytter ofte på velkjente porter, mens klienter bruker midlertidige ephemeral porter.
Spørsmål 25 · Vanskelig
Hva er en pseudo-header i transportsjekksummen?
Pseudo-headeren binder kontrollsummen til IP-adressene og protokollfeltet for ekstra beskyttelse.