TCP 3-Way Handshake (SYN, SYN-ACK, ACK)
Co je TCP Three-Way HandShake?
Tลรญcestnรฉ podรกnรญ ruky nebo TCP 3-way handshake je proces, kterรฝ se pouลพรญvรก v sรญti TCP/IP k navรกzรกnรญ spojenรญ mezi serverem a klientem. Jednรก se o tลรญstupลovรฝ proces, kterรฝ vyลพaduje, aby si klient i server vymฤnili synchronizaฤnรญ a potvrzovacรญ pakety pลed zahรกjenรญm procesu skuteฤnรฉ datovรฉ komunikace.
Tลรญcestnรฝ proces handshake je navrลพen tak, aby vรกm oba konce pomohly iniciovat, vyjednรกvat a oddฤlovat pลipojenรญ TCP soketu souฤasnฤ. Umoลพลuje pลenรกลกet vรญce pลipojenรญ TCP soketu v obou smฤrech souฤasnฤ.
Typy zprรกv TCP
| Zprรกva | Description |
|---|---|
| syn | Pouลพรญvรก se k zahรกjenรญ a navรกzรกnรญ spojenรญ. Pomรกhรก vรกm takรฉ synchronizovat sekvenฤnรญ ฤรญsla mezi zaลรญzenรญmi. |
| ACK | Pomรกhรก druhรฉ stranฤ potvrdit, ลพe obdrลพela SYN. |
| SYN-ACK | Zprรกva SYN z mรญstnรญho zaลรญzenรญ a ACK pลedchozรญho paketu. |
| PLOUTEV | Slouลพรญ k ukonฤenรญ spojenรญ. |
TCP tลรญcestnรฝ proces handshake
Provoz TCP zaฤรญnรก tลรญstrannรฝm handshake. V tomto procesu TCP handshake musรญ klient zahรกjit konverzaci vyลพรกdรกnรญm komunikaฤnรญ relace se serverem:

- Krok 1: V prvnรญm kroku klient navรกลพe spojenรญ se serverem. Odeลกle segment se SYN a informuje server o tom, ลพe klient mรก zahรกjit komunikaci a jakรฉ mรก bรฝt jeho poลadovรฉ ฤรญslo.
- Krok 2: V tomto kroku server odpovรญ na poลพadavek klienta nastavenรญm signรกlu SYN-ACK. ACK vรกm pomลฏลพe oznaฤit odezvu segmentu, kterรฝ je pลijat, a SYN udรกvรก, jakรฉ poลadovรฉ ฤรญslo by mฤlo zaฤรญt se segmenty.
- Krok 3: V tomto poslednรญm kroku klient potvrdรญ odpovฤฤ serveru a oba vytvoลรญ stabilnรญ spojenรญ a zahรกjรญ vlastnรญ proces pลenosu dat.
Pลรญklad z reรกlnรฉho svฤta
Zde je jednoduchรฝ pลรญklad procesu tลรญcestnรฉho podรกnรญ ruky, kterรฝ se sklรกdรก ze tลรญ krokลฏ:
- Hostitel X zahรกjรญ pลipojenรญ odeslรกnรญm paketu TCP SYN do cรญlovรฉho hostitele. Pakety obsahujรญ nรกhodnรฉ poลadovรฉ ฤรญslo (napลรญklad 4321), kterรฉ oznaฤuje zaฤรกtek poลadovรฝch ฤรญsel pro data, kterรก by mฤl hostitel X vysรญlat.
- Potรฉ server pลijme paket a odpovรญ svรฝm poลadovรฝm ฤรญslem. Jeho odpovฤฤ takรฉ obsahuje potvrzovacรญ ฤรญslo, coลพ je poลadovรฉ ฤรญslo hostitele X zvรฝลกenรฉ o 1 (zde je to 4322).
- Hostitel X odpovรญ serveru odeslรกnรญm potvrzovacรญho ฤรญsla, kterรฉ je vฤtลกinou poลadovรฝm ฤรญslem serveru, kterรฉ se zvรฝลกรญ o 1.
Po ukonฤenรญ procesu pลenosu dat TCP automaticky ukonฤรญ spojenรญ mezi dvฤma samostatnรฝmi koncovรฝmi body.
Shrnutรญ
- TCP 3-way handshake nebo three-way handshake nebo TCP 3-way handshake je proces, kterรฝ se pouลพรญvรก v TCP/IP sรญลฅ k vytvoลenรญ spojenรญ mezi serverem a klientem.
- Syn se pouลพรญvรก k zahรกjenรญ a navรกzรกnรญ spojenรญ
- ACK pomรกhรก potvrdit druhรฉ stranฤ, ลพe pลijala SYN.
- SYN-ACK je zprรกva SYN z mรญstnรญho zaลรญzenรญ a ACK dลรญvฤjลกรญho paketu.
- FIN se pouลพรญvรก pro ukonฤenรญ spojenรญ.
- TCP handshake proces, klient potลebuje zahรกjit konverzaci vyลพรกdรกnรญm komunikaฤnรญ relace se serverem
- V prvnรญm kroku klient navรกลพe spojenรญ se serverem
- V tomto druhรฉm kroku server odpovรญ na poลพadavek klienta nastavenรญm signรกlu SYN-ACK
- V tomto poslednรญm kroku klient potvrdรญ odpovฤฤ serveru
- TCP automaticky ukonฤรญ spojenรญ mezi dvฤma samostatnรฝmi koncovรฝmi body.

