應用層也稱為應用實體(AE),它由若干個特定應用服務元素(SASE)和一個或多個公用應用服務元素(CASE)組成。每個SASE提供特定的應用服務,例如文件運輸訪問和管理(FTAM)、電子文電處理(MHS)、虛擬終端協(xié)議(VAP)等。CASE提供一組公用的應用服務,例如聯(lián)系控制服務元素(ACSE)、可靠運輸服務元素(RTSE)和遠程操作服務元素(ROSE)等。
概述
應用層向應用程序提供服務,這些服務按其向應用程序提供的特性分成組,并稱為服務元素。有些可為多種應用程序共同使用,有些則為較少的一類應用程序使用。
應用層是開放系統(tǒng)的最高層,是直接為應用進程提供服務的。其作用是在實現(xiàn)多個系統(tǒng)應用進程相互通信的同時,完成一系列業(yè)務處理所需的服務。其服務元素分為兩類:公共應用服務元素CASE和特定應用服務元素SASE。
CASE提供最基本的服務,它成為應用層中任何用戶和任何服務元素的用戶,主要為應用進程通信,分布系統(tǒng)實現(xiàn)提供基本的控制機制。
特定服務SASE則要滿足一些特定服務,如文卷傳送、訪問管理、作業(yè)傳送、銀行事務、訂單輸入等。這些將涉及到虛擬終端,作業(yè)傳送與操作、文卷傳送及訪問管理、遠程數(shù)據(jù)庫訪問、圖形核心系統(tǒng)、開放系統(tǒng)互連管理等等。
應用層的標準有DP8649“公共應用服務元素”、DP8650“公共應用服務元素用協(xié)議”、文件傳送、訪問和管理服務及協(xié)議。
主要功能和特點
屬于應用的概念和協(xié)議發(fā)展得很快,使用面又很廣泛,這給應用功能的標準化帶來了復雜性和困難性。比起其它層來說,應用層需要的標準最多,但也是最不成熟的一層。但隨著應用層的發(fā)展,各種特定應用服務的增多,應用服務的標準化開展了許多研究工作,ISO已制定了一些國際標準(IS)和國際標準草案(DIS)。因此,通過介紹一些具有通用性的協(xié)議標準,來描述應用層的主要功能及其特點。
1.文件運輸、訪問和管理功能
文件運輸與遠程文件訪問是任何計算機網(wǎng)絡最常用的兩種應用。文件運輸與遠程訪問所使用的技術是類似的,都可以假定文件位于文件服務器機器上,而用戶是在顧客機器上并想讀、寫而整個或部分地運輸這些文件,支持大多數(shù)現(xiàn)代文件服務器的關鍵技術是虛擬文件存儲器,這是一個抽象的文件服務器。虛擬文件存儲給顧客提供一個標準化的接口和一套可執(zhí)行的標準化操作。隱去了實際文件服務器的不同內(nèi)部接口,使顧客只看到虛擬文件存儲器的標準接口,訪問和運輸遠地文件的應用程序,有可能不必知道各種各樣不兼容的文件服務器的所有細節(jié)。
2. 電子郵件功能
計算機網(wǎng)絡上電子郵件的實現(xiàn)開始了人們通信方式的一場革命。電子郵件的吸引力,在于象電話一樣,速度快,不要求雙方都同時在場,而且還留下可供處理或多處投遞的書寫文電拷貝。
雖然電子郵件被認為只是文件運輸?shù)囊粋€特例,但它有一些不為所有文件運輸所共有的特殊性質(zhì)。因為,電子郵件系統(tǒng)首先需考慮一個完善的人機交互,例如寫作,編輯和讀取電子郵件的接口,其次要提供一個運輸郵件所需的郵政管理功能,例如管理郵件表和遞交通知等。此外,電子郵件與通用文件運輸?shù)牧硪粋€差別是,郵件文電是最高度結構化的文本。在許多系統(tǒng)中,每個文電除了它的內(nèi)容外,還有大量的附加信息域,這些信息域包括發(fā)送方名和地址、接收方名和地址、投寄的日期和時刻、接收復寫副本的人員表、失效日期、重要性等級、安全許可性以及其它許多附加信息。
1984年CCITT制定了叫做MHS(文電處理系統(tǒng))的X.400建議的一系列協(xié)議。ISO試圖把它們收進OSI的應用層,并叫做MOTIS(面向文電的正交換系統(tǒng))。由于X.400結構的缺少,這種吸收不是很簡單。1988年又修改了X.400,力爭與MOTIS會聚。本章我們將介紹MHS。
3.虛擬終端功能
由于種種原因,可以說終端標準化的工作已完全失敗了。解決這一問題的OSI方法是,定義一種虛擬終端,它實際上只是代有實際終端的抽象狀態(tài)的一種抽象數(shù)據(jù)結構。這種抽象數(shù)據(jù)結構可由鍵盤和計算機兩者操作,并把數(shù)據(jù)結構的當前狀態(tài)反映在顯示器上。計算機能夠查詢此抽象數(shù)據(jù)結構,并能改變此抽象數(shù)據(jù)結構以使得屏幕上出現(xiàn)輸出。
4. 其它應用功能
其它應用已經(jīng)或正在標準化。在此,要介紹的是目錄服務、遠程作業(yè)錄入、圖形和信息通信。
(1)目錄服務:它類似于電子電話本,提供了在網(wǎng)絡上找人或查到可用服務地址的方法。
(2)遠程作業(yè)錄入:允許在一臺計算機上工作的用戶把作業(yè)提交到另一臺計算機上去執(zhí)行。
(3)圖形:具有發(fā)送如工程圖在遠地顯示和標繪的功能。
(4)信息通信:用于家庭或辦公室的公用信息服務。例如智能用戶電報、電視圖文等。
5. 聯(lián)系控制服務元素ACSE和提交、并與恢復CCR功能。
隨著應用層的發(fā)展,各種特定應用服務增多,當初ISO7498中定義的應用層服務已大部分劃歸到公共應用服務元素(CASE)中去了,而且許多應用有一定數(shù)據(jù)的共同部分,幾乎所有這些應用都需要管理連接。為了避免每一個新的應用都要重新從頭開始,ISO決定把這些公共部分實行標準化。下面描述其中最重要的兩個。
(1)聯(lián)系控制服務元素CASE
聯(lián)系控制服元素提供應用連接的建立和正常或異常釋放的功能。
所謂聯(lián)系是指兩個應用實體之間的連接。聯(lián)系控制服務元素是應用層的基本核心子集。提出以下幾個ACSE原語:1)A-ASSOCIATE 建立一個聯(lián)系;2)A-RELEASE 釋放一個聯(lián)系;3)A-ABORT 用戶發(fā)起的夭折;4)A-P-ABORT 提供者發(fā)起的夭折。每一條CASE原語與相應的表示層服務原語有一一映照關系,也即應用聯(lián)系與表示連接是同時建立、同時釋放的。
(2)托付、并發(fā)和恢復(CCR)
CCR的主要目的就是協(xié)調(diào)若干個(相互關聯(lián)的)應用聯(lián)系,為基本多應用聯(lián)系的信息處理任務提供一個安全和高效的環(huán)境。幾乎所有的需要可靠性操作的應用都使用CCR。
在CCR模型中,數(shù)據(jù)分為兩大類:安全類型和常規(guī)類型。所謂安全數(shù)據(jù)是那些能經(jīng)受應用失敗,并且在應用聯(lián)系恢復到正常后可以重新引用的數(shù)據(jù)。通常是把安全數(shù)據(jù)存儲在外部存儲介質(zhì)中。為了保證安全數(shù)據(jù)的完整性和可靠性,對它的修改要用一些特定的規(guī)則,例如特定的封鎖機制。所謂常規(guī)數(shù)據(jù)是那些在應用聯(lián)系工作期間并沒有被保存在可靠存儲區(qū)域的數(shù)據(jù)。例如在緩沖區(qū)或工作棧中,當應用聯(lián)系受到破壞后,這些數(shù)據(jù)將不再可用。
安全數(shù)據(jù)又可細分為三大類:
約束數(shù)據(jù):它獨立于CCR聯(lián)系,但在有CCR聯(lián)系期間,它的狀態(tài)按CCR的規(guī)則約束于CCR聯(lián)系的狀態(tài)。這類數(shù)據(jù)是動作開始操作的對象,它們通常在動作開始前已存在;在動作進行期間被約束;在動作結束并釋放它們后繼存在。
原子動作數(shù)據(jù):在CCR聯(lián)系存在期間它用于維持CCR聯(lián)系和CCR聯(lián)系的狀態(tài)。
安全數(shù)據(jù):安全數(shù)據(jù)雖在原子動作中可能用到,但它們既不是由CCR命名的,也不受原子動作的恢復和重新啟動的影響。
協(xié)議舉例
DNS
DNS最早于1983由保羅。莫卡派喬斯(Paul Mockapetris)發(fā)明;原始的技術規(guī)范在882號因特網(wǎng)標準草案(RFC 882)中發(fā)布。1987年發(fā)布的第1034和1035號草案修正了DNS技術規(guī)范,并廢除了之前的第882和883號草案。在此之后對因特網(wǎng)標準草案的修改基本上沒有涉及到DNS技術規(guī)范部分的改動。
早期的域名必須以英文句號“.”結尾,,這樣DNS才能夠進行域名解析。如今DNS服務器已經(jīng)可以自動補上結尾的句號。
當前,對于域名長度的限制是63個字符,包括www.和.com或者其他的擴展名。域名同時也僅限于ASCII字符的一個子集,這使得很多其他語言無法正確表示他們的名字和單詞。基于Punycode碼的IDNA系統(tǒng),可以將Unicode字符串映射為有效的DNS字符集,這已經(jīng)通過了驗證并被一些注冊機構作為一種變通的方法所采納。
HTTP
HTTP的發(fā)展是萬維網(wǎng)協(xié)會(World Wide Web Consortium)和Internet工作小組(Internet Engineering Task Force)合作的結果,(他們)最終發(fā)布了一系列的RFC,其中最著名的就是RFC 2616。RFC 2616定義了HTTP協(xié)議中一個現(xiàn)今被廣泛使用的版本——HTTP 1.1。
HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端是網(wǎng)站。通過使用Web瀏覽器、網(wǎng)絡爬蟲或者其它的工具,客戶端發(fā)起一個到服務器上指定端口(默認端口為80)的HTTP請求。(我們稱這個客戶端)調(diào)用戶代理(user agent)。應答的服務器上存儲著(一些)資源,比如HTML和圖像。(我們稱)這個應答服務器為源服務器(origin server)。在用戶代理和源服務器中間可能存在多個中間層,比如代理,網(wǎng)關,或者隧道(tunnel)。盡管TCP/IP協(xié)議是互聯(lián)網(wǎng)上最流行的應用,HTTP協(xié)議并沒有規(guī)定必須使用它和(基于)它支持的層。事實上,HTTP可以在任何其他互聯(lián)網(wǎng)協(xié)議上,或者在其他網(wǎng)絡上實現(xiàn)。HTTP只假定(其下層協(xié)議提供)可靠的傳輸,任何能夠提供這種保證的協(xié)議都可以被其使用。通常,由HTTP客戶端發(fā)起一個請求,建立一個到服務器指定端口(默認是80端口)的TCP連接。HTTP服務器則在那個端口監(jiān)聽客戶端發(fā)送過來的請求。一旦收到請求,服務器(向客戶端)發(fā)回一個狀態(tài)行,比如"HTTP/1.1 200 OK",和(響應的)消息,消息的消息體可能是請求的文件、錯誤消息、或者其它一些信息。
HTTP使用TCP而不是UDP的原因在于(打開一個)一個網(wǎng)頁必須傳送很多數(shù)據(jù),而TCP協(xié)議提供傳輸控制,按順序組織數(shù)據(jù),和錯誤糾正。具體細節(jié)請參考‘TCP和UDP的不同’。
通過HTTP或者HTTPS協(xié)議請求的資源由統(tǒng)一資源定位器(Uniform Resource Identifiers,或者,更準確一些,URI)來標識。
FTP
斷點續(xù)傳服務一般運行在20和21兩個端口。端口20用于在客戶端和服務器之間傳輸數(shù)據(jù)流,而端口21用于傳輸控制流,并且是命令通向ftp服務器的進口。當數(shù)據(jù)通過數(shù)據(jù)流傳輸時,控制流處于空閑狀態(tài)。而當控制流,空閑很長時間后,客戶端的防火墻,會將其會話置為超時,這樣當大量數(shù)據(jù)通過防火墻時,會產(chǎn)生一些問題。此時,雖然文件可以成功的傳輸,但因為控制會話,會被防火墻斷開;傳輸會產(chǎn)生一些錯誤。
FTP實現(xiàn)的目標:
促進文件的共享(計算機程序或數(shù)據(jù))鼓勵間接或者隱式的使用遠程計算機向用戶屏蔽不同主機中各種文件存儲系統(tǒng)(File system)的細節(jié)可靠和高效的傳輸數(shù)據(jù)缺點:
密碼和文件內(nèi)容都使用明文傳輸,可能產(chǎn)生不希望發(fā)生的竊聽。因為必須開放一個隨機的端口以建立連接,當防火墻存在時,客戶端很難過濾處于主動模式下的斷點續(xù)傳流量。這個問題,通過使用被動模式的FTP,得到了很大解決。服務器可能會被告知連接一個第三方計算機的保留端口。此方式在需要傳輸文件數(shù)量很多的小文件時,效能不好FTP雖然可以被終端用戶直接使用,但是它是設計成被FTP客戶端程序所控制。
運行FTP服務的許多站點都開放匿名服務,在這種設置下,用戶不需要帳號就可以登錄服務器,默認情況下,匿名用戶的用戶名是:“anonymous”。這個帳號不需要密碼,雖然通常要求輸入用戶的郵件地址作為認證密碼,但這只是一些細節(jié)或者此郵件地址根本不被確定,而是依賴于斷點續(xù)傳服務器的配置情況。
參考資料 >