IPv4 के लिए सबसे बड़ा टीसीपी / आईपी नेटवर्क पोर्ट नंबर स्वीकार्य है?


जवाबों:


565

पोर्ट संख्या एक अहस्ताक्षरित 16-बिट पूर्णांक है, इसलिए 65535 है।


216
"अरे, जिम, हमें कितने बंदरगाहों का समर्थन करना चाहिए?" "बस इसे अच्छे उपाय के लिए 16 बिट्स बनाओ। कोई भी कभी भी एक बार में सौ से अधिक खुला नहीं होगा, सबसे ऊपर।"
जेसीआयर

3
@barlop मैं सुझाव दे रहा था कि जब उन्होंने पहली बार बंदरगाहों का निर्माण किया था, तो सैकड़ों कनेक्शन वाली एक एकल मशीन को संभवतः सबसे खराब स्थिति माना गया था। लेकिन आज वेब सर्वर, नेटवर्क डिवाइस इत्यादि निश्चित रूप से पोर्ट काउंट सीमाओं के खिलाफ टकरा सकते हैं। Microsoft ने विंडोज वातावरण में इसका निदान और इससे बचने के तरीके के बारे में एक दिलचस्प टेक्नेट लेख लिखा है: blogs.technet.microsoft.com/askds/2008/10/29/…
JessieArr

3
@JessieArr उन दोनों मामलों में यह वास्तव में एक 65536 का मुद्दा नहीं है, यह ए का एक मुद्दा है) कनेक्शन जारी नहीं करने वाले कार्यक्रम, उन्हें "वॉइट" स्थिति में छोड़कर कि netstat B के साथ संयुक्त दिखाता है) कुछ पहले के विंडोज़ संस्करण केवल 1024-5000 के लिए जा रहे थे डायनेमिक पोर्ट्स। और फिर भी, कौन जानता है कि अगर ऐसा कभी हुआ है, क्योंकि किसी भी प्रोग्राम ने कभी किसी को रिपोर्ट करने की जहमत नहीं उठाई है कि उसे डायनेमिक पोर्ट नहीं मिल सकता है। 65536 नंबर। वेब ब्राउज़र कनेक्शन का सबसे बड़ा उपयोगकर्ता हो सकता है। मेरे नेटस्टैट आउटपुट में 297 लाइनें हैं। 65K से दूर
barlop

3
@JessieArr अधिकांश आईपी स्टैक कनेक्शन के लिए एक विशिष्ट पहचानकर्ता के रूप में सोर्स आईपी एड्रेस, सोर्स पोर्ट, डेस्टिनेशन आईपी एड्रेस और डेस्टिनेशन पोर्ट के टपल का उपयोग करते हैं। इसका मतलब है कि एक सर्वर में कई और अधिक सक्रिय कनेक्शन हो सकते हैं जैसे कि उपलब्ध खुले पोर्ट हैं, और बंदरगाहों की मात्रा केवल एक स्रोत और एक गंतव्य के बीच खुले कनेक्शन की मात्रा पर एक सीमा (यद्यपि बहुत बड़ी एक) रखती है। मुझे नहीं लगता कि किसी को भी किसी भी समय 65536 से अधिक पोर्ट पर सर्वर (या कनेक्शन के लिए सुन रहा है) चल रहा होगा।
jduncanator

41
@JessieArr - जो आपको एक मजाक बनाने की कोशिश करना सिखाएगा, यह एक गंभीर व्यवसाय है जिसे आप जानते हैं, यहाँ उस तरह के दौर के लिए समय नहीं है: /
मैट

145

सबसे बड़ा पोर्ट नंबर एक अहस्ताक्षरित छोटा 2 ^ 16-1: 65535 है

एक पंजीकृत पोर्ट एक निश्चित उपयोग के लिए इंटरनेट कॉर्पोरेशन फॉर असाइन्ड नेम्स एंड नंबर्स (ICANN) द्वारा सौंपा गया है। प्रत्येक पंजीकृत बंदरगाह 1024–49151 की सीमा में है।

21 मार्च 2001 से रजिस्ट्री एजेंसी ICANN है; उस समय से पहले यह IANA था।

पंजीकृत बंदरगाहों की तुलना में कम संख्या वाले बंदरगाहों को प्रसिद्ध बंदरगाह कहा जाता है; पंजीकृत बंदरगाहों से अधिक संख्या वाले पोर्ट को डायनामिक और / या निजी पोर्ट कहा जाता है।

विकिपीडिया: पंजीकृत बंदरगाह


71

जैसा कि मैं इसे समझता हूं, आपको केवल 49151 तक का उपयोग करना चाहिए, क्योंकि 49152 से 65535 तक एपर्चर पोर्ट के लिए आरक्षित हैं


11
पंचांग पोर्ट रेंज प्रणाली द्वारा बदलती हैं। मैं 3.19.0-43-जेनेरिक कर्नेल के साथ ubuntu linux चला रहा हूं। $ cat /proc/sys/net/ipv4/ip_local_port_rangeउत्पादन में परिणाम 32768 61000। जैसे कि किसी को किसी के सिस्टम के अल्पकालिक पोर्ट रेंज में पोर्ट का उपयोग करना चाहिए या नहीं करना चाहिए, मुझे सबसे अधिक संदेह है कि सभी आधुनिक दिन नेटवर्क ऑपरेटिंग सिस्टम एक पोर्ट पर छोड़ देंगे जो पहले से उपयोग में है।
कीथ रेनॉल्ड्स

37

बस एक उत्तर के लिए तोड़ के जवाब है। अल्पकालिक पोर्ट रेंज (लिनक्स पर कम से कम, और मुझे अन्य यूनियनों पर भी संदेह है) निश्चित नहीं है। इसे लिखकर नियंत्रित किया जा सकता है /proc/sys/net/ipv4/ip_local_port_range

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


15

RFC 793 के अनुसार, पोर्ट एक 16 बिट अहस्ताक्षरित int है।

इसका मतलब है रेंज 0 - 65535 है।

हालाँकि, उस सीमा के भीतर, पोर्ट 0 - 1023 आम तौर पर विशिष्ट उद्देश्यों के लिए आरक्षित होते हैं। मैं आमतौर पर कहता हूं क्योंकि, पोर्ट 0 के अलावा, आमतौर पर 0-1023 आरक्षण का कोई प्रवर्तन नहीं है। टीसीपी / यूडीपी कार्यान्वयन आमतौर पर 0. के अलावा आरक्षण लागू नहीं करते हैं। यदि आप चाहते हैं, तो आप पोर्ट 443 के बजाय पोर्ट 80, या 25, या 65535 पर एक वेब सर्वर के टीएलएस पोर्ट को चला सकते हैं। इसी तरह, इसे भी मानक जो SMTP सर्वर 25 पोर्ट पर सुनता है, आप इसे 80, 443 या अन्य पर चला सकते हैं।

अधिकांश कार्यान्वयन विशिष्ट उद्देश्य के लिए 0 आरक्षित करते हैं - यादृच्छिक पोर्ट असाइनमेंट। इसलिए ज्यादातर कार्यान्वयन में , "पोर्ट 0 पर सुनें" कहने का वास्तव में मतलब है "मुझे परवाह नहीं है कि मैं किस पोर्ट का उपयोग करता हूं, बस मुझे सुनने के लिए कुछ यादृच्छिक बिना पोर्ट दिए"।

0-65535 रेंज में एक पोर्ट का उपयोग करने पर कोई सीमा, जिसमें 0, अल्पकालिक आरक्षण रेंज आदि शामिल है, कार्यान्वयन (यानी ओएस / ड्राइवर) विशिष्ट है , हालांकि, 0 सहित सभी, RFC 793 में मान्य पोर्ट हैं।



11

पोर्ट के लिए मान्य नंबर हैं: 0 से 2 ^ 16-1 = 0 से 65535
ऐसा इसलिए है क्योंकि पोर्ट नंबर 16 बिट लंबाई है।

हालाँकि, पोर्ट्स को विभाजित किया
जाता है : जाने-माने पोर्ट्स : 0 से 1023 (सिस्टम सेवाओं के लिए उपयोग किया जाता है जैसे HTTP, FTP, SSH, DHCP ...)
पंजीकृत / उपयोगकर्ता पोर्ट : 1024 से 49151 (आप इसे अपने सर्वर के लिए उपयोग कर सकते हैं, लेकिन कुछ प्रसिद्ध अनुप्रयोगों से सावधान रहें: जैसे Microsoft SQL सर्वर डेटाबेस प्रबंधन प्रणाली (MSSQL) सर्वर या Apache डर्बी नेटवर्क सर्वर पहले से ही इस रेंज से ले रहे हैं अर्थात MSSQL के पोर्ट को अपने सर्वर पर असाइन करने की अनुशंसा नहीं की जाती है अन्यथा यदि MSSQL चल रहा है तो आपका सर्वर सबसे संभवतः पोर्ट संघर्ष के कारण नहीं चलेगा)
डायनेमिक / निजी पोर्ट : 49152 से 65535। (सर्वर के लिए उपयोग नहीं किया जाता है, बल्कि क्लाइंट जैसे नैटिंग सेवा में)

प्रोग्रामिंग में आप अपने सर्वर के लिए 0 से 65535 तक किसी भी संख्या का उपयोग कर सकते हैं, हालांकि आपको ऊपर बताई गई श्रेणियों से चिपके रहना चाहिए, अन्यथा पोर्ट संघर्ष के कारण कुछ सिस्टम सेवाएं या कुछ एप्लिकेशन नहीं चलेंगे।
अधिकांश बंदरगाहों की सूची यहां देखें: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers


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