బ్యాక్గ్రౌండ్ & టెక్నాలజీతో సహా Winsock పరిచయం
Introduction Winsock Including Background Technology
ఈ పోస్ట్ ప్రధానంగా Windows Sockets API గురించి మాట్లాడుతోంది, దీనిని WSA మరియు Winsockగా కుదించవచ్చు. ఈ పోస్ట్ చదివిన తర్వాత, మీరు దాని నిర్వచనం, నేపథ్యం, సాంకేతికత, అలాగే అమలులను తెలుసుకోవచ్చు.
ఈ పేజీలో:Winsock కు నిర్వచనం
Winsock అంటే ఏమిటి? కంప్యూటింగ్లో, Winsock అనేది Windows నెట్వర్క్ సాఫ్ట్వేర్ నెట్వర్క్ సేవలను, ముఖ్యంగా TCP/IPని ఎలా యాక్సెస్ చేయాలో నిర్వచించడానికి ఉపయోగించే సాంకేతిక వివరణ. విండోస్కు బర్కిలీ యునిక్స్ సాకెట్ ఇంటర్ఫేస్కి అనుసరణ అయినందున దీనిని విన్సాక్ అని పిలుస్తారు. సాకెట్ అనేది ఒకే కంప్యూటర్ లేదా నెట్వర్క్లోని రెండు ప్రోగ్రామ్ ప్రాసెస్ల మధ్య డేటాను కనెక్ట్ చేయడానికి మరియు మార్పిడి చేయడానికి ఉపయోగించే ఒక ప్రత్యేక ఒప్పందం.
చిట్కా: మీరు ఇతర ఇంటర్నెట్ ప్రోటోకాల్ల గురించి మరింత సమాచారం తెలుసుకోవాలనుకుంటే, MiniTool వెబ్సైట్కి వెళ్లాలని సిఫార్సు చేయబడింది.
Winsock అనేది Windows Sockets API (WSA) యొక్క సంక్షిప్తీకరణ. ఇది Windows TCP/IP క్లయింట్ అప్లికేషన్లు (FTP క్లయింట్లు లేదా వెబ్ బ్రౌజర్లు వంటివి) మరియు ప్రాథమిక TCP/IP ప్రోటోకాల్ స్టాక్ల మధ్య ప్రామాణిక ఇంటర్ఫేస్ను నిర్వచిస్తుంది.
సంబంధిత పోస్ట్: Windows 10 నెట్వర్క్ సమస్యను పరిష్కరించడానికి Netsh Winsock రీసెట్ కమాండ్ని ఉపయోగించండి
విన్సాక్ నేపథ్యం
అక్టోబర్ 1991లో CompuServe BBS నెట్వర్క్పై BoF (బర్డ్ ఆఫ్ ఎ ఫెదర్) చర్చలో JSB సాఫ్ట్వేర్ (తరువాత స్టార్డస్ట్ టెక్నాలజీస్) యొక్క మార్టిన్ హాల్ ద్వారా Windows సాకెట్స్ API ప్రతిపాదించబడింది.
స్పెసిఫికేషన్ యొక్క మొదటి వెర్షన్ను మార్టిన్ హాల్, మైక్రోడైన్కు చెందిన మార్క్ టౌఫిక్ (తరువాత సన్ మైక్రోసిస్టమ్స్), సన్ మైక్రోసిస్టమ్స్కు చెందిన జియోఫ్ ఆర్నాల్డ్, మరియు హెన్రీ సాండర్స్ మరియు మైక్రోసాఫ్ట్కు చెందిన జె అల్లార్డ్ చాలా మంది ఇతరుల సహాయంతో రాశారు.
కాపీరైట్, మేధో సంపత్తి మరియు సంభావ్య యాంటీట్రస్ట్ సమస్యలను ఎలా ఉత్తమంగా పరిష్కరించాలి మరియు IETF లేదా లాభాపేక్ష లేని ఫౌండేషన్ల స్థాపన ద్వారా పనిని పరిగణనలోకి తీసుకోవడంపై కొన్ని చర్చలు జరిగాయి. చివరికి, స్పెసిఫికేషన్ను ఐదుగురు (అనుబంధం లేని) రచయితలు మాత్రమే కాపీరైట్ చేయాలని నిర్ణయించారు.
API మరియు DLL లైబ్రరీ ఫైల్ (winsock.dll) మధ్య చాలా గందరగోళం ఉన్నందున పాల్గొనే డెవలపర్లందరూ చాలా కాలం పాటు పేరును కేవలం Winsock అని సంక్షిప్తీకరించడానికి నిరాకరించారు, ఇది సాధారణ WSA ఇంటర్ఫేస్ను దాని పైన ఉన్న అప్లికేషన్కు మాత్రమే బహిర్గతం చేసింది. సిస్టమ్లో DLL ఫైల్ ఉందని నిర్ధారించుకోవడం మాత్రమే పూర్తి TCP/IP ప్రోటోకాల్ మద్దతును అందించగలదని సాధారణంగా నమ్ముతారు.
విన్సాక్ యొక్క సాంకేతికత
విండోస్ సాకెట్ API స్పెసిఫికేషన్ రెండు ఇంటర్ఫేస్లను నిర్వచిస్తుంది: అప్లికేషన్ డెవలపర్లు ఉపయోగించే API మరియు సిస్టమ్కు కొత్త ప్రోటోకాల్ మాడ్యూళ్లను జోడించడానికి నెట్వర్క్ సాఫ్ట్వేర్ డెవలపర్లకు ఒక పద్ధతిని అందించే SPI. ప్రతి ఇంటర్ఫేస్ ఒక ఒప్పందాన్ని సూచిస్తుంది.
ఏ నెట్వర్క్ సాఫ్ట్వేర్ విక్రేత యొక్క కన్ఫార్మింగ్ ప్రోటోకాల్ అమలుతో అనుగుణమైన అప్లికేషన్లు సాధారణంగా రన్ అవుతాయని API హామీ ఇస్తుంది. SPI కాంట్రాక్టు ప్రకారం, ప్రోటోకాల్ మాడ్యూల్లను Windowsకు జోడించవచ్చని హామీ ఇస్తుంది, తద్వారా అవి API-కంప్లైంట్ అప్లికేషన్ల ద్వారా ఉపయోగించబడతాయి.
విండోస్ సాకెట్లు మొదట విడుదల చేయబడినప్పుడు ఈ ఒప్పందాలు ముఖ్యమైనవి అయినప్పటికీ, అవి ఇప్పుడు విద్యాపరమైన ప్రాముఖ్యతను కలిగి ఉన్నాయి ఎందుకంటే నెట్వర్క్ పర్యావరణానికి బహుళ-ప్రోటోకాల్ మద్దతు అవసరం. విండోస్ సాకెట్స్ API వెర్షన్ 2.0 IPX/SPXని ఉపయోగించే ఫంక్షన్ను కలిగి ఉంది, అయినప్పటికీ WSA 2.0 ఫ్యాక్టరీని విడిచిపెట్టినప్పుడు ఈ ప్రోటోకాల్ దాదాపు వాడుకలో లేదు.
Windows సాకెట్స్ కోడ్ మరియు డిజైన్ BSD సాకెట్లపై ఆధారపడి ఉంటాయి, అయితే API సంప్రదాయ Windows ప్రోగ్రామింగ్ మోడల్కు అనుగుణంగా ఉండేలా అదనపు ఫీచర్లు అందించబడ్డాయి.
Windows సాకెట్స్ API దాదాపు BSD సాకెట్స్ API యొక్క అన్ని లక్షణాలను కవర్ చేసింది, అయితే కొన్ని అనివార్యమైన అడ్డంకులు ఉన్నాయి, ఇవి ప్రధానంగా Windows మరియు Unix మధ్య ఉన్న ప్రాథమిక వ్యత్యాసాల వల్ల ఏర్పడతాయి (అయితే Windows Sockets మరియు BSD సాకెట్ల మధ్య వ్యత్యాసం వాటి మధ్య వ్యత్యాసం కంటే తక్కువగా ఉంది. రెండోది మరియు స్ట్రీమ్స్).
అయినప్పటికీ, Windows సాకెట్ల రూపకల్పన లక్ష్యం డెవలపర్లు Unix నుండి Windows వరకు సాకెట్-ఆధారిత అప్లికేషన్లను పోర్ట్ చేయడం సాపేక్షంగా సులభం చేయడం. కొత్తగా వ్రాసిన Windows ప్రోగ్రామ్లకు మాత్రమే ఉపయోగపడే APIలను సృష్టించడం సరిపోదు.
అందువల్ల, విండోస్ సాకెట్లు పోర్టింగ్ను సులభతరం చేయడానికి రూపొందించిన అనేక అంశాలను కలిగి ఉన్నాయి. ఉదాహరణకు, ప్రామాణిక C లైబ్రరీ ఫంక్షన్లలో కనుగొనబడిన నెట్వర్క్ లోపాలు మరియు లోపాలను లాగ్ చేయడానికి Unix అప్లికేషన్లు అదే ఎర్రనో వేరియబుల్ని ఉపయోగించవచ్చు.
ఇది Windowsలో అమలు చేయబడదు కాబట్టి, Windows Sockets దోష సమాచారాన్ని తిరిగి పొందేందుకు WSAGetLastError() అనే ప్రత్యేక ఫంక్షన్ను ప్రవేశపెట్టింది. ఇటువంటి యంత్రాంగం చాలా సహాయకారిగా ఉంది, కానీ అప్లికేషన్ పోర్టింగ్ ఇప్పటికీ చాలా క్లిష్టంగా ఉంది.
Unix (సూడో టెర్మినల్స్ మరియు ఫోర్క్ సిస్టమ్ కాల్లు వంటివి)కు ప్రత్యేకమైన సిస్టమ్ ఫీచర్లను ఉపయోగించడం ద్వారా అనేక ఆదిమ TCP/IP అప్లికేషన్లు అమలు చేయబడ్డాయి మరియు Windowsలో ఈ ఫంక్షన్ని పునరుత్పత్తి చేయడం సమస్యాత్మకంగా ఉంది. సాపేక్షంగా తక్కువ సమయంలో, పోర్టింగ్ అంకితమైన విండోస్ అప్లికేషన్ల అభివృద్ధికి దారితీసింది.
Winsock యొక్క అమలు
- Microsoft Winsock 1.0 అమలును అందించలేదు.
- Winsock యొక్క వెర్షన్ 1.1 Windows కోసం వర్క్గ్రూప్ల కోసం ఒక యాడ్-ఆన్ ప్యాకేజీలో (వుల్వరైన్ అని పిలుస్తారు) అందించబడింది (కోడ్ పేరు స్నోబాల్).
- Winsock వెర్షన్ 2.1 Windows 95 కోసం యాడ్-ఆన్ ప్యాకేజీలో అందించబడింది.
- Winsock 2.x యొక్క తాజా వెర్షన్ కొత్త Windows వెర్షన్తో లేదా సర్వీస్ ప్యాక్లో భాగంగా అందించబడింది.
- లేయర్డ్ సర్వీస్ ప్రొవైడర్ (LSP) అనే మెకానిజం ద్వారా Winsock 2ని పొడిగించవచ్చు.