我一直在尋找Wireshark中的DNS響應數據包,並且無法理解答案和權威部分的十六進制編碼。DNS響應答案和權威部分
考慮DNS查詢:mail.abcd.com
答案部分包含名稱字段,併爲這個十六進制編碼的不同而不同:
0xc00c
0xc012
他們都導致整個名稱爲在外地居住。
權威部分還包含名稱字段,但十六進制編碼,這通常是:
0xc010
這導致abcd.com被填充在外地。
任何人都可以告訴填充這些字段的慣例是什麼,因爲它很混亂。
感謝
我一直在尋找Wireshark中的DNS響應數據包,並且無法理解答案和權威部分的十六進制編碼。DNS響應答案和權威部分
考慮DNS查詢:mail.abcd.com
答案部分包含名稱字段,併爲這個十六進制編碼的不同而不同:
0xc00c
0xc012
他們都導致整個名稱爲在外地居住。
權威部分還包含名稱字段,但十六進制編碼,這通常是:
0xc010
這導致abcd.com被填充在外地。
任何人都可以告訴填充這些字段的慣例是什麼,因爲它很混亂。
感謝
DNS標籤使用格式<length><data ...>
。
一個標籤最多可以有63個字節長,因此<length>
字段有兩位剩餘。這些用於編碼標籤類型。
如果開頭兩個比特是0b11
然後其餘六個比特,而不是用下面的字節形式的壓縮指針這是DNS有效載荷內的偏移量到另一個標籤的現有實例合併。
由於DNS協議標頭長度爲12個字節,所以最短合法偏移量爲12個字節,給出您在上面看到的值0xc00c
。我們可以構造一個指向頭部的壓縮指針,但它並不嚴格符合協議。] []
我強烈建議針對試圖從wire數據包反向設計規範 - 您將不可避免地錯過東西。只需要閱讀RFC 1035 - 所有核心內容都在那裏。
說明書中的閱讀上name compression。 0xc,0x12和0x10是指向包中名稱「mail.abcd.com」和「abcd.com」的較早副本的指針。
希望有用:http://www.zoneedit.com/doc/rfc/ – sarnold 2012-03-25 23:51:24