Informasjon skal formidles mellom datamaskiner i nettverk. Det finnes mange forskjellige operativsystem med forskjellige intern representasjon av data. Tilsvarende finnes forskjellige teknologier for å sende data, som via fiber, kobber, satellitt og radio. Til tross for forskjellene er det helt nødvendig å ha et sett med standardiserte regler for hvordan informasjonsutvekslingen skal foregå. Slike regler er samlet i protokoller som tar for seg forskjellige oppgaver. Det er målet som er viktig, ikke måten det gjøres på. Derfor har vi en lagdelt modell der grensesnittene mellom lagene er presist definert. Hvordan laget løser sin oppgave er opp til operativsystemet, eller fysiske implementasjoner. Det som er viktig er at laget under og over kan forstå hverandre.

Denne modellen er kjent som OSI modellen og har 7 lag. OSI modellen har sine egne protokoller, men i praksis blir TCP/IP sine protokoller brukt for å konkretisere modellen da den i dag er totalt dominerende. TCP/IP modellen har bare 5 av lagene, siden applikasjon, presentasjon og sessionslaget er smeltet sammen.


Når to programmer skal snakke sammen, for eksempel en e-postklient og en e-postserver, må de snakke samme språk. I dette eksemplet snakker de med protokollen SMTP og som befinner seg på det øverste laget i modellen. En ting som er viktig å forstå, er at e-post programmet i seg selv ikke er på applikasjonslaget. Det er protokollene programmene snakker seg imellom som er på applikasjonslaget.

Brukerprogrammet, epost leseren, sender sine data ned til applikasjonslaget, som igjen sender sine data ned til transportlaget, osv helt ned til det fysiske laget. For hvert lag data passerer blir data omformet, delt opp i pakker, og lagt til tilleggsinformasjon kalt "headere". Dette fordi de normalt plasseres i front av dataen. Et unntak er det fysiske laget som legger på en "trailer", altså en "slutt på data" kode.

Den motsatte prosessen skjer hos mottakeren. Her blir lag for lag lest, strippet bort og valg blir gjort på bakgrunn av hva hederne sier. Pakkene inneholder all informasjon nødvendig for å finne veien frem til målet på egenhånd, og kan derfor sendes en etter en på et felles medium. På veien frem til målet vil pakkene møte svitsjer, rutere, brannmurer og andre aktive komponenter som tar valg for hvor pakken må sendes videre. Dette helt til den når frem til sin destinasjon.


Applikasjonslaget
sørger for at spesifikk data pakkes inn og konverteres til et felles "språk" som er universelt. Det finnes mange e-postklienter, men de snakker alle samme språk.
Protokoller: HTTP, HTTPS, FTP, SMTP, SNMP, POP, DNS, DHCP.

Transportlaget
har i oppgave å levere dataene til riktig prosess eller program samt å dele informasjonen opp i passe store pakker. En maskin kan kjøre flere programmer samtidig, og pakkene når riktig prosess ved å tildele pakkene et portnummer mellom 0-65535. I operativsystemet "binder" et program seg til en port. Serverprogrammer binder seg typisk til porter under 1024, mens klientprogram velger tilfeldige porter i mengden over. Servere har naturligvis faste portnummer for at klienter rundt om skal kunne finne frem. Transportlaget kan også sørge også for at all data faktisk kommer frem til mottaker, og i riktig rekkefølge.
Protokoller: TCP, UDP.

Nettverkslaget
har ansvaret for å levere de oppdelte pakkene helt frem til mottakermaskinen. Dette løses ved å merke pakken med en mottakeradresse kalt IP. På Internett har vi dedikerte bokser kalt rutere som faktisk gjør jobben med å rute pakkene dit de skal.
Protokoller: IP, ICMP.

Datalinklaget
adresserer pakken mellom hvert hopp på veien frem til målet. Disse adressene er kjent som MAC adresser og er spesifikke for hvert grensesnitt maskinen har. Disse adressene er bare kjente innad i det lokale nettverket. Ikke globalt. På dette laget jobber svitsjer. De leser MAC adressen for så å sende pakken videre på riktig kabel til neste hopp.
Protokoller: ethernet, ARP.

Det fysiske laget
har ansvaret for at digitale bit blir omgjort til en analog presentasjon som kan sendes via et transportmedium. Kan være som elektrisitet i metall, radiobølger i luft osv...
"Protokoller": IEEE802.3.

En viktige oppgaver jeg ikke har nevnt her, er kontroll av at data ikke har blitt endret under transmisjon. Denne oppgaven kan løses på flere lag, alt ettersom hva som er mest hensiktsmessig.

For å gi et mer konkret eksempel på hva som skjer i praksis, kan du lese mer her om en liten case om hjemmenettverk.

En god (og omfattende) kilde om teknologien finner du her:
tcpipguide.com/free/