SOCKS5 अगाडिको भागले HTTP प्रोक्सीलाई आफ्नो अगाडिको यातायातका रूपमा प्रयोग गर्न सक्छ। यो ग्राहकतर्फ SOCKS सर्भर र अभिभावकतर्फ HTTP CONNECT ग्राहकका रूपमा काम गर्छ। अनुप्रयोगको प्रवाह सुरु हुनुअघि नै दुवै नियन्त्रण आदानप्रदान सकिन्छन्।

SOCKS CONNECT अनुरोधले गन्तव्य होस्ट वा ठेगाना र पोर्ट पहिल्यै दिन्छ। अभिभावकसँगको उदाहरणात्मक HTTP/1.1 आदानप्रदानका लागि:

client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
    CONNECT service.example.net:443 HTTP/1.1
    Host: service.example.net:443

parent → adapter: HTTP/1.1 200 Connection Established
                 [end of headers]
adapter → client: SOCKS5 success reply

client ↔ adapter ↔ parent ↔ service: application bytes

सीमामा नतिजाको अनुवाद गर्नुहोस्

अडाप्टरले अभिभावकमा आवश्यक पर्ने कुनै पनि प्रमाणीकरण पूरा गर्छ र CONNECT नतिजाको प्रतीक्षा गर्छ। सफल 2xx जवाफले अभिभावकको सुरुङ स्थापना गर्छ। त्यसपछि मात्र यसले सम्बन्धित SOCKS सफलताको जवाफ तल्लो ग्राहकलाई फर्काउनुपर्छ।

अभिभावकले कार्य अस्वीकार गरेमा, परिभाषित SOCKS असफलताको जवाफ पठाउनुहोस्, त्यसपछि ग्राहकको जडान तुरुन्तै अन्त्य गर्नुहोस्। SOCKS5 ले असफलता पत्ता लागेको दस सेकेन्डभित्र त्यो बन्द हुनुपर्ने माग गर्छ। अभिभावकको HTTP स्थिति अडाप्टरका लागि निदान जानकारीका रूपमा राख्नुहोस्। त्यो स्थिति पङ्क्ति अनुप्रयोग डेटाका रूपमा पठाउँदा ग्राहकले SOCKS फ्रेमिङ अपेक्षा गर्ने प्रवाहमा HTTP नियन्त्रण सन्देश पस्नेछ।

सफल CONNECT नतिजाअघि अभिभावक अझै HTTP बोल्छ, कुनै पनि चुनौती वा त्रुटि जवाफको फ्रेमिङसमेत। सफल नतिजाको हेडर विभाजकपछि जडान सुरुङ बन्छ; पहिले उपभोग गर्नुपर्ने कुनै HTTP जवाफ मुख्य भाग हुँदैन।

हेडरपछिका बाइटहरू सुरक्षित राख्नुहोस्

एउटै पढाइमा अभिभावकका हेडरको अन्त्य र गन्तव्यबाट आएका बाइटहरू सँगै हुन सक्छन्। ती अतिरिक्त बाइटहरू तल्लो अनुप्रयोगका लागि राख्नुहोस्। सर्भर पहिले बोल्ने प्रोटोकलहरूले आफ्नो जडान खुल्नेबित्तिकै अभिवादन गर्न सक्छन्।

SOCKS सफलताको जवाफ पठाइसकेपछि, अनुप्रयोगको प्रवाह दुवै दिशामा पठाउनुहोस्। अडाप्टरले एउटा ग्राहक सन्देशलाई एउटा सर्भर सन्देशसँग पालैपालो गर्नु पर्दैन, र तिनलाई पठाउन TLS अभिलेखहरू बुझ्नु पनि पर्दैन। यसको प्रोटोकल काम दुई सुरुङ वार्ताहरू स्थापना गर्ने र अनुवाद गर्ने थियो।

सम्बन्धित लेखहरू