Vad är en Unix® Domain Socket?

En Unix®-domänsocket är en speciell sockeltyp inom Unix®-operativsystemet (OS) som överför data från en applikation till en annan. Till skillnad från andra sockets, som vanligtvis ansluter till andra system, är Unix®-domänsocket en inter-process communication (IPC) socket, vilket betyder att den bara ansluter till andra program på användarens dator. Strukturellt är domänsocket mer som ett namngivet rör än ett uttag, även om det har flera funktioner som ett rör inte inkluderar. Användningen av domänuttag är säker, eftersom andra nätverk inte kan spionera på dataströmmen, och uttaget behöver inte ens ett nätverk för att fungera.

Sockets, i varje operativsystem, används för att strömma bytes från ett program till ett annat i ett tvåvägsflöde, vilket innebär att medan data lämnas kommer andra data in. Detta används normalt som en brygga för andra servrar och datorer, men inte i fallet med en Unix®-domänsocket. Dessa speciella uttag används för att skicka data från Unix®-filsystemet till ett annat program snarare än ett externt nätverk.

Medan Unix®-domänsocket delar många socketrelaterade uppgifter och förmågor, är det mer som ett namngivet rör. En namngiven pipe är ett sätt för datorn att strömma data från en sektion till en annan. Det kallas en namngiven pipe eftersom pipen får ett namn, precis som Unix®-domänsocket har ett namn — själva Unix®-filsystemet fungerar som namnet. Den stora skillnaden mellan dessa två är att pipes bara kan erbjuda byteströmsekvenser, där data läses när de skickas, medan domänsockets erbjuder byteström och datagram, där information läses som ett paket. Byteström är bättre när det gäller säkerhet, medan datagram är bättre för system som skickar kontinuerliga meddelanden.

Unix®-domänsockets är inte gjorda för att integreras med externa nätverk, men de erbjuder många bekväma funktioner för lokala nätverk, oavsett om en person eller flera personer använder datorn. Genom att använda Unix®-domänsocket istället för andra typer av sockets kan programmen erhålla autentisering, eller tillstånd, utan att användaren behöver ange det manuellt. Domänsocket tar också på sig reglerna för Unix®-systemet, vilket är användbart om olika användare ges olika åtkomstnivåer, eftersom dessa regler kan skrivas till systemet och de kommer att följas.

Mer än andra uttag och rör är en Unix®-domänsockel säker. Domänuttag tillåter inte ett icke-betrodd nätverk att lyssna på dataströmmen, och fjärrdatorer kan inte ansluta till strömmen utan åtkomst. All autentiserings- och inloggningsinformation finns på Unix®-domänen, så användaren behöver aldrig ange ett lösenord eller användarnamn för att logga in på servern. Det betyder att program som lyssnar på tangenttryckningar inte får denna information.