Grunnleggende om nettverksprotokoller
En nettverksprotokoll kan defineres som et sett med regler som enheter bruker for å kommunisere med hverandre over et nettverk. Det kan sammenlignes med hvordan mennesker følger bestemte sosiale normer og prosedyrer når de samhandler.
Disse protokollene definerer hvordan datapakker skal struktureres, hvordan enheter identifiserer hverandre, og hvordan feil og konflikter håndteres under dataoverføring. Nettverksprotokoller kan deles inn i tre hovedkategorier: kommunikasjon, sikkerhet og administrasjon.
#1. Kommunikasjonsprotokoller
Disse protokollene er avgjørende for å legge til rette for datautveksling mellom enheter i et nettverk. De bestemmer formatet, metoden for overføring og mottak av data, og sikrer effektiv kommunikasjon. Kjente eksempler inkluderer HTTP/HTTPS, FTP, TCP og UDP.
#2. Sikkerhetsprotokoller
Sikkerhetsprotokoller er utviklet for å beskytte konfidensialiteten og integriteten til data som overføres over et nettverk. De etablerer sikre kommunikasjonskanaler og forhindrer at sensitiv informasjon blir utsatt for uautorisert tilgang eller endring. Viktige eksempler er SSL/TLS for kryptering, SSH for sikker fjernstyring og sikre e-postprotokoller som SMTPS og POP3S.
#3. Administrasjonsprotokoller
Administrasjonsprotokoller er uunnværlige for administrasjon, overvåking og kontroll av nettverksenheter og ressurser. De hjelper nettverksadministratorer med å konfigurere og feilsøke nettverkskomponenter på en effektiv måte. Eksempler inkluderer DHCP for dynamisk tildeling av IP-adresser, SNMP for overvåking av nettverksenheter, ICMP for diagnostiske formål og BGP for ruting og tilgjengelighetsinformasjon.
La oss undersøke noen utbredte protokoller i hver kategori.
Kommunikasjonsprotokoller
HTTP
HTTP, som står for Hypertext Transfer Protocol, er en fundamentalt viktig protokoll for kommunikasjon mellom nettlesere og servere. Den opererer i applikasjonslaget i OSI-modellen. Når du taster inn en URL i nettleseren din og trykker enter, sender den en HTTP-forespørsel til en webserver. Serveren behandler denne forespørselen og returnerer et HTTP-svar som inneholder den etterspurte informasjonen, som kan være en nettside, et bilde, en video eller en annen ressurs som ligger på serveren.
HTTP er en statsløs protokoll, noe som betyr at hver forespørsel fra en klient behandles som en uavhengig transaksjon. Serveren lagrer ingen informasjon om tidligere forespørsler fra den samme klienten. Denne enkelheten bidrar til HTTPs utbredte bruk. HTTP definerer flere forespørselsmetoder som GET (for å hente data), POST (for å sende data til behandling), PUT (for å oppdatere ressurser) og DELETE (for å fjerne ressurser). Disse metodene avgjør hvilken type operasjon klienten ønsker å utføre på serveren. HTTP-svarene inkluderer ofte en statuskode som indikerer resultatet av forespørselen, for eksempel indikerer 200 en vellykket forespørsel, mens 404 indikerer at ressursen ikke ble funnet. HTTP har gjennomgått flere revisjoner gjennom årene, med HTTP/1.1 som en av de mest brukte versjonene. HTTP/2 og HTTP/3 (også kjent som QUIC) har blitt utviklet for å forbedre ytelsen.
HTTPS
HTTPS, eller Hypertext Transfer Protocol Secure, er en utvidelse av HTTP-protokollen som brukes til å sikre kommunikasjon over datanettverk. Den gir et ekstra sikkerhetslag til HTTP ved å kryptere data som utveksles mellom en nettleser og en webserver ved hjelp av kryptografiske protokoller som SSL/TLS. Dette sikrer at data som fanges opp under overføring ikke er lett lesbare eller forståelige.
HTTPS inkluderer også en form for serverautentisering. Når en nettleser kobler seg til en nettside via HTTPS, presenterer nettsiden et digitalt sertifikat utstedt av en pålitelig sertifiseringsinstans (CA). Dette sertifikatet bekrefter identiteten til nettstedet, slik at klienten vet at de kobler seg til den riktige serveren og ikke en falsk en.
Nettsider som bruker HTTPS kan identifiseres ved at nettadressen starter med «https://». Denne indikerer at nettstedet bruker en sikker tilkobling. HTTPS bruker som regel port 443 for kommunikasjon, mens HTTP bruker port 80. Webservere kan skille mellom sikre og usikre tilkoblinger på denne måten. Søkemotorer som Google prioriterer nettsider som bruker HTTPS i sine søkerangeringer. Nettlesere kan også advare brukere hvis en sikker HTTPS-nettside inneholder elementer (bilder eller skript) som er lastet inn over en usikker HTTP-tilkobling. Dette kalles «blandet innhold» og kan true sikkerheten.
Her er en detaljert artikkel om hvordan du får et SSL-sertifikat for en nettside. Du er velkommen til å besøke denne siden.
FTP
File Transfer Protocol (FTP) er en standard nettverksprotokoll som brukes til å overføre filer mellom en klient og en server over et datanettverk. FTP fungerer etter klient-server-modellen, der klienten initierer en tilkobling til serveren for å forespørre og overføre filer.
FTP bruker to porter for kommunikasjon og kan operere i to moduser: aktiv modus og passiv modus. Port 21 brukes til kontrolltilkoblingen, der kommandoer og svar utveksles mellom klienten og serveren. Aktiv modus er den tradisjonelle modusen som fungerer i tråd med klient-server-modellen, der en ekstra port (vanligvis i området 1024-65535) åpnes for dataoverføring. Passiv modus brukes ofte når klienten befinner seg bak en brannmur eller NAT-enhet, og serveren åpner en tilfeldig port med høyt nummer for dataoverføring.
FTP krever vanligvis autentisering for å få tilgang til filer på serveren, der brukere må oppgi brukernavn og passord for å logge inn. Noen FTP-servere støtter også anonym tilgang, der brukerne kan logge på med et generisk brukernavn som «anonym» eller «FTP» og bruke e-postadressen som passord. FTP støtter to dataoverføringsmoduser: ASCII-modus for tekstfiler og binærmodus for ikke-tekstfiler som bilder og kjørbare filer. Valg av modus er avhengig av filtypen som overføres. Tradisjonell FTP er ikke en sikker protokoll, da den overfører data, inkludert brukernavn og passord, i klartekst. Secure FTP (SFTP) og FTP over SSL/TLS (FTPS) er tryggere alternativer som krypterer dataoverføringen for å beskytte sensitiv informasjon.
Her er en detaljert artikkel om SFTP vs FTPS og hvilken protokoll du skal bruke.
TCP
Transmission Control Protocol (TCP) er en av de mest sentrale transportlagsprotokollene i IP-pakken. Den spiller en avgjørende rolle i å sørge for pålitelig og ordnet dataoverføring mellom enheter over IP-nettverk. TCP etablerer en forbindelse mellom avsender og mottaker før dataoverføringen starter. Denne tilkoblingsopprettelsen omfatter en treveis håndtrykksprosedyre (SYN, SYN-ACK, ACK) og en tilkoblingsavslutningsprosess når datautvekslingen er fullført. TCP støtter også full-duplex kommunikasjon, som betyr at data kan sendes og mottas samtidig i begge retninger innenfor den etablerte tilkoblingen.
TCP overvåker nettverksforholdene og justerer overføringshastigheten for å unngå overbelastning av nettverket. Denne protokollen omfatter feilkontrollmekanismer for å oppdage og korrigere datakorrupsjon under overføring. Hvis et datasegment viser seg å være skadet, vil mottakeren be om å få det overført på nytt. TCP bruker portnumre for å identifisere spesifikke tjenester eller applikasjoner på en enhet, og disse portnumrene hjelper med å rute innkommende data til riktig applikasjon. Mottakeren i en TCP-forbindelse sender bekreftelser (ACK) for å bekrefte mottaket av datasegmenter. Hvis avsenderen ikke mottar en ACK innen en viss tidsramme, sender den datasegmentet på nytt. TCP holder oversikt over tilkoblingsstatusen på både avsender- og mottakersiden for å spore sekvensen av datasegmenter og administrere tilkoblingen.
IP
IP, som står for Internet Protocol, er en kjernekomponent som muliggjør kommunikasjon og datautveksling i datanettverk, inkludert det globale internettet. IP bruker et numerisk adresseringssystem for å identifisere enheter i et nettverk. Disse numeriske adressene kalles IP-adresser, som kan være enten IPv4 eller IPv6. IPv4-adresser har vanligvis form av fire sett med desimaltall (f.eks. 192.168.1.1), mens IPv6-adresser er lengre og bruker heksadesimal notasjon. IP ruter datapakker mellom enheter i forskjellige nettverk. Rutere og svitsjer spiller en viktig rolle i å dirigere disse pakkene til de tiltenkte destinasjonene basert på deres IP-adresser.
IP benytter en pakkebytteprosess, der dataene deles opp i mindre pakker for overføring over nettverket. Hver pakke inneholder en kilde- og destinasjons-IP-adresse, slik at ruterne kan ta beslutninger om videresending. IP betraktes som en forbindelsesløs protokoll, da den ikke etablerer en dedikert forbindelse mellom avsender og mottaker før overføringen av data. Hver pakke behandles uavhengig og kan ta forskjellige veier for å nå sitt mål.
UDP
UDP, som står for User Datagram Protocol, er en forbindelsesløs og lett protokoll for dataoverføring over et nettverk uten å etablere en formell tilkobling. I motsetning til TCP, etablerer ikke UDP en forbindelse før data sendes; den pakker rett og slett dataene inn i datagrammer og sender dem til destinasjonen. UDP garanterer ikke levering av data og implementerer ikke mekanismer for feildeteksjon og korrigering. Hvis en pakke går tapt eller kommer ut av sekvens, er det opp til applikasjonslaget å håndtere det.
UDP har mindre overhead enn TCP, da den ikke inkluderer funksjoner som flytkontroll, feilretting eller bekreftelser, noe som gjør den raskere, men mindre pålitelig. Den har heller ikke innebygde mekanismer for overbelastningskontroll, noe som potensielt kan overbelaste nettverket. UDP brukes ofte i situasjoner der lav latens og høyhastighets dataoverføring er viktigere enn garantert levering, for eksempel for lyd- og videostrømming i sanntid, nettspill, DNS og noen IoT-applikasjoner. Det beste med UDP er multipleksingsfunksjonen, som gjør at flere applikasjoner på samme enhet kan bruke samme UDP-port, samtidig som datastrømmene skilles ved hjelp av portnumre.
For å forstå UDP enklere, la oss bruke et eksempel:
Tenk deg at du skal sende en melding til en venn på en støyende lekeplass ved hjelp av en sprettball. Du bestemmer deg for å bruke UDP, som er som å kaste ballen uten en formell samtale. Slik fungerer det:
- Du skriver meldingen din på et papir og fester den rundt ballen.
- Du kaster ballen mot vennen din. Du venter ikke på at vennen din skal ta den eller bekrefte at de har mottatt den; du bare kaster og håper de tar den.
- Ballen spretter og når vennen din, som prøver å fange den. Noen ganger, på grunn av støyen, kan den sprette ut av hendene deres eller gå seg vill.
- Vennen din leser meldingen på papiret, og hvis de fanget ballen, får de meldingen. Hvis ikke, kan de gå glipp av den, og du vil ikke vite det, siden du ikke hadde noen måte å sjekke på.
I dette eksemplet:
Ballen representerer UDP-protokollen som sender data uten å etablere en formell forbindelse.
Det å sende ballen uten å vente på svar er som at UDP er forbindelsesløs og ikke sikrer levering.
Muligheten for at ballen spretter eller går seg vill symboliserer mangelen på pålitelighet i UDP.
Vennen din som leser meldingen tilsvarer applikasjonslaget som håndterer dataene mottatt via UDP, og håndterer eventuelle manglende data.
Sikkerhetsprotokoller
SSH
SSH, som står for Secure Shell, er en nettverksprotokoll som brukes til sikker kommunikasjon mellom en klient og en server over et usikkert nettverk. Den gir en sikker metode for å eksternt få tilgang til og administrere enheter via et kommandolinjegrensesnitt. SSH bruker kryptografiske teknikker for å autentisere både klienten og serveren, slik at du kan koble til riktig server og serveren kan bekrefte din identitet før den gir tilgang. Alle data som overføres over en SSH-tilkobling er kryptert, noe som gjør det vanskelig for uvedkommende å fange opp informasjonen som utveksles.
Bildekilde: Stackoverflow
SSH bruker et nøkkelpar for autentisering, bestående av en offentlig nøkkel som deles med serveren, og en privat nøkkel som du holder hemmelig. Når du kobler deg til en SSH-server, bruker klienten din private nøkkel for å bevise din identitet. I tillegg støttes tradisjonell autentisering med brukernavn og passord, selv om dette er mindre sikkert og ofte ikke anbefales, spesielt for servere som er koblet til internett. SSH bruker port 22 som standard for kommunikasjon, men dette kan endres av sikkerhetshensyn. Endring av portnummeret kan bidra til å redusere automatiserte angrep. SSH brukes ofte til ekstern serveradministrasjon, filoverføring (med verktøy som SCP og SFTP) og sikker tilgang til eksterne kommandolinjegrensesnitt. Den brukes i stor grad i administrasjonen av Unix-lignende operativsystemer og er også tilgjengelig i Windows via forskjellige programvareløsninger.
SMTP
SMTP, eller Simple Mail Transfer Protocol, er en standardprotokoll som er ansvarlig for å sende utgående e-postmeldinger fra en klient eller e-postserver til en e-postserver på mottakersiden. SMTP er en viktig del av e-postkommunikasjonen og fungerer sammen med andre e-postprotokoller som IMAP/POP3 for å muliggjøre hele e-postlivssyklusen, inkludert sending, mottak og lagring av e-postmeldinger. Når du skriver en e-post og trykker «send» i e-postklienten din, bruker den SMTP for å videresende meldingen til e-postleverandørens server.
Protokollen bruker port 25 for ukryptert kommunikasjon og port 587 for kryptert kommunikasjon (ved hjelp av STARTTLS). Port 465 ble også brukt for kryptert SMTP-kommunikasjon, men er mindre vanlig. Mange SMTP-servere krever autentisering for å sende e-post for å forhindre uautorisert bruk. Autentiseringsmetoder som brukernavn og passord eller sikrere metoder som OAuth brukes. Disse SMTP-serverne fungerer ofte som mellomledd, noe som betyr at de godtar utgående e-post fra klienter (f.eks. e-postappen din) og videresender dem til mottakerens e-postserver, og dermed hjelper til med å rute e-poster over internett. Kommunikasjonen kan sikres ved hjelp av kryptering via TLS eller SSL, spesielt når man sender sensitiv informasjon via e-post.
Administrasjonsprotokoller
POP3
POP3, eller Post Office Protocol versjon 3, er en av de mest brukte protokollene for henting av e-post. Den brukes til å hente e-postmeldinger fra en e-postserver til en e-postklientapplikasjon. POP3 er designet for å fungere etter en «lagre-og-send»-metode. Den henter e-poster fra serveren og sletter dem vanligvis fra serveren etter at en kopi er lagret på klientens enhet. Noen e-postklienter lar deg beholde en kopi av e-posten på serveren, men dette er ikke standardoppførselen. Protokollen bruker port 110 for ukryptert kommunikasjon, mens port 995 ofte brukes for sikker POP3-kommunikasjon ved bruk av TLS/SSL.
POP3 er en statsløs protokoll, som betyr at den ikke holder styr på e-postene du allerede har lastet ned. Hver gang du kobler deg til serveren, henter den alle uleste meldinger, noe som kan føre til synkroniseringsproblemer hvis du åpner e-posten din fra flere enheter. POP3 er i hovedsak utviklet for å hente e-post fra innboksen og støtter muligens ikke henting av e-poster fra andre mapper på serveren. Siden POP3 ikke synkroniserer e-postmapper mellom serveren og klienten, vil ikke handlinger som utføres på én enhet (f.eks. sletting av en e-post) gjenspeiles på andre enheter. Det anbefales å bruke den sikre versjonen av POP3 (POP3S eller POP3 over SSL/TLS), som krypterer kommunikasjonen mellom e-postklienten og serveren for å forbedre sikkerheten. POP3 er mindre vanlig i dag sammenlignet med IMAP (Internet Message Access Protocol), som gir mer avanserte funksjoner som mappesynkronisering og lar flere enheter administrere samme postkasse mer effektivt.
BGP
BGP, som står for Border Gateway Protocol, er en standardisert ekstern gateway-protokoll som brukes i nettverk for å utveksle informasjon om ruting og tilgjengelighet mellom autonome systemer (ASer). Et autonomt system er en samling av IP-nettverk og rutere under kontroll av en enkelt organisasjon, som presenterer en felles rutingpolicy for internett. BGP er en banevektorprotokoll, som innebærer at den sporer banen (listen over autonome systemer) som datapakker tar for å nå målet. Denne informasjonen hjelper BGP-rutere med å ta rutingbeslutninger basert på retningslinjer og baneattributter.
BGP brukes først og fremst til å bestemme den beste ruten for dataoverføring når man krysser flere nettverk som drives av forskjellige organisasjoner eller internettleverandører. Den støtter også ruteaggregering, som bidrar til å redusere størrelsen på den globale rutingtabellen ved å oppsummere flere IP-prefikser i en enkelt ruteannonsering. BGP-protokollen bruker forskjellige mekanismer for å forhindre rutingsløyfer, inkludert bruk av AS-baneattributtet og delt horisont-regel. Den brukes både på det offentlige internett og i private nettverk. På det offentlige internett brukes den til å utveksle ruteinformasjon mellom internettleverandører og store nettverk, mens den i private nettverk brukes til intern ruting og tilkobling til internett via en grenseruter.
DHCP
DHCP, eller Dynamic Host Configuration Protocol, brukes til å automatisk tildele IP-adresser og andre nettverkskonfigurasjonsinnstillinger til enheter i et TCP/IP-nettverk. DHCP-prosessen omfatter vanligvis fire hovedtrinn:
DHCP Discover
Når en enhet kobles til et nettverk, sender den en DHCP Discover-kringkastingsmelding for å finne tilgjengelige DHCP-servere.
DHCP-tilbud
DHCP-servere i nettverket svarer på DHCP Discover-meldingen med et DHCP-tilbud, der hver server tilbyr en IP-adresse og relaterte konfigurasjonsalternativer.
DHCP-forespørsel
Enheten velger ett av DHCP-tilbudene og sender en DHCP-forespørselsmelding til den valgte serveren for å be om den tilbudte IP-adressen.
DHCP-bekreftelse
DHCP-serveren bekrefter forespørselen ved å sende en DHCP-bekreftelsesmelding som bekrefter IP-adressetildelingen.
La oss forklare hvordan DHCP fungerer med et enkelt eksempel:
Tenk deg at du har et Wi-Fi-hjemmenettverk, og du ønsker at enhetene dine (som telefoner og bærbare datamaskiner) skal kobles til uten å måtte konfigurere nettverksinnstillingene manuelt for hver enhet. Det er her DHCP kommer inn i bildet:
- La oss si at smarttelefonen din akkurat har koblet seg til Wi-Fi-hjemmenettverket.
- Smarttelefonen sender ut en melding som sier: «Hei, jeg er ny her. Kan noen gi meg en IP-adresse og andre nettverksdetaljer?»
- Wi-Fi-ruteren din, som fungerer som en DHCP-server, hører forespørselen. Den svarer: «Jada, jeg har en tilgjengelig IP-adresse, og her er de andre nettverksinnstillingene du trenger, som subnettmasken, standard gateway og DNS-server.»
- Smarttelefonen mottar denne informasjonen og konfigureres automatisk med den angitte IP-adressen og nettverksinnstillingene.
Smarttelefonen er nå klar til å bruke internett og kommunisere med andre enheter i hjemmenettverket ditt.
ICMP
Internet Control Message Protocol (ICMP) er en nettverkslagsprotokoll i IP-pakken som muliggjør kommunikasjon og gir tilbakemelding om statusen til nettverksoperasjoner. ICMP brukes hovedsakelig til å rapportere feil og gi diagnostisk informasjon relatert til behandling av IP-pakker. Hvis en ruter for eksempel får problemer med videresending av en IP-pakke, vil den generere en ICMP-feilmelding og sende den tilbake til kilden av pakken. Vanlige ICMP-feilmeldinger inkluderer «Destination Unreachable», «Time Exceeded» og «Parameter Problem».
En av de mest kjente bruksområdene for ICMP er «ping»-kommandoen (som brukes til å sjekke tilgjengeligheten til en vert). Denne ping-kommandoen sender ICMP Echo Request-meldinger til en destinasjonsvert, og hvis verten er tilgjengelig, vil den svare med en ICMP Echo Reply-melding. Dette er en enkel måte å teste nettverkstilkobling på.
ICMP brukes også til oppdagelse av Path Maximum Transmission Unit (PMTU), som er den maksimale størrelsen på en IP-pakke som kan overføres uten fragmentering langs en bane. ICMP-meldinger som «Fragmentation Needed» og «Packet Too Big» brukes til å bestemme riktig MTU for en gitt bane, og dermed unngå fragmentering og optimalisere dataoverføring. Disse meldingene kan også brukes til å spore tiden det tar for pakker å reise fra kilden til destinasjonen og tilbake, der meldingen «Time Exceeded» brukes til dette formålet.
SNMP
SNMP, eller Simple Network Management Protocol, er en applikasjonslagsprotokoll for administrasjon og overvåking av nettverksenheter og -systemer. SNMP fungerer etter en modell med en manager og agenter. De to hovedkomponentene er: SNMP Manager, som er ansvarlig for å sende forespørsler og samle inn informasjon fra SNMP-agenter, og også kan konfigurere parameterne på agenter, og SNMP-agent, som er en programvaremodul eller prosess som kjører på nettverksenheter og lagrer informasjon om enhetens konfigurasjon og ytelse, og svarer på forespørsler fra SNMP-administratorer.
MIB (Management Information Base) er en hierarkisk database som definerer strukturen og organiseringen av administrerte objekter på en nettverksenhet. Den fungerer som en referanse for både SNMP-administratorer og agenter, slik at de forstår hverandres data.
Det er tre vanlige versjoner av SNMP: SNMPv1, som er den opprinnelige versjonen av SNMP som bruker fellesskapsstrenger for autentisering og mangler sikkerhetsfunksjoner og anses som mindre sikker; SNMPv2c, som er en forbedring i forhold til SNMPv1 med støtte for flere datatyper og forbedret feilhåndtering; og SNMPv3, som er den sikreste versjonen av SNMP, som tilbyr kryptering, autentisering og tilgangskontroll, og dermed løser mange av sikkerhetsproblemene i tidligere versjoner. SNMP brukes til ulike nettverksadministrasjonsoppgaver, som for eksempel overvåking av båndbreddeutnyttelse, sporing av oppetid for enheter, fjernkonfigurering av nettverksenheter og mottak av varsler når spesifikke hendelser oppstår, som systemfeil eller terskelbrudd.
Konklusjon✍️
Jeg håper du fant denne artikkelen nyttig i læringen om ulike nettverksprotokoller. Det kan også være interessant for deg å lære om nettverkssegmentering og hvordan man implementerer det.