10.2 Porty TCP a UDP
Každá bežiaca služba na serveri, ktorá chce poskytovať službu po sieti, musí umožniť klientom pripojenie. To dosiahne tým, že „počúva“ na konkrétnom porte - napríklad služba webového servera na TCP/80. Aby sa mohla nadviazať konverzácia / vytvoriť spojenie, klient sa pripája na tento konkrétny port, pričom i na jeho strane sa v klientskej aplikácii otvorí port, na ktorý potom budú chodiť odpovede. Na rovnakom serveri (na tej istej IP adrese) môže súčasne bežať iná služba, no tá počúva na inom porte - napríklad poštová služba na TCP/25.
Porty teda rozlišujú na jednej strane jednotlivé služby servera a na strane druhej zase klientske aplikácie. Nemusí to byť server v zmysle vyhradeného počítača poskytujúceho služby - serverom môže byť aj akýkoľvek počítač poskytujúci ľubovoľnú službu v režime peer-to-peer (napríklad zdieľanie tlačiarne, či súborov), ale aj ľubovoľná aplikácia, ktorá umožňuje pripojenie klientov.
Čísla portov sú v TCP nezávislé od UDP (teda oba protokoly majú svojich 65536 portov) a je možné ich rozdeliť do troch rozsahov:
1. Dobre známe porty 0 až 1023: sú v ňom definované štandardné čísla portov (spravuje organizácia IANA) pre historicky najvýznamnejšie internetové služby, ako napríklad:
- webový server HTTP(S):
- TCP/80 - nešifrovaný,
- TCP/443 - šifrovaný cez TLS,
- UDP/443 - šifrovaný protokol QUIC (HTTP/3);
- DNS server: UDP/53 a TCP/53;
- konzola cez telnet: TCP/23 - zastaraný, nešifrovaný, nemal by sa používať;
- konzola cez SSH a súborový server SFTP (SSH FTP): TCP/22;
- monitoring a manažment zariadenia cez SNMP: UDP/161;
- súborový server FTP(S) - zastaraný (nešifrovaný FTP i šifrovaný variant FTPS):
- kontrolné spojenie na TCP/21,
- dátové spojenie na dynamický port (môže byť rôzny, pre každého klienta samostatný);
- súborový server SMB (NAS, Windows zdieľanie, Linux Samba): TCP/445;
- poštový server SMTP(S):
- TCP/25 - nešifrovaný, používajú ho už len SMTP servery medzi sebou,
- TCP/465 - šifrovaný cez TLS, používajú klientske aplikácie na odoslanie e-mailu;
- poštový server POP3(S):
- TCP/110 - zastaraný, nešifrovaný, nemal by sa používať,
- TCP/995 - šifrovaný cez TLS;
- poštový server IMAP4(S):
- TCP/143 - zastaraný, nešifrovaný, nemal by sa používať,
- TCP/993 - šifrovaný cez TLS.
2. Registrované porty 1024 až 49151: ďalšie čísla portov, ktoré boli registrované v organizácii IANA.
3. Dynamické porty 49152 až 65535: využívajú sa na strane klienta pre identifikáciu konverzácie so serverom, a to za účelom prijatia odpovede - postupne sa recyklujú.
Príklad: Ak sa chce webový prehliadač z počítača 192.168.1.10 pripojiť na webovú službu servera 192.168.1.1, vytvorí sa spojenie napríklad zo 192.168.1.10:49152 (zdrojový soket) na 192.168.1.1:80 (cieľový soket) - túto dvojicu sieťových soketov nazývame soketový pár a identifikuje jednu konverzáciu.
Prehľad aktuálne nadviazaných spojení je možné vo Windows i v Linux zobraziť príkazom netstat, prípadne aj s otvorenými „počúvajúcimi“ sieťovými portami netstat -a. v Linuxe je však tento príkaz už zastaraný a nahrádza ho príkaz ss. Vo Windows môžeme využiť aj Monitor prostriedkov.
Niektoré verzie Windows nerešpektovali rozsah dynamických portov a používali aj porty nižšie (bolo to v dobách do Windows XP). Toto je možné preveriť príkazmi:
# IPv4
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
# IPv6
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp
A prípadne zmeniť nastavenie:
# IPv4
netsh int ipv4 set dynamicport tcp start=49152 num=16384
netsh int ipv4 set dynamicport udp start=49152 num=16384
# IPv6
netsh int ipv6 set dynamicport tcp start=49152 num=16384
netsh int ipv6 set dynamicport udp start=49152 num=16384