Zure Java HTTP eskaerak SOCKS bidez funtzionatzen du, baina UDP funtzio batek oraindik trafikoa zuzenean bidaltzen du edo huts egiten du. JVMaren SOCKS propietateak ezartzeak ez dio DatagramSocket-ri SOCKS5 UDP inplementaziorik ematen.

DatagramSocket APIak sareko mutur-puntuei zuzendutako datagramak bidaltzen eta jasotzen ditu. Bere connect() metodoak socket horretarako pare bat aukeratzen du. Ez du SOCKS negoziaziorik egiten parearekin.

SOCKS5 UDP ibilbideak lan gehiago eskatzen du

SOCKS5ek TCP kontrol-konexio baten gainean ezartzen den UDP elkarte bat definitzen du. Ondoren, bezeroak proxyak emandako errelebo helbidearekin datagrama kapsulatuak trukatzen ditu. Mezu kapsulatu bakoitzak bere helmuga identifikatzen du. Bezeroaren inplementazioak kapsulatze hori eta kontrol-konexioaren bizitza kudeatu behar ditu.

UDP socket arrunt bat proxyaren TCP entzute-portura zuzentzeak urrats horiek saltzen ditu. Zure aplikazioaren datagrama gordinak helbide horretara bidaltzeak ez du elkartea ordezkatzen.

Aukeratu SOCKS5 UDP errelekoa berariaz onartzen duen liburutegi edo aplikazio-funtzio bat, eta egiaztatu zerbitzariak ere onartzen duela. SOCKS onarpena iragartzen duen liburutegi batek TCP CONNECT baino ez du inplementa dezake. Protokoloaren zehaztapenak komandoak bereizten ditu.

UDP errelekoak bide erabilgarri bat ere behar du

Proxyarekiko TCP konexio arrakastatsu batek kontrol-bidea baino ez du ezartzen. Su-bozgoratzaileek edo NATaren portaerak errelekora bidalitako datagrametan eragotzi dezakete oraindik. Bildu itzultzen den erreleko mutur-puntua eta erreleko errore oro, aplikazioaren helmuga lineaz kanpo dagoela ondorioztatu aurretik.

Azkenik, SOCKS garraio-onarpenak ez dio UDPri entregatze-bermerik gehitzen. Zure aplikazioaren denbora-mugak, galtzen kudeaketa eta mezu-tamainaren mugek indarrean jarraitzen dute ibilbidea aldatu ondoren.

Erlazionatutako artikuluak