Portti (tietoliikenne)

**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&ndash;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

## Aiheesta muualla

*IANA:n virallinen luettelo varatuista porttinumeroista 
* http://www.networksorcery.com