2010-05-30 18 views
7

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

क्या यह पोर्ट 80 बार दो बार खोल सकता है, जैसे X:80 और Y:80?

कहें, मशीन द्वारा आईपी द्वारा अद्वितीय पोर्ट है या आईपी?

+1

शायद serverfault.com पर होना चाहिए, लेकिन इस तरह की चीज़ से निपटने वाले प्रोग्रामर के लिए एक दिलचस्प सवाल है। :) – JYelton

उत्तर

6

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

+0

दिलचस्प ... –

3

यह आईपी द्वारा अद्वितीय है। जब आप bind, (महत्वपूर्ण भाग) है, तो आप एक आईपी और पोर्ट नंबर से बंधे हैं, मशीन और पोर्ट नंबर नहीं। सभी एड्रेस से जुड़ने के लिए आप INADDR_ANY जैसे कुछ का उपयोग कर सकते हैं।

यदि आप केवल कुछ पते पर बाध्य करना चाहते हैं, तो आपको "हाथ से" ऐसा करना होगा। जब ओएस को एक पैकेट प्राप्त होता है तो पहले यह जांचता है कि वह गंतव्य है। फिर यह उस कार्यक्रम को आगे बढ़ाता है जिसमें requested (बाध्य के माध्यम से, कनेक्ट आदि के माध्यम से) है कि वह उस विशिष्ट आईपी और पोर्ट नंबर के साथ पैकेट का गंतव्य हो।

1

पोर्ट और आईपी के पास 1 से 1 मैपिंग है।

तो, हाँ, आप उसी मशीन पर दो अलग-अलग आईपी पर बंदरगाह 80 खोल सकते हैं।

संबंधित मुद्दे