You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

TDAT2004-A Datakommunikasjon med nettverksprogrammering

Oppgave 6 - Vedvarende forbindelser

Av Håvard Langdal og Tjabe Johannes van Lessen

 

1. Innledning

Hvor hører det valgte tema hjemme i lagmodellen?

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).

Hvilke standarder eller bestemmelser gjelder for dette temaet?

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  

Hva er det man ønsker å oppnå, hvilke funksjonelle mangler vil man bøte på, hvorfor har man denne tjenesten eller dette systemet.

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å.
300px-HTTP_persistent_connection.svg.png/* TODO Kanskje lag en illustrasjon, der man åpner døren for hver person som skal inn i stedet for  å ha døren åpen en liten periode?  kun for å fremheve hvor dumt det er å ikke ha. Samme ka illustrasjon, men en som vise litt prinsippet?*/

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: 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.

Request.png

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


Response.png

 

4. Referanser

Når man i den løpende teksten omtaler standarder, organisasjoner eller annet skal dette refereres. Referanselisten føres her (ikke URL i den løpende teksten)


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




 

 

  • No labels