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 imenovano točka-točka povezava). 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 poteka na dveh ločenih računalnikih v omrežju, vendar so lahko tudi vtičnice uporabljene za lokalno komunikacijo ( interprocess ) na enem računalniku. Sockets so dvosmerno , kar pomeni, da je vsaka stran povezave sposobna pošiljati in sprejemati 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, na primer beri (), napisati (), in Zapri (). 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:
- Potok najpogostejši tipi, zahtevajo, da dve stranki, ki sporočata, najprej vzpostavi vtičnico, po kateri bodo vsi podatki, posredovani prek te povezave, zagotovljeni v enakem zaporedju, v katerem so bili poslani - tako imenovani povezovalno usmerjeni programski model .
- Datagram vtičnice ponujajo "brez povezave" semantiko. 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 - surov vtičnica - obide 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. Številni deli interneta delujejo z imenskimi storitvami, tako da lahko uporabniki in programerji delajo z računalniki po imenu ( npr. , "thiscomputer.wireless.about.com") namesto po naslovu ( 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.













