อย่างที่กล่าวมาแล้วข้างต้น โปรโตคอลโฮสต์ทูโฮสต์เลเยอร์ (Host to Host Layer) นี้จะประกอบด้วย 2 โปรโตคอลคือ TCP (Transmission Control Protocol) UDP (User Datagram Protocol) ซึ่งเป็นโปรโตคอลแต่ละตัวจะบริการแตกต่างกัน และมีข้อดีข้อเสียต่างกัน โปรโตคอลทั้งสองตัวมีรายละเอียดดังนี้
1 Transmission Control Protocol (TCP)
โปรโตคอล TCP (Transmission Control Protocol) เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด (Connection-Oriented) ซึ่งเป็นการส่งข้อมูลที่เชื่อถือได้ TCP จะส่งข้อมูลทั้งหมดจนสำเร็จ ซึ่งถ้าข้อมูลมีขนาดใหญ่ก็จะถูกแบ่งย่อยเป็นหลายแพ็กเก็ต โปรโตคอล TCP จะทำหน้าที่ควบคุมการรับส่งแพ็กเก็ตข้อมูลย่อย ๆ เหล่านี้ สำหรับกลไกในการควบคุมการไหลของข้อมูลมีรายละเอียดดังนี้
2 การจัดการเกี่ยวกับเซสชั่น
เนื่องจาก TCP เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด ดังนั้นก่อนการจะส่งข้อมูลจำเป็นที่จะต้องสร้างเซสชั่นเพื่อเชื่อมต่อกับโฮสต์ปลายทางก่อนเซสชั่นเป็นการสร้างการสนทนาอย่างเป็นรูปแบบระหว่างทั้งสองโฮสต์เพื่อใช้สำหรับการกู้คืนข้อมูล เมื่อเกิดข้อผิดพลาดระหว่างการรับส่งข้อมูล ขั้นตอนในการสร้างเซสชั่นจะมีอยู่ 3 ขั้นตอนซึ่งบางทีก็เรียกว่า “ทรีเวย์แฮนเช็ค (Three – Way Handshake)
โปรโตคอล TCP (Transmission Control Protocol) เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด (Connection-Oriented) ซึ่งเป็นการส่งข้อมูลที่เชื่อถือได้ TCP จะส่งข้อมูลทั้งหมดจนสำเร็จ ซึ่งถ้าข้อมูลมีขนาดใหญ่ก็จะถูกแบ่งย่อยเป็นหลายแพ็กเก็ต โปรโตคอล TCP จะทำหน้าที่ควบคุมการรับส่งแพ็กเก็ตข้อมูลย่อย ๆ เหล่านี้ สำหรับกลไกในการควบคุมการไหลของข้อมูลมีรายละเอียดดังนี้
2 การจัดการเกี่ยวกับเซสชั่น
เนื่องจาก TCP เป็นโปรโตคอลที่ให้บริการแบบคอนเน็กชันโอเรียนเต็ด ดังนั้นก่อนการจะส่งข้อมูลจำเป็นที่จะต้องสร้างเซสชั่นเพื่อเชื่อมต่อกับโฮสต์ปลายทางก่อนเซสชั่นเป็นการสร้างการสนทนาอย่างเป็นรูปแบบระหว่างทั้งสองโฮสต์เพื่อใช้สำหรับการกู้คืนข้อมูล เมื่อเกิดข้อผิดพลาดระหว่างการรับส่งข้อมูล ขั้นตอนในการสร้างเซสชั่นจะมีอยู่ 3 ขั้นตอนซึ่งบางทีก็เรียกว่า “ทรีเวย์แฮนเช็ค (Three – Way Handshake)
- โฮสต์ที่ต้องการส่งข้อมูลจะส่งแพ็กเก็ตไปยังโฮสต์ปลายทาง เพื่อแจ้งให้ทราบว่าต้องการส่งข้อมูล
- โฮสต์ปลายทางก็จะตอบตกลงมา พร้อมทั้งรหัสที่จะใช้ในการรับส่งข้อมูล
- โฮสต์ต้นทางก็จะส่งแพ็กเก็ตพร้อมรหัสที่ได้รับ เพื่อเป็นการยืนยันการเชื่อมต่อ
หลังจากที่ได้มีการสร้างเซสชั่นสำเร็จแล้วถึงเริ่มขบวนการรับ – ส่งข้อมูลจริงๆ ซึ่งในการรับส่งข้อมูลในแต่ละครั้งก็จะมีการยืนยันการรับส่งข้อมูลจากโฮสต์ปลายทางทุกครั้ง เมื่อรับส่งข้อมูลเสร็จก็เป็นขั้นตอนการยกเลิกการเซสชั่น ซึ่งจะคล้าย ๆ กับการสร้างเซสชั่น
3 การควบคุมการไหลเวียนและกู้คืนข้อมูล
ในแต่ละเซสชั่น โฮสต์ฝ่ายรับต้องตอบกลับทุก ๆ แพ็กเก็ตที่ได้รับภายในเวลาที่กำหนด เพื่อเป็นการยืนยันการรับข้อมูลทุก ๆ แพ็กเก็ตที่ส่ง ฝ่ายรับจะทำการเช็คความถูกต้องของแพ็กเก็ตข้อมูลทุกครั้ง และแจ้งให้ทราบถึงการตรวจตอบนั้น ถ้าฝ่ายส่งไม่ได้รับการตอบรับจากฝ่ายรับภายในเวลาที่กำหนด ฝ่ายรับก็จะคาดเอาว่าแพ็กเก็ตสูญหายระหว่างทาง ฝ่ายรับก็จะทำการส่งแพ็กเก็ตนั้นให้ใหม่อีกครั้ง เพื่อจะทำให้มั่นใจได้ว่าข้อมูลทุก ๆ แพ็กเก็ตส่งถึงปลายทางอย่างสมบูรณ์
3 การควบคุมการไหลเวียนและกู้คืนข้อมูล
ในแต่ละเซสชั่น โฮสต์ฝ่ายรับต้องตอบกลับทุก ๆ แพ็กเก็ตที่ได้รับภายในเวลาที่กำหนด เพื่อเป็นการยืนยันการรับข้อมูลทุก ๆ แพ็กเก็ตที่ส่ง ฝ่ายรับจะทำการเช็คความถูกต้องของแพ็กเก็ตข้อมูลทุกครั้ง และแจ้งให้ทราบถึงการตรวจตอบนั้น ถ้าฝ่ายส่งไม่ได้รับการตอบรับจากฝ่ายรับภายในเวลาที่กำหนด ฝ่ายรับก็จะคาดเอาว่าแพ็กเก็ตสูญหายระหว่างทาง ฝ่ายรับก็จะทำการส่งแพ็กเก็ตนั้นให้ใหม่อีกครั้ง เพื่อจะทำให้มั่นใจได้ว่าข้อมูลทุก ๆ แพ็กเก็ตส่งถึงปลายทางอย่างสมบูรณ์
ข้อมูลในส่วนหัวของโปรโตคอล TCP จะประกอบด้วยข้อมูลมากที่สุด 20 ไบต์ และประกอบด้วยส่วนต่าง ๆ ซึ่งมีฟิลด์มีความหมายดังนี้
- TCP Source Port (16 บิต) : ส่วนนี้จะเป็นหมายเลขพอร์ตที่เป็นจุดเริ่มการสื่อสาร หมายเลขพอร์ตเมื่อรวมกับหมายเลข IP จะเป็นที่อยู่ของการส่งข้อมูลกลับ
- TCP Destination Port (16 บิต) : เป็นหมายเลขพอร์ตเครื่องรับ ซึ่งพอร์ตนี้จะเป็นพอร์ตที่ใช้เชื่อมต่อกับแอพพลิเคชันที่จะนำข้อมูลที่ส่งไปให้นี้ไปโพรเซสต่อไป
- TCP Sequence Number (32 บิต) : เป็นหมายเลขที่บอกลำดับแพ็กเก็ตที่จะใช้ โดยฝั่งเครื่องรับในการเรียงข้อมูลให้อยู่ในรูปเดิมในการส่งข้อมูลผ่านเครือข่ายที่สลับซับซ้อนนั้นแพ็กเก็ตแต่ละชุดอาจจะถูกส่งไปบนเส้นทางที่ต่างกัน ดังนั้นจึงเป็นไปได้ที่แพ็กเก็ตจะเดินทางมาถึงปลายทางไม่เป็นไปตามลำดับที่ส่ง หมายเลขนี้จะใช้ในการจัดเรียงแพ็กเก็ตเหล่านี้ให้อยู่ในลำดับเดิม
- TCP Acknowledgement Number (32 บิต) : เป็นหมายเลขลำดับแพ็กเก็ตถัดไปที่ทางฝั่งรับคาดหวัง ซึ่งเป็นการบอกเป็นนัยว่าแพ็กเก็ตที่มีหมายเลขลำดับก่อนหน้านี้ได้รับหมดแล้วนั่นเอง
- Data Offset (4 บิต) : เป็นตัวเลขที่บอกขนาดของข้อมูลส่วนหัว (TCP Header) ซึ่งมีหน่วยเป็น 32 บิต หรือ Word
- Reserved (6 บิต) : ส่วนนี้จะถูกกำหนดให้เป็นศูนย์ตลอด ซึ่งข้อมูลส่วนนี้ไม่มีความหมายอะไรเพียงแต่เป็นการสงวนไว้ใช้ในอนาคตเมื่อมีการปรับปรุงโปรโตคอล
- Flags (6 บิต) : เป็นข้อมูลที่ใช้สำหรับควบคุมการรับส่งแพ็กเก็ต
- Window Size (16 ) : เป็นตัวเลขที่เครื่องปลายทางบอกให้เครื่องต้นทางทราบขนาดวินโดว์ของเครื่องปลายทางสามารถรับรู้ได้
- Checksum (16) : เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูลในส่วนหัว โดยเครื่องส่งจะทำการคำนวณค่า เช็คซัม (Checksum) ของข้อมูลส่วนหัว เมื่อเครื่องปลายทางได้รับข้อมูลก็จะทำการคำนวณเช็คซัมด้วยวิธีเดียวกัน แล้วทำการเปรียบเทียบข้อมูลค่าที่คำนวณได้กับค่าที่อยู่ในฟิลด์นี้ ถ้าเหมือนกันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลที่ได้รับ
- Padding : เป็นข้อมูลที่เพิ่มเพื่อให้ข้อมูลส่วนหัวมีจำนวนบิตที่หารด้วย 32 ลงตัว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น