O prezentare generală a programării soclurilor pentru rețelele de calculatoare

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 (o așa-numită conexiune punct-la-punct ). 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 socket-urile pot fi utilizate și pentru a comunica local ( interproces ) pe un singur computer. Prizele sunt bidirecționale , ceea ce înseamnă că fiecare parte a conexiunii este capabilă să trimită ș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 read () , write ()

Tipuri de interfețe de tip socket

Interfețele interfeței pot fi împărțite în trei categorii:

  • Adaptorii de flux , 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 că vor ajunge în aceeași ordine în care au fost trimise - așa-numita programare orientată pe conexiune model.
  • Socket-urile Datagram 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.
  • Cel de-al treilea tip de soclu - socket-ul brut - 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 lucrează cu servicii de denumire, astfel încât utilizatorii și programatorii socket-urilor pot lucra cu nume de calculatoare (de exemplu , "thiscomputer.wireless.about.com") în loc de adresa (de ex. , 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.