標籤:電腦網路-應用程式層
一、應用程式層協議原理
1.網路應用程式體繫結構
應用程式的體繫結構明顯不同於網路的體繫結構。從應用程式研發者的角度看,網路體繫結構是固定的,並為應用程式提供了特定的服務集合。
應用程式體繫結構(application architecture)由應用程式研發者設計,規定了如何在各種端系統上組織該應用程式。
現代網路應用程式的兩種主流體繫結構:客戶機/伺服器體繫結構和對等(P2P)體繫結構。
客戶機/伺服器體繫結構(client-sever architecture):有一個總是開啟的主機稱為伺服器,它服務於來自許多其他稱為客戶機的主機請求。客戶機主機既可以有時開啟,也可能總是開啟。一個典型的例子是Web應用程式,其中總是開啟的Web伺服器服務於運行在客戶機主機上的瀏覽器的請求。當Web伺服器接收到來自某客戶機對某對象的請求時,它向該客戶機發送所請求的對象作為響應。注意到客戶機/伺服器體繫結構中,客戶機相互之間不能直接通訊,例如,在Web應用中兩個瀏覽器不能直接通訊。客戶機/伺服器體繫結構的另一個特徵是伺服器具有固定的、周知的地址,稱為IP地址。因為伺服器具有固定的、周知的地址,並且總是處於開啟狀態,所以客戶機總是能夠通過向該伺服器的地址發送分組來與其聯絡。某些具有客戶機/伺服器體繫結構的更為著名的應用程式套件組合括Web、FTP、Telnet和電子郵件。
在P2P體繫結構(P2P architecture)中,對總是開啟的基礎設施伺服器有最小的依賴。任意間斷串連的主機對稱為對等方,直接相互連信。對等方並不為服務提供者所有,而是為使用者控制的案頭機和膝上機所有,大多數對等方駐留在家庭、大學和辦公室。因為這種對等方通訊不必通過專門的伺服器所以體繫結構被稱為對等方到對等方(簡稱為對等)。目前,大多數流行的流量密集型應用程式都是P2P體繫結構的,包括檔案分發、檔案搜尋/共用、網際網路電話和IPTV(PPLive).某些應用具有混合的體繫結構,由客戶機/伺服器和P2P元素結合而成。例如,對於許多即時通訊而言,伺服器陣列用於跟蹤使用者的IP地址,但使用者到使用者的報文在使用者主機之間直接發送(無需通過中間伺服器)。P2P體繫結構的最突出特性之一是它的自擴充性(self-scalability)。例如,在一個P2P檔案分享權限設定應用中,儘管每個對等方都由請求檔案產生負載,但每個對等方向其他對等方分發檔案也為系統增加了服務能力。P2P體繫結構也是成本有效,因為它們通常不需要龐大的伺服器基礎設施和伺服器頻寬。為了降低成本,服務提供者(MSN、Yahoo等)對於P2P體繫結構用於系統的興趣越來越大。另一方面,由於P2P應用程式具有高度分布和開放的性質,因此要格外關注系統的安全。
2.進程通訊
2.1 客戶機和伺服器處理序:
網路應用程式由成對的進程組成,這些進程通過網路相互發送報文。例如,在Web應用程式中,一個客戶機瀏覽器進程與一台Web伺服器處理序交換報文。在一個P2P檔案分享權限設定系統中,檔案從一個對等方中的進程傳輸到另一個對等方中的進程。對每對進程通訊,通常將這兩個進程之一表示為客戶機(client),而另一個進程表示為伺服器(server)。在Web中,瀏覽器是一個客戶機進程,Web伺服器是一個伺服器處理序。對於P2P檔案分享權限設定,下載檔案的對等方被標示為客戶機,上傳檔案的對等方的對等方稱為伺服器。
在給定的一對進程之間的通訊會話中,發起通訊的進程被標示為客戶機,在會話開始時等待聯絡的進程是伺服器。
2.2 進程與電腦網路之間的介面:
多數應用程式由通訊進程對組成,每對中的兩個進程互相發送報文。從一個進程向另一個進程發送的報文必須通過下面的網路。進程通過一個稱為通訊端(socket)的軟體介面在網路上發送和接收報文。
進程類比於一座房子,而它的通訊端可以類比於它的門。當一個進程想向位於另外一台主機上的另一個進程發送報文時,它把報文推出門(socket)。該發送進程假定門到另一側之間有運輸的基礎設施,該設施將把報文傳送到目的進程的門口。一旦報文抵達目的主機,它通過報文接收進程的門(socket)傳遞,然後接收進程對報文進行相應的處理。
由於通訊端是在網路上建立網路應用程式的可程式化介面,因此也將通訊端稱為應用程式和網路之間的API(Application Programming Interface,API)。應用程式開發人員可以控制通訊端在應用程式層端的所有東西,但是對該通訊端的運輸層端幾乎沒有控制。
應用程式開發人員對運輸層的控制僅限於:選擇運輸層協議 也許能設定及格運輸層參數,如最大緩衝、最大報文長度等。一旦應用程式開發人員選擇了一個運輸層協議(若可供選擇),則應用程式就建立在由該協議提供的運輸層服務之上。
2.3 可供應用程式使用的運輸服務:
2.4 網際網路提供的運輸服務
2.5 應用程式層協議
二、Web應用和HTTP協議
三、檔案傳輸通訊協定:FTP
四、網際網路中的電子郵件
五、DNS:網際網路的目錄服務
六、P2P應用
七、TCP通訊端編程
八、UDP通訊端編程
電腦網路-應用程式層