應(yīng)用層服務(wù)及協(xié)議
點對點網(wǎng)絡(luò)及應(yīng)用程序網(wǎng)絡(luò)模型中除了客戶端/服務(wù)器模型外,還有點對點(P2P )模型。點對點網(wǎng)絡(luò)模型有兩種不同形式:點對點網(wǎng)絡(luò)設(shè)計和點對點應(yīng)用程序。這兩種形式具有相似的特征,但實際工作過程卻大不相同。一
點對點網(wǎng)絡(luò)及應(yīng)用程序
網(wǎng)絡(luò)模型中除了客戶端/服務(wù)器模型外,還有點對點(P2P )模型。點對點網(wǎng)絡(luò)模型有兩種不同形式:點對點網(wǎng)絡(luò)設(shè)計和點對點應(yīng)用程序。這兩種形式具有相似的特征,但實際工作過程卻大不相同。
一、點對點網(wǎng)絡(luò)
在點對點網(wǎng)絡(luò)中,兩臺或兩臺以上的計算機通過網(wǎng)絡(luò)互聯(lián),它們共享資源(如打印機和文件)時可以不借助專用服務(wù)器。每臺接入的終端設(shè)備(稱為" 點" )既可以作為服務(wù)器,也可以作為客戶機。在某項事務(wù)中,作為服務(wù)器的計算機也可以同時成為其他服務(wù)器的客戶端。如圖3-9所示,計算機的角色根據(jù)請求的不同在客戶端和服務(wù)器之間切換。本圖顯示了一個對等節(jié)點向另一個請求打印服務(wù),同時作為一個文件服務(wù)器共享它的文件。
,一類P2P 應(yīng)用程序中采用混合系統(tǒng),即共享的資源是分散的,但指向資源位置的索引存儲在集中目錄中。在混合系統(tǒng)中,每臺對等設(shè)備通過訪問索引服務(wù)器獲取存儲在另一臺對等設(shè)備中的資源位置。索引服務(wù)器也可以幫助連接兩臺對等設(shè)備。但連接完成后,通信將只在兩臺對等設(shè)備之間完成,而不需要與索引服務(wù)器進行額外通信。
點對點應(yīng)用程序可以用于點對點網(wǎng)絡(luò)、客戶端/服務(wù)器網(wǎng)絡(luò)以及Internet 。
DNS 服務(wù)及協(xié)議
我們已經(jīng)理解了應(yīng)用程序如何為用戶提供接口,以及如何訪問網(wǎng)絡(luò)。現(xiàn)在,我們將討論一些常用的協(xié)議。
我們將在下文中看到,傳輸層使用某種編址方案,稱為端口號。端口號識別應(yīng)用程序及應(yīng)用層服務(wù)(即源數(shù)據(jù)和目的數(shù)據(jù))。服務(wù)器程序通常使用客戶機已知的預(yù)定義端口號。當我們研究不同的TCP/IP應(yīng)用層協(xié)議和服務(wù)時,我們將參考與這些服務(wù)相關(guān)聯(lián)的TCP 和UDP 端口號。這些服務(wù)包括:
域名系統(tǒng)(DNS )-TCP/UDP端口53;
超文本傳輸協(xié)議(HTTP )-TCP 端口80;
簡單郵件傳輸協(xié)議(SMTP )-TCP 端口25;
郵局協(xié)議(POP )-UDP 端口110;
Telnet-TCP 端口23;
動態(tài)主機配置協(xié)議(DHCP )-UDP 端口67;
文件傳輸協(xié)議(FTP )-TCP 端口20和端口21;
DNS 服務(wù)及協(xié)議
在數(shù)據(jù)網(wǎng)絡(luò)中,設(shè)備以數(shù)字IP 地址 標記,從而可以參與收發(fā)消息。但是人們很難記住這些數(shù)字地址。于是,人們創(chuàng)建了可以將數(shù)字地址轉(zhuǎn)換為簡單易記名稱的域名系統(tǒng)。
在Internet 上,更便于人們記憶的是www.cisco.com 這樣的域名,而不是該服務(wù)器的實際數(shù)字地址198.133.219.25。而且,即使Cisco 決定更換數(shù)字地址,也不會給用戶造成影響,因為其域名 仍然是www.cisco.com 。如圖3-11所示,公司只需要將新地址與現(xiàn)有域名鏈接起來即可保證連通性。在小型網(wǎng)絡(luò)中,維持域名和真實地址之間的映射很簡單。然而,當網(wǎng)絡(luò)擴大且設(shè)備數(shù)量增加時,這種人工控制系統(tǒng)就顯得捉襟見肘。
,于是域名系統(tǒng)(DNS )應(yīng)運而生,專門為大型網(wǎng)絡(luò)提供域名的地址解析。DNS 使用分布式服務(wù)器來解析與這些數(shù)字地址相關(guān)聯(lián)的名稱。
一、DNS 如何工作
DNS 協(xié)議定義了一套自動化服務(wù),該服務(wù)將資源名稱與所需的數(shù)字網(wǎng)絡(luò)地址 匹配。協(xié)議涵蓋了查詢格式、響應(yīng)格式及數(shù)據(jù)格式。DNS 協(xié)議通信采用單一格式,即消息格式。該格式用于所有類型的客戶端查詢和服務(wù)器響應(yīng)、報錯消息以及服務(wù)器間的資源記錄 信息的傳輸。
DNS 是一種客戶端/服務(wù)器服務(wù)。然而,它與我們討論的其他客戶端/服務(wù)器服務(wù)不同。其他服務(wù)使用的客戶端是應(yīng)用程序(如Web 瀏覽器、電子郵件客戶端程序),而DNS 客戶端本身就是一種服務(wù)。DNS 客戶端有時被稱為DNS 解析器,它支持其他網(wǎng)絡(luò)應(yīng)用程序和服務(wù)的名稱解析。
我們通常在配置網(wǎng)絡(luò)設(shè)備時提供一個或者多個DNS 服務(wù)器地址,DNS 客戶端可以使用該地址進行域名解析。Internet 服務(wù)供應(yīng)商(ISP )往往會為DNS 服務(wù)器提供地址。當用戶的應(yīng)用程序請求通過域名連入遠程設(shè)備時,DNS 客戶端將向某一域名服務(wù)器請求查詢,獲得域名解析后的數(shù)字地址。
用戶還可以使用操作系統(tǒng)中名為nslookup 的實用程序手動查詢 域名服務(wù)器,來解析給定的主機名。該實用程序也可以用于檢修域名解析的故障,以及驗證域名服務(wù)器的當前狀態(tài)。
在例3-1中,輸入nslookup 后,即顯示為主機配置的默認DNS 服務(wù)器。本例中,DNS 服務(wù)器是dns-sjk.cisco.com ,其地址是171.68.226.120。
例3-1 nslookup 命令
,隨后,你可以鍵入要獲取地址的主機名或者域名。在例3-1中的第一個查詢框,輸入進行查詢。相應(yīng)的域名服務(wù)器顯示地址:198.133.219.25。
雖然例3-1中所示的查詢只是簡單測試,nslookup 實用程序還有很多選項,可以用于大量測試以及DNS 進程驗證。
二、域名解析與緩存
DNS 服務(wù)器使用域名守護程序(通常簡稱為named 守護程序)提供域名解析。DNS 擔當Internet 的電話簿職能:它將人可讀的計算機主機名,如http://www.cisco.com翻譯成網(wǎng)絡(luò)設(shè)備需要用來分發(fā)信息的IP 地址。
DNS 服務(wù)器中存儲不同類型的資源記錄,用來解析域名。這些記錄中包含域名、地址以及記錄的類型。
這些記錄有以下類型:
A 記錄-終端設(shè)備地址;
NS 記錄-權(quán)威域名服務(wù)器;
CNAME 記錄-名的規(guī)范域名(或稱為完全合格域名[FQDN]);適用環(huán)境是單一網(wǎng)絡(luò)地址對應(yīng)多個服務(wù),但每個服務(wù)在DNS 服務(wù)器上都有各自條目;
MX 記錄-郵件交換記錄;它將域名映射到用于該域的一系列郵件交換服務(wù)器上。 當客戶端提出查詢請求時,服務(wù)器的named 守護進程將首先檢索自己的記錄,以查看是否能夠自行解析域名。如果服務(wù)器不能通過自身存儲的記錄解析域名,它將連接其他服務(wù)器對該域名進行解析。
該解析請求將會發(fā)送到很多服務(wù)器,因此需要耗費額外的時間,而且耗費帶寬。當檢索到匹配信息時,當前服務(wù)器將該信息返回至源請求服務(wù)器,并將匹配域名的數(shù)字地址臨時保存在緩存 中。
因此,當再次請求解析相同的域名時,第一臺服務(wù)器就可以直接調(diào)用域名緩存中的地址。通過緩存機制,不但降低了DNS 查詢數(shù)據(jù)網(wǎng)絡(luò)的流量,也減少了上層服務(wù)器工作的負載。在安裝了Windows 系統(tǒng)的個人計算機中,DNS 客戶端服務(wù)可以預(yù)先在內(nèi)存中存儲已解析的域名,從而優(yōu)化DNS 域名解析性能。在Windows XP或者Windows 2000操作系統(tǒng)中,輸入ipconfig/displaydns命令可以顯示所有DNS 緩存條目。
三、DNS 層次
域名系統(tǒng)采用分級系統(tǒng)創(chuàng)建域名數(shù)據(jù)庫,從而提供域名解析服務(wù)。該層級模型的外觀類似一棵倒置的樹,枝葉在下,而樹根在上。
,域名系統(tǒng)正是依靠這些分散的、分層級的服務(wù)器來保存并維護資源記錄的。服務(wù)器根據(jù)資源記錄中的域名列表解析域名,而備用服務(wù)器也可以處理域名解析請求。如果指定服務(wù)器中有與其域級別相對應(yīng)的資源記錄,則該服務(wù)器可以稱為這些記錄的主域名 服務(wù)器。
例如,對于mail.cisco.com 記錄而言,它位于比cisco.netacad.net 更高層級的服務(wù)器上(尤其是cisco.com 域中的服務(wù)器上)。因此,cisco.netacad.net 域中的某個域名服務(wù)器就不是mail.cisco.com 記錄的主域名服務(wù)器。
WWW 服務(wù)及HTTP
,當在Web 瀏覽器中輸入一個Web 地址(或者URL 地址)時,Web 瀏覽器將通過HTTP 協(xié)議建立與服務(wù)器上的Web 服務(wù)之間的連接。一提到Web 地址,大多數(shù)人往往想到統(tǒng)一資源定位器(URL )以及統(tǒng)一資源標識符(URI )。
網(wǎng)址http://www.cisco.com/index.html就是一種URL 地址,它表示某個特定資源位于cisco.com 服務(wù)器上的名為index.html 的網(wǎng)頁中。
Web 瀏覽器是一種客戶端應(yīng)用程序,我們的計算機使用該程序連接萬維網(wǎng),并訪問存儲在Web 服務(wù)器上的資源。與多數(shù)服務(wù)器進程一樣,Web 服務(wù)器以后臺服務(wù)的方式運行,并支持不同類型的文件。
Web 客戶端首先連接服務(wù)器,然后發(fā)送資源請求,從而訪問需要的資源內(nèi)容。服務(wù)器響應(yīng)資源請求。瀏覽器對收到的資源進行解釋,并將解釋后的數(shù)據(jù)呈現(xiàn)給用戶。
瀏覽器可以解釋并顯示很多種數(shù)據(jù)類型,如純文本或構(gòu)建網(wǎng)頁的超文本標記語言
(HTML )。但是,除此之外的其他數(shù)據(jù)類型需要其他服務(wù)或程序的支持,即我們常說的插件。為便于瀏覽器識別所接受文件的類型,服務(wù)器應(yīng)指定文件中包含的數(shù)據(jù)類型。
為了更好地理解Web 瀏覽器和Web 客戶端的交互原理,我們可以研究一下瀏覽器是如何打開網(wǎng)頁的。在本例中,我們采用如下URL 地址:http://www.cisco.com/web-server.htm。
首先,瀏覽器對URL 地址的三個組成部分進行分析:
(服務(wù)器名稱);
web-server.htm (所要請求的文件名稱)。
然后,瀏覽器將通過域名服務(wù)器將www.cisco.com 轉(zhuǎn)換成到數(shù)字地址,用它連接到該服務(wù)器。根據(jù)HTTP 協(xié)議的要求,瀏覽器向該服務(wù)器發(fā)送GET 請求,并要求訪問web-server.htm 文件。被請求服務(wù)器隨即將被請求網(wǎng)頁的HTML 代碼發(fā)送給瀏覽器。最后,瀏覽器解讀HTML 代碼并將網(wǎng)頁內(nèi)容顯示到瀏覽器窗口中。
超文本傳輸協(xié)議(HTTP )是TCP/IP協(xié)議族中的一種協(xié)議。該協(xié)議是為了發(fā)布和檢索HTML 頁面而開發(fā)出來的,現(xiàn)在用于分布式協(xié)同 信息系統(tǒng)。在萬維網(wǎng)中,HTTP 是一種數(shù)據(jù)傳輸協(xié)議。同時,它還是最常用的應(yīng)用程序協(xié)議。
HTTP 中規(guī)定了請求/響應(yīng)的協(xié)議。當客戶端(尤其是Web 瀏覽器)向服務(wù)器發(fā)送請求消息時,HTTP 協(xié)議將規(guī)定客戶端請求網(wǎng)頁消息的類型,以及服務(wù)器響應(yīng)信息的類型。常用的三種消息類型包括:
,GET
POST
PUT
POST 和PUT 消息用于向Web 服務(wù)器發(fā)送上傳數(shù)據(jù)的請求。例如,當用戶在Web 頁面的表單中輸入數(shù)據(jù)時,一條包含數(shù)據(jù)的POST 消息將被發(fā)送到服務(wù)器上。PUT 用于向Web 服務(wù)器上傳資源或內(nèi)容。
雖然HTTP 是一種很靈活的協(xié)議,但它并不安全。POST 消息以純文本格式向服務(wù)器上傳信息,該信息可能被其他程序中途截取、閱讀。與之相同的是,服務(wù)器的響應(yīng)(尤其是HTML 頁面)也不加密。
為了在Internet 中進行安全通信,人們使用安全超文本傳輸(HTTPS )協(xié)議來訪問或發(fā)布Web 服務(wù)器信息。HTTPS 可以采用身份驗證和加密(encryption )兩種方式保障客戶端和服務(wù)器間的數(shù)據(jù)傳輸安全。HTTPS 中還指定了應(yīng)用層和傳輸層之間數(shù)據(jù)通信的附加規(guī)則。
電子郵件服務(wù)及SMTP/POP協(xié)議
電子郵件是一種最常見的網(wǎng)絡(luò)服務(wù)。由于它的簡單快捷,人們的溝通方式發(fā)生了巨大變革。但是,如果要在一臺計算機或其他終端設(shè)備上運行電子郵件,仍需要一些應(yīng)用程序和服
,電子郵件客戶端可以使用POP 協(xié)議從電子郵件服務(wù)器接收電子郵件消息。從客戶端或者從服務(wù)器中發(fā)送的電子郵件消息格式以及命令字符串必須符合SMTP 協(xié)議的要求。通常,電子郵件客戶端程序可同時支持上述兩種協(xié)議。
電子郵件服務(wù)器進程-MTA 及MDA
電子郵件服務(wù)器運行兩個獨立的進程:
郵件傳送代理(MTA );
郵件分發(fā)代理(MDA )。
郵件傳送代理(MTA )進程用于發(fā)送電子郵件。如圖3-15所示,MTA 從MUA 處或者另一臺電子郵件服務(wù)器上的MTA 處接收信息。根據(jù)消息標題的內(nèi)容,MTA 決定如何將該消息發(fā)送到目的地。如果郵件的目的地址位于本地服務(wù)器上,則該郵件將轉(zhuǎn)給MDA 。如果郵件的目的地址不在本地服務(wù)器上,則MTA 將電子郵件發(fā)送到相應(yīng)服務(wù)器上的MTA 上。
,在圖3-16中,你可以看到郵件分發(fā)代理(MDA )從郵件傳送代理(MTA )中接收了一封郵件,并執(zhí)行了分發(fā)操作。MDA 從MTA 處接收所有的郵件,并放到相應(yīng)的用戶郵箱中。MDA 還可以解決最終發(fā)送問題,如病毒掃描、垃圾郵件過濾以及送達回執(zhí)處理。
大多數(shù)的電子郵件通信都采用MUA 、MTA 以及MDA 應(yīng)用程序。但其他一些備選程序也可以用于電子郵件發(fā)送??梢詫⒖蛻舳诉B接到公司郵件系統(tǒng)(IBM Lotus Notes、Novell Groupwise 或者Microsoft Exchange)。這些系統(tǒng)通常有其內(nèi)部的電子郵件格式,因此它們的客戶端可以通過私有協(xié)議與電子郵件服務(wù)器通信。
上述郵件系統(tǒng)的服務(wù)器通過其Internet 郵件網(wǎng)關(guān) 對郵件格式進行重組,使服務(wù)器可以通過Internet 收發(fā)電子郵件。
還有一種情況是,未使用MUA 的計算機仍可以通過Web 瀏覽器連接郵件服務(wù),從而可以收發(fā)郵件。還有些計算機則運行自己的MTA 并自行管理多個域之間的電子郵件服務(wù)。例如,在同一家公司工作的兩個職員使用私有協(xié)議相互發(fā)送電子郵件時,他們的郵件可能完全停留在公司的電子郵件系統(tǒng)內(nèi)。
SMTP 協(xié)議的消息格式包括一套嚴格的命令集和回復(fù)集。這些命令支持SMTP 協(xié)議下的操作,如會話初始化、郵件交換、郵件轉(zhuǎn)發(fā)、驗證郵箱名、擴展郵件列表以及郵件交換的開啟和關(guān)閉。
SMTP 協(xié)議下常用的命令包括:
HELO-將SMTP 客戶端進程對應(yīng)到SMTP 服務(wù)器進程;
EHLO-HELO 的新形式,包括服務(wù)擴展;
MAIL FROM-標志發(fā)件人;
RCPT TO-標志收件人;
DATA-標志消息內(nèi)容。
FTP