الخلاصة

  • يوقف FORWARD=0 إرسال الكائنات في اشتراك قائم وفق الإصدار 22 من Media over QUIC Transport، لكنه لا يوقف رسائل التحكم مثل PUBLISH_DONE.
  • عندما يكون جميع المشتركين في المصب متوقفين مؤقتاً، يستطيع المُرحِّل إبقاء اشتراك المنبع عاملاً لتسخين ذاكرته المؤقتة. لذلك لا يثبت إيصال التوقف أن الجلب أو استهلاك الموارد قد انتهيا.

يضغط المشاهد زر الإيقاف المؤقت، فتتجمد الصورة وينخفض التدفق إلى جهازه. ومع ذلك قد يواصل مُرحِّل وسيط استقبال المسار الحي من الناشر كي تكون العودة أسرع. يسمح مشروع البروتوكول بصحة الحالتين في الوقت نفسه.

يعرّف draft-ietf-moq-transport-22 المؤرخ في 1 أكتوبر 2026 بروتوكول MOQT للنشر والاشتراك فوق QUIC وWebTransport. ويعرضه Datatracker بوصفه Internet-Draft نشطاً لمجموعة Media Over QUIC. ليس RFC ولا دليلاً على نشر فعلي. يذكر رأس الوثيقة Standards Track، فيما لا تعرض صفحة Datatracker حالياً حالة RFC مقصودة؛ ولا يحوّل هذا الاختلاف المشروع إلى معيار معتمد.

يوضح الإصدار 22 حداً كان موجوداً من قبل. فقد سمّى الإصدار 21 المفتاح Forward State بقيمة 0 أو 1. أما الإصدار الجديد فيصف الاشتراك بأنه متوقف مؤقتاً أو غير متوقف، ويسجل تغيير التسمية. لم تُخترع الآلية الأساسية في أكتوبر، بل صار معناها التشغيلي أوضح.

لا يرسل الناشر كائنات عبر الاشتراك المتوقف، لكنه يواصل رسائل التحكم، ومنها PUBLISH_DONE. يحدد البادئ القيمة الأولى لـFORWARD في PUBLISH أو SUBSCRIBE. ثم يرسل المشترك REQUEST_UPDATE بالقيمة 0 للإيقاف وبالقيمة 1 للاستئناف. وأي قيمة أخرى مخالفة للبروتوكول.

الإيقاف ليس إلغاءً. تبقى حالة الاشتراك حتى الإلغاء أو وصول PUBLISH_DONE أو REQUEST_ERROR. ولا يُحفظ طلب الملء للمستقبل تلقائياً: إذا عولجت FILL_PARAMETERS أثناء التوقف فلن يُفتح مسار fill-fetch، ولا يكفي الاستئناف وحده لفتحه لاحقاً. استعادة الفجوة تحتاج طلباً جديداً.

لنهاية المسار دلالة مستقلة. إذا أُغلق مسار subgroup قبل إرسال جميع الكائنات المعنية، وجب تصفيره؛ ويذكر المشروع صراحة حذف كائن بسبب التوقف. قد يثبت FIN السليم اكتمال المجموعة منذ بدء الاشتراك، بينما يعني reset أن كائنات أخرى ربما وجدت بعد آخر ما استُلم. كلاهما حدث صحيح، لا إيصال اكتمال واحد.

تظهر السلطة الأهم عند المُرحِّل. ما دام مشترك واحد في المصب غير متوقف، يجب أن يحتفظ المُرحِّل باشتراك منبع غير متوقف لتلقي الكائنات وتمريرها. وإذا توقف الجميع، يختار المُرحِّل ما إذا كان سيوقف المنبع.

إبقاء المنبع عاملاً يجلب الكائنات ويسخن الذاكرة المؤقتة، وقد يقلل زمن الاستئناف؛ لكنه يستهلك موارد الناشر والمنبع لمحتوى لا يصل في تلك اللحظة إلى أحد في المصب. إيقاف المنبع يوفر هذا العمل، وقد يجعل العودة أبطأ. تترك المواصفة هذه الموازنة لقرار محلي.

لذلك لا يثبت مؤشر «متوقف مؤقتاً» وعود الكلفة أو الخصوصية أو السكون الكامل. إنه يصف حالة التسليم في اشتراك بعينه. ولا يثبت توقف جلب المُرحِّل أو تغير الذاكرة أو عمل الناشر أو الحركة القابلة للفوترة. كما لا يثبت استمرارها؛ فلا بد من قياس جهة المنبع.

تحتاج العملية الموثوقة إلى سبعة سجلات: نية المشترك المرتبة؛ حالة الناشر المؤكدة؛ التوقف الفعلي لكائنات المصب؛ رسائل التحكم المستمرة؛ قرار المُرحِّل في المنبع؛ قياس الحركة والموارد والذاكرة؛ والنتيجة التي رآها المشاهد بعد الاستئناف. لا يعوّض سجل واحد بقية السلسلة.

يفصل مبدأ Minimum Initial Specification لدى Heng Lu بين العقد المشترك والقرار المحلي: يجب أن يكون أثر FORWARD حاسماً، ويمكن أن تبقى موازنة الزمن والموارد محلية. وتطلب Running-Code Primacy مشاهدة السلوك لا الثقة بالوسم. أما Reality Layers فتفصل الصورة الجامدة عن حالة البروتوكول والذاكرة وعمل الناشر. هذا تطبيق تحريري من Daniel Kade، لا موقف من IETF.

تنتهي سلطة الأمر عند الحد الذي يسميه. يستطيع المستخدم إيقاف التسليم إليه، لكنه لا يتحكم تلقائياً في استراتيجية المنبع لدى المُرحِّل. وإذا وعدت الخدمة بانعدام الجلب أو التخزين أو الكلفة، فهي تحتاج إلى تحكم إضافي وإيصال إضافي.

المصادر