الخلاصة

  • أتاح RFC 3327 للوكلاء المختارين إضافة قيم Path أثناء REGISTER، ثم حفظ المسجّل المتجه المرتب مع العنوان العام وContact بعينها، واستخدمه وكيل المجال الأصلي لاحقا لتهيئة Route قبل إرسال الطلب.
  • لم يكن Path تاريخا شاملا للعبور: قد لا يضيف وكيل مرّ به REGISTER نفسه، وقد يضيف اسم عقدة أخرى، كما يستطيع المسجّل تحويل المتجه وتستطيع سياسة لاحقة ضم مسارات أخرى إليه.

معرفة الموقع لم تكن خطة للتسليم

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

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

أدخل Path الجواب الثاني في نموذج التسجيل. يستطيع الوكيل الذي يعالج REGISTER إضافة URI يريد أن تمر به الطلبات المستقبلية المتجهة إلى الجهاز. تكوّن القيم المتتابعة متجها مرتبا. يحفظ المسجّل المتجه مع عنوان السجل وContact المحددة، ثم يعكس القيم المقبولة في الاستجابة الناجحة. عندما يختار وكيل المجال الأصلي جهة الاتصال لاحقا، يحمّل المتجه مسبقا في مجموعة Route ثم يتابع الإرسال.

كان ربط الحالة بجهة اتصال بعينها ضروريا. قد يسجل العنوان العام نفسه هاتفا وحاسوبا وبوابة، ولكل واحد طريق وصول مختلف. لا يجوز أن يصبح Path الهاتف طريق الحاسوب. قد يبدّل تحديث قادم من حافة أخرى المتجه، وينبغي أن ينتهي عمره بانتهاء الربط. فصل الأعمار يسمح لمسار قديم أو خاص بجهاز آخر بأن يحكم وجهة جديدة.

يعالج RFC 3263 مرحلة أخرى هي اكتشاف خوادم SIP في نطاق ما عبر DNS. العثور على مدخل الخدمة لا يصف السلسلة المؤقتة من المجال الأصلي إلى Contact مسجلة بعينها. بدأ Path حيث انتهى اكتشاف الخدمة، وحفظ معلومة مرتبطة بالربط لا بالنطاق كله.

الاسم Path لم يجعله أثرا حرفيا

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

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

لهذا ينبغي حفظ أربعة إيصالات منفصلة: مسار REGISTER المرصود، ومتجه Path المعلن، والنسخة التي قبلها المسجّل أو حوّلها وخزنها، وRoute التي تحققت فعلا في طلب لاحق. الاختلاف بين هذه المراحل دليل على سياسة أو خطأ أو إساءة؛ وليس ضوضاء ينبغي محوها لبناء قصة مبسطة.

تعمل Via داخل المعاملة كي تعود الاستجابات في سلسلة صحيحة. ويبني Record-Route مجموعة الطريق للحوار الذي يجري إنشاؤه. أما Path فيتعلم أثناء التسجيل من أجل حوارات لم تبدأ بعد. ويعمل Service-Route في RFC 3608 في الاتجاه الآخر: يخبر وكيل المستخدم كيف يرسل طلبات الخدمة الصادرة مستقبلا، بينما يخبر Path الجانب الأصلي كيف يرسل إلى الداخل نحو Contact. تشابه الأسماء لا يوحد الزمن أو السلطة أو الاتجاه.

الانعكاس أتاح الفحص ولم يمنح التصديق

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

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

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

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

طورت المواصفات اللاحقة البيئة المحيطة

نُشر RFC 3327 في ديسمبر 2002، ثم حدّثه RFC 5626. نظم SIP Outbound التدفقات التي تحافظ عليها الأجهزة الواقعة وراء حدود الشبكة، ودور وكلاء الحافة في إبقاء طريق صالح. حسّن ذلك العلاقة بين التسجيل والتدفق والتوجيه، لكنه لم يحول Path إلى سجل جنائي كامل.

عرّف RFC 5627 عناوين GRUU لتمييز نسخة وكيل مستخدم قابلة للتوجيه. وعرّف RFC 3680 إشعارات أحداث التسجيل. وحدد RFC 5922 شهادات نطاق SIP. ويسجل سجل IANA لمعاملات SIP أسماء الحقول والخيارات المعيارية. تثبت هذه المصادر العقود والتطور الوثائقي؛ ولا تثبت الانتشار أو التطبيق أو التوافر أو الثقة الحالية.

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

المصادر