]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Tworzenie rodziału 10. Zakończenie pisania podrozdziału 10.8
authorxf0r3m <jakubstasinski@protonmail.com>
Fri, 1 Sep 2023 10:04:03 +0000 (12:04 +0200)
committerxf0r3m <jakubstasinski@protonmail.com>
Fri, 1 Sep 2023 10:04:03 +0000 (12:04 +0200)
articles/terminallog/Linux.Podstawy.html

index 5fe4c804e6d620f3667c55e8760d87f93fe45301..b2bc1a8fb9c41ba339bbc6d97ef815c942727cb5 100644 (file)
@@ -9305,6 +9305,48 @@ xf0r3m@vm-76925c3:~$ rpcinfo -p localhost
           komputer jest zarażony złośliwym oprogramowanie i możesz połączyć się
           z konsulatantem, który je usunie za darmo.
         </p>
+        <h2 id="10.8.netsockets">10.8. Gniazda sieciowe</h2>
+        <p>
+          Omawiając warstwę aplikacji trzeba również wspomnieć o tym w jaki
+          sposób procesy są wstanie brać udział w komunikacji sieciowej. W
+          zależności od tego czy połączenie jest już zestawione to sprowadza
+          się to skorzystania z dwóch wywołań systemowych <strong>recv</strong>
+          oraz <strong>send</strong>. Proces chcąc skorzystać z tych wywołań
+          musi odwołać się do połączenia za pomocą takie tworu jak
+          <strong>gniazdo</strong>. Gniazda są wykorzystywane do uzyskania
+          dostępu do sieci przy użyciu jądra. Proces wykorzystuje do określenia
+          tego jak i kiedy komunikuje się on z siecią. Gniazda również biorą
+          udział w komunikacji międzyprocesowej (IPC).
+        </p>
+        <p>
+          W zależności od tego w jaki sposób proces chce uzyskac dostęp do
+          sieci wówczas musi skorzystać z określonego rodzaju gniazda.
+          Dla protokołu TCP używane jest gniazdo strumienia
+          (<em>SOCK_STREAM</em>) a dla UDP wykorzystywane jest gniazdo
+          datagramu (<em>SOCK_DGRAM</em>). Konfigracja gniazda wymaga ustalenia
+          rodzaju gniazda, adresów IP, portów i protokoły warstwy transportowej.
+          Gniazda zazwyczaj są konfigurowane przez procesów serwerów. Po
+          ustaleniu tych informacji proces wykorzystuje standardowe metody
+          obsługi sieci.
+        </p>
+        <p>
+          Typowy serwer podczas swojego działania wykorzystuje dwa gniazda a
+          nie jedno. Jeśli tak by było to wówczas serwery mogły świadczyć 
+          usługi tylko punktowo. Jedne klient się podłączył to drugi musi
+          czekać na zakończenie połączenia. Na szczęście jedno z gniazd
+          służy do nasłuchiwania, jeśli proces nadrzędny wykryje na nim ruch
+          to za pomocą wywołania systemowego <strong>accept</strong> akceptuje
+          to połączenie i tworzy dla tego połączenia dedykowane gniazdo
+          zapisu i odczytu. Po tej czynności za pomocą wywołania systemowego
+          <strong>fork</strong> tworzy proces podrzędny do obsługi tego
+          połączenia. Gniazdo nasłuchujące dalej będzie prowadzić nasłuch dla
+          procesu nadrzędnego.
+        </p>
+        <p>
+          Po skonfigurowaniu gniazda proces może prowadzić z nim interakcje
+          zgodnie z rodzajem użytego gniazda.
+        </p>
+
        </div>
                        <p style="margin: 15px; padding: 0; outline: 0;">
                                2022; COPYLEFT; ALL RIGHTS REVERSED;