วันพุธที่ 6 ตุลาคม พ.ศ. 2553

TCP segment structure (โครงสร้างของ TCP)






มีรายละเอียดังนี้


Source Port Number

หมายถึง พอร์ตที่โฮสต์ต้นทางใช้ในการสื่อสารกันของเซสชั่นนี้ และTCP/IP จะใช้พอร์ตนี้ตลอดไป โดยทั่วไปพอร์ตนี้จะเรียกว่า "ไคล์เอนต์พอร์ต" คือ พอร์ตที่ไคลเอนต์เปิดขึ้นมาเพื่อรอการตอบรับจากเซิร์ฟเวอร์ ไคลเอนต์พอร์ต จะมีหมายเลขไม่แน่นอนและเปลี่ยนไปทุกครั้งที่มีการเริ่มการเชื่อมต่อใหม่เป็นพอร์ตที่ถูกเปิดไว้ในระยะเวลาสั้นๆ ค่าที่เป็นไปได้ของพอร์ตนี้ขึ้นอยู่กับการจัดสรรของระบบปฏิบัติการ ในการกำหนดขอบเขตของพอร์ตเหล่านี้ส่วนใหญ่จะมีค่าอยู่ในช่วง 1024 - 5000


Destination Port Number

หมายถึง หมายเลขพอร์ตบนโฮสต์ปลายทางที่โฮสต์ต้นทางต้องการติดต่อด้วย โดยนัยแล้วจะหมายถึง แอพพลิเคชั่นที่ให้บริการอยู่พอร์ตนั้นที่โฮสต์ปลายทางนั่นเอง พอร์ตนั้นจะเรียกอีกอย่างว่า "เซิร์ฟเวอร์พอร์ต"หมายเลขพอร์ตที่เปิดไว้จะขึ้นอยู่กับแอพพลิเคชั่นที่ให้บริการ โดยทั่วไปแอพพลิเคชั่นแต่ละประเภทจะมีหมายเลขพอร์ตเป็นมาตรฐานสำหรับให้ไคลเอนต์ได้เรียกใช้บริการ




Sequence Number

เป็นฟิลด์ที่ระบุถึงหมายเลขลำดับที่ใช้อ้างอิงในการสื่อสารข้อมูลแต่ละครั้ง เพื่อให้ทั้ง 2 ฝ่ายจะได้รับทราบตรงกันว่าเป็นข้อมูลของชุดใด การนำไปใช้งานจะได้ไม่ปะปนกัน และมีลำดับที่ถูกต้อง เนื่องจากการสื่อสารข้อมูลผ่าน TCP นั้นจังหวะและลำดับเป็นส่วนสำคัญของโปรโตคอลไม่ได้น้อยไปกว่าข้อมูลใน TCP Header รวมไปถึงการที่ข้อมูลในแต่ละ TCP Segment อาจจะถูกทำการแฟรกเมนต์ในเลเยอร์ของ IP ถัดลงไปทำให้ข้อมูลถูกแบ่งออกและส่งไปในลำดับที่ไม่เรียงกัน หากไม่มีจุดอ้างอิงของข้อมูลก็จะไม่สามารถอ่านข้อมูลกลับใหม่ได้อย่างสมบูรณ์และถูกต้อง การส่งข้อมูลและการตอบรับจะใช้ฟิลด์นี้เป็นตัวยืนยันระหว่งกันเสมอ



Acknowledge Number

ทำหน้าที่เช่นเดียวกับ Sequence Numbe ต่างกันตรงที่เป็น Sequence Number ซึ่งในการตอบรับกล่าวคือ เนื่องจาก Sequence Number ที่ใช้ในการอ้างอิงนั้นผู้ที่เร่มส่งข้อมูลจะเป็นผู้กำหนดเลขขึ้นมาและส่งไปพร้อมกับการสร้างการเชื่อมต่อครั้งใหม่แต่สำหรับฝ่ายที่ถูกติดต่อก็จำเป็นต้องกำหนดหมายเลขสำหรับใช้อ้างอิง ในการตอบรับเช่นกัน ค่าที่อยู่ใน ACK Number ก็คือหมายเลขที่ใช้อ้างอิงในการตอบรับนี้






Header Length

โดยปกติความยาวของ TCP Header จะเท่ากับ 20 ไบต์ แต่ถ้าหากมีการใช้ Option อาจจะทำให้ขนาดของ Header ยาวขึ้นตามข้อมูลที่ต้องเพิ่มมาจาก Option นั้น แต่ทั้งหมดแล้วจะไม่เกิน 60 ไบต์ เป็นข้อมูลในระดับบิตที่ใช้เป็นตัวบอกคุณสมบัติของ TCP Segment ที่กำลังส่งอยู่นั้น และใช้เป็นตัวควบคุมจังหวะ การรับส่งข้อมูลด้วย Flag ทั้งหมดมีอยู่ 6 บิต แต่ละบิตจะมีชื่อและมีความหมาย ดังนี้


Flag Detail

URG ใช้บอกความหมายว่าเป็นข้อมูลด่วน และมีข้อมูลพิเศษมาด้วย

ACK แสดงว่าข้อมูลในฟิลด์ Acknowledge Number นำมาใช้งานได้

PSH เพื่อแจ้งให้ผู้รับข้อมูลทราบว่า ควรจะส่งข้อมูล Segment นี้ไปยัง Process ที่

กำลังรออยู่ทันที
RST ใช้ในกรณีที่เกิดการสับสนขึ้นด้วยเหตุผลต่างๆ เช่น โฮสต์มีปัญหา

SYN ใช้ในการเริ่มต้นขอติดต่อกับปลายทาง

FIN ใช้ส่งเพื่อแจ้งให้ปลายทางทราบว่ายุติการติดต่อ




Window Size

เป็นขนาดของการรับ - ส่งข้อมูลในแต่ละครั้งที่ทางฝ่ายผู้รับจะสามารถรับได้ เนื่องจากในการรับข้อมูลนั้น ทางผู้รับจะต้องจัดเตรียมหน่วยความจำในการพักข้อมูลที่มาจาก TCP และทำการ Demultiplex ออกมา หากไม่มีการตกลง ถึงขนาดที่ทางฝ่ายรับสามารถรับได้ ก็จะทำให้การสื่อสารข้อมูลไม่สมดุล และฝ่ายรับอาจจะประมวลผลทัน ซึ่งจะส่งผลให้ต้องส่งข้อมูลซ้ำหลายครั้ง



Check sum

คือ ฟิลด์ที่ใช้ในการตรวจสอบความถูกต้องของข้อมูลใน TCP Segment ล่าสุดที่อยู่ในโหมด Urgent



Urgent pointer

คือ ข้อมูลที่เพิ่มเติมซึ่งจะอยู่ใน TCP Header เมื่อมีการตั้งค่า Option บางอย่าง ต้องการข้อมูลเพิ่มเติม ซึ่งไม่มีใน TCP Header เช่น MSS, Strict Route


































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

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