Võrgustike loomine

Mis on TCP käepigistuse sammud?

Mis on TCP käepigistuse sammud?

TCP ehk Transmission Control Protocol on standardne transpordikihi protokoll, mida Internet kasutab andmete edastamiseks. Kommentaaritaotlus (RFC) 793 määratleb TCP usaldusväärse ja ühendusele orienteeritud protokollina. Kuna see on ühendusele orienteeritud, tuleb enne andmete edastamist luua tee või ühendus. TCP kasutab kahe seadme vahel ühenduse loomiseks kolmesuunalist käepigistuse mehhanismi. Selles juhendis näeme, kuidas kolmepoolne käepigistuse mehhanism töötab. Vaatame kõigepealt kahesuunalise käepigistuse mudeli probleeme.

Kahesuunalise käepigistuse mudeli probleemid

Kahesuunaline käepigistuse mudel ebaõnnestus vana duplikaatpakettide probleemi tõttu. Oletame, et serverimasinasse jõuab vana duplikaatpakett. See vana pakett saabus varem suletud ühendusest ja sisaldab järjekorranumbrit 'z'. Mingil ajal uue ühenduse ajal võtab server vastu paketti järjekorranumbriga 'z'. Kui ta saab selle vana paketi sama järjekorranumbriga 'z', aktsepteerib ta selle vana paketi teadmatult ja loobub tegelikust paketist uuest ühendusest.

Ülaltoodud juhul, kui ühendust ei toimu kliendi ja serveri vahel, põhjustab vana duplikaatühenduse päringu paketi saabumine endiselt probleeme. Kui server saab sellise paketi, vastab ta tagasi SYN + ACK paketiga. Selle paketi loobub klient, kuna see ei kavatsenud ühendust luua. Kuid server siseneb tupikseisundisse, oodates, kuni klient andmeid saadab.

Teine probleem on see, et kui host C saadab kliendina kehastades serverile ühendustaotluse, vastab server kliendile tagasi ACK-ga. Klient loobub sellest 'ACK' paketist ja palub serveril ühendus katkestada. Selle sündmuste intervalli ajal võib host C käivitada võltsrünnaku, saates palju pakette.

Kolmesuunaline käte raputamise mudel TCP / IP-s

Kolmesuunaline käepigistuse mudel on väga oluline. Kui me seda ei kasuta ja hakkame otse andmeid saatma, võib vastuvõttev rakendus hakata saama duplikaatpakette. Ründajal võib olla võimalus ühenduse vahel rünnakuid (näiteks DDoS) käivitada. Kolmesuunalise käepigistuse protseduuri alustab üks masin ja teine ​​pool reageerib sellele. Selle protseduuri selgitamiseks kasutatakse järgmist konventsiooni:

"Kui sait saab paketi järjekorranumbriga" x ", vastab see ACK-numbriga" x + 1 ".”

Võtame kokku kolmepoolse käepigistuse kliendiseadme ja serverimasina vahel tehtud toimingud:

Samm 1. Esimese käepigistuse korral saadab klient serverile SYN-ühenduse taotluspaketi juhusliku algse järjekorranumbriga ('x').

2. samm. Teises käepigistuses vastab server SYN paketiga, millel on juhuslik järjekorranumber ('y') ja ACK pakett järjekorranumbriga ('x + 1'), et kinnitada saadetud algset järjekorranumbrit ('x'). kliendi poolt.

3. samm. Kolmandas käepigistuses saadab klient serveri saadetud SYN ('y') paketi kinnitamiseks serverile ACK paketi järjekorranumbriga ('y + 1').

4. samm. Mõlemad otsad on nüüd sünkroonitud ja neid saab hakata iseseisvalt andmeid edastama. [1]

TCP kolmepoolne käepigistuse protseduur kehtib endiselt, kui mõlemad pooled alustavad samaaegselt lähtestamisprotsessi. Sellises olukorras saab iga masin pärast „SYN” paketi saatmist „SYN” segmendi ilma kinnituseta. Kui vastuvõtjani jõuab vana duplikaat „SYN“, võib vastuvõtjale tunduda, et samal ajal toimub ühenduse loomise protsess. Selle ebaselguse eemaldamiseks saame kasutada pakette „lähtestamine“.

TCP-ühenduse lõpetamine

Kumbki pool võib TCP-ühenduse katkestada. Selleks võib iga pool edastada TCP-segmendi koos FIN-bitikomplektiga. See tähendab, et saatval poolel pole enam andmeid saata. Vastuvõttev pool tunnustab seda FIN-paketti, saates kinnituspaketi. See sulgeb ühenduse ühelt poolt (saatja pool). Nüüd kasutab vastuvõtja samu samme ühenduse nimel ühenduse katkestamiseks. See sulgeb ühenduse täielikult.

Kolmesuunalise käepigistuse mudeli probleemid

Kui ACK kliendilt serverile kaob või blokeeritakse kolmandas käepigistuse etapis, pole klient sellest olukorrast teadlik. Klient eeldab, et ühendus on loodud, ja hakkab andmeid saatma. Server ootab endiselt ACK-d, mis oli juba kadunud, nii et see viskab kliendilt saadud andmed kõrvale. [2]

Järeldus

Selles juhendis oleme õppinud TCP-ühenduse loomise protseduuride kohta, kasutades kolmepoolset käepigistust. Samuti oleme näinud kahesuunalise käepigistuse protseduuriga seotud pakettide duplikaatide probleemi ja seda, kuidas see lahendati kolmepoolse käepigistuse mudeliga. Paljud teadlased on andnud kolmesuunalise käepigistuse mudeli täiustamiseks ja sellega seotud probleemidest ülesaamiseks mitmesuguseid uurimistöid.

Viited

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: kolmepoolne käepigistuse server TCP-ühenduse loomiseks. Rakendusteadused, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP kolmepoolne käepigistusprotokoll, mis põhineb kvantpõimikul. Journal of Computers, 27 (3), 33–40, doi: 10.3966/199115592016102703004
Parimad Linuxi mängupuldi kaardistamise rakendused
Kui teile meeldib mängida Linuxis mänge tavalise klaviatuuri ja hiire sisestussüsteemi asemel mängupuldiga, on teie jaoks mõned kasulikud rakendused. ...
Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...