客戶端-伺服器模型



兩個遠端應用程式程序主要可以透過兩種不同的方式進行通訊

  • 對等式: 兩個遠端程序都在同一級別執行,並且它們使用某些共享資源交換資料。

  • 客戶端-伺服器: 一個遠端程序充當客戶端,並請求另一個充當伺服器的應用程式程序提供某些資源。

在客戶端-伺服器模型中,任何程序都可以充當伺服器或客戶端。並不是機器的型別、大小或其計算能力使其成為伺服器;能夠服務請求的能力才使機器成為伺服器。

一個系統可以同時充當伺服器和客戶端。也就是說,一個程序充當伺服器,另一個程序充當客戶端。也可能客戶端和伺服器程序都駐留在同一臺機器上。

通訊

客戶端-伺服器模型中的兩個程序可以透過多種方式進行互動

  • 套接字

  • 遠端過程呼叫 (RPC)

套接字

在這種模式下,充當伺服器的程序使用一個眾所周知的(或客戶端已知的)埠開啟一個套接字,並等待直到某個客戶端請求到來。充當客戶端的第二個程序也開啟一個套接字,但它不是等待傳入請求,而是客戶端程序“先發出請求”。

當請求到達伺服器時,就會得到處理。它可以是資訊共享或資源請求。

遠端過程呼叫

這是一種機制,其中一個程序透過過程呼叫與另一個程序互動。一個程序(客戶端)呼叫位於遠端主機上的過程。遠端主機上的程序被稱為伺服器。這兩個程序都被分配了存根。這種通訊以以下方式發生

  • 客戶端程序呼叫客戶端存根。它傳遞所有與本地程式相關的引數。

  • 然後將所有引數打包(編組),並進行系統呼叫以將其傳送到網路的另一端。

  • 核心透過網路傳送資料,另一端接收資料。

  • 遠端主機將資料傳遞給伺服器存根,在那裡對其進行解組。

  • 將引數傳遞給過程,然後執行該過程。

  • 結果以相同的方式傳送回客戶端。

廣告