新手入門:瞭解網絡應用與網絡協議2

應用層協議

  把網絡應用和應用層協議區分開來相當重要。應用層協議僅僅是網絡應用的一部分,讓我們看幾個例子。Web是一個允許用戶從Web服務器按要求取得“文檔”的網絡應用,web應用由許多部件構成,包括—個文檔格式的標準(即超文本標記語言HTML)、Web瀏覽器軟件、Web服務器軟件(例如Apache、IIS服務器)、一個應用層協議。Web的應用層協議是超文本傳送協議(HTTP),它定義如何在瀏覽器和web服務器之間傳遞消息。因此HTTP僅僅是Web應用的一部分。另一個例於是電子郵件應用。電子郵件應用同樣由許多部件構成,包括安置用戶信箱的郵件服務器、讓用戶閱讀和創建電子郵件消息的郵件閱讀器、一個定義電子郵件消息結構的標推、一組定義如何在服務器之間以及服務器和閱讀器之間傳遞電子郵件消息並解釋其特定部分(例如信頭)的應用層協議。電於郵件應用的首要應用層協議是簡單郵件傳輸協議(SMTP)。因此SMTP也僅僅是電子郵件應用的一部分。

  我們已經指出,應用層協議定義運行在不同端系統上的應用程序進程如何彼此傳遞消息。具體地說,一個應用層協議定義:

  ●所傳遞消息的類型,例如請求消息和響應消息。

  ●各種消息類型的語法,也就是消息中的各個字段以及它們如何定界。

  ●各個字段的語義,也就是各個字段中的信息的含義。

  ●確定一個進程何時以及如何發出消息或響應所收到消息的規則。

  有些應用層協議是在RFC文檔中詳細說明的,也就是說它們處於可免費獲取的公衆域。例如,HTTP就可以作爲RFC獲取。瀏覽器軟件開發者只要遵循該RFC中定義的規則,其瀏覽器就可以從同樣遵循這些規則的任何web服務器取得Web頁面。然而,其他許多應用層協議卻是專屬的,有意不放在公衆域中。例如,許多現有的因特網電話產品使用專屬的應用層協議。

  客戶和服務器

  一個網絡應用協議通常擁有客戶端(client side)和服務器端(server side)這兩個對等的“端”或實體,它們分別對應運行客戶程序的客戶進程(簡稱客戶)和運行服務器程序的服務器進程(簡稱服務器),如圖2所示。處於一個端系統中的客戶端與處於另一個端系統中的服務器端彼此通信。例如,web瀏覽器實現的是HTTP客戶端,web服務器實現的是HTTP服務器端。在電子郵件應用中,發送郵件消息的郵件服務器扮演SMIP的客戶端角色,接收郵件消息的郵件服務器扮演SMTP的服務器端角色。


圖2:客戶/服務器交互

  對於許多應用來說,它們的客戶端和服務器端可以同時實現在單臺主機上。就以主機A和主機B之間的一個Telnet會話爲例。如果這個Telnet會話是由主機A發起的(即主機A上有一個用戶登錄到了主機B),那麼主機A運行的是該應用的客戶端,主機B運行的是該應用的服務器端。相反,如果這個Telnet會話是由主機B發起的,那麼主機B運行的是該應用的客戶端。用於在兩臺主機之間傳送文件的FTP提供了另外一個例子。兩臺主機之間一旦啓動一個FTP會話,其中任何一臺主機就可以在該會話結束之前向另一臺主機傳達文件。儘管如此,我們還是按照幾乎所有網絡應用的慣常情況,把發起會話的主機標爲客戶。另外,單臺主機實際上可能同時作爲某個給定應用的客戶主機和服務器主機。例如,郵件服務器主機同時運行着SMlP客戶端(用於發送郵件)和服務器端(用於接收郵件)。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章