यूनिक्स सॉकेट - पोर्ट्स एंड सर्विसेज

जब क्लाइंट प्रक्रिया किसी सर्वर को कनेक्ट करना चाहती है, तो क्लाइंट के पास उस सर्वर की पहचान करने का एक तरीका होना चाहिए जिसे वह कनेक्ट करना चाहता है। यदि क्लाइंट को होस्ट का 32-बिट इंटरनेट पता पता है जिस पर सर्वर रहता है, तो वह उस होस्ट से संपर्क कर सकता है। लेकिन क्लाइंट उस होस्ट पर चलने वाली विशेष सर्वर प्रक्रिया की पहचान कैसे करता है?

होस्ट पर चल रहे किसी विशेष सर्वर प्रक्रिया की पहचान करने की समस्या को हल करने के लिए, टीसीपी और यूडीपी दोनों ने प्रसिद्ध बंदरगाहों के एक समूह को परिभाषित किया है।

हमारे उद्देश्य के लिए, एक पोर्ट को 1024 और 65535 के बीच पूर्णांक संख्या के रूप में परिभाषित किया जाएगा। ऐसा इसलिए है क्योंकि 1024 से छोटे सभी पोर्ट संख्याओं को अच्छी तरह से जाना जाता है - उदाहरण के लिए, टेलनेट पोर्ट 23 का उपयोग करता है, http 80 का उपयोग करता है, ftp 21 का उपयोग करता है, और इसी तरह।

नेटवर्क सेवाओं में पोर्ट असाइनमेंट फ़ाइल / etc / सेवाओं में पाया जा सकता है। यदि आप अपना स्वयं का सर्वर लिख रहे हैं तो अपने सर्वर पर पोर्ट असाइन करने के लिए ध्यान रखा जाना चाहिए। आपको यह सुनिश्चित करना चाहिए कि यह पोर्ट किसी अन्य सर्वर को नहीं सौंपा जाना चाहिए।

आम तौर पर यह 5000 से अधिक किसी भी पोर्ट नंबर को निर्दिष्ट करने के लिए एक प्रथा है। लेकिन कई संगठन ऐसे हैं, जिनके पास 5000 से अधिक पोर्ट संख्या वाले सर्वर हैं। उदाहरण के लिए, याहू मैसेंजर 5050 पर चलता है, एसआईपी सर्वर 5060 पर चलता है, आदि।

उदाहरण पोर्ट और सेवाएँ

यहां सेवाओं और संबंधित बंदरगाहों की एक छोटी सूची है। आप इंटरनेट की सबसे अद्यतन सूची और संबंधित सेवा IANA - TCP / IP पोर्ट असाइनमेंट पर पा सकते हैं ।

Service Port Number Service Description
गूंज 7 यूडीपी / टीसीपी वापस भेजता है जो इसे प्राप्त करता है।
रद्द करें 9 यूडीपी / टीसीपी दूर इनपुट फेंकता है।
दिन 13 यूडीपी / टीसीपी एएससीआईआई समय देता है।
chargen 19 UDP / TCP वर्ण लौटाता है।
एफ़टीपी 21 टीसीपी फ़ाइल स्थानांतरण।
टेलनेट 23 टीसीपी रिमोट लॉगिन।
एसएमटीपी 25 टीसीपी ईमेल।
दिन 37 यूडीपी / टीसीपी द्विआधारी समय देता है।
TFTP 69 यूडीपी तुच्छ फ़ाइल स्थानांतरण।
उंगली 79 उपयोगकर्ताओं पर टीसीपी जानकारी।
एचटीटीपी 80 टीसीपी वर्ल्ड वाइड वेब।
लॉग इन करें 513 टीसीपी रिमोट लॉगिन।
who 513 यूडीपी उपयोगकर्ताओं पर विभिन्न जानकारी।
स्वागत 6000 टीसीपी एक्स विंडोज़ (एनबी> 1023)।

पोर्ट और सेवा कार्य

यूनिक्स / etc / सेवाओं फ़ाइल से सेवा का नाम लाने के लिए निम्न कार्य प्रदान करता है।

  • struct servent *getservbyname(char *name, char *proto) - यह कॉल सेवा नाम और प्रोटोकॉल नाम लेता है, और उस सेवा के लिए संबंधित पोर्ट नंबर देता है।

  • struct servent *getservbyport(int port, char *proto) - यह कॉल पोर्ट नंबर और प्रोटोकॉल नाम लेता है, और संबंधित सेवा का नाम देता है।

प्रत्येक फ़ंक्शन के लिए वापसी मान निम्न फॉर्म के साथ एक संरचना के लिए एक संकेतक है -

struct servent {
   char  *s_name;
   char  **s_aliases;
   int   s_port;
   char  *s_proto;
};

यहाँ सदस्य क्षेत्रों का वर्णन है -

गुण मूल्यों विवरण
s_name एचटीटीपी यह सेवा का आधिकारिक नाम है। उदाहरण के लिए, SMTP, FTP POP3 इत्यादि।
s_aliases उपनाम यह सेवा उपनामों की सूची रखता है। अधिकांश समय, इसे NULL पर सेट किया जाएगा।
s_port 80 इसमें संबंधित पोर्ट नंबर होगा। उदाहरण के लिए, HTTP के लिए, यह 80 होगा।
s_proto

टीसीपी

यूडीपी

यह प्रयोग किए गए प्रोटोकॉल पर सेट है। इंटरनेट सेवाएं टीसीपी या यूडीपी का उपयोग करके प्रदान की जाती हैं।