Skip to main content

Programování soketů pro počítačové sítě - souhrn

MIKÝŘŮV PRKENNÝ PŘEHLED - 3. DÍL /// FREERIDETV (Červen 2026)

MIKÝŘŮV PRKENNÝ PŘEHLED - 3. DÍL /// FREERIDETV (Červen 2026)
Anonim

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 bod-k-bod 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.

Softwarový software založený na socketu obvykle běží na dvou samostatných počítačích v síti, ale mohou být také použity pro lokální komunikaci ( meziproces ) na jednom počítači. Zásuvky 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í v rutinách vstupních / výstupních souborů, jako je například číst(), napsat(), a zavřít(). Vlastní volání funkcí závisí na zvoleném programovacím jazyku a knihovně soketů.

Typy rozhraní soketu

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

  • Proud nejčastějším typem zásuvek, vyžaduje, 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í, v jakém byly zaslány - tzv. programově orientovaný model připojení .
  • Datagram 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 zásuvky - drsný 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 pojmenováním, takže uživatelé a programátoři zásuvek mohou pracovat s počítači podle jména ( např. , "thiscomputer.wireless.about.com") namísto adresou ( 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.