Jingle هو إطار قياسي يستخدم في اتصالات الند للند. يسمح بتأسيس اتصال الوسائط المتعددة بين جهازي بروتوكول المراسلة والتوسع (XMPP). يتم التفاوض بين الاثنين عبر قناة XMPP ، بينما تستخدم الوسائط الفعلية قناة بيانات منفصلة ومخصصة تستخدم بروتوكول النقل في الوقت الحقيقي (RTP).
الغرض الرئيسي من Jingle هو تسهيل الاتصال باستخدام الصوت عبر بروتوكول الإنترنت وعقد مؤتمرات الفيديو. تم تصميمه بواسطة Google ومؤسسة XMPP Standards Foundation. [1] لا يُقصد به استبدال البروتوكولات الأخرى مثل بروتوكول بدء الجلسة (SIP) الذي يسمح بإجراء اتصالات صوتية أكثر عمومية ، كما أنه لا يدعم مجموعة كاملة من وظائف الاتصال الهاتفي مثل إعادة توجيه المكالمات وعمليات النقل وما إلى ذلك. ومع ذلك ، فقد تم تصميمه للعمل مع SIP بحيث يمكن لعملاء XMPP استخدام شبكات VoIP الحالية من مزود دولي متخصص في بيع VoIP مثل IDT.
حسنًا ، هذه فترة وجيزة من الماضي حول ما تقوم به Jingle وما تقوم به. إذا كنت لا تزال معنا وترغب في معرفة المزيد ، فاقرأ للحصول على مزيد من التفاصيل حول استخدام الإطار.
كيف يعمل جلجل
كما رأينا ، تسمح Jingle لزوجين من XMPP بإنشاء جلسة وسائط متعددة وصيانتها وإنهائها. تغطي الوسائط المتعددة في هذه الحالة الصوت والفيديو عمومًا. يحدث التفاوض بين الاثنين عبر XMPP بينما يحدث نقل الوسائط خارجها.
قبل أن نذهب أبعد من ذلك ، نحتاج إلى معرفة القليل عن XMPP. XMPP عبارة عن مجموعة من المعايير مفتوحة المصدر للرسائل الفورية والدردشة باستخدام الصوت والفيديو. لقد تم تصميمه بشكل أساسي لتوفير بديل مفتوح وغير مركزي لأنظمة المراسلة المغلقة والموجودة في وقت تقديمه.
مفتاح نجاح XMPP هو أن لديها بنية تحتية لا مركزية ، بنفس طريقة البريد الإلكتروني ، بحيث يمكن لأي شخص تشغيل خادم XMPP الخاص به والتحكم في اتصالاته الخاصة. يمكن أيضًا تشغيل XMPP بأمان ، بمعزل عن الشبكات العامة ، لتوفير اتصالات خاصة. يمكن تشغيل عدد من التقنيات باستخدام XMPP منها Jingle واحدة فقط.
عندما تريد بدء جلسة وسائط متعددة ، يرسل العميل الأول "البادئ" دعوة ، "عرض بدء الجلسة" إلى الثاني. يقر العميل الثاني "المستجيب" بذلك ويسأل المستخدم عما إذا كان يريد المتابعة - على الرغم من أنه يمكن تكوين العميل لقبول الطلبات من بادئين معينين تلقائيًا - في كلتا الحالتين يقبل المستجيب الجلسة من البادئ.
عند قبول الجلسة ، سوف يرد المستجيب بقائمة من برامج الترميز التي يمكنه قبولها. يقبل البادئ الاستجابة وسيقوم الاثنان بعد ذلك بالتفاوض حول برنامج الترميز الذي سيتم استخدامه لنقل الوسائط وسيبدأ جلسة وسائط.
في نهاية المكالمة ، يمكن لأي من الطرفين طلب إنهاء الجلسة ، بمجرد أن يعترف الطرف الآخر بذلك ، ثم يتم إسقاط الرابط بين الاثنين. بسيط.
إدارة الجلسة
لكي يعمل كل ذلك ، يجب على Jingle التحكم في تدفق الجلسة. عند إعداد الجلسة ، يجب على البادئ اكتشاف موارد XMPP المتاحة للمستجيب الأفضل للتطبيق وأي طريقة نقل يمكن استخدامها. ويمكنه أيضًا تحديد شرط أمان اختياريًا - مثل ارتباط مشفر - قبل السماح للعميلين بتبادل البيانات.
هناك درجة معينة من المرونة في جلسات Jingle بحيث بمجرد تنشيط الجلسة ، لا يلزم بالضرورة أن تظل ثابتة في تكوينها. يمكن تغيير الجلسات النشطة لتعديل المحتوى أو إزالته - الحفاظ على الصوت أثناء إيقاف الفيديو على سبيل المثال - أو تغيير بروتوكول النقل. يمكن لـ Jingle أيضًا إرسال رسائل معلومات بين العملاء.
يتوفر نوعان مختلفان من النقل تحت Jingle. يحتوي مخطط البيانات على مكونات تتبادل الحزم. يمكن أن تكون هذه بأي طول ويمكن استلامها بأي ترتيب. عند استخدام Datagram ، يتعين على النقل تحديد المكونات المطلوبة وكيفية استخدامها.
البديل يتدفق النقل؛ هذا تبادل تدفقات ثنائية الاتجاه أقرب إلى الطريقة التي ينظر إليها في TCP. يتم استلام الحزم على الدفق بالترتيب ويجب أن يكون لكل منها معرف سلسلة والحد الأقصى لطول الحزمة. يتم تحديد وسيلة النقل التي يجب استخدامها في بداية الجلسة.
حماية الأغنية
كما هو الحال مع أي خدمة عبر الإنترنت ، يعتبر الأمان اعتبارًا مهمًا عند استخدام Jingle. يعد استخدام شكل ما من أشكال أمان طبقة النقل بداية جيدة ، وكما رأينا ، يمكنك جعل بدء الجلسة مشروطًا بوجود هذا.
يمكن أن تكون Jingle عرضة لهجمات DDoS التي تقصف العملاء بالعديد من الطلبات ومن المهم التحذير من ذلك من خلال تكوين النظام لقبول الاتصالات من الكيانات المعروفة فقط. وبالمثل ، يمكنك تجنب اعتراض وإعادة توجيه المكالمات عن طريق ضمان تطابق معرفات الجلسة.
[1] https://xmpp.org