Socket (mjukvarugränssnitt)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 2 september 2018; kontroller kräver 10 redigeringar .

Socket ( engelsk  socket  -connector) - namnet på mjukvarugränssnittet för att tillhandahålla datautbyte mellan processer . Processer i ett sådant utbyte kan köras både på en dator och på olika datorer, endast sammankopplade av ett nätverk . En socket är ett abstrakt objekt som representerar ändpunkten för en anslutning.

En skillnad måste göras mellan klient- och serversockets . Klientuttag kan grovt jämföras med telefonnätets slutenheter och serveruttag med switchar . En klientapplikation (till exempel en webbläsare ) använder bara klientsockets, och en serverapplikation (till exempel en webbserver som webbläsaren skickar förfrågningar till) använder både klient- och serversockets.

Socket -gränssnittet dök först upp i BSD Unix . Socket API är definierat i POSIX.1- standarden och stöds till viss del av alla moderna operativsystem .

Socket Principles

Adresser och portar används för att kommunicera mellan maskiner som använder TCP/IP- protokollstacken. Adressen är en 32-bitars struktur för IPv4 -protokollet , 128-bitars för IPv6 . Portnumret är ett heltal i intervallet 0 till 65535 (för TCP -protokollet ).

Detta par definierar en socket (en "socket" som motsvarar en adress och en port ).

I utbytesprocessen används som regel två uttag - avsändarens uttag och mottagarens uttag. Till exempel, när du ansluter till servern på HTTP - porten, kommer socket att se ut så här: 194.106.118.30:80, och svaret kommer att gå till mmm.nnn.ppp.qqq:xxxxx.

Varje process kan skapa en "lyssnande" socket (serversocket) och binda den till någon operativsystemport (i UNIX kan oprivilegierade processer inte använda portar mindre än 1024) .

Lyssningsprocessen är vanligtvis i en väntande loop, det vill säga vaknar upp när en ny anslutning kommer upp. Samtidigt är det fortfarande möjligt att kontrollera anslutningar för tillfället, ställa in en timeout för operationen, etc.

Varje uttag har sin egen adress. UNIX-familjens OS kan stödja många typer av adresser, men INET-adressen och UNIX-adressen krävs . Om du binder en socket till en UNIX-adress, kommer en speciell fil ( socket-fil ) att skapas vid den givna sökvägen, genom vilken alla lokala processer kan kommunicera genom att läsa/skriva från den (se Unix-domänsocket ). INET- uttag är tillgängliga från nätverket och kräver ett portnummer för att tilldelas.

Vanligtvis "ansluter" klienten uttryckligen till lyssnaren, varefter all läsning eller skrivning till dess filbeskrivning kommer att överföra data mellan den och servern.

Se även

Anteckningar