'N Oorsig van sokprogrammering vir rekenaarnetwerk

'N aansluiting is een van die mees fundamentele tegnologieë van rekenaarnetwerkprogrammering. Sockets laat netwerkprogrammatuur toe om te kommunikeer deur gebruik te maak van standaardmeganismes wat in netwerkhardeware en bedryfstelsels ingebou is.

Alhoewel dit dalk net soos 'n ander kenmerk van die ontwikkeling van internetprogrammatuur klink, het soktegnologie lank voor die Web bestaan. En baie van vandag se gewildste netwerkprogrammatuurtoepassings maak staat op voetstukke.

Wat Sockets kan doen vir jou netwerk

'N Sokkel verteenwoordig 'n enkele verbinding tussen presies twee stukke sagteware ('n sogenaamde punt-tot-punt- verbinding). Meer as twee stukke sagteware kan kommunikeer met kliënt / bediener of verspreide stelsels deur gebruik te maak van verskeie voetstukke. Byvoorbeeld, baie webblaaiers kan gelyktydig met 'n enkele webbediener kommunikeer via 'n groep voetstukke op die bediener.

Socket-gebaseerde sagteware loop gewoonlik op twee afsonderlike rekenaars op die netwerk, maar sokke kan ook gebruik word om plaaslik ( interproses ) op 'n enkele rekenaar te kommunikeer. Sockets is bidirectioneel , wat beteken dat weerskante van die konneksie in staat is om beide die stuur en ontvang van data. Soms is die een toepassing wat kommunikasie begin, die "kliënt" en die ander toepassing die "bediener" genoem, maar hierdie terminologie lei tot verwarring in eweknie- netwerkvorming en moet oor die algemeen vermy word.

Socket APIs en Biblioteke

Verskeie biblioteke wat standaardprogrammeringsinterfaces (API's) implementeer , bestaan ​​op die internet. Die eerste hoofstroom pakket - die Berkeley-sokkelbiblioteek is steeds wyd in gebruik op UNIX-stelsels. Nog 'n baie algemene API is die Windows Sockets (WinSock) -biblioteek vir Microsoft-bedryfstelsels. In vergelyking met ander rekenaar tegnologie, is socket-API's baie volwasse: WinSock is sedert 1993 gebruik en Berkeley-voetstukke sedert 1982.

Die socket API's is relatief klein en eenvoudig. Baie van die funksies is soortgelyk aan dié wat gebruik word in lêerinvoer / afvoerroetines soos lees () , skryf () en naby () . Die werklike funksie oproepe om te gebruik, hang af van die gekose programmeertaal en socketbiblioteek.

Socket Interface Types

Sok-koppelvlakke kan in drie kategorieë verdeel word:

  • Stream sockets, die mees algemene tipe, vereis dat die twee kommunikasie partye eers 'n aansluiting maak, waarna enige data wat deur die verbinding geslaag word, gewaarborg sal word om in dieselfde volgorde waarin dit gestuur is - sogenaamde verbindingsgeoriënteerde programmering model.
  • Datagram voetstukke bied "verbindings minder" semantiek. Met datagramme, verbindings is implisiet eerder as eksplisiet as met strome. Enige party stuur eenvoudig datagramme na behoefte en wag vir die ander om te reageer; boodskappe kan in die oordrag verloor of ontvang word, maar dit is die aansoek se verantwoordelikheid en nie die voetstukke om hierdie probleme te hanteer nie. Implementering van datagram-voetstukke kan sommige toepassings 'n prestasiehupstoot gee en bykomende buigsaamheid in vergelyking met die gebruik van stroomkoppies, wat hulle gebruik in sommige situasies regverdig.
  • Die derde tipe aansluiting - die rou sok - omseil die biblioteek se ingeboude ondersteuning vir standaard protokolle soos TCP en UDP . Ruwe voetstukke word gebruik vir persoonlike lae vlak protokol ontwikkeling.

Socket-ondersteuning in netwerkprotokolle

Moderne netwerk voetstukke word tipies gebruik in samewerking met die internetprotokolle - IP, TCP, en UDP. Biblioteke wat sokkies vir internetprotokol implementeer, gebruik TCP vir strome, UDP vir datagramme, en IP self vir rou voetstukke.

Om via internet te kommunikeer, gebruik IP-sokkelbiblioteke die IP-adres om spesifieke rekenaars te identifiseer. Baie dele van die Internet werk met name dienste, sodat die gebruikers en socket programmeerders met die rekenaar kan werk op naam ( bv . "Thiscomputer.wireless.about.com") in plaas van op adres ( bv . 208.185.127.40). Stroom en datagram voetstukke gebruik ook IP- poortnommers om verskeie toepassings van mekaar te onderskei. Byvoorbeeld, Web blaaiers op die internet weet om poort 80 te gebruik as die standaard vir sokkommunikasie met webbedieners.