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


जवाबों:


191

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

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

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

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


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

@pQd, यार क्या आप इसे यूनिक्स सॉकेट के बजाय यूनिक्स आईपीसी कह सकते हैं?
पेसियर

4
@Pacerier यूनिक्स सॉकेट्स यूनिक्स आईपीसी (दूसरों के बीच साझा मेमोरी) को प्राप्त करने का एक तरीका है, इसलिए यूनिक्स सॉकेट्स यूनिक्स आईपीसी को कॉल करना सही नहीं होगा।
fyquah95

टीसीपी सॉकेट्स को यूनिक्स द्वारा भी संभाला जाता है? टीसीपी सॉकेट्स टीसीपी प्रोटोकॉल विनिर्देश का हिस्सा है या कोई भी प्रोटोकॉल आईपी सॉकेट्स का उपयोग कर सकता है?
फेडरिको

@Federico मैंने एक उत्तर पोस्ट किया है जो आपकी क्वेरी को संबोधित करने की कोशिश करता है, यदि आपको अधिक गहराई की आवश्यकता है तो कृपया एक नया प्रश्न पोस्ट करें।
पीटर ग्रीन

28

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

netstat -a -p --unix

मज़े करो!


9
विंडोज पर यूनिक्स सॉकेट मौजूद नहीं हैं। netstatहालांकि विंडोज पर काम करता है।
मार्क टोमलिन जूल

4
@apache, "नामांकित पाइप" नामक विंडोज में समान बात है।
विशेषज्ञ

5
नामांकित पाइप लिनक्स पर भी मौजूद हैं।
साहिल सिंह

9
@expert, विंडोज में नामित पाइप यूनिक्स में नामित पाइप के बराबर है। यूनिक्स में आईपीसी सॉकेट्स की विंडोज में कोई समानता नहीं है
पेसियर

2
विंडोज 10 में यूनिक्स सॉकेट्स के लिए सपोर्ट है। कुछ सीमाएँ हैं, लेकिन यह उपलब्ध है: blogs.msdn.microsoft.com/commandline/2017/12/19/…
Tyson

12

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

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

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

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


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

बेशक

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

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

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

सॉकेट्स एपीआई के कुछ एक्सटेंशन को rfcs में प्रलेखित किया गया है लेकिन वे RFC केवल "सूचनात्मक" हैं।

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

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

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

"सुनने वाले सॉकेट्स फाइलसिस्टम पदानुक्रम में रहते हैं और उन तक पहुंच को फाइल सिस्टम अनुमतियों द्वारा नियंत्रित किया जा सकता है।" क्या इसका मतलब है कि एक ही फाइल सिस्टम तक पहुंच रखने वाले दो सर्वर एक सॉकेट पर संवाद करने में सक्षम हो सकते हैं?
user5359531

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