Skip to main content

Socket programmering för datanätverk - Sammanfattning

246 Mega Blast Svea (April 2025)

246 Mega Blast Svea (April 2025)
Anonim

Ett uttag är en av de mest grundläggande teknikerna för datanätverksprogrammering. Sockets tillåter nätverksprogramvaror att kommunicera med standardmekanismer som är inbyggda i nätverkshårdvara och operativsystem.

Även om det kanske låter som bara ett annat inslag i utvecklingen av Internet-mjukvara, fanns socketteknik långt före webben. Och många av dagens mest populära nätverksprogram använder sig av kontakter.

Vilka socklar kan göra för ditt nätverk

Ett uttag representerar en enda anslutning mellan exakt två mjukvaror (en så kallad punkt till punkt förbindelse). Mer än två mjukvaror kan kommunicera med klient / server eller distribuerade system genom att använda flera uttag. Till exempel kan många webbläsare samtidigt kommunicera med en enda webbserver via en grupp uttag på servern.

Socket-baserad programvara körs vanligtvis på två separata datorer i nätverket, men uttag kan också användas för att kommunicera lokalt ( interprocess ) på en enda dator. Sockets är dubbelriktad , vilket innebär att endera sidan av anslutningen kan både sända och ta emot data. Ibland är den ena applikationen som initierar kommunikation kallad "klienten" och den andra applikationen "servern", men denna terminologi leder till förvirring i peer to peer-nätverk och borde i allmänhet undvikas.

Socket API och bibliotek

Flera bibliotek som implementerar standardprogrammeringsgränssnitt (API) finns på Internet. Den första mainstream-paketet - Berkeley Socket Library används fortfarande i stor utsträckning på UNIX-system. Ett annat mycket vanligt API är Windows Sockets (WinSock) -biblioteket för Microsoft operativsystem. I förhållande till annan datorteknik är socket-API: er ganska mogna: WinSock har varit i bruk sedan 1993 och Berkeley sockets sedan 1982.

Utgångs-API: erna är relativt små och enkla. Många av funktionerna liknar dem som används i filinmatnings- / utgångsrutiner som läsa(), skriva(), och stänga(). Den faktiska funktionen samtal för användning beror på det programmerade språket och uttaget bibliotek.

Socket Interface Typer

Socket gränssnitt kan delas in i tre kategorier:

  • Strömma uttag, den vanligaste typen, kräver att de två kommunicerande parterna först upprätta en uttagskontakt, varefter data som överförs via den anslutningen kommer att garanteras komma fram i samma ordning som den skickades i - så kallad anslutningsorienterad programmeringsmodell .
  • Datagram gram~~POS=HEADCOMP sockets erbjuder "connection-less" semantik. Med datagram är anslutningar implicita snarare än explicit som med strömmar. Endera parten skickar helt enkelt datagram efter behov och väntar på den andra att svara; Meddelanden kan gå förlorade i överföring eller mottagen i ordning, men det är applikationens ansvar och inte kontakterna att hantera dessa problem. Genomförande av datagramuttag kan ge vissa applikationer en prestationsökning och ytterligare flexibilitet jämfört med att använda strömuttag, vilket motiverar användningen i vissa situationer.
  • Den tredje typen av uttag - rå uttag - kringgår bibliotekets inbyggda stöd för standardprotokoll som TCP och UDP. Råkontakter används för anpassad utveckling på låg nivå.

Sockelstöd i nätverksprotokoll

Moderna nätverksuttag används vanligtvis i anslutning till Internetprotokollen - IP, TCP och UDP. Bibliotek som implementerar socklar för Internet Protocol använder TCP för strömmar, UDP för datagram och IP för sig själva socklar.

För att kommunicera via Internet använder IP-sockelbibliotek IP-adressen för att identifiera specifika datorer. Många delar av Internet arbetar med namngivningstjänster, så att användare och socketprogrammerare kan arbeta med datorer med namn ( t.ex. , "thiscomputer.wireless.about.com") istället för av adress ( t.ex. , 208.185.127.40). Ström- och datagramuttag använder också IP-portnummer för att skilja mellan flera applikationer från varandra. Till exempel vet webbläsare på Internet att använda port 80 som standard för socketkommunikation med webbservrar.