協議森林13 9527 DNS協議

2021-07-24 17:51:37 字數 2014 閱讀 9015

在周星馳的電影《唐伯虎點秋香》中,周星馳飾演的主角一進入華府,就被強制增加了乙個代號9527。從此,華府的人開始稱呼主角為9527,而不是他的姓名。

網域名稱(domain name)是ip位址的代號。網域名稱通常是由字元構成的。對於人類來說,字元構成的網域名稱,比如www.yahoo.com,要比純粹數字構成的ip位址(106.10.170.118)容易記憶。網域名稱解析系統(dns, domain name system)就負責將網域名稱翻譯為對應的ip位址。在dns的幫助下,我們可以在瀏覽器的位址列輸入網域名稱,而不是ip位址。這大大減輕了網際網路使用者的記憶負擔。另一方面,處於維護和運營的原因,一些**可能會變更ip位址。這些**可以更改dns中的對應關係,從而保持網域名稱不變,而ip位址更新。由於大部分使用者記錄的都是網域名稱,這樣就可以降低ip變更帶來的影響。

從機器和技術的角度上來說,網域名稱並不是必須的。但internet是由機器和使用者共同構成的。鑑於dns對使用者的巨大幫助,dns已經被當作tcp/ip套裝不可或缺的乙個組成部分。

網域名稱和ip位址的對應關係儲存在dns伺服器(dns server)中。所謂的dns伺服器,是指在網路中進行網域名稱解析的一些伺服器(計算機)。這些伺服器都有自己的ip位址,並使用dns協議(dns protocol)進行通訊。dns協議主要基於udp,是應用層協議(這也是我們見到的第乙個應用層協議)。

dns伺服器構成乙個分級(hierarchical)的樹狀體系。上圖中,每個節點(node)為乙個dns伺服器,每個節點都有自己的ip位址。樹的頂端為使用者電腦出口處的dns伺服器。在linux下,可以使用cat /etc/resolv.conf,在windows下,可以使用ipconfig /all,來查詢出口dns伺服器。樹的末端是真正的網域名稱/ip對應關係記錄。一次dns查詢就是從樹的頂端節點出發,最終找到相應末端記錄的過程。

中間節點根據網域名稱的構成,將dns查詢引導向下一級的伺服器。比如說乙個網域名稱cs.berkeley.edu,dns解析會將網域名稱分割為cs, berkeley, edu,然後按照相反的順序查詢(edu, berkeley, cs)。出口dns首先根據edu,將查詢指向下一層的edu節點。然後edu節點根據berkeley,將查詢指向下一層的berkeley節點。這台berkeley伺服器上儲存有cs.berkeley.edu的ip位址。所以,中間節點不斷重新定向,並將我們引導到正確的記錄。

在整個dns查詢過程中,無論是重新定向還是最終取得對應關係,都是使用者計算機和dns伺服器使用dns協議通訊。使用者計算機根據dns伺服器的反饋,依次與下一層的dns伺服器建立通訊。使用者計算機經過遞迴查詢,最終和末端節點通訊,並獲得ip位址。

來自wikipedia

使用者計算機的作業系統中的網域名稱解析模組(dns resolver)負責網域名稱解析的相關工作。任何乙個應用程式(郵件,瀏覽器)都可以通過呼叫該模組來進行網域名稱解析。

並不是每次網域名稱解析都要完整的經歷解析過程。dns resolver通常有dns快取(cache),用來記錄最近使用和查詢的網域名稱/ip關係。在進行dns查詢之前,計算機會先查詢cache中是否有相關記錄。這樣,重複使用的網域名稱就不用總要經過整個遞迴查詢過程。

來自wikipedia

上面的dns查詢均為正向dns查詢:已經知道網域名稱,想要查詢對應ip。而反向dns(reverse dns)是已經知道ip的前提下,想要查詢網域名稱。反向dns也是採用分層查詢方式,對於乙個ip位址(比如106.10.170.118),依次查詢in-addr.arpa節點(如果是ipv6,則為ip6.arpa節點),106節點,10節點,170節點,並在該節點獲得106.10.170.118對應的網域名稱。

協議森林13 9527 DNS協議

在周星馳的電影 唐伯虎點秋香 中,周星馳飾演的主角一進入華府,就被強制增加了乙個代號9527。從此,華府的人開始稱呼主角為9527,而不是他的姓名。網域名稱 domain name 是ip位址的代號。網域名稱通常是由字元構成的。對於人類來說,字元構成的網域名稱,比如www.yahoo.com,要比純...

協議森林13 9527 DNS協議

在周星馳的電影 唐伯虎點秋香 中,周星馳飾演的主角一進入華府,就被強制增加了乙個代號9527。從此,華府的人開始稱呼主角為9527,而不是他的姓名。網域名稱 domain name 是ip位址的代號。網域名稱通常是由字元構成的。對於人類來說,字元構成的網域名稱,比如www.yahoo.com,要比純...

協議森林13 9527 DNS協議

在周星馳的電影 唐伯虎點秋香 中,周星馳飾演的主角一進入華府,就被強制增加了乙個代號9527。從此,華府的人開始稱呼主角為9527,而不是他的姓名。網域名稱 domain name 是ip位址的代號。網域名稱通常是由字元構成的。對於人類來說,字元構成的網域名稱,比如www.yahoo.com,要比純...