Siete

Čo sú kroky pri protokole TCP Handshake?

Čo sú kroky pri protokole TCP Handshake?

TCP alebo Transmission Control Protocol je štandardný protokol transportnej vrstvy, ktorý internet používa na prenos dát. Request For Comments (RFC) 793 definuje TCP ako spoľahlivý a na pripojenie zameraný protokol. Pretože je orientovaný na pripojenie, je potrebné pred prenosom akýchkoľvek údajov vytvoriť cestu alebo spojenie. Protokol TCP využíva na nadviazanie spojenia medzi dvoma zariadeniami trojcestný mechanizmus podania ruky. V tejto príručke uvidíme, ako funguje mechanizmus trojstranného podania ruky. Najprv sa pozrime na problémy s modelom obojsmerného podania ruky.

Problémy s modelom obojsmerného spojenia

Model obojsmerného podania ruky zlyhal kvôli problému so starým duplikátom paketov. Predpokladajme, že na serverový server dorazí starý duplicitný paket. Tento starý paket prišiel z predtým ukončeného spojenia a obsahuje poradové číslo „z“. V určitom čase počas nového spojenia server prijíma paket s poradovým číslom „z“. Keď prijme tento starý paket s rovnakým poradovým číslom „z“, nevedomky tento starý paket prijme a zahodí skutočný paket z nového spojenia.

Vo vyššie uvedenom prípade, ak spojenie medzi klientom a serverom nefunguje, príchod starého paketu žiadosti o duplicitné pripojenie stále spôsobuje problémy. Ak server dostane takýto paket, odpovie späť paketom SYN + ACK. Tento paket klient zahodí, pretože sa nemal v úmysle pripojiť. Server však vstúpi do stavu zablokovania a čaká na odoslanie údajov klientom.

Ďalším problémom je, že ak hostiteľ C pošle žiadosť o pripojenie na server vydaním sa za klienta, server odpovie späť klientovi ACK. Klient zahodí tento paket „ACK“ a povie serveru, aby ukončil pripojenie. Počas tohto intervalu udalostí môže hostiteľ C spustiť spoofingový útok zaslaním množstva paketov.

Trojcestný model HandShake v TCP / IP

Model trojitého podania ruky je veľmi dôležitý. Ak to nevyužijeme a priamo začneme odosielať dáta, môže prijímajúca aplikácia začať prijímať duplicitné pakety. Útočník môže mať medzi útokmi šancu zahájiť útoky (napríklad DDoS). Postup trojstranného podania ruky spustí jeden stroj a druhá strana naň odpovie. Na vysvetlenie tohto postupu sa používa nasledujúca konvencia:

„Ak stránka prijme paket s poradovým číslom„ x “, odpovie číslom ACK„ x + 1 “.“

Zhrňme kroky, ktoré sa uskutočnili pri trojstrannom podaní ruky medzi strojom klienta a serverom:

Krok 1. Pri prvom podaní ruky klient pošle na server paket žiadosti o pripojenie SYN s náhodným počiatočným poradovým číslom („x“).

Krok 2. Pri druhom podaní ruky server odpovie paketom SYN, ktorý má náhodné poradové číslo („y“) a paketom ACK s poradovým číslom („x + 1“), aby potvrdil počiatočné poradové číslo („x“) odoslané klientom.

Krok 3. Pri treťom podaní ruky klient pošle paket ACK s poradovým číslom („y + 1“) na server na potvrdenie paketu SYN („y“) odoslaného serverom.

Krok 4. Oba konce sú teraz synchronizované a môžu začať nezávisle prenášať údaje. [1]

Procedúra trojcestného spojenia pomocou protokolu TCP je stále platná, ak obe strany súčasne spustia proces inicializácie. V takejto situácii dostane každý stroj po odoslaní paketu „SYN“ segment „SYN“ bez potvrdenia. Ak k prijímaču dorazí starý duplikátový paket „SYN“, môže sa prijímačovi zdať, že súčasne prebieha proces inicializácie spojenia. Na odstránenie tejto nejednoznačnosti môžeme použiť pakety „reset“.

Ukončenie TCP spojenia

Každá z týchto dvoch strán môže ukončiť TCP spojenie. Na tento účel môže ktorákoľvek strana prenášať segment TCP s nastaveným bitom FIN. To znamená, že odosielajúca strana nemá ďalšie údaje na odoslanie. Prijímajúca strana potvrdí tento paket FIN zaslaním potvrdzovacieho paketu. Týmto sa ukončí spojenie z jednej strany (strana odosielateľa). Prijímač teraz použije rovnaké kroky na ukončenie spojenia v jeho mene. Týmto sa pripojenie úplne uzavrie.

Problémy s modelom trojstranného podania ruky

V prípade, že dôjde k strate alebo zablokovaniu ACK z klienta na server v tretej fáze podania ruky, klient nebude o tejto situácii vedieť. Klient bude predpokladať, že je nadviazané pripojenie, a začne odosielať údaje. Server stále čaká na ACK, ktorý už bol stratený, takže zahodí údaje prijaté od klienta. [2]

Záver

V tejto príručke sme sa dozvedeli o postupoch pripojenia TCP pomocou trojcestného spojenia. Videli sme tiež problém duplicitných paketov spojených s postupom obojsmerného spojenia a ako sa tento problém vyriešil pomocou modelu trojcestného spojenia. Mnoho vedcov prispelo rôznymi výskumnými prácami k zlepšeniu modelu trojstranného podania ruky a prekonaniu problémov s ním spojených.

Referencie

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: Trojcestný server pre nadviazanie spojenia pre vytvorenie pripojenia TCP. Applied Sciences, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Siao-jun Wen. (2016). Protokol trojcestného handshake protokolu TCP založený na kvantovom zapletení. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...