Skip to content

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

27 de Červenec de 2021
GettyImages 500631084 5768c5743df78ca6e46339a4

Patice je jednou z nejzákladnějších technologií programování počítačové sítě. Zásuvky umožňují síťovým softwarovým aplikacím komunikovat pomocí standardních mechanismů zabudovaných do síťového hardwaru a operačních systémů. Ačkoli to zní jako další vlastnost vývoje internetového softwaru, technologie soketů existovala již před webem. Mnoho populárních síťových softwarových aplikací spoléhá na zásuvky.

Co může technologie Socket udělat pro vaši síť

Soket představuje jedno připojení mezi přesně dvěma částmi softwaru (připojení typu point-to-point). Více než dva kusy softwaru mohou komunikovat s klientem / serverem nebo distribuovanými systémy pomocí více soketů. Například mnoho webových prohlížečů může současně komunikovat s jediným webovým serverem pomocí skupiny zásuvek vytvořených na serveru. Software založený na soketech obvykle běží na dvou samostatných počítačích v síti, ale sokety lze také použít k místní komunikaci (meziprocesu) na jednom počítači. Zásuvky jsou obousměrné, což znamená, že obě strany připojení jsou schopny odesílat i přijímat data. Někdy se aplikaci, která iniciuje komunikaci, říká klient a druhou aplikací je server, ale tato terminologie vede k nejasnostem v sítích typu peer-to-peer a měla by se jim obecně vyhnout.

Socket API a knihovny

Na internetu existuje několik knihoven, které implementují standardní aplikační programovací rozhraní (API). První mainstreamový balíček, Berkeley Socket Library, je široce používán v systémech UNIX. Dalším běžným API je knihovna Windows Sockets (WinSock) pro operační systémy Microsoft. Ve srovnání s jinými počítačovými technologiemi jsou rozhraní API soketů vyspělá. WinSock se používá od roku 1993 a zásuvky Berkeley od roku 1982. API soketů jsou relativně malá a jednoduchá. Mnoho funkcí je podobných těm, které se používají ve vstupních / výstupních rutinách souborů, například read () , write () a close () . Skutečná volání funkcí, která se mají použít, závisí na zvoleném programovacím jazyce a knihovně soketů.

Typy rozhraní zásuvky

Rozhraní soketů lze rozdělit do tří kategorií:

  • Streamovací zásuvky: Toto je nejběžnější typ. Obě komunikující strany nejprve vytvoří soketové připojení, po kterém je zaručeno, že všechna data předaná tímto připojením dorazí ve stejném pořadí, v jakém byla odeslána (pomocí programovacího modelu orientovaného na připojení).
  • Datagramové zásuvky: Nabídka sémantiky bez připojení. U datagramů jsou připojení spíše implicitní než explicitní jako u streamů. Každá ze stran odesílá datagramy podle potřeby a čeká na odpověď druhé. Zprávy mohou být při přenosu ztraceny nebo přijaty mimo pořadí; aplikace řeší tyto problémy, ne zásuvky. Implementace soketů datagramu může poskytnout některým aplikacím zvýšení výkonu a další flexibilitu ve srovnání s použitím soketů proudu.
  • Surové zásuvky: Obejít integrovanou podporu knihovny pro standardní protokoly, jako jsou TCP a UDP. Nezpracované sokety se používají pro vývoj vlastních protokolů na nízké ú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 internetový protokol, používají TCP pro streamy, UDP pro datagramy a IP pro surové sokety. Pro komunikaci přes internet používají knihovny soketů IP adresu IP k identifikaci konkrétních počítačů. Mnoho částí internetu pracuje se službami pojmenování, takže uživatelé a programátoři soketů mohou pracovat s počítači podle jména (například thiscomputer.wireless.lifewire.com) místo podle adresy (například 208.185.127.40). Zásuvky datových proudů a datagramů také používají čísla portů IP k rozlišení více aplikací od sebe navzájem. Například webové prohlížeče na internetu vědí, že používají port 80 jako výchozí pro soketovou komunikaci s webovými servery.