Indy UDP ASSOCIATE अनुरोध में 0.0.0.0:0 जानबूझकर हो सकता है। वह अनुरोध क्लाइंट पक्ष के अपेक्षित UDP एंडपॉइंट का वर्णन करता है, और RFC 1928 अज्ञात होने पर शून्य की अनुमति देता है। यह अंतिम सेवा का चयन नहीं करता।

उत्तर का BND.ADDR/BND.PORT उस रिले को दर्शाता है जिसे क्लाइंट एनकैप्सुलेटेड डेटाग्राम भेजता है।

TCP control: client → SOCKS5 proxy → UDP association reply
UDP payload: client → returned relay address → target service

Indy में TIdUDPClient.Connect पारदर्शी प्रॉक्सी के OpenUDP को कॉल करता है। TIdSocksInfo शून्य एसोसिएशन फ़ील्ड प्रदान करता है। बाद में SendBuffer वांछित सेवा को SendToUDP तक पहुँचाता है, जो एप्लिकेशन डेटा से पहले SOCKS UDP गंतव्य हेडर बनाता है।

यदि एसोसिएशन सफल होता है पर ट्रैफ़िक विफल रहता है, तो लौटाया गया रिले, एन्कोड किया गया गंतव्य और UDP उत्तर पथ जाँचें। NAT/फ़ायरवॉल TCP आदान-प्रदान स्वीकार करते हुए UDP को अवरुद्ध कर सकते हैं।

TCP नियंत्रण कनेक्शन खुला रखें; उसे बंद करने से एसोसिएशन समाप्त हो जाता है। SOCKS4/4a में यह क्रिया नहीं है, और केवल SOCKS5 नाम यह निश्चित नहीं करता कि सर्वर UDP का समर्थन करता है।

संबंधित लेख