Tinklų kūrimas

Kokie yra TCP rankos paspaudimo žingsniai?

Kokie yra TCP rankos paspaudimo žingsniai?

TCP arba perdavimo valdymo protokolas yra standartinis perdavimo sluoksnio protokolas, kurį internetas naudoja duomenims perduoti. „Request For Comments“ (RFC) 793 TCP apibrėžia kaip patikimą ir į ryšį orientuotą protokolą. Kadangi jis yra orientuotas į ryšį, prieš perduodant bet kokius duomenis reikia nustatyti kelią ar ryšį. TCP naudoja trijų krypčių rankos paspaudimo mechanizmą, kad užmegztų ryšį tarp dviejų įrenginių. Šiame vadove pamatysime, kaip veikia trijų krypčių rankos paspaudimo mechanizmas. Pirmiausia pažiūrėkime apie dvipusio rankos paspaudimo modelio problemas.

Dvipusio rankos paspaudimo modelio problemos

Dvipusio rankos paspaudimo modelis nepavyko dėl senos paketų kopijos problemos. Tarkime, kad senas paketo kopija atkeliauja į serverio mašiną. Šis senas paketas buvo gautas iš anksčiau uždaryto ryšio ir jame yra eilės numeris „z“. Tam tikru metu per naują ryšį serveris priima paketą su eilės numeriu „z“. Gavęs šį seną paketą tuo pačiu eilės numeriu „z“, jis nesąmoningai priima šį seną paketą ir išmeta tikrąjį paketą iš naujo ryšio.

Minėtu atveju, jei ryšys tarp kliento ir serverio nevyksta, seno ryšio užklausos paketo kopija vis tiek kelia problemų. Jei serveris gauna tokį paketą, jis atsakys atgal naudodamas SYN + ACK paketą. Šis paketas bus atmestas kliento, nes jis neketino prisijungti. Bet serveris pateks į aklavietės būseną, laukdamas, kol klientas atsiųs duomenis.

Kita problema yra ta, kad jei pagrindinis kompiuteris C siunčia prisijungimo užklausą serveriui apsimetdamas klientu, serveris atsakys klientui ACK. Klientas išmes šį „ACK“ paketą ir nurodys serveriui nutraukti ryšį. Per šį įvykių intervalą pagrindinis kompiuteris C gali paleisti apgaulingą ataką, siųsdamas daug paketų.

Trijų krypčių „HandShake“ modelis TCP / IP

Trijų krypčių rankos paspaudimo modelis yra labai svarbus. Jei mes jo nenaudosime ir tiesiogiai pradėsime siųsti duomenis, gaunanti programa gali pradėti gauti pasikartojančius paketus. Užpuolikas gali turėti galimybę pradėti išpuolius (pvz., DDoS) tarp ryšio. Trijų krypčių rankos paspaudimo procedūrą pradeda viena mašina, o kita pusė į ją reaguoja. Šiai procedūrai paaiškinti naudojama tokia sutartis:

„Jei svetainė gauna paketą su eilės numeriu„ x “, ji atsakys ACK numeriu„ x + 1 “.“

Apibendrinkime veiksmus, atliktus atliekant trijų krypčių rankos paspaudimą tarp kliento mašinos ir serverio:

1 žingsnis. Pirmo paspaudimo metu klientas siunčia serveriui SYN ryšio užklausos paketą su atsitiktiniu pradiniu eilės numeriu ('x').

2 žingsnis. Antrojo paspaudimo metu serveris atsako su SYN paketu, kuris turi atsitiktinį eilės numerį („y“) ir ACK paketą su eilės numeriu („x + 1“), kad patvirtintų pradinį išsiųstą eilės numerį („x“). kliento.

3 žingsnis. Trečiojo paspaudimo metu klientas išsiųs ACK paketą su eilės numeriu ('y + 1') į serverį, kad patvirtintų serverio atsiųstą SYN ('y') paketą.

4 žingsnis. Abu galai dabar sinchronizuoti ir gali pradėti perduoti duomenis savarankiškai. [1]

TCP trijų krypčių rankos paspaudimo procedūra vis dar galioja, jei abi šalys vienu metu pradeda inicializavimo procesą. Esant tokiai situacijai, kiekviena mašina, išsiuntusi „SYN“ paketą, gaus „SYN“ segmentą be patvirtinimo. Jei į imtuvą atkeliavo senas „SYN“ paketo dublikatas, imtuvui gali pasirodyti, kad tuo pačiu metu vyksta ryšio inicijavimo procesas. Šiam neaiškumui pašalinti galime naudoti paketus „iš naujo“.

TCP ryšio nutraukimas

Bet kuri iš dviejų pusių gali nutraukti TCP ryšį. Tam bet kuri pusė gali perduoti TCP segmentą su FIN bitų rinkiniu. Tai reikš, kad siunčiančioji šalis nebeturi daugiau duomenų. Gaunanti pusė patvirtins šį FIN paketą atsiųsdama patvirtinimo paketą. Tai uždarys ryšį iš vienos pusės (siuntėjo pusės). Dabar imtuvas atliks tuos pačius veiksmus, kad nutrauktų ryšį jo vardu. Tai visiškai uždarys ryšį.

Trijų krypčių rankos paspaudimo modelio problemos

Jei trečiame rankos paspaudimo etape prarandamas arba užblokuojamas ACK iš kliento į serverį, klientas nežinos apie šią situaciją. Klientas manys, kad ryšys užmegztas, ir pradės siųsti duomenis. Serveris vis dar laukia ACK, kuris jau buvo pamestas, todėl atmes iš kliento gautus duomenis. [2]

Išvada

Šiame vadove sužinojome apie TCP ryšio procedūras naudojant trijų krypčių rankos paspaudimą. Mes taip pat matėme dublikatų, susijusių su dvipusio rankos paspaudimo procedūra, problemą ir tai, kaip ji buvo išspręsta naudojant trijų krypčių rankos paspaudimo modelį. Daugelis tyrinėtojų pateikė įvairių mokslinių darbų, kad pagerintų trijų krypčių rankos paspaudimo modelį ir įveiktų su juo susijusias problemas.

Literatūra

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Changas, K. (2016). TRAP: trijų krypčių rankos serveris, skirtas TCP ryšiui užmegzti. Taikomieji mokslai, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP trijų krypčių rankos paspaudimo protokolas, pagrįstas kvantiniu įsipainiojimu. Journal of Computers, 27 (3), 33–40, doi: 10.3966/199115592016102703004
„Tomb Raider for Linux“ pamoka
„Tomb Raider“ šešėlis yra dvyliktas „Tomb Raider“ serijos priedas - veiksmo ir nuotykių žaidimų franšizė, sukurta „Eidos Montreal“. Žaidimą kritikai i...
Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...