客戶/伺服器模型
--------------------------------------------------------------------------------
1、基本概念
n客戶/伺服器模型是所有網路套用的基礎。客戶/伺服器分別指參與一次通信的兩個套用實體,客戶方主動地發起通信請求,伺服器方被動地等待通信的建立。
2、客戶軟體
任何一個應用程式當需要進行遠程訪問時成為客戶,這個應用程式也要完成一些本地的計算;
一般運行於用戶的個人計算機上;
向伺服器主動發起通信請求;
可以訪問多個伺服器,但一次只能訪問一個;
不需要特殊的硬體和複雜的作業系統。
3、伺服器軟體
是專用的提供某種服務的特權程式,可以同時處理多個遠程客戶;
一般在系統啟動時被執行,並連續運行以處理多次會話;
被動的等待遠程客戶發起通信;
需要特殊的硬體和複雜的作業系統。
數據在客戶和伺服器之間是雙向流動的,一般是客戶發出請求,伺服器給出回響。
4、伺服器軟體的並發性
由於伺服器軟體要支持多個客戶的同時訪問,它必須具備並發性。伺服器軟體為每個新到的客戶創建一個進程或執行緒來處理和這個客戶的通信。伺服器方傳送層實體使用客戶的源連線埠號和服務的連線埠號來確定正確的伺服器軟體進程(執行緒)。
5、伺服器軟體的組成
伺服器軟體一般分為兩部分:一部分用於接受請求並創建新的進程或執行緒,另一部分用於處理實際的通信過程。
6、客戶/伺服器之間使用的傳送層協定
可以是基於連線的TCP協定,要求建立和釋放連線,適用於可靠的互動過程;
也可以是無連線的UDP協定,適用於可靠性要求不高的或實時的互動過程;
同時使用TCP和UDP的服務,有兩種伺服器軟體的實現或伺服器軟體同時和TCP、UDP協定互動,不對客戶做限制。
7、客戶和伺服器的互動
1)支持協定:在INTERNET中,客戶和伺服器的互動通過使用TCP/IP協定棧來完成。因此,客戶和伺服器所在的機器要求支持完全的協定棧。客戶/伺服器通過套接字訪問傳送層服務。
2)多種服務:一台計算機上可以運行多個伺服器軟體,但是要求計算機有強大的硬體資源(伺服器級別的計算機)和多任務作業系統(UNIX和WIN95/98/2000/NT)。
3)服務的標識:客戶是通過服務的標識來訪問某種服務的,比如在INTERNET中,服務是用連線埠號來標識,UNIX在/etc/services檔案中定義。伺服器軟體啟動時將其標識通知傳送層實體。