Locked History Actions

Three-Way Hanshake

Three-Way Handshake

Trigubas Rankos Paspaudimas


Apibrėžimas

Trigubas Rankos Paspaudimas - tai technologija, naudojama TCP(Transfer Control Protocol) protokolo ir ji yra skirta ryšio tarp tinklo mazgų užmezgimui. Rankos paspaudimas yra automatizuotas procesas, kuris dinamiškai nustato ryšio kanalo, kuriuo jungiasi du mazgai, parametrus dar prieš prasidedant normaliam susijungimui. Jis yra vykdomas iškart po fizinio susijungimo bei prieš informacijos mainus.

Naudojimas ir veikimas

Trigubas Rankos Paspaudimas yra būtinas patikimo TCP ryšio užmezgimui.


Kad klientas galėtų prisijungti prie serverio, serveris pirmiausiai turi paskirti portą, kuriuo bus vykdomas susijungimas - tai yra vadinama pasyviniu atidarymu (Passive open). Po to, kai įvyksta pasyvinis atidarymas, klientas gali inicijuoti aktyvųjį atidarymą. Kad susijungimas būtų sėkmingas, yra vykdomas trigubas (arba trijų žingsinių) rankos paspaudimas:

  1. Aktyvusis atidarymas atliekamas siunčiant SYN pranešimą į serverį.

  2. Atsakydamas serveris siunčia SYN-ACK pranešimą.

  3. Galiausiai klientas siunčia ACK (dažnai dar vadinamą SYN-ACK-ACK) pranešimą atgal serveriui.

Po šių operacijų abu: tiek klientas, tiek serveris jau būna gavę susijungimo patvirtinimo (Acknowledgement) pranešimą, reiškiantį, kad susijungimas pavyko.


Pavyzdys

  1. Inicijuojantis mazgas (klientas) siunčia sinchronizacijos paketą (SYN) tam, kad pradėtų susijungimo procesą. Bet koks SYN paketas savyje turi Sekos numerį. Sekos numeris yra 32 bitų laukas TCP segmento antraštėje. Tarkime, kad šiame pavyzdyje Sekos numeris yra lygus X.

  2. Kitas mazgas gauna paketą, įsirašo Sekos numerį X iš kliento, bei atsako patvirtinimo ir sinchronizavimo paketu (SYN-ACK). Šio TCP segmento antraštėje esantis 32 bitų laukas yra vadinamas Patvirtinimo numeriu ir jis yra vienetu didesnis, nei prieš tai gautas Sekos numeris. Tai yra numeris, kurį serveris tikisi išvysti kitame gautame pranešime. Serveris taip pat inicijuoja gražinimo seansą (return session). Jam priklauso TCP segmentas, turintis savo pradinį Sekos numerį Y.

  3. Inicijuojantis mazgas (klientas) atsako Sekos numeriu X+1 bei paprastu Patvritinimo numeriu Y+1 , kuris yra kito mazgo siųstas Sekos numeris +1.

    Handshake.png
    1 pav. Trigubas rankos paspaudimas.

Literatūra

  1. http://support.microsoft.com/kb/172983

  2. http://www.3wayhandshake.com/

  3. http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml


CategoryŽodis