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. Nollan ja 1023:n välillä olevat porttinumerot määritellään ei-lyhytaikaisiksi portteiksi, järjestelmäportteiksi tai tunnetuiksi portteiksi. Internet Assigned Numbers Authority (IANA) ylläpitää virallista luetteloa näiden porttinumeroiden aiotusta käytöstä Internetissä, eikä järjestelmäporttia 0 saa käyttää.
Kuinka TCP/UDP-portti 0 toimii verkko-ohjelmoinnissa
Uuden verkkopistokeyhteyden määrittäminen edellyttää, että yksi porttinumero on varattu sekä lähde- että kohdepuolella. Alkuperäisen (lähteen) lähettämät TCP- tai UDP-viestit sisältävät molemmat porttinumerot, jotta viestin vastaanottaja (kohde) voi lähettää vastausviestejä oikeaan protokollan päätepisteeseen.
IANA on varannut enn alta määrätyt järjestelmäportit Internet-perussovelluksille, 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 niitä käytetään..
Lähdeporttinumeron osoittamiseksi sovellukset kutsuvat TCP/IP-verkkotoimintoja, kuten bind(), pyytääkseen sellaisen. Sovellus voi toimittaa 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 antaa yhteysparametrikseen portin 0 to bind(). Tämä laukaisee käyttöjärjestelmän automaattisesti etsimään ja palauttamaan sopivan vapaan portin TCP/IP-dynaamisten porttien numeroalueelta.
Sovellukselle ei myönnetä porttia 0, vaan jokin muu dynaaminen portti. Tämän ohjelmointitavan etuna on tehokkuus. Sen sijaan, että jokainen sovellus toteuttaisi ja suorittaisi koodia ja yrittäisi useita portteja, kunnes ne saavat kelvollisen portin, sovellukset luottavat käyttöjärjestelmään.
Unix, Windows ja muut käyttöjärjestelmät vaihtelevat portin 0 käsittelyssä, mutta sama yleinen käytäntö pätee.
Portti 0 ja verkon suojaus
Internetin kautta porttia 0 kuunteleville isännille lähetetty verkkoliikenne saattaa olla verkkohyökkääjien tai väärin ohjelmoitujen sovellusten aiheuttamaa vahingossa. 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ä saapuvat että lähtevät viestit suojatakseen näitä hyväksikäyttöjä.
UKK
Mitä porttinumerot ovat?
TCP/IP-verkkoyhteyksissä käytettävät porttinumerot toimivat osoitetietoina, jotka tunnistavat viestin lähettäjät ja vastaanottajat. Porttinumeroiden avulla useat saman verkon sovellukset voivat jakaa resursseja samaan aikaan.
Miten löydän porttinumerot?
Löydäksesi tietyn IP-osoitteen porttinumeron, siirry komentokehotteeseen, kirjoita netstat -a ja paina sitten Enter. Näet luettelon aktiivisista TCP-yhteyksistä sekä IP-osoitteet ja porttinumerot erotettuna kaksoispisteellä.
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 toisella porttinumerolla.