2010-12-29 11 views
17

मैं < सीखना डब्ल्यूसीएफ> मिशेल लेरोक्स बस्टामेंटे द्वारा पढ़ रहा हूं। इस पुस्तक में, जब net.tcp प्रोटोकॉल की बात आती है, तो लेखक बस टीसीपी इसके बजाय कहता है। तो net.tcp और प्रसिद्ध टीसीपी प्रोटोकॉल के बीच क्या अंतर है?net.tcp और TCP प्रोटोकॉल के बीच क्या अंतर है?

और net.msmq, net.pipe, क्या शुद्ध उपसर्ग मतलब है के रूप में?

बहुत धन्यवाद।

+0

मैं इस प्रश्न के लिए बाउंटी क्यों नहीं शुरू कर सकता? मैंने स्टार्ट बाउंटी बटन नहीं देखा। – smwikipedia

+1

net.tcp एक यूरी योजना है जबकि टीसीपी एकमात्र प्रोटोकॉल है। इसका उपयोग डब्ल्यूसीएफ के लिए डिफ़ॉल्ट बाध्यकारी का उपयोग करते समय .NET फ़्रेमिंग बाइनरी प्रोटोकॉल का उपयोग करते हुए टीसीपी पर डब्ल्यूसीएफ संदेश प्राप्त करने या भेजने के लिए किया जाता है। इसके लिए डिफ़ॉल्ट पोर्ट 808 है और फ़्रेमिंग प्रारूप .NET बाइनरी संदेश फ़्रेमिंग का उपयोग करता है। – Sajay

उत्तर

1

उपसर्ग .net सुझाव देता है कि ढांचे लेखकों ने प्रोटोकॉल को लपेट लिया है ताकि आपको एक एपीआई प्रदान किया जा सके जो जटिलता को छुपाता है और डेवलपर्स के लिए इसका उपयोग करना आसान बनाता है।

+0

आपकी पोस्ट के लिए धन्यवाद। तो net.tcp और टीसीपी अनिवार्य रूप से एक ही बात है। – smwikipedia

+0

नहीं, मैंने यह नहीं कहा। मैंने अनुमान लगाया कि net.tcp टीसीपी के लिए एक रैपर है। इसे एक नज़र डालें और देखें कि यह सही है या नहीं। – duffymo

2

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

4

net.tcp सेवा मॉडल (डब्ल्यूसीएफ) नामस्थान में रहता है। यह कई वर्गों द्वारा दर्शाया गया है, सबसे अधिक दिखाई देने वाला NetTcpBinding Class है। इसलिए, अनिवार्य रूप से net.tcp एक डब्ल्यूसीएफ बाध्यकारी है ('एक सुरक्षित, भरोसेमंद बाध्यकारी क्रॉस-मशीन संचार के लिए उपयुक्त है।')।

तो, net.tcp का उपयोग केवल डब्ल्यूसीएफ संदर्भ में किया जा सकता है, और टीसीपी प्रोटोकॉल पर आधारित है। लेकिन आप net.tcp = टीसीपी नहीं कह सकते हैं। net.tcp बस टीसीपी का उपयोग करता है। अन्य बाइंडिंग की तुलना में, इसे कलाकार के रूप में माना जाता है, लेकिन अंतःक्रियाशील नहीं है।

कहानी net.pipe, net.msmq के लिए समान है, वे क्रमशः Named Pipes और MSMQ पर कम विंडोज प्रौद्योगिकियों पर लागू डब्ल्यूसीएफ बाइंडिंग हैं। System-Provided Bindings

28

net.tcp बस अंतिमबिंदुओं कि टीसीपी का उपयोग कर पहुँचा जा सकता है की पहचान करने के लिए Windows के भीतर इस्तेमाल URI योजना है:

यहाँ प्रणाली प्रदान की WCF बाइंडिंग की एक सूची है।

इसी तरह, net.msmq और net.pipe, अंतिम बिंदुओं को संबोधित करने के यूआरआई योजनाओं MSMQ protocol और Named Pipes protocol क्रमश का उपयोग कर रहे हैं।

net सभी तीनों पर उपसर्ग यह इंगित करता है कि यूआरआई योजना पूरी तरह से माइक्रोसॉफ्ट .NET मंच पर उपयोग के लिए तैयार की गई थी और इसे आम तौर पर व्यापक इंटरनेट में स्वीकार नहीं किया जाता है। (अन्य यूआरआई योजनाएं, जैसे http और ftp ने आमतौर पर अर्थ स्वीकार किए हैं और इसलिए किसी भी उपसर्ग के बिना डब्ल्यूसीएफ के भीतर उपयोग किया जाता है)। इसलिए net उपसर्ग इसलिए एक चेतावनी घंटी के रूप में कार्य करता है कि संबंधित एंडपॉइंट में अन्य अनुप्रयोगों के साथ सीमित/कोई अंतःक्रियाशीलता नहीं होगी जो .NET प्लेटफॉर्म पर नहीं चल रहे हैं।

उदाहरण यूआरआई:

net.tcp://localhost:7272 
net.msmq://somemachine/publicQueue 
net.pipe://machine.domain.com/somePipe 

साइड बार: MSMQ और नामांकित पाइप्स स्पष्ट रूप से माइक्रोसॉफ्ट प्रोटोकॉल और इसलिए अंतर की कमी unsurprising है, टीसीपी इंटरनेट और इसलिए की नींव प्रोटोकॉल है होते हैं, निश्चित रूप से इसका उपयोग डब्ल्यूसीएफ में किया जाना चाहिए .NET विशिष्ट नहीं होना चाहिए?

वैसे, डब्ल्यूसीएफ में इंटरऑपरेबिलिटी पहले ही एसओएपी और एचटीटीपी द्वारा संभाली जा चुकी है, जो दोनों टीसीपी के शीर्ष पर चलती हैं। यदि आप टीसीपी पर अंतःक्रियाशीलता चाहते हैं - उन प्रोटोकॉल में से एक का उपयोग करें।

इसलिए माइक्रोसॉफ्ट एक संचार विकल्प प्रदान करना चाहता था जहां इंटरऑपरेबिलिटी के बजाए प्रदर्शन मुख्य उद्देश्य था। टीसीपी तार्किक विकल्प था, लेकिन टीसीपी अपेक्षाकृत कम स्तर का प्रोटोकॉल है, जिसके लिए डब्ल्यूसीएफ जैसे मैसेजिंग फ्रेमवर्क के लिए सीधा-आगे तरीके से काम करने के लिए अतिरिक्त व्यवहार और चूक की आवश्यकता होती है। इसके अलावा, टीसीपी सुलभ संसाधनों के लिए आमतौर पर स्वीकृत यूआरआई योजना नहीं है और इसलिए माइक्रोसॉफ्ट को एक का आविष्कार करने की आवश्यकता है। इस प्रकार, net.tcp पैदा हुआ था।


जबकि यूआरआई स्वयं जरूरी नहीं है कि उपयोग करने के लिए बाध्यकारी बिल्कुल सही है, वे एक संकेत प्रदान करते हैं। साइमन मॉरीयर के जवाब के अनुसार, वर्तमान में डब्ल्यूसीएफ के भीतर उपलब्ध बाइंडिंग here पाई जा सकती हैं। इसलिए, उदाहरण के लिए, net.tcp पता इंगित कर सकता है कि NetTcp बाइंडिंग, NetPeerTcp बाइंडिंग, या NetTcpContext बाइंडिंग आवश्यक है।

+4

चूंकि http टीसीपी के शीर्ष पर चलता है, हम बस इसे "http" कहते हैं और टीसीपी पर एफटीपी को "एफटीपी" कहा जाता है और टीसीपी के शीर्ष पर बिटोरेंट "धार" होता है (और यह अन्य सभी इंटरनेट प्रोटोकॉल के लिए जाता है) मुझे लगता है कि माइक्रोसॉफ्ट "net.tcp" के बजाय इसे "net.wcf" नाम दिया जाना चाहिए था। – slebetman

+0

:-) अच्छा बिंदु। इससे चीजें थोड़ा स्पष्ट हो सकती हैं। –

+0

यह अब तक का सबसे अच्छा जवाब है। क्या आप net.tcp के बारे में अधिक गहरी तकनीकी जानकारी के लिए संसाधन दे सकते हैं? – csteinmueller

संबंधित मुद्दे