【計算機網絡】第六章--應用層


1、網絡應用模型

1.1、應用層概述

應用層對 應用程序的通信 提供服務

  • 應用層協議定義
    • 應用進程交換的報文類型,請求還是響應?
    • 各種報文類型的語法,如報文中的各個字段及其詳細描述
    • 字段的語義,即包含在字段中的信息的含義
    • 進程何時、如何發送報文,以及對報文進行響應的規則
  • 應用層的功能
    • 文件傳輸、訪問和管理
    • 電子郵件
    • 虛擬終端
    • 查詢服務和遠程作業登錄
  • 應用層的重要協議
    • FTP
    • SMTP、POP3
    • HTTP
    • DNS

1.2、網絡應用模型

  • 客戶/服務器模型(Client/Server)

  • P2P模型(Peer-to-peer):peer 對等,同輩

1)客戶/服務器模型

服務器:提供計算服務的設備

  • 永久提供服務
  • 永久性訪問地址/域名

客戶機:請求計算服務的主機。

  • 與服務器通信,使用服務器提供的服務
  • 間歇性接入網絡
  • 可能使用動態IP地址
  • 不與其他客戶機直接通信

應用: Web,文件傳輸FTP, 遠程登錄,電子郵件

2)P2P模型

P2P模型特點:

  • 不存在永遠在線的服務器
  • 每個主機既可以提供服務,也可以請求服務
  • 任意端系統/節點之間可以直接通訊
  • 節點間歇性接入網絡
  • 節點可能改變IP地址
  • 可擴展性好
  • 網絡健壯性強 :一個節點壞了對網絡無影響

2、DNS系統

域名系統(Domain Name System, DNS)

是因特網使用的命名系統,用來把便於人們記憶的具有特定含義的主機名轉換為便於機器處理的IP地址。相對於IP地址,人們更喜歡使用具有特定含義的字符串來標識因特網上的計算機。值得注意的是,DNS系統采用客戶/服務器模型,其協議運行在 UDP 之上,使用 53 號端口。

  • 域名組成:字符、數字和符號

  • 從概念上可將DNS分為3部分:層次域名空間、域名服務器和解析器

  • DNS系統實現域名到ip地址的轉換

    • 客戶端輸入域名,會傳給DNS服務器,DNS服務器返回給客戶端的IP地址。然后客戶端就可以和服務端進行通信了,通信過程就是之前網絡層、傳輸層、鏈路層、物理層所解決的問題
    • 所以如果訪問不了網站,有可能是網站崩潰了,也可能是DNS服務器出現問題
    • ip地址與域名的對應關系是 一對多

2.1、層次域名空間

1)命名方法

因特網采用 層次樹狀結構 的命名方法。采用這種命名方法,任何一個連接到因特網的主機或路由器,都有一個唯一的層次結構名稱,即 域名(Domain Name)。 域(Domain) 是名字空間中一個可被管理的划分。域還可以划分為子域,而子域還可以繼續划分為子域的子域,這樣就形成了頂級域、二級域、三級域等。每個域名都由標號序列組成,而各標號之間用點(“.”) 隔開

關於域名中的標號有以下幾點需要注意

  1. 標號中的英文不區分大小寫

  2. 標號中除連字符(-) 外不能使用其他的標點符號

  3. 每個標號不超過63個字符,多標號組成的完整域名最長不超過255個字符

  4. 級別最低的域名寫在最左邊,級別最高的頂級域名寫在最右邊

2)域名空間的樹狀結構

在域名系統中,每個域分別由不同的組織進行管理。每個組織都可以將它的域再分成一定數目的子域,並將子域委托給其他組織去管理。例如:管理CN域的中國將EDU.CN子域授權給中國教育和科研計算機網(CERNET)來管理

2.2、域名服務器

DNS的層次結構:

  • 根域名服務器:根域名服務器是最高層次的域名服務器,所有的根域名服務器都知道所有的頂級域名服務器的IP地址。根域名服務器也是最重要的域名服務器,不管是哪個本地域名服務器,若要對因特網上任何一個域名進行解析,只要自己無法解析,就首先要求助於根域名服務器。因特網上有13個根域名服務器,盡管我們將這13個根域名服務器中的每個都視為單個服務器,但每個“服務器”實際上是冗余服務器的集群,以提供安全性和可靠性。需要注意的是,根域名服務器用來管轄頂級域(如.com),通常它並不直接把待查詢的域名直接轉換成IP地址,而是告訴本地域名服務器下一步應當找哪個頂級域名服務器進行查詢。

  • 頂級域名服務器:這些域名服務器負責管理在該頂級域名服務器注冊的所有二級域名。收到DNS查詢請求時,就給出相應的回答(可能是最后的結果,也可能是下一步應當查找的域名服務器的IP地址)。

  • 權限域名服務器:每台主機都必須在授權域名服務器處登記。為了更加可靠地工作,一台主機最好至少有兩個授權域名服務器。實際上,許多域名服務器都同時充當本地域名服務器和授權域名服務器。授權域名服務器總能將其管轄的主機名轉換為該主機的IP地址。

  • 本地域名服務器:本地域名服務器對域名系統非常重要。每個因特網服務提供者(ISP), 或一所大學,甚至一所大學中的各個系,都可以擁有一個本地域名服務器。當一台主機發出DNS查詢請求時,這個查詢請求報文就發送給該主機的本地域名服務器。事實上,我們在Windows系統中配置“本地連接”時,就需要填寫DNS地址,這個地址就是本地DNS (域名服務器)的地址

2.3、域名解析過程

解析為IP地址

域名解析有兩種方式:遞歸查詢和遞歸與迭代相結合的查詢

遞歸查詢:靠別人

迭代查詢:靠自已

  • 主機本地域名服務器 的查詢采用的是 遞歸查詢

    也就是說,如果本地主機所詢問的本地域名服務器不知道被查詢域名的IP地址,那么本地域名服務器就以DNS客戶的身份(主機靠本地域名服務器),向根域名服務器繼續發出查詢請求報文(即替該主機繼續查詢),而不是讓該主機自己進行下一步的查詢。在這種情況下,本地域名服務器只需向根域名服務器查詢一次,后面的幾次查詢都是遞歸地在其他幾個域名服務器之間進行的[見下圖a中的步驟③~⑥]。在步驟⑦中,本地域名服務器從根域名服務器得到了所需的IP地址,最后在步驟⑧中,本地域名服務器把查詢結果告訴主機m.xyz.com。

  • 本地域名服務器根域名服務器 的查詢采用 迭代查詢

    當根域名服務器收到本地域名服務器發出的迭代查詢請求報文時,要么給出所要查詢的IP地址,要么告訴本地域名服務器:“你下一步應當向哪個頂級域名服務器進行查詢”。然后讓本地域名服務器自己(本地域名服務器靠自己)向這個頂級域名服務器進行后續的查詢,如圖(b)所示。 同樣,頂級域名服務器收到查詢報文后,要么給出所要查詢的IP地址,要么告訴本地域名服務器下一步應向哪個權限域名服務器查詢。最后,知道所要解析的域名的IP地址后,把這個結果返回給發起查詢的主機

高速緩存:為了提高DNS的查詢效率,並減少因特網上的DNS查詢報文數量,在域名服務器中廣泛地使用了高速緩存。當一個DNS服務器接收到DNS查詢結果時,它能將該DNS信息緩存在高速緩存中。這樣,當另一個相同的域名查詢到達該DNS服務器時,該服務器就能夠直接提供所要求的IP地址,而不需要再去向其他DNS服務器詢問。因為主機名和IP地址之間的映射不是永久的,所以DNS服務器將在一段時間后丟棄高速緩存中的信息

3、文件傳輸協議FTP

3.1、FTP的工作原理

1)文件傳送協議

  • 文件傳送協議FTP ( File Transfer Protocol)功能:

    • 提供 不同種類主機系統 (硬、軟件體系等都可以不同)之間的文件傳輸能力
    • 用戶權限管理 的方式提供用戶對遠程FTP服務器上的文件管理能力
    • 匿名 FTP的方式提供公用文件共享的能力。
    • FTP使用 TCP 實現可靠傳輸
  • 簡單文件傳送協議TFTP (Trivial File Transfer Protocol)

    trivial [ˈtrɪviəl] 不重要的;瑣碎的;微不足道的

    • 只需要知道這是一個很小,而且易於實現的一種文件傳送協議即可
    • 優點:非常適合 UDP 環境

2)FTP服務器和用戶端

  • FTP是基於客戶/服務器(C/S)的協議
  • 用戶通過一個客戶機程序連接至在遠程計算機上運行的服務器程序
  • 依照FTP協議提供服務,進行文件傳送的計算機就是FTP服務器
  • 連接FTP服務器,遵循FTP協議與服務器傳送文件的電腦就是FTP客戶端

3)FTP工作原理

  • 登陸:ftp地址、用戶名&密碼

  • 匿名登陸

    • 互連網中有很大一部分FTP服務器被稱為“匿名”(Anonymous) FTP 服務器。這類服務器的目的是向公眾提供文件拷貝服務,不要求用戶事先在該服務器進行登記注冊,也不用取得FTP服務器的授權。
    • Anonymous (匿名文件傳輸)能夠使用戶與遠程主機建立連接並以匿名身份從遠程主機上拷貝文件,而不必是該遠程主機的注冊用戶。用戶使用特殊的用戶名“anonymous”登陸FTP服務,就可訪問遠程主機上公開的文件
  • FTP使用 TCP 實現可靠傳輸

  • 服務器進程

    • 1個主進程:負責接收新的請求(理發店的迎賓迎接新的顧客)
    • n個從屬進程:負責處理單個請求(Tony老師給每個顧客理發)
    • 一個FTP服務器進程可同時為多個客戶進程提供服務
  • 服務器進程工作步驟

    • ①打開熟知端口 21 (控制端口),使客戶進程能夠連接上
    • ②等待客戶進程發連接請求
    • ③啟動從屬進程來處理客戶進程發來的請求。主進程與從屬進程並發執行,從屬進程對客戶進程的請求處理完畢后即終止
    • ④回到等待狀態,繼續接收其他客戶進程的請求
  • FTP服務器必須在整個會話期間保留用戶的狀態信息。特別是服務器必須把指定的用戶賬戶與控制連接聯系起來,服務器必須追蹤用戶在遠程目錄樹上的當前位置

3.2、控制連接和數據連接

兩個圓柱表示系統正在運行的進程

  • FTP在工作時使用 兩個並行的TCP連接

    • 一個是控制連接(端口號 21 )
    • 一個是數據連接(端口號 20 )
    • 使用兩個不同的端口號可使協議更加簡單和更容易實現
    • 這兩個連接就是 從屬進程
  • 控制連接

    • 建立控制連接:服務器監聽21號端口,等待客戶連接,建立在這個端口上的連接稱為控制連接
    • 控制連接傳送控制信息(請求):控制連接用來傳送控制信息(如連接請求、傳送請求等)。FTP客戶發出的傳送請求,通過控制連接發送給服務器端的控制進程
    • 傳輸模式:控制信息都以 7位ASCII格式 傳送
    • 始終打開:在傳輸文件時還可以使用控制連接,因此控制連接整個會話期間一直保持打開狀態
  • 數據連接

    • 數據連接端口號為 20:是否使用TCP20端口建立數據連接與傳輸模式有關

      主動方式 使用TCP20端口

      被動方式 由服務器和客戶端自行協商決定(端口>1024)

    • 創建數據連接和數據傳送進程:服務器端的控制進程在接收到FTP客戶發來的文件傳輸請求后,就創建“數據傳送進程”和“數據連接”

    • 數據傳送進程傳送文件:數據連接用來連接客戶端和服務器端的數據傳送進程,數據傳送進程實際完成文件的傳送

    • 傳送完畢后關閉:在傳送完畢后關閉“數據連接”並結束運行

  • FTP傳輸模式

    • 文本模式: ASCII模式, 以文本序列傳輸數據
    • 二進制模式: Binary模式, 以二進制序列傳輸數據

因為FTP使用了一個分離的控制連接,所以也稱FTP的控制信息是 帶外(Out-of-band) 傳送 的。使用FTP時,若要修改服務器上的文件,則需要先將此文件傳送到本地主機,然后再將修改后的文件副本傳送到原服務器。網絡文件系統(NFS)允許 進程打開 一個遠程文件,並在該文件的某個特定位置開始讀寫數據。這樣,NFS可使用戶復制一個大文件中的一個很小的片段,而不需要復制整個大文件

4、電子郵件

4.1、電子郵件系統概述

1)電子郵件的信息格式

2)組成結構

客戶A要給客戶B發郵件,在客戶端軟件寫好郵件后發送,先到發送方郵件服務器上,然后發送到接收方郵件服務器上,最后發送給客戶B的客戶端上

4.2、SMTP協議

1)簡單郵件傳輸協議SMTP

SMTP(Simple Mail Transfer Protocol)規定了在兩個相互通信的SMTP進程之間應如何交換信息

  • 兩個STMP進程:負責發送郵件的SMTP進程就是 SMTP客戶,負責接收郵件的進程就是 SMTP服務器
  • SMTP規定了14條命令(幾個字母)和21種應答信息(三位數字代碼+簡單文字說明)
  • SMTP特點TCP連接、端口號 25C/S 網絡應用模型
  • SMTP通信三個階段:連接建立——郵件傳送——連接釋放

2)通用因特網郵件擴充MIME

  • SMTP的缺點

    1. SMTP 不能傳送 可執行文件 或者其他二進制對象

    2. SMTP僅限於傳送 7位ASCI碼,不能傳送其他非英語國家的文字

    3. SMTP服務器會 拒絕超過一定長度的郵件

MIME可以理解為在SMTP協議上的一種擴充手段

  • MIME原理圖

  • MIME功能:使電子郵件系統可以支持聲音、圖像、視頻、多種國家語言等等。使得傳輸內容豐富多彩 。MIME最早應用於郵件擴充,但是現在逐步應用於瀏覽器

4.3、POP3協議

1)郵局協議POP3

Post office protocol:POP

第3版

  • POP3特點TCP 連接、端口號 110C/S 網絡應用模型
  • POP3工作方式:(接收方把郵件從接收端郵件服務器讀取出來后,對郵件的處理有兩種方式)
    • 下載並保留(在服務器)
    • 下載並刪除

可以看出郵局協議POP3是非常簡單、功能有限的一種郵件讀取協議,對於郵件要么下載保留要么下載刪除,不能根據用戶需要決定是否上傳到用戶計算機上。因此有一種新的網際報文存取協議IMAP

2)網際報文存取協議IMAP

IMAP協議比POP協議復雜。當用戶PC上的IMAP客戶程序打開IMAP服務器的郵箱時,用戶可以看到郵箱的首部,若用戶需要打開某個郵件,該郵件才上傳到用戶的計算機上。

IMAP可以讓用戶在不同的地方使用不同的計算機隨時上網閱讀處理郵件,還允許只讀取郵件中的某一個部分(先看正文,有WiFi的時候再下載附件)

4.4、基於萬維網的電子郵件

使用 HTTP 協議

現在日常生活中普遍使用的一種發郵件方式。通過使用瀏覽器,登陸電子郵箱,就可以發送郵件了。不需要下載郵件客戶端

特點:用戶代理發送郵件和讀取郵件都使用 HTTP 協議。郵件服務器直接的發送環節還是使用SMTP協議(簡單郵件傳輸協議)

4.5、總結

5、萬維網WWW和HTTP協議

5.1、WWW的概念與組成結構

  • 萬維網www是什么:萬維網www (World Wide Web)是一個大規模的、聯機式的信息儲藏所/資料空間,是無數個網絡站點和網頁的集合

  • 如何訪問/獲取這些資源:統一資源定位符 URL 唯一標識——>資源(文件、視頻、音頻...)

  • URL一般形式

    • 端口和路徑可以省略
    • URL不區分大小寫

  • 如何操作才能定位到資源:用戶通過點擊超鏈接( http://www.baidu.com)獲取資源,這些資源通過超文本傳輸協議(HTTP)傳送給使用者。

    • 萬維網以客戶/服務器(C/S)方式工作:用戶使用的瀏覽器就是萬維網客戶程序,萬維網文檔所駐留的主機運行服務器程序。
  • 萬維網www是什么:萬維網使用超文本標記語 HTML )使得萬維網頁面設計者可以很方便地從一個界面的鏈接轉到另一個界面,並能夠在自己的屏幕上顯示出來

5.2、超文本傳輸協議HTTP

  • HTTP協議功能:HTTP(Hyper Text Transfer Protocol)協議定義了瀏覽器(萬維網客戶進程)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給瀏覽器

1)HTTP操作過程

從協議執行過程來說,瀏覽器要訪問WWW服務器時,首先要完成對WWW服務器的域名解析。一旦獲得了服務器的IP地址,瀏覽器就通過TCP向服務器發送連接建立請求

  • 萬維網工作過程
    • 每個萬維網站點都有一個服務器進程,它不斷地監聽TCP的端口80(默認),當監聽到連接請求后便與瀏覽器建立連接
    • TCP連接建立后,瀏覽器就向服務器發送請求獲取某個Web頁面的HTTP請求
    • 服務器收到HTTP請求后,將構建所請求Web頁的必需信息,並通過HTTP響應返回給瀏覽器
    • 瀏覽器再將信息進行解釋,然后將Web頁顯示給用戶
    • 最后,TCP連接釋放

  • 用戶瀏覽頁面方法
    • 輸入URL
    • 點擊超鏈接
  • 客戶點擊超鏈接,接下來發生的事件順序如下:
    1. 瀏覽器分析URL
    2. 瀏覽器向DNS請求解析IP地址
    3. DNS解析出IP地址
    4. 瀏覽器與服務器建立TCP連接
    5. 瀏覽器發出取文件命令
    6. 服務器響應
    7. 釋放TCP連接
    8. 瀏覽器顯示,瀏覽器可以先只下載文本部分

2)HTTP協議的特點


  • 非持久連接:對於非持久連接,每個網頁元素對象(如JPEG圖形、Flash等)的傳輸都需要 單獨建立一個TCP連接,如圖所示(第三次握手的報文段中捎帶了客戶對萬維網文檔的請求)。也就是說,請求一個萬維網文檔所需的時間是 該文檔的傳輸時間 (與文檔大小成正比)加上 兩倍往返時間RTT
    (一個RTT用於TCP連接,另一個RTT用於請求和接收文檔)

  • 持久連接:所謂持久連接,是指萬維網服務器在發送響應后 仍然保持這條連接,使同一個客戶和服務器可以繼續在這條連接上傳送后續的HTTP請求與響應報文

    • 非流水線方式:客戶在收到前一個響應后才能發出下一個請求
    • 流水線方式:HTTP/1.1 的 默認方式 是使用流水線的持久連接。這種情況下,客戶每遇到一個對象引用就立即發出一個請求,因而客戶可以逐個地連續發出對各個引用對象的請求。如果所有的請求和響應都是連續發送的,那么所有引用的對象共計經歷1個RTT延遲,而不是像非流水線方式那樣,每個引用都必須有1個RTT延遲

3)報文結構

  • HTTP報文
    • 請求報文
    • 響應報文
  • 報文格式:HTTP報文是 面向文本 的,因此在報文中的每一個字段都是一些 ASCII碼串


6、總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM