該報文由12位元組的首部和4個長度可變的欄位組成。標識欄位由客戶程式設定並有伺服器返回結果。16bit的標誌欄位 如下:
QR:0表示查詢報文,1表示響應報文
Opcode:通常值為0(標準查詢),其他值為1(反向查詢)和2(伺服器狀態請求)。
AA:表示授權回答(authoritative answer).
TC:表示可截斷的(truncated)
RD:表示期望遞迴
RA:表示可用遞迴
隨後3bit必須為0
Rcode:返回碼,通常為0(沒有差錯)和3(名字差錯)
後面4個16bit欄位說明最後4個變長欄位中包含的條目數。
問題部分:
報文格式:
查詢名為要尋找的名字,它由一個或者多個標示符序列組成。每個標示符已首位元組數的計數值來說明該標示符長度,每個名字以0結束。計數位元組數必須是0~63之間。該欄位無需填充位元組。如:gemini.tuc.noao.edu
每個問題有一個查詢類型,通常查詢類型為A(由名字獲得IP地址)或者PTR(獲得IP地址對應的網域名稱)
資源記錄部分:
報文格式:
DNS最後3個欄位,回答欄位,授權欄位和附加資訊欄位均採用資源記錄RR(ResourceRecord)的相同格式。
網域名稱是記錄中資源資料對應的名字。它的格式和查詢名欄位格式相同。
類型說明RR的類型碼。類通常為1,指I n t e r n e t資料。
存留時間欄位是客戶程式保留該資源記錄的秒數。
資源資料長度說明資源資料的數量。該資料的格式依賴於類型欄位的值。對於類型1(A記錄)資源資料是4位元組的I P地址。
資料包DNS 查詢:(DNS query)
0000 00 19 56 6e19 bf 00 17 a4 1ab2 e0 08 00 45 00 ..Vn.... ......E.
0010 00 3b ed c600 00 80 11 e3 c3 ac 15 0f 04 ac15 .;...... ........
0020 01 f9 04 a9 00 35 00 27 2f bd 3e 3a01 00 00 01 .....5.' /.>:....
0030 00 00 0000 00 00 03 77 77 77 06 67 6f6f 67 6c .......w ww.googl
0040 65 02 636e 00 00 01 00 01 e.cn.... .
說明:
前面三段分別為乙太網路包頭,ip包頭和UDP包頭。
從0020行後面開始為DNS資料包.
3e 3a 為識別欄位
01 00為標誌欄位,該欄位設定了TC表示該報文是可截斷的。
00 01 查詢報文數量為1。
00 00 00 00 00 00表示回答,授權和額外資訊都為0。
03 77 77 77 0667 6f 6f 67 6c65 02 63 6e 00 表示查詢的名字為
www.google.com
00 01為類型,1表示A查詢
00 01為類,1表示Internet資料。
資料包 DNS response (DNSresponse)
0000 00 17 a4 1a b2 e0 00 19 56 6e 19 bf 08 00 45 00........ Vn....E.
0010 00 78 48 af00 00 7d 11 8b 9e ac 15 01 f9 ac 15 .xH...}. ........
0020 0f 04 00 35 04 a9 00 64 75 db 3e 3a 81 80 00 01 ...5...d u.>:....
0030 00 03 0000 00 00 03 77 77 77 06 67 6f6f 67 6c .......w ww.googl
0040 65 02 636e 00 00 01 00 01 c00c 00 05 00 01 00e.cn.... ........
0050 00 05 4200 11 02 63 6e 01 6c06 67 6f 6f 67 6c..B...cn .l.googl
0060 65 03 63 6f 6d 00 c0 2b 00 01 00 01 00 00 00 5f e.com..+ ......._
0070 00 04 cbd0 21 65 c0 2b 0001 00 01 00 00 00 5f....!e.+ ......._
0080 00 04 cbd0 21 64 ....!d
說明:
前面三段分別為乙太網路包頭,ip包頭和UDP包頭。
3e 3a 為識別欄位
81 80 為標誌欄位,其中設定了QR = 1,RD = 1,RA = 1
00 01 問題數1,0003 回答數3,其餘兩個為0。
03 77 77 77 0667 6f 6f 67 6c65 02 63 6e 00 表示查詢的名字為
www.google.com
00 01為類型,1表示A查詢
00 01為類,1表示Internet資料。
接下來為回答報文,
c0 0c 為網域名稱指標
00 05 表示CNAME(正式名稱)
00 01 類,表示為Internet資料
00 00 05 42 存留時間
00 11 資料長度
02 63 6e 01 6c 06 67 6f 6f67 6c 65 03 63 6f 6d 00 為資料cn.l.google.cn
然後接下來兩段為另外兩個回答。
最後的資料為IP地址