मैं प्रोटोकॉल फू होस्टनाम-जागरूक कैसे बनाऊं?


10

यह होस्टनाम-जागरूकता और समीपता के बारे में एक विहित प्रश्न है

मुझे पता है कि कुछ प्रोटोकॉल होस्टनाम-जागरूक हैं; जब मैं www.example.comइसे HTTP सर्वर से कनेक्ट करता हूं, तो मुझे पता है कि मैं www.example.comHTTP सेवा चाहता हूं , न www.example.netकि भले ही वे एक ही आईपी पते पर हों। मैं प्रोटोकॉल फू के लिए यह कैसे कर सकता हूं ?

(अस्थायी नोट: यह सवाल इस मेटा चर्चा के अनुसार प्रतीत होता है ।)

जवाबों:


14

यह समझने के लिए कि डीएनएस के बारे में आपको कुछ पता होना चाहिए।

जब कोई ग्राहक किसी दिए गए होस्ट पर एक सेवा से जुड़ना चाहता है, तो वह अपने स्थानीय DNS बुनियादी ढांचे के माध्यम से होस्टनाम को देखता है, और प्रतिक्रिया में एक आईपी पता प्राप्त करता है। यह तब उस आईपी पते से जुड़ता है, और इसे लागू करने के लिए बनाए गए प्रोटोकोल द्वारा निर्धारित तरीके से सेवा का अनुरोध करता है।

कुछ मामलों में, उस प्रॉटॉल के हिस्से में मूल रूप से देखा गया होस्टनाम का दूसरा भेजना शामिल होता है , जो इस मामले में DNS इन्फ्रास्ट्रक्चर के बजाय सर्वर को भेजा जाता है। HTTP के मामले में, यह RFC 2616 में HTTP / 1.1 के भाग के रूप में जोड़ा गया था ; HTTPS के मामले में, इसे RFC 4366 में सर्वर नेम इंडिकेशन (SNI) के रूप में लागू किया गया था ; और FTP के मामले में, यह RFC 7151 में कमांड द्वारा जोड़ा गया था (लेकिन बाद में कैविएट देखें)। यदि ऐसा कोई दूसरा भेजने वाला नहीं होता है, तो सर्वर के पास यह पता करने का कोई तरीका नहीं होता है कि क्लाइंट को अपने स्थानीय DNS से ​​क्या प्राप्त होगा ताकि सर्वर का आईपी पता प्राप्त किया जा सके।HOST

ध्यान दें कि सभी मामलों में प्रोटोकॉल में परिवर्तन इस दूसरे भेजने के लिए आवश्यक था, और इस प्रकार क्लाइंट-सर्वर इंटरैक्शन होस्टनाम-जागरूक बनाते हैं। प्रोटोकॉल बदलने के बाद, इसे लागू करने के लिए सर्वर कोड को अपडेट करना पड़ा। और अंत में, सर्वरों के नए प्रोटोकॉल पर बात करने के लिए ग्राहकों को अपडेट किया जाना था। वह अंतिम चरण विशेष रूप से धीमा हो सकता है; एसएनआई के मामले में, विंडोज़ एक्सपी पर इंटरनेट एक्सप्लोरर ने इसे कभी लागू नहीं किया, इसलिए प्रोटोकॉल पर भरोसा नहीं किया जा सकता था, जबकि अभी भी आईई-ऑन-एक्सपी उपयोगकर्ताओं के आसपास कोई महत्वपूर्ण संख्या नहीं थी, और उन्हें पर्याप्त होने में लगभग दस साल लग गए। मर जाते हैं और / या उन्नयन मिलता है कि SNI मज़बूती से तैनात है।

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

संक्षिप्त उत्तर यह है कि यदि आपका प्रोटोकॉल वर्तमान में होस्टनाम-जागरूकता को लागू नहीं करता है, दोनों क्लाइंट और सर्वर के बीच अच्छे समर्थन के साथ, इसे भूल जाएं: यह ऐसा कुछ नहीं है जो आप कर सकते हैं।


6
मुझे लगता है कि मैं इस जवाब को इस तथ्य के साथ समझूंगा कि कुछ प्रोटोकॉल ब्रांड-नए उत्पादों के लिए हैं या स्थानीय रूप से पर्याप्त हैं कि एक कंपनी सर्वर और क्लाइंट के सभी उदाहरणों को नियंत्रित करेगी। उन मामलों में, बस hostname कमांड या पैकेट जोड़ना बहुत सरल और लागू करने में बहुत आसान है। आप मौजूदा प्रोटोकॉल में किसी भी नई सुविधा को जोड़ने में कठिनाई का वर्णन करते हैं जो पहले से ही कई विक्रेताओं द्वारा व्यापक उपयोग में है।
JPhi1618

4
@ JPhi1618 मैं आपको सुनता हूं, लेकिन मेरी राय में किसी भी कंपनी द्वारा बनाए गए और कार्यान्वित किए गए किसी भी "प्रोटोकॉल" और RFC में एम्बेडेड नहीं है , बिल्कुल भी प्रोटोकॉल नहीं है; यह सिर्फ एक आंतरिक इंजीनियरिंग निर्णय है, और मुझे ऐसे मालिकाना उत्पादों में कोई दिलचस्पी नहीं है। जैसा कि आप इंगित करते हैं, विक्रेता तुरंत होस्टनाम-जागरूकता को लागू करने के लिए चीजों को बदल सकता है यदि यह चुनता है; लेकिन जब से कोई अन्य विक्रेता से ऐसा कर सकते हैं, मैं देख नहीं कैसे यह ओ पी के लिए बहुत कुछ ब्याज की है।
7

मुझे लगता है कि प्रासंगिक सवाल यह है कि क्या आप एक नया प्रोटोकॉल डिजाइन कर रहे हैं, या पूछ रहे हैं कि मौजूदा प्रोटोकॉल को कैसे बदलना है।
Barmar

एक मालिकाना प्रोटोकॉल अभी भी एक प्रोटोकॉल है।
बरमार

@ बरमार शायद यहाँ आने के लिए अच्छी चर्चा नहीं है। यह प्रश्न मौजूदा प्रोटोकॉल को बदलने के बारे में है, और जैसा कि मैंने पहले उल्लेख किया है, अगर मालिकाना इंजीनियरिंग निर्णय / प्रोटोकॉल bazकेवल उसके मालिक और एकमात्र कार्यान्वयनकर्ता द्वारा बदला जा सकता है, तो इसे होस्टनाम-जागरूक बनाने का एकमात्र तरीका मालिक से अपील करना है। यह एक दिलचस्प एसएफ जवाब नहीं करता है, और इसके अलावा (मेरे दिमाग में) विषय पर नहीं है। " मैं एक होस्टनाम-जागरूक प्रोटोकॉल कैसे डिज़ाइन करूं " एक और सवाल है, और यह पूछने में मेरी दिलचस्पी नहीं है।
मध्याह्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.