Համակարգչային ցանցերի համար Socket ծրագրավորման ակնարկ

Socket- ը համակարգչային ցանցի ծրագրավորման ամենակարեւոր տեխնոլոգիաներից մեկն է: Սոկեթները թույլ են տալիս ցանցային ծրագրային ապահովման ծրագրեր հաղորդել ցանցային սարքերի եւ օպերացիոն համակարգերի մեջ կառուցված ստանդարտ մեխանիզմների օգտագործման միջոցով:

Թեեւ այն կարող է հնչել ինտերնետի ծրագրային ապահովման զարգացման մեկ այլ առանձնահատկության նման, վարդակից տեխնոլոգիան գոյություն ունի դեռեւս ցանցից դուրս: Եվ այսօրվա ամենատարածված ցանցային ծրագրային ծրագրերից շատերը ապավինում են վարդակների վրա:

Ինչ Sockets կարող են անել ձեր ցանցում

A վարդակից ներկայացնում է միակ կապը երկու ծրագրերի միջեւ (այսպես կոչված կետ-կետ կապ): Ծրագրերի ավելի քան երկու կտորները կարող են հաղորդակցվել հաճախորդի / սերվերի կամ բաշխված համակարգերի հետ, օգտագործելով մի քանի վարդակներ: Օրինակ, շատ վեբ բրաուզերները կարող են միաժամանակ շփվել մի սերվերում մի սերվերի միջոցով:

Socket- ի վրա հիմնված ծրագրակազմը սովորաբար աշխատում է ցանցի երկու առանձին համակարգիչների վրա, սակայն վարդակներ կարող են օգտագործվել նաեւ տեղական հաղորդակցման համար ( միջամտել ) մեկ համակարգչի վրա: Սոկեթները երկկողմանի են , ինչը նշանակում է, որ կապի երկու կողմերն էլ կարող են ուղարկել եւ ստանալ տվյալներ: Երբեմն այն հաղորդումը, որը նախաձեռնում է կապը, կոչվում է «հաճախորդ» եւ մյուսը «սերվերը», սակայն այս տերմինաբանությունը հանգեցնում է հավասարակշռվածության հասակակիցների ցանցին եւ ընդհանուր առմամբ պետք է խուսափել:

Socket API- ներ եւ գրադարաններ

Ինտերնետում առկա են մի շարք գրադարաններ, որոնք իրականացնում են ստանդարտ կիրառման ծրագրավորման ինտերֆեյսներ (API) : Առաջին հիմնական փաթեթը `Բերկլի Սոկեյի գրադարանը, դեռեւս լայնորեն օգտագործվում է UNIX համակարգերում: Մեկ այլ շատ տարածված API- ն Microsoft օպերացիոն համակարգերի Windows Sockets (WinSock) գրադարանն է: Համեմատաբար այլ համակարգչային տեխնոլոգիաներով, Socket API- ները բավականին հասուն են. WinSock- ը օգտագործվել է 1993 թվականից եւ Berkeley խցիկները `1982 թվականից:

Socket API- ը համեմատաբար փոքր եւ պարզ է: Գործառույթներից շատերը նման են ֆայլի մուտքագրման / ելքային ընթացիկների, ինչպիսիք են read () , write () եւ close () . Իրական գործառույթը կոչվում է օգտագործման համար, կախված ծրագրավորման լեզվից եւ ընտրված գրադարանից:

Socket ինտերֆեյսի տեսակներ

Socket ինտերֆեյսները կարելի է բաժանել երեք կատեգորիաների.

  • Հոսքի խցիկները, ամենատարածված տիպը, պահանջում են, որ երկու հաղորդակցող կողմերը առաջինը ստեղծեն մի վարդակային կապ, որից հետո այդ կապով փոխանցված ցանկացած տվյալները երաշխավորված կլինեն նույն կարգի, որ ուղարկվել է `այսպես կոչված, կապի վրա հիմնված ծրագրավորում մոդել:
  • Datagram- ի վարդակները առաջարկում են «կապից պակաս» իմաստաբանություն: Datagrams- ի հետ կապերն անուղղակի են, այլ ոչ թե հստակ, ինչպես հոսանքներով: Կամ կուսակցությունն ուղղակիորեն ուղարկում է դատագոգեր եւ անհրաժեշտության դեպքում սպասում է մյուսին: ուղերձները կարող են կորցնել փոխանցման ընթացքում կամ ստացված կարգով, բայց դա դիմադրության պատասխանատվությունն է եւ ոչ թե խցիկները, որոնք լուծելու են այդ խնդիրները: Դիագրաման վարդակների կիրառումը կարող է տալ որոշ դիմումներ կատարողական խթանման եւ լրացուցիչ ճկունություն համեմատած հոսքային խցիկների օգտագործման հետ `հիմնավորելով դրանց օգտագործումը որոշ դեպքերում:
  • Երրորդ տեսակի վարդակից ` հում սալիկ, շրջանցում է գրադարանի ներկառուցված աջակցությունը ստանդարտ արձանագրությունների, ինչպես TCP- ի եւ UDP- ի : Հումքային խցիկները օգտագործվում են սովորական ցածր մակարդակի արձանագրությունների մշակման համար:

Սարքային աջակցություն ցանցային արձանագրություններում

Ժամանակակից ցանցի վարդակները սովորաբար օգտագործվում են IP, TCP եւ UDP ինտերնետ պրոտոկոլների հետ համատեղ: Ինտերնետ պրոտոկոլի համար խցիկները կիրառող գրադարանները TCP- ն օգտագործում են հոսքերի, UDP- ի համար datagrams- ի եւ IP- ի հումքի խցիկների համար:

Ինտերնետում շփվելու համար IP- ի վեբ-գրադարանները օգտագործում են IP- հասցեն , որոշակի համակարգիչներ հայտնաբերելու համար: Ինտերնետի շատ հատվածներ աշխատում են անվանման ծառայություններով, այնպես որ օգտագործողները եւ վեբ ծրագրավորողները կարող են աշխատել համակարգչի հետ անունով ( օրինակ , «thiscomputer.wireless.about.com») ոչ թե հասցեի ( օրինակ , 208.185.127.40): Հոսքային եւ datagram խցիկները նաեւ օգտագործում են IP պորտի համարները , տարբերելու համար բազմաթիվ ծրագրեր միմյանցից: Օրինակ, Ինտերնետում վեբ բրաուզերները իմանում են 80-րդ նավահանգիստ օգտագործել որպես վեբ սերվերի հետ սալիկների հաղորդակցման կանխադրված: