解密網路通訊的關鍵技術(上):DNS、ARP、DHCP和NAT,你瞭解多少?

努力的小雨發表於2023-09-30

IP 協議相關技術

在與 IP 協議相關的技術中,有一些重要且常見的技術,其中包括 DNS 域名解析、ARP 協議、DHCP 動態獲取 IP 地址以及NAT 網路地址轉換。這些技術在網路通訊中起著關鍵的作用。

首先,DNS 域名解析是將人類可讀的域名轉換為 IP 地址的過程。當我們在瀏覽器中輸入一個網址時,瀏覽器會向 DNS 伺服器傳送查詢請求,以獲取與該域名對應的 IP 地址。這個過程涉及到域名伺服器的層級查詢和快取,以實現高效的域名解析。

其次,ARP(地址解析協議)是在區域網中解析 IP 地址與 MAC 地址之間對應關係的協議。當一臺主機需要與另一臺主機通訊時,它會傳送一個 ARP 請求廣播,其中包含了想要知道的目標主機的 IP 地址。同一區域網中的其他裝置會解析該 ARP 請求包,如果目標 IP 地址與自身 IP 地址一致,就會將自己的 MAC 地址新增到 ARP 響應包中,返回給傳送方。作業系統通常會將第一次獲取的 MAC 地址快取起來,以便下次直接從快取中找到對應 IP 地址的 MAC 地址,提高通訊效率。

DNS

我們在上網時通常使用域名而不是IP地址,因為域名更容易記憶。這種技術的實現是透過DNS域名解析,DNS可以將域名自動轉換為具體的IP地址。

在DNS中,域名使用句點進行分隔,例如www.server.com, 句點表示不同層次之間的界限。在域名中,靠右的位置表示層級越高。

由於域名是由外國人發明的,所以思維方式與中國人不同。例如,在表示一個城市地點時,外國人喜歡按從小到大的順序(例如XX街道 XX區 XX市 XX省),而中國人喜歡按從大到小的順序(例如XX省 XX市 XX區 XX街道)。根域位於最頂層,下一層是頂級域com,再下面是server.com。

因此,域名的層級關係類似於樹狀結構:

  • 根DNS伺服器
  • 頂級域DNS伺服器(com)
  • 權威DNS伺服器(server.com)

image

在網際網路中,根域的 DNS 伺服器資訊被廣泛儲存在所有 DNS 伺服器中,這樣任何一個 DNS 伺服器都能夠輕鬆地找到並訪問根域 DNS 伺服器。客戶端只需連線到任意一臺可用的 DNS 伺服器,就能夠透過這臺伺服器找到根域 DNS 伺服器,並透過一系列的查詢和響應,逐步找到位於下層的目標 DNS 伺服器。這種分層的 DNS 伺服器體系極大地提高了域名解析的效率和可靠性。

域名解析的工作流程可以描述如下:

首先,瀏覽器會檢查自己的快取中是否存有所請求域名的IP地址,如果存在則直接使用。如果快取中沒有,則瀏覽器會向作業系統的快取請求,如果作業系統的快取中存在,則返回給瀏覽器。如果作業系統的快取中也沒有,則瀏覽器會檢查本機的域名解析檔案 hosts,如果 hosts 檔案中有對應的域名和IP對映關係,則返回給瀏覽器。

如果以上步驟都沒有返回結果,瀏覽器會透過網路傳送DNS請求到本地DNS伺服器(也就是在TCP/IP設定中配置的DNS伺服器地址)。

  1. 客戶端傳送DNS請求到本地DNS伺服器,詢問所需域名的IP地址,例如www.server.com。
  2. 本地DNS伺服器接收到客戶端的請求後,先在自己的快取中查詢是否存在對應的IP地址記錄,如果有,則直接返回給客戶端。
  3. 如果本地DNS伺服器的快取中沒有所需的IP地址記錄,它會向根域名伺服器傳送請求,詢問該域名的頂級域名伺服器的地址,例如.com頂級域名伺服器的地址。
  4. 根域名伺服器收到本地DNS伺服器的請求後,發現該域名屬於.com頂級域名,返回給本地DNS伺服器.com頂級域名伺服器的地址。
  5. 本地DNS伺服器收到.com頂級域名伺服器的地址後,向該頂級域名伺服器傳送請求,詢問所需域名的權威DNS伺服器的地址,即負責解析該域名的權威DNS伺服器地址。
  6. 頂級域名伺服器返回給本地DNS伺服器所需域名的權威DNS伺服器的地址。
  7. 本地DNS伺服器向權威DNS伺服器傳送請求,詢問所需域名的IP地址。
  8. 權威DNS伺服器查詢自己的記錄,並將所需域名對應的IP地址返回給本地DNS伺服器。
  9. 本地DNS伺服器將IP地址返回給客戶端。客戶端使用獲取到的IP地址與目標伺服器建立連線。

至此,經過詳細的解析過程,我們成功完成了 DNS 的解析過程。現在,讓我來對整個過程進行總結,並將其以圖示的方式呈現出來。

image

DNS(Domain Name System)域名解析的過程非常有趣,它與我們在日常生活中詢問路線的過程非常相似,它只是為我們指引方向,而不是親自帶路。

需要注意的是,當我們申請域名時,並沒有帶上"www"字首。這個字首是在域名服務商的後臺進行配置的。如果你不進行配置,域名是不會指向你自己的伺服器的。此外,你還可以配置多種不同的字首,以訪問不同的服務。並不是更改字首就需要再次申請一個新的域名。一旦在域名平臺購買了域名,通常需要自行進行配置,具體步驟如下:

image

ARP

在傳輸一個 IP 資料包的時候,一旦源 IP 地址和目標 IP 地址確定,主機會透過查詢「路由表」來確定 IP 資料包的下一跳。然而,網路層的下一層是資料鏈路層,因此我們還需要知道下一跳的 MAC 地址。主機的路由表中可以找到下一跳的 IP 地址,因此我們可以利用 ARP 協議來獲取下一跳的 MAC 地址。

那麼,ARP 是如何獲取對方的 MAC 地址呢?

簡言之,ARP 使用 ARP 請求和 ARP 響應這兩種型別的資料包來獲取對方的 MAC 地址。

image

在網路中,當主機需要與其他裝置通訊時,它會傳送一個ARP請求。這個請求包含了主機想要知道的目標裝置的MAC地址和對應的IP地址。當同一鏈路上的裝置收到ARP請求後,會檢查請求包中的目標IP地址是否與自己的IP地址匹配。如果匹配,該裝置將自己的MAC地址放入ARP響應包中返回給主機。

為了提高效率,作業系統通常會將第一次獲取到的MAC地址快取起來,以便下次直接從快取中獲取對應IP地址的MAC地址。這樣就不需要再傳送ARP請求來獲取MAC地址,從而節省了網路資源和時間。

總結

在與IP協議相關的技術中,存在一些非常重要且常見的技術。在本章節中,我們將主要討論DNS域名解析以及ARP協議,這些技術在網路通訊中扮演著關鍵的角色。

首先,DNS域名解析是將人類可讀的域名轉換為IP地址的過程。它採用了分層的域名伺服器體系,以實現高效的域名解析。

其次,ARP(地址解析協議)用於在區域網中解析IP地址與MAC地址之間的對應關係,以獲取下一跳的MAC地址。

在接下來的章節中,我們將詳細講解DHCP動態獲取IP地址以及NAT網路地址轉換技術。這些技術對於網路通訊的順利進行也具有重要的意義。

相關文章