TCP จับมือ 3 ทาง (SYN, SYN-ACK, ACK)
TCP Three-Way HandShake คืออะไร?
จับมือสามทาง หรือ TCP 3-way handshake คือกระบวนการที่ใช้ในเครือข่าย TCP/IP เพื่อสร้างการเชื่อมต่อระหว่างเซิร์ฟเวอร์และไคลเอ็นต์ ซึ่งเป็นกระบวนการสามขั้นตอนที่ต้องให้ทั้งไคลเอ็นต์และเซิร์ฟเวอร์แลกเปลี่ยนแพ็กเก็ตการซิงโครไนซ์และการรับทราบก่อนที่จะเริ่มกระบวนการสื่อสารข้อมูลจริง
กระบวนการจับมือสามทางได้รับการออกแบบในลักษณะที่ปลายทั้งสองข้างช่วยให้คุณเริ่มต้น เจรจา และแยกการเชื่อมต่อซ็อกเก็ต TCP ในเวลาเดียวกัน ช่วยให้คุณสามารถถ่ายโอนการเชื่อมต่อซ็อกเก็ต TCP หลายรายการในทั้งสองทิศทางในเวลาเดียวกัน
ประเภทข้อความ TCP
ระบุความประสงค์หรือข้อมูลเพิ่มเติม | Descriptไอออน |
---|---|
Syn | ใช้เพื่อเริ่มต้นและสร้างการเชื่อมต่อ และยังช่วยให้คุณซิงโครไนซ์หมายเลขลำดับระหว่างอุปกรณ์ได้อีกด้วย |
ACK | ช่วยยืนยันอีกฝ่ายว่าได้รับ SYN แล้ว |
ซิน-อัค | ข้อความ SYN จากอุปกรณ์ภายในเครื่องและ ACK ของแพ็กเก็ตก่อนหน้า |
ครีบ | ใช้เพื่อยุติการเชื่อมต่อ |
กระบวนการจับมือสามทาง TCP
การรับส่งข้อมูล TCP เริ่มต้นด้วยการจับมือสามทาง ในกระบวนการจับมือ TCP นี้ ไคลเอ็นต์จำเป็นต้องเริ่มการสนทนาโดยขอเซสชันการสื่อสารกับเซิร์ฟเวอร์:
- ขั้นตอนที่ 1: ในขั้นตอนแรก ไคลเอนต์จะสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ โดยจะส่งเซ็กเมนต์ด้วย SYN และแจ้งให้เซิร์ฟเวอร์ทราบว่าไคลเอ็นต์ควรเริ่มการสื่อสาร และหมายเลขลำดับที่ควรเป็น
- ขั้นตอนที่ 2: ในขั้นตอนนี้ server ตอบสนองต่อคำขอของลูกค้าด้วยชุดสัญญาณ SYN-ACK ACK ช่วยให้คุณระบุการตอบสนองของเซ็กเมนต์ที่ได้รับ และ SYN ระบุว่าหมายเลขลำดับใดที่ควรเริ่มต้นด้วยเซ็กเมนต์
- ขั้นตอนที่ 3: ในขั้นตอนสุดท้ายนี้ ไคลเอนต์รับทราบการตอบสนองของเซิร์ฟเวอร์ และทั้งสองสร้างการเชื่อมต่อที่เสถียรเพื่อเริ่มกระบวนการถ่ายโอนข้อมูลจริง
ตัวอย่างโลกแห่งความเป็นจริง
นี่คือตัวอย่างง่ายๆ ของกระบวนการจับมือสามทางที่ประกอบด้วยสามขั้นตอน:
- โฮสต์ X เริ่มการเชื่อมต่อด้วยการส่งแพ็กเก็ต TCP SYN ไปยังโฮสต์ปลายทาง แพ็กเก็ตจะมีหมายเลขลำดับสุ่ม (เช่น 4321) ซึ่งระบุจุดเริ่มต้นของหมายเลขลำดับของข้อมูลที่โฮสต์ X ควรส่ง
- หลังจากนั้นเซิร์ฟเวอร์จะได้รับแพ็กเก็ตและตอบกลับด้วยหมายเลขลำดับ การตอบกลับยังรวมถึงหมายเลขการตอบรับ นั่นคือหมายเลขลำดับของ Host X ที่เพิ่มขึ้นด้วย 1 (ในที่นี้คือ 4322)
- Host X ตอบสนองต่อเซิร์ฟเวอร์โดยการส่งหมายเลขการตอบรับซึ่งส่วนใหญ่เป็นหมายเลขลำดับของเซิร์ฟเวอร์ที่เพิ่มขึ้นทีละ 1
หลังจากกระบวนการส่งข้อมูลเสร็จสิ้น TCP จะยุติการเชื่อมต่อระหว่างจุดสิ้นสุดที่แยกจากกันสองจุดโดยอัตโนมัติ
สรุป
- TCP 3-way handshake หรือการจับมือ 3 ทาง TCP XNUMX-way handshake เป็นกระบวนการที่ใช้ใน เครือข่ายทีซีพี/ไอพี เพื่อทำการเชื่อมต่อระหว่างเซิร์ฟเวอร์และไคลเอนต์
- ซินใช้เพื่อเริ่มต้นและสร้างการเชื่อมต่อ
- ACK ช่วยยืนยันอีกฝ่ายว่าได้รับ SYN แล้ว
- SYN-ACK เป็นข้อความ SYN จากอุปกรณ์ภายในเครื่องและ ACK ของแพ็กเก็ตก่อนหน้า
- FIN ใช้สำหรับยุติการเชื่อมต่อ
- กระบวนการจับมือ TCP ไคลเอ็นต์จำเป็นต้องเริ่มการสนทนาโดยขอเซสชันการสื่อสารกับเซิร์ฟเวอร์
- ในขั้นตอนแรก ไคลเอนต์จะสร้างการเชื่อมต่อกับเซิร์ฟเวอร์
- ในขั้นตอนที่สองนี้ เซิร์ฟเวอร์จะตอบสนองต่อคำขอไคลเอ็นต์ด้วยชุดสัญญาณ SYN-ACK
- ในขั้นตอนสุดท้ายนี้ ลูกค้ารับทราบการตอบสนองของเซิร์ฟเวอร์
- TCP ยุติการเชื่อมต่อระหว่างจุดปลายสองจุดแยกกันโดยอัตโนมัติ