2017-07-30 193 views
-1

我目前正在寫一個軟件解析在那裏我想對DNS查詢解析到端口53TCP數據包:這些額外字節的含義是什麼?

這裏是我的問題的數據包的TCP數據包:

00000 c6 f8 03 54 44 2d d0 7e 35 b0 60 7b 08 00 45 00 ...TD-.~5.`{..E. 
00010 00 4f 3a ea 40 00 80 06 ee 8f c0 a8 00 77 08 08 .O:[email protected] 
00020 08 08 f5 02 00 35 c9 8b a5 db 63 ee fd 0b 50 18 .....5....c...P. 
       %         ^
00030 00 40 77 53 00 00 00 25 34 b6 01 00 00 01 00 00 [email protected]%4....... 
          ** ** 
00040 00 00 00 00 03 77 61 6e 04 71 6c 74 79 07 66 69 .....wan.qlty.fi 
00050 6e 61 72 65 61 02 63 68 00 00 10 00 01    narea.ch..... 

我遇到的問題是TCP報頭和DNS查詢之間有2個額外的字節。額外的字節由**標記,我也強調通過^ TCP報頭的大小,並通過TCP報頭的開始%

有誰知道哪裏這些字節的來源以及他們有什麼意義的想法?

在此先感謝您的幫助。

親切的問候

+0

請參閱RFC 793.「我的TCP開始」沒有意義。 – EJP

+0

我認爲'%'處TCP數據包的開始有很多意義。如果你看看IP頭,目的地址是8.8.8.8這是一個谷歌的DNS服務器。所以擁有目標端口0x0035(53)對於DNS查詢有很大的意義。 順便說一句,我只是注意到,我在談論一個DNS答案,而這實際上是一個DNS查詢 –

+0

它*會*有一定意義,如果這就是你說的,但事實並非如此。這不是我所說的話。 – EJP

回答

1

我實際上是自己找到的。我正在記錄這一點,以便任何可能有同樣問題的人都知道。

那些額外的字節不是TCP報頭的一部分,但實際上是TCP有效負載的一部分,這是DNS。

根據定義DNS的RFC1035,規定TCP封裝的DNS數據包必須以2字節爲前綴,表示DNS有效負載的大小。

相關問題