Utičnica je jedna od najosnovnijih tehnologija programiranja računalnih mreža. Zahidovi omogućuju mrežnim softverskim aplikacijama komunikaciju pomoću standardnih mehanizama ugrađenih u hardver i operativne sustave mreže.
Iako bi to moglo zvučati kao samo još jedna značajka razvoja Internet softvera, tehnologija socket je postojala mnogo prije Web. I mnogi od danas najpopularnijih mrežnih softverskih aplikacija oslanjaju se na utičnice.
Što zalisci mogu učiniti za vašu mrežu
Utičnica predstavlja jedinstvenu vezu između točno dva dijela softvera (tzv od točke do točke veza). Više od dva komada softvera može komunicirati s klijentom / poslužiteljem ili distribuiranim sustavima pomoću više priključnica. Na primjer, mnogi web pretraživači mogu istodobno komunicirati s jednim web-poslužiteljem putem skupine priključnica na poslužitelju.
Socket-based softver obično radi na dva odvojena računala na mreži, ali utičnice se također mogu koristiti za komunikaciju lokalno ( međuprocesna ) na jednom računalu. Utičnice su dvosmjerni , što znači da je bilo koja strana veze sposobna slati i primati podatke. Ponekad jedna aplikacija koja inicira komunikaciju naziva se "klijent", a druga aplikacija "poslužitelj", ali ova terminologija dovodi do zbrke u peer to peer networkingu i općenito se treba izbjegavati.
Socket API i knjižnice
Na internetu postoji više knjižnica koje implementiraju standardna sučelja za programiranje aplikacija (API-ja). Prvi glavni paket - knjižnica Berkeley Socket još uvijek je naširoko koristi na UNIX sustavima. Drugi vrlo uobičajen API je knjižnica Windows Sockets (WinSock) za Microsoftove operacijske sustave. U odnosu na druge računalne tehnologije, socket APIs su prilično zreli: WinSock je u upotrebi od 1993. i Berkeley utičnice od 1982. godine.
API socket relativno je mali i jednostavan. Mnoge funkcije su slične onima koje se koriste u datotekama ulaznih / izlaznih rutina kao što je čitati(), pisati(), i Zatvoriti(), Stvarna funkcija poziva na uporabu ovisi o odabranom programskom jeziku i zvučnoj biblioteci.
Vrste sučelja Socket
Socket sučelja mogu se podijeliti u tri kategorije:
- potok utičnice, najčešći tip, zahtijevaju da dvije komunikacijske strane najprije uspostave utičnu priključnicu, nakon čega će se zajamčiti svi podaci koji se prenose tom vezom kako bi stigli u isti redoslijed u koji je poslana - takozvani model povezivanja usmjeren na vezu ,
- datagram utičnice nude "bez veze" semantiku. S datagramima, veze su implicitne, a ne eksplicite kao s streamovima. Svaka strana jednostavno šalje datagrame po potrebi i čeka da drugi odgovori; poruke mogu biti izgubljene u prijenosu ili primljene iz reda, ali je odgovornost aplikacije, a ne priključci za rješavanje tih problema. Implementiranje datagrama utičnice može dati nekim aplikacijama poboljšanje performansi i dodatnu fleksibilnost u usporedbi s korištenjem tokova utičnica, što opravdava njihovu upotrebu u nekim situacijama.
- Treći tip utičnice - sirov utičnica - zaobilazi ugrađenu podršku knjižnice za standardne protokole kao što su TCP i UDP. Sirovi priključci koriste se za prilagođeni razvoj protokola niske razine.
Socket podrška u mrežnim protokolima
Moderne mrežne utičnice obično se koriste zajedno s internetskim protokolima - IP, TCP i UDP. Knjižnice koje implementiraju utičnice za Internet Protocol koriste TCP za tokove, UDP za datagrave i sam IP za sirove baze.
Za komunikaciju putem Interneta, IP socket knjižnice koriste IP adresu za identifikaciju određenih računala. Mnogi dijelovi Interneta rade s imenovanjem usluga tako da korisnici i programeri socket mogu raditi s računalima po imenu ( npr , "thiscomputer.wireless.about.com") umjesto po adresi ( npr , 208.185.127.40). Strujni i podatkovni priključci također koriste IP portove kako bi razlikovali više aplikacija jedan od drugog. Na primjer, web preglednici na Internetu znaju koristiti port 80 kao zadanu za komunikaciju socket s web poslužiteljima.