TCP - uzavření a reset spojení

Přizpůsobování velikosti okna, uzavření a reset spojení

Přizpůsobování velikosti okna

TCP proces je schopen se přizpůsobit kvalitě spojení. Velikost okna může být v závislosti na spolehlivosti doručení celého okna – může být zvětšována i zmenšována. Zvětšování i zmenšování zajišťuje přijímající strana, vysílající strana se na základě požadavků přizpůsobuje.

Pokud přijímající proces není schopen přijímat další data, inzeruje to vysílající straně prostřednictvím tzv. „zero receive window“ neboli okna s nulovou velikostí. Data, která jsou v tu chvíli na cestě nejsou přijímajícím procesem potvrzena.

Vysílající proces si nastaví nulovou velikost okna a dokud není přijímajícím procesem velikost okna změněna (tento TCP proces není opět schopen přijímat data), musí vysílat pakety s neplatným sekvenčním číslem a potvrzovacím číslem a jedním bytem nesmyslných dat. Přijímající proces posílá potvrzení jejich příjmu. Důvodem těchto paketů je udržení TCP spojení.

Uzavření spojení

TCP spojení je plně dulexní. To znamená, že spoejní má dva nezávislé datové toky. Pro ukončení spojení musí být uzavřeny oba toky.

Strana, která vyvolává ukončení spojení posílá druhé straně paket obsahující příznak FIN. Musí však s pokračovat s přijímáním dat dokud druhá strana neodpoví s paketem s příznakem FIN. Jakmile tento paket přijde, TCP proces informuje vyšší vrstvu, uzavře buffery, uvolní zdroje a ukončí se. Příznak FIN je posílán do dobu kdy uzel přijme potvrzení ukončení buď v samostatných paketech nebo v datových paketech.

Strana, která požadavek na ukončení procesu přijímá, informuje vyšší vrstvu o přijetí požadavku na ukončení (paket s příznakem FIN) a pokračuje ve vysílání zbytku připravených dat. Poté potvrdí ukončení procesu a ukončí jej.

Reset spojení (Connection Reset)

V případě, že poslané pakety nejsou během určité doby potvrzeny TCP proces provede několik dalších pokusů o doručení dat. V případě, že ani během těchto pokusů nedojde potvrzující odpověď, TCP provede reset (vymazání) spojení. To je zajištěno paketem s příznakem RST. Pokud druhá strana přijme paket s tímto příznakem, musí také zrušit spojení. TCP vrstva pak informuje vyšší vrtsvu (klientskou část programu) a zrušení spojení a uvolňuje zdroje. <p>Namátkově si vyjmenujme nejznámější TCP porty :</p

·         echo                 7

·         FTP (data)       20

·         FTP (ctrl)         21

·         SMTP             25

·         BGP              179