อ่าน 2 นาที
การจับมือ (ทางคอมพิวเตอร์)
ในทางคอมพิวเตอร์ การจับมือ (handshake) คือกระบวนการที่อุปกรณ์สองเครื่องสร้างการเชื่อมต่อสื่อสารโดยการตรวจสอบและยืนยันสัญญาณของกันและกัน ตัวอย่างเช่น การจับมือระหว่าง...
การจับมือ (ทางคอมพิวเตอร์)
ในทางคอมพิวเตอร์การจับมือ (handshake)คือกระบวนการที่อุปกรณ์สองเครื่องสร้างการเชื่อมต่อสื่อสารโดยการตรวจสอบและยืนยันสัญญาณของกันและกัน ตัวอย่างเช่น การจับมือระหว่างไฮเปอร์ไวเซอร์และแอปพลิเคชันใน เครื่องเสมือนแบบเกสต์ ( guest virtual machine )
ในด้านโทรคมนาคมการจับมือ (handshake)คือกระบวนการเจรจาอัตโนมัติระหว่างผู้เข้าร่วมสองฝ่าย (ตัวอย่างเช่น " อลิซและบ็อบ ") ผ่านการแลกเปลี่ยนข้อมูลที่กำหนดโปรโตคอลของลิงก์การสื่อสารในช่วงเริ่มต้นของการสื่อสาร ก่อนที่การสื่อสารอย่างเต็มรูปแบบจะเริ่มต้นขึ้น[ 1 ]กระบวนการจับมือมักเกิดขึ้นเพื่อกำหนดกฎสำหรับการสื่อสารเมื่อคอมพิวเตอร์พยายามสื่อสารกับอุปกรณ์อื่น โดยปกติแล้วจะมีการแลกเปลี่ยนสัญญาณระหว่างอุปกรณ์สองเครื่องเพื่อสร้างลิงก์การสื่อสาร ตัวอย่างเช่น เมื่อคอมพิวเตอร์สื่อสารกับอุปกรณ์อื่น เช่นโมเด็มอุปกรณ์ทั้งสองจะส่งสัญญาณให้กันและกันว่าเปิดใช้งานและพร้อมใช้งานแล้ว รวมถึงตกลงกันว่าจะใช้โปรโตคอลใด[ 2 ]
การจับมือ (Handshaking) สามารถเจรจาพารามิเตอร์ที่ยอมรับได้สำหรับอุปกรณ์และระบบที่ปลายทั้งสองด้านของช่องทางการสื่อสาร รวมถึงอัตราการถ่ายโอนข้อมูล อักษรการเข้ารหัส พาริตีขั้นตอนการขัดจังหวะและ คุณสมบัติ โปรโตคอลหรือฮาร์ดแวร์อื่นๆ การจับมือเป็นเทคนิคการสื่อสารระหว่างสองเอนทิตี อย่างไรก็ตาม ภายใน RFC ของ TCP/IP คำว่า "handshake" มักใช้เพื่ออ้างถึงการจับมือแบบสามทางของ TCP ตัวอย่างเช่น คำว่า "handshake" ไม่ปรากฏใน RFC ที่ครอบคลุม FTP หรือ SMTP ข้อยกเว้นประการหนึ่งคือ Transport Layer Security, TLS, setup, FTP RFC 4217 แทนที่จะใช้คำว่า "handshake" FTP RFC 3659 ใช้คำว่า "conversation" สำหรับการส่งคำสั่ง[ 3 ] [ 4 ] [ 5 ]
โปรโตคอลการจับมือแบบง่ายอาจเกี่ยวข้องกับการที่ผู้รับส่งข้อความที่มีข้อความว่า "ฉันได้รับข้อความล่าสุดของคุณแล้ว และฉันพร้อมให้คุณส่งข้อความอื่นมาให้ฉัน" โปรโตคอลการจับมือที่ซับซ้อนกว่าอาจอนุญาตให้ผู้ส่งถามผู้รับว่าพร้อมที่จะรับหรือไม่ หรือให้ผู้รับตอบกลับด้วยการยืนยันการปฏิเสธที่มีข้อความว่า "ฉันไม่ได้รับข้อความล่าสุดของคุณอย่างถูกต้อง โปรดส่งใหม่อีกครั้ง" (เช่น หากข้อมูลเสียหายระหว่างทาง) [ 6 ]
การจับมือ (Handshaking) ช่วยให้สามารถเชื่อมต่อระบบหรืออุปกรณ์ที่ค่อนข้างแตกต่างกันผ่านช่องทางการสื่อสารได้โดยไม่ต้องมีการแทรกแซงจากมนุษย์เพื่อกำหนดพารามิเตอร์
ตัวอย่าง
การจับมือสามขั้นตอนของ TCP

การสร้างการเชื่อมต่อ TCPปกติต้องดำเนินการสามขั้นตอนแยกกัน:
- โฮสต์แรก (อลิซ) ส่งข้อความ "ซิงโครไนซ์" (SYN) พร้อมหมายเลขลำดับของตนเองไปยังโฮสต์ที่สอง (บ็อบ) ซึ่งบ็อบได้รับข้อความนั้น
- บ็อบตอบกลับด้วยข้อความยืนยันการซิงโครไนซ์ ( SYN-ACK ) พร้อมหมายเลขลำดับ และหมายเลขยืนยันของตนเองซึ่งอลิซได้รับข้อความนั้น
- อลิซตอบกลับด้วยข้อความยืนยัน (ACK) พร้อมหมายเลขยืนยันซึ่งบ็อบได้รับและไม่จำเป็นต้องตอบกลับ
- ในการตั้งค่านี้ ข้อความซิงโครไนซ์จะทำหน้าที่เป็นคำขอรับบริการจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง ในขณะที่ข้อความยืนยันจะส่งกลับไปยังเซิร์ฟเวอร์ที่ร้องขอเพื่อแจ้งให้ทราบว่าได้รับข้อความแล้ว
เหตุผลที่ไคลเอนต์และเซิร์ฟเวอร์ไม่ใช้หมายเลขลำดับเริ่มต้น เช่น 0 ในการสร้างการเชื่อมต่อก็เพื่อป้องกันไม่ให้การเชื่อมต่อสองครั้งที่ผ่านมาใช้หมายเลขลำดับเดียวกันซ้ำเร็วเกินไป ซึ่งหมายความว่าส่วนหนึ่งของข้อมูลจากการเชื่อมต่อครั้งก่อนหน้าอาจรบกวนการเชื่อมต่อครั้งถัดไปได้
SMTP
โปรโตคอลการถ่ายโอนอีเมลแบบง่าย (SMTP) เป็นมาตรฐานหลักของอินเทอร์เน็ตสำหรับการส่งอีเมลประกอบด้วยกระบวนการจับมือเพื่อเจรจาการตรวจสอบความถูกต้อง การเข้ารหัส และขนาดข้อความสูงสุด
การจับมือ TLS
เมื่อ การเชื่อมต่อ Transport Layer Security (SSL หรือ TLS) เริ่มต้นขึ้น ข้อมูลจะห่อหุ้มโปรโตคอล "ควบคุม" ซึ่งก็คือโปรโตคอลการส่งข้อความแบบจับมือ (ประเภทเนื้อหา 22) โปรโตคอลนี้ใช้ในการแลกเปลี่ยนข้อมูลทั้งหมดที่ทั้งสองฝ่ายต้องการสำหรับการแลกเปลี่ยนข้อมูลแอปพลิเคชันจริงโดยใช้ TLS โดยจะกำหนดรูปแบบข้อความหรือการบรรจุข้อมูลนี้ และลำดับการแลกเปลี่ยนข้อมูล ซึ่งอาจแตกต่างกันไปตามความต้องการของไคลเอนต์และเซิร์ฟเวอร์ กล่าวคือ มีขั้นตอนที่เป็นไปได้หลายขั้นตอนในการตั้งค่าการเชื่อมต่อ การแลกเปลี่ยนเริ่มต้นนี้จะส่งผลให้การเชื่อมต่อ TLS สำเร็จ (ทั้งสองฝ่ายพร้อมที่จะถ่ายโอนข้อมูลแอปพลิเคชันด้วย TLS) หรือข้อความแจ้งเตือน (ตามที่ระบุไว้ด้านล่าง)
โปรโตคอลนี้ใช้เพื่อเจรจาคุณลักษณะความปลอดภัยของเซสชัน (RFC 5246, หน้า 37) [ 7 ]
ระบบไร้สาย WPA2
มาตรฐานWPA2 สำหรับระบบไร้สายใช้การจับมือสี่ขั้นตอน (four-way handshake) ตามที่กำหนดไว้ในมาตรฐาน IEEE 802.11i- 2004
โมเด็มเชื่อมต่อแบบ Dial-up
ตัวอย่างคลาสสิกของการจับมือ (handshaking) คือโมเด็มแบบ dial-upซึ่งโดยทั่วไปจะเจรจาพารามิเตอร์การสื่อสารในช่วงเวลาสั้น ๆ เมื่อการเชื่อมต่อเริ่มต้นขึ้น และหลังจากนั้นจะใช้พารามิเตอร์เหล่านั้นเพื่อให้การถ่ายโอนข้อมูลที่ดีที่สุดผ่านช่องสัญญาณ โดยขึ้นอยู่กับคุณภาพและความจุของช่องสัญญาณ เสียง "แหลม" (ซึ่งจริง ๆ แล้วเป็นเสียงที่เปลี่ยนระดับเสียง 100 ครั้งต่อวินาที) ที่โมเด็มบางรุ่นที่มีลำโพงส่งออกเสียงออกมาทันทีหลังจากการเชื่อมต่อเริ่มต้นขึ้นนั้น แท้จริงแล้วคือเสียงของโมเด็มทั้งสองฝั่งที่กำลังทำขั้นตอนการจับมือกัน เมื่อขั้นตอนเสร็จสิ้น ลำโพงอาจจะเงียบลง ขึ้นอยู่กับการตั้งค่าของระบบปฏิบัติการหรือแอปพลิเคชันที่ควบคุมโมเด็ม
การจับมือกันของฮาร์ดแวร์แบบอนุกรม
คำศัพท์ที่ใช้กันบ่อยนี้อธิบายถึงการใช้สัญญาณ RTS และ CTS ผ่านการเชื่อมต่อแบบอนุกรม อย่างไรก็ตาม มันไม่ถูกต้องเสียทีเดียว เพราะมันไม่ใช่รูปแบบการจับมือ (handshaking) ที่แท้จริง และควรจะเรียกว่าการควบคุมการไหล (flow control ) มากกว่า
การชาร์จอุปกรณ์มือถือ
ในอุปกรณ์ชาร์จที่ให้ความสามารถในการชาร์จเร็วเป็นพิเศษสำหรับอุปกรณ์ที่รองรับ กระบวนการชาร์จจะเปลี่ยนไปใช้แรงดันไฟฟ้าขาออกที่สูงขึ้นเพื่อเพิ่มการถ่ายโอนพลังงาน แต่สิ่งนี้อาจทำให้เกิดความเสียหายร้ายแรงต่ออุปกรณ์ที่ไม่รองรับ หรือแม้กระทั่งทำให้เกิดไฟไหม้ได้ ดังนั้นจึงเป็นสิ่งสำคัญมากที่อุปกรณ์และที่ชาร์จจะต้องทำการตรวจสอบความเข้ากันได้ก่อน เพื่อ "ตกลง" เกี่ยวกับพารามิเตอร์การชาร์จที่รองรับร่วมกัน หากที่ชาร์จดังกล่าวไม่สามารถระบุอุปกรณ์ที่เชื่อมต่อหรือตรวจสอบความเข้ากันได้ได้ มันจะเปลี่ยนไปใช้พารามิเตอร์การชาร์จปกติแต่ช้ากว่ามากตามมาตรฐาน USB
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การจับมือ (ทางคอมพิวเตอร์)
ในทางคอมพิวเตอร์ การจับมือ (handshake) คือกระบวนการที่อุปกรณ์สองเครื่องสร้างการเชื่อมต่อสื่อสารโดยการตรวจสอบและยืนยันสัญญาณของกันและกัน ตัวอย่างเช่น การจับมือระหว่าง...
การจับมือสามขั้นตอนของ TCP
การสร้างการเชื่อมต่อ TCP ปกติต้องดำเนินการสามขั้นตอนแยกกัน:
SMTP
โปรโตคอล การถ่ายโอนอีเมลแบบง่าย (SMTP) เป็นมาตรฐานหลักของอินเทอร์เน็ตสำหรับการส่งอีเมล ประกอบด้วยกระบวนการจับมือ เพื่อเจรจาการตรวจสอบความถูกต้อง การเข้ารหัส และขนาดข้อความสูงสุด
การจับมือ TLS
เมื่อ การเชื่อมต่อ Transport Layer Security (SSL หรือ TLS) เริ่มต้นขึ้น ข้อมูลจะห่อหุ้มโปรโตคอล "ควบคุม" ซึ่งก็คือโปรโตคอลการส่งข้อความแบบจับมือ (ประเภทเนื้อหา 22)...