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.[1] Porteilla erotellaan samaa verkkoyhteyttä käyttävät sovellukset ja numero on lisätunniste, jolla järjestelmä välittää tiedon oikealle sovellukselle.[2]

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ä.[3]

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ä.[4]

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

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).[8] Porttinumeroiden käyttöä on selkeytetty alkuperäisestä ehdotuksesta vuosien varrella ja uusia protokollia on lisätty, muun muassa SCTP ja DCCP.[9]

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
  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)

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy