الخلاصة

  • كان comp=sigcomp يتبع العنصر الذي يحكم الخطوة التالية: عنوان URI لطلب نحو القفزة التالية، وأعلى Via للاستجابة، وContact أو Record-Route لحركة لاحقة.
  • عبّرت العلامة عن الدعم والاستعداد الحالي لاستقبال رسالة مضغوطة. ولم تثبت الضغط الفعلي أو تحليل SIP أو التسليم أو المصادقة أو نجاح الجلسة.

تكشف RFC 3486 حدودها من خلال سؤال بسيط: أين ظهرت العلامة؟ إذا ظهرت في عنوان SIP أو SIPS، فهي تتحدث عن الطلب المتجه إلى المستقبِل التالي. وإذا ظهرت في أعلى Via، فهي تتحدث عن الاستجابة العائدة. وإذا ظهرت في Contact أو Record-Route، فهي تؤثر في رسائل مستقبلية. النص واحد، لكن سلطته تتحرك مع الموضع والاتجاه.

كان السبب مشكلة تضاعف الخيارات. استخدم SIP سجلات NAPTR وSRV لاختيار UDP أو TCP أو SCTP. ولو أضيف إلى DNS سجل لكل تركيب من النقل وTLS والضغط، لتكاثرت التركيبات بسرعة. نقلت RFC 3486 الإشارة إلى طبقة SIP. وأصبح ممكناً استقبال الرسائل العادية ورسائل SigComp على المنفذ نفسه، مع التمييز بواسطة بتات cookie في بداية الرسالة المضغوطة.

حملت الصيغة القصيرة comp=sigcomp معنيين معاً: أن الكيان يدعم SigComp، وأنه مستعد في ذلك الوقت لاستقبال رسائل مضغوطة. المعنى الثاني يمنع تحويل القدرة المثبتة إلى التزام دائم. قد يملك المستقبِل الميزة لكنه لا يعلن الرغبة في استخدامها لمسار بعينه.

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

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

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

يوضح مثال RFC أن الحوار لا يملك حالة ضغط واحدة. تشارك أربعة عناصر، ويدعم أكثر من عنصر SigComp، لكن الرسائل 1 و6 و7 وحدها مضغوطة. يستقبل وكيل INVITE مضغوطاً ثم يرسله عادياً. وتعبر الاستجابة وصلة بلا ضغط ثم وصلة مضغوطة. ويتغير النمط مرة أخرى مع ACK. عبارة «الحوار مضغوط» تمحو هذه الوقائع.

لم يلغ Double Record-Routing التباين. فالوكيل الواقع بين شبكتين قد يضيف إدخالين يمثلان واجهتين ويتجنب إعادة الكتابة، مع استقبال ضغط من جهة ورسائل عادية من الأخرى. وإذا كانت القفزة التالية هي الوكيل نفسه ولا إرسال عبر الشبكة، جاز له ترك الضغط رغم وجود العلامة.

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

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

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

ثبّت سجل IANA المفردات ولم يثبت الانتشار. عرّفت RFC 3320 بنية SigComp، وثبّتت RFC 3485 قاموس SIP/SDP، ثم حدّثت RFC 5049 تطبيق SigComp على SIP وأضافت الحدود الدنيا للموارد والمقصورات وإدارة الحالة. وتناولت RFC 4077 وRFC 4896 وRFC 5112 وRFC 5626 حدوداً أخرى. لا يساوي أي تسجيل قياساً لشبكة تشغيلية.

يبدأ التحقيق بحفظ عنوان القفزة التالية، وأعلى Via، وContact وRoute وRecord-Route، والاتجاه، وسلامة العلامة، والبايتات الفعلية، والنقل والاتصال. ويُفصل اكتشاف OPTIONS عن الاستخدام اللاحق، كما تُفصل المهلة وإعادة الطلب والاتصال الجديد. بعد ذلك فقط تُربط نتائج فك الضغط وتحليل SIP والمصادقة والحوار.

تنسجم هذه البنية مع منهج Heng Lu: التصريح لا يصبح نتيجة لمجرد انتقاله بين الطبقات. أنجزت RFC 3486 آلية دقيقة لتجنب تضخم تركيبات DNS، لكنها لم تخترع حقيقة شاملة. كانت سلطة العلامة تنتهي دائماً عند القفزة التالية.

المصادر