圖解 TCP/IP(五)應用層

一、DNS 域名系統

DNS 可以將網址字符串自動轉換爲具體的 IP 地址,維護一個用來表示組織內部主機名(域名)和 IP 地址之間對應關係的數據庫。

域名是指爲了識別主機名稱和組織機構名稱的一種名稱,具有層次結構,從上到下依次爲:根域名、頂級域名、二級域名。

DNS 是一個分佈式數據庫,這裏的分佈式數據庫是指,每個站點只保留它自己的那部分數據。

DNS 可以使用 UDP 或者 TCP 進行傳輸,使用的端口號都爲 53。大多數情況下 DNS 使用 UDP 進行傳輸,這就要求域名解析器(進行 DNS 查詢的主機和軟件)和域名服務器(管理域名的主機和軟件)都必須自己處理超時和重傳來保證可靠性。

在兩種情況下會使用 TCP 進行傳輸:

  • 如果返回的響應超過 512 字節(UDP 最大隻支持 512 字節的數據)。
  • 區域傳送(區域傳送是主域名服務器向輔助域名服務器傳送變化的那部分數據)。

二、FTP 文件傳送協議

FTP 使用 TCP 進行連接,它需要兩個連接來傳送一個文件:

  • 控制連接:服務器打開端口號 21 等待客戶端的連接,客戶端主動建立連接後,使用這個連接將客戶端的命令傳送給服務器,並傳回服務器的應答。
  • 數據連接:用來傳送一個文件數據。

根據數據連接是否是服務器端主動建立,FTP 有主動和被動兩種模式:

  • 主動模式:服務器端主動建立數據連接,其中服務器端的端口號爲 20,客戶端的端口號隨機,但是必須大於 1024,因爲 0~1023 是熟知端口號。

 

  • 被動模式:客戶端主動建立數據連接,其中客戶端的端口號由客戶端自己指定,服務器端的端口號隨機。

 

主動模式要求客戶端開放端口號給服務器端,需要去配置客戶端的防火牆。被動模式只需要服務器端開放端口號即可,無需客戶端配置防火牆。但是被動模式會導致服務器端的安全性減弱,因爲開放了過多的端口號。

三、DHCP 動態主機配置協議

DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的連網方式,用戶不再需要去手動配置 IP 地址等信息。

DHCP 配置的內容不僅是 IP 地址,還包括子網掩碼、網關 IP 地址

DHCP 工作過程如下:

  1. 客戶端發送 Discover 報文,該報文的目的地址爲 255.255.255.255:67,源地址爲 0.0.0.0:68,被放入 UDP 中,該報文被廣播到同一個子網的所有主機上。如果客戶端和 DHCP 服務器不在同一個子網,就需要使用中繼代理。
  2. DHCP 服務器收到 Discover 報文之後,發送 Offer 報文給客戶端,該報文包含了客戶端所需要的信息。因爲客戶端可能收到多個 DHCP 服務器提供的信息,因此客戶端需要進行選擇
  3. 如果客戶端選擇了某個 DHCP 服務器提供的信息,那麼就發送 Request 報文給該 DHCP 服務器。
  4. DHCP 服務器發送 Ack 報文,表示客戶端此時可以使用提供給它的信息。

 

遠程登錄協議

1.TELNET 利用 TCP 的一條連接,通過它向主機發送文字命令並在主機上執行,並且遠程主機上的輸出也會返回。

常用於登錄路由器或高性能交換機等網絡設備進行相應的設置。

TELNET 可以適應許多計算機和操作系統的差異,例如不同操作系統系統的換行符定義。

2.SSH 加密的遠程登錄系統,即使信息被竊聽也無法破解所發送的密碼、具體命令以及命令返回的結果是什麼。

電子郵件協議

一個電子郵件系統由三部分組成:用戶代理、郵件服務器以及郵件協議

郵件協議包含發送協議和讀取協議,發送協議常用 SMTP,讀取協議常用 POP3 和 IMAP。

1. SMTP

SMTP 在傳輸層使用了 TCP 協議。

SMTP 只能發送 ASCII 碼,而互聯網郵件擴充 MIME 可以發送二進制文件。MIME 並沒有改動或者取代 SMTP,而是增加郵件主體的結構,定義了非 ASCII 碼的編碼規則。

2. POP3

POP3 的特點是隻要用戶從服務器上讀取了郵件,就把該郵件刪除。

3. IMAP

IMAP 協議中客戶端和服務器上的郵件保持同步,如果不手動刪除郵件,那麼服務器上的郵件也不會被刪除。IMAP 這種做法可以讓用戶隨時隨地去訪問服務器上的郵件。

常用端口

應用 應用層協議 端口號 傳輸層協議 備註
域名解析 DNS 53 UDP/TCP 長度超過 512 字節時使用 TCP
動態主機配置協議 DHCP 67/68 UDP  
簡單網絡管理協議 SNMP 161/162 UDP  
文件傳送協議 FTP 20/21 TCP 控制連接 21,數據連接 20
遠程終端協議 TELNET 23 TCP  
超文本傳送協議 HTTP 80 TCP  
簡單郵件傳送協議 SMTP 25 TCP  
郵件讀取協議 POP3 110 TCP  
網際報文存取協議 IMAP 143 TCP  

Web 頁面請求過程

1. DHCP 配置主機信息

  • 假設主機最開始沒有 IP 地址以及其它信息,那麼就需要先使用 DHCP 來獲取。

  • 主機生成一個 DHCP 請求報文,並將這個報文放入具有目的端口 67 和源端口 68 的 UDP 報文段中。

  • 該報文段則被放入在一個具有廣播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 數據報中。

  • 該數據報則被放置在 MAC 幀中,該幀具有目的地址 FF:FF:FF:FF:FF:FF,將廣播到與交換機連接的所有設備。

  • 連接在交換機的 DHCP 服務器收到廣播幀之後,不斷地向上分解得到 IP 數據報、UDP 報文段、DHCP 請求報文,之後生成 DHCP ACK 報文,該報文包含以下信息:IP 地址、DNS 服務器的 IP 地址、默認網關路由器的 IP 地址和子網掩碼。該報文被放入 UDP 報文段中,UDP 報文段有被放入 IP 數據報中,最後放入 MAC 幀中。

  • 該幀的目的地址是請求主機的 MAC 地址,因爲交換機具有自學習能力,之前主機發送了廣播幀之後就記錄了 MAC 地址到其轉發接口的交換表項,因此現在交換機就可以直接知道應該向哪個接口發送該幀。

  • 主機收到該幀後,不斷分解得到 DHCP 報文。之後就配置它的 IP 地址、子網掩碼和 DNS 服務器的 IP 地址,並在其 IP 轉發表中安裝默認網關。

2. ARP 解析 MAC 地址

  • 主機通過瀏覽器生成一個 TCP 套接字,套接字向 HTTP 服務器發送 HTTP 請求。爲了生成該套接字,主機需要知道網站的域名對應的 IP 地址。

  • 主機生成一個 DNS 查詢報文,該報文具有 53 號端口,因爲 DNS 服務器的端口號是 53。

  • 該 DNS 查詢報文被放入目的地址爲 DNS 服務器 IP 地址的 IP 數據報中。

  • 該 IP 數據報被放入一個以太網幀中,該幀將發送到網關路由器。

  • DHCP 過程只知道網關路由器的 IP 地址,爲了獲取網關路由器的 MAC 地址,需要使用 ARP 協議。

  • 主機生成一個包含目的地址爲網關路由器 IP 地址的 ARP 查詢報文,將該 ARP 查詢報文放入一個具有廣播目的地址(FF:FF:FF:FF:FF:FF)的以太網幀中,並向交換機發送該以太網幀,交換機將該幀轉發給所有的連接設備,包括網關路由器。

  • 網關路由器接收到該幀後,不斷向上分解得到 ARP 報文,發現其中的 IP 地址與其接口的 IP 地址匹配,因此就發送一個 ARP 回答報文,包含了它的 MAC 地址,發回給主機。

3. DNS 解析域名

  • 知道了網關路由器的 MAC 地址之後,就可以繼續 DNS 的解析過程了。

  • 網關路由器接收到包含 DNS 查詢報文的以太網幀後,抽取出 IP 數據報,並根據轉發表決定該 IP 數據報應該轉發的路由器。

  • 因爲路由器具有內部網關協議(RIP、OSPF)和外部網關協議(BGP)這兩種路由選擇協議,因此路由表中已經配置了網關路由器到達 DNS 服務器的路由表項。

  • 到達 DNS 服務器之後,DNS 服務器抽取出 DNS 查詢報文,並在 DNS 數據庫中查找待解析的域名。

  • 找到 DNS 記錄之後,發送 DNS 回答報文,將該回答報文放入 UDP 報文段中,然後放入 IP 數據報中,通過路由器反向轉發回網關路由器,並經過以太網交換機到達主機。

4. HTTP 請求頁面

  • 有了 HTTP 服務器的 IP 地址之後,主機就能夠生成 TCP 套接字,該套接字將用於向 Web 服務器發送 HTTP GET 報文。

  • 在生成 TCP 套接字之前,必須先與 HTTP 服務器進行三次握手來建立連接。生成一個具有目的端口 80 的 TCP SYN 報文段,並向 HTTP 服務器發送該報文段。

  • HTTP 服務器收到該報文段之後,生成 TCP SYN ACK 報文段,發回給主機。

  • 連接建立之後,瀏覽器生成 HTTP GET 報文,並交付給 HTTP 服務器。

  • HTTP 服務器從 TCP 套接字讀取 HTTP GET 報文,生成一個 HTTP 響應報文,將 Web 頁面內容放入報文主體中,發回給主機。

  • 瀏覽器收到 HTTP 響應報文後,抽取出 Web 頁面內容,之後進行渲染,顯示 Web 頁面。

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