?
為什么需要應用層
運輸層給應用進程提供了端到端的通信服務,但不同的網絡進程之間,還需要有不同的通信規則,因此運輸層之上還需要有應用層。
應用層協議定義:
應?進程交換的報?類型,請求還是響應?
各種報?類型的語法、語義;
進程何時、如何發送報?,以及對報?進?響應的規則。
應用層功能與協議:
域名服務:DNS;
?件傳輸:FTP;
電?郵件:SMTP、POP3;
遠程登陸:TELNET;
WWW服務:HTTP。
工作模式
應用層有兩種工作模式:Client/Server 模式和 P2P 模式。
Client/Server
服務器:
提供?絡服務的設備(由硬件和服務軟件組成);
永久提供服務;
有永久性訪問地址/域名;
通常采?多線程或多進程實現。
客戶機:
請求服務的主機;
與服務器通信,使?服務器提供的服務;
間歇性接??絡;
可能使?動態IP地址;
不與其他客戶直接通信。
P2P-特殊的客戶服務器?式
不存在永遠在線的服務器;
每個主機既可提供服務,也可以請求服務;
任意端系統/節點之間可以直接通信;
結點間歇性接??絡;
結點可能改變IP地址。
優點
可擴展性好;
?絡健壯性好;
資源分散管理。
域名系統
域名系統是互聯網使用的命名系統,用來便于人們使用的機器名字轉換成 IP 地址。點分?進制的 IP 地址不容易記住?使?域名,類似?們的身份證號碼不易記住?使?姓名。數字適合于機器,名字適合于?類。
域名結構,級別最低的域名卸載最左邊,級別最高的域名就寫在最右邊。
根域名服務器
根域名服務器是最高層次,最重要的域名服務器。根域名服務器知道所有的頂級域名服務器的域名和 IP 地址。本地域名服務器要對互聯?上任何?個域名進?解析,如果???法解析,?先求助根域名服務器。
域名解析的過程
主機向本地域名服務器的查詢采?遞歸查詢。如果本地域名服務器不能解析域名的 IP 地址,本地域名服務器就以 DNS 客戶的身份,向根域名服務器發出查詢請求報?;
本地域名服務器向根域名服務器的查詢采?迭代查詢。當根域名服務器收到本地域名服務器的迭代查詢請求報?時,要么給出所要查詢的 IP 地址,要么告訴本地域名服務器:“你下?步應當向哪?個域名服務器進?查詢”。
DNS 服務器高速緩存
每個域名服務器都會維護一個高速緩存,存放最近用過的名字以及從何處獲取名字的映射信息的記錄。
可??減輕根域名服務器的負荷,使互聯?上的 DNS 查詢請求和回答報?的數量?為減少。
為保持高速緩存中的內容正確,域名服務器需要為每項內容設置過期計時器,然后過期刪除。
FTP
FTP 文件傳輸協議,是互聯網中使用最廣泛的文件傳輸協議。
FTP 實現的是通過?絡實現異構計算機間?件的“拷?”;
FTP 屏蔽了計算機系統的細節,適合在異構?絡中任意計算機之間傳送?件。
FTP 提供交互式的訪問,允許客戶指明?件的類型與格式,并允許?件具有存取權限。
FTP 的工作原理
FTP 采? C/S 模式,可為多個客戶提供服務;
FTP 的服務器進程由兩?部分組成:?個主進程,負責接受新的請求;另外有若?個從屬進程,負責處理單個請求;
消除了不同操作系統下的?件系統的不兼容性;
實現了?件傳送的基本服務;
使? TCP 可靠傳輸協議。
客戶端使?任意分配的端?號(>1023),服務器端?熟知端?號21傳輸控制信息,服務器端?熟知端?號20傳輸數據。
1、服務器主程序打開21號端?,等待客戶進程發送連接請求;
2、啟動從屬進程處理客戶進程請求;
3、回到等待狀態,繼續接受其他客戶進程請求。
使?兩個不同端?號的好處
1、使協議更加簡單和更容易實現;
2、在傳輸?件時還可以利?控制連接。
TFTP
TFTP (Trivial File Transfer Protocol) 是?個很?且易于實現的?件傳送協議:
TFTP 使?客戶服務器?式和使? UDP 數據報,因此 TFTP 需要有??的差錯改正措施;
TFTP 只?持?件傳輸?不?持交互;
TFTP 沒有?個龐?的命令集,沒有列?錄的功能,也不能對?戶進?身份鑒別。
TFTP 的主要特點
1、每次傳送的數據 PDU 中有 512 字節的數據,但最后?次可不? 512 字節;
2、數據 PDU 也稱為?件塊 (block),每個塊按序編號,從 1 開始;
3、?持 ASCII 碼或?進制傳送;
4、可對?件進?讀或寫;
5、使?很簡單的?部。
TFTP 的工作方式像是停止等待協議。發送完一個文件塊后就等待對方的確認,確認時應該指明所確認的塊編號。發完數據在規定的時間收不到確認就要重新發送數據 PDU。發送 PDU 的一方若在規定時間內收不到下一個文件塊,也要重發確認 PDU。這樣就保證文件的傳輸不致因某一個數據報丟失而失敗的情況。
開始?作時,TFTP 客戶進程發送?個讀請求 PDU 或寫請求PDU 給 TFTP 服務器進程,其熟知端?號碼為69。TFTP 服務器進程要選擇?個新的端?和 TFTP 客戶進程進?通信。若?件?度恰好為 512 字節的整數倍,則在?件傳送完畢后,還必須在最后發送?個只含?部??數據的數據 PDU。若?件?度不是 512 字節的整數倍,則最后傳送數據 PDU 的數據字段?定不滿 512 字節,這正好可作為?件結束的標志。
TELNET
TELNET 是?個簡單的遠程終端協議,是互聯?正式標準。?戶? TELNET 就可在其所在地通過 TCP 連接注冊(即登錄)到遠程的另?個主機上(使?主機名或 IP 地址),TELNET 將?戶的擊鍵傳到遠地主機,并且將遠程主機的輸出通過 TCP 連接返回到?戶屏幕。這種服務是透明的,因為?戶感覺到好像鍵盤和顯示器是直接連在遠得程主機上;TELNET 使?客戶/服務器?式。本地系統運? TELNET 客戶進程,遠程主機則運? TELNE服務器進程;服務器中的主進程等待新的請求,并產?從屬進程來處理每?個連接。
TELNET 能夠適應許多計算機和操作系統的差異,例如對于文本中一行的結束,有的系統使用 ASCII 的回車,有的系統使用兩個字符,回車換行。為了適應這種差異,TELNET 定義了數據和命令如何通過互聯網。這些所謂的定義就是所謂的網絡虛擬終端 NVT 。
客戶軟件把?戶的擊鍵和命令轉換成 NVT 格式,并送交服務器;
服務器軟件把收到的數據和命令,從 NVT 格式轉換成遠地系統所需的格式;
向?戶返回數據時,服務器把遠地系統的格式轉換為 NVT 格式,本地客戶再從 NVT 格式轉換到本地系統所需的格式。
SSH 與 TELNET
相同點
遠程登錄其他主機;
運輸層采?TCP協議。
不同點
Telnet明?傳送;SSH加密傳送,且?持壓縮;
Telnet服務默認端?號為23;SSH服務默認監聽22號端?;
SSH使?對稱加密算法實現數據安全傳輸;
對稱加密算法的密鑰是通過?對稱加密算法(RSA)進?交換的。
超文本傳輸協議 HTTP
HTTP 協議定義瀏覽器(即萬維網客戶端)怎樣向萬維網服務器請求萬維網文檔,以及服務器怎樣把文檔傳遞給瀏覽器。
從層次角度看,HTTP 是面向事務的應用層協議,它是萬維上能夠可靠的交換文件(包括聲音,文本,圖像等各種多媒體文件)的重要基礎,所謂事務就是指一系列的信息交換,這一些列的信息交換是不可分割的一個整體。
HTTP 使用了面向連接的 TCP 作為運輸層的協議,保證了數據的可靠傳輸。HTTP 不用考慮數據在傳輸過程中被丟棄又怎樣被重傳。但是,HTTP 本身又是無連接的,就是說雖然 HTTP 使用了 TCP 連接,但通信的雙方在交換 HTTP 報文之間不需要先建立 HTTP 連接。
HTTP 協議是無狀態的。就是同一個客戶第二次訪問同一個服務器上的頁面時,服務的響應和第一次的響應相同,因為服務器并不記得曾經訪問過這個用戶,也不記得為該用戶服務多少次。HTTP 的這種設計,簡化了服務器的設計,使服務器容易實現支持大量并發的 HTTP 請求。
為什么 HTTP 是無連接
無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
早期這么做的原因是 HTTP 協議產生于互聯網,因此服務器需要處理同時面向全世界數十萬、上百萬客戶端的網頁訪問,但每個客戶端(即瀏覽器)與服務器之間交換數據的間歇性較大(即傳輸具有突發性、瞬時性),并且網頁瀏覽的聯想性、發散性導致兩次傳送的數據關聯性很低,大部分通道實際上會很空閑、無端占用資源。因此 HTTP 的設計者有意利用這種特點將協議設計為請求時建連接、請求完釋放連接,以盡快將資源釋放出來服務其他客戶端。
隨著時間的推移,網頁變得越來越復雜,里面可能嵌入了很多圖片,這時候每次訪問圖片都需要建立一次 TCP 連接就顯得很低效。后來,Keep-Alive 被提出用來解決這效率低的問題。Keep-Alive 功能使客戶端到服務器端的連接持續有效,當出現對服務器的后繼請求時,Keep-Alive 功能避免了建立或者重新建立連接。
為什么 HTTP 是無狀態
無狀態是指協議對于事務處理沒有記憶能力,服務器不知道客戶端是什么狀態。即我們給服務器發送 HTTP 請求之后,服務器根據請求,會給我們發送數據過來,但是,發送完,不會記錄任何信息。
HTTP 是一個無狀態協議,這意味著每個請求都是獨立的,Keep-Alive 沒能改變這個結果。
缺少狀態意味著如果后續處理需要前面的信息,就必須重傳,這樣可能導致每次連接傳送的數據量增大。
優缺點
優點:解放了服務器,每一次請求“點到為止”不會造成不必要連接占用。
缺點:嚴重阻礙了客戶端與服務器進?動態交互的 Web 應?程序,例如購物?程序。
如何應對 HTTP 無狀態的特點呢,可以通過 Cookie 和 Session。
請求一個 www 文檔所需要的時間
持續連接
HTTP/1.1 協議使?持續連接 (persistent connection):
萬維?服務器在發送響應后仍然在?段時間內保持這條連接,使同?個客戶(瀏覽器)和該服務器可以繼續在這條連接上傳送后續的 HTTP 請求報?和響應報?;
這并不局限于傳送同?個??上鏈接的?檔,?是只要這些?檔都在同?個服務器上就?;
?前?些流?的瀏覽器的默認設置就是使? HTTP/1.1。
持續連接的兩種工作方式
1、非流水線方式
客戶端在收到前一個響應時候才發出下一個請求。但服務器在發完一個對象后,TCP 連接就處于空閑狀態,浪費了服務器資源。
2、流水線方式
客戶在收到 HTTP 的響應報?之前就能夠接著發送新的請求報?。?個接?個的請求報?到達服務器后,服務器就可連續發回響應報?。使?流?線?式時,客戶訪問所有的對象只需花費?個 RTT時 間,使 TCP 連接中的空閑時間減少,提?了下載?檔效率。
持續連接帶來的問題
在持續連接情況下,客戶端發出請求后,服務器發送回響應,由于連接沒有釋放,客戶端?法知道服務器數據是否傳輸完畢,?直等待。當服務器進程退出之后,客戶瀏覽器才會顯示??內容。
如何解決
響應時采?Transfer-Encoding: chunked,解決傳輸數據的邊界問題;
在HTTP響應頭部中,?“Content-Length: 12395”告訴了客戶端實?度為12359字節。
HTTP/2
??的實時性要求越來越?(如視頻聊天或直播),協議HTTP/1.1已?法適應其要求,特點如下:
? 服務器發回的響應?需排隊,并?發回(使?同?個TCP連接);
? 允許客戶復?TCP連接進?多個請求;
? 所有的報?都劃分為許多較?的?進制編碼的幀,并采?了新的壓縮算法,不發送重復的?部字段,??減?了?部的開銷,提?了傳輸效率。
HTTP 響應的狀態碼
狀態代碼由三位數字組成,第?個數字定義了響應的類別,共分 5 種類別:
1xx:指示信息——表示請求已接收,繼續處理;
2xx:成功——表示請求已被成功接收、理解和接受;
3xx:重定向——要完成請求必須進?更進?步的操作;
4xx:客戶端錯誤——請求有語法錯誤或請求?法實現;
5xx:服務器端錯誤——服務器未能實現合法的請求。
動態主機配置協議 DHCP
動態主機配置協議 DHCP(Dynamic Host Configuration Protocol)是一種網絡管理協議,用于集中對用戶IP地址進行動態管理和配置。
DHCP于1993年10月成為標準協議,其前身是BOOTP協議。DHCP協議由RFC 2131定義,采用客戶端/服務器通信模式,由客戶端(DHCP Client)向服務器(DHCP Server)提出配置申請,DHCP Server為網絡上的每個設備動態分配IP地址、子網掩碼、默認網關地址,域名服務器(DNS)地址和其他相關配置參數,以便可以與其他IP網絡通信。
為什么需要 DHCP
在IP網絡中,每個連接Internet的設備都需要分配唯一的IP地址。DHCP使網絡管理員能從中心結點監控和分配IP地址。當某臺計算機移到網絡中的其它位置時,能自動收到新的IP地址。DHCP實現的自動化分配IP地址不僅降低了配置和部署設備的時間,同時也降低了發生配置錯誤的可能性。另外DHCP服務器可以管理多個網段的配置信息,當某個網段的配置發生變化時,管理員只需要更新DHCP服務器上的相關配置即可,實現了集中化管理。
DHCP 解決的問題:
1、普通?戶配置協議參數易出錯;
2、管理員配置多臺設備麻煩;
3、IP 地址數少于?戶數。
DHCP采?客戶/服務器模式
需要IP地址的主機在啟動時?播發送DHCP發現報?:
該主機就成為 DHCP 客戶,本地?絡上DHCP服務器回答此?播報?,服務器?先在其數據庫中查找該計算機的配置信息;
若找到,則返回找到的信息,否則,從服務器的IP地址池中取?個地址分配給該計算機,服務器的回答的報?稱為提供報?(DHCPOFFER)。
租?期
DHCP服務器分配給DHCP客戶的IP地址是臨時的,DHCP客戶只能在?段有限的時間內使?這個分配到的 IP 地址。DHCP協議稱這段時間為租?期。
DHCP客戶也可在??發送的報?中(例如,發現報?)提出對租?期的要求,租?期的數值應由DHCP服務器決定。
(cisco默認租?期):
IP Address Lease Time 租期,默認1天;
Renewal Time Value 更新租約時間,租期的1/2;
Rebinding Time Value 最后更新時間,租期的7/8。
總結
1、應用層協議是為了解決某一類應用問題,而問題的解決又是通過位于不同主機中的多個應用進程之間的通信和協同工作來完成的。應用層規定應用進程在通信時應遵循的協議。應用層的許多協議都是基于客戶服務器方式的,客戶端是服務請求方,服務器是服務提供方。
2、域名系統 DNS 是互聯網使用的命名系統,用來便于把人們使用的機器名字轉換成 IP 地址。DNS 是一個聯機分布式數據庫系統,采用客戶服務器方式。
3、域名服務分為根域名服務器,頂級域名服務器,權限域名服務器和本地域名服務器。
4、文件傳送協議 FTP 使用 TCP 可靠的運輸服務,FTP 使用客戶服務端方式,一個 FTP 服務器進程可以為多個客戶提供服務。TFTP (Trivial File Transfer Protocol) 是?個很?且易于實現的?件傳送協議,TFTP 使?客戶服務器?式和使? UDP 數據報,因此 TFTP 需要有??的差錯改正措施;TFTP 只?持?件傳輸?不?持交互;TFTP 沒有?個龐?的命令集,沒有列?錄的功能,也不能對?戶進?身份鑒別。
5、TELNET 是?個簡單的遠程終端協議,是互聯?正式標準。?戶? TELNET 就可在其所在地通過 TCP 連接注冊(即登錄)到遠程的另?個主機上(使?主機名或 IP 地址),TELNET 將?戶的擊鍵傳到遠地主機,并且將遠程主機的輸出通過 TCP 連接返回到?戶屏幕。
6、HTTP 使用了面向連接的 TCP 作為運輸層的協議,保證了數據的可靠傳輸。
7、HTTP 本身又是無連接的,就是說雖然 HTTP 使用了 TCP 連接,但通信的雙方在交換 HTTP 報文之間不需要先建立 HTTP 連接。
8、HTTP 協議是無狀態的。就是同一個客戶第二次訪問同一個服務器上的頁面時,服務的響應和第一次的響應相同,因為服務器并不記得曾經訪問過這個用戶,也不記得為該用戶服務多少次。HTTP 的這種設計,簡化了服務器的設計,使服務器容易實現支持大量并發的 HTTP 請求。
9、動態主機配置協議 DHCP(Dynamic Host Configuration Protocol)是一種網絡管理協議,用于集中對用戶IP地址進行動態管理和配置。
DHCP 解決的問題:
1、普通?戶配置協議參數易出錯;
2、管理員配置多臺設備麻煩;
3、IP 地址數少于?戶數。
評論
查看更多