Četl jsem, že k ukončení připojení TCP jsou vyžadována 3 navázání spojení: FIN, FIN ACK a ACK. Při ukončení připojení však Wireshark zobrazí FIN ACK, FIN ACK, ACK; nikdy nezobrazí FIN sám od sebe.

Při navazování spojení však Wireshark jasně zobrazí tři potřesení rukou: SYN, SIN ACK , ACK.

Takže jsem trochu zmatený, proč se při ukončení spojení taková tři podání ruky nezobrazí.

Odpovědět

Implementace TCP může poslat samostatný FIN v prvním uzavíracím segmentu. Může však také poslat FIN ACK.

Druhý je přísně lepší: implementace může spojit „bezplatný“ ACK se segmentem FIN, aniž by jej prodlužoval. Důvodem je, že pokud ACK neprovedete, v segmentu stále existuje prostor pro číslo ACK, které bude ignorováno, a plýtvání šířkou pásma. Proto je naposledy odeslaná ACK jednoduše znovu odeslána, pro případ, že by ji příjemce vynechal.

To platí pro všechny segmenty TCP. Proto, s výjimkou úplně prvního segmentu SYN, kde odesílatel nemá žádné informace o čísle ACK, budou všechny ostatní segmenty obvykle mít příznak ACK.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *