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