الخلاصة

  • يصنع الطرف الأمامي زوج إطارات يمثل 20 ملي ثانية. جمع عدة أزواج في حزمة واحدة يوفر الرؤوس، لكنه يجعل فقد حزمة واحدة يمحو مدة متصلة أطول من الأدلة التي يحتاجها محرك الكلام.
  • يثبت CRC ذو الأربع بتات سلامة محدودة لزوج وصل بالفعل، ويشير Null FP إلى نهاية يعلنها المرسل. لا يثبت أي منهما أن الأزواج السابقة وصلت، أو أن المحرك ابتلعها، أو أن التعرف نجح، أو أن التطبيق تصرف على نحو صحيح.

النهايات النظيفة مغرية تشغيليًا. عندما تظهر علامة ختامية صالحة، يسهل على النظام اعتبار ما قبلها مكتملًا وإغلاق الحالة. لكن RFC 3557 تتيح حالة أدق: قد تكون العلامة نفسها صحيحة، بينما تبقى فجوة داخل المقطع الذي يفترض أنها تنهيه.

نشرت RFC 3557 في يوليو 2003 بوصفها Proposed Standard، وهي تحدد حمولة RTP لميزات التعرف الموزع على الكلام وفق ETSI ES 201 108. لا تصف حادثة أو مزودًا أو نتيجة تعرف. أهميتها للحوكمة أنها تفصل بين ثلاثة أشياء غالبًا ما تدمجها السجلات: ما أرسله الطرف الأمامي، وما وصل عبر الشبكة، وما استخدمه المحرك.

كل زوج إطارات يحمل عشرين ملي ثانية من المعنى

ينتج الطرف الأمامي متجه ميزات مكمّمًا بطول 44 بت كل 10 ملي ثانية. يجمع متجهين متتاليين في Frame Pair أو FP يمثل 20 ملي ثانية من الكلام الأصلي. يضاف CRC من أربع بتات ثم أربع بتات حشو صفري، فيصبح الزوج 96 بت، أي 12 بايت.

يمكن لحمولة RTP أن تضم زوجًا واحدًا أو عدة أزواج متجاورة. يشير الطابع الزمني إلى لحظة أول عينة يمثلها الزوج الأول، ثم يتقدم بمقدار 160 أو 220 أو 320 عينة لكل زوج عند معدلات 8 أو 11 أو 16 كيلوهرتز.

تسمح هذه البنية للمستقبل بفحص حدود الأزواج والتحقق من CRC للأزواج التي وصلته. لكنها لا تسمح للـCRC بالشهادة لما لم يصل. فهو ليس مصادقة للمصدر، ولا كود استعادة، ولا إثباتًا بأن المحرك قبل الميزات.

لذلك يجب أن يحتفظ السجل بهوية الزوج وفترة الالتقاط ونتيجة CRC، وبهوية الحزمة ورقم تسلسل RTP والطابع الزمني وقائمة الأزواج والمدة الممثلة. وإلا تحولت عبارة «فقدنا حزمة» إلى وصف ناقص لا يبين طول الفراغ الدلالي.

التجميع يجعل الفجوة أطول

تقليل عدد الأزواج في الحزمة يحد من زمن الانتظار عند التجميع ويقلل المدة التي يزيلها فقد داتاغرام واحد. لكنه يزيد عدد رؤوس RTP وUDP وIP المرسلة لنفس مقدار الكلام.

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

لا يعني ذلك أن الحزم الصغيرة هي الحل في كل شبكة. قد يكون حمل الرؤوس مرتفعًا في وصلة محدودة. توصية الوثيقة مشروطة: قلل الأزواج ما تسمح به متطلبات الكفاءة، وانظر في ضغط الرؤوس بدل افتراض أن التجميع الكبير هو الطريق الوحيد.

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

maxptime يحدد سقف المدة المعرضة

يعبّر maxptime عن الحد الأقصى لمدة الوسائط في الحزمة، ويجب أن يكون مضاعفًا لمدة FP البالغة 20 ملي ثانية. إذا غاب، تفترض RFC 3557 قيمة 80 ملي ثانية. ويمكن اختيار قيمة أقصر عندما يتوقع المشارك نسبة فقد مرتفعة.

عند 80 ملي ثانية، يمكن وضع أربعة أزواج في الحمولة. مقارنة بحزمة مستقلة لكل زوج، يوفر ذلك ثلاثة رؤوس. وفي المقابل، يتيح لفقد واحد أن يزيل أربعة أزواج متتالية. القياسان صحيحان في الوقت نفسه.

لكن قيمة التفاوض ليست إيصال تنفيذ. وجود maxptime=80 لا يثبت التزام المرسل، ولا التسليم، ولا القبول داخل المحرك. يجب مقارنة القيمة المعلنة بالمدة الفعلية في كل حزمة وبخريطة الفقد التي رآها المستقبل.

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

يمكن لضغط الرؤوس أن يفصل الكفاءة عن التجميع

تشير الوثيقة إلى ضغط رؤوس IP/UDP/RTP في RFC 2508 وRFC 3095. وجود هذا الخيار يغير السؤال من «كم زوجًا يجب أن نحشر في الحزمة؟» إلى «هل يمكننا خفض كلفة الرأس من دون توسيع نافذة الفقد؟»

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

تقدم RFC 2198 سياقًا قريبًا عن التكرار في الصوت، لكن التكرار لا ينشأ تلقائيًا هنا. تجميع ميزات أولية أكثر لا ينشئ نسخة احتياطية؛ فقد الحزمة قد يزيل كامل النافذة المجمعة.

Null FP يعلن نهاية الإرسال فقط

تسمح RFC 3557 بالإرسال المتقطع. يرسل الطرف الأمامي أزواج الإطارات عندما يكتشف كلامًا. ويسمى الامتداد غير المنقطع المرسل إلى المحرك مقطع إرسال، ويمكن أن يحتوي إطارات كلام وغير كلام.

ينهي المرسل المقطع عندما تتجاوز إطارات عدم الكلام المتتالية عتبة hangover مضبوطة. تذكر الوثيقة 1.5 ثانية كقيمة نموذجية، لا كقاعدة عامة. بعد إرسال أزواج المقطع، ينبغي إرسال واحد أو أكثر من Null FP.

تكون حقول الميزات في Null FP أصفارًا، ويطبق عليه CRC والحشو المعتادان. معناه المحدود هو أن الطرف الأمامي يعتبر المقطع منتهيًا. لا يعيد تكوين حزمة سابقة، ولا يثبت أن المحرك أغلق المقطع نفسه.

لنتصور الترتيب دون اختراع حادثة: حزمة تحمل أربعة أزواج حقيقية لا تصل، ثم يصل Null FP التالي ويجتاز CRC. يملك المستقبل دليلًا قويًا على علامة النهاية، ودليلًا قويًا أيضًا على فجوة في التسلسل. تجاهل الدليل الثاني لأن الأول أنظف خطأ في نموذج الإثبات.

يجب فصل إيصالات اكتشاف الكلام، ونسخة عتبة hangover، وآخر FP حقيقي، ومحاولات Null FP، ووصول الشبكة، وتصنيف الفجوة، وقرار المحرك بالإغلاق. علامة النهاية قد تغلق ساعة المرسل، لكنها لا تغلق عدم اليقين.

التعرف والعمل يحدثان بعد النقل

على المحرك أن يعيد الترتيب، ويحدد الفجوات، ويفحص الأزواج الموجودة، ويقرر الإخفاء أو الرفض، ويحدد اكتمال المقطع. بعد ذلك فقط يمكن لإصدار محدد من النموذج أن ينتج فرضية وثقة وبدائل أو خطأ.

ثم يطبق مالك التطبيق سياسته. سجل استقبال RTP لا يثبت الابتلاع. قبول الميزات لا يثبت صحة التعرف. ناتج التعرف لا يمنح وحده تفويضًا لقرار مالي أو قرار وصول أو قرار متعلق بالسلامة.

سلسلة القول الدفاعية هي: أنتجت هذه الميزات؛ جمعت في هذه الأزواج؛ حملتها هذه الحزم؛ وصلت هذه الحزم؛ بقيت هذه الفجوة؛ ابتلع المحرك هذه السلسلة؛ أنتج هذا النموذج هذه الفرضية؛ سمحت هذه السياسة بهذا الفعل؛ وهذه كانت النتيجة المرصودة.

حدود الأدلة

لا يسمي هذا المقال مستخدمًا أو صوتًا أو لغة أو جهازًا أو محركًا أو نموذجًا أو موردًا أو مشغلًا أو خدمة أو حادثة أو نتيجة. ولا يدعي نسبة فقد أو درجة تعرف أو إعدادًا مثاليًا. مثال 80 ملي ثانية مشتق من القيمة الافتراضية ومدة FP، وليس تقرير إنتاج.

تحدد RFC 3550 وRFC 3551 سياق RTP. تمثل RFC 2327 سياق SDP وقت النشر، وتمثل RFC 8866 حالته اللاحقة. RFC 2508 وRFC 3095 بدائل ضغط مذكورة، وRFC 2198 سياق تكرار لا إثباتًا لوجوده في هذه الحمولة.

مقالتا Heng Lu عن Running-Code Primacy وMinimum Initial Specification عدستان تحريريتان معلنتان. تساعدان على فصل المواصفة عن السلوك الجاري، وعلى إبقاء النواة المشتركة صغيرة مع مسؤولية محلية قابلة للتدقيق. ليستا دليلًا على قصد مؤلفي RFC أو على واقعة تشغيلية.

النتيجة المحدودة: يمكن للتجميع أن يخفض كلفة الرؤوس ويوسع في الوقت نفسه الفجوة التي يصنعها فقد واحد. يمكن للحقول أن تحدد حدود الفجوة وعلامة النهاية، لكن الإيصالات اللاحقة وحدها تبين ما ابتلعه المحرك وما تعرف عليه وما فعله التطبيق.

المصادر