KOM - 2 Application Layer Flashcards
(64 cards)
Hva er klient–server-arkitektur?
Det er en modell der én alltid-på server tilbyr tjenester til mange klienter, som sender forespørsler. Et klassisk eksempel er en webserver som svarer på forespørsler fra nettlesere på klientmaskiner.
Hva er peer-to-peer (P2P) arkitektur?
I P2P-arkitektur kommuniserer enheter direkte uten dedikert server. Alle enheter (peers) kan både be om og tilby tjenester, noe som gir selvskalerende systemer som f.eks. fildelingsprogrammer.
Hva er tre store utfordringer for fremtidige P2P-applikasjoner?
- ISP-vennlighet: P2P belaster oppstrøms båndbredde i nettverk som ofte er optimalisert for nedstrøm.
- Sikkerhet: Å sikre et åpent og distribuert system er krevende.
- Incentiver: Det er vanskelig å motivere brukere til å dele sine egne ressurser (båndbredde, lagring, CPU).
Hva er forskjellen mellom klient- og server-prosesser i nettverkskommunikasjon?
- Klient-prosess: Den som initierer kommunikasjonen
- Server-prosess: Den som venter på å bli kontaktet for å starte økten
Hva er en socket i nettverkskommunikasjon, og hvordan fungerer den som analogi?
En socket er grensesnittet mellom applikasjonslaget og transportlaget i en vert. Den fungerer som en dør: Hvis en prosess er et hus, er socketen døren meldinger går gjennom for å komme til eller fra nettverket.
Hva er forholdet mellom en socket og et API i nettverksprogrammering?
En socket er et Application Programming Interface (API) mellom applikasjonen og nettverket. Det gir programmet en standard måte å sende og motta data over nettet via transportlaget.
Hva trengs for å adressere en prosess over nettverket, og hva brukes portnummer til?
En prosess må spesifisere:
1. IP-adressen til verten
2. Et portnummer som identifiserer den riktige prosessen på destinasjonsverten.
Portnummeret gjør det mulig å skille mellom ulike tjenester på samme enhet, f.eks. webserver (port 80) og e-postserver (port 25).
Hvilke fire egenskaper balanseres ofte når man velger en transportprotokoll?
Pålitelig datalevering – sikrer at data kommer frem korrekt og i riktig rekkefølge
2. Gjennomstrømming – hvor mye data som kan sendes per tidsenhet
3. Tid – hvor raskt og jevnt data leveres (latens og variasjon i forsinkelse)
4. Sikkerhet – beskyttelse av data via autentisering, kryptering og integritetssikring
Hva menes med pålitelig dataoverføring i transportlaget?
Det betyr at protokollen garanterer at data blir levert korrekt og komplett til mottakeren. Protokoller som ikke tilbyr dette, kan miste data, noe som kan være akseptabelt for tapstolerante applikasjoner som tale- og videostrømming.
Hva er forskjellen på båndbreddefølsomme og elastiske applikasjoner?
- Båndbreddefølsomme applikasjoner krever en viss minimumsgjennomstrømning for å fungere riktig, som videostrømming og samtaleapper.
- Elastiske applikasjoner fungerer med varierende båndbredde og tilpasser seg det som er tilgjengelig, som e-post og filoverføring.
Hva betyr timing-garantier i transportlaget?
Det er løfter om hvor raskt data skal leveres. For eksempel kan en garanti være at hver bit som sendes inn i socket-en på avsendersiden, når mottakerens socket innen 100 millisekunder.
Hvilke hovedtjenester tilbyr TCP til applikasjoner?
- Tilkoblingsorientert tjeneste – etablerer forbindelse mellom klient og server før dataoverføring (handshake).
- Pålitelig dataoverføring – sikrer at all data kommer frem uten feil og i riktig rekkefølge.
- Opphopningskontroll – justerer sendefarten hvis nettverket er overbelastet.
Hvilke tjenester tilbyr UDP som transportprotokoll?
- UDP er en enkel, lettvektsprotokoll uten tilkobling (connectionless).
- Den tilbyr upålitelig dataoverføring uten garanti for at pakker kommer fram.
- Ingen opphopningskontroll – UDP regulerer ikke sendefarten hvis nettet er overbelastet.
Hva definerer en applikasjonslagsprotokoll?
En applikasjonslagsprotokoll definerer:
* Hvilke meldinger som utveksles (f.eks. forespørsler og svar)
* Strukturen på meldingene (felt og avgrensning)
* Betydningen av feltene (semantikk)
* Regler for når og hvordan meldinger skal sendes og besvares
: Hva er HTTP, og hvordan fungerer det i samspill med TCP?
HTTP (HyperText Transfer Protocol) er en applikasjonslagsprotokoll som brukes til å utveksle meldinger mellom klient og server over internett. Det fungerer sammen med TCP, som sørger for pålitelig dataoverføring. HTTP er en stateless protocol, noe som betyr at serveren ikke husker informasjon om tidligere forespørsler fra klienten.
Hva er forskjellen på vedvarende og ikke-vedvarende TCP-tilkoblinger?
I en ikke-vedvarende tilkobling brukes én separat TCP-forbindelse for hver request/response-par, mens en vedvarende tilkobling gjenbruker samme TCP-forbindelse for flere request/response-par.
Hvordan fungerer HTTP med ikke-vedvarende (non-persistent) tilkoblinger?
For hvert objekt (f.eks. HTML-side eller bilde) åpnes en ny TCP-tilkobling.
1. Klienten oppretter en TCP-forbindelse.
2. Klienten sender en HTTP-request.
3. Serveren svarer med en HTTP-response.
4. Serveren lukker TCP-tilkoblingen.
5. Klienten mottar objektet og prosessen gjentas for neste objekt.
Dette fører til mange separate TCP-tilkoblinger og høy RTT.
Hva er “round-trip time (RTT)” og hvordan henger det sammen med TCP-tilkobling?
RTT er tiden det tar for en pakke å reise fra klient til server og tilbake. Før en HTTP-request kan sendes, må klienten etablere en TCP-tilkobling med serveren ved hjelp av en “three-way handshake”, som tar én RTT.
Hva er fordelen med vedvarende (persistent) tilkoblinger i HTTP sammenlignet med ikke-vedvarende tilkoblinger?
A:
Ved vedvarende tilkoblinger kan én TCP-forbindelse brukes til flere HTTP-forespørsler og -svar mellom samme klient og server, noe som reduserer behovet for å opprette nye tilkoblinger for hvert objekt og dermed sparer RTT og belastning på serveren.
What are the three components of the HTTP request line?
Method, URL, and HTTP version.
What is the difference between GET and POST requests regarding the entity body?
GET usually has no entity body, while POST includes one to send data.
Hvorfor bruker HTTP-servere informasjonskapsler (cookies)?
Fordi HTTP er tilstandsløs, og cookies gjør det mulig for servere å identifisere brukere og følge med på økter.
Hva er de fire komponentene i cookie-teknologi?
(1) Set-Cookie: i HTTP-respons, (2) Cookie: i HTTP-forespørsel, (3) en cookie-fil lagret i brukerens nettleser, og (4) en backend-database på serveren.
Hva gjør header-feltet Set-Cookie: i en HTTP-respons?
Det ber nettleseren om å lagre en cookie med spesifisert innhold.