Un soclu este una dintre cele mai fundamentale tehnologii de programare a rețelelor de calculatoare. Soclurile permit aplicațiilor de rețea să comunice folosind mecanisme standard integrate în hardware și sisteme de operare.
Deși s-ar putea să pară o altă caracteristică a dezvoltării software-ului Internet, tehnologia socket a existat cu mult înainte de Web. Și multe dintre cele mai populare aplicații software de rețea de astăzi se bazează pe prize.
Ce socket-uri pot face pentru rețeaua dvs.
Un soclu reprezintă o singură conexiune între exact două bucăți de software (așa-numitul punct la punct conexiune). Mai mult de două bucăți de software pot comunica cu client / server sau sisteme distribuite prin utilizarea mai multor socluri. De exemplu, multe browsere Web pot comunica simultan cu un singur server Web printr-un grup de socket-uri realizate pe server.
Software-ul bazat pe socket rulează, de obicei, pe două computere separate din rețea, dar pot fi utilizate și conectori locali ( interprocess ) pe un singur computer. Prizele sunt bidirecțională , ceea ce înseamnă că fiecare parte a conexiunii este capabilă să transmită și să primească date. Uneori, o aplicație care inițiază comunicarea este denumită "client", iar cealaltă aplicație este "serverul", însă această terminologie duce la confuzie în rețelele de tip peer to peer și ar trebui, în general, să fie evitată.
Socket API-uri și Biblioteci
Mai multe biblioteci care implementează interfețe standard de programare a aplicațiilor (API) există pe Internet. Primul pachet de masă - Biblioteca Socket Berkeley este încă folosită pe scară largă în sistemele UNIX. Un alt API foarte comun este biblioteca Windows Sockets (WinSock) pentru sistemele de operare Microsoft. Relativ la alte tehnologii informatice, API-urile socket sunt destul de mature: WinSock este în uz din 1993 și prize Berkeley din 1982.
API-urile socket-urilor sunt relativ mici și simple. Multe dintre funcții sunt similare cu cele utilizate în rutinele de intrare / ieșire a fișierelor, cum ar fi citit(), scrie(), și închide(). Funcția actuală de apeluri depinde de limbajul de programare și biblioteca de soclu aleasă.
Tipuri de interfețe de tip socket
Interfețele interfeței pot fi împărțite în trei categorii:
- Curent socket-uri, cel mai des întâlnit, necesită ca cele două părți comunicante să stabilească mai întâi o conexiune socket, după care toate datele transmise prin acea conexiune vor fi garantate să sosească în aceeași ordine în care a fost trimis - așa-numitul model de programare orientat pe conexiune .
- Datagram socket-urile oferă semantică "fără conexiune". Cu datagrame, conexiunile sunt implicite mai degrabă decât explicite ca și fluxurile. Fiecare dintre părți trimite pur și simplu datagramele după cum este necesar și așteaptă ca celălalt să răspundă; mesajele pot fi pierdute în transmisie sau primite din ordine, însă este responsabilitatea aplicației și nu socket-urile de a rezolva aceste probleme. Implementarea soclurilor datagramei poate oferi unor aplicații un impuls de performanță și o flexibilitate suplimentară în comparație cu utilizarea mufelor de flux, justificând utilizarea lor în anumite situații.
- Al treilea tip de soclu - brut socket - ocolește suportul încorporat al bibliotecii pentru protocoalele standard precum TCP și UDP. Prizele goale sunt utilizate pentru dezvoltarea protocolului la nivel scăzut.
Socket Support în protocoalele de rețea
Rețelele moderne de rețea sunt de obicei utilizate împreună cu protocoalele Internet - IP, TCP și UDP. Bibliotecile care implementează socket-uri pentru Internet Protocol utilizează TCP pentru fluxuri, UDP pentru datagrame și IP însuși pentru prize brute.
Pentru a comunica pe Internet, bibliotecile socket IP folosesc adresa IP pentru a identifica anumite computere. Multe părți ale Internetului funcționează cu servicii de numire, astfel încât utilizatorii și programatorii socket-urilor pot lucra cu computere după nume ( de exemplu. , "thiscomputer.wireless.about.com") în loc de adresă ( de exemplu. , 208.185.127.40). Conectorii de flux și datagrame utilizează de asemenea numere de port IP pentru a distinge mai multe aplicații una de cealaltă. De exemplu, browserele Web de pe Internet știu să utilizeze portul 80 ca implicit pentru comunicațiile socket cu serverele Web.