Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

TDAT2004-A Datakommunikasjon med nettverksprogrammering

Oppgave 6 - Vedvarende forbindelser

Av Håvard Langdal og Tjabe Johannes van Lessen

Widget Connector
urlhttps://www.youtube.com/watch?v=R44zVx1VvmA&feature=youtu.be

1. Innledning

Vedvarende forbindelser er en del av Applikasjonslaget, mer spesifikt HTTP (Hypertext Transfer Protocol). Vedvarende forbindelser går ut på forbindelse-håndtering innad i protokollen (HTTP).

I HTTP 1.0 måtte alle objektene som trengtes for et nettsted lastes inn en etter en gjennom hver sin forbindelse. Dette var en tungvint måte å laste inn objekter på, så i HTTP 1.1 kunne det lastes ned flere objekter over samme forbindelse. Denne metoden kalles Vedvarende forbindelser.


2. Ønsket funksjonalitet  

Ved at opp- og nedkobling av forbindelser ikke skjer mellom hver overføring unngår man at tid kastes vekk. Man vil laste ned flere ting uten å vente på svar, altså kalt pipelining.
Raskere behandling av forespørsler fordi det ikke blir brukt tid på opp- og nedkobling av forbindelser, det er ikke mye tid en slik opp- og nedkobling tar, men satt i en sammenheng der det skal skje veldig mye er det unødvendig. Under viser vi kort den ønskede og faktiske funksjonaliteten og forskjellen fra HTTP/1.0 og HTTP/1.1. Dette viser ikke i detalj hva som skjer, men det viser hvor og hva man kan spare tid på.
Image Removed
Image Added

3. Virkemåte

Beskriv hvordan ting fungerer og gjøres. Oppbygning og struktur. Forklare med illustrasjoner eller skjermklipp, bilder eller analyse av pakkefangst.

Tekst -> illustrasjon(wireshark?)

Håndtering av vedvarende forbindelser styres av headerlinjene. Eksempel:

Klienten skriver(sender med http-forespørsel):

Connection   Connection: Keep-Alive
   Webtjener svarer :Keep alive: timeout 15, max=96

Så enkelt legger man med ekstra funksjonalitet som igjen gjør at man kan spare en del tid på å koble ned og koble opp hele tiden.
Headerlinjene Keep Alive : Timeout = heltall, som tilsvarer antall sekund klienten har å sende en ny forespørsel før koblingen lukkes. Max = heltall, representerer hvor mange objekter som kan leses før forbindelsen lukkes.

Slik ser en typisk http-get forespørsel ut. Legg merke til at HTTP/1.1 er Connection: keep-alive standard.



Her er svaret fra tjeneren. Legg merke til at headerlinjen Keep-Alive inneholder litt data som er relevant for hvordan opp- og nedkoblingen fungerer.


 

4. Referanser

Verktøy:

 Postman

 Wireshark

http://www.datakom.no/innhold/datakom-kap3.pdf 

https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html

https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/HTTP_persistent_connection.svg/300px-HTTP_persistent_connection.svg.png illustrasjon