2013-06-20 10 views
8

मैं यह समझने की कोशिश कर रहा हूं कि विंडोज एक्सपी पर एक ही टीसीपी {आईपी, पोर्ट} जोड़ी पर कई प्रक्रियाओं को शुरू करना संभव हो सकता है।एक ही बंदरगाह पर कई प्रक्रियाएं सुन रही हैं?

उदाहरण के लिए, मैं बंदरगाह 371 पर दो ncat.exe प्रोग्राम सुन सकता हूं। दूसरा कोई भी समस्या के बिना शुरू किया गया है और आने वाले कनेक्शन प्राप्त करता है जबकि पहला नहीं होता है। एक बार प्रक्रिया शुरू होने के बाद समाप्त हो जाती है, पहला व्यक्ति उन्हें प्राप्त करता है।

netstat -a -n | find "LISTENING" 
    TCP 0.0.0.0:371   0.0.0.0:0    LISTENING 
    TCP 0.0.0.0:371   0.0.0.0:0    LISTENING 

इस एक Windows (XP) व्यवहार मान लिया जाये, यह कैसे एक सुरक्षित & सुरक्षित व्यवहार हो सकता है? इसका मतलब यह है कि कोई भी सामान्य "पता पहले से उपयोग में" त्रुटि संदेश प्राप्त करने के बजाय किसी भी पहले से ही सुनने वाले बंदरगाह को "ओवरलोड" कर सकता है, और केवल नियमों के साथ फ़ायरवॉल बाईपास कर सकता है कि "पोर्ट 371 पर आने वाले किसी भी टीसीपी कनेक्शन की अनुमति है"।

+3

यह 'सुरक्षित और सुरक्षित व्यवहार' नहीं है। यह एक अजीब विंडोज़ विचित्रता है जो प्रक्रियाओं को एक-दूसरे के कनेक्शन चुरा लेने की अनुमति देती है। – EJP

उत्तर

9

SO_REUSEADDR सॉकेट विकल्प को विंडोज़ में अलग-अलग व्याख्या किया गया है यानी लिनक्स में यह आपको उसी सॉकेट का पुन: उपयोग करने की अनुमति देगा जब तक कि सभी पांच tuple (src/dst port/ip और प्रोटोकॉल बिल्कुल समान नहीं होते)।

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

विंडोज केवल SO_REUSEADDR विकल्प जानता है, कोई SO_REUSEPORT नहीं है। Windows में एक सॉकेट पर SO_REUSEADDR स्थापना बीएसडी में एक सॉकेट पर SO_REUSEPORT और SO_REUSEADDR की स्थापना, एक अपवाद के साथ की तरह बर्ताव: SO_REUSEADDR साथ एक सॉकेट हमेशा की तरह, बिल्कुल वैसा ही स्रोत पते और एक पहले से ही बाध्य सॉकेट के रूप में बंदरगाह के लिए बाध्य कर सकते हैं, भले ही अन्य सॉकेट में यह विकल्प सेट नहीं था जब यह बाध्य था। यह व्यवहार कुछ हद तक खतरनाक है क्योंकि यह किसी अन्य एप्लिकेशन के कनेक्टेड पोर्ट को "चोरी" करने की अनुमति देता है। कहने की जरूरत नहीं है, इसमें प्रमुख सुरक्षा प्रभाव हो सकते हैं।

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