Přehled programování zásuvek pro počítačové sítě

Zásuvka je jednou z nejdůležitějších technologií programování počítačových sítí. Sokety umožňují komunikaci síťových softwarových aplikací pomocí standardních mechanismů zabudovaných do síťového hardwaru a operačních systémů.

Ačkoli to může znít jako další rys vývoje internetového softwaru, socket technologie existovala dlouho před webem. A mnoho dnešních nejoblíbenějších síťových softwarových aplikací se spoléhá na zásuvky.

Jaké zásuvky mohou pro vaši síť

Zásuvka představuje jediné spojení mezi přesně dvěma částmi softwaru (tzv. Point-to-point spojení). Více než dva kusy softwaru mohou komunikovat s klientskými / serverovými nebo distribuovanými systémy pomocí více soketů. Například mnoho webových prohlížečů může současně komunikovat s jedním webovým serverem prostřednictvím skupiny soketů vytvořených na serveru.

Software socketů obvykle běží na dvou samostatných počítačích v síti, ale zásuvky mohou být také použity pro lokální komunikaci ( interprocess ) na jednom počítači. Sokety jsou obousměrné , což znamená, že každá strana připojení je schopna odesílat i přijímat data. Někdy jedna aplikace, která iniciuje komunikaci, je nazývána "klientem" a druhou aplikací "server", ale tato terminologie vede k záměně v sítích peer to peer a obecně je třeba se vyhnout.

Síťové API a knihovny

V síti Internet existuje několik knihoven, které implementují standardní aplikační programovací rozhraní (API) . První balíček hlavního proudu - knihovna soketů Berkeley se stále používá v systémech UNIX. Dalším velmi běžným rozhraním API je knihovna Windows Sockets (WinSock) pro operační systémy Microsoft. Ve srovnání s jinými výpočetními technologiemi jsou socketové API zcela zralé: WinSock se používá od roku 1993 a Berkeley zásuvky od roku 1982.

Síťové API jsou poměrně malé a jednoduché. Mnohé z funkcí jsou podobné těm, které se používají při rutinách vstupních / výstupních souborů, jako jsou read () , write ()

Typy rozhraní soketu

Socketové rozhraní lze rozdělit do tří kategorií:

  • Streamové zásuvky, které jsou nejčastějším typem, vyžadují, aby obě komunikující strany nejdříve vytvořily soketové připojení, po kterém budou veškerá data procházející tímto spojením zaručena, že dorazí ve stejném pořadí, ve kterém byly odeslány - tzv. Programově orientované připojení Modelka.
  • Datagramové zásuvky nabízejí sémantiku "bez připojení". S datagramy jsou spojení spíše implicitní než explicitní jako u streamů. Každá ze stran jednoduše posílá datagramy podle potřeby a čeká na to, aby druhá odpověděla; zprávy mohou být ztraceny v přenosu nebo přijaty mimo pořad, ale zodpovědnost aplikace, a nikoliv zásuvky, řešit tyto problémy. Implementace datagramových zásuvek může určitým aplikacím zvýšit výkonnost a zvýšit flexibilitu ve srovnání s použitím zásuvkových proudů, což ospravedlňuje jejich použití v některých situacích.
  • Třetí typ soketu - surový soket - obchází knihovnu vestavěnou podporu pro standardní protokoly jako TCP a UDP . Surové zásuvky se používají pro vlastní vývoj protokolů na nižší úrovni.

Podpora soketů v síťových protokolech

Moderní síťové zásuvky se obvykle používají ve spojení s internetovými protokoly - IP, TCP a UDP. Knihovny, které implementují sokety pro protokol Internet, používají protokol TCP pro proudy, UDP pro datagramy a IP pro surové sokety.

Chcete-li komunikovat přes Internet, knihovny soketů IP používají k identifikaci konkrétních počítačů adresu IP . Mnoho částí Internetu pracuje s názvovými službami, takže uživatelé a programátoři soketů mohou pracovat s počítači podle jména ( např . "Thiscomputer.wireless.about.com") namísto adresy ( např . 208.185.127.40). Zásuvky datového proudu a datagramu rovněž používají čísla portů IP k odlišení více aplikací od sebe. Například webové prohlížeče na Internetu vědí, že používají port 80 jako výchozí komunikaci s soketů s webovými servery.