Verkostoituminen

Mitkä ovat TCP-kättelyn vaiheet?

Mitkä ovat TCP-kättelyn vaiheet?

TCP tai Transmission Control Protocol on tavallinen siirtokerrosprotokolla, jota Internet käyttää tietojen lähettämiseen. Request For Comments (RFC) 793 määrittelee TCP: n luotettavaksi ja yhteyspainotteiseksi protokollaksi. Koska se on yhteyspainotteinen, polku tai yhteys on muodostettava ennen tietojen lähettämistä. TCP käyttää kolmisuuntaista kättelymekanismia yhteyden luomiseen kahden laitteen välille. Tässä oppaassa näemme, miten kolmisuuntainen kädenpuristusmekanismi toimii. Katsotaan ensin ensin kaksisuuntaisen kättelymallin ongelmat.

Kaksisuuntaisen kättelymallin ongelmat

Kaksisuuntainen kädenpuristusmalli epäonnistui vanhan kaksoispakettiongelman vuoksi. Oletetaan, että vanha kaksoispaketti saapuu palvelinkoneelle. Tämä vanha paketti on saapunut aiemmin suljetusta yhteydestä ja sisältää järjestysnumeron 'z'. Jossakin vaiheessa uuden yhteyden aikana palvelin hyväksyy paketin, jonka järjestysnumero on z. Kun se vastaanottaa tämän vanhan paketin samalla järjestysnumerolla 'z', se hyväksyy tietämättään tämän vanhan paketin ja hylkää varsinaisen paketin uudesta yhteydestä.

Edellä mainitussa tapauksessa, jos yhteys ei ole käynnissä asiakkaan ja palvelimen välillä, vanhan kaksoiskytkentäpyyntöpaketin saapuminen aiheuttaa edelleen ongelmia. Jos palvelin vastaanottaa tällaisen paketin, se vastaa takaisin SYN + ACK -paketilla. Asiakas pudottaa tämän paketin, koska se ei aikonut muodostaa yhteyttä. Mutta palvelin siirtyy umpikujaan ja odottaa, että asiakas lähettää tiedot.

Toinen ongelma on, että jos isäntä C lähettää yhteyspyynnön palvelimelle matkimalla asiakkaasta, palvelin vastaa takaisin ACK: lla asiakkaalle. Asiakas hylkää tämän ACK-paketin ja kehottaa palvelinta lopettamaan yhteyden. Tämän tapahtumavälin aikana isäntä C voi käynnistää huijaushyökkäyksen lähettämällä paljon paketteja.

Kolmisuuntainen HandShake-malli TCP / IP: ssä

Kolmisuuntainen kädenpuristusmalli on erittäin tärkeä. Jos emme käytä sitä ja aloitamme tietojen lähettämistä suoraan, vastaanottava sovellus voi alkaa vastaanottaa kaksoispaketteja. Hyökkääjä voi saada mahdollisuuden käynnistää hyökkäyksiä (kuten DDoS) yhteyden välissä. Kolmisuuntainen kättely aloitetaan yhdellä koneella, ja toinen puoli reagoi siihen. Seuraavaa käytäntöä käytetään tämän menettelyn selittämiseen:

"Jos sivusto vastaanottaa paketin, jonka järjestysnumero on" x ", se vastaa ACK-numerolla" x + 1 ".”

Tehkäämme yhteenveto kolmivaiheisessa kädenpuristuksessa suoritetuista vaiheista asiakas- ja palvelinkoneen välillä:

Vaihe 1. Ensimmäisessä kättelyssä asiakas lähettää palvelimelle SYN-yhteyspyyntöpaketin, jossa on satunnainen alkujärjestysnumero ('x').

Vaihe 2. Toisessa kättelyssä palvelin vastaa SYN-paketilla, jolla on satunnainen järjestysnumero ('y'), ja ACK-paketilla, jolla on järjestysnumero ('x + 1'), lähettämän alkuperäisen järjestysnumeron ('x') kuittaamiseksi. asiakas.

Vaihe 3. Kolmannessa kättelyssä asiakas lähettää ACK-paketin, jolla on järjestysnumero ('y + 1') palvelimelle palvelimen lähettämän SYN ('y') -paketin kuittaamiseksi.

Vaihe 4. Molemmat päät on nyt synkronoitu ja ne voivat aloittaa tiedonsiirron itsenäisesti. [1]

TCP: n kolmisuuntainen kättelymenettely on edelleen voimassa, jos molemmat osapuolet aloittavat alustusprosessin samanaikaisesti. Tällaisessa tilanteessa kukin kone saa “SYN” -paketin lähettämisen jälkeen “SYN” -segmentin ilman kuittausta. Jos vastaanottajaan saapuu vanha kaksoiskappale ”SYN”, vastaanottajalle saattaa tuntua, että yhteyden aloitusprosessi on käynnissä samanaikaisesti. Voimme käyttää ”nollaus” -paketteja tämän epäselvyyden poistamiseksi.

TCP-yhteyden päättäminen

Kumpikin osapuoli voi katkaista TCP-yhteyden. Tätä varten kukin puoli voi lähettää TCP-segmentin FIN-bittijoukon kanssa. Tämä tarkoittaa, että lähettävällä puolella ei ole enää lähetettävää dataa. Vastaanottava puoli kuittaa tämän FIN-paketin lähettämällä kuittauspaketin. Tämä sulkee yhteyden yhdeltä puolelta (lähettäjän puolelta). Nyt vastaanotin käyttää samoja vaiheita lopettaakseen yhteyden hänen puolestaan. Tämä sulkee yhteyden kokonaan.

Kolmisuuntaisen kättelymallin ongelmat

Jos ACK asiakkaalta palvelimelle katoaa tai estyy kolmannessa kättelyvaiheessa, asiakas ei ole tietoinen tilanteesta. Asiakas olettaa, että yhteys on muodostettu, ja alkaa lähettää tietoja. Palvelin odottaa edelleen jo kadonneen ACK: n, joten se hylkää asiakkaalta saadut tiedot. [2]

Johtopäätös

Tässä oppaassa olemme oppineet TCP-yhteyskäytännöistä käyttämällä kolmitoimista kättelyä. Olemme myös nähneet kaksisuuntaisen kädenpuristusmenettelyyn liittyvän kaksoispakettien ongelman ja sen, miten se ratkaistiin kolmisuuntaisella kättelymallilla. Monet tutkijat ovat kirjoittaneet erilaisia ​​tutkimuspapereita kolmisuuntaisen kättelymallin parantamiseksi ja siihen liittyvien ongelmien ratkaisemiseksi.

Viitteet

  1. Hsu, F., Hwang, Y., Tsai, C., Cai, W., Lee, C., & Chang, K. (2016). TRAP: Kolmisuuntainen kättelypalvelin TCP-yhteyden muodostamista varten. Ammattikorkeakoulut, 6 (11), 358. https: // doi.org / 10.3390 / app6110358
  1. Qin-Min Ma, Shou-Yin Liu, Xiao-jun Wen. (2016). TCP: n kolmisuuntainen kädenpuristusprotokolla, joka perustuu kvanttitangotukseen. Journal of Computers, 27 (3), 33-40, doi: 10.3966/199115592016102703004
Asenna uusin OpenRA-strategiapeli Ubuntu Linuxiin
OpenRA on ilmainen / ilmainen reaaliaikainen strategiapelimoottori, joka luo uudet Westwood-pelit, kuten klassinen Command & Conquer: Red Alert. Hajau...
Asenna uusin Dolphin Emulator for Gamecube & Wii Linuxiin
Dolphin-emulaattorin avulla voit pelata valitsemiasi Gamecube & Wii -pelejä Linux-henkilökohtaisilla tietokoneilla (PC). Koska Dolphin Emulator on va...
Kuinka käyttää GameConqueror-huijausmoottoria Linuxissa
Artikkelissa on opas GameConqueror-huijausmoottorin käytöstä Linuxissa. Monet Windows-pelejä pelaavat käyttäjät käyttävät "Cheat Engine" -sovellusta m...