伺服器模型 C S模型和P2P模型

2021-08-07 17:32:14 字數 1773 閱讀 8956

呦呦切克鬧,煎餅果子來一套

tcp/ip協議在設計和實現上並沒有客戶端和伺服器的概念,在通訊過程中所有機器都是對等的。但由於資源都被資料提供者所壟斷,所以幾乎所有的網路應用程式都很自然地採用了下圖所示的c/s(客戶端/伺服器)模型。

(1)c/s(客戶端/伺服器)模型:所有客戶端都通過訪問伺服器來獲取所需的資源。

c/s模型的邏輯很簡單。伺服器啟動後,首先建立乙個(或多個)監聽socket,並呼叫bind函式將其繫結到伺服器感興趣的埠上,然後呼叫listen函式等待客戶連線。伺服器穩定執行後,客戶端就可以呼叫connect函式向伺服器發起連線 了。由於客戶連線請求是隨機到達的非同步事件,伺服器需要使用某種i/o模型來監聽這一事件。i/o模型有多種,下圖伺服器使用的是i/o復用技術之一的select系統呼叫。當監聽到連線請求後,伺服器就呼叫accept函式接收它,並分配乙個邏輯單元為新的連線服務。邏輯單元可以是新建立的子程序、子執行緒或者其它。下圖中,伺服器給客戶端分配的邏輯單元是fork系統呼叫建立的子程序。邏輯單元讀取客戶請求,處理該請求,然後將處理結果返回給客戶端。客戶端接收到伺服器反饋的結果之後,可以繼續向伺服器傳送請求,也可以立即主動關閉連線。如果客戶端主動關閉連線,則伺服器執行被動關閉連線。至此,雙方的通訊結束。需要注意的是,伺服器在處理乙個客戶請求的同時還會繼續監聽其他客戶請求,否則就變成了效率低下的序列伺服器了(必須先處理完前乙個客戶的請求,才能繼續處理下乙個客戶請求)。下圖中,伺服器同時監聽多個客戶請求是通過select系統呼叫實現的。

c/s模型非常適合資源相對集中的場合,並且它的實現也很簡單,但其缺點也很明顯:伺服器是通訊的中心,當訪問量過大時,可能所有客戶都將得到很慢的響應。下面討論的p2p模型解決了這個問題。

(2)p2p(點對點)模型

p2p(點對點)模型比c/s模型更符合網路通訊的實際情況。它摒棄了以伺服器為中心的格局,讓網路上所有的主機重新回歸對等的地位。

p2p模型使得每台機器在消耗服務的同時也給別人提供服務,這樣資源能夠充分、自由地共享。雲計算機群可以看做p2p模型的乙個典範。但p2p模型的缺點也很明顯:當使用者之間傳輸的請求過多時,網路的負載將加重。

下圖中的p2p模型存在乙個顯著的問題,即主機之間很難互相發現。所以實際使用的p2p模型通常帶有乙個專門的發現伺服器。這個發現伺服器通常還提供查詢服務(甚至還可以提供內容服務),使每個客戶都能盡快地找到自己需要的資源。

從程式設計角度來講,p2p模型可以看做c/s模型的擴充套件:每台主機既是客戶端,又是伺服器。

P2P網路模型

1 靜態配置模型 靜態配置模型是一種相對靜態而簡單的對等點定位模型。在該模型中,每個對等點都確切地知道存在於其p2p 網路中其它對等點的位置以及它們所提供的共享資源內容。缺點 網路無法應付不能預知的隨機事件和臨時變更,比如對等點隨機進入和退出網路。優點 整個網路在外部攻擊面前表現得很穩固。2 動態配...

網路通訊模型 P2P模型

一 p2p模型的概念 伺服器是網路中最容易受到攻擊的節點,一旦海量地向伺服器發出服務請求,就能導致伺服器癱瘓,以致所有客戶都不能得到服務響應,為了解決這種問題,就出現了p2p模型。p2p可以理解為對等網際網路,又翻譯為點對點或者端對端。在p2p模型中網路的參與者共享它們所擁有的一部分資源,這些資源通...

C S模型(客戶 伺服器模型)

c s模型即客戶 client 伺服器 server 模型。1.特點 伺服器提供服務,客戶請求服務。2.客戶端和伺服器之間連線的數量對應關係 多個客戶程序可以同時訪問乙個服務程序,乙個客戶程序可以同時訪問多個伺服器程序提供的服務。3.客戶端和伺服器所在不同網路位置所適用的場合 執行在同乙個機器上的場...