網絡體系結構的分類
現代網絡應用程序有兩種主流的體系結構: 客戶機/服務器體系結構和P2P體系結構(peer to peer “對等”)
一 . 客戶機/服務器體系結構


客戶機/服務器體系結構是最為喜聞樂見的網絡體系結構,它的最大特點是“一台服務器 — 多個客戶機”, 客戶機通常充當發起請求的角色,而服務器則通常充當接收請求,提供響應的角色。
這種網絡體系結構還有以下幾個特點;
1. 服務器主機是總是打開的, 客戶機主機則並不總是打開
2. 服務器是處理所有邏輯的中心
3. 基於2的原因,兩個客戶機一般是不能直接通信的, 要進行通信必須經過服務器


4. 雖然客戶機/服務器體系結構的特征是“一對多”,但是服務器卻並不總是一台,因為有的時候要處理海量的客戶機的請求, 一台服務器很快就會不堪重負,所以這個時候常用服務器集群技術(server clustering)創建強大的虛擬服務器。所以這里“一對多”的一要理解為一組服務器組成的“一”個整體的意思。


5. 由於4的原因,客戶機/服務器體系的應用服務通常是基礎設施密集的(infrastructure intensive),也就是說,提供該服務的互聯網商家,例如搜索引擎(百度),網絡商務(淘寶)通常要為服務器場的購買,安裝和維護投入巨額的費用。
二. P2P體系結構
和客戶機/服務器體系結構截然不同的是P2P體系結構(對等結構), 在P2P中,進行通信的的並不是客戶機/服務器,而是兩台客戶機。

進行通信的可能是兩台用戶的電腦,兩個手機,或者一台電腦和一個手機,總之,進行通信的任意一對都被稱為“對等方”

我們結合以下這副圖來說明P2P體系結構討人歡喜的優點


1.客戶機間的直接通信使得P2P有了強大的自擴展性(self-calability),什么意思呢? 假設上面這幅圖是一個發送文件(上載/下載)文件的過程,我們可以看到,從上至下,接收文件的主機的數量是指數遞增的,系統的服務能力在逐漸增強,而且越來越強。
2.P2P體系結構對基礎設施服務器有最小的依賴, 這是和基礎設施密集的客戶機/服務器體系結構是截然相反的。
我們假設在上圖的P2P結構中增加一個服務器,並且要求在客戶機/服務器結構和P2P結構間做一個發送文件的能力的對比: 要求是每個客戶機都成功下載一個文件,那么
- 在客戶機/服務器結構上,一個服務器要向7台客戶機上載這個文件,共上載7次,而P2P結構下,服務器最少只要上載文件一次就夠了。 相比之下, 前者服務器不堪重負,后者服務器則毫無壓力
- 事實上,完成這個任務。P2P會比客戶機/服務器結構的應用快的多
對服務器依賴小就意味着投入建設的成本會大大減小,正因此許多互聯網公司尤其喜歡P2P。 但話雖如此,但實際上具體的還是要看應用的具體業務,上面的表述仍然只是很單方面的對比。
兩種網絡體系結構各自的應用


許多我們常見的應用層協議,都是以客戶機/服務器體系結構為基礎的,例如http, FTP ,SMTP。從明天開始,我將發布一系列關於應用層協議的文章,以作為自己學習的總結
【完】
參考書籍
《計算機網絡-自頂向下》 作者 James F. Kurose
博客目錄