Transmission Control Protocol และ User Datagram Protocol เป็นโปรโตคอลการขนส่งสองชั้นที่ใช้กันอย่างแพร่หลายกับอินเทอร์เน็ตโปรโตคอล โปรโตคอลคือชุดของขั้นตอนและกฎที่คอมพิวเตอร์สองเครื่องปฏิบัติตามเพื่อทำความเข้าใจซึ่งกันและกันและแลกเปลี่ยนข้อมูล แม้ว่า TCP จะเป็นโปรโตคอลที่ใช้กันมากที่สุดของทั้งสอง แต่ UDP ก็มีประโยชน์มากกว่าในบางสถานการณ์
ผลการสืบค้นโดยรวม
TCP-
รับประกันว่าข้อมูลจะมาถึงตามที่ส่ง
-
ข้อผิดพลาด-ตรวจสอบกระแสข้อมูล
-
ส่วนหัวขนาด 20 ไบต์อนุญาตให้มีข้อมูลฟังก์ชันเสริมขนาด 40 ไบต์
-
ช้ากว่า UDP
-
ดีที่สุดสำหรับแอปที่ต้องการความน่าเชื่อถือ
-
ไม่รับประกันว่าข้อมูลจะมาถึง
-
ไม่มีการตรวจสอบข้อผิดพลาดให้
-
ส่วนหัวขนาด 8 ไบต์อนุญาตเฉพาะข้อมูลฟังก์ชันบังคับเท่านั้น
-
เร็วกว่า TCP
-
ดีที่สุดสำหรับแอปที่ต้องการความเร็ว
โปรโตคอลทั้งสองส่งข้อมูลทางอินเทอร์เน็ตเป็นแพ็กเก็ต ในสองสิ่งนี้ TCP นั้นเน้นการเชื่อมต่อ หลังจากทำการเชื่อมต่อแล้ว ข้อมูลจะเดินทางแบบสองทิศทาง UDP เป็นโปรโตคอลที่ง่ายกว่าซึ่งไม่มีการเชื่อมต่อ
TCP นั้นแข็งแกร่งกว่า UDP มีฟังก์ชันการแก้ไขข้อผิดพลาดและความน่าเชื่อถือสูง UDP นั้นเร็วกว่า TCP โดยหลักแล้วเพราะไม่มีการแก้ไขข้อผิดพลาด นอกจากนี้ TCP ยังจัดการการควบคุมโฟลว์ ในขณะที่ UDP ไม่มีตัวเลือกสำหรับการควบคุมโฟลว์
ดีที่สุดสำหรับความน่าเชื่อถือ:TCP
TCP-
รับประกันการส่งมอบข้อมูล
-
ติดตามแพ็กเก็ตข้อมูล
-
ตรวจสอบแพ็กเก็ตเพื่อหาข้อผิดพลาด
-
การควบคุมการไหล
-
ส่วนหัวขนาด 20 ไบต์พร้อมตัวเลือกเพิ่มเติม
-
ไม่มีการรับประกันการจัดส่ง
-
แพ็กเก็ตอาจสูญหายได้
-
ไม่มีการควบคุมการไหล
-
ส่วนหัวถูกจำกัดไว้ที่ 8 ไบต์
TCP รับประกันการส่งข้อมูลไปยังผู้รับ หากข้อมูลสูญหาย TCP จะดำเนินการกู้คืนข้อมูลที่สูญหายและส่งใหม่อีกครั้ง เมื่อต้องการทำเช่นนี้ TCP จะติดตามแพ็กเก็ตข้อมูล และจะตรวจสอบแพ็กเก็ตเพื่อหาข้อผิดพลาด
UDP ไม่รับประกันการส่งข้อมูล นอกจากนี้ แพ็กเก็ต UDP อาจสูญหายระหว่างการขนส่งหรือเสียหายได้
ทั้ง TCP และ UDP ใช้ส่วนหัวเป็นส่วนหนึ่งของการบรรจุข้อมูลข้อความสำหรับการถ่ายโอนผ่านการเชื่อมต่อเครือข่าย เนื่องจาก TCP นั้นแข็งแกร่งกว่าของโปรโตคอลทั้งสอง ส่วนหัวจึงมีขนาดใหญ่กว่าที่ 20 ไบต์พร้อมตัวเลือกสำหรับข้อมูลเพิ่มเติม ในขณะที่ส่วนหัว UDP นั้นมีขนาดจำกัดที่ 8 ไบต์
ความเร็วที่ดีที่สุด:UDP
TCP-
ช้าเพราะใช้งานได้หลากหลาย
-
รวดเร็วเพราะมีฟังก์ชันจำกัด
แม้ว่า TCP จะเชื่อถือได้ แต่ก็ช้ากว่า UDP สาเหตุหลักมาจากการทำงานที่มากกว่า ผู้ใช้ปลายทางที่ต้องการความเร็วที่เร็วที่สุดเท่าที่เป็นไปได้ เช่น นักเล่นเกมและผู้ที่ทำงานกับวิดีโอ จะได้รับประโยชน์จาก UDP
ดีที่สุดสำหรับการใช้งาน:ขึ้นอยู่กับการใช้งาน
TCP-
ดีที่สุดสำหรับเว็บ การถ่ายโอนไฟล์ อีเมล และเชลล์ที่ปลอดภัย
-
ดีที่สุดสำหรับ VPN, สตรีมวิดีโอ, VoIP, การถ่ายทอดสด และการเล่นเกมออนไลน์
เนื่องจาก TCP มีความน่าเชื่อถือ จึงดีที่สุดในสถานการณ์ที่ต้องการความน่าเชื่อถือสูงแต่ไม่ต้องการความเร็ว เช่น เว็บ อีเมล และ FTP
ความเร็วของ UDP ทำให้เหมาะสมที่สุดสำหรับการเล่นเกมออนไลน์ การถ่ายทอดสด การขุดอุโมงค์ VPN และการสตรีมวิดีโอ
รูปแบบส่วนหัว TCP
ส่วนหัว TCP แต่ละรายการมี 10 ฟิลด์บังคับรวม 20 ไบต์ (160 บิต) โดยสามารถเลือกใส่ช่องข้อมูลเพิ่มเติมที่มีขนาดสูงสุด 40 ไบต์ได้
8 บิต เท่ากับ 1 ไบต์
ส่วนหัว TCP ปรากฏในลำดับต่อไปนี้ โดยเริ่มต้นด้วยปลายทางการสื่อสารต้นทางและปลายทาง:
- หมายเลขพอร์ต TCP ต้นทาง (2 ไบต์หรือ 16 บิต):หมายเลขพอร์ต TCP ต้นทางแสดงถึงอุปกรณ์ส่ง
- หมายเลขพอร์ต TCP ปลายทาง (2 ไบต์หรือ 16 บิต):หมายเลขพอร์ต TCP ปลายทางคือปลายทางการสื่อสารสำหรับอุปกรณ์ที่รับ
- หมายเลขลำดับ (4 ไบต์หรือ 32 บิต):ผู้ส่งข้อความใช้หมายเลขลำดับเพื่อทำเครื่องหมายลำดับของกลุ่มข้อความ
- หมายเลขตอบรับ (4 ไบต์หรือ 32 บิต):ทั้งผู้ส่งและผู้รับใช้การตอบรับ ฟิลด์ตัวเลขเพื่อสื่อสารหมายเลขลำดับของข้อความที่เพิ่งได้รับหรือคาดว่าจะส่ง
- ออฟเซ็ตข้อมูล TCP (4 บิต):ฟิลด์ออฟเซ็ตข้อมูลเก็บขนาดรวมของส่วนหัว TCP เป็นทวีคูณของสี่ไบต์ ส่วนหัวที่ไม่ได้ใช้ฟิลด์ TCP ที่เป็นตัวเลือกจะมีค่าออฟเซ็ตข้อมูลเท่ากับ 5 (แทน 20 ไบต์) ในขณะที่ส่วนหัวที่ใช้ฟิลด์ตัวเลือกขนาดสูงสุดจะมีค่าออฟเซ็ตข้อมูลเท่ากับ 15 (แทน 60 ไบต์)
- ข้อมูลที่จองไว้ (3 บิต):ข้อมูลที่สำรองไว้ในส่วนหัว TCP มีค่าเป็นศูนย์เสมอ ฟิลด์นี้จะจัดขนาดส่วนหัวทั้งหมดให้มีขนาดเท่าทวีคูณของสี่ไบต์ ซึ่งมีความสำคัญต่อประสิทธิภาพของการประมวลผลข้อมูลคอมพิวเตอร์
- ธงควบคุม (สูงสุด 9 บิต):TCP ใช้ชุดมาตรฐานหกชุดและแฟล็กการควบคุมแบบขยายสามรายการ ซึ่งแต่ละบิตแสดงถึงการเปิดหรือปิด เพื่อจัดการการไหลของข้อมูลในสถานการณ์เฉพาะ
- ขนาดหน้าต่าง (2 ไบต์หรือ 16 บิต):ผู้ส่ง TCP ใช้ตัวเลขที่เรียกว่าขนาดหน้าต่าง เพื่อควบคุมปริมาณข้อมูลที่ส่งไปยังผู้รับก่อนที่จะต้องการการตอบรับเป็นการตอบแทน หากขนาดหน้าต่างเล็กเกินไป การถ่ายโอนข้อมูลเครือข่ายจะช้าโดยไม่จำเป็น หากขนาดหน้าต่างใหญ่เกินไป ลิงก์เครือข่ายอาจอิ่มตัว หรือเครื่องรับอาจไม่สามารถประมวลผลข้อมูลที่เข้ามาได้เร็วพอ ส่งผลให้ประสิทธิภาพการทำงานช้าลง อัลกอริทึมการทำหน้าต่างที่สร้างขึ้นในโปรโตคอลจะคำนวณค่าขนาดแบบไดนามิกและใช้ฟิลด์ส่วนหัว TCP เพื่อประสานการเปลี่ยนแปลงระหว่างผู้ส่งและผู้รับ
- เช็คซัม TCP (2 ไบต์หรือ 16 บิต):ค่าเช็คซัมภายในส่วนหัว TCP ถูกสร้างขึ้นโดยผู้ส่งโปรโตคอลซึ่งเป็นเทคนิคทางคณิตศาสตร์เพื่อช่วยให้ผู้รับตรวจพบข้อความที่เสียหายหรือถูกดัดแปลง
- ตัวชี้ด่วน (2 ไบต์หรือ 16 บิต):ฟิลด์ตัวชี้แบบเร่งด่วนมักจะถูกตั้งค่าเป็นศูนย์และถูกละเว้น แต่เมื่อใช้ร่วมกับแฟล็กการควบคุมตัวใดตัวหนึ่ง ฟิลด์นี้สามารถใช้เป็นออฟเซ็ตข้อมูลเพื่อทำเครื่องหมายชุดย่อยของข้อความว่าต้องการการประมวลผลที่มีลำดับความสำคัญ
- ข้อมูลทางเลือก TCP (0 ถึง 40 ไบต์):การใช้ข้อมูล TCP ที่เป็นตัวเลือกรวมถึงการรองรับการตอบรับพิเศษและอัลกอริธึมการปรับขนาดหน้าต่าง
รูปแบบส่วนหัว UDP
เนื่องจาก UDP มีความสามารถจำกัดเมื่อเทียบกับ TCP ส่วนหัวจึงเล็กกว่า ส่วนหัว UDP มี 8 ไบต์ แบ่งออกเป็นสี่ฟิลด์ที่จำเป็นดังต่อไปนี้:
- แหล่งที่มาของหมายเลขพอร์ต UDP (2 ไบต์):หมายเลขพอร์ต UDP ต้นทางแสดงถึงอุปกรณ์ส่ง
- หมายเลขพอร์ต UDP ปลายทาง (2 ไบต์):หมายเลขพอร์ต UDP ปลายทางคือปลายทางการสื่อสารสำหรับอุปกรณ์ที่รับ
- ความยาวของข้อมูล (2 ไบต์):ฟิลด์ความยาวใน UDP แสดงถึงขนาดรวมของแต่ละดาตาแกรม รวมทั้งส่วนหัวและข้อมูล ช่องนี้มีค่าตั้งแต่ 8 ไบต์ขึ้นไป ซึ่งเป็นขนาดส่วนหัวที่กำหนด จนถึงขนาดที่สูงกว่า 65,000 ไบต์
- เช็คซัม UDP (2 ไบต์):คล้ายกับ TCP การตรวจสอบ UDP ช่วยให้ผู้รับตรวจสอบข้อมูลขาเข้าข้ามเพื่อหาบิตที่เสียหายของข้อความได้
คำตัดสินสุดท้าย
มีเหตุผลที่ TCP เป็นโปรโตคอลที่ใช้บ่อยที่สุด มีความแข็งแกร่งและเชื่อถือได้ และรับประกันว่าจะได้รับข้อมูลตรงตามที่ส่ง สตรีมข้อมูลที่ตรวจสอบข้อผิดพลาดแล้วอาจช้าลงเล็กน้อย แต่ในกรณีส่วนใหญ่ ความล่าช้าไม่ใช่ตัวทำลายข้อตกลง
เวลาที่ UDP สว่างกว่า TCP คือเวลาที่ความเร็วมีความสำคัญอย่างยิ่ง เช่น ในการสตรีมวิดีโอ, VPN หรือเกมออนไลน์