Portnummer

Tidigare har vi gått igenom hur TCP och UDP fungerar och hur de transporterar data mellan olika enheter i nätverket. I detta avsnitt fokuserar vi på ett viktigt komplement till dessa protokoll: portnummer.

När en dator skickar data räcker det inte med att veta vilken dator som ska ta emot den – det behövs också information om vilken applikation eller tjänst som ska hantera datan. Portnumret löser detta genom att fungera som en adress till rätt program på enheten. Medan IP-adressen identifierar värden, identifierar portnumret den specifika processen. Detta gör att flera applikationer kan använda nätverket samtidigt utan att deras trafik blandas ihop.

Flera samtidiga kommunikationer

I nätverk finns det situationer där TCP är det mest lämpliga protokollet och andra där UDP passar bättre.
Oavsett vilken typ av data som transporteras använder båda transportprotokoll portnummer för att hantera flera samtidiga sessioner.

Fälten i TCP- och UDP-huvudet innehåller både source-port och destination-port.
Source-portnumret är kopplat till den applikation som startar kommunikationen på den lokala slutenheten, medan destination-portnumret identifierar applikationen som tar emot kommunikationen på de externa mottagare.

Till exempel när en dator begär en webbsida och FTP tjänster från en server genereras source-portnumret dynamiskt av klienten för att unikt identifiera varje begär. Varje ny begäran använder ett nytt dynamiskt source-portnummer, vilket möjliggör flera samtidiga sessioner.

  • FTP-begäran från datorn innehåller:
    • MAC-adresser
      • Destination: 00-07-E9-42-AC-28
      • Source: 00-07-E9-63-CE-53
    • IP-adresser
      • Source: 192.168.1.5
      • Destination: 192.168.1.7
    • Portnummer
      • Source: 1305 (dynamiskt skapad)
      • Destination: 21 (FTP)
  • Webb-förfrågan använder samma lager 2- och 3-adresser, men:
    • Portnummer
      • Source: 1099 (dynamiskt skapad)
      • Destination: 80 (HTTP)

Socket par

Source- och destination-portarna placeras i Transportskiktets segment, som därefter kapslas in i ett IP-paket. IP-paketet innehåller IP-adresserna för avsändare (source) och mottagare (destination).

Kombinationen av en IP-adress och ett portnummer kallas en socket.
När man kopplar samman de två kommunicerande parterna – alltså source socket och destinationen socket – bildas ett socket-par.

Detta socket-par används av Transportskiktet för att unikt identifiera varje enskild kommunikations session mellan två applikationer, även om flera anslutningar pågår samtidigt mellan samma datorer.

I exemplet ovan finns följande information

  • FTP-begäran
    • Source socket: 192.168.1.5:1305
    • Destination socket: 192.168.1.7:21
    • Socket-par: 192.168.1.5:1305 , 192.168.1.7:21
  • Webb-begäran
    • Source socket: 192.168.1.5:1099
    • Destination socket: 192.168.1.7:80
    • Socket-par: 192.168.1.5:1099 , 192.168.1.7:80

Grupper av portnummer

IANA (Internet Assigned Numbers Authority) ansvarar för att tilldela och standardisera portnummer.
Eftersom portnummer består av 16 bitar finns det 65 536 möjliga portar (0–65535).

IANA delar in portnumren i tre huvudgrupper:

Portgrupp Nummerintervall Beskrivning
Well-known ports 0 – 1023 Dessa portar är reserverade för vanliga tjänster och applikationer som webb, e-post och fjärråtkomst.
De gör det möjligt för klienter att enkelt identifiera rätt serverapplikation.
Registered ports 1024 – 49151 Dessa portar tilldelas av IANA till specifika processer eller applikationer, oftast installerade program.
Exempel: Cisco har registrerat port 1812 för sin RADIUS-autentisering.
Private / Dynamic ports 49152 – 65535 Kallas även ephemeral ports. Operativsystemet tilldelar dessa dynamiskt när en klient startar en anslutning.
De används för att identifiera klientens applikation under kommunikationen.

Observera: Vissa klientoperativsystem kan använda registrerade portar istället för dynamiska när de tilldelar källportnummer.

Vanliga well-known-portnummer

Här visas några av de mest använda väletablerade portnumren och deras tillhörande protokoll:

Portnummer Protokoll Beskrivning
20 TCP File Transfer Protocol (FTP) – Dataöverföring
21 TCP File Transfer Protocol (FTP) – Kontrollkanal
22 TCP Secure Shell (SSH)
23 TCP Telnet (fjärrterminal)
25 TCP Simple Mail Transfer Protocol (SMTP)
53 UDP, TCP Domain Name System (DNS)
67 UDP Dynamic Host Configuration Protocol (DHCP) – Server
68 UDP Dynamic Host Configuration Protocol (DHCP) – Klient
69 UDP Trivial File Transfer Protocol (TFTP)
80 TCP Hypertext Transfer Protocol (HTTP)
110 TCP Post Office Protocol version 3 (POP3)
143 TCP Internet Message Access Protocol (IMAP)
161 UDP Simple Network Management Protocol (SNMP)
443 TCP Hypertext Transfer Protocol Secure (HTTPS)

Vissa applikationer använder både TCP och UDP. Till exempel använder DNS UDP för klient-förfrågningar, men TCP för kommunikation mellan DNS-servrar. För en komplett lista över tilldelade portar, se IANA:s officiella portregister:
https://www.iana.org/assignments/service-names-port-numbers

Kommandot netstat

Oförklarliga TCP-anslutningar kan innebära en säkerhetsrisk och tyda på att något är anslutet till enheten.
Därför är det viktigt att kunna visa vilka anslutningar som är aktiva. Kommandot netstat används för att visa protokoll, lokala adresser och portar, fjärradresser samt anslutnings status. Se exempel nedan:

C:\> netstat
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.1.124:3126 192.168.0.2:netbios-ssn ESTABLISHED
TCP 192.168.1.124:3158 207.138.126.152:http ESTABLISHED
TCP 192.168.1.124:3159 207.138.126.169:http ESTABLISHED
TCP 192.168.1.124:3160 207.138.126.169:http ESTABLISHED
TCP 192.168.1.124:3161 sc.msn.com:http ESTABLISHED
TCP 192.168.1.124:3166 www.cisco.com:http ESTABLISHED
(output omitted)
C:\>

Som standard försöker netstat översätta IP-adresser till domännamn och portar till deras välkända tjänster.
Använd växeln -n om du vill visa adresser och portnummer i numerisk form:

C:\> netstat -n