Kapittel 2 · Applikasjonslaget

Applikasjonslaget

Hvordan programmer på to vidt forskjellige maskiner — en mobil i Trondheim og en tjener i California — klarer å snakke sammen, sende websider, dele filer og strømme video. En reise gjennom prinsipper, protokoller og smarte triks.

Overblikk

Det store bildet

Applikasjonslaget er der all den nyttige kommunikasjonen faktisk skjer — resten av nettverksstakken eksisterer bare for å støtte det.

Tenk deg at du og en venn i et annet land snakker i telefon. Dere trenger ikke å vite noe om hvordan telefonnettverket fungerer — kobberkabler, sentraler, optiske fibrer — dere trenger bare å snakke samme språk. Applikasjonslaget er nettopp det: språkene datamaskiner snakker med hverandre. HTTP er språket for websider, SMTP er språket for e-post, og DNS er telefonkatalogen som lar deg slå opp hvem du vil snakke med. Under alt dette ligger transport-, nettverks- og linklaget — infrastrukturen — men applikasjonene dine trenger aldri å bry seg om detaljene der nede.

KLIENT Applikasjonslaget nettleser · e-postklient transport (TCP/UDP) network · link · physical styres av OS TJENER Applikasjonslaget webserver · mailserver transport (TCP/UDP) network · link · physical styres av OS nettskyen HTTP SMTP DNS-server «telefonkatalogen» Applikasjonslaget bryr seg ikke om hva som skjer inne i nettskyen — bare at meldinger kommer frem.
Applikasjonslagsprotokoller (HTTP, SMTP, DNS) kjører på endesystemene. Nettverksinfrastrukturen under er usynlig for applikasjonene.

Det er lett å tenke at Internett er én ting, men i virkeligheten er det en hel familie av protokoller som samarbeider. Når du skriver ntnu.no i nettleseren din, skjer det minst tre applikasjonslagsprotokoller: DNS finner IP-adressen til tjeneren, TCP oppretter en pålitelig forbindelse, og HTTP henter nettsiden. Alt dette skjer på under et sekund.

Kapittelets kjerneidé

Applikasjonsutviklere skriver bare kode for endesystemene — klienten og tjeneren. Ruterne i kjernen av nettverket kjører ingen brukerapplikasjoner; de bare videresender pakker. Det er derfor en student kan oppfinne en helt ny nettjeneste i kveld og rulle den ut over hele kloden i morgen, uten å endre noe som helst i nettverksinfrastrukturen.

I dette kapittelet ser vi på de viktigste mønstrene: klient–server vs. peer-to-peer (to helt forskjellige måter å organisere kommunikasjon på), protokollene HTTP, SMTP og DNS (som dekker web, e-post og navneoppslag), og til slutt socket-programmering — der du selv får skrive kode som snakker over nettverket.

Pensum i emnet (kapittel 2)

TTM4100 følger Kurose & Ross, 8. utgave, kapittel 2 i sin helhet, bortsett fra deler av avsnittet om BitTorrent (bokas s. 170–173). Vi dekker P2P-fordeling, formler og selv-skalering som i boka, men ikke BitTorrent-protokollen innvendig (f.eks. utvelgelse av peers og «tit-for-tat»). Teksten her holder seg til det pensumet krever og bruker generelle P2P-formuleringer der det er naturlig.

Flashcards

Rask repetisjon

Åpne spørsmål i tilfeldig rekkefølge, tilpasset TTM4100-pensum for Kurose kapittel 2 (unntatt detaljer om BitTorrent-protokollen på bokas s. 170–173). 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 kjennetegner klient–server-arkitektur?
Klient–server samler tjenestelogikk i alltid-tilgjengelige servere som betjener mange klienter.
Spørsmål 2 · Middels
Hva menes med selv-skalering i P2P-nettverk?
I P2P bidrar hver ny peer med både etterspørsel og opplastingskapasitet.
Spørsmål 3 · Vanskelig
Hvilken rolle spiller socket-grensesnittet mellom applikasjons- og transportlaget?
Socketen er API-et mellom applikasjon og transportlag for sending/mottak av data.
Spørsmål 4 · Middels
Hva tilbyr TCP applikasjoner?
TCP tilbyr pålitelig, ordnet byte-strøm med flyt- og overbelastningskontroll, men med mer overhead.
Spørsmål 5 · Lett
Hva tilbyr UDP applikasjoner?
UDP tilbyr lav latens og enkel datagramtransport uten leveringsgarantier.
Spørsmål 6 · Vanskelig
Forklar HTTP sin request–response-modell.
I HTTP initierer klienten forespørselen, og serveren svarer med statuslinje, headere og eventuelt innhold.
Spørsmål 7 · Middels
Hva betyr det at HTTP er stateless?
HTTP-serveren behandler hver forespørsel uavhengig av tidligere forespørsler.
Spørsmål 8 · Vanskelig
Hvordan brukes cookies for å håndtere tilstand i HTTP?
Cookies legger en klient-ID i forespørsler slik at serveren kan knytte handlinger til en sesjon.
Spørsmål 9 · Lett
Hva er persistent HTTP, og hva er fordelen?
Persistent HTTP reduserer antall TCP-oppsett og RTT-kostnad ved flere objekter.
Spørsmål 10 · Vanskelig
Hva er betinget GET, og hva brukes det til?
Betinget GET bruker If-Modified-Since-headeren med dato fra forrige henting. Serveren svarer med 304 Not Modified (uten body) hvis ressursen ikke er endret, og med 200 + ny body hvis den er endret. Sparer båndbredde og reduserer lastetid.
Spørsmål 11 · Middels
Hva er en webcache, og hva er fordelen med den?
En webcache kan svare lokalt på populære objekter og redusere både forsinkelse og backbone-trafikk.
Spørsmål 12 · Vanskelig
Hva er et CDN, og hvordan forbedrer det ytelse?
CDN-er flytter innhold nær brukeren med edge-servere for lavere latenstid og høyere skalerbarhet.
Spørsmål 13 · Lett
Forklar DASH-adaptiv videostrømming.
I DASH velger klienten bitrate per segment basert på målt throughput og bufferstatus.
Spørsmål 14 · Middels
Hvordan segmenteres video i adaptiv strømming?
Video deles i korte segmenter i flere kvaliteter for dynamisk tilpasning under avspilling.
Spørsmål 15 · Vanskelig
Hva kjennetegner SMTP som e-postprotokoll?
SMTP dytter e-post mellom servere og bruker kølagring når mottakerserver ikke er umiddelbart tilgjengelig.
Spørsmål 16 · Middels
Hva gjør IMAP, og hvordan skiller det seg fra SMTP?
IMAP er en mail-access-protokoll: mottakeren bruker den for å hente meldinger fra sin egen mailserver, og den lar klienter synkronisere mapper, flagg og meldingsstatus mens e-posten forblir lagret på serveren. SMTP er derimot en push-protokoll som flytter meldinger mellom mailservere (og fra avsenderens klient inn til hans egen server). Kort sagt: SMTP for å sende, IMAP (eller HTTP for webmail) for å hente.
Spørsmål 17 · Lett
Hva er DNS sin kjernefunksjon?
DNS oversetter domenenavn til IP-adresser slik at applikasjoner kan kontakte riktig vert.
Spørsmål 18 · Vanskelig
Forklar hierarkiet i DNS.
DNS er organisert i tre nivåer: rotnivå (13 logiske rotservere som er replikert til 1000+ fysiske instanser via anycast), TLD-nivå (f.eks. .no, .com) og autoritative navneservere for hvert enkelt domene. Hierarkiet fordeler last og gjør det skalerbart å betjene milliarder av oppslag daglig.
Spørsmål 19 · Middels
Forklar iterativt DNS-oppslag.
I iterativt DNS-oppslag spør klienten (eller lokal DNS-server) hver navneserver i tur og orden: rotserver gir TLD-adresse, TLD-server gir autoritativ server, autoritativ server gir endelig svar. Hver server gir kun et tips videre — ikke hele svaret.
Spørsmål 20 · Vanskelig
Hva er DNS-caching, og hva styrer TTL?
Caching reduserer oppslagstid og belastning, mens TTL begrenser hvor lenge et svar kan gjenbrukes.
Spørsmål 21 · Middels
Hva er MX-poster i DNS?
MX-poster peker til hvilke mailservere som mottar e-post for et domene.
Spørsmål 22 · Vanskelig
Hva er en velkomstsokkel i en TCP-server?
Velkomstsokkelen aksepterer nye forbindelser, og OS oppretter en egen forbindelsessokkel per klient.
Spørsmål 23 · Lett
Hvorfor bruker UDP-servere typisk én sokkel for alle klienter?
UDP har ikke forbindelser; samme sokkel håndterer datagrammer fra mange klienter.
Spørsmål 24 · Middels
Forklar de vanligste HTTP-metodene i et REST API.
GET leser ressurser, POST oppretter/trigger handlinger, PUT laster opp/erstatter en ressurs på en gitt URL, DELETE fjerner ressurser, og HEAD ber om hodet uten selve innholdet.
Spørsmål 25 · Vanskelig
Hva er HTTPS, og hva gir det?
HTTPS er HTTP over TLS og gir konfidensialitet, integritet og serverautentisering.