Indy ର ଶୂନ୍ୟ UDP ASSOCIATE ଠିକଣା ଡେଟାଗ୍ରାମର ଲକ୍ଷ୍ୟ ନୁହେଁ
କ୍ଲାୟେଣ୍ଟ ଆସୋସିଏସନ ଠିକଣା, ଫେରାଇ ଦିଆଯାଇଥିବା SOCKS ରିଲେ ଏବଂ ପ୍ରତ୍ୟେକ UDP ପ୍ୟାକେଟରେ ଏନକୋଡ୍ ହୋଇଥିବା ଲକ୍ଷ୍ୟକୁ ଅଲଗା କରନ୍ତୁ।
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 serviceIndy ରେ TIdUDPClient.Connect ସ୍ୱଚ୍ଛ ପ୍ରକ୍ସିର OpenUDP କୁ ଡାକେ। TIdSocksInfo ଶୂନ୍ୟ ଆସୋସିଏସନ କ୍ଷେତ୍ର ଯୋଗାଏ। ପରେ SendBuffer ଇଚ୍ଛିତ ସେବାକୁ SendToUDP କୁ ଦିଏ, ଯାହା ଆପ୍ଲିକେସନ ଡାଟା ପୂର୍ବରୁ SOCKS UDP ଗନ୍ତବ୍ୟ ହେଡର ତିଆରି କରେ।
ଆସୋସିଏସନ ସଫଳ ହେଲେ ମଧ୍ୟ ଟ୍ରାଫିକ ବିଫଳ ହେଲେ, ଫେରାଇ ଦିଆଯାଇଥିବା ରିଲେ, ଏନକୋଡ୍ ହୋଇଥିବା ଗନ୍ତବ୍ୟ ଏବଂ UDP ଉତ୍ତର ପଥ ଯାଞ୍ଚ କରନ୍ତୁ। NAT/ଫାୟାରୱାଲ TCP ବିନିମୟ ସ୍ୱୀକାର କରି UDP ଅବରୋଧ କରିପାରେ।
TCP ନିୟନ୍ତ୍ରଣ ସଂଯୋଗ ଖୋଲା ରଖନ୍ତୁ; ବନ୍ଦ କଲେ ଆସୋସିଏସନ ସମାପ୍ତ ହୁଏ। SOCKS4/4a ରେ ଏହି କ୍ରିୟା ନାହିଁ, ଏବଂ କେବଳ SOCKS5 ନାମ ସର୍ଭର UDP ସମର୍ଥନ କରେ ବୋଲି ନିଶ୍ଚିତ କରେ ନାହିଁ।