SCTP का उपयोग क्यों नहीं किया जाता है / ज्ञात नहीं है


190

मैंने हाल ही में रिचर्ड्स स्टीवंस की पुस्तक "UNIX नेटवर्क प्रोग्रामिंग, वॉल्यूम 1" की जांच की और मैंने पाया कि टीसीपी और यूडीपी: एससीटीपी के अलावा एक तीसरा परिवहन परत मानक है ।

सारांश: एससीटीपी एक परिवहन-स्तरीय प्रोटोकॉल है जो यूडीपी की तरह संदेश-चालित है, लेकिन टीसीपी की तरह विश्वसनीय है। यहाँ IBM DeveloperWorks का संक्षिप्त परिचय दिया गया है

ईमानदारी से, मैंने पहले कभी SCTP के बारे में नहीं सुना है। मैं किसी भी नेटवर्किंग पुस्तकों में इसके बारे में पढ़ना या उन कक्षाओं में इसके बारे में सुनना याद नहीं रख सकता जो मैंने लिए थे। SCTP का उल्लेख करने वाले अन्य स्टैकओवरफ़्लो प्रश्नों को पढ़ने से पता चलता है कि मैं इस ज्ञान की कमी के साथ अकेला नहीं हूँ।

SCTP इतना अज्ञात क्यों है? इसका ज्यादा इस्तेमाल क्यों नहीं किया जाता है?


4
+1 कभी नहीं सुना - धन्यवाद।
रॉबर्ट वेनबेल्स

1
किसी को भी SCTP की तुलना ZeroMQ से करने की परवाह है (इसके अलावा एक प्रोटोकॉल है, दूसरा पुस्तकालय - समस्याओं को सुलझाने के लिए एक उपकरण के रूप में देखें)।
एमिल इवानोव

मैं बस उत्सुक हूं: 3/1/2013 को क्या गलत / अलग है? इस एक दिन में इतने वोट क्यों?
डेमिस्टर

8
@ डमीस्टर: क्योंकि मैंने आपको रेडिट पर रखा है । डार्मस्टाट की ओर से बधाई।
Janus Troelsen

32
कृपया 3/1/2013 मत लिखें। "मार्च 1st 2013", "1-Mar-2013", "Mar 1st '13" .. में से कोई भी बेहतर है। बस महीने और दिन-ब-दिन इस तरह से मत लिखो कि गलत व्याख्या की जा सके।
ज़ेके

जवाबों:


94

दरअसल, SCTP का इस्तेमाल ज्यादातर टेलिकॉम एरिया में किया जाता है। परंपरागत रूप से, दूरसंचार स्विच एसएस 7 ( सिग्नलिंग सिस्टम नंबर 7 ) का उपयोग दूरसंचार नेटवर्क में विभिन्न संस्थाओं को जोड़ने के लिए करते हैं। उदाहरण के लिए - दूरसंचार प्रदाता के सब्सक्राइबर डेटा बेस (HLR), एक स्विच (MSC) के साथ, सब्सक्राइबर भी (MSC) जुड़ा हुआ है।

दूरसंचार क्षेत्र उच्च गति और अधिक पहुंच वाले वातावरण में जा रहा है। इन परिवर्तनों में से एक एसएस 7 प्रोटोकॉल को कुछ अधिक सुरुचिपूर्ण, तेज और लचीले आईपी-आधारित प्रोटोकॉल द्वारा प्रतिस्थापित करना है।

दूरसंचार क्षेत्र बहुत रूढ़िवादी है। दशकों से यहाँ SS7 नेटवर्क का उपयोग किया जा रहा है। यह एक विश्वसनीय और बंद नेटवर्क है। इसका मतलब है कि एक नियमित उपयोगकर्ता के पास इसकी कोई पहुंच नहीं है।

आईपी ​​नेटवर्क, इसके विपरीत, खुला है और विश्वसनीय नहीं है, और टेलीकॉम इसे कन्वर्ट नहीं करेंगे अगर यह कम से कम लोड को हैंडल नहीं करेगा जो एसएस 7 संभालता है। यही कारण है कि SCTP विकसित किया गया था। यह कोशिश करता है:

  • दशकों से संचित SS7 नेटवर्क के सभी लाभों की नकल करना।
  • गति, सुरक्षा और अतिरेक में टीसीपी से बेहतर कनेक्शन-उन्मुख प्रोटोकॉल बनाने के लिए

लिनक्स के नवीनतम रिलीज में पहले से ही SCTP समर्थन है।


विशेष रूप से आपको IETF के "SIGTRAN" वर्किंग ग्रुप से आउटपुट को देखना चाहिए जिसने SS7 और SCTP के बीच मैपिंग को लिखा है।
अलनीतक

22
संभवतः मुख्य कारण एससीटीपी का सार्वजनिक इंटरनेट पर अधिक उपयोग नहीं किया जाता है, आवासीय आईपीवी 4 / एनएटी गेटवे को कई एक साथ निजी एंडपॉइंट और बाहरी मेजबानों के बीच बहुसंकेतन संघों का समर्थन करने के लिए एससीटीपी-जागरूक बनने की आवश्यकता है। एक बार IPv6 संक्रमण को और अधिक भाप लेने के लिए शुरू करने के लिए SCTP को अधिक उपयोगी बनने के लिए देखें।
जैम वुडयेट

@jameswoodyatt UDP पर SCTP के पुस्तकालय कार्यान्वयन हैं। यह उपभोक्ता-ग्रेड रूटर्स के साथ कुछ मुद्दों को हल करता है।
user7610

1
यह प्रश्न का उत्तर नहीं देता है। जेम्स की प्रतिक्रिया में वास्तव में किए गए उत्तर की तुलना में अधिक जानकारी है।
केन शार्प

@jameswoodyatt उपभोक्ता ग्रेड राउटर मैं सभी के साथ खिलवाड़ किया है इसके लिए समर्थन है, यहां तक ​​कि कुछ बहुत पुराने हैं। समस्या यह है कि यह नियमित यूआई के माध्यम से उजागर नहीं होता है, इसलिए आपको सिस्टम में कुछ भयानक चीजें करनी होंगी ताकि आप इसे कॉन्फ़िगर कर सकें। मेरी राय में एक निरीक्षण के कुछ।
पर्किन्स

70

हम अब कई अनुप्रयोगों में एससीटीपी की तैनाती कर रहे हैं, और विभिन्न होम रूटर्स में एससीटीपी समर्थन के साथ महत्वपूर्ण समस्या का सामना कर रहे हैं। वे बस SCTP को सही ढंग से संभाल नहीं पाते हैं। मेरा मानना ​​है कि यह मुख्य रूप से एक प्रदर्शन का मुद्दा है (SCTP प्रोटोकॉल विनिर्देशन के लिए पूरे पैकेटों को पुनर्गठित करने के लिए और न केवल हेडर के लिए चेकसम की आवश्यकता है)।

कई अन्य आशाजनक प्रोटोकॉल की तरह एससीटीपी पानी में बुरी तरह से मर चुका है, जब तक कि डी-लिंक और नेटगियर उनके टूटे हुए नेट बॉक्स को ठीक नहीं करते।


7
वाह, मुझे प्रवेश के लिए इस बाधा के बारे में पता नहीं था। आप पूरी तरह से सही हैं - इसके चारों ओर एक प्रस्तावित तरीके के लिए tools.ietf.org/html/draft-ietf-behave-sctpnat-05 देखें । यह एक ही विषय पर इंटरनेट ड्राफ्ट का तीसरा सेट है ...
Bwooce

आप कम से कम घर के राउटर के लिए बहुत निराशावादी ध्वनि करते हैं। व्यावसायिक उत्पादन वातावरण में उपयोग किए जाने वाले राउटर इसका समर्थन करते हैं, SCTP अभी भी बहुत उपयोगी दिखता है। बहुत सारे उपयोग के मामले हैं जहां नेटवर्क टोपोलॉजी डेटा सेंटर के परिसर को नहीं छोड़ती है, जिस स्थिति में SCTP सही होना चाहिए।
यूजीन बेरेसोव्स्की

4
@EugeneBeresovksy: जब से मैंने उस उत्तर को पोस्ट किया है, यह कुछ साल है। मेरी धारणा है कि SCTP ने तब से महत्वपूर्ण बढ़त नहीं बनाई है। यह अभी भी नियंत्रित वातावरण में कुछ विशेष अनुप्रयोगों में उपयोग किया जाता है, लेकिन शायद ही कभी जंगली में देखा जाता है। विंडोज और मैक ओएस एक्स में अभी भी बॉक्स से बाहर SCTP समर्थन की कमी है। परिचित होने की कमी और अधिकांश फायरवॉल और NAT बॉक्स द्वारा तोड़े गए प्रोटोकॉल की भंगुरता लोगों को इसका उपयोग करने के लिए अनिच्छुक बना देती है।
पीहर

@pehrs मैं इसे डेटा सेंटर के भीतर उपयोग करना चाहूंगा, इसलिए कोई भी NAT शामिल नहीं है, और कोई फ़ायरवॉल नहीं है, सिवाय थियो OS-buildin के। लिनक्स सर्वर वातावरण में, मुझे आशा है कि यह सिर्फ काम करेगा। लेकिन यहां तक ​​कि विंडोज का उपयोग करते हुए, एससीटीपी पुस्तकालय हैं - और मेरा मानना ​​है कि ओएस के साथ छेड़छाड़ किए बिना।
यूजीन बेर्सोव्स्की 24:14

एससीटीपी को आमतौर पर लिनक्स में अपनाए जाने की कमी के कारण सक्षम नहीं किया जाता है, लेकिन मेरे उबंटू सटीक (पुरानी) प्रणाली पर भी यह लोड करने योग्य मॉड्यूल के रूप में उपलब्ध है। एक एप्लिकेशन प्रदान करना जो SCTP का उपयोग करना चाहता है, लेकिन वापस टीसीपी में आ जाएगा (उदाहरण के लिए) दोहरे-स्टैकिंग के लिए एक समस्या है, लेकिन अधिक दर्दनाक है।
केन शार्प

55

SCTP को इसका सर्वोत्तम उपयोग प्राप्त करने के लिए एप्लिकेशन के भीतर अधिक डिज़ाइन की आवश्यकता होती है। टीसीपी की तुलना में अधिक विकल्प हैं, सॉकेट जैसी एपीआई बाद में आई, और यह युवा है। हालाँकि मुझे लगता है कि ज्यादातर लोग इसे समझने के लिए समय लेते हैं (और जो टीसीपी की कमियों को जानते हैं) इसकी सराहना करते हैं - यह एक अच्छी तरह से डिज़ाइन किया गया प्रोटोकॉल है जो टीसीपी और यूडीपी के हमारे 30 साल के ज्ञान पर बनाता है।

पहलुओं में से एक है कि कुछ विचार की आवश्यकता है धाराओं की है। धाराएं प्रदान करती हैं (आमतौर पर, मुझे लगता है कि आप इसे बंद कर सकते हैं) उनके भीतर एक आदेश की गारंटी (टीसीपी कनेक्शन की तरह) लेकिन एससीटीपी कनेक्शन के अनुसार कई धाराएं हो सकती हैं। यदि आपके एप्लिकेशन का डेटा कई धाराओं पर भेजा जा सकता है, तो आप हेड-ऑफ-लाइन ब्लॉकिंग से बचते हैं जहां रिसीवर एक गलत संदेश पैकेट के कारण भूखा रहता है। प्रभावी रूप से अलग-अलग बातचीत एक-दूसरे को प्रभावित किए बिना एक ही कनेक्शन पर हो सकती है।

एक और उपयोगी इसके अलावा बहु-होमिंग समर्थन है - एक कनेक्शन दोनों छोरों पर कई इंटरफेस के पार हो सकता है और यह विफलताओं का सामना करता है। आप टीसीपी में इसका अनुकरण कर सकते हैं, लेकिन एप्लिकेशन परत पर।

उचित लिंक दिल की धड़कन, जो कि गैर-क्षणिक कनेक्शन के कार्यान्वयन के लिए टीसीपी का उपयोग करने वाली पहली चीज है, मुफ्त में है।

SCTP का मेरा व्यक्तिगत सारांश यह है कि यह ऐसा कुछ भी नहीं करता है जिसे आप पर्याप्त एप्लिकेशन समर्थन के साथ (टीसीपी या यूडीपी में) दूसरे तरीके से नहीं कर सकते। यह जो चीज प्रदान करता है वह है उस कोड को लागू न करने की क्षमता (बुरी तरह से)।

FYI करें, SCTP को व्यास (cf RADIUS next gen) के लिए समर्थित माना गया है। आरएफसी 3588 देखें

   व्यास के ग्राहक टीसीपी या एससीटीपी का समर्थन करते हैं, जबकि एजेंट और
   सर्वर दोनों का समर्थन करना चाहिए। इस विनिर्देशन के भविष्य के संस्करण MAY
   जनादेश है कि ग्राहक SCTP का समर्थन करते हैं।

43

SCTP बहुत अधिक ज्ञात नहीं है और इसका उपयोग नहीं किया गया है / तैनात नहीं किया गया है क्योंकि:

  • व्यापक रूप से: टीसीपी / आईपी स्टैक में व्यापक रूप से एकीकृत नहीं है (2013 में: अभी भी नवीनतम मैक ओएसएक्स और विंडोज में मूल रूप से गायब है)
  • पुस्तकालयों: भाषाओं का उपयोग करने के लिए आसान में उच्च स्तर की बाइंडिंग (अस्वीकरण: मैं pysctp का अनुरक्षक हूँ , पायथन के लिए SCTP आसान स्टैक समर्थन)
  • NAT: NAT को बहुत अच्छी तरह से पार नहीं करता / बिल्कुल (1% से कम इंटरनेट होम और एंटरप्राइज रूटर्स SCTP पर NAT करते हैं)।
  • लोकप्रियता: कोई सामान्य सार्वजनिक ऐप इसका उपयोग नहीं करता है
  • प्रोग्रामिंग प्रतिमान: यह थोड़ा बदल गया: यह अभी भी एक सॉकेट है, लेकिन आप कई मेजबानों को कई मेजबानों (मल्टीहोमिंग) से जोड़ सकते हैं, डेटाग्राम का आदेश दिया और विश्वसनीय, erc ...
  • जटिलता: SCTP स्टैक लागू करने के लिए जटिल है (ऊपर के कारण)
  • प्रतियोगिता: मल्टीपाथ टीसीपी आ रही है और बहुउद्देशीय जरूरतों / क्षमताओं को संबोधित करना चाहिए ताकि लोग एससीटीपी को लागू करने से बच सकें, यदि संभव हो तो नोटबंदी का इंतजार करें
  • आला: एससीटीपी की जरूरतें बहुत अजीब हैं (विश्वसनीय डेटाग्राम, मल्टीस्ट्रीम का आदेश दिया गया) और बहुत अधिक अनुप्रयोगों की आवश्यकता नहीं है
  • सुरक्षा: SCTP सुरक्षा नियंत्रण विकसित करता है (कुछ फायरवॉल, अधिकांश IDS, सभी DLP, नेटस्टैट पर CentOS / Redhat / Fedora ... को छोड़कर प्रकट नहीं होते हैं)
  • ऑडिट-क्षमता: दुनिया में 3 कंपनियों की तरह कुछ नियमित रूप से SCTP सुरक्षा के ऑडिट करते हैं (अस्वीकरण: मैं उनमें से एक में काम करता हूं)
  • लर्निंग कर्व: SCTP के साथ खेलने के लिए बहुत अधिक टूलकिन नहीं ( नेटस्कैप या सोसाइटी के साथ अच्छी तरह से जोड़ती है कि उत्कृष्ट withsctp की जाँच करें )
  • हुड के तहत: ज्यादातर टेलिकॉम में इस्तेमाल किया जाता है और हर बार जब आप एसएमएस भेजते हैं, तो अपने मोबाइल पर नेट सर्फिंग शुरू करें या फोन कॉल करें, आप अक्सर एससीटीपी (एसआईजीटीआरएएन / एसएस 7 पर जीएसएम / यूएमटीएस, एलटीई / आईएमएस के साथ व्यास) पर संदेश भेजते हैं। / RCS, S1AP / X2AP एलटीई के साथ), इसलिए आप वास्तव में इसका उपयोग करते हैं, लेकिन आप कभी भी इसके बारे में नहीं जानते ;-)

14
पुन :: "आला / बहुत अनुप्रयोगों की जरूरत नहीं है"। वेब ब्राउज़र इससे लाभान्वित होंगे, टीसीपी के शीर्ष पर HTTP2 और इसे लागू करने के अपने प्रयासों को देखें , जो कुछ SCTP मुफ्त में देता है। सबसे अधिक HTTP अनुकूलन तकनीक (स्प्रिंट, शार्डिंग, इनलाइनिंग, कॉन्टेनेशन) बनाई जाएगी (लगभग पूरी तरह से - HTTP1 के बेकार हेडर अनसुलझी रह गए हैं) SCTP द्वारा निरर्थक हैं। डीबी या किसी अन्य सेवा के समवर्ती उपयोग को सक्षम करने के लिए कनेक्शन पूल के लिए भी यही बात लागू होती है। दूसरे शब्दों में: SCTP की कुछ विशेषताओं के लिए बहुत सारे ऐप्स की बहुत आवश्यकता है।
यूजीन बेरेसोवस्की

4
"कोई भी सामान्य सार्वजनिक ऐप इसका उपयोग नहीं करता है": वेबआरटीसी द्वारा एससीटीपी का उपयोग नहीं किया जाता है। "सुरक्षा: SCTP सुरक्षा नियंत्रण विकसित करता है" - यह 'सुरक्षा' नियंत्रण की समस्या से अधिक है। यदि यह उन जांचों से बचता है तो यह मैलवेयर के लिए रडार के नीचे रहने के लिए अद्भुत प्रोटोकॉल होगा।
मिकीज पीचोटका

14

p1। SCV से सीधे मैप किए गए SCTP को NAT गेटवे में समर्थन की आवश्यकता है, जिसे कभी भी व्यापक रूप से कहीं भी तैनात नहीं किया गया है, और इसके बिना विशिष्ट NAT गेटवे केवल एक निजी होस्ट को प्रति सार्वजनिक पते पर एक बार में SCTP का उपयोग करने की अनुमति देगा।

p2। UDP / IPv4 पर मैप किए गए SCTP प्रति सार्वजनिक पते पर अधिक निजी होस्ट की अनुमति देता है, लेकिन IPv4 / NAT गेटवे में UDP मैपिंग को स्थापित करने और बनाए रखने के लिए कुख्यात हैं, इस तथ्य के कारण कि UDP एक नैट ट्रैक के लिए किसी भी स्पष्ट राज्य के बिना एक कनेक्शन परिवहन है। ।

p3। SCTP IPv6 पर सीधे मैप किया जाता है ... अच्छी तरह से ... IPv6। क्या आपने IPv6 को तैनात करने की कोशिश की है? यदि हां, तो क्या आपने IPv6 फ़ायरवॉल खरीदने की कोशिश की है? क्या यह SCTP का समर्थन करता है? कैसे एक लोड बैलेंसर के बारे में? एक एसएसएल त्वरक?

p4। अंत में, इंटरनेट का एक बहुत टीसीपी पोर्ट 80 और पोर्ट 443 के माध्यम से फिट होने के लिए बहुत अधिक विवश है, इसलिए किसी भी स्वाद का एससीटीपी वहां खो जाता है। इसलिए, आप IETF में MPTCP वर्किंग ग्रुप जैसे प्रयासों को देखते हैं ।


"क्या आपने IPv6 फ़ायरवॉल खरीदने की कोशिश की है? क्या यह SCTP का समर्थन करता है" - सामान्य रूप से वितरित किए गए सामान्य रूप से iptables बस ठीक-ठाक समर्थन करता है । मैं हालांकि एक नेटवर्क लड़का नहीं हूं, इसलिए मैं बाकी लोगों के लिए नहीं कह सकता।
हाय-एंजेल

12

हम में से कई लोग जल्द ही SCTP का उपयोग कर रहे हैं, क्योंकि इसका उपयोग WebRTC डेटाचैनल्स द्वारा UDP के ऊपर एक टीसीपी जैसी विश्वसनीय परत बनाने के लिए किया जाता है - UDP पर DTLS पर SCTP: https://tools.ietf.org/html/draft/ietf -rtcweb-डेटा-चैनल-13 # धारा -6


यह बताना भूल गया कि WebRTC का प्राथमिक ध्यान संयुक्त वीडियो और ऑडियो स्ट्रीमिंग है। यह संदेश रिले के रूप में उपयोग करने के लिए नहीं है। टर्न / आइस / स्टन सर्विसेज़, WebRTC के शीर्ष पर चलने वाली तकनीक का एक और हिस्सा हैं। लेकिन ये वे प्रौद्योगिकियां हैं जो WebRTC उपयोग करती हैं। वे प्रौद्योगिकियाँ WebRTC नहीं हैं।
TamusJRoyce

6

SCTP विकिपीडिया पृष्ठ को पढ़कर मैं कहूंगा कि मुख्य कारण यह है कि SCTP एक बहुत ही युवा प्रोटोकॉल (2000 में प्रस्तावित) है जो वर्तमान में मुख्यधारा के OS ( Windows , OS X , Linux ) द्वारा असमर्थित है ।

यदि "बहुत युवा" आपको अनुचित लगता है, तो IPV6 के बारे में सोचें : "दिसंबर 2008 में, मानक ट्रैक प्रोटोकॉल के रूप में अपनी 10 वीं वर्षगांठ को चिह्नित करने के बावजूद, IPv6 सामान्य रूप से दुनिया भर में तैनाती के मामले में अपनी प्रारंभिक अवस्था में था।"


3
आपके द्वारा लिंक किए गए विकिपीडिया लेख के अनुसार, एससीटीपी लिनक्स, सोलारिस, फ्रीबीएसडी, एचपी-यूएक्स और अन्य में लागू किया गया है।
drrlvn

लिंक किए गए लेख में अब यह भी कहा गया है कि यह OS X और Windows पर चलता है।
डेमिस्टर

3

एससीटीपी का उपयोग 4 जी एलटीई नेटवर्क में बड़े पैमाने पर किया जाता है जहां डायमीटर का उपयोग एएए के लिए किया जाता है।


2

यह अच्छी तरह से ज्ञात नहीं हो सकता है, लेकिन यह अप्रयुक्त नहीं है। काफी हाल ही में HTTP के लिए ट्रांसपोर्ट लेयर प्रोटोकॉल के रूप में SCTP का उपयोग करने के बारे में IETF में एक मसौदा प्रकाशित हुआ था ।


2
जब आपने कहा "अप्रयुक्त नहीं" तो मैंने प्रोटोकॉल के वास्तविक उपयोग के बारे में सोचा। लेकिन तब आपने केवल एक मसौदा दस्तावेज का एक उदाहरण दिया , जो भविष्य में संभावित रूप से वास्तविक उपयोग को जन्म दे सकता है।
Kissaki

2

वाणिज्यिक राउटर्स के टूटने या SCTP सपोर्ट की कमी के बारे में सभी टिप्पणियों के संदर्भ में, मुद्दा यह है कि NAT के साथ SCTP अभी भी IETF के साथ ड्राफ्ट फॉर्म में है। इसलिए इसे लागू करने के लिए उनके पास कोई RFC विनिर्देश नहीं है।

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


-1

Sctp बहुत देर से पैदा हुआ है, और कई स्थिति के लिए टीसीपी पर्याप्त है।

इसके अलावा, जैसा कि मैं जानता हूं कि इसका अधिकांश उपयोग दूरसंचार क्षेत्र पर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.