《計算機網路》第七章:應用層(The Application Layer)
- Copyright(C)肖文棟教授@北京科技大學自動化學院
7 The Application Layer
- 7.1 DNS—the Domain Name System
- 7.2 Electronic Mail
- 7.3 The World Wide Web
Application
– running in network hosts in “user space”
– exchange messages to implement app
– e.g., email, file transfer, the Web
Application-layer protocols
- – one “piece” of an app
- – define messages exchanged by apps and actions taken
- – use services provided by lower layer protocols
7.1 DNS—the Domain Name System域名系統
- 7.1.1 The DNS Name Space
- 7.1.2 Domain Resource Records
- 7.1.3 Name Servers
產生原因
計算機網路地址(如IP)難於記憶,應該使用符號地址,比如用www.ustb.edu.cn表示USTB的IP地址。
但是,網路本身是使用IP地址的,因此需要一個完成二者之間相互轉換的機制。
當網路規模比較小時,例如ARPANET,每臺主機只需查詢一個檔案(UNIX的host),該檔案中列出了主機與IP地址的對應關係。
當網路規模很大時,上述方法就不適用了,因此產生了域名系統DNS(Domain Name System)。
DNS概述
域名系統是一個多層次的、基於域的命名系統,並使用分散式資料庫加以實現。
為了將符號名影射成IP地址,
–應用程式需要呼叫解析器(resolver), –解析器向本地DNS發出請求, –本地DNS查詢該名字,並返回包含對應的IP地址的響應報文給解析器。 –解析器將IP地址返回給呼叫方。
請求和響應均以UDP包格式發出。
有了IP地址後,應用程式可以與目標機建立TCP連線,或給它傳送UDP資料包
7.1.1 The DNS Name Space名字空間
250個頂級域名
這些域又被進一步劃分成子域,這些子域可被再次劃分,以此類推
頂級域名分為通用的和國家/地區的兩種。每個域對它下面的子域和機器進行管理。
DNS中,每臺計算機的名字是由“.”所分開的字元數字串所組成的。例如www.ustb.edu.cn.
域名是大小寫無關的,“edu”和“EDU”相同。域名最長255個字元,每部分最長63個字元。
層次型命名機制
Internet的域名結構
域的層次數可以是二層、三層或多層;為保證全球域名的統一性,因特網規定頂層域名。
美國是Internet發源地,美國的頂級域名以組織模式劃分:
- Net 網路組織;
- edu 教育部門;
- gov 政府部門;
- mil 軍事部門;
- com 商業組織;
- org 非政府組織;
- int 國際組織
其他國家或地區頂級域名以地理模式劃分:
- cn 中國;
- jp 日本;
- hk 香港;
- fr 法國;
- uk 英國;
網路資訊中心將頂級域的管理權授予指定的管理機構,各個管理機構再為他們所管理的域分配二級域名,並將二級域名的管理權授予其下屬的管理機構。
中國網際網路資訊中心負責管理我國的頂級域,將cn域分為多個二級域名
- Net 網路支援中心;
- edu 教育部門;
- gov 政府部門;
- ac 科研機構;
- com 商業組織;
- org 各種非贏利性組織;
- int 國際組織;
組織內的域名
一旦一個組織擁有一個域的管理權,就可以決定是否需要進一步劃分層次。因此,Internet樹狀層次結構的命名方法,使得任何一個連線到Internet的主機都有一個全網唯一的域名
主機域名的一般格式:…….四級域名.三級域名.二級域名.頂級域名
中國網際網路資訊中心CNNIC將我們教育機構的二級域(edu域)的管理權授予中國教育科研網CERNET網路中心;CERNET網路中心將edu域化分為多個三級域,並將三級域名分配給各個大學與教育機構。例如,edu域下的ustb代表北京科技大學,並將ustb域的管理權授予北科大網路管理中心。網路管理中心又將ustb域劃分成多個四級域,將四級域名分配給下屬部門或主機
www.ustb.edu.cn
EDU.CN是CN的子域;USTB.EDU.CN是EDU.CN的子域。
第一級域“cn”表示這是中國;
第二級域“edu.cn”表示這是中國教育部門;
第三級域“ustb.edu.cn”表示是中國教育部門下屬的、英文縮寫為ustb的學校;
Www是該校園網中的一臺伺服器或主機;
“域”,域名中每一個標號右面的標號和點;
7.1.2 域名資源記錄
在DNS的資料庫中用資源記錄來表示主機和子域的資訊,當應用程式進行域名解析時,得到的便是域名所對應的資源記錄。
資源記錄是一個五元式
Domain_name Time_to_live Class Type Value
7.1.3 域名伺服器
DNS將域名空間劃分為許多無重疊的區域(zone) ,每個區域覆蓋了域名空間的一部分並設有域名伺服器對這個區域的域名進行管理。
每個區域有一個主域名伺服器和若干個備份域名伺服器,區域的邊界劃分是人工設定的,比如:edu.cn ustb.edu.cn是兩個不同的區域,分別有各自的域名伺服器。
域名解析:將域名轉為對應IP地址
當解析器需查詢一個域名時,首先將該查詢傳遞給本地域名伺服器
如果域名屬於本地域名伺服器的管轄範圍,在本地資料庫中查詢該域名對應的IP地址,直接回答該請求
如果請求中的域名在遠端,域名伺服器將啟動一次遠端查詢。採用迭代查詢方法。這是由於許多域名伺服器太忙了,該方法把重負壓在了查詢發起方。
域名解析演算法
-遞迴查詢(recursive query):從頂開始解析,要求名字伺服器系統一次性完成全部名字—地址變換;
-迭代查詢(iterative query):從本域名伺服器查詢開始,每次請求一個伺服器,如果不行,再請求別的伺服器;
兩者區別:
-遞迴解析:任務主要由伺服器軟體承擔;
-重複解析:任務主要由域名解析器軟體承擔;
7.2 Electronic Mail*
- 7.2.1 Architecture and Services
- 7.2.2 The User Agent
- 7.2.3 Message Formats
- 7.2.4 Message Transfer
- 7.2.5 Final Delivery
電子郵件
電子郵件的應用
E-mail服務,為Internet使用者之間傳送和接收資訊提供了一種快捷、廉價的現代化通訊手段
電子郵件地址:Username@Hostname.Domain-name
Username:使用者名稱,代表使用者在郵箱中使用的賬號;
Hostname:使用者郵箱所在的郵件伺服器的主機名;
Domain-name:郵件伺服器所在的域名;
如某臺郵件伺服器主機名為mail,該伺服器所在域名為
ustb.edu.cn
,在該伺服器上有一個郵件使用者,使用者名稱為wang
;該使用者的電子郵件地址為wang@mail.ustb.edu.cn
;
7.2.1 Architecture and Services
使用者代理:允許使用者閱讀和傳送電子郵件,一般為使用者程式;
郵件傳輸代理(郵件伺服器):將郵件從源端傳送至目的端,一般為系統的後臺程式;採用協議SMTP
簡單郵件傳輸協議SMTP(Simple Mail Transfer Protocol)
電子郵件系統提供的功能
- 電子郵件系統提供的基本功能
–成文:指建立訊息或回答訊息的過程;
–傳輸:指將訊息從傳送者傳出至接收者;
–報告:將訊息的傳送情況報告給訊息傳送者;
–顯示:使用相應的工具軟體將收到的訊息顯示給接收者
–處理:接收者對接收到的訊息進行處理,儲存/丟棄/轉發等等。
- 其它高階功能
–mailbox,建立郵箱儲存郵件;
–mailing list;
–抄送(cc)、高優先順序、加密。
–休假代理
7.2.2 使用者代理(電子郵件閱讀器)
- 主要功能
–傳送電子郵件
email地址,例如,
webmaster@ustc.edu.cn
mailing list,例如,
students@mail.ustc.edu.cn
–閱讀電子郵件
- 使用者代理在啟動時檢查使用者的mailbox,通知使用者是否有新郵件到來。並摘要性的顯示郵件的主題、傳送者及其郵件的狀態。
–例子:gmail, outlook, 163, foxmail等
7.2.3 Message Formats
RFC 5322(最新)—The Internet Message Format 郵件由信封、數個頭欄位、一個空行和郵件體構成。
MIME多用途Internet郵件擴充套件
MIME(Multipurpose Internet Mail Extensions),增加了對影像、聲音、視訊、可執行檔案等的支援。為傳送非ASCII碼的郵件定義了編碼規則。
7.2.4 Message Transfer
INTERNET使用簡單郵件傳輸協議SMTP完成電子郵件的交換。
過程如下
–訊息傳輸代理在源端主機和目的主機的25號埠之間建立一條TCP連線,使用簡單郵件傳輸協議SMTP協議進行通訊; –在TCP連線建立好之後,作為客戶的郵件傳送方等待作為伺服器的郵件接收方首先傳輸資訊; –伺服器首先發出準備接收的SMTP訊息,表明自己的標識並準備好接收郵件; –客戶宣告郵件的發信人地址及收信人的地址,伺服器確認收信人存在後,則指示客戶傳送郵件; –客戶傳送郵件,伺服器予以確認 –兩個方向的傳送完成之後,釋放連線。
7.2.5 最後傳遞FinalDelivery
IMAP—The Internet Message Access Protocol
Internet郵件訪問協議
To use IMAP, the mail server runs an IMAP server that listens to port 143.
Theuser agent runs an IMAP client.
The client connects to the server and begins toissue commands from those listed in Fig. 7-17.
IMAP
IMAP是較早使用的最終交付協議POP3的改進版。POP3通常將郵件下載到計算機上,而不是留在伺服器上,使用非常不方便。
First, the client will start a secure transport if one is to be used (in order tokeep the messages and commands confidential), and then log in or otherwiseauthenticate itself to the server.
there are many commands to list folders and messages, fetch messages or even parts of messages, mark messages with flags for later deletion, and organize messages into folders.
IMAP has many other features, e.g.,
–to address mail by using attributes (e.g., give me the first message from Alice). –to perform searches on the server to find the messages that satisfy certain criteria so that only those messages are fetched by the client.
7.3 The World Wide Web
7.3.1 Architectural Overview 7.3.2 Static Web Pages 7.3.3 Dynamic Web Pages and Web Applications 7.3.4 HTTP—The HyperText Transfer Protocol 7.3.5 The Mobile Web 7.3.6 Web Search
WWW(World Wide Web)是用於訪問遍佈於INTERNET上的相互連結在一起的超文字的一種結構框架。
歷史
–1989年,設計WWW的思想產生於歐洲核研究中心CERN;
–1991年,第一個原型在美國的Hypertext ’91會議上展示;
–1993年,第一個圖形化瀏覽器,Mosaic;
–1994年,Andreessen建立NETSCAPE公司,開發WEB的客戶和伺服器軟體;其後和微軟的IE瀏覽器進入了一場瀏覽器大戰
–1994年,CERN和MIT共同建立WWW論壇,制定相關的協議標準,http://www.w3.org。
許多新想法豐富著WWW世界,並來自於年輕的學生。如, Mark Zuckerberg開始建立Facebook時是Harvard學生, Sergey Brin及Larry Page建立Google時是Stanford學生。
7.3.1 Architectural Overview
WWW是由互相連結在一起的網頁構成的,這些網頁是由普通文字、超文字Hypertext,以及圖表、照片等構成;
使用者通過稱為瀏覽器(如IE)的軟體來觀看網頁,瀏覽器取回所請求的網頁,解釋其中所含的文字和格式命令,並正確地顯示出來;
網頁中的文字串若指向其它的網頁(此指標稱為超級連結Hyperlink,此文字串稱為超文字),會被特別地顯示出來(加下劃線),使用者若選擇此超級連結,瀏覽器會將此超級連結所指的網頁取回;
當超文字網頁中包含聲音、動畫等其它媒體時,網頁被稱為是超媒體的。瀏覽器一般通過外掛的幫助程式來顯示這些超媒體資訊。
每一頁的抓取都是通過傳送請求到伺服器,伺服器以頁面的內容作為響應。所用協議為HTTP超文字傳輸協議。
Architectural Overview
客戶端
- 使用URL(統一資源定位符)來找到目標網頁的。URL由三部分組成:
–協議型別(HTTP超文字傳輸協議、FTP、TELNET等); –網頁所在機器的DNS域名; –包含網頁的檔名稱。
如:http://www.cs.washington.edu/index.html
- 獲取超級連結的步驟:
–瀏覽器確定URL, –通過DNS解析IP地址, –建立TCP連線, –向伺服器發出HTTP報文請求網頁, –伺服器發回網頁作為HTTP響應, –瀏覽器顯示頁面, –釋放連線。
某些公共的URL方案
MIME型別
伺服器端
伺服器在它的主迴圈中執行如下步驟:
- 接收來自客戶端(瀏覽器)的TCP連線,
- 獲取頁面的路徑,即被請求檔案的名字,
- 獲取檔案(通常從磁碟上),
- 將檔案內容傳送給客戶,
- 釋放TCP連線。
伺服器端處理多個請求
伺服器端
伺服器對每個請求的實際處理過程:
- 解析被請求的頁面的名字
- 執行對該頁面的訪問控制
- 檢查快取
- 從磁碟上獲取請求的頁面或執行一個建立頁面的程式,
- 確定響應中的其餘部分(比如要傳送的MIME型別)
- 把響應返回給客戶
- 在伺服器的日誌中增加一個表項
7.3.2 Static Web Pages
- WWW的基礎是將頁面從伺服器傳到客戶端。
- 在最簡單的形式中,web的頁面是靜態的,即其為伺服器上的檔案。
- 每次被客戶端獲取或顯示的方式是一樣的。
HTML----超文字標記語言
- 包含了格式化的顯式命令,如表示粗體字型的開始,<\b>表示其結束。
HTML----超文字標記語言輸出
CSS層疊樣式表
更好地控制格式,同一格式可被多個網頁應用
7.3.3 Dynamic Web Pages and Web Applications
WWW用作應用程式及服務:
- 在電子商務網站購買產品
- 檢索圖書館書目
- 搜尋地圖
- 閱讀和傳送電子郵件
- ……
Dynamic Web Pages: 如地圖服務
- 直接返回頁面
- 頁面中包含應用程式
伺服器端動態Web頁面生成
伺服器必須能處理表單的使用, 如前面的例子中用到的http://widget.com/cgi-bin/order.cgi
及POST
兩種典型的處理動態頁面請求的方法:
- 公共閘道器介面CGI (Common Gateway Interface)
-提供介面,允許Web伺服器與後端程式及指令碼通訊 -後端程式及指令碼接受輸入資訊,生成HTML頁面作為響應 -通常用指令碼語言開發,如Python, Ruby, Perl等 -呼叫的程式(如order.cgi)通常放在cgi-bin目錄下
- 在頁面中嵌入少量的指令碼,讓伺服器執行這些指令碼一邊生成最終發給客戶的頁面,如超文字前處理器PHP(Hypertext Preprocessor),伺服器用副檔名php標識包含PHP的頁面
伺服器端動態Web頁面生成:PHP
伺服器端動態Web頁面生成
其它可選技術:
Java伺服器頁面JSP,與PHP類似,Java編寫,副檔名jsp
活動伺服器頁面(ASP.NET),Microsoft版本(應用.NET)的PHP及JSP,,副檔名aspx
客戶端動態Web頁面生成
PHP與CGI不能響應滑鼠移動事件,或直接與使用者互動,有必要在HTML嵌入指令碼
這些指令碼必須執行在客戶端
產生這種互動式頁面的技術統稱為動態HTML
最流行的客戶端指令碼語言為Javascript
客戶端動態Web頁面生成: Javascript
PHP與Javascript
客戶端動態Web頁面生成
其它方法:
VBScript,基於VisualBasic
Applet,基於Java,被編譯成Java虛擬機器。Applet可嵌入到HTML頁面中,並被具有JVM的瀏覽器解釋執行
Microsoft的ActiveX控制元件,是一種被編譯成x86機器指令的程式
Asageneralrule,JavaScriptprogramsareeasiertowrite,Javaappletsexecutefaster,andActiveXcontrolsrunfastestofall.
AJAX----非同步Javascript和XML
客戶端的指令碼(如Javascript)通常和伺服器上的指令碼通常和其它幾個關鍵技術結合起來使用,這些技術的組合稱為AJAX----非同步Javascript和XML
許多全功能的應用,如Google的gmail、Maps、Docs等均由AJAX編寫
AJAX不是一種語言,而是一組需要一起協同工作的技術,包括:
1.HTML and CSS to present information as pages. 2.DOM (Document Object Model) to change parts of pages while theyare viewed.文件物件模型,瀏覽時可改變部分頁面 3.XML (eXtensible Markup Language) to let programs exchange applicationdata with the server.可擴充套件標記語言 4.An asynchronous way for programs to send and retrieve XML data. 5.JavaScript as a language to bind all this functionality together.
文件物件模型DOM
可擴充套件標記語言XML
HTML將內容及格式混合在一起,關注的是資訊的表示
許多Web應用程式需要將獨立的結構化內容從它的表示中分離開來
XML是一種說明結構化內容的語言
XML沒有定義任何標籤,使用者可以定義自己的標籤
XML中的欄位可以進一步劃分
XML容易被程式分析
HTML也可按照XML術語來定義,該方法稱為擴充套件超文字標記語言XHTML
XML可用作程式之間的流行通訊語言,當這種通訊由HTTP協議承載時,就被稱為一種Web服務(WebService)
簡單物件訪問協議SOAP (Simple ObjectAccess Protocol)是一個實現了與語言與系統無關的Web服務的方法。
The client just constructsthe request as an XML message and sends it to the server, using the HTTPprotocol. The server sends back a reply as an XML-formatted message. In thisway, applications on heterogeneous platforms can communicate.
用來生成動態頁面的不同技術
7.3.4 HTTP—The HyperText Transfer Protocol
HTTP是一個應用層協議,執行在TCP之上,並且與Web密切相關
HTTP越來越像一個傳輸層協議,可支援多種應用層服務,如媒體播放器與伺服器通訊並請求專輯資訊。
HTTP的連線
HTTP的方法:支援的操作 和 HTTP的快取
7.3.5移動Web
Compared to desktop computers, mobile phones presentseveral difficulties for Web browsing:
- Small screens preclude large pages and large images.
- Limited input capabilities make it tedious to enter URLs or otherlengthy input.
- Network bandwidth is limited over wireless linksand expensive, particularly on cellular(3G) networks.
- Connectivity may be intermittent.
- Computing power is limited, for reasons of battery life, size, heatdissipation, and cost.
移動Web
- The approach that is increasingly used is to run the same Web protocols for mobiles and desktops, and to have Web sites deliver mobile-friendly content when the user happens to be on a mobile device.
- Web servers are able to detect whether to return desktop or mobile versions of Web pages by looking at the request headers.
- Thus, when a Web server receives a request, it may look at the headers and return a page with small images, less text, and simpler navigation to an iPhone and a full-featured page to an user on a laptop.
相關文章
- 計算機網路--應用層計算機網路
- 計算機網路 - 應用層計算機網路
- 計算機網路 -- 應用層計算機網路
- 計算機網路-應用層筆記計算機網路筆記
- 《計算機網路》第六章:傳輸層(The Transport Layer)計算機網路
- 計算機網路之網路層計算機網路
- 計算機網路之網路介面層計算機網路
- 計算機網路總結(網路層)計算機網路
- 計算機網路之物理層計算機網路
- 計算機網路的物理層計算機網路
- 計算機網路(二)物理層計算機網路
- 計算機網路 | 資料鏈路層計算機網路
- 計算機網路(一):網路層次劃分計算機網路
- 計算機網路七層協議計算機網路協議
- 計算機網路之傳輸層計算機網路
- 計算機網路(四)傳輸層計算機網路
- 計算機網路之運輸層計算機網路
- 《計算機網路》傳輸層 (1)計算機網路
- 計算機網路之資料鏈路層計算機網路
- 計算機網路層次與對應協議的理解計算機網路協議
- 漫談計算機網路:應用層 ----- 從DNS域名解析到WWW全球資訊網再到P2P應用計算機網路DNS
- 計算機網路 - 運輸層 - 學習筆記計算機網路筆記
- 【計算機網路】資料鏈路層 | 複習筆記計算機網路筆記
- 計算機網路 -- 計算機網路的效能指標計算機網路指標
- 計算機網路自頂向下方法:第二章 應用層 課後複習題計算機網路
- 計算機網路計算機網路
- 計算機網路第四章--資料鏈路層計算機網路
- 【計算機網路】謝希仁筆記 資料鏈路層計算機網路筆記
- 這一次,徹底拿下計算機網路鏈路層!計算機網路
- 【計算機網路】資料鏈路層——無線區域網與VLAN計算機網路
- 計算機網路知識點總結(一)-物理層計算機網路
- 計算機網路傳輸層學習筆記---(四)計算機網路筆記
- 第1章 計算機網路的概述——計算機網路計算機網路
- 計算機網路-3-5-乙太網MAC層及交換機計算機網路Mac
- 9、如何理解應用層、傳輸層、網路層、鏈路層、物理層
- 計算機網路的七層結構、五層結構和四層結構計算機網路
- 計算機網路(們)和 Internet (計算機網路的子類)計算機網路
- [計算機網路]網路攻擊計算機網路