爲什麼域名根服務器只能有13臺呢?

原文轉自知乎 郭無心 的回答:點擊打開鏈接


要知道爲什麼只有13個根域名服務器,就要了解DNS(Domain Name System,域名系統)的整個原理才行。

DNS是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由域名解析器和域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換爲IP地址功能的服務器。其中域名必須對應一個IP地址,一個域名只能對應一個IP地址(比如訪問一個域名不可能向兩個ip地址請求),而IP地址不一定有域名且可以對應多個域名。域名系統採用類似目錄樹的等級結構。域名服務器爲客戶機/服務器模式中的服務器方,它主要有兩種形式:主服務器和轉發服務器。將域名映射爲IP地址的過程就稱爲“域名解析”。

①DNS是應用層協議,client端(一般指瀏覽器)構建DNS查詢請求,依次被傳輸層,網絡層,數據鏈路層等封裝傳送到達DNS服務器端,最終client端接收到DNS響應消息

②DNS主要基於UDP運輸層協議,這裏解釋下爲什麼使用UDP(User Datagram Protocol)這樣的無連接的,盡最大能力交付的不可靠數據連接,而不是使用TCP(Transmission Control Protocol 傳輸控制協議)這樣的面向連接的可靠數據連接。

一次UDP名字服務器交換可以短到兩個包:一個查詢包、一個響應包。一次TCP交換則至少包含9個包:三次握手初始化TCP會話、一個查詢包、一個響應包以及四次分手的包交換。

考慮到效率原因,TCP連接的開銷大得,故採用UDP作爲DNS的運輸層協議,這也將導致只有13個根域名服務器的結果。


只會在UDP報文中表明有截斷的時候使用TCP查詢。

③爲什麼只有13個根域名服務器?等會再寫

---------------------分割線-------------------------

原因似乎是UDP數據包512字節(爲什麼是512字節又是一個故事)限制了信息量,又因爲要UDP報文中包含所有的根服務器信息(爲什麼?怎麼包含的?)所以只能有13個,但是我查了很多資料,沒有相關敘述。有大神知道求指導




作者:koo who

通常網頁訪問的申請都是由一個數據包完成的,而一個數據包的長度爲256B字節,這就決定了一個數據包只能有13個塊,這從根本上限制了根域名服務器的數量,也就是說根域名服務器只能有13個。

發佈了19 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章