بروتوكول وصف الجلسة
بروتوكول وصف الجلسة ( SDP ) هو صيغة لوصف جلسات الاتصال متعددة الوسائط لأغراض الإعلان والدعوة. [ 1 ] يُستخدم بشكل أساسي لدعم تطبيقات بث الوسائط ، مثل الصوت عبر بروتوكول الإنترنت (VoIP) ومؤتمرات الفيديو . لا يُرسل بروتوكول SDP أي تدفقات وسائط بنفسه، ولكنه يُستخدم بين نقاط النهاية للتفاوض على مقاييس الشبكة وأنواع الوسائط والخصائص الأخرى ذات الصلة. تُسمى مجموعة الخصائص والمعلمات بملف تعريف الجلسة .
يتميز بروتوكول وصف الجلسة (SDP) بقابليته للتوسيع لدعم أنواع وتنسيقات الوسائط الجديدة. كان SDP في الأصل مكونًا من بروتوكول إعلان الجلسة (SAP)، [ 2 ] ولكنه وجد استخدامات أخرى بالاقتران مع بروتوكول النقل في الوقت الحقيقي (RTP)، وبروتوكول البث في الوقت الحقيقي (RTSP)، وبروتوكول بدء الجلسة (SIP)، وكبروتوكول مستقل لوصف جلسات البث المتعدد .
نشرت فرقة عمل هندسة الإنترنت (IETF) المواصفات الأصلية كمعيار مقترح في أبريل 1998 (RFC 2327). [ 3 ] وصدرت مواصفات منقحة في عام 2006 (RFC 4566)، [ 1 ] وفي عام 2021 (RFC 8866). [ 4 ]
وصف الجلسة
يصف بروتوكول وصف الجلسة الجلسة على أنها مجموعة من الحقول بتنسيق نصي، حقل واحد في كل سطر. [ ملاحظة 1 ] يكون شكل كل حقل كما يلي.
<character>=<value><CR><LF>
حيث <character>يُمثل حرفًا واحدًا حساسًا لحالة الأحرف، بينما <value>يُمثل نصًا مُهيكلًا بتنسيق يعتمد على الحرف. عادةً ما تكون القيم مُشفرة بنظام UTF-8 . [ ملاحظة 2 ] لا يُسمح بوجود مسافات بيضاء مباشرةً على جانبي علامة المساواة. [ 1 ] : القسم 5
تتألف أوصاف الجلسات من ثلاثة أقسام: وصف الجلسة، ووصف التوقيت، ووصف الوسائط. قد يحتوي كل وصف على عدة أوصاف للتوقيت والوسائط. الأسماء فريدة فقط ضمن البنية النحوية المرتبطة بها. [ 5 ]
يجب أن تظهر الحقول بالترتيب الموضح؛ الحقول الاختيارية مميزة بعلامة النجمة (*):
- وصف الجلسة
v= (رقم إصدار البروتوكول، حاليًا 0 فقط) o= (معرف المنشئ ومعرف الجلسة: اسم المستخدم، المعرف، رقم الإصدار، عنوان الشبكة) s= (اسم الجلسة: إلزامي ويتضمن حرفًا واحدًا على الأقل مشفرًا بنظام UTF-8) i=* (عنوان الجلسة أو معلومات مختصرة) u=* (URI الوصف) e=* (صفر أو أكثر من عناوين البريد الإلكتروني مع اسم جهات الاتصال الاختياري) p=* (رقم هاتف واحد أو أكثر مع اسم جهة الاتصال اختياري) c=* (معلومات الاتصال - غير مطلوبة إذا كانت مضمنة في جميع الوسائط) b=* (صفر أو أكثر من خطوط معلومات عرض النطاق الترددي) وصف زمني واحد أو أكثر ("t=" و"r="؛ انظر أدناه ) z=* (تعديلات المنطقة الزمنية) k=* (مفتاح التشفير) a=* (صفر أو أكثر من أسطر سمات الجلسة) وصف واحد أو أكثر للوسائط (يبدأ كل منها بسطر "m="؛ انظر أدناه )- وصف الوقت (إلزامي)
t = (مدة نشاط الجلسة) r=* (صفر أو أكثر من مرات التكرار)
- وصف الوسائط (اختياري)
m= (اسم الوسائط وعنوان النقل) i=* (عنوان الوسائط أو حقل المعلومات) c=* (معلومات الاتصال - اختياري إذا تم تضمينها على مستوى الجلسة) b=* (صفر أو أكثر من خطوط معلومات عرض النطاق الترددي) k=* (مفتاح التشفير) a=* (صفر أو أكثر من أسطر سمات الوسائط - تجاوز أسطر سمات الجلسة)
فيما يلي نموذج لوصف جلسة من RFC 4566. أنشأ هذه الجلسة المستخدم "jdoe" على عنوان IPv4 10.47.16.5. اسمها "SDP Seminar"، وتتضمن معلومات موسعة ("ندوة حول بروتوكول وصف الجلسة")، بالإضافة إلى رابط لمعلومات إضافية وعنوان بريد إلكتروني للتواصل مع المسؤولة، جين دو. حُددت مدة هذه الجلسة بساعتين باستخدام طوابع NTP الزمنية، مع عنوان اتصال (يشير إلى العنوان الذي يجب على العملاء الاتصال به أو الاشتراك فيه - عند توفير عنوان بث متعدد، كما هو الحال هنا) وهو IPv4 224.2.17.12 بقيمة TTL تساوي 127. يُطلب من مستلمي وصف هذه الجلسة استقبال الوسائط فقط. يتوفر وصفان للوسائط، كلاهما يستخدم ملف تعريف الصوت والفيديو RTP. الأول هو بث صوتي على المنفذ 49170 باستخدام حمولة RTP/AVP من النوع 0 (المُعرّف في RFC 3551 باسم PCMU )، والثاني هو بث فيديو على المنفذ 51372 باستخدام حمولة RTP/AVP من النوع 99 (المُعرّف باسم "ديناميكي"). وأخيرًا، تتضمن الحزمة سمة تربط حمولة RTP/AVP من النوع 99 بتنسيق h263-1998 بتردد ساعة 90 كيلوهرتز. وتُعتبر منافذ RTCP لبثي الصوت والفيديو على المنفذين 49171 و51373 ضمنية.
v=0 o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5 s=ندوة برنامج التنمية الاجتماعية i= ندوة حول بروتوكول وصف الجلسة u= http://www.example.com/seminars/sdp.pdf e=j.doe@example.com (جين دو) c=IN IP4 224.2.17.12/127 t=2873397496 2873404696 أ = استقبال فقط m=audio 49170 RTP/AVP 0 m=video 51372 RTP/AVP 99 a=rtpmap:99 h263-1998/90000
مواصفات بروتوكول وصف الجلسة (SDP) هي مجرد صيغة لوصف الجلسة. وهي مصممة ليتم توزيعها عبر بروتوكولات نقل مختلفة حسب الحاجة، بما في ذلك SAP و SIP و RTSP . ويمكن أيضًا إرسال بروتوكول وصف الجلسة عبر البريد الإلكتروني أو كحمولة HTTP.
صفات
يستخدم بروتوكول وصف الجلسة (SDP) السمات لتوسيع نطاق البروتوكول الأساسي. يمكن أن تظهر السمات ضمن قسمي الجلسة أو الوسائط، ويتم تحديد نطاقها وفقًا لذلك على مستوى الجلسة أو مستوى الوسائط . تُضاف سمات جديدة إلى المعيار من حين لآخر من خلال التسجيل لدى هيئة تخصيص أرقام الإنترنت (IANA). [ 6 ]
السمات إما خصائص أو قيم:
- الخاصية: a= flag تنقل خاصية منطقية للوسائط أو الجلسة.
- القيمة: a = السمة : القيمة توفر معلمة مسماة.
تم تحديد اثنتين من هذه السمات بشكل خاص:
- يُستخدم a=charset: encoding في قسمي الجلسة أو الوسائط لتحديد ترميز أحرف مختلف (كما هو مسجل في سجل IANA [ 7 ] ) عن القيمة الافتراضية الموصى بها ( UTF-8 ) لمفاتيح البروتوكول القياسية. تحتوي هذه القيم على نص يُراد عرضه للمستخدم.
- يُستخدم الرمز a=sdplang لتحديد لغة النص. يمكن تضمين نص بديل بلغات متعددة في الجلسة، ويتم اختياره تلقائيًا بواسطة برنامج التصفح وفقًا لتفضيلات المستخدم.
في كلتا الحالتين، يتم تفسير حقول النص التي يُقصد عرضها للمستخدم على أنها سلاسل مبهمة، ولكن يتم عرضها للمستخدم أو التطبيق بالقيم المشار إليها في آخر ظهور للحقول charset و sdplang في قسم الوسائط الحالي، أو آخر قيمة لها في قسم الجلسة.
المعاملات v و s و o إلزامية، ويجب ألا تكون فارغة، ويجب أن تكون مشفرة بنظام UTF-8. تُستخدم هذه المعاملات كمعرفات، ولا يُقصد عرضها للمستخدمين.
توجد أيضًا بعض السمات الأخرى في المثال، إما كسمة على مستوى الجلسة (مثل السمة في شكل الخاصية a=recvonly )، [ ملاحظة 3 ] أو كسمة على مستوى الوسائط (مثل السمة في شكل القيمة a=rtpmap:99 h263-1998/90000 للفيديو في المثال).
تنسيقات الوقت والتكرارات
تُمثَّل الأوقات المطلقة بتنسيق بروتوكول وقت الشبكة (NTP) (عدد الثواني منذ عام 1900). إذا كان وقت التوقف صفرًا، فإن الجلسة غير محدودة . وإذا كان وقت البدء صفرًا أيضًا، تُعتبر الجلسة دائمة . يُنصح بتجنب الجلسات غير المحدودة والدائمة، ولكن لا يُحظر استخدامها. يمكن تمثيل الفترات الزمنية باستخدام أوقات NTP أو بتنسيق الوقت المكتوب: قيمة متبوعة بوحدات زمنية (أيام: d ، ساعات: h ، دقائق: m ، ثواني: s ).
وبالتالي، يمكن تمثيل اجتماع لمدة ساعة ابتداءً من الساعة 10 صباحًا بالتوقيت العالمي المنسق في 1 أغسطس 2010، مع تكرار واحد بعد أسبوع في نفس الوقت، على النحو التالي:
t= 1280656800 1281265200 r=604800 3600 0
أو باستخدام الوقت المكتوب:
t= 1280656800 1281265200 r=7d 1h 0
عند تحديد أوقات التكرار، قد يلزم تعديل وقت بدء كل تكرار للتعويض عن تغييرات التوقيت الصيفي بحيث يحدث في نفس التوقيت المحلي في منطقة زمنية محددة طوال الفترة بين وقت البدء ووقت الانتهاء.
بدلاً من تحديد هذه المنطقة الزمنية ودعم قاعدة بيانات للمناطق الزمنية لمعرفة متى وأين ستكون هناك حاجة لتعديلات التوقيت الصيفي، يُفترض أن أوقات التكرار مُحددة جميعها ضمن نفس المنطقة الزمنية، ويدعم بروتوكول SDP الإشارة إلى أوقات NTP المطلقة عند الحاجة إلى تطبيق إزاحة التوقيت الصيفي (معبرًا عنها بالثواني أو باستخدام نوع الوقت) على وقت بدء التكرار أو وقت انتهائه الذي يقع عند أو بعد كل تعديل للتوقيت الصيفي. جميع هذه الإزاحات نسبية إلى وقت البدء، وليست تراكمية. يدعم NTP ذلك من خلال الحقل z ، الذي يُشير إلى سلسلة من الأزواج، حيث يُمثل العنصر الأول وقت NTP المطلق الذي سيحدث فيه تعديل التوقيت الصيفي، ويُشير العنصر الثاني إلى الإزاحة المراد تطبيقها بالنسبة إلى الأوقات المطلقة المحسوبة باستخدام الحقل r .
على سبيل المثال، إذا كان تعديل التوقيت الصيفي سيطرح ساعة واحدة في 31 أكتوبر 2010 الساعة 3 صباحًا بالتوقيت العالمي المنسق (أي 60 يومًا ناقص 7 ساعات بعد وقت البدء يوم الأحد 1 أغسطس 2010 الساعة 10 صباحًا بالتوقيت العالمي المنسق)، وكان هذا هو تعديل التوقيت الصيفي الوحيد الذي سيتم تطبيقه في الفترة المجدولة التي ستحدث بين 1 أغسطس 2010 وحتى 28 نوفمبر 2010 الساعة 10 صباحًا بالتوقيت العالمي المنسق (وقت توقف الجلسة المتكررة لمدة ساعة واحدة والتي تتكرر كل أسبوع في نفس التوقيت المحلي، والذي يحدث بعد 88 يومًا)، فيمكن تحديد ذلك على النحو التالي:
t= 1280656800 1290938400 r=7d 1h 0 z= 1288494000 -1h
إذا تكررت الجلسة الأسبوعية التي مدتها ساعة واحدة كل يوم أحد لمدة عام كامل، أي من الأحد 1 أغسطس 2010 الساعة 3 صباحًا بالتوقيت العالمي المنسق إلى الأحد 26 يونيو 2011 الساعة 4 صباحًا بالتوقيت العالمي المنسق (وقت توقف التكرار الأخير، أي بعد 360 يومًا وساعة واحدة، أو بعد 31107600 ثانية)، بحيث يشمل ذلك الانتقال إلى التوقيت الصيفي يوم الأحد 27 مارس 2011 الساعة 2 صباحًا (تضاف ساعة واحدة مرة أخرى إلى التوقيت المحلي بحيث يحدث الانتقال الثاني إلى التوقيت الصيفي بعد 209 أيام من وقت البدء الأول):
t= 1280656800 1290938400 r=7d 1h 0 ض= 1288494000 -1ح 1269655200 0
بما أنه لا ينبغي إصدار إعلانات SDP للجلسات المتكررة لتغطية فترات طويلة جدًا تتجاوز بضع سنوات، فإن عدد تعديلات ضوء النهار التي يجب تضمينها في المعلمة z= يجب أن يظل صغيرًا.
يمكن تكرار الجلسات بشكل غير منتظم على مدار الأسبوع، ولكن يتم جدولتها بنفس الطريقة لجميع أسابيع تلك الفترة، وذلك بإضافة المزيد من الصفوف في المعامل r . على سبيل المثال، لجدولة نفس الحدث يوم السبت أيضًا (في نفس الوقت من اليوم)، يمكنك استخدام ما يلي:
t= 1280656800 1290938400 r=7d 1h 0 6d ض= 1288494000 -1ح 1269655200 0
لا يدعم بروتوكول SDP تكرار الجلسات الشهرية والسنوية بجداول زمنية بسيطة كهذه، لأنها متباعدة بشكل غير منتظم في الوقت؛ بدلاً من ذلك، يمكن توفير مجموعات t / r إضافية لكل شهر أو سنة.
ملحوظات
- ↑ يتم إنهاء الأسطر بواسطة حرف إرجاع السطر وحرف تغذية السطر ، ولكن قد تخفف التطبيقات من هذا عن طريق حذف حرف إرجاع السطر.
- ↑ تخضع معلومات الجلسة وقيماسم الجلسة للترميز المحدد في أي سمة من سمات مجموعة الأحرف الخاصة بالقسم.
- ↑ تنطبق هذه السمة على مستوى الجلسة أيضًا على الوسائط الموصوفة ما لم يتم تجاوز القيمة بواسطة سمة على مستوى الوسائط.
مراجع
- هاندلي ، مارك؛ فان جاكوبسون؛ كولين بيركنز (يوليو 2006). بروتوكول وصف الجلسة (SDP) . IETF . doi : 10.17487 / RFC4566 . RFC 4566 .
- ↑ سالكينتزيس، أبوستوليس ك. (2004). الإنترنت عبر الهاتف المحمول: التقنيات والخدمات المُمكّنة . مطبعة سي آر سي. ص 11: 24-25. ISBN 0849316316تم الاطلاع عليه بتاريخ 11 يوليو 2019 .
- ↑ هاندلي، مارك؛ فان جاكوبسون (أبريل 1998). بروتوكول وصف الجلسة (SDP) . IETF . doi : 10.17487/RFC2327 . RFC 2327 .
- ↑ بيجن، علي؛ مارك هاندلي؛ ب. كيفيزات؛ كولين بيركنز (يناير 2021). بروتوكول وصف الجلسة (SDP) . IETF . doi : 10.17487/RFC8866 . RFC 8866 .
- ↑ نظرة عامة معمقة على SDP مؤرشفة بتاريخ 13 يوليو 2011 على موقع Wayback Machine
- ↑ "سجل معلمات بروتوكول وصف الجلسة" . هيئة أرقام الإنترنت المخصصة . تم الاطلاع عليه بتاريخ 15 يناير 2021 .
- ↑ "سجل ترميزات مجموعات الأحرف، على موقع هيئة الأرقام المخصصة للإنترنت" .
روابط خارجية
- روزنبرغ، ج.؛ شولزراين، هـ. (يونيو 2002). نموذج العرض/الاستجابة مع بروتوكول وصف الجلسة . IETF . doi : 10.17487/RFC3264 . RFC 3264 .
- معايير الإنترنت
- طلبات مواصفات جافا
- بروتوكولات VoIP
