DoH और DoT तकनीक की तुलनात्मक विश्लेषण

नेटवर्क प्रोटोकॉल स्तर से DNS over HTTPS और DNS over TLS के तकनीकी कार्यान्वयन, प्रदर्शन अंतर और उपयुक्त परिदृश्यों का गहन विश्लेषण

DNS over HTTPS (DoH) और DNS over TLS (DoT) दो सामान्य एन्क्रिप्टेड DNS परिवहन तरीके हैं, जो अलग-अलग प्रोटोकॉल स्टैक के माध्यम से DNS क्वेरी के सुरक्षित संचरण को लागू करते हैं. DoT के मानक को RFC 7858 द्वारा परिभाषित किया गया है, जबकि DoH को DNS Queries over HTTPS (DoH) मानक द्वारा मानकीकृत किया गया है. इन दो तकनीकों के मौलिक अंतर को समझने के लिए, नेटवर्क प्रोटोकॉल पदानुक्रम (hierarchy) से विश्लेषण शुरू करना आवश्यक है.

नेटवर्क प्रोटोकॉल पदानुक्रम

आधुनिक नेटवर्क प्रोटोकॉल स्टैक लेयर्ड डिज़ाइन (layered design) का उपयोग करते हैं, जहां हर परत अलग-अलग कार्यक्षमता प्रदान करती है. DNS एक एप्लिकेशन लेयर प्रोटोकॉल के रूप में, खुद किसी विशिष्ट परिवहन तरीके से बंधा नहीं है, और यह कई वहन प्रोटोकॉल (bearer protocols) पर चल सकता है.

एप्लिकेशन लेयर (L7) में HTTP/1.1, HTTP/2, HTTP/3, FTP और DNS जैसे प्रोटोकॉल शामिल हैं. यह ध्यान देने योग्य है कि HTTP/3 का अर्थ अभी भी एप्लिकेशन लेयर में है, बस इसका परिवहन QUIC द्वारा किया जाता है. सुरक्षा परत (Security Layer) एप्लिकेशन लेयर और ट्रांसपोर्ट लेयर के बीच स्थित है, जिसमें मुख्य रूप से TLS और इसके प्रकार शामिल हैं. TLS आमतौर पर TCP पर चलता है, जैसे HTTPS और DoT. DTLS, TLS का डेटाग्राम संस्करण है जो UDP पर चल सकता है. QUIC प्रोटोकॉल थोड़ा विशेष है, यह प्रोटोकॉल के अंदर ही TLS 1.3 हैंडशेक और की डेरिवेशन को सीधे एकीकृत करता है.

QUIC को L4.5 लेयर प्रोटोकॉल के रूप में देखा जा सकता है, जो UDP के विस्तार पर आधारित है और पारंपरिक ट्रांसपोर्ट लेयर की क्षमता प्रदान करता है. ट्रांसपोर्ट लेयर (L4) में TCP, UDP और QUIC शामिल हैं. हालांकि इंजीनियरिंग कार्यान्वयन के नजरिए से QUIC UDP पर आधारित है, लेकिन इसमें विश्वसनीयता, कंजेशन कंट्रोल, मल्टीप्लेक्सिंग और एन्क्रिप्शन हैंडशेक जैसी कार्यक्षमताएं बनी होती हैं, इसलिए इंजीनियरिंग में इसे एक स्वतंत्र ट्रांसपोर्ट लेयर प्रोटोकॉल माना जाता है. नेटवर्क लेयर (L3) IP प्रोटोकॉल (IPv4/IPv6) का उपयोग करता है जो पैकेट रूटिंग और फॉरवर्डिंग के लिए जिम्मेदार है. डेटा लिंक लेयर (L2) में ईथरनेट और वाई-फाई (802.11) जैसी तकनीकें शामिल हैं.

TLS एन्क्रिप्शन के साधन के रूप में, एप्लिकेशन लेयर और ट्रांसपोर्ट लेयर के बीच काम करता है. यदि DoT से TLS एन्क्रिप्शन को हटा दिया जाए, तो DoT का सार मूल रूप से DNS over TCP में बदल जाता है. यह लेयर्ड डिज़ाइन एन्क्रिप्शन को एक वैकल्पिक बनाता है, प्रोटोकॉल की स्वयं की अनिवार्य बाध्यता नहीं.

Plain DNS की विशेषताएं

सबसे सामान्य DNS को Plain DNS कहा जाता है, जो UDP या TCP पर चल सकता है. UDP सबसे आम वहन तरीका है क्योंकि कनेक्शन स्थापित करना सरल है और पहली क्वेरी की गति तेज होती है. लेकिन UDP की कमजोरी अविश्वसनीयता है, डेटा पैकेट नेटवर्क में आसानी से खो सकते हैं. भले ही TCP में हैंडशेक की संख्या अधिक होती है और पहली कनेक्शन गति UDP से लगभग 30% धीमी होती है, लेकिन एक बार लॉन्ग कनेक्शन स्थापित होने के बाद, इसकी प्रतिक्रिया गति UDP के समान होती है.

ऑपरेटर (ISP) नेटवर्क व्यस्त होने पर डिवाइस पर दबाव कम करने के लिए UDP पैकेट को छोड़ (drop) करने का विकल्प चुनते हैं. उन क्षेत्रों के लिए जहां कुछ ऑपरेटरों का UDP पैकेट लॉस गंभीर होता है, DNS क्वेरी के लिए TCP का उपयोग करना अधिक फायदेमंद हो सकता है. TCP में रीट्रांसमिशन तंत्र होता है, भले ही पैकेट लॉस हो जाए, यह डेटा के विश्वसनीय रूप से पहुंचने की गारंटी देता है, जबकि UDP पैकेट छोड़ने से छोटे ऑपरेटर डिवाइसों के लोड पर कमी नहीं होती, बल्कि पुनः प्रयास के कारण अधिक अनिश्चितता पैदा होती है.

एप्लिकेशन लेयर नेस्टिंग

DNS और HTTP दोनों एप्लिकेशन लेयर प्रोटोकॉल हैं, DoH मूल रूप से एक एप्लिकेशन लेयर प्रोटोकॉल है जो दूसरे एप्लिकेशन लेयर प्रोटोकॉल को नेस्ट करता है. DoH आवश्यक रूप से DNS over HTTPS नहीं है, सामान्य HTTP का उपयोग भी संभव है, बस एन्क्रिप्ट न किया गया DoH प्लेनटेक्स्ट अनुरोध है, जिसकी तुलना में Plain DNS में कोई फायदा नहीं है, और केवल बहुत कम विशेष आवश्यकता वाले दृश्यों में इसका उपयोग किया जाता है.

सैद्धांतिक रूप से किसी भी एप्लिकेशन लेयर प्रोटोकॉल पर DNS ले जाया जा सकता है, जैसे कि DNS over FTP भी लागू किया जा सकता है, बस इसके लिए संबंधित सर्वर और क्लाइंट विकसित करने की आवश्यकता होती है. यह लचीलापन एप्लिकेशन लेयर प्रोटोकॉल संयोजन की संभावनाओं को दर्शाता है.

flowchart TD
    subgraph L7["एप्लिकेशन लेयर"]
        A[DNS]
        B[HTTP]
        C[FTP]
    end
    
    subgraph Security["सुरक्षा परत"]
        D[TLS]
        E[DTLS]
    end
    
    subgraph Transport["ट्रांसपोर्ट लेयर"]
        F[TCP]
        G[UDP]
        H[QUIC]
    end
    
    subgraph L3["नेटवर्क लेयर"]
        I[IP]
    end
    
    subgraph L2["डेटा लिंक लेयर"]
        J[Ethernet]
        K[WiFi]
    end
    
    A --> D
    B --> D
    C --> D
    D --> F
    E --> G
    H --> G
    F --> I
    G --> I
    H --> I
    I --> J
    I --> K
    
    style A fill:#e1f5ff
    style B fill:#e1f5ff
    style C fill:#e1f5ff
    style D fill:#fff4e1
    style E fill:#fff4e1
    style F fill:#ffe1e1
    style G fill:#ffe1e1
    style H fill:#e1ffe1

ट्रांसपोर्ट लेयर नेस्टिंग

QUIC प्रोटोकॉल UDP पर आधारित है और साथ ही ट्रांसपोर्ट लेयर पर कनेक्शन-उन्मुख सेवा प्रदान करता है. QUIC ने TCP द्वारा प्रदान की जाने वाली कनेक्शन-उन्मुख, कंजेशन कंट्रोल, रीट्रांसमिशन, फ्लो कंट्रोल, फ्रैगमेंटेशन और रीसेंबली जैसी ट्रांसपोर्ट लेयर क्षमताओं को लागू किया है. TCP की तुलना में, QUIC का विलंबता (latency) कम है. UDP की तुलना में, QUIC अधिक उन्नत और विश्वसनीय है.

प्रोटोकॉल संयोजन संबंध

एप्लिकेशन लेयर और ट्रांसपोर्ट लेयर के बीच कोई आवश्यक प्रतिबंध संबंध नहीं है, एन्क्रिप्शन जोड़ा भी जा सकता है और नहीं भी. HTTP TCP पर चल सकता है, या QUIC पर भी. DNS TCP पर चल सकता है, UDP पर भी, और QUIC पर भी.

इन संभावनाओं के आधार पर, निम्नलिखित संयोजन संबंधों को सारांशित किया जा सकता है. Plain DNS का मतलब है UDP या TCP पर DNS प्रोटोकॉल. HTTP/2 का मतलब है TCP + TLS 1.2 या TLS 1.3 + HTTP प्रोटोकॉल. HTTP/3 का मतलब है QUIC + TLS 1.3 + HTTP प्रोटोकॉल.

DoH (DNS over HTTPS) का मतलब है HTTP/2 या HTTP/3 + DNS प्रोटोकॉल. DoT (DNS over TLS) का मतलब है TCP + TLS 1.2 या TLS 1.3 + DNS प्रोटोकॉल. DoQ (DNS over QUIC) का मतलब है QUIC + TLS 1.3 + DNS प्रोटोकॉल.

flowchart LR
    subgraph DoT["DoT DNS over TLS"]
        direction LR
        T1[TCP] --> T2[TLS]
        T2 --> T3[DNS]
    end
    
    subgraph DoH2["DoH over HTTP/2"]
        direction LR
        H1[TCP] --> H2[TLS]
        H2 --> H3[HTTP/2]
        H3 --> H4[DNS]
    end
    
    subgraph DoH3["DoH over HTTP/3"]
        direction LR
        Q1[QUIC] --> Q2[TLS 1.3]
        Q2 --> Q3[HTTP/3]
        Q3 --> Q4[DNS]
    end
    
    subgraph DoQ["DoQ DNS over QUIC"]
        direction LR
        D1[QUIC] --> D2[TLS 1.3]
        D2 --> D3[DNS]
    end
    
    style T1 fill:#e3f2fd
    style T2 fill:#fff3e0
    style H1 fill:#e3f2fd
    style H2 fill:#fff3e0
    style Q1 fill:#e8f5e9
    style Q2 fill:#fff3e0
    style D1 fill:#e8f5e9
    style D2 fill:#fff3e0

प्रदर्शन और संगतता विश्लेषण

प्रोटोकॉल पदानुक्रम को समझने के बाद, DoH और DoT के फायदे और नुकसान का विश्लेषण किया जा सकता है.

TCP और QUIC की तुलना के लिए ऑपरेटर के वास्तविक नेटवर्क वातावरण को ध्यान में रखना होगा. QUIC एक नया प्रोटोकॉल है, जिसने कुछ पुरानी नेटवर्क समस्याओं का समाधान किया है, लेकिन यह आखिरकार UDP पर आधारित है. नेटवर्क विलंबता के नजरिए से, QUIC-आधारित प्रोटोकॉल की विलंबता TCP की तुलना में लगभग 35% कम है, इसलिए DNS over HTTP/3 और DoQ (DNS over QUIC) सैद्धांतिक रूप से DNS over HTTP/2 और DoT की तुलना में बेहतर प्रदर्शन करेंगे.

हालांकि, वास्तविक नेटवर्क वातावरण में पैकेट लॉस के कारण होने वाली रीट्रांसमिशन विलंबता की समस्या मौजूद है. ऑपरेटर नेटवर्क व्यस्त होने पर UDP पैकेट छोड़ते हैं, QUIC को UDP के रूप में पहचाना जाता है और इसे छोड़ दिया जाता है. हालांकि QUIC रीट्रांसमिशन का समर्थन करता है, लेकिन रीट्रांसमिशन के कारण होने वाली देरी से QUIC की वास्तविक विलंबता TCP से अधिक हो सकती है.

गोपनीयता और सुरक्षा के मामले में, DoH और DoT दोनों एन्क्रिप्टेड ट्रैफ़िक हैं, जिन्हें चुराया या बदला नहीं जा सकता. DoT की पहचान होने के बाद ब्लॉक किए जाने के बारे में, मुख्य कारण यह है कि एंड्रॉइड सिस्टम के एन्क्रिप्टेड DNS सेटिंग्स डिफ़ॉल्ट रूप से 853 पोर्ट का उपयोग करते हैं, जिससे 853 पोर्ट एक संवेदनशील पोर्ट बन गया है. DoT स्वयं एक सामान्य एन्क्रिप्टेड ट्रैफ़िक है, इसे DNS-विशिष्ट ट्रैफ़िक के रूप में नहीं पहचाना जाता. वास्तव में कोई भी पोर्ट DoT सेवा प्रदान कर सकता है, इसके लिए एंड्रॉइड पर तीसरे पक्ष के एप्लिकेशन की आवश्यकता होती है, जबकि iOS में किसी भी पोर्ट पर DoT का उपयोग करने के लिए मूल समर्थन है.

विस्तारणीयता (Extensibility) DoH का एक महत्वपूर्ण लाभ है. HTTP-एनकैप्सुलेटेड DNS और Plain DNS की तुलना में, HTTP में स्पष्ट रूप से बेहतर विस्तारणीयता होती है. सेवा प्रदाता 443 पोर्ट पर असीमित सेवाएं प्रदान कर सकते हैं, जिसमें DoH शामिल है, और कार्यक्षमता का विस्तार करना आसान है. DoT और DoQ आमतौर पर अनन्य पोर्ट की आवश्यकता रखते हैं, और उनकी विस्तारण क्षमता पूरी तरह से Plain DNS पर आधारित है. यह सेवा प्रदाता के दृष्टिकोण का अंतर है, सामान्य उपयोगकर्ताओं के लिए अभी कोई स्पष्ट अनुभव नहीं है.

DNS अनुरोधों की प्रोसेसिंग गति के मामले में, HTTP की प्रोसेसिंग गति वास्तव में Plain DNS की तुलना में कुछ CPU साइकिल धीमी हो सकती है, लेकिन व्यावहारिक उपयोग में यह अंतर नगण्य है. संगतता के मामले में, DoH अधिक मुख्यधारा हो सकता है क्योंकि सेवा प्रदाताओं के लिए DoH की विस्तारणीयता अच्छी है.

वर्तमान मुख्यधारा के प्लेटफ़ॉर्म्स द्वारा एन्क्रिप्टेड DNS का समर्थन अलग-अलग है. Chromium कर्नेल वाले ब्राउज़र DoH का समर्थन करते हैं. विंडोज 11 सिस्टम DoH का मूल समर्थन करता है. एंड्रॉइड 8 और उच्चतर संस्करण DoT का मूल समर्थन करते हैं. एंड्रॉइड 11 और उच्चतर संस्करण DoT और DoH दोनों का मूल समर्थन करते हैं. macOS सिस्टम DoT और DoH का मूल समर्थन करता है. iOS सिस्टम DoT और DoH का मूल समर्थन करता है.

व्यावहारिक चयन सुझाव

आम उपयोगकर्ताओं के लिए, DoH का उपयोग करना DoT की तुलना में बेहतर है. DoH की तुलना में DoT, अधिकांश समय बेहतर विलंबता प्रदान करता है, और कम समय समान विलंबता प्रदान करता है. DoH की तुलना में DoQ, अधिकांश समय समान विलंबता होती है, और कम समय बेहतर विलंबता मिलती है.

इस निष्कर्ष का पूर्वानुमान यह है कि सेवा प्रदाता DNS over HTTP/3 सेवा प्रदान करता है. यदि सेवा प्रदाता HTTP/3 प्रदान नहीं करता है, तो DoH और DoT में कोई स्पष्ट अंतर नहीं है. DoH नेटवर्क की गुणवत्ता अच्छी होने पर, स्वचालित रूप से DoH/3 का उपयोग कर कम विलंबता प्राप्त करता है, और नेटवर्क की गुणवत्ता खराब होने पर, स्वचालित रूप से HTTP/2 में डाउनग्रेड हो जाता है. इस अनुकूली क्षमता के लिए सेवा प्रदाता को लागू करना होगा, हालांकि मुख्यधारा के सेवा प्रदाताओं ने आमतौर पर इसे लागू कर दिया है.

नलप्राइवेट (NullPrivate) आज़माने की अनुशंसा की जाती है, यह DoT और DoH/3 का समर्थन करता है और इसमें मूल रूप से विज्ञापन अवरोधन और DNS विभाजन (DNS splitting) की कार्यक्षमता है. यदि आप स्वयं तैनाती (self-deploy) करना चाहते हैं, तो आप इसके ओपन-सोर्स लाइब्रेरी का उपयोग कर सकते हैं.

नेटवर्क प्रोटोकॉल का चयन करते समय ऑपरेटर की नेटवर्क गुणवत्ता, सेवा प्रदाता के समर्थन की स्थिति, डिवाइस संगतता आदि कई कारकों पर विचार करना होगा. अधिकांश उपयोगकर्ताओं के लिए, DoH प्रदर्शन, संगतता और गोपनीयता सुरक्षा को संतुलित करने वाला एक उत्कृष्ट विकल्प है.