2017-08-24 47 views
1

閱讀說明DNS郵件是否將名稱填充到偶數個字節?

是的,我知道DNS庫和易於使用的DNS服務器的存在。我這樣做純粹是爲了學術目的,並且瞭解DNS查詢如何工作。

問題

我看着RFC 1035獲得的DNS信息是如何工作的想法。我想我或多或少地理解了這份備忘錄中的所有內容。然而,有一件事我不能自主解釋。如果你看一下第4.1.3節,這裏的資源記錄格式是如何描述:

        1 1 1 1 1 1 
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |            | 
/           /
/     NAME     /
    |            | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      TYPE      | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      CLASS      | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |      TTL      | 
    |            | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 
    |     RDLENGTH     | 
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| 
/     RDATA     /
/           /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 

在這個方案中,NAME在兩字節塊的末尾。這是否意味着它的字節長度應該總是2的倍數? RFC中的名稱格式在前面描述爲一系列標籤,以零長度標籤結尾。這意味着,根據名稱的不同,其長度可以任意變爲偶數或奇數。那麼NAME需要填充偶數個字節?如果是這樣,我應該怎麼打?

我會忽略該問題,並假定不需要填充,如果它不是在4.1.1節它指定QNAME不需要填充。由於他們沒有在回答RR中指定NAME,所以我想知道是否應該假設有一些差異。

回答

1

沒有填充。如果您有疑問,從根服務器捕獲有關根區域的查詢(其名稱是單個NULL八位字節,所以奇數長度)(可以信任它們以使協議正確,因爲它在現實世界中使用)並看看它。

+0

謝謝!這就是我所希望的! :) –