Prehľad programovania zásuviek pre počítačové siete

Zásuvka je jednou z najdôležitejších technológií programovania počítačových sietí. Sokety umožňujú komunikovať sieťové softvérové ​​aplikácie pomocou štandardných mechanizmov integrovaných do sieťového hardvéru a operačných systémov.

Hoci to môže znieť ako ďalšia vlastnosť vývoja internetového softvéru, technológia socketov existovala dlho pred webom. A mnohé z dnešných najpopulárnejších sieťových softvérových aplikácií sa spoliehajú na zásuvky.

Aké zásuvky môžu urobiť pre vašu sieť

Soket predstavuje jedno spojenie medzi presne dvoma kusmi softvéru (tzv. Point-to-point pripojenie). Viac ako dva kusy softvéru môžu komunikovať s klientom / serverom alebo distribuovanými systémami pomocou viacerých zásuviek. Napríklad mnoho webových prehliadačov môže súčasne komunikovať s jedným webovým serverom prostredníctvom skupiny zásuviek vytvorených na serveri.

Softvér so softvérom so socketom zvyčajne beží na dvoch samostatných počítačoch v sieti, ale zásuvky sa môžu použiť aj na lokálnu komunikáciu ( medzi procesmi ) na jednom počítači. Sokety sú obojsmerné , čo znamená, že každá strana pripojenia je schopná odosielať aj prijímať dáta. Niekedy sa jedna aplikácia, ktorá iniciuje komunikáciu, nazýva "klient" a druhá aplikácia "server", ale táto terminológia vedie k zmätku v sieti peer to peer a mala by sa vo všeobecnosti vyhnúť.

Socket API a knižnice

Niekoľko knižníc, ktoré implementujú štandardné aplikačné programovacie rozhrania (API), existujú na internete. Prvý bežný balík - Berkeley Socket Library je stále široko používaný v systéme UNIX. Ďalším veľmi bežným rozhraním API je knižnica Windows Sockets (WinSock) pre operačné systémy Microsoft. V porovnaní s inými počítačovými technológiami sú socket API pomerne vyspelé: WinSock sa používa od roku 1993 a Berkeley zásuvky od roku 1982.

API socketu sú relatívne malé a jednoduché. Mnohé z funkcií sú podobné tým, ktoré sa používajú v súborových vstupných / výstupných rutinách, ako napríklad read () , write ()

Typy rozhrania soketu

Soketové rozhrania je možné rozdeliť do troch kategórií:

  • Prúdové zásuvky, najbežnejší typ, vyžadujú, aby obe komunikujúce strany najskôr vytvorili soketové pripojenie, po ktorom budú všetky údaje prechádzajúce cez toto spojenie zaručené, že prídu v rovnakom poradí, v akom boli odoslané - tzv. Pripojenie orientované programovanie Model.
  • Dutinové zásuvky ponúkajú sémanciu "bez spojenia". Pri datagramoch sú prepojenia skôr implicitné ako explicitné, ako pri prúdoch. Každá strana jednoducho posiela datagramy podľa potreby a čaká na odpoveď druhého; správy môžu byť stratené v prenose alebo prijaté mimo objednávky, ale je zodpovednosťou aplikácie, a nie zásuvkami, aby sa s týmito problémami vyrovnali. Implementácia dátových zásuviek môže poskytnúť niektorým aplikáciám zvýšenie výkonu a dodatočnú flexibilitu v porovnaní s používaním prúdových zásuviek, čo odôvodňuje ich použitie v niektorých situáciách.
  • Tretí typ zásuvky - surová zásuvka - obchádza vstavanú podporu knižnice pre štandardné protokoly ako TCP a UDP . Surové zásuvky sa používajú na vývoj vlastných protokolov na nižšej úrovni.

Podpora soketu v sieťových protokoloch

Moderné sieťové zásuvky sa zvyčajne používajú v spojení s internetovými protokolmi - IP, TCP a UDP. Knižnice, ktoré implementujú sokety pre protokol Internet, používajú protokol TCP pre prúdy, UDP pre datagramy a samotnú IP pre surové zásuvky.

Ak chcete komunikovať cez Internet, knižnice IP socketov používajú na identifikáciu konkrétnych počítačov adresu IP . Mnoho častí internetu pracuje s pomenovaním, takže používatelia a programátori zásuviek môžu pracovať s počítačmi podľa názvu ( napr . "Thiscomputer.wireless.about.com") namiesto adresou ( napr . 208.185.127.40). Prietokové a datagramové zásuvky tiež používajú čísla portov IP na rozlíšenie viacerých aplikácií navzájom. Napríklad webové prehliadače na internete vedia používať port 80 ako predvolený pre komunikáciu so soketmi s webovými servermi.