KOM - 3 Transport layer Flashcards

(91 cards)

1
Q

Hva menes med “logisk kommunikasjon” i transportlaget?

A

Det betyr at applikasjonsprosesser på ulike verter kan kommunisere som om de var direkte koblet sammen, selv om de fysisk kan være langt fra hverandre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvor er transportlagsprotokoller implementert?

A

I endesystemer, ikke i rutere.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hva kalles transportlagets pakker, og hva kalles nettverkslagets pakker?

A

Transportlagets pakker kalles segmenter, og nettverkslagets pakker kalles datagrammer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hva er forskjellen på transport- og nettverkslaget i forhold til logisk kommunikasjon?

A

Transportlaget gir logisk kommunikasjon mellom prosesser, mens nettverkslaget gir logisk kommunikasjon mellom verter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva tilbyr TCP som UDP ikke gjør?

A

Pålitelig dataoverføring, koblingsorientert tjeneste, flytkontroll, overbelastningskontroll, sekvensnummer og bekreftelser.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hva er hovedansvaret til transportlaget?

A

Å utvide IPs leveringstjeneste fra vert-til-vert til prosess-til-prosess levering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hva er demultipleksing?

A

Å levere data fra et segment til riktig applikasjonsprosess basert på portnumre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvilke to felter i segmentet brukes for multipleksing og demultipleksing?

A

Kilde-port-nummer og destinasjons-port-nummer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hva er forskjellen mellom UDP- og TCP-multipleksing?

A

UDP bruker en to-tuppel (dest IP, dest port), mens TCP bruker en fire-tuppel (kilde IP, kilde port, dest IP, dest port) for å identifisere en socket.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvorfor foretrekker noen applikasjoner UDP fremfor TCP?

A

Det gir lavere forsinkelse, ingen oppkobling, og mer kontroll over timing og overføring.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvordan fungerer koblingsløs multipleksing og demultipleksing i UDP?

A

UDP bruker portnumre for å identifisere hvilken applikasjon et segment tilhører. En UDP-socket identifiseres med en kombinasjon av destinasjons-IP og -port. Når data sendes, settes kilde- og destinasjonsportnumre i segmentet, som så leveres til riktig socket hos mottakeren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hva brukes kildeportnummeret til i UDP, og hvordan kan det hentes?

A

Kildeportnummeret fungerer som en returadresse slik at mottakeren kan sende data tilbake til avsenderen. I Python kan det hentes med recvfrom()-metoden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvordan kan flere klienter bruke samme destinasjonsport (f.eks. 80 for HTTP) for å kommunisere med samme webserver uten konflikt?

A

Hver TCP-forbindelse identifiseres unikt av en 4-tuppel: (kilde-IP, kildeport, destinasjons-IP, destinasjonsport). Selv om flere klienter bruker samme destinasjonsport, holdes forbindelsene adskilt fordi kilde-IP og/eller kildeport er forskjellige. Dette gjør at transportlaget kan skille forbindelsene og videresende data til riktig prosess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hva er hovedoppgavene til UDP som transportprotokoll?

A

UDP utfører kun multiplexing og demultiplexing, samt enkle feilkontroller. Det legger nesten ingenting til IP og gir applikasjonen direkte tilgang til nettverkslaget.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvorfor sies UDP å være en koblingsløs protokoll?

A

Fordi UDP ikke bruker noen form for handshaking mellom sender og mottaker før data sendes. Det oppretter ingen tilkoblingstilstand.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hva skjer når en applikasjon sender data via UDP?

A

Applikasjonen gir data til UDP, som legger til kilde- og destinasjonsportnummer, pakker dataene i et segment, og sender det videre til IP-laget for levering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hva gjør IP-laget med UDP-segmentet?

A

IP innkapsler UDP-segmentet i et IP-datagram og forsøker å levere det til mottakeren, hvor UDP bruker portnummeret til å levere data til riktig prosess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Nevn minst tre grunner til at noen applikasjoner foretrekker UDP fremfor TCP.

A
  1. Finere kontroll over når data sendes.
    1. Ingen tilkoblingsetablering (lav forsinkelse).
    2. Mindre tilstand og overhead, som gjør det enklere å støtte mange klienter.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hvorfor bruker DNS UDP og ikke TCP?

A

Fordi DNS trenger rask spørre-/svar-kommunikasjon uten forsinkelse fra TCPs tilkoblingsetablering. UDP lar DNS sende spørringer umiddelbart.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvor stor er header-overhead for UDP sammenlignet med TCP?

A

UDP har 8 bytes header, mens TCP har 20 bytes header.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Hva er en potensiell ulempe med at UDP ikke har congestion control?

A

Det kan føre til pakkekollaps i nettverket ved høy trafikk, fordi UDP ikke bremser sendingen under overbelastning, noe som kan skade både UDP- og TCP-trafikk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Er det mulig å oppnå pålitelig dataoverføring med UDP?

A

Ja, men da må applikasjonen selv implementere pålitelighet, f.eks. med egne mekanismer for bekreftelser og gjenutsending.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Hva består headeren i et UDP-segment av, og hva er funksjonen til hvert felt?

A

Headeren i et UDP-segment har fire felt, hver på 2 bytes:
1. Source port # – identifiserer avsenderens port.
2. Destination port # – brukes for å levere dataen til riktig prosess hos mottaker.
3. Length – angir total lengde på segmentet (header + data).
4. Checksum – brukes av mottaker for å oppdage feil i segmentet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Hvordan beregnes UDP Checksum, og hva er hensikten med den?

A

UDP Checksum brukes for feilsjekking – den hjelper mottakeren å oppdage om data har blitt endret under overføringen.
Beregningen gjøres slik:
1. Alle 16-bits ord i segmentet summeres (modulo 2^16).
2. Det tas 1’s komplement av denne summen.
3. Resultatet settes i checksum-feltet.

Eksempel:
* Ord: 011001, 010101, 100011
* Sum: 011001 + 010101 = 101110
* Ny sum: 101110 + 100011 = 010001 (med overflow)
* 1’s komplement: 101110
* Checksum = 101110

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Hva står «rdt» for i nettverkssammenheng?
Reliable Data Transfer – en modellfamilie av transportprotokoller som gradvis legges på mer mekanismer for å sikre feilfri og riktig rekkefølge på data.
26
Hvilke feil håndterer rdt 1.0, og hvilke mekanismer bruker den?
rdt 1.0 antar et perfekt kanal uten bit-feil eller pakke­tap, så den trenger ingen bekreftelser, sekvens­numre eller retransmisjon.
27
Hvordan utvider rdt 2.0 funksjonaliteten til rdt 1.0?
rdt 2.0 håndterer bit-feil ved å legge til checksum + eksplisitte ACK (positiv) og NAK (negativ) meldinger for hver pakke; ingen pakke-tap håndteres.
28
Hvorfor introduserer rdt 2.1 sekvensnummer (0 / 1)?
For å skille nye pakker fra duplikater som kan oppstå når en NAK/ACK blir korrupt eller tapt; mottaker aksepterer kun pakken med forventet sekvensnummer.
29
Hva er hovedidéen i rdt 2.2 sammenlignet med rdt 2.1?
rdt 2.2 eliminerer eksplisitt NAK: mottaker sender i stedet duplikat-ACK for den sist korrekte pakken; tolkningen av «manglende ACK» fungerer som implicit NAK.
30
Hvilken ny utfordring løser rdt 3.0, og hvilket verktøy bruker den?
rdt 3.0 håndterer pakke-tap (ikke bare bit-feil) ved å legge til timer/timeout: hvis senderen ikke mottar riktig ACK innen tidsfristen, sendes pakken på nytt.
31
Hva menes med «Stop-and-Wait» i rdt-protokollene 1.0–3.0?
Senderen sender én pakke, stopper og venter på ACK/NAK før neste pakke; enkelt men lavt gjennomløp på høylatens-lenker.
32
Hvordan oppdager mottakeren en korrupt pakke i rdt-protokollene?
Ved å beregne checksum over mottatt innhold og sammenligne med verdi i pakken; mis-match → pakke og medfølgende info forkastes.
33
Hva skjer dersom sekvensnummeret alene blir korrupt?
Checksum fanger feilen; mottaker forkaster hele pakken og gir NAK (eksplisitt eller implisitt). Senderen retransmitterer etter NAK eller timeout.
34
Hvilke tre hovedmekanismer danner kjernen i rdt 3.0?
Sekvensnumre (0/1), checksum (feildeteksjon) og timeout-styrt retransmisjon med ACK/duplikat-ACK.
35
Hva er hovedproblemet med rdt 3.0 når det gjelder ytelse?
rdt 3.0 bruker stop-and-wait, som fører til lav effektivitet fordi senderen venter på bekreftelse for hver pakke før neste sendes.
36
Hva er pipelining i sammenheng med dataoverføring?
En teknikk der avsenderen kan sende flere pakker uten å vente på bekreftelser; forbedrer utnyttelsen av nettverket og reduserer forsinkelse.
37
Hvilke to viktige konsekvenser har pipelining for protokollimplementasjon?
1. Sekvensnummerrommet må utvides. 2. Både sender og mottaker må kunne buffer flere pakker.
38
Hvorfor må sekvensnummerområdet utvides i pipelining?
Fordi det kan være flere uavhengige pakker i transitt samtidig, og hver må ha unikt sekvensnummer for å kunne identifiseres.
39
Hva er de to hovedstrategiene for feilgjenoppretting i pipelined protokoller?
1. Go-Back-N 2. Selektiv gjentakelse (Selective Repeat)
40
Hva er hovedforskjellen mellom Go-Back-N og Selective Repeat?
Go-Back-N sender alt på nytt fra en tapt pakke, mens Selective Repeat kun sender tapte pakker på nytt.
41
Hvorfor trenger avsenderen buffer i en pipelinet protokoll?
For å kunne sende flere pakker uten bekreftelse og kunne retransmittere tapte pakker.
42
Hva kan mottaker måtte gjøre i en pipelinet protokoll?
Buffer pakker som mottas ut av rekkefølge (gjelder Selective Repeat), og sende ACK for riktige pakker.
43
Hva representerer base og nextseqnum i GBN-protokollen?
base er sekvensnummeret til eldste ubekreftede pakke; nextseqnum er sekvensnummeret til neste pakke som skal sendes.
44
Hva er vinduet i Go-Back-N, og hva representerer det?
t flyttbart vindu på N pakker, som representerer grensene for hvor mange ubekreftede pakker som kan være i nettverket samtidig.
45
Hva skjer når GBN-senderen mottar en ACK for pakke n?
Det tolkes som en kumulativ bekreftelse for alle pakker opp til og med n.
46
Hvordan reagerer GBN-senderen på en timeout?
Den sender alle pakker fra base til nextseqnum - 1 på nytt.
47
Hvordan håndterer GBN-mottakeren pakker som kommer ute av rekkefølge?
De forkastes, og ACK for siste korrekt mottatte pakke sendes igjen.
48
Hva er hovedforskjellen mellom Go-Back-N og Selective Repeat?
GBN sender på nytt alle ubekreftede pakker ved feil, mens SR kun sender på nytt de spesifikke pakkene som ikke er bekreftet.
49
Hvordan håndterer Selective Repeat pakker som ankommer i feil rekkefølge?
De blir buffret, og brukes når de manglende pakkene med lavere sekvensnummer ankommer.
50
Hvorfor kan Go-Back-N være ineffektiv ved høy båndbredde og stor forsinkelse?
Fordi én feil kan føre til at mange pakker må sendes på nytt, selv om de fleste kom riktig frem.
51
Hva må mottakeren i Selective Repeat kunne gjøre som GBN-mottakeren ikke kan?
Godkjenne og lagre pakker individuelt, selv om de kommer ute av rekkefølge.
52
Hva betyr det at TCP er “koblingsorientert”?
Det betyr at begge ender må gjennomføre en “three-way handshake” før data kan sendes. Dette etablerer forbindelsen og initierer nødvendige parametere for overføringen.
53
Hva slags tjeneste tilbyr en TCP-kobling når det gjelder retning?
CP gir en full-dupleks-tjeneste, som betyr at data kan sendes i begge retninger samtidig.
54
Er TCP punkt-til-punkt eller multicast?
TCP er punkt-til-punkt, altså én sender og én mottaker per kobling.
55
Hva gjør TCP når applikasjonsdata sendes?
Dataene legges i en sende-buffer, pakkes i segmenter med TCP-header, og sendes til nettverkslaget for levering.
56
Hva er “MSS” i TCP og hva bestemmer verdien?
MSS står for “Maximum Segment Size” og angir hvor mye data som maks kan være i ett TCP-segment. Den er basert på MTU (Maximum Transmission Unit) i datalinklaget.
57
Hvordan behandles innkommende segmenter i TCP?
De legges i mottaker-bufferen på TCP-siden av koblingen, klare for applikasjonen.
58
Bruker TCP negative acknowledgements (NAK)?
Nei, TCP bruker ikke NAK – kun positive ACKs og mekanismer som timeout og duplikate ACKs for å oppdage tap.
59
Hva inneholder TCP-headeren, og hva brukes feltene til?
TCP-headeren inneholder: * Portnummer (kilde og destinasjon): multipleksing/demultipleksing * Sekvens- og bekreftelsesnummer: sikrer rekkefølge og pålitelighet * Receive window: flytkontroll * Flags (SYN, ACK, FIN osv.): koblingsstyring og styring av datalevering * Options-felt (valgfritt): brukes bl.a. for MSS, tidsstempling, vinduskalering * Checksum: feilkontroll * Header-lengde: angir lengde på headeren * Urgent pointer: peker til viktig data hvis URG-flagget er satt
60
Hva er hovedforskjellen på TCP og UDP når det gjelder header og funksjonalitet?
TCP har en større og mer kompleks header, og gir pålitelig og tilstandsfull dataoverføring med flytkontroll og koblingsstyring. UDP har en liten header og gir ingen garanti for levering.
61
Hva er Telnet, og hvorfor brukes det mindre i dag?
Telnet er en applikasjonslagsprotokoll for ekstern pålogging over TCP. Det er interaktivt, men ukryptert, og derfor usikkert. Det er i dag i stor grad erstattet av SSH, som gir kryptert kommunikasjon.
62
Hvorfor bruker TCP en timeoutmekanisme, og hva må timeoutverdien ta hensyn til?
TCP bruker timeout og re-sending for å håndtere tapte segmenter. Timeouten må være større enn koblingens round-trip time (RTT) – tiden det tar å sende et segment og motta tilhørende ACK – for å unngå unødvendige gjensendinger.
63
Hva er EstimatedRTT og SampleRTT, og hvordan oppdateres EstimatedRTT i TCP?
SampleRTT er en enkeltmåling av round-trip time (RTT) – tiden fra et segment sendes til dets ACK mottas. EstimatedRTT er en glidende gjennomsnittsverdi som estimerer RTT over tid. Den oppdateres slik: EstimatedRTT = (1 – α) · EstimatedRTT + α · SampleRTT, der α vanligvis er 0.125 for å gi en balansert vekt mellom nye og gamle målinger.
64
Hvordan setter TCP timeout-intervallet for re-sending?
Timeout beregnes som: TimeoutInterval = EstimatedRTT + 4 · DevRTT, der DevRTT er avviket mellom SampleRTT og EstimatedRTT. Ved timeout dobles intervallet. Når ACK mottas, oppdateres estimatene på nytt.
65
Hva betyr det at TCP bruker kumulative ACKs?
Kumulative ACKs betyr at en ACK med verdi n bekrefter at alle byte opp til, men ikke inkludert, byte n er korrekt mottatt. Hvis en ACK=120 mottas, betyr det at mottakeren har fått alle byte opp til og med 119. Dermed unngås unødvendig resend av tidligere pakker dersom senere pakker er mottatt.
66
Hva er rwnd i TCP, og hvordan beskytter det mottakeren mot overflyt?
rwnd (receive window) er hvor mye ledig plass det er i mottakerens TCP-buffer. Det beregnes slik: rwnd = RcvBuffer – (LastByteRcvd – LastByteRead) Dette beskytter mottakeren mot overflyt ved å gi senderen beskjed om hvor mye data den trygt kan sende. Hvis rwnd = 0, må senderen stoppe å sende til det igjen er plass. rwnd - ledig plass i buffer RcvBuffer - total plass i buffer LastByteRcvd - bytestrømnummeret på byten som ble sist mottatt fra nettverket LastByteRead - bytestrømnummeret på byten som ble sist lest fra bufferen.
67
What is the purpose of the TCP three-way handshake?
To establish a reliable TCP connection between client and server by synchronizing sequence numbers and acknowledging each side’s readiness.
68
What are the three steps in the TCP three-way handshake?
1. Client sends SYN 2. Server replies with SYN-ACK 3. Client sends ACK
69
What flag is set in the first segment sent by the client to initiate a TCP connection?
A: SYN flag (set to 1)
70
What does the server send in response to a SYN segment from the client?
What does the server send in response to a SYN segment from the client?
71
What does the client do after receiving the SYNACK from the server?
Sends an ACK with ACK = server_isn + 1 to complete the handshake
72
Why is it called a “three-way” handshake?
Because three segments are exchanged: SYN → SYNACK → ACK
73
74
What flag is used to initiate the termination of a TCP connection?
FIN flag
75
What are the steps for TCP connection termination initiated by the client?
1. Client sends FIN → enters FIN_WAIT_1 2. Server replies with ACK → client enters FIN_WAIT_2 3. Server sends FIN 4. Client sends ACK → enters TIME_WAIT
76
Why does the client enter TIME_WAIT after termination?
To ensure the last ACK is received by the server and to wait out any delayed segments
77
What are key TCP connection states?
Examples include SYN_SENT, ESTABLISHED, FIN_WAIT_1, TIME_WAIT, CLOSED
78
Hva er ende-til-ende overbelastningskontroll?
En metode der nettverkslaget ikke gir eksplisitt tilbakemelding. Avsenderen må utlede overbelastning basert på oppførsel som pakketap eller forsinkelse.
79
Hvilken metode for overbelastningskontroll bruker TCP?
TCP bruker ende-til-ende overbelastningskontroll, og oppdager overbelastning gjennom tidsavbrudd eller 3 dupliserte ACK-er.
80
Hva er nettverksassistert overbelastningskontroll?
En metode hvor ruterne gir eksplisitt tilbakemelding til avsenderen om overbelastning, for eksempel ved å sette en overbelastnings-bit eller sende en choke-pakke.
81
Hvordan kan rutere gi tilbakemelding om overbelastning?
1. Choke-pakke – sier direkte ifra til avsender 2. Overbelastningsbit – markeres i pakken, slik at mottaker kan varsle avsender
82
Hva er hovedforskjellen mellom ende-til-ende og nettverksassistert overbelastningskontroll?
Ende-til-ende baserer seg på at avsenderen tolker nettverksadferd, mens nettverksassistert bruker eksplisitt tilbakemelding fra rutere.
83
Hva er formålet med congestion window (cwnd) i TCP?
Å begrense mengden ubekreftet data som en TCP-avsender kan ha i nettverket, og dermed kontrollere sendingshastigheten.
84
Hvordan beregnes mengden ubekreftet data i TCP når man ignorerer rwnd?
LastByteSent – LastByteAcked ≤ cwnd
85
Hva betyr det at TCP er “self-clocking”?
At mottatte ACKs styrer tempoet på nye utsendelser, og dermed regulerer trafikken automatisk.
86
Hva skjer med cwnd ved en tapshendelse (timeout eller 3 dupliserte ACKs)?
cwnd reduseres dramatisk: * Ved timeout: cwnd settes til 1 MSS * Ved 3 dupliserte ACKs: cwnd halveres og TCP går til fast recovery
87
Hva gjør TCP i slow start?
Starter med cwnd = 1 MSS, og dobler cwnd omtrent hver RTT (ved å øke cwnd med 1 MSS per ACK).
88
Hva skjer i congestion avoidance-fasen?
cwnd økes lineært med 1 MSS per RTT for å unngå å overbelaste nettverket.
89
Hva er fast recovery i TCP?
En fase der cwnd økes med 1 MSS for hver duplikat ACK mottatt, og returnerer til congestion avoidance når det manglende segmentet er bekreftet.
90
Hva menes med at TCP bruker AIMD for congestion control?
Additive Increase: cwnd økes gradvis ved suksess Multiplicative Decrease: cwnd reduseres kraftig ved tap
91
Hva menes med fairness i TCP congestion control, og hvordan påvirkes dette av UDP?
Fairness handler om at flere TCP-tilkoblinger som deler en flaskehals skal få omtrent lik båndbredde over tid. TCP oppnår dette gjennom mekanismer som additive increase og multiplicative decrease (AIMD). UDP, derimot, har ingen innebygd congestion control, og kan sende så raskt som mulig. Dette gjør at UDP-trafikk kan overkjøre TCP-trafikk og skape urettferdig ressursbruk i nettet.