TDAT2004-A Datakommunikasjon med nettverksprogrammering
Oppgave 6 - Vedvarende forbindelser
...
<url til video>
...
Innledning
...
Ønsket funksjonalitet
...
Virkemåte
...
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å.
/* 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.
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
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