Page 226 - Computer Network
P. 226

27.3. TRANSPORT CONTROL PROTOCOL (TCP)                                             217



                          • Window Size: ใช้กับเซกเมนต์ของ ACK เพื่อระบุจำนวนของข้อมูลที่สามารถรับได้เป็นไบต์ในเลขฐาน 16
                            เพื่อช่วยในการทำ flow control บน TCP

                          • Checksum: ใช้ในการตรวจสอบความผิดพลาดที่อาจเกิดในส่วนของข้อมูล

                          • Urgent Point: เพื่อใช้งานกับบิต U หรือ URG หากบิตนี้ถูกกำหนดให้เป็น 1 จะมีความหมายสองประการ

                            คือ หนึ่งภาคส่งต้องการที่จะส่งข้อมูลที่เร่งด่วน (Urgent) สองระบุถึงจุดสิ้นสุดของข้อมูล Urgent

                          • Options หากไม่มีการใช้งานฟิลด์ Options นี้ สิ่งที่ตามมาจะเป็นข้อมูลที่ต้องการส่ง แต่หากมีการใช้ฟิลด์
                            Options จะทำให้ค่าของ HLEN มากกว่า 5 ซึ่งการใช้งานฟิลด์ Options จะไม่ขอกล่าวถึงในที่นี้


                      27.3.3 Three-way Handshaking


                      การทำงานของ TCP เป็นแบบ connection-oriented ทำให้ก่อนที่จะส่งข้อมูลระหว่างโนด TCP ต้องสร้างการ
                                                                           book)
                      เชื่อมต่อขึ้นก่อน เรียกว่า TCP Three­way Handshake โดยที่ภาคส่งจะเริ่มส่ง SYN เซกเมนต์ (SYN = 1) พร้อม
                      ทั้ง Sequence number ที่ภาคส่งกำหนดขึ้น เรียกว่า Initial Sequence Numbers (ISN) เพื่อให้ภาครับรับทราบ
                      ถึงการเริ่มสร้างการเชื่อมต่อระหว่างกัน จากนั้นภาครับจะตอบกลับด้วย ACK เซกเมนต์ (ACK = 1) พร้อมทั้ง ISN

                      ของตน ก่อนที่ภาคส่งจะส่ง ACK เซกเมนต์อีกครั้งก่อนการสื่อสารจริงจะเกิดขึ้น นอกเหนือจาก ISN แล้ว ทั้งสอง
                      สามารถกำหนดค่าของ option อื่นเพิ่มเติมได้เช่นกัน






                                                     1    (partial       2
                                               only  3





                                    KKU    รูปที่ 27.6: การเชื่อมต่อแบบ Three-way handshaking






                         รูปที่ 27.7 แสดงเซกเมนต์ของ TCP จากไคลเอนต์ (ตำแหน่ง 1 ) สมมติให้ต้นทางใช้พอร์ตหมายเลข 3456

                      และร้องขอไปยังปลายทางที่พอร์ตหมายเลข 21 ซึ่งเป็น Well-Known port ของ FTP กำหนดให้ TCP เซกเมนต์ที่
                      ส่งมี Sequence number เริ่มต้นเป็น 1000 ทำให้หากเซกเมนต์นี้สูญหาย TCP จะส่งออกไปใหม่โดยใช้หมายเลขนี้
                      ดังเดิม
                         เนื่องจากเซกเมนต์นี้เป็นการร้องขอการเชื่อมต่อระหว่างต้นทางและปลายทาง ทำให้ส่วนของ ACK ไม่มีความ
                      หมายใดๆ ในส่วนของ HLEN ในที่นี้มีค่าเท่ากับ 5 หมายถึงไม่มีการกำหนด Options ใดๆ และฟิลด์ Reserve มีค่า
                      เป็น 0 เพื่อแสดงว่าไม่มีการใช้งาน ในส่วนของบิต Control มีส่วนของบิต SYN เท่านั้นที่ถูกกำหนดให้เป็น 1 นอก

                      นั้นมีค่าเป็น 0 ทำให้ Urgent Pointer ไม่มีความหมายใดๆ นอกจากนี้ในเซกเมนต์นี้ ฟิลด์ Window size ไม่มีความ
                      หมายใดๆเช่นกัน ในส่วนของฟิลด์ Checksum จะบันทึกค่าที่คำนวณได้ เพื่อให้ภาครับใช้ตรวจสอบความถูกต้อง
                      ของข้อมูลที่ได้รับ
                         จากนั้นเมื่อภาครับได้รับการร้องขอนี้ ดังแสดงรูปที่ 27.6 เซกเมนต์ที่เซิร์ฟเวอร์ตอบ ACK กับมายังไคลเอนต์
                      สามารถแสดงในรูปที่ 27.8
                         รูปที่ 27.8 แสดงที่ตำแหน่ง 2 จะเห็นว่าหมายเลขพอร์ตต้นทางและปลายทางจะสลับที่กัน เซิร์ฟเวอร์กำหนด

                      Sequence number ของตนเองเป็น 3000 พร้อมตอบกับด้วย ACK หมายเลข 1001 (เนื่องจาก SYN จะใช้ 1 ไบต์)
   221   222   223   224   225   226   227   228   229   230   231