Skip to main content

10.3 Komunikácia cez TCP a cez UDP

TCP spojenia

Už vieme, že v prípade protokolu TCP sa vytvára spojenie na cieľový port servera (na ktorom „počúva“ serverová aplikácia) zo zdrojového portu klienta (ktorý sa otvorí dynamicky).

Vytvorenie a evidovanie TCP spojenia

Samotné vytvorenie spojenia je však pomerne komplikovaný proces, pri ktorom sa overuje obojstranná funkčnosť prenosu údajov. Prebieha v troch fázach, ktoré sa označujú ako „three-way handshake“:

  1. Klient odošle serveru požiadavku na vytvorenie spojenia - špeciálny synchronizačný segment s príznakom SYN zo svojho dynamicky vytvoreného portu na port služby.
  2. Server potvrdí požiadavku klienta odoslaním špeciálneho potvrdzovacieho segmentu s príznakom ACK, ktorý má zároveň aj príznak SYN pre požiadavku na vytvorenie spätného spojenia.
  3. Klient potvrdí požiadavku servera odoslaním potvrdenia ACK.

Takto vytvorené spojenie evidujú operačné systémy oboch komunikujúcich zariadení, ale môžu ho evidovať aj smerovače na trase - a to až do chvíle ich ukončenia. V prípade smerovača MikroTik môžeme spojenia sledovať vo WinBox ponuke IP → Firewall → Connections, pokiaľ je sledovanie spojení zapnuté.

Ukončenie a prerušenie TCP spojenia

Ukončenie spojenia neprebieha tak, že sa komunikujúce strany proste odmlčia - u klienta by zostal zablokovaný zdrojový port, čo by viedlo k postupnému vyčerpaniu všetkých portov. Ešte väčší problém by to spôsobilo na smerovači, ktorý by prevádzal preklad adresy (NAT - ním sa budeme zaoberať čoskoro).

Korektné ukončenie spojenia prebieha až v štyroch fázach (uvedené sú fázy pre ukončenie iniciované klientom):

  1. Klient odošle serveru požiadavku na ukončenie spojenia - špeciálny segment s príznakom FIN.
  2. Server prijatie požiadavky potvrdí odoslaním ACK a nebude už prijímať ďalšie údaje.
  3. Server odošle klientovi aj samostatnú požiadavku na ukončenie spojenia FIN.
  4. Klient potvrdí prijatie požiadavky odoslaním ACK a uzavrie príslušný dynamický port.

Niekedy je však spojenie neplánovane prerušené (napríklad klient Wi-Fi sa vzdiali z dosahu Wi-Fi AP) a proces ukončovania spojenia neprebehne. V takom prípade sa uplatní časový limit (timeout). Na smerovači MikroTik je dĺžka tohoto limitu definovaná vo vyššie spomínanej ponuke pod tlačidlom Tracking - položka TCP Established Timeout. Štandardne je nastavená na 1 deň, čo môže byť v prípade veľkého množstva NAT klientov (obzvlášť z Wi-Fi) príliš dlhá doba.

Riadenie toku údajov

...

UDP komunikácia

...