सवाल यूनिक्स सॉकेट और टीसीपी / आईपी सॉकेट के बीच क्या अंतर है?


यह इस उत्तर से है:

https://stackoverflow.com/questions/2482411/is-this-pdo-bug-fixed-now/2482424#2482424


81
2018-03-20 09:13


मूल




जवाब:


यूनिक्स सॉकेट एक इंटर-प्रोसेस संचार तंत्र है जो एक ही मशीन पर चल रही प्रक्रियाओं के बीच बिडरेक्शनल डेटा एक्सचेंज की अनुमति देता है।

आईपी ​​सॉकेट (विशेष रूप से टीसीपी / आईपी सॉकेट) एक तंत्र है जो नेटवर्क पर प्रक्रियाओं के बीच संचार की इजाजत देता है। कुछ मामलों में, आप उसी कंप्यूटर पर चल रहे प्रक्रियाओं (लूपबैक इंटरफ़ेस का उपयोग करके) के साथ बात करने के लिए टीसीपी / आईपी सॉकेट का उपयोग कर सकते हैं।

यूनिक्स डोमेन सॉकेट्स जानते हैं कि वे एक ही सिस्टम पर निष्पादित कर रहे हैं, इसलिए वे कुछ चेक और संचालन (जैसे रूटिंग) से बच सकते हैं; जो उन्हें आईपी सॉकेट की तुलना में तेज़ और हल्का बनाता है। तो यदि आप एक ही होस्ट पर प्रक्रियाओं के साथ संवाद करने की योजना बनाते हैं, तो यह आईपी सॉकेट से बेहतर विकल्प है।

संपादित करें: के अनुसार Nils Toedtmann की टिप्पणी: यूनिक्स डोमेन सॉकेट फ़ाइल सिस्टम अनुमतियों के अधीन हैं, जबकि टीसीपी सॉकेट केवल पैकेट फ़िल्टर स्तर पर नियंत्रित किया जा सकता है।


146
2018-03-20 09:39



शायद यह भी जोड़ें कि यूनिक्स डोमेन सॉकेट फ़ाइल सिस्टम अनुमतियों के अधीन हैं, जबकि टीसीपी सॉकेट नहीं हैं। नतीजतन, यह विनियमित करना बहुत आसान है कि उपयोगकर्ताओं को एक यूनिक्स डोमेन सॉकेट तक पहुंच है, यह एक टीसीपी सॉकेट के लिए है। - Nils Toedtmann
@ पीक्यूडी, दोस्त क्या आप इसे यूनिक्स सॉकेट के बजाय यूनिक्स आईपीसी कह सकते हैं? - Pacerier
@Pacerier यूनिक्स सॉकेट यूनिक्स आईपीसी (दूसरों के बीच साझा इंटरप्रोसेस मेमोरी) प्राप्त करने का एक तरीका है, इसलिए यूनिक्स सॉकेट यूनिक्स आईपीसी को कॉल करना सही नहीं होगा। - fyquah95
यूनिक्स द्वारा टीसीपी सॉकेट को भी संभाला जाता है? टीसीपी सॉकेट टीसीपी प्रोटोकॉल विनिर्देश का हिस्सा है या कोई प्रोटोकॉल आईपी सॉकेट का उपयोग कर सकता है? - Federico
@ फेडेरिको मैंने एक उत्तर पोस्ट किया जो आपकी क्वेरी को संबोधित करने का प्रयास करता है, अगर आपको अधिक गहराई की आवश्यकता है तो कृपया एक नया प्रश्न पोस्ट करें। - Peter Green


आप निम्न आदेश के साथ अपनी मशीन स्थानीय यूनिक्स सॉकेट सूचीबद्ध कर सकते हैं:

netstat -a -p --unix

मज़े करो!


21
2018-03-20 13:49



यूनिक्स सॉकेट विंडोज पर मौजूद नहीं है। netstat हालांकि विंडोज़ पर काम करता है। - Mark Tomlin
@apache, विंडोज़ में इसी तरह की चीज को "नामित पाइप" कहा जाता है। - expert
लिनक्स पर नामित पाइप भी मौजूद हैं। - Sahil Singh
@expert, विंडोज़ में नामित पाइप यूनिक्स में नामित पाइप के बराबर है। यूनिक्स में आईपीसी सॉकेट विंडोज में कोई समानता नहीं है - Pacerier
ध्यान दें कि एक अंतर यह है कि नामित पाइप केवल एक ग्राहक को एक समय में कनेक्ट कर सकते हैं (कुल प्रक्रियाओं को दो प्रक्रियाएं)। यूनिक्स सॉकेट, जैसे आईपी सॉकेट, कई क्लाइंट एक साथ जुड़े हो सकते हैं, प्रत्येक को अलग-अलग प्रतिक्रियाएं मिलती हैं। - peterflynn


यूनिक्स सॉकेट और टीसीपी / आईपी सॉकेट के बीच क्या अंतर है?

टीसीपी / आईपी नेटवर्क में संचार के लिए एक टीसीपी / आईपी सॉकेट का उपयोग किया जाता है। स्थानीय आईपी, स्थानीय बंदरगाह, रिमोट आईपी और रिमोट पोर्ट के संयोजन से एक कनेक्टेड टीसीपी सॉकेट की पहचान की जाती है। स्थानीय बंदरगाह और संभवतः स्थानीय आईपी द्वारा एक सुनवाई टीसीपी सॉकेट की पहचान की जाती है। एआईयूआई कम से कम लिनक्स टीसीपी / आईपी सॉकेट पर हमेशा टीसीपी / आईपी पैकेट की पीढ़ी और डिकोडिंग का परिणाम होता है, भले ही क्लाइंट और सर्वर एक ही मशीन पर हों।

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

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


यूनिक्स द्वारा टीसीपी सॉकेट को भी संभाला जाता है?

बेशक

टीसीपी सॉकेट टीसीपी प्रोटोकॉल विनिर्देश का हिस्सा है

इंटरनेट प्रोटोकॉल विनिर्देश केवल चिंता करते हैं कि तार पर क्या होता है, टीसीपी स्पेक में सॉकेट की परिभाषा होती है लेकिन यह परिभाषा समान नहीं है कि शब्द "सॉकेट एपीआई" द्वारा कैसे उपयोग किया जाता है।

"सॉकेट एपीआई" जैसा कि हम जानते हैं कि इसे बीएसडी द्वारा पेश किया गया था लेकिन बाद में इसे पूरे स्थान पर कॉपी किया गया था और इसे पॉज़िक्स मानक के हिस्से के रूप में शामिल किया गया था। टीसीपी और यूडीपी सॉकेट के लिए मूलभूत सामग्री विभिन्न प्लेटफार्मों में काफी समान होती है लेकिन ओएस के अन्य हिस्सों के साथ बातचीत करने वाली अधिक उन्नत सामग्री और सामान भिन्न होता है, उदाहरण के लिए यूनिक्स जैसी प्रणालियों पर एक सॉकेट को फ़ाइल हैंडल द्वारा पहचाना जाता है और कर सकते हैं फ़ाइल एपीआई द्वारा पढ़ / लिखे जाएं, यह विंडोज़ पर मामला नहीं है।

सॉकेट एपीआई के कुछ एक्सटेंशन आरएफसीएस में दस्तावेज किए गए हैं लेकिन उन आरएफसी केवल "सूचनात्मक" हैं।

या कोई प्रोटोकॉल आईपी सॉकेट का उपयोग कर सकता है?

जब कोई एप्लिकेशन स्पष्ट रूप से "सॉकेट" फ़ंक्शन का उपयोग करके सॉकेट बनाता है (सॉकेट को स्वीकृति फ़ंक्शन द्वारा भी बनाया जाता है) यह तीन पैरामीटर, "डोमेन", "टाइप" और "प्रोटोकॉल" पास करता है। उनके बीच इन तीन मानकों का उपयोग कई अलग-अलग प्रकार के सॉकेट का चयन करने के लिए किया जा सकता है।

  • डोमेन उपयोग में प्रोटोकॉल / पते के परिवार का चयन करता है, उदा। आईपीवी 4 के लिए AF_INET, ipv6 के लिए AF_INET6, यूनिक्स फाइल सिस्टम आदि के लिए AF_Unix।
  • प्रकार संचार अर्थशास्त्र का चयन करता है, मुख्य रूप से डेटाग्राम और स्ट्रीम होता है लेकिन अन्य विशेष प्रकार भी होते हैं।
  • प्रोटोकॉल उपयोग करने के लिए प्रोटोकॉल का चयन करता है, यदि यह 0 के संयोजन के लिए डिफ़ॉल्ट प्रोटोकॉल पर सेट है और प्रकार का उपयोग किया जाएगा।

4
2017-09-13 17:32