dns報文網域名稱壓縮

2021-08-03 17:36:17 字數 902 閱讀 2527

1

.不壓縮的

dns 

網域名稱示例

示例一 3

www6

google

3com\0

示例二2ns9

xinnetdns

3com

\0以上數字(綠色背景框)表示計數,占用乙個位元組(它的值表示隨後的識別符號位元組數),接著是識別符號,大小為1

~63個位元組,最後以字元 『\0』 結尾。

對於mx請求返回的網域名稱,前面2個位元組用來標記郵件伺服器的preference(優先順序),並且對於壓縮的格式也一 樣。

示例三50(preference,2位元組)

5tommx

3163

3net\02

.壓縮的

dns網域名稱示例

dns返回的報文可能包括多個重複的網域名稱,因此使用壓縮方式。

壓縮方法很簡單,當乙個網域名稱中的識別符號是壓縮的,它的「

計數」位元組中的最高兩位將被設定為11。

這表示它是乙個

16 bit

指標而不再是

8 bit

的計數位元組。指標中的剩下

14 bit

表示該識別符號在

d n s報

文中所在的位置偏移(相對於

dns報文頭)。注意乙個指標可能指向乙個完整的網域名稱,也可能只指向

網域名稱的結尾部分,並且乙個網域名稱也可以前半部分不壓縮,僅對後半部分才應用指標壓縮。此外巢狀壓縮

也是存在的,即指標指向的網域名稱也可能是壓縮的(包含乙個指標)。

另外有兩點需要注意:

(1)乙個網域名稱僅能包含乙個指標,要麼只有兩個位元組就只包含乙個指標,要麼只在結尾部分跟隨乙個指標。

(2)包含指標的網域名稱無須以字元

『\0』 

結尾。

原文連線如下:

DNS報文格式

dns報文格式 借個圖貼過來 說明一下 並不是所有dns報文都有以上各個部分的。圖中標示的 12位元組 為dns首部,這部分肯定都會有,首部下面的是正文部分,其中查詢問題部分也都會有。除此之外,回答 授權和額外資訊部分是只出現在dns應答報文中的,而這三部分又都採用資源記錄 recource rec...

DNS報文格式

dns協議執行在應用層,tcp ip需要使用ip位址,不能使用網域名稱,因此應用層需要將網域名稱轉換成ip位址。dns使用tcp或者udp,一般使用udp,port都是53.dns協議存在諸多rfc文件,每個rfc文件介紹其乙個側面,比如rfc 1035介紹的是網域名稱的實現和規範,rfc 1886...

DNS網域名稱系統

前言 學過計算機網路的我們知道,整個 internet 網路就是乙個單一的 抽象的網路,各個主機通過全世界範圍內唯一的 32位識別符號 ip 位址來標識唯一性,很顯然,在網際網路中它們只能通過 ipip ip202.108.22.5 然而,當我們想要訪問的 變多,我們就不得不記住一串又一串長達 32...