計算機網絡基礎知識總結及思維導圖(六)應用層

六、應用層

6.1 域名系統DNS

6.1.1 基礎概念

1)域名系統DNS(Domain Name System):是互聯網使用的命名系統,用來把便於人們使用的機器名字轉換爲IP地址。互聯網的域名系統DNS被設計成爲一個聯機分佈式數據庫系統,並採用客戶服務器方式。

2)域名服務器程序(可簡稱爲域名服務器):域名到IP地址的解析是由分佈在互聯網上的許多域名服務器程序共同完成的。人們也常把運行域名服務器程序的機器稱爲域名服務器。

3)互聯網的域名結構

DNS規定,域名中的標號都由英文字母和數字組成,每一個標號不超過63個字符(但爲了記憶方便,最好不要超過12個字符),也不區分大小寫字母(例如,CCTV或cctv在域名中是等效的)。標號中除連字符(-)外不能使用其他的標點符號。級別最低的域名寫在最左邊,而級別最高的頂級域名則寫在最右邊。由多個標號組成的完整域名總共不超過255個字符。

  • 頂級域名TLD(Top Level Domain)

    • 國家頂級域名nTLD:採用ISO 3166的規定。如:cn表示中國,us表示美國,uk表示英國,等等。
    • 通用頂級域名gTLD:如:com(公司企業),net(網絡服務機構),org(非營利性組織),int(國際組織),edu(美國專用的教育機構),gov(美國的政府部門),mil表示(美國的軍事部門),等等。
    • 基礎結構域名(infrastructure domain):這種頂級域名只有一個,即arpa,用於反向域名解析,因此又稱爲反向域名。
    • 任何公司、機構都有權向ICANN申請新的頂級域名。目前已有一些由兩個漢字組成的中文的頂級域名出現了,例如,商城、公司、新聞等。
  • 二級域名(在國家頂級域名下注冊的二級域名均由該國家自行確定)

    • 我國“類別域名”共7個,分別爲:ac(科研機構),com(工、商、金融等企業),edu(中國的教育機構),gov(中國的政府機構),mil(中國的國防機構),net(提供互聯網絡服務的機構),org(非營利性的組織)。
    • 我國“行政區域名”共34個,適用於我國的各省、自治區、直轄市。例如:bj(北京市),js(江蘇省),等等。
  • 三級域名/四級域名等等。

6.1.2 域名服務器

1)一個服務器所負責管轄的(或有權限的)範圍叫做區(zone)。

各單位根據具體情況來劃分自己管轄範圍的區。但在一個區中的所有節點必須是能夠連通的。每一個區設置相應的權限域名服務器(authoritative name server) ,用來保存該區中的所有主機的域名到IP地址的映射。總之,DNS服務器的管轄範圍不是以“域”爲單位,而是以“區”爲單位。區是DNS服務器實際管轄的範圍。區可能等於或小於域,但一定不能大於域。

2)域名服務器的四種類型

  • 根域名服務器(root name server):根域名服務器是最高層次的域名服務器,也是最重要的域名服務器。所有的根域名服務器都知道所有的頂級域名服務器的域名和IP地址。採用任播技術。
  • 頂級域名服務器(即TLD服務器):這些域名服務器負責管理在該頂級域名服務器註冊的所有二級域名。
  • 權限域名服務器:這就是前面已經講過的負責一個區的域名服務器。
  • 本地域名服務器(local name server):每一個互聯網服務提供者ISP,或一個大學,甚至一個大學裏的系,都可以擁有一個本地域名服務器,這種域名服務器有時也稱爲默認域名服務器。(Windows操作系統中,首選DNS服務器和備用DNS服務器的IP地址中的的DNS服務器指的就是本地域名服務器。)

3)主域名服務器和輔助域名服務器

爲了提高域名服務器的可靠性,DNS域名服務器都把數據複製到幾個域名服務器來保存,其中的一個是主域名服務器(master name server),其他的是輔助域名服務器(secondary name server)。當主域名服務器出故障時,輔助域名服務器可以保證DNS的查詢工作不會中斷。主域名服務器定期把數據複製到輔助域名服務器中,而更改數據只能在主域名服務器中進行。這樣就保證了數據的一致性。

4)域名的解析過程

  • 主機向本地域名服務器的查詢一般都是採用遞歸查詢(recursive query)。

  • 本地域名服務器向根域名服務器的查詢通常是採用迭代查詢(iterative query),也可採用遞歸查詢。如下:
    Snipaste_2020-02-02_16-10-59

5)域名服務器中廣泛地使用了高速緩存(有時也稱爲高速緩存域名服務器)。不但在本地域名服務器中需要高速緩存,在主機中也很需要。


6.2 文件傳送協議

6.2.1 介紹

1)文件傳送協議FTP(File Transfer Protocol)[RFC 959]是互聯網上使用得最廣泛的文件傳送協議。

2)基於TCP的FTP和基於UDP的簡單文件傳送協議TFTP,它們都是文件共享協議中的一大類,即複製整個文件。

6.2.2 FTP協議

1)文件傳送協議FTP只提供文件傳送的一些基本的服務,它使用TCP可靠的運輸服務。FTP的主要功能是減少或消除在不同操作系統下處理文件的不兼容性。

2)FTP使用客戶服務器方式。 一個FTP服務器進程可同時爲多個客戶進程提供服務。

3)主進程和從屬進程:FTP的服務器進程由兩大部分組成:一個主進程,負責接受新的請求;另外有若干個從屬進程,負責處理單個請求。

  • 主進程的工作步驟
    • (1)打開熟知端口(端口號爲21),使客戶進程能夠連接上。
    • (2)等待客戶進程發出連接請求。
    • (3)啓動從屬進程處理客戶進程發來的請求。從屬進程對客戶進程的請求處理完畢後即終止,但從屬進程在運行期間根據需要還可能創建其他一些子進程。
    • (4)回到等待狀態,繼續接受其他客戶進程發來的請求。主進程與從屬進程的處理是併發進行的。
  • 從屬進程:每個FTP連接都有兩個從屬進程,控制進程和數據傳送進程。
    • (1)當客戶進程向服務器進程發出建立連接請求時,要尋找連接服務器進程的熟知端口21,同時還要告訴服務器進程自己的另一個端口號碼,用於建立數據傳送連接。
    • (2)服務器進程用自己傳送數據的熟知端口20與客戶進程所提供的端口號建立數據傳送連接。

4)FTP數據連接的兩種方式(服務器角度)

  • 主動模式:服務端主動用自己的20端口去連客戶端。

  • 被動模式:服務端被動等待客戶端來連服務端的一個隨機端口。注意被動模式服務器的數據端口不再是20。

  • 兩種模式圖解:
    Snipaste_2020-02-02_17-19-58

6.2.3 簡單文件傳送協議TFTP

1)簡單文件傳送協議TFTP(Trivial File Transfer Protocol)是一個很小且易於實現的文件傳送協議。

2)TFTP也使用客戶服務器方式 ,但它使用UDP數據報,因此TFTP需要有自己的差錯改正措施。


6.3 遠程終端協議TELNET

1)TELNET又稱爲終端仿真協議。用戶用TELNET就可在其所在地通過TCP連接註冊(即登錄)到遠地的另一臺主機上(使用主機名或IP地址)。TELNET能將用戶的擊鍵傳到遠地主機,同時也能將遠地主機的輸出通過TCP連接返回到用戶屏幕。

2)TELNET也使用客戶服務器方式。 在本地系統運行TELNET客戶進程,而在遠地主機則運行TELNET服務器進程。和FTP的情況相似,服務器中的主進程等待新的請求,併產生從屬進程來處理每一個連接。


6.4 萬維網WWW

6.4.1 介紹

1)萬維網WWW(World Wide Web)並非某種特殊的計算機網絡。萬維網是一個大規模的、聯機式的信息儲藏所,英文簡稱爲Web。

2)萬維網是一個分佈式的超媒體(hypermedia)系統,它是超文本(hypertext)系統的擴充。

3)萬維網以客戶服務器方式工作。

6.4.2 統一資源定位符URL

1)URL的一般形式由以下四個部分組成:<協議>://<主機>:<端口>/<路徑>

  • <協議>:指出使用什麼協議來獲取該萬維網文檔。現在最常用的協議就是http(超文本傳送協議HTTP),其次是ftp(文件傳送協議FTP)。
  • <主機>:指出這個萬維網文檔是在哪一臺主機上。這裏的<主機>就是指該主機在互聯網上的域
    名。
  • 第三和第四部分<端口>和<路徑>,有時可省略。

6.4.3 超文本傳送協議HTTP

1)HTTP協議定義了瀏覽器(即萬維網客戶進程)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳送給瀏覽器。

2)在使用HTTP之前要先建立TCP連接,連接的三報文握手的第三個報文段中的數據,就是客戶對萬維網文檔的請求報文。
Snipaste_2020-02-02_17-37-51
3)HTTP/1.0協議和HTTP/1.1協議

  • HTTP/1.0協議:非持久連接。每次請求和響應一個文檔都要重新建立連接。
  • HTTP/1.1協議:持久連接。在一段時間內,對同一個服務器的請求和響應都可以使用同一個連接。有兩種工作方式。
    • 非流水線方式(without pipelining):特點是客戶在收到前一個響應後才能發出下一個請求。
    • 流水線方式(with pipelining):特點是客戶在收到HTTP的響應報文之前就能夠接着發送新的請求報文。

4)代理服務器(proxy server):是一種網絡實體,它又稱爲萬維網高速緩存(Web cache)。代理服務器把最近的一些請求和響應暫存在本地磁盤中。

5)HTTP有兩類報文:請求報文(從客戶向服務器發送請求報文)和響應報文(從服務器到客戶的回答)。
Snipaste_2020-02-02_17-47-33

  • 開始行:用於區分是請求報文還是響應報文。在請求報文中的開始行叫做請求行(Request-Line),而在響應報文中的開始行叫做狀態行(Status-Line)。在開始行的三個字段之間都以空格分隔開,最後的“CR”和“LF”分別代表“回車”和“換行”。
  • 首部行:用來說明瀏覽器、服務器或報文主體的一些信息。首部可以有好幾行,但也可以不使用。
  • 實體主體(entity body):在請求報文中一般都不用這個字段,而在響應報文中也可能沒有這個字段。

6)HTTP請求報文的主要特點

  • “方法”就是對所請求的對象進行的操作,這些方法實際上也就是一些命令。求報文中常用的
    幾種方法:
    Snipaste_2020-02-02_17-54-09

  • 完整的HTTP請求報文的例子:

    GET /dir/index.htm HTTP/1.1 		{請求行使用了相對URL}
    Host: www.xyz.edu.cn 		{此行是首部行的開始。這行給出主機的域名}
    Connection: close 		    {告訴服務器發送完請求的文檔後就可釋放連接}
    User-Agent: Mozilla/5.0 		{表明用戶代理是使用火狐瀏覽器Firefox}
    Accept-Language: cn 			{表示用戶希望優先得到中文版本的文檔}
    							{請求報文的最後還有一個空行}
    

7)HTTP響應報文的主要特點

  • 狀態行包括三項內容,即HTTP的版本,狀態碼,以及解釋狀態碼的簡單短語。

    • 狀態碼(Status-Code)都是三位數字的,分爲5大類,原先有33種[RFC2616],後來又增加了幾種[RFC 6585]。這5大類的狀態碼都是以不同的數字開頭的:

      1xx表示通知信息,如請求收到了或正在進行處理。
      2xx表示成功,如接受或知道了。
      3xx表示重定向,如要完成請求還必須採取進一步的行動。
      4xx表示客戶的差錯,如請求中有錯誤的語法或不能完成。
      5xx表示服務器的差錯,如服務器失效無法完成請求。

    • 三種狀態行在響應報文中是經常見到的:

      HTTP/1.1 202 Accepted {接受}
      HTTP/1.1 400 Bad Request {錯誤的請求}
      Http/1.1 404 Not Found {找不到}

6.4.4 其它

1)萬維網的文檔(HTML):靜態文檔、動態文檔和活動文檔。

2)萬維網的信息檢索方式:有全文檢索搜索與分類目錄搜索兩種。


6.5 電子郵件

1)電子郵件的兩個最重要的標準就是:簡單郵件傳送協議SMTP(Simple Mail Transfer Protocol)[RFC 5321]和互聯網文本報文格式[RFC 5322]。

2)一個電子郵件系統應具有三個主要組成構件,這就是用戶代理、郵件服務器,以及郵件發送協議(如SMTP)和郵件讀取協議(如POP3)。
Snipaste_2020-02-02_18-09-28

  • 用戶代理UA(User Agent):就是用戶與電子郵件系統的接口,在大多數情況下它就是運行在用戶電腦中的一個程序。因此用戶代理又稱爲電子郵件客戶端軟件。
  • 郵件服務器按照客戶服務器方式工作 ,郵件服務器必須能夠同時充當客戶和服務器。
  • 郵件服務器需要使用兩種不同的協議。
    • 一種協議用於用戶代理向郵件服務器發送郵件或在郵件服務器之間發送郵件,如SMTP協議,
    • 另一種協議用於用戶代理從郵件服務器讀取郵件,如郵局協議POP3。

3)現在常用的郵件讀取協議有兩個,即郵局協議第3個版本POP3和網際報文存取協議IMAP(Internet Message Access Protocol)。

  • POP3是一個脫機協議,所有對郵件的處理都在用戶的PC機上進行。
  • IMAP是一個聯機協議,用戶可以操縱ISP的郵件服務器的郵箱,在不同的地方使用不同的計算機處理郵件。

6.6 動態主機配置協議DHCP

1)動態主機配置協議DHCP(Dynamic Host Configuration Protocol):它提供了一種機制,稱爲即插即用連網(plug-and-playne tworking)。這種機制允許一臺計算機加入新的網絡和獲取IP地址而不用手工參與。

2)DHCP使用客戶服務器方式。 是UDP用戶數據報的數據部分。

3)DHCP中繼代理(relay agent):每一個網絡上都設置一個DHCP服務器會使DHCP服務器的數量太多,因此現在是使每一個網絡至少有一個DHCP中繼代理,通常是一臺路由器,配置了DHCP服務器的IP地址信息。

當DHCP中繼代理收到主機A以廣播形式發送的發現報文後,就以單播方式向DHCP服務器轉發此報文,並等待其回答。收到DHCP服務器回答的提供報文後,DHCP中繼代理再把此提供報文發回給主機A。

4)租用期(lease period):DHCP服務器分配給DHCP客戶的IP地址是臨時的,因此DHCP客戶只能在一段有限的時間內使用這個分配到的IP地址。DHCP協議稱這段時間爲租用期,但並沒有具體規定租用期應取爲多長或至少爲多長,這個數值應由DHCP服務器自己決定。

5)DHCP客戶使用的UDP端口是68,而DHCP服務器使用的UDP端口是67。這兩個UDP端口都是熟知端口。windows系統中若選擇“自動獲得IP地址”和“自動獲得DNS服務器地址”,就表示是使用DHCP協議。


思維導圖

第六章 應用層

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