الخلاصة

  • ألزمت RFC 3485 جميع تطبيقات SigComp الخاصة بـSIP/SDP بحالة ثابتة واحدة لا تتغير ومحددة على مستوى البايت، كي تتمكن الرسالة الأولى من الإشارة إليها.
  • كانت قوائم الكلمات في الملاحق تفسيرية، أما عقد التشغيل البيني فكان القيمة الثنائية المعيارية ومعرفها وطولها ومقاطع الوصول الدقيقة.

يعتمد الضغط عادة على شيء حدث من قبل. لا تملك الرسالة الأولى ترويسات سابقة ولا حالة مستخرجة من حوار سابق. لذلك وضعت RFC 3485 ماضياً مشتركاً في الطرفين قبل أن يتبادلا أي رسالة.

كان ثمن ذلك هو الثبات. يجب أن يتوافر القاموس الفريد في كل تطبيق SigComp لـSIP/SDP، ولا يتطور مع تطور SIP أو SDP. يُعرّف مرة ويبقى كما هو. وبذلك لا يحتاج المرسل، قبل أول إشارة، إلى اكتشاف إصدار القاموس لدى المستقبل.

لم يكن الاتفاق على أسماء متشابهة، بل على حالة SigComp محددة. ثبّت القسم الثالث المعرف الكامل والطول 0x12E4 والحد الأدنى للوصول وهو ستة بايتات والقيمة كلها. استخدم مثال STATE-ACCESS بادئة من ستة بايتات وفق قواعد المطابقة، لكنها تشير إلى الحالة الكاملة نفسها.

يحدد ذلك سلطة أجزاء الوثيقة. تسرد الملحقات A وB سلاسل SIP وSDP وأولوياتها وإزاحاتها وأطوالها ومصادرها، لكنها معلومات تفسيرية. التمثيل الثنائي في القسم الثالث هو المعياري. إذا أعاد تطبيقان ترتيب بايت واحد فلن يمتلكا الحالة نفسها ولو اتفقت الكلمات المقروءة.

تتكون القيمة من منطقة سلاسل ومنطقة جدول. تحتوي الأولى المواد كسلاسل فرعية، ويخزن الجدول طولاً من بايت واحد وإزاحة من بايتين لكل مدخل، مع إضافة 1024 للإزاحة حتى يصبح المرجع مباشراً عند تحميل الحالة في عنوان UDVM رقم 1024.

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

شكل الرسالة جزء من التطابق. السلاسل حساسة لحالة الأحرف، وكثير من الترويسات يتضمن CRLF السابق والنقطتين والمسافة المتوقعة. قد تكون رسالة SIP صحيحة مع مسافات بديلة لكنها تستفيد أقل. تشابه المعنى لا يساوي تطابق البايتات.

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

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

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

ولا يثبت فك الضغط صحة SIP/SDP أو هوية المرسل أو التسليم. تملك مقالة RFC 3320 حدود تنفيذ UDVM وتفويض الحالة الدائمة، وتملك RFC 3321 عمر الحالة الديناميكية، وتملك RFC 3322 حدود نموذج الأداء. أما RFC 3485 فتملك الذاكرة السابقة للحوار.

أضافت RFC 3486 طريقة إعلان SigComp في SIP، وشرحت RFC 4464 الاستخدام، واختبرت RFC 4465 الوصول، وأوضحت RFC 4896 البنية، وفرضت RFC 5049 الدعم. أنشأت RFC 5112 قاموساً آخر للحضور بدلاً من تعديل هذا القاموس سراً.

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

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

وفق طبقات الواقع لدى Heng Lu، يبدأ التدقيق بهاش الحالة الكاملة ومعرفها وطولها. ثم تحفظ بادئة المعرف وكل معاملات STATE-ACCESS ويُحل نطاق البايتات. بعد ذلك تُفحص آثار فك الضغط، ثم فقط تُضاف صلاحية البروتوكول والمصادقة والنقل ونتيجة الجلسة.

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

المصادر