TCP 3-Way Handsake Analysis sa Wireshark

Tcp 3 Way Handsake Analysis Sa Wireshark



Ang Transmission Control Protocol ay isang napakahalagang protocol sa transport layer para sa OSI o TCP/IP na modelo. Mayroong maraming mga pakinabang sa TCP tulad ng:

  • Ang TCP ay muling nagpapadala kung ang anumang ipinadalang data ay hindi kinikilala ng tatanggap sa loob ng ilang panahon.
  • Ang TCP ay nagtatatag ng ilang koneksyon bago ipadala ang data. Tinatawag namin ang koneksyon na iyon bilang 3-way handshake.
  • Ang TCP ay may congestion control mechanism.
  • Maaaring makakita ng error ang TCP gamit ang ilang pamamaraan.

Matuto tayo higit sa lahat sa TCP 3-way handshake. Alamin din natin ang tungkol sa mahahalagang field sa Wireshark para sa 3-way handshake.







3-Way Handshake

Mayroong tatlong mga palitan ng frame na nangyayari sa isang 3-way na pagkakamay:



  1. SYN
  2. VIEW+ACK
  3. ACK

Ang unang frame ay palaging ipinapadala ng kliyente sa server. Unawain natin ito mula sa isang simpleng diagram:



“CLIENT” “SERVER”

Frame1: Nagpapadala ang kliyente ng SYN frame sa server------------------------------------>

<--------------------------------------------------------Nagpapadala ang server ng SYN+ACK frame sa kliyente: Frame2

Frame3: Nagpapadala ang kliyente ng ACK frame sa server----------------------------------->

Makikita natin ang tatlong frame na ito sa Wireshark. Maaaring gamitin ang filter na 'tcp' sa Wireshark upang makita ang lahat ng TCP frame. Narito ang screenshot para sa tatlong frame:





Unawain natin ngayon ang lahat ng tatlong mga frame sa mga detalye:



SYN

Ang frame na ito ay naglalaman ng maraming impormasyon tungkol sa mga kakayahan ng kliyente na ipaalam sa server. Ipinapakita ng sumusunod na screenshot ang lahat ng mahahalagang field ng SYN frame:

Narito ang mahahalagang field para sa SYN frame:

Source Port: 50602
Destination Port: 80
Numero ng Pagkakasunud-sunod: 0
Bilang ng Pagkilala: 0
Haba ng Header: 32 bytes
Mga Flag: 0x002 (SYN):
Pagkilala: Hindi nakatakda
Push: Hindi nakatakda
I-reset: Hindi nakatakda
Syn: Set  -----> Itong bit set dahil isa itong SYN frame.
Fin: Hindi nakatakda

Bintana: 65535
Apurahang Pointer: 0
TCP Option - Maximum na laki ng segment: 1460 bytes
TCP Option - Window scale: 3 (multiply by 8)
TCP Option - Pinahihintulutan ang SACK

VIEW+ACK

Ang frame na ito ay naglalaman ng maraming impormasyon tungkol sa mga kakayahan ng server na ipaalam sa kliyente. Ipinapakita ng sumusunod na screenshot ang lahat ng mahahalagang field ng SYN+ACK frame:

Kinikilala din ng frame na ito ang SYN frame na ipinadala ng kliyente.

Narito ang mahahalagang field para sa SYN+ACK frame:

Source Port: 80
Destination Port: 50602
Numero ng Pagkakasunud-sunod: 0
Bilang ng Pagkilala: 1

Haba ng Header: 32 bytes (8)
Mga Flag: 0x012 (SYN, ACK)
Pagkilala: Itakda
Push: Hindi nakatakda
I-reset: Hindi nakatakda
His: Set
Fin: Hindi nakatakda

Bintana: 29200
Apurahang Pointer: 0
TCP Option - Maximum na laki ng segment: 1412 bytes
TCP Option - Pinahihintulutan ang SACK
TCP Option - Window scale: 7 (multiply sa 128)

Makikita natin na ang 'Acknowledge' at 'SYN' bits ay nakatakda sa frame na ito. Ito ay dahil ang frame na ito ay SYN+ACK.

ACK

Ang frame na ito ay ang huling frame ng 3-way na handshake at pati na rin ang pagkilala ng SYN+ACK ng kliyente. Ipinapakita ng sumusunod na screenshot ang lahat ng mahahalagang field ng ACK frame:

Narito ang mahahalagang field para sa ACK frame:

Source Port: 50602
Destination Port: 80
Numero ng Pagkakasunod-sunod: 1
Bilang ng Pagkilala: 1
Haba ng Header: 20 bytes (5)
Mga Flag: 0x010 (ACK)
Urgent: Hindi nakatakda
Pagkilala: Itakda
Push: Hindi nakatakda
I-reset: Hindi nakatakda
Syn: Hindi nakatakda
Fin: Hindi nakatakda

Bintana: 32768

Dito, ang bit na 'Acknowledge' lang ang nakatakda dahil isa itong ACK frame.

Paliwanag para sa Ilang Mahahalagang Karaniwang Larangan

Port 80 : Naobserbahan namin ang isang nakapirming port 80 sa tutorial na ito. Ito ay dahil ito ay isang HTTP capture at ang port 80 ay naayos (server side) para sa HTTP na komunikasyon.

Sequence Number : Ang sequence number ng frame na iyon. Ang sync ay ang unang frame kaya mayroon kaming 0 bilang sequence number.

Mga Flag ng TCP:

Pagkilala – Ang bit na ito ay nakatakda kung ang frame ay isang ACK. Halimbawa: SYN+ACK, ACK frame.

SYN – Ang bit na ito ay nakatakda kung ang frame ay isang SYN. Halimbawa: SYN.

Bintana : Ibinabahagi ng field na ito ang max na laki ng window ng nagpadala sa receive mode. Halimbawa: Mayroon kaming laki ng window na 65535 bytes sa SYN frame. Nangangahulugan ito na ang receiver ay makakatanggap ng maximum na TCP data na 65535 bytes sa anumang punto ng oras.

Pinahihintulutan ang SACK : Nakatakda ang bit na ito kung sinusuportahan ng pagpapadala ang SACK [selective acknowledgement].

Pinakamataas na Laki ng Segment : Maaari din nating tawaging MSS. Tinutukoy nito ang maximum na frame ng data na maaaring matanggap ng nagpadala. Halimbawa: Nakukuha namin ang MSS bilang 1460 bytes sa SYN frame.

Konklusyon

Nalaman namin ang tungkol sa TCP 3-way na handshake at lahat ng kapaki-pakinabang na field para sa SYN, SYN+ACK, at ACK frame. Kung gusto mong matuto nang higit pa sa TCP, maaari mong sundan ang RFC link na ito https://tools.ietf.org/html/rfc793 .