SOCKS4 కనెక్షన్ అభ్యర్థన విజయవంతమవుతుంది, కానీ అప్లికేషన్ సర్వర్ యొక్క ప్రారంభ పలకరింపును ఎప్పుడూ చూడదు. చూడవలసిన ఒక ప్రదేశం కనెక్టర్ యొక్క మొదటి పఠనం. పదహారు బైట్‌ల పఠనం ఎనిమిది బైట్‌ల SOCKS4 ప్రతిస్పందనకు చాలా పెద్దది.

ప్రతిస్పందన క్షేత్రంబైట్‌లు
ప్రతిస్పందన సంస్కరణ క్షేత్రం1
ఫలిత కోడ్1
పోర్ట్ క్షేత్రం2
చిరునామా క్షేత్రం4

ఫలిత కోడ్ 0x5a అభ్యర్థన ఆమోదించబడిందని సూచిస్తుంది. SOCKS4a అభ్యర్థన హోస్ట్‌నామ్‌ను ఎలా మోసుకొస్తుందో మారుస్తుంది; అది ప్రతిస్పందనను పదహారు బైట్‌లుగా మార్చదు.

ప్రతిస్పందన తర్వాత అదే TCP స్ట్రీమ్ గమ్యం యొక్క ప్రోటోకాల్‌ను మోసుకొస్తుంది. మెయిల్ సర్వర్ తన పలకరింపును వెంటనే పంపవచ్చు. అందువల్ల అందుబాటులో ఉన్న పదహారు బైట్‌లను వినియోగించే పఠనం పూర్తి ప్రాక్సీ ప్రతిస్పందనతో పాటు ఆ పలకరింపు మొదటి ఎనిమిది బైట్‌లను తీసుకోవచ్చు. ఇంకా ఏమీ రాకపోతే, చాలా పెద్ద బ్లాకింగ్ పఠనం బదులుగా అనవసర నిరీక్షణను జోడించవచ్చు.

ఖచ్చితమైన పొడవు పార్సర్ బాధ్యత

ఒకసారి ఎనిమిది బైట్‌లు అడగడం ఎనిమిది బైట్‌లు వచ్చాయనడానికి సరిపడా రుజువు కాదు. స్ట్రీమ్ పఠనాలు తక్కువ తిరిగి ఇవ్వవచ్చు. గడువు లోపు ప్రతిస్పందన పొడవును ఖచ్చితంగా సేకరించండి, మూసివేసిన లేదా విఫలమైన స్ట్రీమ్‌లో ఆపండి, ప్రతిస్పందనను పరిశీలించండి, తదుపరి బైట్‌లను అప్లికేషన్ కోసం వదిలేయండి.

కనెక్టర్ పెద్ద బఫర్ పఠనాన్ని ఉపయోగిస్తే, సరిహద్దు తర్వాత ప్రతిదీ భద్రపరచి తదుపరి వినియోగదారుకు అందించండి. మిగిలినది పారేయడం వేరే పఠన పరిమాణంతో అదే డేటా నష్టం.

SOCKS5 కి దాని స్వంత పార్సర్ అవసరం. దాని ప్రతిస్పందన చిరునామా పొడవు చిరునామా రకాన్ని బట్టి భిన్నంగా ఉండవచ్చు. ప్రతి ప్రాక్సీ పఠనాన్ని స్థిర ఎనిమిది బైట్ పఠనంతో భర్తీ చేయడం ఒక ప్రోటోకాల్‌ను సరిచేసి మరొకదాన్ని పాడు చేస్తుంది.

సంబంధిత వ్యాసాలు