Logo
โปรโตคอล Three-Way Handshake

Articles / Network

โปรโตคอล Three-Way Handshake

โปรโตคอล Three-Way Handshake

Published on August 30, 2023

โปรโตคอล Three-Way Handshake

โพรโตคอล Three-Way Handshake ใน Transmission Control Protocol (TCP) เป็นวิธีหนึ่งที่ใช้ในเครือข่าย TCP/IP แบบ TCP เป็นโปรโตคอลที่ใช้การเชื่อมต่อแบบเชื่อมต่อและบำรุงรักษาการเชื่อมต่อจนกระทั่งโปรแกรมแอปพลิเคชันที่อยู่ที่สองของแต่ละด้านเสร็จสิ้นการแลกเปลี่ยนข้อความ TCP ใช้กระบวนการที่เรียกว่า "การสื่อสารแบบเชื่อมต่อสามชั้น" เพื่อเจรจาการแลกเปลี่ยนตอนลำดับและการยอมรับและเริ่มต้นเซสชันและสิ้นสุดเซสชัน แม้ว่า 'เชื่อมต่อแบบเชื่อมต่อ' จะไม่ได้หมายความว่า TCP จะตั้งค่าเส้นทางทางกายภาพระหว่างเครื่องส่งและเครื่องรับ มันเพียงแค่หมายถึงว่าโฮสต์สองเครื่องจะถูกเก็บไว้ในสถานะ 'การรับรู้' เกี่ยวกับการส่งข้อมูล สิ่งนี้ทำผ่านกระบวนการสามชั้นของโปรโตคอล TCP ที่เรียกว่าการเชื่อมต่อสามชั้น และ UDP นั่นเองไม่ได้ตรวจสอบว่าผู้รับพร้อมรับข้อความหรือไม่ ดังนั้นเป็นบริการ 'แบบไม่เชื่อมต่อ'

เทคนิคการเชื่อมต่อสามชั้นเรียกว่า "SYN-SYN-ACK" ตัวอย่างเช่นเมื่อคุณ ping เครื่องคุณกำลังส่งสัญญาณ SYN ซึ่งถูก ACK โดยเครื่องรีโมทแล้วเครื่องรีโมทจะส่งสัญญาณ SYN-ACK กลับไปยังเครื่องรีโมท แล้วเครื่องโฮสต์รับ SYN-ACK และส่งสัญญาณ ACK กลับเพื่อยืนยันการเชื่อมต่อเดียวกัน

TCP คืออะไรและคุณสมบัติสำคัญของ TCP

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

  1. เชื่อมต่อแบบเชื่อมต่อ: TCP เป็นบริการเชื่อมต่อ หมายความว่าทุกส่วนย้อนกลับสามารถตามเส้นทางเดียวกันได้และส่วนอยู่ในลำดับที่ส่งมา จำเป็นต้องเชื่อมต่อก่อนที่อุปกรณ์สองเครื่องจะสามารถสื่อสารกันได้ แอปพลิเคชันร้องขอ "การเชื่อมต่อ" ไปยังปลายทางและใช้การเชื่อมต่อเพื่อถ่ายโอนข้อมูล

  2. น่าเชื่อถือ: โปรโตคอลเองตรวจสอบเพื่อดูว่าทุกสิ่งที่ถูกส่งไปถูกส่งถึงที่ปลายทางที่รับ

  3. ควบคุมข้อผิดพลาดและการควบคุมการไหล: การตรวจสอบข้อผิดพลาด การควบคุมข้อผิดพลาดรวมถึงกลไกสำหรับการแก้ไขข้อผิดพลาด การควบคุมการไหล - Flow Control หมายถึงว่า TCP จะให้ความสำคัญในการให้แน่ใจว่าผู้ส่งไม่กำลังส่งแพคเก็ตได้เร็วกว่าผู้รับที่สามารถบรรจุไปได้และการรับรองการทำงาน

  4. จุดสู่จุด: การเชื่อมต่อ TCP รับประกันว่าแพคเก็ตจะมาถึงที่ปลายทางโดยไม่เสียหายและในลำดับที่ถูกต้อง ทำให้การเชื่อมต่อจุดสู่จุดเป็นการเชื่อมต่อที่เกือบไม่มีข้อผิดพลาด

  5. การถ่ายโอนข้อมูลแบบไหล: หน้าที่ของ TCP คือการแพคกระแสไบต์เป็นแพคเก็ตที่เรียกว่า TCP segments ซึ่งถูกส่งให้กับชั้น IP เพื่อส่งไปยังอุปกรณ์ปลายทาง

  6. แอปพลิเคชันร้องขอ "การเชื่อมต่อ" ไปยังปลายทางและใช้การเชื่อมต่อเพื่อถ่ายโอนข้อมูล

  7. การเส้นทาง: TCP/IP เป็นโปรโตคอลที่สามารถเส้นทางได้

  8. ช่วยในการแก้ไขที่อยู่โลจิก

  9. การแก้ไขชื่อ: ช่วยในการแปลงชื่อที่สามารถอ่านได้เป็นที่อยู่ IP

  10. การสื่อสารแบบเทียม: แต่ละการเชื่อมต่อ TCP รองรับคู่ของไบต์สตรีมที่ไหลในทิศทางแตกต่างกัน

การเชื่อมต่อสามชั้นของ TCP (TCP Handshaking)

กระบวนการที่เกิดขึ้นระหว่างโหนด TCP/IP สองโหนดเพื่อตั้งค่าการเชื่อมต่อ ทราบว่าเป็นการระบบสำรองระหว่างการเชื่อมต่อ ทราบว่าการเชื่อมต่อซิงโครไนซ์และซิงค์แอคโครไนซ์ ตัวอย่างเช่น หากคอมพิวเตอร์ A ส่งแพคเก็ตซิงโครไนซ์ไปยังคอมพิวเตอร์ B ซึ่งส่งกลับแพคเก็ตซิงค์แอคโครไนซ์ไปยังคอมพิวเตอร์ A คอมพิวเตอร์ A จะส่งแพคเก็ตแสดงการยอมรับไปยังคอมพิวเตอร์ B และการเชื่อมต่อจะถูกสร้างขึ้น กระบวนการทั้งหมดที่กล่าวมาเรียกว่าการเชื่อมต่อสามชั้นของ TCP (TCP Handshaking)

โปรโตคอลการแลกเปลี่ยนสถานะของ TCP

  1. โปรโตคอลการเชื่อมต่อสองทาง (Two-Way Handshake Protocol)

  2. โปรโตคอลการแลกเปลี่ยนสถานะสามทาง (Three-Way Handshake Protocol)

ถ้า A ต้องการโอนเงินให้ B ดังนั้น A จะส่ง SYN ไปยัง B และจากนั้น B จะส่ง ACK กลับไปยัง A การเชื่อมต่อถูกสร้างขึ้นและจากนั้น A สามารถส่งเงินของเขาได้และจากนั้นปิดการเชื่อมต่อหลังจากเสร็จสิ้น หากมี SYN ซ้ำที่มีการเลื่อนการส่งจาก A ไปยัง B โดยการเสียเวลา B จะส่ง ACK อีกครั้งและ A จะทำการโอนเงินของเขาอีกครั้ง นี่เป็นหนึ่งในจุดอ่อนของการเชื่อมต่อสองทาง การแลกเปลี่ยนสถานะสามทางสามารถแก้ไขปัญหานี้

กระบวนการ Three-Way Handshake ของ TCP

เพื่อเชื่อมต่อการเชื่อมต่อ กระบวนการ Three-Way Handshake หรือการสามก้าว (3-step handshake) จะเกิดขึ้น:

ขั้นตอนที่ 1 (SYN): การเปิดทำงานแบบใช้งานโดยผู้ใช้ จะทำการส่ง SYN ไปยังเซิร์ฟเวอร์ ที่คลายคลายคือผู้ใช้ต้องการเปิดการเชื่อมต่อกับเซิร์ฟเวอร์ โดยมีหมายเลขลำดับสุ่ม X ผู้ใช้กำหนดหมายเลขลำดับของ segment เป็นค่าสุ่ม X

ขั้นตอนที่ 2 (SYN+ACK): เป็นการตอบกลับจากเซิร์ฟเวอร์ ที่ประกอบด้วย SYN-ACK โดยมีหมายเลขลำดับสุ่มและหมายเลข ACK ที่รับทราบหมายเลขลำดับของผู้ใช้ หมายเลขการรับรองถูกตั้งค่าไปเป็นหนึ่งมากกว่าหมายเลขลำดับที่ได้รับ คือ X+1 และหมายเลขลำดับที่เซิร์ฟเวอร์เลือกสำหรับแพคเก็ตคือหมายเลขสุ่ม Y

ขั้นตอนที่ 3 (ACK): ในขั้นสุดท้าย ผู้ใช้ยืนยันการตอบกลับจากเซิร์ฟเวอร์และพวกเขาก็สร้างการเชื่อมต่อที่เชื่อถือได้กันที่พวกเขาจะเริ่มโอนข้อมูลจริง ผู้ใช้ส่ง ACK กลับไปยังเซิร์ฟเวอร์ หมายเลขลำดับถูกตั้งค่าเป็นค่าค่าการรับรองที่ได้รับ คือ X+1 และหมายเลขการรับรองถูกตั้งค่าไปเป็นหนึ่งมากกว่าหมายเลขลำดับที่ได้รับ คือ Y+1

Logo

100/280 Soi 17, Delight Village, Bang Khun Thian - Chaitalay, Phanthai Norasing, Samut Sakhon 74000


Copyright © 2025 DriteStudio All Rights Reserved.

🙌 🤭 👏
Chat with us.