**Portit** ovat tietotekniikassa käytettyjen protokollien päätepisteitä keskenään kommunikoivien sovellusten välillä. Portti tarjoaa jonon tiedon lähettämiseen ja vastaanottamiseen. Porteilla erotellaan samaa verkkoyhteyttä käyttävät sovellukset ja numero on lisätunniste, jolla järjestelmä välittää tiedon oikealle sovellukselle.

Esimerkiksi TCP/IP-pino käyttää portteja eri protokollien ja palvelujen erottamiseen. 
Porttinumero liittyy aina tiettyyn IP-osoitteeseen ja yhdellä tietokoneella voi olla myös useampia osoitteita.

TCP- ja UDP-porttinumerot ovat 16-bittisiä positiivisia kokonaislukuja välillä 0–65535. Porttinumerot ovat abstrakteja ilman fyysistä esitystä ja niitä on jokaisella IP-osoitteella 65536 kappaletta. Porttinumerolla erotetaan oikea vastaanottava sovellusohjelma. Asiakas-palvelin-arkkitehtuurissa kuunteleva palvelinohjelma "sitoo" itsensä tiettyyn porttiin odottamaan yhteyttä.

Porttinumero ei rajoita avoimien yhteyksien määrää, vaan asiakkaan portin ja osoitteen perusteella erotellaan avoimet yhteydet. Samaan porttiin voi olla yhtä aikaa useita avoimia yhteyksiä.

Ehdotus porttinumeroiden varaamiseen on peräisin vuodelta 1972. Mukana oli ehdotus numeroiden ryhmittelystä eri sovelluksia varten. Ensimmäinen numero varattiin telnet-ohjelmalle ja varattujen numeroiden lista kasvoi nopeasti. Ennen porttinumeroita ehdotettiin *palvelunimen* käyttöä (*Server socket name*).

Portteja varataan kolmessa ryhmässä: järjestelmäportit (*System Ports*, 0-1023), käyttäjäportit (1024-49151) ja dynaamiset ja/tai yksityiset portit (49152-65535).
Porttinumeroiden käyttöä on selkeytetty alkuperäisestä ehdotuksesta vuosien varrella ja uusia protokollia on lisätty, muun muassa SCTP ja DCCP.

Palvelinohjelma kytkeytyy tyypillisesti odottamaan (kuuntelemaan) yhteyttä johonkin *hyvin tunnettuun porttiin* (*well-known ports*) palvelinkoneella. Yhteyttä ottavat asiakasohjelmat voivat varata satunnaisen portin omalta koneelta.
Unix-tyyppisissä käyttöjärjestelmissä porttien, joiden numero on alle 1024, avaamiseen tarvitaan pääkäyttäjäoikeudet. Porttinumeron 0 käyttö on sallittu, mutta usein sillä pyydetään järjestelmää valitsemaan vapaa portti.

Portit ovat yhteinen mekanismi sekä TCP- että UDP-protokollille. TCP-portti 80 ei ole sama kuin UDP-portti 80. Yleinen käytäntö on kuitenkin se, että jos TCP-portti 80 on varattu jollekin protokollalle (HTTP) niin vastaavaa UDP-porttia 80 pidetään varattuna samaan käyttötarkoitukseen, vaikkei protokolla sitä tarvitsisikaan.

Esimerkki:

```
 asiakas.fi:45637 → kohde.fi:80
 asiakas.fi:45637 ← kohde.fi:80

```

Yleisimmät portit
-----------------

Yleisimmät portit on Unix-järjestelmissä lueteltu tiedostossa /etc/services

```
  1  TCPMUX    (TCP Port Service Multiplexer)
  7  ECHO      (Echo)
  11 Users     (Active Users)
  13 DAYTIME   (Time of the day)
  15 NETSTAT   (Network Statistics)
  17 QUOTE     (Quote of the day)
  18 MSP       (Message Send Protocol)
  19 CHARGEN   (Character Generator)
  20 FTP       (Data)
  21 FTP       (Control)
  22 SSH       (Secure SHell)
  23 Telnet
  25 SMTP-sähköposti
  31 MSG-AUTH  (Message Authentication)
  37 TIME      (Time)
  41 GRAPHICS  (Graphics Support)
  42 NAMESERV  (Host Name Server)
  43 WHOIS     (Nickname Location)
  49 LOGIN     (Login Host Protocol)
  53 DNS       (Domain Name Server)
  67 BOOTPS    (Bootstrap Protocol Server)
  68 BOOTPC    (Bootstrap Protocol Client)   
  80 HTTP      (Hypertext Transfer Protocol)
 110 POP3-sähköposti
 113 ident 
 143 IMAP-sähköposti
 165 XNS-COURIER (Xerox)
 179 BGP       (Border Gateway Protocol)
 194 IRC       (Internet Relay Chat)
 199 SMUX      (SNMP UNIX Multiplexer)
 209 QMTP      (Quick Mail Transfer Protocol)
 213 IPX       (Internetwork Packet Exchange)
 443 HTTPS     
 444 SNPP      (Simple Network Paging Protocol)
 445 SMB       (Samba)
 512 EXEC      (Execute)
 515 PRINTER   (Spooler)
 517 TALK      (Talk)
 526 TEMPO     (New Date)
 531 CONFERENCE(Chat)
 533 NETWALL   (Emergency Broadcasts)
 765 WEBSTER   (Network Dictionary)
 873 RSYNC     (Remote Syncronization)
 1080 SOCKS    (SOCKS Proxy Server)     
6667 IRC
8080 Vaihtoehtoinen HTTP-portti
```

Nämä ovat vain vakioportteja — mikään taho ei pakota esimerkiksi ajamaan HTTP-palvelinta juuri portissa 80. Tällöin portti on kuitenkin tiedettävä, esim. on käytettävä URL:ia *http*://*yritys.fi:8080* ottamaan yhteyttä HTTP-palvelimeen, joka odottaa yhteyksiä vaihtoehtoisessa HTTP-portissa 8080.

Useita yksinkertaisia ja vähän käytettyjä palveluja on ajettu inetd-palvelimen avulla. Tämä palvelin voidaan määrittää kuuntelemaan useita portteja ja käynnistämään varsinainen palvelinohjelma kun kyseiseen porttiin otetaan yhteys.
Useat vanhemmista palveluista ovat jääneet käytöstä tai niistä on luovuttu tietoturvariskien vuoksi.

TCP-portteihin otettu yhteys on yleensä selväkielistä. Monia protokollia voi kokeilla Telnet-pääteohjelmalla mainitsemalla portin.
Komennolla

```
telnet yritys.fi 80
```

otetaan yhteys koneen yritys.fi porttiin 80 (HTTP). Telnet-komento löytyy useimmista Windows- ja Linux/Unix-käyttöjärjestelmillä varustetuista tietokoneista. (Useimmat HTTP-palvelimet vastaavat esimerkiksi yksinkertaiseen syöteriviin "GET /").

Katso myös
----------

* IP-osoite

Lähteet
-------

1. ↑  Port numbers *ibm.com*. Viitattu 18.2024. (englanniksi)
2. ↑  z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference *ibm.com*. Viitattu 18.2.2024. (englanniksi)
3. ↑  Fall, Kevin R. & Stevens, W. Richard: *TCP/IP Illustrated, Volume 1*, s. 17-19. Second Edition. Addison-Wesley. ISBN 978-0-321-33631-6.
4. ↑  Scaling to 12 Million Concurrent Connections: How MigratoryData Did It *migratorydata.com*.  10.10.2013. Viitattu 17.2.2024. (englanniksi)
5. ↑  Proposed Standard Socket Numbers *datatracker.ietf.org*. Viitattu 18.2.2024. (englanniksi)
6. ↑  Socket Number List *rfc-editor.org*. Viitattu 18.2.2024. (englanniksi)
7. ↑  Initial Connection Protocol - Reviewed *datatracker.ietf.org*. Viitattu 18.2.2024. (englanniksi)
8. ↑  Service Name and Transport Protocol Port Number Registry *iana.org*. Viitattu 18.2.2024. (englanniksi)
9. ↑  Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry *rfc-editor.org*. Viitattu 18.2.2024. (englanniksi)

Aiheesta muualla
----------------

CommonsCommons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta **Portti (tietoliikenne)**.
* IANA:n virallinen luettelo varatuista porttinumeroista (englanniksi)
* (Arkistoitu – Internet Archive) (englanniksi)