DNS完整报文分析

用wireshark抓到DNS的报文,复制如下:


0000   00 00 0c 07 ac 0d 44 39 c4 38 9c 3d 08 00 4 5 00        ......D9.8.=..E.
0010   00 39 0f  c9 00 00 40 11 02 68 0b 80 b2 33 0b 80         [email protected]..
0020   a1 50 e2 bb 00 35 00 25 39 4d 38 6701 00 00 01       .P...5.%9M8g....
0030   00 00 00 0000 00 01 69 05 62 61 69 64 75 03 63       .......i.baidu.c
0040    6f  6d 00 00 01 00 01                                                          om.....


现开始分析

先来一张图了解以太网数据帧从数据进入协议栈的封包过程:

DNS完整报文分析_第1张图片

以太网首部结构:

对应数据

目MAC:00 00 0c 07 ac 0d

源MAC:44 39 c4 38 9c 3d

类型:08 00  (表示是IP类型)


下面到IP报文部分:

DNS完整报文分析_第2张图片

版本:4

首部长度:5

服务类型:00

总长度:00 39

16位标识:0f c9

3位标志 + 13位偏移:00 00

TTL生存时间:40

8位协议:11 (既是UDP协议)

16首部检验和:02 68

源IP:0b 80 b2 33 (即11.128.178.51)

目的IP:0b 80 a1 50(即11.128.161.80)


接下来到UDP协议:

源端口号:e2 bb (即58063)

目的端口:00 35  (即53端口)

封包长度:00 25 (长度为37)

校验和:39 4d


接下来到DNS部分了:

DNS完整报文分析_第3张图片

标识:38 67

标志:01 00

问题数;00 01 (1个)

资源记录数:00 00

授权资源记录数;00 00

额外资源记录数:00 00

这一共就是12个字节了


接下来就是查询问题:
01 69 05 62 61 69 64 75 03 63 6f 6d 这些对应字符串:
01 i  05  b a  i  d  u  03  c  o  m
即 i.baidu.com这个网址了,这是打开百度是发送的DNS请求了。

后面几个ASCII码


00:应该表示结束
00 01:表示查询
00 01:表示Internet数据

到此报文分析结束

*****************分界线***************

接着用omnipeek抓DNS包,更清晰如下图:

DNS完整报文分析_第4张图片

DNS完整报文分析_第5张图片


你可能感兴趣的:(应用开发)