Co je síťový port?

Je zřejmé, že nejběžnější použití slova přístav se týká lodní dopravy. Computing však také používá termín port. Ve skutečnosti má dvě použití. První se týká zásuvky, do které lze zapojit kabel. Typické příklady zahrnují USB nebo ethernetový port. Technicky lze ethernetovou zásuvku považovat za síťový port. To není přijímaný význam slova port v sítích. Síťový port je logické číslo, které identifikuje, pro který proces nebo síťový provoz je síťový provoz určen nebo který je odesílán.

Proč jsou čísla portů nezbytná?

Když váš počítač komunikuje s webovým serverem na internetu, vloží svou IP adresu do pole odesílatele. To dává serveru vědět, na kterou IP adresu potřebuje odeslat odpověď. Když se tato odpověď vrátí do vašeho počítače, váš prohlížeč odpověď interpretuje a vykreslí webovou stránku.

To funguje dobře v idealizovaném systému s jedním kusem softwaru, který vytváří a přijímá síťový provoz. Skutečný svět však takový není. V každém počítači existuje řada softwaru, který provozuje síťový provoz. Aby bylo zajištěno, že síťový provoz je správně předán správnému programu, v některých případech je to správný proces v programu. Jedna poslední vrstva adresování se používá jako číslo portu.

Představte si, že máte webový prohlížeč se dvěma otevřenými kartami a současně online videohru. Každá karta prohlížeče musí být schopna odesílat a přijímat síťový provoz, potenciálně současně. Online hra také potřebuje odesílat a přijímat síťový provoz. Nechcete, aby vaše hra musela filtrovat náhodné webové odpovědi, a nechcete, aby váš prohlížeč musel filtrovat váš herní provoz. Obě karty a hra budou mít přiřazeny alespoň jeden síťový port, aby bylo možné snadno určit proces zamýšleného příjemce.

To samé platí i pro servery. Předpokládejme, že máte server, na kterém běží webový i e-mailový server. V takovém případě umožňuje číslo portu operačnímu systému snadno rozlišit, které síťové pakety jsou určeny pro kterou službu.

Co jsou čísla portů?

Čísla portů mají formu 16bitového celého čísla bez znaménka. To znamená, že čísla tvoří šestnáct binárních bitů, žádná záporná čísla a všechna čísla jsou celá. To umožňuje 65536 možných čísel portů v rozsahu od 0 do 65535. Neexistuje žádný systém fyzických portů.

Celé schéma adresování, stejně jako u IP adres a MAC adres, je zcela logické. Adresy IP a MAC byste si mohli představit jako adresu v dopise, který jej dostane do vašeho domu/počítače. V této analogii by číslo portu bylo jako jméno na obálce, aby se zajistilo, že se dostane ke správné osobě/procesu ve vašem domě/počítači.

V prostoru čísel portů existuje nějaká další struktura. Číslo portu 0 je rezervováno. V TCP provozu je 0 zcela nevyužitá. V provozu UDP je číslo portu volitelné, přičemž port 0 znamená „žádný port“. To funguje pro UDP, protože je to bezstavový protokol, který nutně neočekává odpověď. Porty TCP a UDP jsou samostatné. Jedna služba se může vázat na jeden nebo více portů na jednom nebo obou protokolech. Služby, které používají obojí, se obvykle připojují ke stejným číslům portů v TCP a UDP.

Porty 1-1023 jsou známé jako „dobře známé“ porty a obecně vyžadují oprávnění správce, aby se k nim mohly připojit. Některé známé porty jsou 80 pro HTTP, 443 pro HTTPS a 53 pro DNS. Dále máte rozsah 1024 – 49151. Tyto porty jsou známé jako „registrované“ porty. Jedná se o porty pravidelně používané určitými službami, ale to není dostatečně běžné nebo nebylo dostatečně brzy na to, aby bylo možné získat číslo pod 1023. Porty mezi 49152 a 65535 jsou známé jako efemérní porty.

Použití čísel portů

IANA, Internet Assigned Numbers Authority, spravuje známé a registrované seznamy portů. Známé porty mají spojenu pouze jednu službu. Registrované porty však mohou mít řadu známých služeb, které port ve výchozím nastavení používají.

Obecně platí, že ve skutečnosti nic nebrání žádnému programu v navázání na jakékoli číslo portu. Jak bylo uvedeno výše, čísla portů pod 1024 obvykle vyžadují oprávnění správce nebo root, aby se k nim mohli připojit. Přesto můžete přinutit jakoukoli službu, aby se navázala na port 80, například, i když to není webový server. Čísla portů v dobře známých a registrovaných rozsazích mají tendenci být používána pouze síťovými posluchači, přičemž k inicializaci spojení se obvykle používají efemérní porty.

Posluchač je port, který je otevřen a ponechán otevřený. Naslouchá zprávám, aby je mohl zpracovat a odeslat odpověď. Jedná se téměř výhradně o chování služeb typu server, jako je webový server. Webový server by byl hostován na portech 80 a 443, zatímco prohlížeč připojující se k těmto portům by lokálně používal pomíjivý port.

Standardní čísla portů pro posluchače aplikací znamenají, že je snadné vědět, jak se skutečně připojit ke službě. Když například umístíte HTTPS na začátek adresy URL, váš prohlížeč ve výchozím nastavení předpokládá, že se potřebuje připojit k portu 443. V některých případech budou posluchače nastaveny na alternativních portech. To může být způsobeno tím, že jiná služba nebo verze služby již používá standardní port. Může to být také pokus o bezpečnost prostřednictvím temnoty.

Závěr

Síťový port je logická adresa. Software se může vázat na port, takže operační systém ví, že veškerý provoz odeslaný na tento port je určen pro tento proces. Čísla portů se pohybují od 0 do 65535. Mnoho služeb je spojeno se standardním číslem portu. Servery používají tyto porty, zatímco zařízení, která se k nim připojují, používají náhodné vysoké číslo portů. To umožňuje snadné výchozí připojení ke službám a zajišťuje, že připojení k takové službě vám nebrání hostovat jinou službu sami.