Asio له پراکسي سره له نښلېدو وروسته SOCKS5 تبادلې ته اړتیا لري
SOCKS5 د Asio ساکټ په سر د پروتوکول د حالت ماشین په توګه وګورئ، بشپړ لوستل، تصدیق شوي ځوابونه او د منزل TLS یوازې له بریالي CONNECT وروسته.
د Asio TCP ساکټ د SOCKS5 اورېدونکي سره نښلول یوازې یو ګام بشپړوي: هغه اورېدونکي ته TCP اړیکه. دا له پراکسي څخه نه غواړي چې وروستي سرور سره ونښلي. د اجازه ورکړل شوي عام هدف ازموینې لپاره د SOCKS5 پراکسي لیست هغه لومړني TCP پای ټکي لپاره نوماندان وړاندې کوي؛ نښلونکی باید لاندې تبادله بشپړه کړي.
بیا SOCKS5 نښلونکی باید د پروتوکول تبادله ترسره کړي:
- د نسخې 5 سلام واستوئ چې هغه تصدیق کولو میتودونه لیستوي چې کلینټ یې ملاتړ کوي.
- ټاکل شوې طریقه ولولئ او کله چې اړتیا وي د هغې تصدیق تبادله ترسره کړئ.
- CONNECT د منزل د پت ډول، پت او د شبکې بایټ ترتیب پورټ سره واستوئ.
- ځواب ولولئ، نسخه او د پایلې کوډ یې وګورئ، او بشپړ بدلېدونکي اوږدوالي تړلی پت او پورټ وکاروئ.
- جوړ شوی جریان د اپلیکیشن پروتوکول ته وسپارئ.
socks5::async_proxy_connect نومېدونکی مرستندوی د هغه SOCKS پلي کولو پورې اړه لري چې دا مرستندوی وړاندې کوي. د boost::asio تر څنګ یې نومول د Asio د TCP ساکټ انټرفیس برخه نه جوړوي.
TCP لوستل ممکن د ځواب یوازې یوه برخه بیرته راولي. د اړینو بایټ شمېرو لپاره لوستل یوځای کړئ، بیا پاتې اوږدوالی د پت ډول له ساحې څخه وټاکئ. داسې مه انګېرئ چې هر سرور ځواب ثابت IPv4 ترتیب لري.
د HTTPS لپاره له بریالي SOCKS CONNECT وروسته د منزل TLS لاس نیول ترسره کړئ، د منزل SNI او د کوربه نوم تصدیق ساتلو سره. یوازې بریالی پراکسي ځواب وېبسایټ تصدیق نه کوي.
په ټول ترتیب کې لغوه کول او مهالوینې وساتئ. که د TCP اړیکې جوړولو وخت پای ته ورسیږي، وروستي سلام، تصدیق او CONNECT تبادلې بې حده پاتې کیږي.