SOCKS5 అభ్యర్థనను HTTP సొరంగంగా అనువదించడం
తల్లిదండ్రులతో CONNECT మార్పిడిని పూర్తి చేయండి, క్లయింట్కు SOCKS ప్రతిస్పందనను తిరిగి పంపండి, ఆ తర్వాత మాత్రమే అప్లికేషన్ బైట్లను పంపండి.
SOCKS5 ముందు భాగం HTTP ప్రాక్సీని తన తదుపరి రవాణాగా ఉపయోగించుకోవచ్చు. ఇది క్లయింట్ వైపు SOCKS సర్వర్గా, తల్లిదండ్రుల వైపు HTTP CONNECT క్లయింట్గా పనిచేస్తుంది. అప్లికేషన్ స్ట్రీమ్ ప్రారంభమయ్యే ముందే రెండు నియంత్రణ మార్పిడులు ముగుస్తాయి.
SOCKS CONNECT అభ్యర్థన గమ్యస్థాన హోస్ట్ లేదా చిరునామా మరియు పోర్టును ఇప్పటికే అందిస్తుంది. తల్లిదండ్రులతో ఒక ఉదాహరణ HTTP/1.1 మార్పిడి కోసం:
client → adapter: SOCKS5 CONNECT service.example.net:443
adapter → parent:
CONNECT service.example.net:443 HTTP/1.1
Host: service.example.net:443
parent → adapter: HTTP/1.1 200 Connection Established
[end of headers]
adapter → client: SOCKS5 success reply
client ↔ adapter ↔ parent ↔ service: application bytes
సరిహద్దులో ఫలితాన్ని అనువదించండి
అడాప్టర్ తల్లిదండ్రులు కోరే ఏదైనా ప్రామాణీకరణను పూర్తి చేసి CONNECT ఫలితం కోసం వేచి ఉంటుంది. విజయవంతమైన 2xx ప్రతిస్పందన తల్లిదండ్రుల సొరంగాన్ని స్థాపిస్తుంది. ఆ తర్వాత మాత్రమే అది సంబంధిత SOCKS విజయ ప్రతిస్పందనను కింది క్లయింట్కు తిరిగి పంపాలి.
తల్లిదండ్రులు ఆపరేషన్ను తిరస్కరిస్తే, నిర్వచించిన SOCKS వైఫల్య ప్రతిస్పందనను పంపి, ఆపై క్లయింట్ కనెక్షన్ను వెంటనే ముగించండి. వైఫల్యం గుర్తించిన పది సెకన్లలోపు ఆ మూసివేతను SOCKS5 తప్పనిసరి చేస్తుంది. తల్లిదండ్రుల HTTP స్థితిని అడాప్టర్ కోసం నిర్ధారణ సమాచారంగా ఉంచండి. ఆ స్థితి పంక్తిని అప్లికేషన్ డేటాగా పంపడం వల్ల క్లయింట్ SOCKS ఫ్రేమింగ్ను ఆశించే స్ట్రీమ్లో HTTP నియంత్రణ సందేశం చేరుతుంది.
విజయవంతమైన CONNECT ఫలితానికి ముందు తల్లిదండ్రులు ఇంకా HTTP మాట్లాడుతుంటారు, ఏదైనా సవాలు లేదా లోప ప్రతిస్పందన ఫ్రేమింగ్తో సహా. విజయవంతమైన ఫలితం యొక్క హెడర్ డీలిమిటర్ తర్వాత కనెక్షన్ సొరంగం అవుతుంది; మొదట వినియోగించాల్సిన HTTP ప్రతిస్పందన బాడీ ఉండదు.
హెడర్ల తర్వాతి బైట్లను భద్రపరచండి
ఒక పఠనంలో తల్లిదండ్రుల హెడర్ల ముగింపు మరియు గమ్యం నుండి వచ్చిన బైట్లు కలిసి ఉండవచ్చు. ఆ అదనపు బైట్లను కింది అప్లికేషన్ కోసం ఉంచండి. సర్వర్ మొదట మాట్లాడే ప్రోటోకాల్లు తమ కనెక్షన్ తెరిచిన వెంటనే పలకరించగలవు.
SOCKS విజయ ప్రతిస్పందన పంపిన తర్వాత, అప్లికేషన్ స్ట్రీమ్ను రెండు దిశలలో పంపండి. అడాప్టర్ ఒక క్లయింట్ సందేశాన్ని ఒక సర్వర్ సందేశంతో మార్చి మార్చి చేయాల్సిన అవసరం లేదు, వాటిని పంపడానికి TLS రికార్డులను అర్థం చేసుకోవాల్సిన అవసరం కూడా లేదు. దాని ప్రోటోకాల్ పని రెండు సొరంగ చర్చలను స్థాపించి అనువదించడం.