Li tgħaqqad socket TCP ta' Asio ma' semmiegħ SOCKS5 tlesti pass wieħed: il-konnessjoni TCP ma' dak is-semmiegħ. Ma titlobx lill-proxy biex jgħaqqad mas-server finali. Għal test permess fuq mira pubblika, il-lista tal-proxy SOCKS5 toffri kandidati għal dak l-ewwel punt tat-tarf TCP; il-konnettur xorta għandu jlesti l-iskambju hawn taħt.

Konnettur SOCKS5 imbagħad għandu jmexxi l-iskambju tal-protokoll:

  1. Ibgħat tislima tal-verżjoni 5 li telenka l-metodi ta' awtentikazzjoni li jappoġġja l-klijent.
  2. Aqra l-metodu magħżul u wettaq l-iskambju ta' awtentikazzjoni tiegħu meta jkun meħtieġ.
  3. Ibgħat CONNECT bit-tip tal-indirizz tad-destinazzjoni, l-indirizz u l-port fl-ordni tal-byte tan-netwerk.
  4. Aqra t-tweġiba, iċċekkja l-verżjoni tagħha u l-kodiċi tar-riżultat, u kkonsma l-indirizz marbut u l-port sħaħ ta' tul varjabbli.
  5. Għaddi l-fluss stabbilit lill-protokoll tal-applikazzjoni.

Helper imsejjaħ socks5::async_proxy_connect jappartjeni għall-implimentazzjoni SOCKS li tipprovdi dak il-helper. Li ssemmih ħdejn boost::asio ma jagħmilx parti mill-interface tas-socket TCP ta' Asio.

Il-qari TCP jista' jirritorna biss parti minn tweġiba. Ikkomponi qari għall-għadd ta' bytes meħtieġa, imbagħad agħżel it-tul li jifdal mill-qasam tat-tip tal-indirizz. Tassumix li kull tweġiba tas-server għandha t-tqassim fiss IPv4.

Għall-HTTPS, wettaq il-handshake TLS tad-destinazzjoni wara li SOCKS CONNECT jirnexxi, filwaqt li tippreserva l-SNI u l-verifika tal-isem tal-host tad-destinazzjoni. Tweġiba tal-proxy b'suċċess waħedha ma tawtentikax is-sit web.

Żomm il-kanċellazzjoni u l-iskadenzi matul is-sekwenza kollha tas-setup. Jekk jiskadi l-ħin għall-istabbiliment tal-konnessjoni TCP, l-iskambji ta' tislima, awtentikazzjoni u CONNECT li jiġu wara jibqgħu mingħajr limitu.

Artikli relatati