GettyImages 672157229 5a7e8e40ba6177003622232f

Portilla 0 on erityinen merkitys verkko-ohjelmoinnissa, erityisesti Unix-käyttöjärjestelmässä socket-ohjelmoinnissa, jossa porttia käytetään järjestelmäkohtaisten dynaamisten porttien pyytämiseen. Portti 0 on jokerimerkkiportti, joka käskee järjestelmää löytämään sopivan portin numeron. Toisin kuin useimmat porttinumerot, portti 0 on varattu portti TCP/IP-verkoissa, joten sitä ei tule käyttää TCP- tai UDP-viesteissä. TCP- ja UDP-verkkoportit vaihtelevat nollasta 65535:een. Porttinumerot välillä nollasta 1023:een määritellään ei-väliaikaisiksi porteiksi, järjestelmäporteiksi tai tunnetuiksi porteiksi. Internet Assigned Numbers Authority (IANA) ylläpitää virallista luetteloa näiden porttinumeroiden käyttötarkoituksesta Internetissä, eikä järjestelmäporttia 0 saa käyttää.

Kuinka TCP/UDP-portti 0 toimii verkko-ohjelmoinnissa

Uuden verkkoyhteyden määrittämistä varten sekä lähde- että kohdepuolelle on määritettävä yksi portin numero. Lähettäjän (lähteen) lähettämät TCP- tai UDP-viestit sisältävät molemmat porttinumerot, jotta viestin vastaanottaja (kohde) voi lähettää vastaussanomia sopivaan protokollan päätepisteeseen. IANAlla on valmiiksi määritetyt järjestelmäportit tavallisille Internet-sovelluksille, kuten web-palvelimille (portti 80), mutta monilla TCP- ja UDP-verkkosovelluksilla ei ole omaa järjestelmäporttia, ja niiden on hankittava sellainen laitteensa käyttöjärjestelmästä joka kerta, kun ne suoritetaan. Lähdeportin numeron määrittämiseksi sovellukset kutsuvat TCP/IP-verkkotoimintoja, kuten bind(), pyytääkseen sellaista. Sovellus voi tarjota kiinteän (kovakoodatun) numeron bind():lle, jos se haluaa pyytää tiettyä numeroa, mutta tällainen pyyntö voi epäonnistua, koska toinen järjestelmässä oleva sovellus saattaa parhaillaan käyttää sitä. Vaihtoehtoisesti se voi tarjota portin 0 to bind() yhteysparametriksi. Tämä laukaisee käyttöjärjestelmän automaattisesti etsimään ja palauttamaan sopivan vapaan portin dynaamisella TCP/IP-porttinumeroalueella. Sovellus ei saa porttia 0, vaan toista dynaamista porttia. Tämän ohjelmointitavan etuna on tehokkuus. Sen sijaan, että jokainen sovellus toteuttaisi ja suorittaisi koodia kokeillakseen useita portteja, kunnes niillä on kelvollinen portti, sovellukset luottavat käyttöjärjestelmään. Unix, Windows ja muut käyttöjärjestelmät eroavat portin 0 käsittelyssä, mutta sama yleinen käytäntö pätee.

Portti 0 ja verkkosuojaus

Internetin kautta porttia 0 kuunteleville isännille lähetettävä verkkoliikenne voi olla verkkohyökkääjien tai vahingossa väärin ohjelmoitujen sovellusten tuottamaa. Vastausviestit, jotka isännät luovat vastauksena portin 0 liikenteeseen, auttavat hyökkääjiä oppimaan näiden laitteiden käyttäytymistä ja mahdollisia verkkohaavoittuvuuksia. Monet Internet-palveluntarjoajat (ISP) estävät liikenteen portissa 0 sekä saapuvan että lähtevän suojatakseen näitä hyväksikäyttöjä.

FAQ

  • Mitä porttinumerot ovat?

    TCP/IP-verkkoyhteyksissä käytettävät porttinumerot toimivat osoitetietoina ja tunnistavat viestin lähettäjät ja vastaanottajat. Porttinumeroiden avulla saman verkon eri sovellukset voivat jakaa resursseja samaan aikaan.

  • Miten löydän porttinumerot?

    Löydät tietyn IP-osoitteen porttinumeron siirtymällä komentokehotteeseen ja kirjoittamalla netstat -aja paina sitten Tulla sisään. Näet luettelon aktiivisista TCP-yhteyksistä sekä IP-osoitteet ja porttinumerot kaksoispisteellä erotettuina.

  • Voinko muodostaa yhteyden porttiin 0?

    Ei. Virallisesti porttia 0 ei ole olemassa, etkä voi muodostaa yhteyttä siihen, koska se on virheellinen porttinumero. Voit kuitenkin lähettää Internet-paketin porttiin 0 ja portista 0 samalla tavalla kuin minkä tahansa muun portin numeron kanssa.

Por Markus