為什麼全球只有13DNS根伺服器?

2021-09-02 23:38:01 字數 2004 閱讀 5373

在談論這個問題之前,我想先說一點,13臺根伺服器並不是物理上的13臺,而是邏輯上的13臺,這也就是說,每一台邏輯上的根伺服器由多台物理上的根伺服器構成;

那為何我們在邏輯上只有13臺呢?

關於這個問題,我在網上查詢了許久,終於找到一篇很好的文章:

大概意思是這樣:

由於所有根伺服器的資訊都要包含在乙個dns報文裡面,所以dns報文的大小限制了根伺服器的數量;

在最初設計的時候,dns報文總大小為512位元組,這512位元組的結構如下:

;; question section:                

;. in ns                             

;; answer section:                 

.518400 in ns a.root-servers.net.          

.518400 in ns b.root-servers.net.            

;; additional section:             

a.root-servers.net. 3600000 in a 198.41.0.4     

b.root-servers.net. 3600000 in a 192.228.79.201

或者看下面這張圖:

第乙個12位元組是固定的頭部資訊

question section(查詢問題部分)

root-label: 00, 1 byte;

class, 2 bytes and;

the qtype: 2 bytes.

總共5個位元組

answer section(回答部分)

root-label: 1 byte;

ttl: 4 bytes;

class: 2 bytes;

type: 2 bytes;

rdlength: 2 bytes

nameserver name: <1>a<12>root-servers<3>net<0>: 20 bytes.

總共31個位元組;

之後的其他記錄部分結構和answer section部分一樣,即:

root-label: 1 byte;

ttl: 4 bytes;

class: 2 bytes;

type: 2 bytes;

rdlength: 2 bytes

nameserver name:<1>20bytes.

但是其他記錄部分可以dns壓縮,將<1>壓縮成4個位元組,所以其他記錄部分一共為15位元組;

additional section

nameserver name: <1>a<12>root-servers<3>net<0>: 20 bytes;

ttl: 4 bytes;

class: 2 bytes;

type: 2 bytes;

rdlength: 2 bytes;

address: 4 bytes.

但是name欄位可以壓縮成2bytes,所以這部分總共佔16位元組

所以總的位元組為:12+5+31+16n+15m(n一般等於m)=48+31n=512位元組

所以解得n≈14.968;

所以我們的根伺服器實際上是可以部署14甚至15臺的,部署13臺只是為了留點位置給後面可能會有的新伺服器;

輕知 為什麼全球只有13組根網域名稱伺服器?

本文由9527發表 根網域名稱伺服器是網域名稱解析系統 dns 中最為頂級的網域名稱伺服器,它們負責管理頂級域的權威網域名稱伺服器位址。作為網際網路基礎設施的重要部分,所有網域名稱的解析操作均離不開它們。下面我們將從 dns 協議實現的角度分析為什麼全球只有13組根網域名稱伺服器。13組根網域名稱伺...

只有13臺DNS根網域名稱伺服器原因

前面我們說dns是將主機名對應到ip,那麼這些東西關係 表 應該如何儲存呢?首先集中式儲存的問題 容易訪問失敗 流量距離,要在 建設伺服器 維護問題 所以有了現在的層次架構 根名稱伺服器 負責引導查詢獲取頂級網域名稱稱伺服器的網域名稱及對應的頂級域伺服器的ip位址。根基伺服器的分布 截至2014年1...

根網域名稱伺服器全球只有13臺?我們來看看

前陣子複習計網在網上衝浪,看到有人說了這樣的情況 全球的根網域名稱伺服器只有13臺?我第一反應,不是吧?全球使用者一起用13臺,這聽起來非常扯淡啊。而且,這似乎跟我計算機網路課程上學到的知識不太符合。所以立馬查閱了資料,發現這樣的事實 13指的是所有根網域名稱伺服器的名稱一共13個,不是台數!這意味...