क्यों वहाँ केवल 65,535 बंदरगाह हैं, और क्या हम कभी अधिक होंगे? [बन्द है]


20

मैं प्रति आईपी पते के 65,535 पोर्ट होने के पीछे मूल तर्क को समझता हूं: यह उच्चतम संख्या है जिसे 16-बिट या 2-बाइट, संख्या द्वारा दर्शाया जा सकता है, और यह अनुमान योग्य नहीं था कि कंप्यूटर कभी भी अधिक खाली करने में सक्षम होंगे से अधिक के लिए कुछ के रूप में तुच्छ बंदरगाहों के रूप में, या ऐसा कुछ। बंदरगाहों को वास्तव में 1 बिट से अधिक की आवश्यकता हो सकती है, क्योंकि प्रत्येक पोर्ट खुला, अवरुद्ध, "स्टील्थ" या अन्य हो सकता है, लेकिन किसी कारण से लोग हमेशा कहते हैं कि पोर्ट 16-बिट संख्या के साथ काम करते हैं। अगर मेरे पास इस गलत का कोई हिस्सा है, तो हर तरह से मुझे बताएं।

हालांकि, एक ऐसी दुनिया में जहां अधिकांश कंप्यूटर 32-बिट हैं, और एक जोड़े अधिक बंदरगाहों के लिए अतिरिक्त मेमोरी / स्पेस से अधिक है, हमारे पास अभी भी यह कई पोर्ट क्यों हैं? हम HTML5, HTTP2.0, IPv6 और अन्य निश्चित रूप से अलग-अलग संस्करणों में जाने की प्रक्रिया में हैं, इसलिए पोर्ट के साथ समान क्यों नहीं हैं? इनमें से कई 16 से अधिक बिट्स की अनुमति देते हैं; वास्तव में, IPv6 16 बाइट्स की अनुमति देता है ! मैं समझता हूं कि इनमें से कई साल या यहां तक ​​कि दशकों से दूर हैं, लेकिन क्यों इन उन्नयन पर सभी बकबक, और अधिक बंदरगाहों के बारे में भी झांकना नहीं है (जो मैंने शौकिया तौर पर सुना है)?

65,535 बंदरगाहों को रखने के लिए मैं देख सकता हूं केवल 2 कारण बड़े व्यवसायों को अपनी पुरानी विरासत प्रणालियों को रखने दे रहे हैं, जो शायद ही एक अच्छा कारण है, और एम्बेडेड सिस्टम का उदय, उनमें से कई छोटे, अंतरिक्ष की मात्रा, स्मृति, आदि के साथ। इंटरनेट पर जल्द ही आ रहा है, इंटरनेट ऑफ थिंग्स के हिस्से के रूप में कई। इन एम्बेडेड सिस्टम के साथ, शायद हम उन्हें कम पोर्ट दे सकते हैं, और जब एक बड़ा डेस्कटॉप कंप्यूटर एक से कनेक्ट करने की कोशिश करता है, तो इसे कोमल कहा जा सकता है, क्योंकि बेबी एम्बेडेड सिस्टम केवल ~ 65,000 पोर्ट का उपयोग कर सकता है।

दूसरी ओर, मैं अधिक बंदरगाहों के लिए कुछ अच्छे कारणों के बारे में सोच सकता हूं, सबसे अधिक एनएटी और अन्य प्रणालियों के साथ करना है जहां 1 से अधिक निजी आईपी पते को एक ही सार्वजनिक आईपी पते का उपयोग करके शेष इंटरनेट के साथ संवाद करना है, एक ही कंप्यूटर पर VM के उदय के समान, सभी समान IP पते का उपयोग कर रहे हैं। तकनीकी रूप से, प्रत्येक वीएम आईपी पते में 65,535 पोर्ट हैं, लेकिन वास्तव में वे सभी होस्ट के पोर्ट का उपयोग करते हैं। इस तरह के मामलों में, ये सिस्टम बंदरगाहों से काफी जल्दी बाहर निकल सकते हैं। एक अन्य विशिष्ट मामला वाहक-ग्रेड NAT है, जहां एक सार्वजनिक आईपी पते को कई निजी आईपी पतों में अनुवादित किया जाता है, और इनमें से कम से कम एक निजी पते को और भी अधिक निजी पतों के दूसरे सेट में अनुवादित किया जाता है। फिर से, प्रत्येक निजी आईपी पते में तकनीकी रूप से 65,535 बंदरगाहों का अपना सेट है, लेकिन यह एक भ्रम है, जब डेटा सार्वजनिक इंटरनेट पर निकलता है, तो वे सार्वजनिक आईपी के बंदरगाहों का उपयोग कर रहे हैं। मुझे यकीन नहीं है कि हमें आवश्यक रूप से एनएटी की आवश्यकता है, प्रति एसई, लेकिन हमें कुछ इस तरह की आवश्यकता होगी कि पते को संरक्षित करने के लिए भी भारी मात्रा में आईपीवी 6 हमें दे। जब हमारे पास इस तरह के मामले हैं, तो क्या हम 65,535 से अधिक पोर्ट नहीं कर सकते हैं?

तो, हमारे पास अभी भी केवल 65,535 पोर्ट ही क्यों हैं, और क्या अधिक अनुमति देने की कोई योजना है?

PS मुझे पता है कि तकनीकी रूप से प्रति आईपी पते में 65,536 पोर्ट हैं, लेकिन पोर्ट 0 का आमतौर पर किसी भी चीज के लिए उपयोग नहीं किया जाता है।


मुझे लगता है कि आपको IANA से ये सवाल पूछने की जरूरत है कि वे संसाधनों को नियंत्रित करें। मुझे लगता है कि आपको टीसीपी / आईपी गाइड को भी पढ़ने की जरूरत है क्योंकि आपकी कुछ समझ त्रुटिपूर्ण है।
user9517 GoFundMonica

1
हाँ, मुझे लगा। मैंने जितना समझा उतना कहने की कोशिश की, लेकिन जैसा कि आप देख सकते हैं, मैं सब कुछ नहीं समझता।
कोशिशें

7
इस प्रश्न के बारे में ऑफ-टॉपिक क्या है? बस सोच रहा।
कोशिशें

1
मैंने इन साइटों में सवाल पूछना भी छोड़ दिया। इन दिनों सब कुछ ऑफ टॉपिक लग रहा है ...
नूनो

IPv6 कंप्यूटर को उपयोग करने के लिए पते की एक / 64 का उपयोग करके पोर्ट मूट की सीमा बनाता है।
जे। मोनी

जवाबों:


28

बंदरगाह उपयोग में लेयर 4 प्रोटोकॉल का एक हिस्सा है - टीसीपी या यूडीपी , अधिकांश भाग के लिए; यह वास्तविक कंप्यूटर की मेमोरी एड्रेसिंग से संबंधित नहीं है, इसलिए आधुनिक ऑपरेटिंग सिस्टम के 32 या 64 बिट मेमोरी एड्रेसिंग से भ्रमित न हों।

इन परत 4 प्रोटोकॉल के हेडर में विशेष रूप से परिभाषित संरचनाएं होती हैं , जिसके लिए स्रोत और गंतव्य बंदरगाहों के लिए ठीक 16 बिट्स का उपयोग किया जाता है। संगतता-ब्रेकिंग के बिना परत 4 प्रोटोकॉल में परिवर्तन जो पूरे इंटरनेट पर निर्भर करता है, बंदरगाहों की संख्या को बदला नहीं जा सकता है। यहां तक ​​कि नए SCTP में बंदरगाहों पर 16 बिट की बाधा है।

ध्यान रखें कि ये प्रोटोकॉल न केवल प्राप्त पोर्ट के आधार पर ट्रैफ़िक की पहचान करते हैं, बल्कि आईपी और भेजने वाले पोर्ट और आईपी भी; आप टीसीपी पोर्ट्स सुनने के लिए 65535 तक सीमित हैं (लेकिन आपके पास इतने सारे नहीं हैं), और आप विशिष्ट रिमोट सिस्टम पर किसी विशिष्ट सेवा के लिए 65535 कनेक्शन तक सीमित हैं (अभ्यास में कम, देखें पंचांग पोर्ट ), तो यह असामान्य है इन प्रोटोकॉल पर सीमा में चलाने के लिए जब तक कि आपके पास एक विशिष्ट रिमोट सिस्टम के लिए बहुत सारे कनेक्शन बनाने वाली प्रणाली न हो।


3
यह हमेशा पीछे की ओर आता है-अनुकूलता, है ना? हम IPv6 में क्यों बदल सकते हैं, जो इतने अधिक आईपी पते की अनुमति देता है यह हास्यास्पद है, लेकिन हमारे पास कुछ और पोर्ट नहीं हो सकते हैं? यही मेरी मुख्य झुंझलाहट है।
कोशिशें

2
@trysis Right - IPv4 से IPv6 की ओर बढ़ना एक अच्छी तुलना है जो पोर्ट के हेडर में टीसीपी के एक संस्करण और यूडीपी के एक संस्करण को अधिक बिट्स के साथ स्थानांतरित करने के लिए ले जाएगा। और अगर आपने ध्यान नहीं दिया है, तो यह दुनिया भर में IPv6 की तैनाती के लिए एक धीमी और दर्दनाक प्रक्रिया है, जहां यह अब है (दुनिया भर में 1-2% यातायात का उपयोग करके)। IPv4 के लिए, स्थानांतरित करने की आवश्यकता थी - पता थकावट। दूसरी ओर, इन प्रोटोकॉलों पर पोर्ट स्पेस से बाहर निकलना कोई आम समस्या नहीं है, इसलिए बड़े पैमाने पर बदलाव करने के लिए कोई मजबूर करने की आवश्यकता नहीं है जो इसे होने के लिए आवश्यक होगी।
शेन झुंझलाना

ओह, यह अधिक समझ में आता है। धन्यवाद। हो सकता है कि किसी दिन हमें इसकी आवश्यकता महसूस होगी, लेकिन मुझे लगता है कि आप सही हैं कि जरूरत अब नहीं है।
कोशिशें

मुझे उम्मीद है कि अगर हम कभी भी उस परेशानी से गुजरेंगे, तो हम पूर्णांक आधारित पोर्ट एड्रेसिंग की तुलना में कुछ बेहतर कर सकते हैं। UUID- आधारित पोर्ट जैसा कुछ भयानक होगा। या वास्तविक नाम स्थान और भी अधिक वर्णनात्मक होंगे और अनुप्रयोगों के बीच टकराव की क्षमता को समाप्त करेंगे। "Com.windows.local.yourdomain.server001" नामस्थान या कुछ इस तरह के लिए एक बंदरगाह की स्थापना की कल्पना करें।
njbair

इसलिए यदि दो पीसी मिलकर 65,535 कनेक्शन बनाते हैं या NAT के बाहर PC के एक कूपल के समान होते हैं, तो अन्य PC में से कोई भी itnernet तक नहीं पहुंच पाएगा। क्या मैं सही हूँ?
डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.