Page 228 - Computer Network
P. 228
27.3. TRANSPORT CONTROL PROTOCOL (TCP) 219
รูปที่ 27.9 แสดงเซกเมนต์สุดท้ายของขบวนการทำงานของ TCP Three-way Handshake (ตำแหน่ง 3 ) ดู
เหมือนว่าจะไม่แตกต่างจากเซกเมนต์แรกเท่าใดนัก ในส่วนของพอร์ตมีค่าเหมือนเดิม Sequence number ระบุ
หมายเลขที่ส่งและหมายเลขต้องการเมื่อได้รับการตอบรับใน ACK และใน Control จะเหลือเพียงบิต ACK เท่านั้น
ที่มีค่าเป็น 1 ส่วนของ Window สมมติว่าเป็น 2000 ทำให้เซกเมนต์ถัดไปที่ต้องการอยู่ที่ 3001 ถึง 5000
หมายเลข Initial Sequence Number (ISN) มาจากไหน? เพื่อป้องกันเซกเมนต์ที่มีหมายเลขซํ้ากันถูก
ส่งในอินเทอร์เน็ต การกำหนด Sequence Number จะต้องมั่นใจว่าจะไม่มีการกำหนดซํ้ากันเกิดขึ้น ทำให้ TCP
แนะนำให้ใช้หมายเลขเริ่มต้นของ Sequence number เพิ่มขึ้นทุกๆ 4 ไมโครวินาที หากระบบไม่สามารถกำหนด
เวลาเริ่มต้นได้ เนื่องมาจากสาเหตุใดก็ตามเช่นระบบล่ม ระบบจะต้องหยุดการส่งชั่วคราวหลังจากเริ่มเดินเครื่องใหม่
เวลาหน่วงที่เกิดขึ้นนี้เรียกว่า Quiet time
book)
ตัวอย่าง 27.1 แอพพลิเคชัน Line เป็นหนึ่งในแอพพลิเคชันที่ได้รับความนิยมอย่างมากในปัจจุบัน ผู้ใช้สามารถ
สื่อสารแบบข้อความปกติ รวมทั้งการสื่อสารผ่านการโทรฟรี หรือส่งรูปภาพระหว่างกัน แอพพลิเคชัน Line เป็น
แอพพลิเคชันที่ใช้ TCP เพื่อสื่อสารระหว่างผู้ใช้ ทำให้ต้องมีการสร้างการเชื่อมต่อแบบ Three-way handshaking
รูปที่ 27.10 แสดงการเชื่อมต่อของแอพพลิเคชันจาก IP address 192.168.1.8 ไปยังปลายทางที่ 125.209.254.16
(partial
จะเห็นว่าในเซกเมนต์หมาย 1, 2 และ 3 จะมีการทำงานตามหลักการของ Three-way handshaking ที่ได้กล่าวไป
แล้ว
only
KKU
รูปที่ 27.10: ตัวอย่างการทำงาน Three-way handshaking บนแอพพลิเคชัน Line
27.3.4 การสิ้นสุดการเชื่อมต่อ
เมื่อการรับส่งข้อมูลสิ้นสุด สิ่งที่ TCP ต้องทำคือการยกเลิกการเชื่อมต่อ ซึ่งทั้งสองฝ่ายจะต้องยอมรับการยกเลิกนี้
ดังนั้นจึงจำเป็นต้องมีการแลกเปลี่ยนเซกเมนต์ของ TCP อีกครั้ง เมื่อฝั่งหนึ่งแจ้งว่าต้องการที่จะปิดและอีกฝั่งยอมรับ
การเชื่อมต่อของ TCP จึงสิ้นสุดลง
ในทำนองเดียวกันกับการสร้างการเชื่อมต่อ เรากำหนดให้บิต SYN เป็น 1 ในการยกเลิกการเชื่อมต่อนี้ เราจะ
กำหนดให้บิต FIN เป็น 1 แทน เพื่อแจ้งถึงการสิ้นสุดการเชื่อมต่อ รูปที่ 27.11 แสดงขั้นตอนการยกเลิกการเชื่อมต่อ
นี้
การยกเลิกเริ่มจากไคลเอนต์ส่งเซกเมนต์ TCP พร้อมกำหนดให้บิต FIN มีค่าเป็น 1 โดยมี Sequence number
เป็น x และ ACK เป็น y เมื่อเซิร์ฟเวอร์ได้รับเซกเมนต์นี้ จะตอบกลับด้วย ACK ในขณะเดียวกันเซิร์ฟเวอร์แจ้งไปยัง
แอพพลิเคชันที่ใช้การเชื่อมต่อนี้ เซิร์ฟเวอร์รอจนกระทั่งได้รับการตอบรับจากแอพพลิเคชันเพื่อยืนยันการสิ้นสุดการ

