Asio brauch en SOCKS5-Austausch, nodeems d'Verbindung mam Proxy steet
Behandelt SOCKS5 als Protokoll-Zoustänn-Maschinn iwwer dem Asio-Socket, mat vollstännege Liesvorgäng, geprüfte Äntwerten an TLS zum Zil eréischt no engem erfollegräiche CONNECT.
Een Asio-TCP-Socket mat engem SOCKS5-Listener ze verbannen, schléisst ee Schrëtt of: d'TCP-Verbindung zu deem Listener. Et freet de Proxy net, sech mam endgültege Server ze verbannen. Fir en erlaabte Test géint en ëffentlecht Zil bitt d'SOCKS5-Proxy-Lëscht Kandidaten fir deen éischten TCP-Endpunkt; de Connector muss den Austausch hei drënner awer nach ëmmer duerchféieren.
En SOCKS5-Connector muss duerno den Protokoll-Austausch ausféieren:
- Eng Begréissung vun der Versioun 5 schécken, déi d'Authentifikatiounsmethoden oplëscht, déi de Client ënnerstëtzt.
- Déi gewielte Method liesen an hirem Authentifikatiouns-Austausch ausféieren, wann et verlaangt gëtt.
- CONNECT mat dem Adresstyp, der Adress an dem Port vum Zil an der Netzwerk-Byte-Reiefolleg schécken.
- D'Äntwert liesen, hir Versioun an den Resultatscode kontrolléieren, an déi komplett gebonnen Adress a Port vu variabler Längt verbrauchen.
- Den etabléierte Stroum un de Protokoll vun der Applikatioun iwwerginn.
En Hëllefsinstrument mam Numm socks5::async_proxy_connect gehéiert zu der SOCKS-Implementatioun, déi dëst Hëllefsinstrument bereetstellt. Et niewen boost::asio ze nennen, mécht et net zu engem Deel vun der TCP-Socket-Schnittstell vum Asio.
TCP-Liesvorgäng kënnen nëmmen en Deel vun enger Äntwert zréckginn. Setzt Liesvorgäng fir déi néideg Bytezuelen zesummen, a wielt duerno déi reschtlech Längt aus dem Adresstyp-Feld. Hält net un, datt all Serveräntwert de festen IPv4-Layout huet.
Fir HTTPS féiert den TLS-Handshake zum Zil aus, nodeems SOCKS CONNECT erfollegräich war, an erhaalt déi SNI an d'Hostnummverifikatioun vum Zil. Eng erfollegräich Proxy-Äntwert eleng authentifizéiert d'Websäit net.
Hält Ofbriechung an Deadline iwwer déi ganz Installatiounssequenz. Wann d'Zäit fir den TCP-Verbindungsopbau ofleeft, bleiwen déi spéider Begréissungs-, Authentifikatiouns- an CONNECT-Austausch soss onbegrenzt.