الخلاصة
- ينهي CONNECTION_CLOSE الصالح اتصال QUIC فوراً ويغلق التدفقات المفتوحة ضمنياً.
- ينتقل المرسل إلى closing والمتلقي إلى draining، ولكل حالة قواعد استجابة مختلفة.
- رمز الإغلاق وعبارة السبب دليلان على النقل، لا على اكتمال الأعمال أو الالتزام الدائم أو السبب الجذري.
إن CONNECTION_CLOSE المحمي إشارة نقل مُصادَق عليها من الطرف المقابل. وهو يثبت أن الطرف المستقبل لاحظ إطاراً صالحاً وأن الاتصال دخل مسار الإنهاء المناسب. لكنه لا يحوله إلى إيصال للتطبيق. تظهر المشكلة حين يرى سجل العمليات NO_ERROR فيضع كل الأعمال الجارية على الاتصال في خانة النجاح.
ينهي QUIC النقل فوراً. تصبح التدفقات المفتوحة مغلقة، ويمكن التعامل معها على أنها أُعيد ضبطها ضمنياً. يدخل الطرف الذي أرسل الإطار في closing، ويدخل الطرف الذي تلقاه في draining. يثبت ذلك حالة الاتصال، لكنه لا يثبت أن التطبيق تفاوض على إيقاف سلس، أو أن كل رسالة استُلمت وعولجت، أو أن حالة دائمة سُجلت، أو أن العمل غير المكتمل عُوّض، أو أن المعاملة التجارية اكتملت.
يجب تسجيل نوع الإطار. النوع 0x1c يحمل أخطاء طبقة QUIC، بما في ذلك NO_ERROR، ويحتوي حقل نوع الإطار المسبب؛ ويكون هذا الحقل صفراً عندما يكون النوع مجهولاً. أما النوع 0x1d فيحمل رموز أخطاء بروتوكول التطبيق ولا يحتوي هذا الحقل. رمز النقل ليس إيصالاً للتطبيق. ويعني NO_ERROR فقط استخدام رمز النقل الذي لا يشير إلى خطأ. عبارة السبب نص تشخيص يورده الطرف المقابل؛ وهي اختيارية، وقد تكون فارغة، ولا تحمل وسم لغة. ولا تشكل وحدها تحليلاً كاملاً للسبب.
توجد حالتا closing وdraining للتعامل النظيف مع الحزم المتأخرة أو المعاد ترتيبها. وينبغي عادة أن تستمرا ثلاث مرات على الأقل من قيمة PTO الحالية. وإذا وُجد تحكم بديل موثق يمنع الحزم المتأخرة من إثارة استجابة، فقد يسمح ذلك بالتخلص المبكر من الحالة. بعد انتهاء أي من الحالتين تُهمل حالة الاتصال، وقد يتلقى لاحقاً Stateless Reset. لذلك يجب فصل وقت التخلص من الحالة عن وقت إكمال التطبيق.
في closing يحتفظ الطرف بما يكفي فقط للتعرف على حزم الاتصال وتوليد ردود CONNECTION_CLOSE، ولا يُطلب منه معالجة الإطارات المستلمة. عليه تحديد معدل الردود، كما تبقى حدود التضخيم سارية عندما لا يمكن التحقق من الحزم الواردة. أما draining فلا يجوز له إرسال الحزم؛ ويمكن إرسال حزمة إغلاق واحدة على الأكثر قبل دخوله، ثم يلتزم الصمت. هذا الصمت قاعدة نقل وليس دليلاً على نجاح العمل.
يؤثر مستوى الحماية في إمكانية معالجة النظير للإغلاق. بعد تأكيد المصافحة، يجب إرسال CONNECTION_CLOSE داخل حزمة 1-RTT. وقبل التأكيد قد يلزم الإرسال عبر أكثر من مستوى حماية متاح كي يتمكن الطرف الآخر من معالجة نسخة واحدة على الأقل. لا يستطيع العميل افتراض أن الخادم قبل إغلاقاً أُرسل فقط في 0-RTT. كما أن غياب إغلاق ظاهر لا يثبت تلقائياً أن الطرف الآخر تجاهله.
تظل أدلة التطبيق منفصلة: تفاوض الإيقاف السلس، قبول كل عملية، الالتزام الدائم، التعويض والإكمال. ويتطلب إسناد السبب أدلة مستقلة عن إطار الإغلاق. قد تساعد عبارة السبب في التحقيق، لكنها لا تحل محل هذه السجلات.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات

