Skip to main content

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, 162 (trap); 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 ipv4 show dynamicport udp / 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 ipv4 set dynamicport udp start=49152 num=16384
                / netsh int ipv6 set dynamicport udp start=49152 num=16384