कि कैसे FTP प्रोटोकॉल को निष्क्रिय मोड में काम करने के लिए डिज़ाइन किया गया था। यह शायद एक अच्छा विचार नहीं था, क्योंकि मुझे नहीं लगता कि यह मॉडल कभी भी किसी अन्य प्रोटोकॉल में फिर से दोहराया गया था (और यह एफ़टीपी सक्रिय मोड के बारे में और भी अधिक सच है)।
डेटा कनेक्शन पोर्ट पर, कोई प्रोटोकॉल नहीं है। वह सब जो सर्वर जानता है - केवल एक चीज जो उस संबंध में किसी भी जानकारी को वहन करती है - वह पोर्ट नंबर है जिसे आप कनेक्ट करते हैं।
यदि आप हर बार उसी पोर्ट से कनेक्ट होते हैं, तो सर्वर यह नहीं बता पाएगा कि आप किस फ़ाइल के लिए कनेक्ट कर रहे हैं। पोर्ट नंबर नियंत्रण कनेक्शन और डेटा कनेक्शन पर स्थानांतरण अनुरोध के बीच एक लिंक के रूप में कार्य करता है - पोर्ट नंबर PASV
कमांड की प्रतिक्रिया में निहित है ।
यदि दो क्लाइंट एक ही समय में एक ट्रांसफर का अनुरोध करते हैं, जब सर्वर एक पोर्ट पर कनेक्शन स्वीकार करता है, तो सर्वर यह नहीं बता पाएगा कि किस फाइल को ट्रांसफर करना है। बेशक, सर्वर निर्णय के लिए एक क्लाइंट आईपी का उपयोग कर सकता है (वास्तव में कई एफ़टीपी सर्वर यह पुष्टि करते हैं कि क्लाइंट आईपी नियंत्रण कनेक्शन पर उपयोग किए गए आईपी से मेल खाता है, सुरक्षा के लिए)।
लेकिन यह काम नहीं करेगा:
- एक ही मशीन से कई कनेक्शन (अधिकांश एफ़टीपी ग्राहक समानांतर स्थानांतरण / कतारों का समर्थन करते हैं और आप वास्तव में एक मशीन पर कई अलग-अलग एफ़टीपी ग्राहक चला सकते हैं);
- समान (कॉरपोरेट) नेटवर्क के भीतर अलग-अलग मशीनों से कनेक्शन, क्योंकि उनके पास एक ही बाहरी आईपी है।
आंशिक रूप से मेरे जवाब से कॉपी किया गया कि एफ़टीपी निष्क्रिय मोड को केवल एक पोर्ट के विपरीत पोर्ट रेंज की आवश्यकता क्यों है? सर्वर दोष पर।