ใน MPG ที่มีแบนด์วิดธ์สูงคุณไม่สนใจว่าคุณจะพลาดแพ็คเก็ตหรือเปล่าที่บอกตำแหน่งและสุขภาพของ monster # 425 เพราะคุณจะได้รับการอัปเดตอีกครั้งในเสี้ยววินาที นี่คือตัวอย่างที่ UDP ทำให้ TCP ดูงี่เง่าที่ทำให้คุณรอข้อมูลที่ล้าสมัยทันที
ในเกมเดียวกันนั้นคุณต้องการให้แพตช์ปรากฏขึ้นตามที่ออกแบบไว้ TCP มีฟีเจอร์ "บอกฉันว่ามันล้มเหลว" อยู่แล้วในตัวอำนวยความสะดวกในการลองใหม่โดยอัตโนมัติและตรวจสอบความล้มเหลว คุณสามารถทำได้ใน UDP แต่ทำไมต้องสร้างเทคโนโลยีขึ้นมาใหม่?
นี่คือคำอธิบายง่ายๆของสิ่งที่เกิดขึ้น
UDP - แยกก้อน O'data
ทำแพ็กเก็ต
ห่อหุ้มใน IP
จัดส่ง
TCP - แยกกระแสข้อมูล
ทำแพ็กเก็ตจากด้านหน้าของสตรีม
ห่อหุ้มใน IP
รอพื้นที่ในหน้าต่าง TCP
จัดส่ง
เก็บ reshipping ไว้จนกว่าจะได้รับหรือหมดเวลา
อยู่ในหน้าต่าง TCP จนกว่าจะได้รับใบเสร็จหรือหมดเวลา
การจัดส่งหมายถึงมันทำให้ผ่าน NIC ท้องถิ่นไม่มาก
การรับสัญญาณ TCP ทั้งคู่รับประกันการรับข้อมูลและเพิ่มพื้นที่ในหน้าต่างสำหรับแพ็กเก็ตถัดไป
การส่งซ้ำ (เล็กน้อย) จะเพิ่มโอกาสในการรับในที่สุด
แพ็กเก็ต TCP จะประกอบขึ้นอีกด้านหนึ่งเป็นสตรีมข้อมูลที่สั่งซื้อ รับแพ็คเก็ต UPD เป็นแพ็กเก็ตที่แตกต่างกัน โปรโตคอลไม่รักษาลำดับ
TCP เหมาะสำหรับการพุชข้อมูลที่จำเป็นและการสั่งข้อมูลจำนวนมาก TCP จัดให้มีการแจ้งเตือนของความล้มเหลวถาวร TCP self-throttles ผ่านไปป์ที่ผ่านการสำลัก (หน้าต่างอ้างอิง:) TCP มี handshakes เพื่อชะลอการเริ่มต้น TCP ต้องการ "การเชื่อมต่อ" ก่อนส่ง
UDP เพียงแค่วางข้อมูลลงบน wire และให้คุณดำเนินการต่อโดยไม่ต้องรอ windows และส่งสัญญาณซ้ำ UDP จะระเบิดข้อมูลด้วยความเร็วเต็มเข้าไปในท่อที่มีการสำลักไม่ว่าข้อมูลจะสูญหายไปเท่าใด
ฉันออกแบบและเขียน UDP Multicast File Transport Utility ที่ใช้ในเชิงพาณิชย์ ฉันทำงานกับ IP สแต็คแล้ว สิ่งเหล่านี้เป็นแค่ข้อมูลพื้นฐานเท่านั้น การอธิบาย "ซ็อกเก็ต MTU และของเล่นสนุก ๆ " นั้นเล็กน้อยเกินกว่าจะเป็นประโยชน์สำหรับคำถามนี้
ป.ล. (ฉันไม่สามารถเพิ่มความคิดเห็นเพื่อตอบกลับความคิดเห็น) UDP ก็ดีสำหรับข้อมูลที่เป็นที่ต้องการ แต่ไม่จำเป็น การแก้ไขข้อผิดพลาดไปข้างหน้าเป็นตัวอย่างของสิ่งนี้แพ็คเก็ตที่ไม่จำเป็น แต่เป็นที่ต้องการ