Hopp til innhold

Fagstoff

TCP, UDP og porter

TCP og UDP er protokoller (felles regelsett) for hvordan informasjon fra et kjørende dataprogram som skal sendes over nettverk, deles opp i datapakker. Datapakkene merkes med pakkenummer og portnummer slik at mottakeren skal kunne dem sette sammen og sende informasjonen til riktig program.
Skjerm med nettverksinformasjon i Linux. Foto.
Åpne bilde i et nytt vindu
Modell over TCP / IP med fem lag. Fra toppen: lag 5 applikasjonslaget, lag 4 transportlaget, lag 3 nettverkslaget, lag 2 datalinklaget, lag 1 det fysiske laget. Lag 4 er merket grønt. Illustrasjon.

De fleste datapakker som går via nettverk og over internett bruker enten TCP (Transmission Control Protocol) eller UDP (User Datagram Protocol). Disse transportprotokollene ligger på lag 4, transportlaget, i TCP/IP-modellen.

Protokollene deler opp data fra programmer (prosesser) som ønsker å sende data ut over nettverk eller internett. Dataene deles opp i datapakker, og hver pakke får et pakkehode med informasjon om portnummer, sjekksum og, for TCP, sekvensnummer (sequence number).

Portnummer

Portnummer er et nummer mellom 1 og 65 535 som datapakker merkes med for å indikere hvilket program de skal leveres til hos mottakermaskinen.

Standardiserte portnummer

Mange av portnumrene er standardisert. For eksempel er port 22 standardport for SSH, som brukes for fjernstyring av Linux-terminal, og 443 er standardport for nettlesertrafikk i HTTPS. De fleste programmer vil forvente at standard portnummer brukes, men vi kan overstyre dette ved behov. I slike tilfeller må portnummeret spesifiseres både på server- og klientsiden. Om du for eksempel setter opp en webserver, kan du sette den til å bruke port 8 000. For å nå denne fra en klientmaskin må portnummeret også spesifiseres, for eksempel ved å skrive inn følgende adresse i nettleseren:

https://192.168.1.55:8000

Wikipedia har ei liste over portnummer og tjenestene de er assosiert med, enten offisielt eller av vane:

Wikipedia: List of TCP and UDP port numbers

Sikkerhetsrisiko ved å ha porter åpne mot internett

Standardporter for fjernstyring av servere, som SSH og RDP (Remote Desktop Protocol) er vanlige mål for eksterne trusselaktører. Servere som har tjenester som kan nås fra internett, bør ikke ha disse portene satt opp slik at de aksepterer trafikk utenfra lokalnettverk.

Tre nummererte porter inne i en bygning. Foto.

Selv bruk av ikke-standardiserte porter er risikabelt da moderne skannerverktøy kan finne ut hvilke tjenester som aksepterer trafikk på hvilke porter.

Det anbefales derfor å sette opp VPN, avgrense hvilke IP-områder (ranges) som har tillatelse til å ta kontakt på disse portene eller andre tiltak som hindrer at eksterne har noen som helst mulighet til å forsøke tilkobling til porter relatert til fjernstyring.

UDP

UDP (User Datagram Protocol) er en transportprotokoll som er spesialisert for hurtig kommunikasjon (time-sensitive) for eksempel ved overføring av video og lydstrømmer og DNS-oppslag.

UDP har ikke fram-og-tilbake-kommunikasjonen mellom avsender og mottaker som sikrer at datapakkene faktisk kommer fram. Overføringer med UDP kan dermed ha noe pakketap. Dette gjør UDP upassende for sending av datafiler, men bra for strømmer og enkle kommunikasjonspakker. UDP brukes ofte for nettbaserte spill der lav forsinkelse er essensielt. I slike tilfeller må det bygges inn i spillklient og server hvordan de skal håndtere tapte datapakker.

TCP

TCP (Transmission Control Protocol) er en transportprotokoll med funksjonalitet for å hindre pakketap. TCP-datapakker merkes med et sekvensnummer som identifiserer hver pakkes nummer i rekka av datapakker.

Det går aktiv kommunikasjon fram og tilbake mellom klient og server. Dette sikrer at datapakker som går tapt underveis på vei til mottakeren, blir sendt på nytt fra avsenderen. Ulempen med den ekstra kommunikasjonen er at protokollen gir noe høyere forsinkelse.


Relatert innhold

TCP/IP-modellen viser hvordan datapakker bygges opp for å få den fram til riktig mottaker og hvordan de tolkes når de kommer fram.


CC BY-SASkrevet av Tron Bårdgård.
Sist faglig oppdatert 12.05.2022

Læringsressurser

Nettverkstjenester og protokoller