الخلاصة

  • انتهاء PTO يطلق مجساً أو مجسين يطلبان ACK ويزيد فترة التراجع.
  • لا يعلن وحده فقدان حزمة، ولا يثبت ازدحاماً أو فقدان ACK.
  • يجب فصل المؤقت وpacket number space والمجس وACK اللاحق وإعلان الفقد ونتيجة التطبيق.

المشكلة تبدأ عندما يحوّل نظام المراقبة انتهاء مؤقت إلى حكم كامل على الشبكة. انتهاء PTO هو أولاً حدث مؤقت داخل packet number space محدد. وهو يعني أن رزم البيانات التي تطلب ACK لم تنتج التقدم المتوقع خلال الفترة المحسوبة، أو أن الخادم قد يحتاج إلى إرسال مجس قبل التحقق من عنوان العميل. الاستجابة هي اختبار تقدّم ACK: يرسل الطرف مجساً واحداً على الأقل، ويمكنه إرسال ما يصل إلى مجسين كاملَي الحجم يطلبان ACK، ثم يزيد التراجع الخاص بـ PTO. لا تحدد هذه الخطوة أي حزمة فُقدت.

يُدار PTO لكل packet number space. لذلك لا يجوز دمج Initial وHandshake وApplication Data في قائمة واحدة. الحساب المعتاد هو smoothed_rtt + max(4*rttvar, kGranularity) + max_ack_delay. ويُستخدم الصفر لحد max_ack_delay في Initial وHandshake. ولا يُفعّل Application Data PTO قبل تأكيد المصافحة. يمكن لإرسال أو تأكيد رزم بيانات تطلب ACK، وكذلك التخلص من مفاتيح Initial أو Handshake، أن يعيد تشغيل PTO. وبعد الانتهاء تتضاعف الفترة التالية، وتنمو الفترات المتتالية أُسّياً عبر مساحات أرقام الحزم، إلى أن يحدها idle timeout المستقل.

كشف الفقد مسار إثبات مختلف. مؤقت كشف الفقد بالحد الزمني، أي time-threshold loss-detection timer، له الأولوية، ولا ينبغي تفعيل PTO عندما يكون ذلك المؤقت مضبوطاً. وقد تقود نطاقات ACK اللاحقة إلى إعلان فقد وفق packet threshold أو time threshold في RFC 9002. هذا الإعلان اللاحق ليس معنى انتهاء المؤقت السابق. إن وسم جميع الحزم غير المؤكدة بأنها مفقودة عند انتهاء PTO هو استنتاج مبكر بلا دليل العتبة أو ACK اللازم.

ولا ينبغي وصف المجس بأنه «إعادة إرسال» للحزمة نفسها. تُستخدم البيانات الجديدة عند توافرها، وإلا يمكن حمل المعلومات التي أُرسلت سابقاً مرة أخرى داخل إطار جديد وحزمة جديدة. وعند عدم وجود بيانات، يمكن استخدام PING أو إطار آخر يطلب ACK. تنص RFC 9000 على أن حزم QUIC المفقودة لا تُعاد كاملة؛ بل تُحمل المعلومات التي تحتاج إلى إصلاح في إطارات وحزم جديدة. إرسال المعلومات مرة أخرى لا يعيد تشغيل الحزمة القديمة، كما أن PING وPADDING لا يحتويان معلومات قابلة لإعادة الإرسال.

قبل التحقق من العنوان، تُحتسب مجسات الخادم ضمن anti-amplification limit. وإذا لم تسمح ميزانية حد منع التضخيم بإرسال إضافي، فلا ينبغي للخادم تفعيل PTO قبل أن تزيد رزمة بيانات جديدة من العميل تلك الميزانية. وقد يحتاج العميل إلى إرسال مجس لفك هذا القيد، لكن ذلك لا يثبت فقدان حزمة أو ACK. كما أن انتهاء PTO وحده لا يثبت أن الازدحام سبب غياب التقدم، أو أن المستقبل عالج بيانات التطبيق، أو أن خدمة ردت، أو أن معاملة اكتملت.