Nettverk av datamaskiner som kommuniserer med hverandre i henhold til protokollen Internet Protocol (IP). I årenes løp har mange slike nettverk blitt bygget opp og knyttet sammen til ett stort, verdensomspennende nettverk som etterhvert har fått egennavnet Internettet eller bare Internett.

Ved hjelp av forskjellige tjenester som spiller sammen, kan vi bruke Internettet til å kommunisere med mennesker og maskiner over hele jordkloden.

Det finnes også andre nettverk som bygger på den samme teknologien, men som ikke er knyttet til det globale Internettet, blant annet flere nettverk som brukes til etterretning og ulike militære formål.

Teknologisk oversikt

Prosesser og samspillmodeller

De fleste datamaskiner kan kjøre mange ulike applikasjoner samtidig, i hver sin isolerte prosess. Slike prosesser har forskjellige roller på Internett. Vi skiller gjerne mellom to modeller for samspill mellom prosesser på Internettet:

  • Klient-tjenermodellen. Applikasjonene vi bruker til daglig, for eksempel e-postprogrammer, er som oftest klientprosesser. Disse benytter seg av tjenerprosesser rundt omkring på nettet. En e-postklient benytter for eksempel en postkontortjeneste for å hente e-post.
  • Peer to Peer-modellen. I andre tilfeller fungerer applikasjonene både som klienter og tjenere. Et eksempel på dette er BitTorrent-applikasjoner som kommuniserer direkte med hverandre uten å gå veien om en tjenerprosess.

Protokoller og abstraksjonslag

Prosessene som lever på Internett kommuniserer med hverandre ved hjelp av fastlagte protokoller. Disse spesifiserer hvordan prosessene skal forholde seg til hverandre, men sier ingen ting om hvordan de skal bygges opp innvendig.

Samlingen av protokoller som er utviklet spesifikt for Internett kalles for The Internet Protocol Suite.

Ofte er protokollene bygget opp på en slik måte at en overordnet protokoll benytter flere underliggende protokoller til å realisere en bestemt funksjonalitet. Da sier vi gjerne at den overordnede protokollen tilhører et høyere abstraksjonslag fordi den definerer begrepsapparat og mekanismer som fritar applikasjoner fra å forholde seg til en mer kompleks, underliggende virkelighet.

Internettprotokollen bygger broer mellom nettverk

Internettprotokollen definerer funksjonaliteten til en spesiell type tjenester som kalles for Internet Modules. Slike moduler utgjør grunnpillaren i Internettet. Alle maskinener som er knyttet til nettet har en eller flere slike moduler som samarbeider om å sende sekvenser av data, kalt datagrammer mellom maskinene

Den viktigste egenskapen til en internettmodul er at den kan samarbeide med moduler på andre maskiner, helt uavhengig av hvordan de er bygget opp og hva slags teknologi som blir brukt til å knytte dem sammen. Dermed blir det mulig å bygge broer mellom nettverk. En datamaskin kan motta datagrammer fra ett nettverk og sende videre til et annet, selv om de to nettverkene er bygget opp på forskjellige måter.

Prosesser kommuniserer med hverandre ved hjelp av transportprotokoller.

Internettprotokollen har ingen mekanismer for å angi hvilken prosess som skal motta dataene eller hvem som sendte dem. Slike mekanismer er spesifisert i egne transportprotokoller som definerer ulike typer transporttjenester. En viktig oppgave for disse tjenestene er å legge til rette for at applikasjoner som kjører på forskjellige maskiner skal kunne kommunisere direkte med hverandre. Transportprotokollene realiserer som regel også sikrere og mer forutsigbare kommunikasjonsformer enn det internettprotokollen kan tilby.

Til sammen utgjør transportprotokollene det første abstraksjonslaget over internettprotokollen: transportlaget. De to viktigste transportprotokollene er TCP og UDP.

Tranmission Control Protocol (TCP) er trygg og sikker

TCP er den mest utbredte transportprotokollen på Internettet. Forutsatt at det i det hele tatt er mulig å sende data, vil en TCP-tjeneste garantere at alle datagrammene kommer frem til mottakerprosessen uten feil og i riktig rekkefølge. Den hjelper også til med å sikre god flyt i trafikken på nettet. Ulempen er at den genererer ekstra datatrafikk i form av administrativ kommunikasjon, samt at den sender datagrammer på nytt hvis de blir ødelagt underveis.

User Datagram Protocol (UDP) er effektiv men upålitelig

UDP er en mye enklere protokoll enn TCP. Det eneste den bidrar med i tillegg til prosessadressering, er å legge til informasjon som gjør det mulig å avgjøre om et datagram er intakt eller ikke. UDP-tjenester gir ingen garantier hverken om feilfrihet eller rekkefølge. Til gjengjeld er de mer effektive enn TCP-tjenestene. Derfor brukes de i applikasjoner hvor det er viktig å få dataene fort frem, samtidig som det ikke er så farlig om man går glipp av et og annet datagram. Typiske eksempler på slike applikasjoner er IP-telefoni og videostrømming.

Portnumre og Sockets

Avsender- og mottakerprosesser blir som regel spesifisert ved hjelp av Port Numbers. Et portnummer er et tall mellom 0-65535 som er knyttet til en konkret enkeltprosess eller en bestemt prosesstype som kjører på en datamaskin. Kombinasjonen IP-adresse og portnummer utgjør en Network Socket, et kontaktpunkt på Internett som gjør det mulig å kommunisere med én bestemt prosess på én bestemt maskin. Noen ganger vil prosessen eksistere på forhånd, i andre tilfeller vil prosessen bli startet idét kommunikasjonen kommer i gang.

For at  prosesser skal kunne kommunisere på denne måten, må koblingen mellom portnummer og prosess være kjent på forhånd. De mest utbredte applikasjonstypene har derfor fått tilordnet Well Known Port Numbers, det vil si offisielt fastlagte portnumre. Eksempler på slike portnumre er:

  • Port 21: Reservert for tjenerprosesser som overfører filer ved hjelp av File Transfer Protocol (FTP).

  • Port 25: Reservert for tjenerprosesser som brukes til å sende e-post ved hjelp av Simple Mail Transfer Protocol (SMTP).

  • Port 80: Reservert for webtjenere, tjenerprosesser som formidler websider ved hjelp av Hypertext Transfer Protocol (HTTP).

  • Port 110: Reservert for postkontortjenere, tjenerprosesser som brukes til å motta e-post ved hjelp av Post Office Protocol, versjon 3 (POP3).

Applikasjonsprotokoller

FTP, SMTP, HTTP og POP3 er eksempler på protokoller som regulerer kommunikasjonen mellom applikasjoner på Internett. Disse protokollene utgjør det andre laget over internettprotokollen: applikasjonslaget.

Eksempel: Slik henter nettleseren ressurser fra en webtjener

Nettleseren er en klientprosess som kjører på en vanlig datamaskin, nettbrett eller lignende. Når den starter opp, vil den knytte seg opp mot en ledig port på maskinen den kjører på, vanligvis et nokså høyt portnummer, for eksempel port 40404.

Når den skal vise frem en webside, vil den først koble seg opp mot webtjeneren ved hjelp av en TCP Connection mellom sin lokale port (40404) og en HTTP-port (vanligvis port 80) på webtjenermaskinen. Webtjenermaskinen vil så starte en ny webtjenerprosess som er dedikert til nettleserprosessen.

Deretter vil nettleseren gjenta stegene nedenfor flere ganger, helt til den har mottatt alle dokumenter, bilder og lignende som den trenger for å generere siden.

  1. Den sender et datagram med en ressursforespørsel (HTTP Request) til webtjenerprosessen.

  2. Webtjenerprosessen henter frem ressursen og sender den tilbake til nettleserprosessen.

Nettleseren vil som regel beholde koblingen til webtjeneren en stund for å slippe å opprette en ny kobling hver gang brukeren ønsker å hente frem flere websider fra samme nettsted. Etterhvert vil den imidlertid koble seg fra webtjeneren for å frigjøre ressurser internt i maskinen og på Internettet.

Når nettleserapplikasjonen blir avsluttet av brukeren, vil den frigjøre porten sin (40404) til andre formål.

Transport Layer Security (TLS)

Det er også mulig å legge inn et ekstra sikkerhetslag mellom en transporttjeneste og prosessene som bruker dem. Dette laget er som regel definert av protokollen Transport Layer Security (TLS).

En TLS-tjeneste bruker de ordinære transporttjenestene til kommunikasjon og tilbyr tilsvarende tjenester til applikasjonene. I tillegg sørger den for at alle data som sendes er kryptert og at webtjenermaskinene er identifisert på en sikker måte. Dermed kan vi som brukere føle oss nokså trygge på at kommunikasjonen ikke blir avlyttet og at vi kommuniserer med riktig maskin.

Bruk av TLS blir av og til indikert ved at man legger til en ordet "Secure" i protokollnavnet og tilsvarende ‘S’ i forkortelsen av protkokollen, for eksempel FTPS, HTTPS, POP3S, SMTPS.

Organisering

Internett er bygget opp av ulike typer teknologi som eies og styres av mange forskjellige aktører, fra trådløsnett i private hjem til undersjøiske fiberkabler som eies av store organisasjoner og selskaper. Det er altså ingen sentral myndighet som har kontroll over hele nettet. Den teknologiske og organisatoriske kjernen i nettet blir imidlertid styrt av to små organisasjoner: ICANN og ISOC.

Internet Corporation for Assigned Names and Numbers (ICANN)

ICANN er en ideell stiftelse som står for tildeling av forskjellige navneressurser på Internett, for eksempel domenenavn og portnumre. Dette skjer via underavdelingen Internet Assigned Numbers Authority (IANA).

ICANN er også ansvarlig for å vedlikeholde kjerneinfrastrukturen som holder orden på slike ressurser, for eksempel Root Name Servers, det øverste nivået av tjenermaskiner holder orden på domenenavn og IP-adresser.

Virksomheten til ICANN er, per september 2014, formelt underlagt det amerikanske handelsdepartementet via underavdelingen National Telecommunications and Information Administration (NTIA). Den er imidlertid i ferd med å bli overført til en flernasjonal styringsenhet.

ICANN er i hovedsak finansiert av avgifter knyttet til registrering og eierskap av toppdomener. Et toppdomene er den siste tekststrengen i et domenenavn. Noen toppdomener er knyttet til bestemte temaer og virksomheter, for eksempel .coffee og .ninja. Andre er knyttet til land ved hjelp av standardiserte landkoder. Domenet .no er for eksempel beregnet på norske domener.

Rettighetene til disse toppdomenene er avgitt til ulike selskaper og organisasjoner. For eksempel er rettighetene til domenet .no avgitt til det norske, statlige aksjeselskapet UNINETT. Hver gang noen registrerer eller fornyer et domene under domenet .no, må UNINETT betale en liten avgift til ICANN. Det samme gjelder for alle de andre toppdomenene.

Internet Society (ISOC)

ISOC er også en ideell stiftelse. Den arbeider med utvikling av teknologi og styringsredskaper for Internett. Virksomheten er i hovedsak finansiert av bidrag fra en annen stiftelse: Public Interest Registry (PIR) som bestyrer toppdomenene .org og .ngo.

En av de viktigste oppgavene til ISOC er å finansiere og koordinere virksomheten til Internet Engineering Task Force (IETF). Denne organisasjonen beskriver seg selv som "a loosely self-organized group of people who contribute to the engineering and evolution of Internet technologies." (The Tao of IETF.)

De fleste protokollene og styringsmodellene som benyttes på Internett er utviklet i regi av IETF. Både enkeltpersoner og organisasjoner kan bidra til dette arbeidet. En av de største bidragsyterne er World Wide Web Consortium (W3C). Dette er en medlemsorganisasjon som utvikler protokoller og dataformater knyttet til World Wide Web, for eksempel applikasjonsprotokollen HTTP og formatet Hypertext Markup Language (HTML) som brukes til å formidle hjemmesider.

Kort oppsummering av historien bak Internettet

1970-1980: Tidlig teknologisk utvikling

Teknologien som Internettet bygger på vokste gradvis frem i begynnelsen av 1970-årene i mange ulike forskningsmiljøer. Mye av arbeidet foregikk i regi av forskningsprogrammet “Resource Sharing Computer Networks” som var drevet av den militære forskningsinstitusjonen Advanced Research Projects Agency (ARPA), senere omdøpt til Defense Advanced Research Projects Agency (DARPA).

En av de første vitenskapelige publikajonene som eksplisitt refererer til datakommunikasjon på tvers av ulike nettverksteknologier, var artikkelen A Protocol for Packet Network Intercommunication, skrevet av Vinton G. Cerf og Robert E. Kahn i 1974, begge ansatt ved ARPA.

Internettprotokollen ble skilt ut som en separat protokoll i 1977 og definert som en egen standard i 1981.

1980-1990: Utbredelse i forskningsmiljøer

Det opprinnelige hovedformålet med denne teknologien var å understøtte sivil og militær forskningsvirksomhet og det var innenfor denne sektoren at Internettet vokste frem gjennom 1980-tallet.

1990-2010: Internettet sprer seg til flere deler av samfunnet

Etter at World Wide Web ble tilgjengelig for folk flest i 1993, begynte Internettet å spre seg til andre sektorer. I rike land skjøt det virkelig fart når også privatpersoner og småbedrifter kunne knytte seg til Internettet via kobberkabler i eksisterende telenett.

Etter 2010: Internett på mobile enheter

Internettet har blitt enda mer utbredt etterhvert som mobile datanettverk har blitt bygget opp i store deler av verden. Dette har hatt spesielt stor betydning i fattige land hvor tradisjonelle telenett har vært lite utbygget.

Referanser

Standarder

Internet Protocol, RFC 791, IETF 1981

Internet Protocol, Version 6, RFC 2460, IETF 1998

Transmission Control Protocol (TCP), RFC 793, IETF 1981

User Datagram Protocol (UDP), RFC 768, IETF 1980

Transport Layer Security (TLS), RFC 5246, IETF 2008

The Tao of IETF, RFC 3160, IETF 2001

Ressurser

Liste over doppdomener: IANA Root Zone Database

Liste over velkjente portnumre: Service Name and Transport Protocol Port Number Registry

Hjemmesider

The Internet Corporation for Assigned Names and Numbers (ICANN)

National Telecommunications and Information Administration (NTIA)

UNINETT

Internet Society (ISOC)

Internet Engineering Task Force (IETF)

World Wide Web Consortium (W3C)

Historiske kilder

A Protocol for Packet Network Intercommunication. Vinton G. Cerf og Robert E. Kahn.  IEEE Transactions on Communications, vol. com-22. 5. mai 1974. Lastet ned 30. september 2014 herfra: http://www.cs.princeton.edu/courses/archive/fall06/cos561/papers/cerf74.pdf

Comments on Internet Protocol and TCP. Jon Postel. ISI 1977. Lastet ned 30. september herfra: http://www.rfc-editor.org/ien/ien2.txt

Arpanet Completion Report. F. Heart et. al. DARPA Information Processing Techniques Office 1978. Lastet ned 30. september 2014 herfra: http://www.cs.utexas.edu/users/chris/DIGITAL_ARCHIVE/ARPANET/DARPA4799.pdf

Forfatter av denne artikkelen

Artikkelen ble sist oppdatert 13.08.2015.

Foreslå endringer i tekst

Foreslå bilder til artikkelen

Fagansvarlig for IT og samfunn

Henrik Dvergsdal Universitetet i Nordland

Fagansvarlig har ansvar for å:

  • Vurdere endringsforslag fra leserne
  • Svare på spørsmål i kommentarfeltet
  • Skrive nye artikler
  • Forvalte og oppdatere gamle artikler

Vil du bli fagansvarlig?

Kommentarer

Har du spørsmål til artikkelen? Skriv her, så får du svar fra fagansvarlig eller redaktør.

Du må være logget inn for å kommentere.