الخلاصة
- حوّل RFC 3388 أسطر الوسائط في SDP إلى عقد ذات أسماء ضمن علاقات قابلة للتنفيذ، لكنه أسقط كل التجميع إذا غابت هوية سطر واحد أو تغيرت أثناء التفاوض.
- لأن علاقة FID قد تنشئ نسخاً من الوسائط إلى وجهات متعددة، كانت سلامة الإشارة واكتمال فضاء الأسماء شرطين للسلطة لا مجرد تحسينين في الوصف.
لنفترض أن وصف الجلسة يربط ثلاثة مقاصد بعلاقة FID. يبدّل مهاجم تسمية واحدة أو يضيفها إلى المجموعة. إذا نفذ الطرف العلاقة كما وصلت، فقد يرسل نسخة من الصوت أو الفيديو إلى عنوان لم يكن ضمن العلاقة الأصلية. لا يحتاج الهجوم إلى إفساد الحزمة الإعلامية نفسها؛ يكفيه تعديل الارتباط الذي يقرر أين تُنسخ.
لهذا حذر القسم الأمني في RFC 3388 من أن تغيير معلومات التجميع قد يجبر المشاركين على إرسال الوسائط إلى وجهة اعتباطية. كانت حماية سلامة وصف الجلسة حمايةً لقرار توجيه فعلي، لا مجرد ضمان أن النص لم يتغير.
صدر RFC 3388 في ديسمبر 2002 ضمن Standards Track لمعالجة قيد في Session Description Protocol. كان SDP يستطيع تعداد عدة أسطر m= للصوت والفيديو وتطبيقات أخرى، لكنه لم يكن يملك طريقة معيارية ليقول إن خطين يجب تشغيلهما بتزامن أو إن عدة جلسات RTP تمثل وسيطاً منطقياً واحداً.
أضاف الامتداد مفتاحاً وعلاقة. يمنح a=mid على مستوى الوسيط كل سطر تسمية فريدة داخل وصف الجلسة. ويسرد a=group على مستوى الجلسة تلك التسميات تحت دلالة مسجلة. عرّف النص أولاً LS لمزامنة التشغيل وFID لتعريف تدفق واحد عبر جلسات متعددة.
لم تكن LS تعليقاً للواجهة. كانت تطلب من التطبيق استعادة العلاقة الزمنية الأصلية بين الوسائط وتشغيلها بتزامن. في RTP يمكن لمعلومات RTCP ربط طوابع زمنية مختلفة بساعة مشتركة، أما النقل الآخر فيحتاج آلية أخرى. المجموعة تحدد الالتزام، لكنها لا توفر قياسات الساعة ولا تثبت أن المستخدم رأى الصورة والصوت متطابقين.
أما FID فكانت تمس الوجهة مباشرة. قد يحتاج طرف خلوي إلى منافذ مختلفة لأن كل codec يعمل فوق bearer إذاعي مختلف. وقد تستقبل آلة الصوت بينما يستقبل خادم تطبيق أحداث DTMF. إذا دعم أكثر من عضو الـcodec المستخدم، فعلى المرسل أن يبعث نسخاً إلى جلسات RTP المعنية.
صار الانتماء بذلك أمراً تنفيذياً. وعندما يكون أثر العلاقة إرسال نسخة إضافية، لا يجوز استنتاج العضوية من شبه بصري أو اسم ناقص. فرض RFC أن تكون كل قيمة mid فريدة. وإذا أشار سطر مجموعة إلى اسم غير موجود، وجب تجاهل سطر المجموعة كله كما لو أنه لم يرد.
كانت قاعدة الاكتمال أشد دلالة. إذا استعمل الوصف التجميع في أي مكان، وجب أن يحمل كل سطر وسائط mid، حتى إن لم يظهر في مجموعة معينة. سطر بلا اسم قد يكون مستقلاً حقاً، لكنه قد يكون أيضاً نتيجة بتر أو خطأ في المولد أو ضياع مفتاح علاقة. لا يملك المستقبل دليلاً يفرق بين هذه الحالات.
لذلك كانت تسمية واحدة مفقودة تبطل كل التجميع. لا تختفي أسطر الوسائط الأساسية ولا تصبح عناوينها ومنافذها باطلة. الذي يسقط هو سلطة العلاقات المعلنة. يفضل النظام تشغيل الوسائط من دون علاقة على تنفيذ علاقة محتملة فوق مجموعة أسماء غير مكتملة.
أضاف offer/answer في SIP اختبار ثبات عبر الزمن. يطابق RFC 3264 أول سطر m= في العرض بأول سطر في الإجابة، والثاني بالثاني. لم يأت mid ليعيد ترتيب هذا التطابق. يجب أن تبقى تسمية الموضع نفسه ثابتة. وإذا تغيرت، يتجاهل التطبيق كل أسطر mid وgroup.
قد يبدو تبديل تسميتين خطأً سهلاً يمكن إصلاحه، لكن الإصلاح ينشئ سلطة لم يمنحها التفاوض. الاعتماد على التسميات يعيد تعريف الهوية التي ثبتها ترتيب الأسطر، والاعتماد على الترتيب مع حفظ المجموعة يبقي تناقضاً. أبقى RFC التفاوض الأساسي وأسقط الطبقة المتعارضة.
كانت الإجابة إيصال قبول للمجموعة. يستطيع المجيب الذي يفهم الدلالة إعادة المجموعة نفسها أو مجموعة فرعية منها. وإذا رفض سطر وسائط بوضع المنفذ صفراً، فلا يجوز أن يبقى mid الخاص به في المجموعة المعادة. العلاقة المستخدمة فعلاً هي ما ظهر في الإجابة، لا كل ما طلبه العارض.
ولا يستطيع المجيب بدء مجموعة جديدة في الإجابة. لا توجد بعد الإجابة رسالة تؤكد أن العارض قبل الاقتراح الجديد. عليه أن يرسل عرضاً لاحقاً. هذه ليست أولوية للطرف الذي بدأ أولاً؛ إنها مطالبة بمسار رسائل ينتج قبولاً إيجابياً قابلاً للملاحظة.
سمح التصميم بالتوافق مع الأطراف القديمة، لكنه لم يحول التوافق إلى دليل. لم يعرّف RFC رأس SIP من نوع Require. الطرف الذي لا يعرف group أو mid يتجاهلهما وفق قواعد SDP. قد يعامل أعضاء FID كتدفقات مستقلة أو يعمل كمزج أو يرفض الجلسة أو يدفع الطرف الآخر إلى محاولة أبسط. نجاح SIP لا يثبت تنفيذ العلاقة.
في النسخة الأصلية كان سطر الوسائط يستطيع المشاركة في مجموعات ذات دلالات مختلفة، لا في مجموعتين بالدلالة نفسها. جاء RFC 5888 لاحقاً ورفع هذا القيد بعد خبرة التنفيذ. بقي مبدأ الهوية المكتملة، بينما اتضح أن تضييق عدد العلاقات الشرعية ليس ضرورياً لحمايته.
توضح أولوية الكود العامل لدى Lu Heng الحد المناسب للمواصفة المشتركة. يمكن اختبار تفرد الأسماء واكتمال التغطية ووجود كل مرجع وثباته عبر مواضع العرض والإجابة وعضوية المجموعة المقبولة. ولا يلزم أن تفرض المواصفة بنية التطبيق الداخلية أو خوارزمية المزامنة أو طريقة استرجاع الساعة.
وتكمل المواصفة الأولية الدنيا الفكرة: ننسق مفتاح الربط والدلالة المسجلة وحدود القبول، ونترك القرار المستقبلي والتطبيق المحلي مفتوحين. السجل يساعد الأطراف على فهم الكلمة نفسها، لكنه لا يشهد بأن النسخ أو المزامنة حدثتا كما أراد المستخدم.
القيمة التاريخية في RFC 3388 أنه فصل صلاحية العناصر عن صلاحية العلاقات. قد تبقى كل أسطر الوسائط صالحة منفردة، لكن العلاقات لا تصبح آمرة إلا إذا كانت مجموعة الأسماء مكتملة ومسار القبول واضحاً وسلامة الإشارة محفوظة. أمام خطر إرسال المحتوى إلى الوجهة الخطأ، كان الامتناع عن التخمين وظيفة أمنية.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
