سؤال

لقد قمت مؤخرا بفحص الكتاب "برمجة شبكة UNIX، المجلد.1" بواسطة ريتشاردز ستيفنز ووجدت أن هناك معيار طبقة نقل ثالثة إلى جانب TCP وUDP: SCTP.

ملخص:SCTP هو بروتوكول على مستوى النقل يعتمد على الرسائل مثل UDP، ولكنه موثوق مثل TCP.هنا أ مقدمة قصيرة من IBM DeveloperWorks.

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

لماذا SCTP غير معروف؟لماذا لا يستخدم كثيرا؟

هل كانت مفيدة؟

المحلول

في الواقع، يتم استخدام SCTP في الغالب في منطقة الاتصالات. تقليديا، تستخدم مفاتيح الاتصالات SS7 (نظام الإشارات رقم 7) إلى الترابط بين الكيانات المختلفة في شبكة الاتصالات. على سبيل المثال - قاعدة بيانات المشترك لمقدم الاتصالات (HLR)، مع رمز التبديل (ماجستير)، يتم توصيل المشترك أيضا (ماجستير).

تنتقل منطقة الاتصالات إلى سرعات أعلى وبيئة أكثر قابلية الوصول إليها. تتمثل إحدى هذه التغييرات في استبدال بروتوكول SS7 من قبل بروتوكول أكثر أناقة وسريع وسريع ومرن.

منطقة الاتصالات محافظة للغاية. تم استخدام شبكة SS7 هنا منذ عقود. إنها شبكة موثوقة ومغلقة. هذا يعني أن المستخدم العادي ليس لديه حق الوصول إليه.

شبكة IP، على النقيض من ذلك، مفتوحة وغير موثوقة، ولن تتحول الاتصالات إلى ذلك إذا لم تتناول الحمل على الأقل مقابض SS7. هذا هو السبب في أنه تم تطوير SCTP. يحاول:

  • لتقليد جميع مزايا شبكة SS7 المتراكمة على مدى العقود.
  • لإنشاء بروتوكول موجه نحو اتصال أفضل من TCP في السرعة والأمان والتكرار

أحدث إصدارات Linux لديها بالفعل دعم SCTP.

نصائح أخرى

لقد تم نشر SCTP في العديد من التطبيقات الآن، واجه مشكلة كبيرة مع دعم SCTP في أجهزة التوجيه المنزل المختلفة. أنها ببساطة لا تتعامل مع SCTP بشكل صحيح. أعتقد أن هذه مشكلة في الأداء (مواصفات بروتوكول SCTP) تتطلب تقويم المجموع الاختباري للحزم بأكملها والتي لمجرد إعادة حسابها وليس فقط للرؤوس).

مثل العديد من البروتوكولات الواعدة الأخرى SCTP ميتة بالأسف في الماء حتى يعمل D-Link و Netgear على إصلاح صناديق NAT المكسورة.

يتطلب SCTP المزيد من التصميم داخل التطبيق للحصول على أفضل استفادة منه.هناك خيارات أكثر من TCP، وجاءت واجهة برمجة التطبيقات الشبيهة بالمآخذ لاحقًا، وهي حديثة.ومع ذلك، أعتقد أن معظم الأشخاص الذين يأخذون الوقت الكافي لفهمه (والذين يعرفون عيوب TCP) يقدرونه - فهو بروتوكول مصمم جيدًا يعتمد على ما يقرب من 30 عامًا من المعرفة بـ TCP وUDP.

أحد الجوانب التي تتطلب بعض التفكير هو جانب التدفقات.توفر التدفقات (عادةً، أعتقد أنه يمكنك إيقاف تشغيلها) ضمانًا للطلب داخلها (يشبه إلى حد كبير اتصال TCP) ولكن يمكن أن يكون هناك تدفقات متعددة لكل اتصال SCTP.إذا كان من الممكن إرسال بيانات التطبيق الخاص بك عبر تدفقات متعددة، فإنك تتجنب حظر رأس الخط حيث يتضور جهاز الاستقبال جوعًا بسبب حزمة واحدة مضللة.يمكن إجراء محادثات مختلفة بشكل فعال عبر نفس الاتصال دون التأثير على بعضها البعض.

إضافة مفيدة أخرى هي دعم التوجيه المتعدد - يمكن أن يكون اتصال واحد عبر واجهات متعددة على كلا الطرفين ويتكيف مع حالات الفشل.يمكنك محاكاة هذا في TCP، ولكن في طبقة التطبيق.

الارتباط الصحيح لنبض القلب، وهو أول شيء ينفذه أي تطبيق يستخدم TCP للاتصالات غير العابرة، متاح مجانًا.

ملخصي الشخصي لـ SCTP هو أنه لا يفعل أي شيء لا يمكنك القيام به بطريقة أخرى (في TCP أو UDP) مع دعم كبير للتطبيقات.الشيء الذي يوفره هو القدرة على عدم الاضطرار إلى تنفيذ هذا الرمز (بشكل سيء) بنفسك.

لمعلوماتك، تم تفويض SCTP على أنه مدعوم لـ Diameter (cf RADIUS next gen).انظر RFC 3588

   Diameter clients MUST support either TCP or SCTP, while agents and
   servers MUST support both.  Future versions of this specification MAY
   mandate that clients support SCTP.

SCTP غير معروف للغاية وغير مستخدم / نشر الكثير لأنه:

  • منتظم: غير متكامل على نطاق واسع في مداخن TCP / IP (في عام 2013: لا يزال في عداد المفقودين أصلا في أحدث ماك OSX و Windows)
  • المكتبات: عدد قليل من الارتباطات عالية المستوى في لغات سهلة الاستخدام (إخلاء المسؤولية: أنا موافق PYSCTP., ، SCTP سهلة دعم المكدس لبثون)
  • NAT: لا تعبر NAT جيدا / على الإطلاق (أقل من 1٪ من أجهزة توجيه الإنترنت والمؤسسات التي تقوم بها NAT على SCTP).
  • الشعبية: لا يوجد تطبيق عام عام استخدامه
  • نموذج البرمجة: لقد تغير قليلا: إنه لا يزال مقبس، ولكن يمكنك توصيل العديد من المضيفين بالعديد من المضيفين (خلدي)، يتم طلب مخطط البيانات وموثوق بها، ERC ...
  • التعقيد: كومة SCTP معقدة لتنفيذ (بسبب أعلاه)
  • المنافسة: يتوافق TCP Multipath TCP ويجب أن يتناول الاحتياجات / القدرات متعددة المواطسة حتى يمتنع الناس عن تطبيق SCTP إذا كان ذلك ممكنا، في انتظار MTCP
  • مكانة: احتياجات ملء SCTP ممتلئ للغاية (أمرت مخططات مخططات موثوقة، والتعدد المتعددة) وليس هناك حاجة من خلال الكثير من التطبيقات
  • الأمن: يتهرب SCTP أدوات التحكم الأمنية (بعض جدران الحماية، معظم المعالم، كل DLPS، لا يظهر على Netstat باستثناء CentoS / Redhat / Fedora ...)
  • القدرة على التدقيق: شيء مثل 3 شركات في العالم القيام بمراجعة حسابات SCTP بشكل روتيني (إخلاء المسئولية: أعمل في أحدهم)
  • منحنى التعلم: ليس الكثير من مجموعة أدوات اللعب مع SCTP (تحقق من الممتاز withsctp. التي تجمع بشكل جيد مع netcat أو استخدام socat)
  • تحت الغطاء: يستخدم في الغالب في الاتصالات وفي كل مرة تقوم فيها بإرسال الرسائل القصيرة، وبدء تصفح الشبكة على هاتفك المحمول أو إجراء مكالمات هاتفية، وغالبا ما تؤدي الرسائل التي تدفق عبر SCTP (Sigtran / SS7 مع GSM / UMTS، القطر مع LTE / IMS / RCS، S1AP / X2AP مع LTE)، لذلك يمكنك فعلا استخدامها كثيرا ولكنك لا تعرف أبدا عن ذلك ؛-)

P1. يتطلب SCTP المعين مباشرة عبر IPv4 الدعم في بوابات NAT، والتي لم يتم نشرها على نطاق واسع في أي مكان، ودون أنها ستسمح بوابة NAT النموذجية فقط باستمرار مضيف خاص لكل عنوان عام لاستخدام SCTP في وقت واحد.

P2. يتيح SCTP المعين عبر UDP / IPv4 المزيد من المضيفين الخاصين لكل عنوان عام، لكن تعيينات UDP في بوابات IPv4 / NAT صعبة للغاية لإثبات والحفاظ عليها، بسبب حقيقة أن UDP هو نقل بدون اتصال دون أي حالة صريحة لتتبع NAT وبعد

P3. يتطلب SCTP المعين مباشرة عبر IPv6 ... حسنا ... IPv6. هل حاولت نشر IPv6؟ إذا كان الأمر كذلك، هل حاولت شراء جدار حماية IPv6؟ هل يدعم SCTP؟ ماذا عن موازن التحميل؟ مسرع SSL؟

P4. أخيرا، هناك الكثير من الإنترنت مقيد إلى حد كبير لما يمكن أن يصلح من خلال منفذ TCP 80 والمنفذ 443، لذلك تميل SCTP من أي نكهة إلى فقدان هناك. وبالتالي، فإنك ترى جهود مثل mptcp. الفريق العامل في IETF.

سوف يستخدم الكثير منا منا SCTP قريبا، حيث يتم استخدامه بواسطة Datachawnels Webrtc لإنشاء طبقة موثوقة تشبه TCP أعلى UDP - SCTP عبر DTLS عبر UDP: https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-13#section-6.

اقرأ ال SCTP ويكيبيديا صفحة أود أن أقول إن السبب الرئيسي هو أن SCTP هو بروتوكول شاب للغاية (مقترح عام 2000) غير معتمد حاليا من قبل OSS السائد (شبابيك, نظام التشغيل X., لينكس).

إذا كان "الشباب جدا" يبدو غير مناسب لك، فكر في IPv6.: "في ديسمبر 2008، على الرغم من بمناسبة الذكرى السنوية العاشرة لها كبروتوكول مسار المعايير، لم يكن IPv6 فقط في مراحله من حيث النشر العام في جميع أنحاء العالم".

يستخدم SCTP على نطاق واسع في شبكة LTE 4G حيث يتم استخدام القطر ل AAA.

قد لا تكون معروفة، لكنها ليست غير مستخدمة. في الآونة الأخيرة كان هناك مشروع نشرت في ietf. حول باستخدام SCTP كبروتوكول طبقة نقل ل HTTP.

في إشارة إلى جميع التعليقات حول أجهزة التوجيه التجارية التي يتم كسرها أو تفتقر إلى دعم SCTP، فإن المشكلة هي أن SCTP مع NAT لا يزال في مشروع نموذج مع IETF. لذلك لا توجد مواصفات RFC لهم لتنفيذها.

https://tools.ietf.org/html/draft-ietf-behave-sctpnat-09.

يولد SCTP بعد فوات الأوان، وبالنسبة للعديد من TCP الوضع يكفي.

أيضا، كما أعرف معظم استخدامها في منطقة الاتصالات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top