TCP-IP之應用層協議
應用層協議是多種多樣的,比如 DNS、FTP、Telnet、SMTP、HTTP、RIP、NFS
一、DNS
DNS (Domain Name Service 域名服務) 協議基於 UDP,使用端口號 53。
由數字組成的 IP 地址很難記憶,所以我們上網使用網站 IP 地址的別名——域名。實際使用中,域名與 IP 地址是對應的,這種對應關系保存在DNS 服務器之中。
在瀏覽器中輸入一個域名後,會有 DNS 服務器將域名解析為對應的 IP 地址。註意這和網絡層的 ARP 協議的不同之處:DNS 提供的是域名與 IP 地址的對應關系,而 ARP 提供的是 IP 地址和 MAC 地址的對應關系。
DNS 服務器
DNS 服務器是個分層次的系統:
-
(1)根 DNS 服務器 :全世界共有 13 臺根域名服務器,編號 A 到 M,其中大部分位於美國。
-
(2)頂級(TLD)DNS 服務器 :負責如 com 、org 、edu 等頂級域名和所有國家的頂級域名(如 cn 、uk 、jp )。
-
(3)權威 DNS 服務器 :大型組織、大學、企業的域名解析服務。
-
(4)本地 DNS 服務器 :通常與我們主機最近的 DNS 服務器。
在 linux 系統中,可以用 host 命令 進行 DNS 查詢,查看一個指定域名的 IP
二、FTP
FTP (File Transfer Protocol 文件傳輸協議) 基於 TCP,使用端口號 20(數據)和 21(控制)。
它的主要功能是減少或消除在不同操作系統下處理文件的不兼容性,以達到便捷高效的文件傳輸效果。
-
FTP 只提供文件傳輸的基本服務,它采用 客戶端—服務器 的方式,一個 FTP 服務器可同時為多個客戶端提供服務。
-
在進行文件傳輸時,FTP 的客戶端和服務器之間會建立兩個 TCP 連接:21 號端口建立控制連接,20 號端口建立數據連接。
-
FTP 的傳輸有兩種方式:ASCII 傳輸模式和二進制數據傳輸模式。
三、HTTP
HTTP (HyperText Transfer Protocol 超文本傳輸協議) 基於 TCP,使用端口號 80 或 8080。
每當你在瀏覽器裏輸入一個網址或點擊一個鏈接時,瀏覽器就通過 HTTP 協議將網頁信息從服務器提取再顯示出來,這是現在使用頻率最大的應用層協議。
這個原理很簡單:
-
點擊一個鏈接後,瀏覽器向服務器發起 TCP 連接;
-
連接建立後瀏覽器發送 HTTP 請求報文,然後服務器回復響應報文;
-
瀏覽器將收到的響應報文內容顯示在網頁上;
-
報文收發結束,關閉 TCP 連接。
HTTP 報文會被傳輸層封裝為 TCP 報文段,然後再被 IP 層封裝為 IP 數據報。HTTP 報文的結構:
-
(1)開始行:用於區分是請求報文還是響應報文,請求報文中開始行叫做請求行,而響應報文中,開始行叫做狀態行。在開始行的三個字段之間都用空格分開,結尾處 CRLF 表示回車和換行。
-
(2)首部行:用於說明瀏覽器、服務器或報文主體的一些信息。
-
(3)實體主體:請求報文中通常不用實體主體。
請求報文的方法字段是對所請求對象進行的操作,而響應報文的狀態碼是一個 3 位數字,分為 5 類 33 種:
-
1xx 表示通知信息,如收到或正在處理。
-
2xx 表示成功接收。
-
3xx 表示重定向。
-
4xx 表示客戶的差錯,如 404 表示網頁未找到。
-
5xx表示服務器的差錯,如常見的 502 Bad Gateway。
TCP-IP之應用層協議