Čo je sieťový port?

Je zrejmé, že najbežnejšie použitie slova prístav sa týka lodnej dopravy. Computing však používa aj termín port. V skutočnosti má dve použitia. Prvá sa týka zásuvky, do ktorej je možné zapojiť kábel. Typické príklady zahŕňajú USB alebo ethernetový port. Technicky by sa ethernetová zásuvka dala považovať za sieťový port. To nie je akceptovaný význam slova port v sieti. Sieťový port je logické číslo, ktoré identifikuje, ktorý proces alebo sieťová prevádzka sieťovej služby je určená alebo ktorý odosiela.

Prečo sú čísla portov potrebné?

Keď váš počítač komunikuje s webovým serverom na internete, vloží svoju IP adresu do poľa odosielateľa. Server tak bude vedieť, na ktorú IP adresu potrebuje poslať odpoveď. Keď sa táto odpoveď vráti do vášho počítača, váš prehliadač ju interpretuje a vykreslí webovú stránku.

Funguje to dobre v idealizovanom systéme s jedným softvérom, ktorý vytvára a prijíma sieťovú prevádzku. Reálny svet však taký nie je. V každom počítači existuje množstvo softvéru, ktorý vytvára sieťovú prevádzku. Aby sa zabezpečilo, že sieťová prevádzka je správne odovzdaná správnemu programu, v niektorých prípadoch je to správny proces v programe. Jedna posledná vrstva adresovania sa používa na číslo portu.

Predstavte si, že máte webový prehliadač s dvomi otvorenými kartami a súčasne online videohru. Každá karta prehliadača musí byť schopná odosielať a prijímať sieťový prenos, potenciálne súčasne. Online hra tiež potrebuje odosielať a prijímať sieťový prenos. Nechcete, aby vaša hra musela filtrovať náhodné webové odpovede, a tiež nechcete, aby váš prehliadač musel filtrovať vašu hernú návštevnosť. Obom kartám aj hre bude priradený aspoň jeden sieťový port, aby bolo možné ľahko určiť proces zamýšľaného príjemcu.

To isté platí aj pre servery. Predpokladajme, že máte server, na ktorom beží webový aj e-mailový server. V takom prípade umožňuje číslo portu operačnému systému ľahko rozlíšiť, ktoré sieťové pakety sú určené pre ktorú službu.

Čo sú čísla portov?

Čísla portov majú formu 16-bitového celého čísla bez znamienka. To znamená, že čísla tvoria šestnásť binárnych bitov, žiadne záporné čísla a všetky čísla sú celé. To umožňuje 65536 možných čísel portov v rozsahu od 0 do 65535. Neexistuje žiadny systém fyzických portov.

Celá schéma adresovania, podobne ako v prípade IP adries a MAC adries, je úplne logická. Adresy IP a MAC by ste si mohli predstaviť ako adresu v liste, aby ste ho dostali do vášho domu / počítača. V tejto analógii by číslo portu bolo ako meno na obálke, čím sa zabezpečí, že sa dostane k správnej osobe/procesu vo vašom dome/počítači.

V rámci priestoru čísel portov existuje iná štruktúra. Číslo portu 0 je rezervované. V prenose TCP je 0 úplne nevyužitá. V prenose UDP je číslo portu voliteľné, pričom port 0 znamená „žiadny port“. Toto funguje pre UDP, pretože je to bezstavový protokol, ktorý nemusí nevyhnutne očakávať odpoveď. Porty TCP a UDP sú oddelené. Jedna služba sa môže viazať na jeden alebo viac portov na jednom alebo oboch protokoloch. Služby, ktoré používajú oboje, sa zvyčajne pripájajú k rovnakým číslam portov v protokoloch TCP a UDP.

Porty 1-1023 sú známe ako „dobre známe“ porty a vo všeobecnosti vyžadujú oprávnenia správcu, aby sa na ne viazali. Niektoré známe porty sú 80 pre HTTP, 443 pre HTTPS a 53 pre DNS. Ďalej máte rozsah 1024 – 49151. Tieto porty sú známe ako „registrované“ porty. Toto sú porty, ktoré pravidelne používajú určité služby, ale to nie je dosť bežné alebo nebolo dosť skoro na to, aby bolo možné získať číslo pod 1023. Porty medzi 49152 a 65535 sú známe ako efemérne porty.

Použitie čísel portov

IANA, Internet Assigned Numbers Authority, vedie dobre známe a registrované zoznamy portov. Známe porty majú priradenú iba jednu službu. Registrované porty však môžu mať rad známych služieb, ktoré port štandardne používajú.

Vo všeobecnosti nič v skutočnosti nebráni žiadnemu programu vo väzbe na akékoľvek číslo portu. Ako už bolo spomenuté vyššie, čísla portov pod 1024 zvyčajne vyžadujú administrátorské alebo rootovské oprávnenia na viazanie. Napriek tomu môžete prinútiť akúkoľvek službu, aby sa naviazala napríklad na port 80, aj keď nejde o webový server. Čísla portov v dobre známych a registrovaných rozsahoch majú tendenciu používať iba poslucháči siete, pričom efemérne porty sa zvyčajne používajú na iniciovanie pripojení.

Poslucháč je port, ktorý je otvorený a ponechaný otvorený. Počúva správy, aby ich mohol spracovať a poslať odpoveď. Toto je takmer výlučne správanie služieb serverového typu, ako je webový server. Webový server by bol hosťovaný na portoch 80 a 443, zatiaľ čo prehliadač pripájajúci sa k týmto portom by lokálne používal efemérny port.

Štandardné čísla portov pre poslucháčov aplikácií znamenajú, že je ľahké vedieť, ako sa skutočne pripojiť k službe. Napríklad, keď umiestnite HTTPS na prednú časť adresy URL, váš prehliadač predvolene predpokladá, že sa musí pripojiť k portu 443. V niektorých prípadoch budú poslucháči nastavené na alternatívnych portoch. Môže to byť spôsobené tým, že iná služba alebo verzia služby už používa štandardný port. Môže to byť aj pokus o bezpečnosť prostredníctvom temnoty.

Záver

Sieťový port je logická adresa. Softvér sa môže viazať na port, takže operačný systém vie, že všetok prenos odoslaný na tento port je určený pre tento proces. Čísla portov sa pohybujú od 0 do 65535. Mnohé služby sú spojené so štandardným číslom portu. Servery používajú tieto porty, zatiaľ čo zariadenia, ktoré sa k nim pripájajú, používajú porty s náhodným vysokým počtom. To umožňuje jednoduché predvolené pripojenie k službám a zaisťuje, že pripojenie k takejto službe vám nezabráni hostiť inú službu sami.