Pregled vtičnega programiranja za računalniško omrežje

Vtičnica je ena izmed najosnovnejših tehnologij programiranja računalniškega omrežja. Vtičnice omogočajo omrežnim programskim aplikacijam, da komunicirajo z uporabo standardnih mehanizmov, vgrajenih v omrežno strojno opremo in operacijske sisteme.

Čeprav bi se lahko zdelo kot le še ena od značilnosti razvoja programske opreme za internet, je tehnologija vtičnic obstajala veliko pred spletom. In mnogi od danes najbolj priljubljenih omrežnih programskih aplikacij se zanašajo na vtičnice.

Katere vtičnice lahko delujejo za vaše omrežje

Vtičnica predstavlja eno samo povezavo med točno dva kosa programske opreme (tako imenovana povezava točka-točka ). Več kot dva kosa programske opreme lahko komunicira s strankami / strežniki ali porazdeljenimi sistemi z uporabo več vtičnic. Na primer, lahko številni spletni brskalniki hkrati komunicirajo z enim samim spletnim strežnikom prek skupine vtičnic, narejenih na strežniku.

Programska oprema s podnožjem običajno deluje na dveh ločenih računalnikih v omrežju, vendar se lahko vtičnice uporabljajo tudi za lokalno komunikacijo ( medproces ) na enem računalniku. Vtičnice so dvosmerne , kar pomeni, da sta obe strani povezave sposobni pošiljati in prejemati podatke. Včasih je ena aplikacija, ki sproži komunikacijo, imenovana "odjemalec" in druga aplikacija "strežnik", vendar pa ta terminologija vodi do zmede pri omrežni povezavi peer-to-peer in se ga je treba na splošno izogibati.

API-ji Socket in knjižnice

Na internetu obstaja več knjižnic, ki izvajajo standardne vmesnike aplikacijskega programiranja (API) . Prvi mainstream paket - knjižnica Berkeley Socket še vedno pogosto uporablja v sistemih UNIX. Še en zelo pogost API je knjižnica Windows Sockets (WinSock) za operacijske sisteme Microsoft. V primerjavi z drugimi računalniškimi tehnologijami so vtični API-ji precej zreli: WinSock se uporablja od leta 1993 in Berkeley vtičnice od leta 1982.

API-ji socket so relativno majhni in preprosti. Mnoge funkcije so podobne tistim, ki se uporabljajo v datoteki vhodno / izhodne rutine, kot so read () , write () in close () . Dejanske funkcije klicev za uporabo so odvisne od izbranega programskega jezika in knjižnice vtičnic.

Vrste vtičnic

Vtični vmesniki so lahko razdeljeni v tri kategorije:

  • Soketov za pretakanje, najpogostejši tip, zahtevata, da dve stranki, ki sporočata, najprej vzpostavi vtičnico, po kateri bodo vsi podatki, posredovani prek te povezave, zagotovljeni v istem vrstnem redu, v katerem so bili poslani - tako imenovano programsko usmerjeno programiranje model.
  • Datagramove vtičnice ponujajo "povezavo brez" semantike. Z datagrami so povezave implicitne in ne eksplicitne, kot pri tokovih. Vsaka stranka preprosto pošlje datagrame po potrebi in počaka, da se drugi odzove; sporočila se lahko izgubijo v prenosu ali prejmejo naročilo, vendar je odgovornost za to vlogo in ne vtičnice za reševanje teh težav. Izvajanje datagramovih vtičnic lahko nekaterim aplikacijam poveča zmogljivost in dodatno prožnost v primerjavi z uporabo vtičnic za pretok, kar upravičuje njihovo uporabo v nekaterih situacijah.
  • Tretja vrsta vtičnice - surova vtičnica - zaobide vgrajeno podporo knjižnice za standardne protokole, kot sta TCP in UDP . Neprekinjene vtičnice se uporabljajo za razvijanje nizkih ravni po meri.

Podpora Socket v omrežnih protokolih

Sodobne omrežne vtičnice se navadno uporabljajo v povezavi z internetnimi protokoli - IP, TCP in UDP. Knjižnice, ki izvajajo vtičnice za internetni protokol, uporabljajo TCP za tokove, UDP za datagrame in sam IP za surove vtiče.

Za komuniciranje prek interneta knjižnice IP-vtičnice uporabljajo naslov IP za identifikacijo določenih računalnikov. Mnogi deli interneta delujejo s storitvami poimenovanja, tako da lahko uporabniki in programerji delajo z računalniki po imenu ( npr . "Thiscomputer.wireless.about.com") namesto z naslovom ( npr . 208.185.127.40). Sokovi za pretok in datagram uporabljajo tudi številke IP vrat, da razlikujejo več aplikacij drug od drugega. Spletni brskalniki na internetu na primer poznajo, da uporabljajo vrata 80 kot privzeto za sokovske komunikacije s spletnimi strežniki.