应用层协议
應用層協(xié)議(application layer protocol)定義了運行在不同端系統(tǒng)上的應用程序進程如何相互傳遞報文。
工作原理
應用層協(xié)議(application layer protocol)定義了運行在不同端系統(tǒng)上的應用程序進程如何相互傳遞報文。
應用層協(xié)議的定義
(1)交換的報文類型,如請求報文和響應報文;
(2)各種報文類型的語法,如報文中的各個字段公共詳細描述;
(3)字段的語義,即包含在字段中信息的含義;
(4)進程何時、如何發(fā)送報文及對報文進行響應。
有些應用層協(xié)議是由RFC文檔定義的,因此它們位于公共領域。例如,web的應用層的協(xié)議HTTP(超文本傳輸協(xié)議,RFC 2616)就作為一個RFC供大家使用。如果瀏覽器開發(fā)者遵從HTTP RFC規(guī)則,所開發(fā)出的瀏覽器就能訪問任何遵從該文檔標準的web,服務器并獲取相應的web頁面。還有很多別的應用層協(xié)議是專用的.不能隨意應用于公共領域。例如,很多現(xiàn)有的P2P文件共享系統(tǒng)使用的是專用應用層協(xié)議。
應用層協(xié)議分類
(1)域名系統(tǒng)(Domain Name System,DNS):用于實現(xiàn)網(wǎng)絡設備名字到IP地址映射的網(wǎng)絡服務。
(2)文件傳輸協(xié)議(File Transfer Protocol,FTP):用于實現(xiàn)交互式文件傳輸功能。
FTP是一種文件傳輸協(xié)議,它支持兩種模式:一種方式叫做 Standard (也就是 Active,主動模式),一種是 Passive (也就是 PASV,被動模式)。 Standard 模式是 FTP 的客戶端發(fā)送 PORT 命令到 FTP 服務器。Passive 模式是 FTP 的客戶端發(fā)送 PASV 命令到 FTP 服務器。兩種方式中數(shù)據(jù)和控制鏈路都是分開傳輸?shù)?#xff0c;惟一的區(qū)別在于主動模式由服務器端發(fā)起數(shù)據(jù)鏈路的鏈接請求,而被動模式由客戶端發(fā)起數(shù)據(jù)鏈路的鏈接請求。
FTP 通信過程中它的控制鏈路和數(shù)據(jù)鏈路不是在同一個端口進行通信的,而是在兩個不同的 端口獨立進行通信。首先由客戶端向服務器發(fā)起控制鏈接的請求,當和服務器建立控制鏈接成功之后,在主動模式下客戶端將會發(fā)一個端口號給服務器,告訴當前這次傳輸服務器所使用的數(shù)據(jù)傳輸端口,服務器收到這個信息后就向客戶端發(fā)起數(shù)據(jù)鏈接請求,成功后進行當前這次的數(shù)據(jù)傳輸。在當前傳輸完成之后,該數(shù)據(jù)鏈路就被拆除了,如果客戶端進行一次新的傳輸,則向服務器發(fā)送一個新的端口號,重新建立鏈接。在整個過程中,控制鏈路的鏈接一直都存在,直到 FTP 的整個通信過程結束,而數(shù)據(jù)鏈路每一次傳輸就需要建立一次新的鏈接。而被動模式過程和上述通信過程差不多,只是由客戶端發(fā)起數(shù)據(jù)鏈路的建立請求。
在 FTP 交互的過程中,客戶端通過命令字來告訴服務器相關的信息,常用的有訪問控制命令 USER,PASS,CWD,QUIT 等八種;傳輸參數(shù)命令 PORT,PASV,TYPE, STRU,MODE 五種;FTP 服務命令 RETR,STOR,LIST,ABOR 等二十種。 服務器則通過一些狀態(tài)碼告訴客戶端當前服務器的反饋狀態(tài)。一般 2xx 表示當前的操作成功,3xx 表示權限問題,4xx 表示文件問題,5xx 表示服務器問題。
(3)簡單郵件傳送協(xié)議(Simple Mail Transfer Protocol, SMTP):用于實現(xiàn)電子郵箱傳送功能
SMTP是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議。SMTP 是建模在 FTP 文件傳輸服務上的一種郵件服務,SMTP 服務器在默認端口 25 上監(jiān)聽客戶請求,主要用于傳輸系統(tǒng)之間的郵件信息。
SMTP 交互過程比較簡單,首先客戶端向服務器的 SMTP 服務端口發(fā)起請求,通過三次握手建立鏈接。然后服務器返回 220 的狀態(tài)碼告訴客戶端當前已經(jīng)準備好服務,客戶端收到該狀態(tài)碼后向服務器發(fā)出 HELO 或者 EHLO 的命令告訴服務器該客戶端需要的服務類型,其中 HELO 是默認的 SMTP 服務,EHLO 要求除了默認的服務之 外還要支持擴展服務。當服務器告訴客戶端它所支持的服務之后,雙方用命令字和狀態(tài)碼進行交互。
(4)超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP):用于實現(xiàn)WWW服務。
是一個屬于應用層的面向?qū)ο蟮膮f(xié)議,它是基于 TCP(Transfer Control Protocol, 傳輸控制協(xié)議)的可靠傳輸,采用的是客戶端/服務器的工作模式。在 HTTP 通信過程中,首先由客戶端向服務器發(fā)起建立鏈接的請求,通過 TCP三次握手來完成,然后客戶端向服務器發(fā)出請求,告訴服務器想得到的信息。服務器通過響應返回客戶端需要的信息。最后通過 TCP 四次握手關閉鏈接,從而完成一次基本的通信過程。
(5)簡單網(wǎng)絡管理協(xié)議(simple Network Management Protocol,SNMP):用于管理與監(jiān)視網(wǎng)絡設備。
(6)遠程登錄協(xié)議(Telnet):用于實現(xiàn)遠程登錄功能。
總結