0.0.0.0:0 in een Indy UDP ASSOCIATE-verzoek kan opzettelijk zijn. Dat verzoek beschrijft het verwachte UDP-eindpunt aan clientzijde, en RFC 1928 staat nullen toe wanneer het onbekend is. Het selecteert niet de uiteindelijke dienst.

De BND.ADDR/BND.PORT van het antwoord wijst de relay aan waarnaar de client ingekapselde datagrammen stuurt.

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

In Indy roept TIdUDPClient.Connect de OpenUDP van de transparante proxy aan. TIdSocksInfo levert de nul-associatievelden. Later geeft SendBuffer de gewenste dienst door aan SendToUDP, die de SOCKS UDP-bestemmingsheader vóór de applicatiegegevens opbouwt.

Als de associatie slaagt maar het verkeer mislukt, onderzoek dan de teruggegeven relay, de gecodeerde bestemming en het UDP-antwoordpad. NAT/firewalls kunnen de TCP-uitwisseling doorlaten terwijl ze UDP blokkeren.

Houd de TCP-besturingsverbinding open; sluiten beëindigt de associatie. SOCKS4/4a missen deze bewerking, en de naam SOCKS5 alleen garandeert niet dat een server UDP ondersteunt.

Gerelateerde artikelen