اجتياز باستخدام المرحلات حول NAT
بروتوكول TURN ( التجاوز باستخدام المرحلات حول NAT ) هو بروتوكول يُسهّل تجاوز مُترجمات عناوين الشبكة (NAT) أو جدران الحماية لتطبيقات الوسائط المتعددة. يُمكن استخدامه مع بروتوكول التحكم بالنقل (TCP) وبروتوكول بيانات المستخدم (UDP). وهو مفيدٌ للغاية للعملاء على الشبكات التي تُخفيها أجهزة NAT متناظرة . لا يُساعد TURN في تشغيل الخوادم على منافذ معروفة في الشبكة الخاصة عبر NAT؛ بل يدعم اتصال المستخدم خلف NAT بجهاز واحد فقط، كما هو الحال في الاتصالات الهاتفية، على سبيل المثال.
تم تحديد بروتوكول TURN بواسطة RFC 8656. تم توثيق مخطط URI الخاص ببروتوكول TURN في RFC 7065 .
مقدمة
تُعدّ ترجمة عناوين الشبكة (NAT) آليةً تُستخدم للتخفيف من مشكلة استنفاد عناوين IPv4 أثناء الانتقال إلى IPv6 ، إلا أنها تُعاني من قيودٍ عديدة. ولعلّ أبرز هذه القيود هو تعطل العديد من تطبيقات IP الحالية، وصعوبة نشر تطبيقات جديدة. [ 1 ] وقد وُضعت إرشاداتٌ تُبيّن كيفية بناء بروتوكولاتٍ "متوافقة مع NAT"، ولكنّ العديد من البروتوكولات لا يُمكن بناؤها وفقًا لهذه الإرشادات. ومن أمثلة هذه البروتوكولات تطبيقات الوسائط المتعددة ومشاركة الملفات.
توفر أداة اجتياز الجلسات لتقنية NAT (STUN) إحدى طرق اجتياز التطبيقات لشبكة NAT. تسمح STUN للعميل بالحصول على عنوان نقل ( عنوان IP ومنفذ) قد يكون مفيدًا لاستقبال الحزم من نظير. مع ذلك، قد لا تكون العناوين التي يتم الحصول عليها بواسطة STUN قابلة للاستخدام من قبل جميع النظراء، إذ يعتمد عمل هذه العناوين على الظروف الطوبولوجية للشبكة. لذا، لا يمكن لـ STUN وحدها أن توفر حلاً كاملاً لاجتياز NAT .
يتطلب الحل الكامل وسيلةً تمكّن العميل من الحصول على عنوان نقل يسمح له باستقبال الوسائط من أي نظير قادر على إرسال حزم البيانات إلى الإنترنت العام. ولا يمكن تحقيق ذلك إلا من خلال إعادة توجيه البيانات عبر خادم موجود على الإنترنت العام. يُعدّ بروتوكول TURN (Traversal Using Relays around NAT) بروتوكولاً يسمح للعميل بالحصول على عناوين IP ومنافذ من هذا الخادم.
على الرغم من أن بروتوكول TURN يوفر الاتصال للعميل في أغلب الأحيان، إلا أنه يستهلك موارد كثيرة من مزود خادم TURN. لذا، يُفضّل استخدام TURN كحل أخير فقط، مع تفضيل آليات أخرى (مثل STUN أو الاتصال المباشر) كلما أمكن. ولتحقيق ذلك، يمكن استخدام منهجية إنشاء الاتصال التفاعلي (ICE) لاكتشاف أفضل وسائل الاتصال.
بروتوكول
تبدأ العملية عندما يرغب جهاز عميل في الاتصال بجهاز نظير لإجراء معاملة بيانات، ولكنه يتعذر عليه ذلك بسبب وجود كل من العميل والنظير خلف جدار حماية NAT. إذا لم يكن استخدام STUN خيارًا متاحًا لأن أحد جداري الحماية NAT متماثل (وهو نوع من جدار الحماية NAT غير متوافق مع STUN)، فيجب استخدام TURN.
أولاً، يتصل العميل بخادم TURN عبر طلب "تخصيص". يطلب هذا الطلب من خادم TURN تخصيص بعض موارده للعميل لتمكينه من الاتصال بنظيره. إذا كان التخصيص ممكناً، يُخصص الخادم عنواناً للعميل لاستخدامه كعنوان وسيط، ويرسل إليه رد "تم التخصيص بنجاح"، والذي يتضمن "عنوان نقل وسيط مُخصص" موجود على خادم TURN.
ثانيًا، يرسل العميل طلب إنشاء أذونات إلى خادم TURN لإنشاء نظام للتحقق من الأذونات الخاصة باتصالات النظير بالخادم. بعبارة أخرى، عندما يتم الاتصال بالنظير ويرسل معلومات إلى خادم TURN ليتم نقلها إلى العميل، يستخدم خادم TURN الأذونات للتحقق من صحة اتصال النظير بخادم TURN.
بعد إنشاء الأذونات، يمتلك العميل خيارين لإرسال البيانات الفعلية: (1) استخدام آلية الإرسال، أو (2) حجز قناة باستخدام طلب ربط القناة. آلية الإرسال أبسط، لكنها تحتوي على ترويسة أكبر حجمًا (36 بايت)، مما قد يزيد بشكل ملحوظ من عرض النطاق الترددي في محادثة TURN المُرحّلة. في المقابل، طريقة ربط القناة أخف وزنًا: الترويسة 4 بايت فقط، لكنها تتطلب حجز قناة، الأمر الذي يستلزم تحديثًا دوريًا، بالإضافة إلى اعتبارات أخرى.
باستخدام أي من الطريقتين، الإرسال أو ربط القناة، يستقبل خادم TURN البيانات من العميل ويعيد توجيهها إلى النظير باستخدام حزم بيانات UDP، والتي تحتوي على عنوان المصدر "عنوان النقل المُعاد توجيهه المُخصص". يستقبل النظير البيانات ويرد، مستخدمًا أيضًا حزمة بيانات UDP كبروتوكول نقل، ويرسل حزمة بيانات UDP إلى عنوان إعادة التوجيه في خادم TURN.
يستقبل خادم TURN حزمة بيانات UDP الخاصة بالنظير، ويتحقق من الأذونات، وإذا كانت صالحة، فإنه يعيد توجيهها إلى العميل.
تتجاوز هذه العملية حتى تقنية NAT المتناظرة لأن كلاً من العميل والنظير يمكنهما على الأقل التحدث إلى خادم TURN، الذي خصص عنوان IP للترحيل من أجل الاتصال.
على الرغم من أن بروتوكول TURN أكثر قوة من بروتوكول STUN لأنه يساعد في تجاوز أنواع أكثر من جدران الحماية NAT، إلا أن اتصال TURN يمرر الاتصال بالكامل عبر الخادم، مما يتطلب نطاقًا تردديًا أكبر بكثير من بروتوكول STUN، الذي عادةً ما يحل عنوان IP العام فقط وينقل المعلومات إلى العميل والنظير لاستخدامها في الاتصال المباشر. لهذا السبب، يشترط بروتوكول ICE استخدام STUN كخيار أول، واستخدام TURN فقط عند التعامل مع جدران الحماية NAT المتناظرة أو في حالات أخرى لا يمكن فيها استخدام STUN.
انظر أيضاً
- مؤسسة الاتصال التفاعلي (ICE)
- أدوات اجتياز الجلسة لتقنية NAT (STUN)
مراجع
- ↑ ماثيوز، فيليب؛ روزنبرغ، جوناثان؛ ماهي، روهان (أبريل 2010). اجتياز الشبكة باستخدام المرحلات حول NAT (TURN): امتدادات المرحلات لأدوات اجتياز الجلسة لـ NAT (STUN) (تقرير). فريق عمل هندسة الإنترنت.
- بروتوكولات الإنترنت
- بروتوكولات الشبكة
- ترجمة عنوان الشبكة
- الصوت عبر بروتوكول الإنترنت
- بروتوكولات طبقة التطبيق
