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“:
- 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.
- 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.
- 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):
- Klient odošle serveru požiadavku na ukončenie spojenia - špeciálny segment s príznakom FIN.
- Server prijatie požiadavky potvrdí odoslaním ACK a nebude už prijímať ďalšie údaje.
- Server odošle klientovi aj samostatnú požiadavku na ukončenie spojenia FIN.
- 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
...