Three-way Handshake

posted on 23 Oct 2008 21:20 by nisaratmsit

       เป็นวิธีการส่งแพ็กเก็ตที่สามารถช่วยแก้ปัญหาในเรื่องแพ็กเก็ตซ้ำซ้อนได้ดี แต่วิธีนี้จำเป็นจะต้องสร้างช่องสื่อสารให้ได้ก่อนที่จะเริ่มรับ-ส่งข้อมูล อย่างไรก็ตาม แพ็กเก็ตควบคุมที่ใช้ในการต่อรองค่าตัวแปรสำหรับการสื่อสารต่างๆ อาจเกิดการตกค้างอยู่ในระบบได้ ทำให้การกำหนดค่าหมายเลขลำดับมีปัญหาไปด้วย

 

 

  ตัวอย่างของ Three-way-handshake บรรทัดที่ 16-18 ของ Protocol TCP

 

 

    เป็นการแสดงการทำ Three-way-handshake โดยมีของ Protocol TCP มี segment ที่เกี่ยวข้องดังนี้ 

        1. SYN

        2.  SYN, ACK

        3.  ACK

   โดยที่มีเครื่องลูก (Client) คือหมายเลข IP 192.168.1.33 ที่ Port 1184 ติดต่อไปยังเครื่องแม่ (Server) ที่หมายเลข IP 216.239.61.104 ที่ Port 80 มีการทำงานดังนี้

 

    1TCP ของเครื่องผู้ใช้ส่งเซกเมนต์ที่บรรจุเลขลำดับนี้ไปยังเครื่องของ server พร้อมทั้งแฟล็ก SYN ให้เป็น "1"(เซกเมนต์ 1)

    2.TCP ของเครื่อง server ได้รับเซกเมนต์จากเครื่องผู้ใช้แล้วตอบกลับด้วยเซกเมนต์ SYN (เซกเมนต์ 2)พร้อมทั้งเซ็ตแฟล็ก ACK เพื่อแจ้งว่าเซกเมนต์ 1 โดยใช้เลขลำดับที่ได้รับจากทางเครื่องของผู้ใช้บวกด้วย 1

      3. TCP ของเครื่องผู้ใช้ จะส่งเซกเมนต์ตอบกลับไป (เซกเมนต์ 3) โดยเซ็ตแฟล็ก ACK และใช้เลขลำดับที่ได้รับจากเครื่อง server บวกด้วยหนึ่ง

 

 แสดงได้ตามตารางดังนี้

ลำดับ 

Segment 

Source 

Destination 

Seq No. 

Ack No. 

การคำนวณ Ack 

IP Address 

Port 

IP Address 

Port 

1

SYN  192.168.1.33 (Client) 

1184

216.239.61.104 (Server) 

80

0

0

 

2

SYN,ACK  216.239.61.104 (Server) 

80

192.168.1.33 (Clinet) 

1184

0

1

Seq.No SYN = 0+1 

3

ACK  192.168.1.33 (Client) 

1184

216.239.61.104 (Server) 

80

1

1

Seq.No SYN = 0+1 

WireShark View my profile