TDAT2004: Datakommunikasjon med nettverksprogrammering
Oppgave 1: OSI-modellen
Deltakere: Ingvild Broen, Even Dalen og Rebekka Heggebø



OSI-modellen


For at datamaskiner skal kunne kommunisere med hverandre er man nødt til å håndtere mange kompliserte prosesser. Disse prosessene får man bedre oversikt over hvis man bruker en lagdelt kommunikasjonsmodell, som Open Systems Interconnection (OSI)-modellen. Denne modellen er laget av ISO for å være en standardisert kommunikasjonsmodell som setter en standard alle som trenger det kan bruke. Da modellen ble laget hadde den syv lag; applikasjon-, presentasjon-, sesjon-, transport-, nettverk-, lenke-, og det fysiske laget. Etterhvert ble presentasjon- og sesjonslaget lite brukt, så disse ble slått sammen med applikasjonslaget. I dag brukes den forenklede OSI-modellen som består av fem lag. Ved å dele prosessene inn i lag på denne måten forenkler man sammenhengen mellom de ulike, komplekse prosessene som skal til for å opprette datakommunikasjon. Denne sammenhengen kommer tydelig fram ettersom man grupperer prosessene, og samler de prosessene som naturlig henger sammen på et og samme lag.

For å forstå hvordan de forskjellige lagene kommuniserer et det viktig å vite hva protokoller og tjenester er, og hva de gjør. En protokoll er et sett med regler som forteller noe om hvordan data skal tolkes og hvordan man skal håndtere det. Samler man protokoller fra ulike lag kalles dette en protokollsuite, eller en protokollfamilie. Protokoller har ansvar for å kommunisere med enheter som er på likestilte lag. Ofte kalles denne typen kommunikasjon for “virtuell kommunikasjon”, da den egentlige kommunikasjonen fysisk må gjennom alle lagene i modellen. Mens protokoller bygger kommunikasjon mellom likestilte lag, sørger tjenester for at lagene kan kommunisere med hverandre. Mellom hvert lag finnes det et sett med definerte tjenester som kalles primitiver. Alle lagene i modellen tilbyr disse tjenestene til laget over seg, og kan benytte seg av de tjenestene som laget under tilbyr.

Når en datapakke skal sendes fra en avsender til en mottaker blir datapakken sendt ovenfra og ned til det fysiske laget hos avsenderen, og så opp fra det fysiske laget og gjennom de øvrige lagene hos mottaker. Protokoller opererer som nevnt mellom likestilte lag, og hvert lag har en eller flere protokoller. En datamengde som blir sendt fra applikasjonslaget blir så sendt ned til transportlaget. I denne prosessen får datamengden en såkalt pakkeheader. Her er det lagret informasjon om datamengden, og felles for alle pakkeheadere er at de inneholder informasjon om hvor datamengden kommer fra og hvor den skal. Størrelsen og formatet på pakkeheaderen varierer, men den har som regel 8-20 byte med informasjon. For hvert lag nyttelasten, altså datamengden, blir sendt ned får den en ny pakkeheader utpå den gamle. Lagene har ingen interesse av hva som faktisk er i nyttelasten, men bare pakker den inn med en ny pakkeheader, legger til informasjon om hvor pakken skal, og sender så pakken videre til det neste laget. Dette fortsetter til pakken når det fysiske laget. Denne prosessen kalles innpakking. Datamengden blir så sendt videre til mottaker, og det motsatte skjer på denne siden. For hvert lag datamengden blir sendt opp, blir en av pakkeheaderene skrelt av. Denne prosessen kalles utpakking. Alle lagene har egne pakkeheadere, og i utpakkingsprosessen leser laget bare den informasjonen knyttet til riktig pakkeheader og sender pakken videre til laget over.

Applikasjonslaget

Dette er grensesnittet mellom programmene som en maskin kjører, og kommunikasjonsdetaljene i de lavere lagene. Denne er sammensatt av OSI-modellen sine tre lag, sesjonslaget, presentasjonslaget og applikasjonslaget.

Applikasjonslaget blir brukt av programmer som ønsker å kommunisere over nettverket, og blir definert i OSI-modellen som det laget som presenterer data til brukeren. Her finner vi kjente protokoller som HTTP og SMTP. De er sett av regler, og styrer dataoverføring på henholdsvis verdensveven og mail-servere. Applikasjonslaget kommuniserer i hovedsak med presentasjonslaget under.

Presentasjonslaget har tre hovedoppgaver:

  1. Den skal gjøre om dataen som skal sendes til bitstrømmer. En viktig oppgave her er å omgjøre dataen til et felles bit-format, slik at mottaker-maskinen sitt presentasjonslag kan dekode bit-strømmen tilbake til ønsket format. Et eksempel er dersom senderen bruker EBCDIC for å representere data, mens mottaker bruker ASCII for å representere den samme dataen. Da må presentasjonslaget kunne omgjøre dataen til et felles format, for eksempel ved hjelp av Pascal metoden, og til slutt dekode bit-strømmen til et ASCII format når dataen blir mottatt.

  2. Kryptering av data er også presentasjonslaget sin oppgave. Den skal kunne kryptere data før den sendes, og deretter dekryptere den samme dataen når pakken mottas.

  3. Komprimering av data er en siste oppgave som presentasjonslaget har ansvar for. Dette er viktig når store mengder data skal overføres, hovedsakelig multimedia. Det kan for eksempel være video og lyd.

Når dataen er omgjort til et forståelig format blir det sendt videre nedover lagene.

Sesjonslaget sin oppgave går ut på å administrere semi permanente sesjoner mellom to datamaskiner. Laget har protokoller som går på å sette opp, opprettholde og fjerne sesjoner. Dette er viktig for strømmer av data, og overføring over av for eksempel store datafiler. Sesjonslaget tar også hånd om synkronisering av dataoverføring, typisk i en videokonferanse der det er viktig at både lyd og bilde blir sendt og mottatt samtidig av endepunktene. Avbrudd i overføringen mellom maskiner er også en viktig arbeidsoppgave for sesjonslaget, der den holder styr på hva som allerede er sendt, slik at dette ikke må sendes på nytt.

Transportlaget

Transportlaget har ansvar for ende-til-ende kommunikasjon. Dette laget har ansvar for å pakke dataen inn i mindre segmenter, for deretter å sende det videre til nettverkslaget. Når dataen mottas forsikrer transportlaget at dataen er fullstendig overført, og at pakkene er blitt organisert i riktig rekkefølge. Ved å nummerere de ulike pakkene kan transportlaget hos mottaker kontrollere at pakkene blir mottatt i riktig rekkefølge, og vite om pakker ble mistet under overføringen. En sjekksum kan brukes for å oppdage korrupt data eller andre overføringsfeil, dette kan videre løses ved å sende manglende pakker på nytt.

Ikke alle nettverkstjenester ønsker å ta bruk av alle tjenestene på transportlaget. For noen overføringer er hastighet viktigere enn at all data er feilfri. Derfor blir det hovedsakelig brukt to ulike protokoller i transportlaget, TCP og UDP.

TCP er forbindelsesorientert nettverksprotokoll for pålitelig overføring av data. Her blir det opprettet en forbindelse gjennom et tre-veis håndtrykk. Deretter blir pakker sekvensielt nummerert, og en sjekksum blir kalkulert for hver pakke. Hos mottaker blir denne sjekksummen kontrollert, og pakken organisert etter nummereringen. Til slutt blir en kvittering sendt tilbake til sender for tegnene som er mottatt. Dersom denne kvitteringen ikke blir mottatt etter gitt tid, vil et tidsavbrudd oppstå og sender anser pakkene som ikke mottatt. Dette gir god pålitelighet for at pakkene blir riktig mottatt, noe som er viktig i veldig mange situasjoner.

UDP er en enklere nettverksprotokoll som er forbindelsesløs. I motsetning til TCP tilbyr ikke denne protokollen en pålitelig overføring, og er ment som et minimalt grensesnitt mellom nettverkslaget og applikasjonslaget. Denne egner seg seg mer i situasjoner der en applikasjon håndterer sanntidsdata, som sanntids-spill og multimediaoverføring. Dette er fordi den ikke kan gi noe garanti på at pakkene blir korrekt overført. Duplikater og mangler i pakkene kan fort oppstå ved bruk av UDP protokollen.

Nettverkslaget

Nettverkslaget er ansvarlig for å utføre tjenester for transportlaget og benytter seg av disse tjenestene på lenkelaget. Datapakker blir overført mellom maskinene hvor applikasjonene kjører, slik at data kommer frem i riktig rekkefølge til riktig mottaker. Laget adresserer meldinger og oversetter logiske adresser og navn til fysiske adresser. Ruten fra avsender til mottaker bestemmes i laget og håndter trafikkproblemer som svitsjing, ruting og metningskontroll av datapakker.

I nettverkslaget tillates det datavariabler av vilkårlig lengde ved bruk av segmentering og desegmentering, i forhold til andre lag som kun tillater data med en fast lengde. Hovedprotokollen for nettverkslaget er Internet Protocol (IP), hvor IP-pakken kan inneholde nyttelast fra flere forskjellige protokoller. Problemer som håndteres av nettverkslaget er om nettverket er forbindelsesløs, hva den globale adressen er og hvordan meldinger blir videresendt.

Lenkelaget

Lenkelaget formidler datapakker fra avsender til mottaker og korrigerer mulige feil i det fysiske laget. Laget har ansvar for å forbinde to tilstøtende maskiner og styre bitstrøm ut/inn på mediet slik at den driver maskinvaren og styring av tilkoblingselektronikk. Ved overføring av datapakker mellom nettverkslagene på tilstøtende noder, vil pakker bli klargjort gjennom blant annet innramming for at innholdet kan overføres til det fysiske laget. Innenfor struktur i OSI nettverksarkitekturen, vil lenkelags-protokoller svare på forespørsler fra nettverkslaget og utfører sin funksjon ved utstedelse av tjenester til det fysiske laget.

Datapakkene kan befinne seg på samme nettverk eller på ulike nettverk, hvor på ulike nettverk vil datapakkene gå via flere separate nettverk før den når mottakeren. Protokoller for lenkelaget som overfører data er enten mellom tilstøtende nettverksnoder i et trådløst lokalnett (WLAN) eller mellom noder med Ethernet (LAN). Funksjonaliteten varierer på forskjellig teknologi og implementasjon, slik at ved bruk av Ethernet vil mye av funksjonalitet ligge i nettverkskortet.

Funksjonaliteten på lenkelaget er delt inn i Logical Link Control (LLC) og Media Access Control (MAC). MAC-laget er teknologispesifikt hvor det håndterer oppgaver som er ulike for de ulike teknologiene og LLC-laget er ikke teknologispesifikt hvor det håndterer oppgaver som for eksempel retransmisjon av tapte pakker. Det fysiske laget ligger tett på lenkelaget, hvor det fysiske laget ligger under sublaget MAC.

Det fysiske laget

Det fysiske laget har ansvar for å håndtere de fysiske signalene som blir sendt mellom to datamaskiner. Informasjonen som blir sendt fra en datamaskin til den andre er en bit-strøm, altså binær informasjon, bestående av 0 og 1. Denne overføringen skjer ved hjelp av elektromagnetiske signaler. Både i lenkelaget som er beskrevet tidligere, og i det fysiske laget er det funksjonalitet som gjør at det er mulig å overføre datapakker fra en node til en annen.

Komponenter som hører til det fysiske laget er blant annet transmisjonsmediet, kontakter/ antenner som kobler sammen mediet og noder, samt elektronikken i nettverksgrensesnittet som sender og tar imot signaler. Transmisjonsmediet kobler sammen to noder, og dette kan være en kabel, eller det kan være lufta dersom man kommuniserer trådløst. I tillegg hører det også til det fysiske laget å ha elektronikk som kan kode og dekode bit-strømmer. Når avsender sender en bitstrøm blir den kodet på en gunstig måte, et signal blir generert og sendes ut på transmisjonsmediet. Dette skjer ved at signalet blir sendt gjennom en kontakt eller en antenne. Når signalet har gått gjennom mediet og kommet frem til mottakerens kontakt eller antenne skjer prosessen i revers, og ender med at en bit-strøm blir sendt til lenkelaget.  

Referanser

Hallsteinsen, Ø., Klefstad, B. and Skundberg, O. (2015). Innføring i datakommunikasjon. 2nd ed. Gyldendal akademisk.

RFC 1123 - Requirements for Internet Hosts - Application and Support. (2017). Tools.ietf.org.  Retrieved 27 February 2017, from https://tools.ietf.org/html/rfc1123

Presentation layer definition by The Linux Information Project. (2017). Linfo.org.    Retrieved 27 February 2017, from http://www.linfo.org/presentation_layer.html

The TCP/IP Guide - Session Layer (Layer 5). (2017). Tcpipguide.com. Retrieved 27 February 2017, from http://www.tcpipguide.com/free/t_SessionLayerLayer5.htm

Four Layers of TCP/IP model, Comparison and Difference between TCP/IP and OSI models. (2017). Omnisecu.com.           Retrieved 27 February 2017, from http://www.omnisecu.com/tcpip/tcpip-model.php

What is layer 3? - Definition from WhatIs.com. (2017). SearchUnifiedCommunications. Retrieved 27 February 2017, from http://searchunifiedcommunications.techtarget.com/definition/layer-3

RFC 1122 - Requirements for Internet Hosts - Communication Layers. (2017). Tools.ietf.org. Retrieved 27 February 2017, from https://tools.ietf.org/html/rfc1122

Sessions, C. (2017). Fixed Wireless Broadband Blog | Accel Networks: What is Layer 2, and Why Should You Care?. Web.archive.org. Retrieved 27 February 2017, from https://web.archive.org/web/20100218075030/http://www.accel-networks.com/blog/2009/09/what-is-layer-2-and-why-should-you-care.html

What is Data-Link layer? - Definition from WhatIs.com. (2017). SearchNetworking. Retrieved 27 February 2017, from http://searchnetworking.techtarget.com/definition/Data-Link-layer







  • No labels