/ / Zasada gniazda domeny uniksowej. Jak to działa? - gniazda, gniazda unix, gniazda unix

Zasada gniazda domeny uniksowej. Jak to działa? - gniazda, gniazda unix, gniazda unix

Robię badanie dotyczące gniazda domeny Unix. Zwłaszcza o tym, jak to działa. Często googlowałem wielokrotnie z wieloma słowami kluczowymi, ale wyniki dotyczą wyłącznie interfejsu API, wywołań systemowych, sposobu korzystania z niego, przykładów ... Czytałem również o Pipe i FIFO, ponieważ mówi się, że gniazdo Unix Domain jest takie samo z Pipe i FIFO, ale nadal chcę wiedzieć więcej na temat koncepcji / zasad Unix Domain Socket. Jak to działa? (Może na poziomie jądra, ponieważ Wiki mówi: "Dzięki temu dwa procesy mogą otwierać to samo gniazdo w celu komunikacji, jednak komunikacja odbywa się całkowicie w jądrze systemu operacyjnego."

Nadal zastanawiam się, dlaczego dokumentacja Socket w domenie Unix jest mniejsza niż Fipe czy FIFO? Może dlatego, że urodziło się tak wiele lat temu?

Czy ktoś mógłby mi pokazać jakieś pomysły lub książki / linki do przeczytania?

Z góry dziękuję!

Odpowiedzi:

15 dla odpowiedzi № 1

Gniazda Unix są używane jako inne typy gniazd. Oznacza to, że używa się dla nich wywołań systemowych gniazda. Różnica między gniazdami FIFO i Unix polega na tym, że FIFO używa wywołań sys file, podczas gdy gniazda Unix używają wywołań gniazd.

Gniazda uniksowe są adresowane jako pliki. Umożliwia korzystanie z uprawnień do plików w celu kontroli dostępu.

Gniazda uniksowe są tworzone przez wywołanie sys socket(podczas gdy FIFO utworzone przez mkfifo). Jeśli potrzebujesz gniazda klienta, możesz połączyć się, przekazując mu adres gniazda serwera. Jeśli potrzebujesz gniazda serwera, możesz powiązać, aby przypisać jego adres, podczas gdy dla FIFO używane jest połączenie otwarte Operacja IO jest wykonywana przez odczyt / zapis.

Gniazdo Unix może rozróżniać klientów, podczas gdy FIFO nie jest. Informacja o peer jest dostarczana przez accept call, zwraca adres peera.

Gniazda Unix są dwukierunkowe. Oznacza to, że każda ze stron może wykonywać operacje odczytu i zapisu. O ile FIFO są jednokierunkowe: ma on rówieśnika i rówieśnika.

Gniazda uniksowe tworzą mniej narzutów ikomunikacja jest szybsza niż przez lokalne adresy IP. Pakiet nie musi przechodzić przez stos sieci, tak jak z gniazdami localhost, a ponieważ istnieją tylko lokalnie, nie ma routingu.

Jeśli potrzebujesz więcej informacji o tym, jak działają gniazda Unix na poziomie jądra, spójrz na plik net / unix / af_unix.c w źródle jądra Linuksa.