วันเสาร์ที่ 17 มีนาคม พ.ศ. 2555

โครงสร้างและกาทำงาน

อย่างที่กล่าวมาแล้วข้างต้น  โปรโตคอลโฮสต์ทูโฮสต์เลเยอร์ (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)
  1. โฮสต์ที่ต้องการส่งข้อมูลจะส่งแพ็กเก็ตไปยังโฮสต์ปลายทาง เพื่อแจ้งให้ทราบว่าต้องการส่งข้อมูล
  2. โฮสต์ปลายทางก็จะตอบตกลงมา พร้อมทั้งรหัสที่จะใช้ในการรับส่งข้อมูล
  3. โฮสต์ต้นทางก็จะส่งแพ็กเก็ตพร้อมรหัสที่ได้รับ เพื่อเป็นการยืนยันการเชื่อมต่อ
หลังจากที่ได้มีการสร้างเซสชั่นสำเร็จแล้วถึงเริ่มขบวนการรับ – ส่งข้อมูลจริงๆ ซึ่งในการรับส่งข้อมูลในแต่ละครั้งก็จะมีการยืนยันการรับส่งข้อมูลจากโฮสต์ปลายทางทุกครั้ง  เมื่อรับส่งข้อมูลเสร็จก็เป็นขั้นตอนการยกเลิกการเซสชั่น ซึ่งจะคล้าย ๆ กับการสร้างเซสชั่น
3  การควบคุมการไหลเวียนและกู้คืนข้อมูล
ในแต่ละเซสชั่น  โฮสต์ฝ่ายรับต้องตอบกลับทุก ๆ แพ็กเก็ตที่ได้รับภายในเวลาที่กำหนด  เพื่อเป็นการยืนยันการรับข้อมูลทุก ๆ แพ็กเก็ตที่ส่ง  ฝ่ายรับจะทำการเช็คความถูกต้องของแพ็กเก็ตข้อมูลทุกครั้ง และแจ้งให้ทราบถึงการตรวจตอบนั้น ถ้าฝ่ายส่งไม่ได้รับการตอบรับจากฝ่ายรับภายในเวลาที่กำหนด   ฝ่ายรับก็จะคาดเอาว่าแพ็กเก็ตสูญหายระหว่างทาง  ฝ่ายรับก็จะทำการส่งแพ็กเก็ตนั้นให้ใหม่อีกครั้ง  เพื่อจะทำให้มั่นใจได้ว่าข้อมูลทุก ๆ แพ็กเก็ตส่งถึงปลายทางอย่างสมบูรณ์ 
ข้อมูลในส่วนหัวของโปรโตคอล TCP จะประกอบด้วยข้อมูลมากที่สุด  20  ไบต์  และประกอบด้วยส่วนต่าง ๆ ซึ่งมีฟิลด์มีความหมายดังนี้
  1. TCP  Source  Port  (16 บิต) : ส่วนนี้จะเป็นหมายเลขพอร์ตที่เป็นจุดเริ่มการสื่อสาร หมายเลขพอร์ตเมื่อรวมกับหมายเลข IP จะเป็นที่อยู่ของการส่งข้อมูลกลับ
  2. TCP  Destination Port  (16 บิต) : เป็นหมายเลขพอร์ตเครื่องรับ  ซึ่งพอร์ตนี้จะเป็นพอร์ตที่ใช้เชื่อมต่อกับแอพพลิเคชันที่จะนำข้อมูลที่ส่งไปให้นี้ไปโพรเซสต่อไป
  3. TCP  Sequence  Number  (32 บิต) : เป็นหมายเลขที่บอกลำดับแพ็กเก็ตที่จะใช้ โดยฝั่งเครื่องรับในการเรียงข้อมูลให้อยู่ในรูปเดิมในการส่งข้อมูลผ่านเครือข่ายที่สลับซับซ้อนนั้นแพ็กเก็ตแต่ละชุดอาจจะถูกส่งไปบนเส้นทางที่ต่างกัน  ดังนั้นจึงเป็นไปได้ที่แพ็กเก็ตจะเดินทางมาถึงปลายทางไม่เป็นไปตามลำดับที่ส่ง หมายเลขนี้จะใช้ในการจัดเรียงแพ็กเก็ตเหล่านี้ให้อยู่ในลำดับเดิม
  4. TCP  Acknowledgement  Number   (32 บิต) : เป็นหมายเลขลำดับแพ็กเก็ตถัดไปที่ทางฝั่งรับคาดหวัง ซึ่งเป็นการบอกเป็นนัยว่าแพ็กเก็ตที่มีหมายเลขลำดับก่อนหน้านี้ได้รับหมดแล้วนั่นเอง
  5. Data  Offset  (4 บิต) : เป็นตัวเลขที่บอกขนาดของข้อมูลส่วนหัว (TCP Header) ซึ่งมีหน่วยเป็น  32  บิต หรือ Word
  6. Reserved  (6 บิต) : ส่วนนี้จะถูกกำหนดให้เป็นศูนย์ตลอด ซึ่งข้อมูลส่วนนี้ไม่มีความหมายอะไรเพียงแต่เป็นการสงวนไว้ใช้ในอนาคตเมื่อมีการปรับปรุงโปรโตคอล 
  7. Flags  (6 บิต) : เป็นข้อมูลที่ใช้สำหรับควบคุมการรับส่งแพ็กเก็ต
  8. Window  Size  (16 ) : เป็นตัวเลขที่เครื่องปลายทางบอกให้เครื่องต้นทางทราบขนาดวินโดว์ของเครื่องปลายทางสามารถรับรู้ได้
  9. Checksum (16) : เป็นข้อมูลที่ใช้ในการตรวจสอบข้อผิดพลาดของข้อมูลในส่วนหัว  โดยเครื่องส่งจะทำการคำนวณค่า เช็คซัม (Checksum) ของข้อมูลส่วนหัว เมื่อเครื่องปลายทางได้รับข้อมูลก็จะทำการคำนวณเช็คซัมด้วยวิธีเดียวกัน แล้วทำการเปรียบเทียบข้อมูลค่าที่คำนวณได้กับค่าที่อยู่ในฟิลด์นี้ ถ้าเหมือนกันแสดงว่าไม่มีข้อผิดพลาดในข้อมูลที่ได้รับ
  10. Padding : เป็นข้อมูลที่เพิ่มเพื่อให้ข้อมูลส่วนหัวมีจำนวนบิตที่หารด้วย  32  ลงตัว

ไม่มีความคิดเห็น:

แสดงความคิดเห็น