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 ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ