الخلاصة
- يمكن لداتاغرام UDP واحدة أن تحمل حزم QUIC مكتملة متعددة، منها Initial وHandshake وبيانات التطبيق.
- تحتفظ كل حزمة بحمايتها ومساحة أرقام الحزم ومعالجتها وACK وحالة فقدها الخاصة.
- يجب حفظ الدليل على مستوى الحزمة وربطه منفصلاً بإيصالات التطبيق.
قد تعرض لقطة الشبكة حزم Initial وHandshake و1-RTT داخل داتاغرام UDP واحدة. وهذا يثبت أنها ظهرت ضمن حدث نقل واحد من نقطة رصد محددة، لكنه لا يعني أنها حصلت على المعالجة أو نتيجة الفقد أو ACK أو نتيجة الوصول نفسها. في QUIC، الحزمة المكتملة هي وحدة قابلة للمعالجة، أما داتاغرام UDP فهي الغلاف الذي يحمل وحدة أو أكثر.
الغرض من التجميع هو تحسين كفاءة النقل. فقد يقلل عدد داتاغرامات UDP اللازمة لإتمام المصافحة المشفرة وبدء نقل البيانات. لكن على المستقبل أن يستطيع العثور على كل حزمة مجمعة ومعالجتها. تحتوي حزم Initial و0-RTT وHandshake على حقل Length الذي يحدد الحدود. أما الحزمة ذات الرأس القصير فلا تحتوي على Length، ولذلك لا يمكن أن تأتي إلا في النهاية. ولا تُجمع Retry وVersion Negotiation مع حزمة أخرى، كما لا يجوز جمع حزم ذات connection IDs مختلفة.
الغلاف المشترك لا يدمج المعنى البروتوكولي. يجب معالجة كل حزمة مجمعة على حدة وإرسال ACK لها على حدة، كما لو وصلت في داتاغرام UDP مختلفة. إذا تعذر فك حماية حزمة، يمكن للمستقبل إسقاطها أو تخزينها مؤقتاً، لكنه يظل مطالباً بمحاولة معالجة الحزم الأخرى. إن تسجيل الداتاغرام كلها كحدث مصافحة واحد يمحو تمييزاً يحافظ عليه البروتوكول عمداً.
تستخدم Initial وHandshake وبيانات التطبيق مساحات أرقام حزم منفصلة. يحدد ACK الحزم داخل المساحة التي ينتمي إليها؛ ولا يحول التجاور داخل داتاغرام UDP تلك المساحات إلى تسلسل واحد أو نطاق تأكيد واحد. كما لا ينشئ التجميع كائن إعادة إرسال واحداً. عندما تعلن خسارة حزمة، يعيد QUIC إرسال المعلومات التي حملتها إطاراتها في حزم جديدة، ولا يعيد استخدام رقم الحزمة الأصلي. لذلك لا يمكن استنتاج مسار تعافٍ واحد من مجرد وجود عدة حزم متجاورة داخل داتاغرام واحدة.
يجب عدم الخلط بين حزم QUIC متعددة داخل داتاغرام واحدة وإطارات متعددة داخل حزمة QUIC واحدة. فقدان حزمة واحدة قد يحجب التدفقات التي كانت بياناتها داخلها، بينما تواصل تدفقات أخرى التقدم. ينشأ ذلك من مشاركة الإطارات داخل الحزمة نفسها، لا من وضع حزم كاملة مختلفة داخل غلاف UDP واحد.
هناك قيد خاص بداتاغرامات UDP التي تحمل Initial: يجب أن تبلغ 1200 بايت على الأقل باستخدام الحشو أو التجميع، ويسقط الخادم حزمة Initial الموجودة في داتاغرام أصغر. هذه قاعدة حجم خاصة بالنقل، ولا يجوز تحويلها إلى قاعدة عامة عن نتيجة تسليم موحّدة لكل حزمة في الغلاف. وتوضح اعتبارات الأمان في RFC 9000 أنه، باستثناء قاعدة الحشو هذه، لا يغير تغيير تجميع الحزم داخل داتاغرامات UDP وظيفة الاتصال، وإن كان الأداء قد يتغير.
ينبغي تسجيل معرّف داتاغرام UDP ونقطة الرصد، وطرفي الاتصال، والحجم الكلي، ومواضع الحزم وأطوالها، وconnection IDs والأنواع ومستويات التشفير ومساحات أرقام الحزم والأرقام المتاحة عند فكها، ونتيجة فك الحماية والمعالجة لكل حزمة، وقائمة الإطارات، وتسلسل ACK ونطاقاته، وإعلانات الفقد، وربط المعلومات المعاد إرسالها، ومعرّفات التدفق ومداه، والامتثال لقاعدة 1200 بايت ودور PMTU probe. أما إيصال التطبيق فيبقى سجلاً منفصلاً.
وإثبات وجود غلاف واحد لا يتجاوز إثبات رؤية داتاغرام UDP واحدة من نقطة رصد محددة. ولا يثبت معالجة كل حزمة أو تأكيدها معاً، ولا يثبت أن المعلومات قد استعيدت بعد الفقد أو وصلت إلى user space أو أدت إلى اكتمال رسالة أو تخزين دائم أو إنجاز إجراء تجاري.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

