DNS Message:

Header   消息头部

Question    DNS请求

Answer  回答请求的资源记录(Resource Record(s))

Authority   指向域的资源记录

Additional  其他资源记录

--------------------------------------------------------------

DNS header: 12byte

1  1  1  1  1  1

0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                      ID                       |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|QR|   Opcode  |AA|TC|RD|RA|   Z    |   RCODE   |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                    QDCOUNT                    |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                    ANCOUNT                    |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                    NSCOUNT                    |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                    ARCOUNT                    |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

--------------------------------------------------------------

DNS请求

1  1  1  1  1  1

0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                                               |

/                     QNAME                     /

/                                               /

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                     QTYPE                     |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

|                     QCLASS                    |

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

QNAME   域名被编码为一些labels序列,每个labels包含一个字节表示后续字符串长度,

以及这个字符串,以0长度和空字符串来表示域名结束。

注意这个字段可能为奇数字节,不需要进行边界填充对齐。

QTYPE   2个字节表示查询类型,.取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。

1   A   IPv4地址。

2   NS  名字服务器。

5   CNAME   规范名称。定义主机的正式名字的别名。

6   SOA 开始授权。标记一个区的开始。

11  WKS 熟知服务。定义主机提供的网络服务。

12  PTR 指针。把IP地址转化为域名。

13  HINFO   主机信息。给出主机使用的硬件和操作系统的表述。

15  MX  邮件交换。把邮件改变路由送到邮件服务器。

28  AAAA    IPv6地址。

252 AXFR    传送整个区的请求。

255 ANY 对所有记录的请求。

QCLASS 2个字节表示查询的协议类,比如,IN代表Internet。

--------------------------------------------------------------

DNS响应

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    资源记录包含的域名

TYPE    2个字节表示资源记录的类型,指出RDATA数据的含义

CLASS   2个字节表示RDATA的类

TTL     4字节无符号整数表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。单位:秒

RDLENGTH        2个字节无符号整数表示RDATA的长度

RDATA   不定长字符串来表示记录,格式根TYPE和CLASS有关。

比如,TYPE是A,CLASS 是 IN,那么RDATA就是一个4个字节的ARPA网络地址。

DNS协议的更多相关文章

  1. 利用WireShark进行DNS协议分析

    一.准备工作 系统是Windows 8.1Pro 分析工具是WireShark1.10.8 Stable Version 使用系统Ping命令发送ICMP报文. 二.开始工作 打开CMD.exe键入: ...

  2. DNS协议 实践

    根据DNS协议发送UDP请求,然后获取IP地址 头文件: #ifndef __DNS__ #define __DNS__ #include <stdio.h> #include <s ...

  3. 计算机网络——DNS协议的学习与实现

    1. 主要内容 不说废话,直接进入正题.先说说本文本文的主要内容,好让你决定是否看下去: 介绍DNS是干什么的: 介绍DNS是如何工作的: 介绍DNS请求与响应的消息格式: 编程实现一个简单的DNS服 ...

  4. 网络协议 16 - DNS 协议:网络世界的地址簿

    [前五篇]系列文章传送门: 网络协议 11 - Socket 编程(下):眼见为实耳听为虚 网络协议 12 - HTTP 协议:常用而不简单 网络协议 13 - HTTPS 协议:加密路上无尽头 网络 ...

  5. IP、TCP、DNS协议

    ·······················································IP协议························· 位于网络层,作用是把数据包传送 ...

  6. 简单谈谈DNS协议

    DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议的,关于网络协议的分层介绍,见这 ...

  7. DNS协议工作过程;DNS的安全隐患

    DNS协议工作过程   下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为例,简述DNS协议过程. 主机m.xyz.com先向其本地服务器dns.xyz.com进 ...

  8. DNS协议详解

    DNS协议详解 简介 DNS(Domain Name System)域名系统,主要实现的功能是将域名转换成ip地址的一个服务.它是由一个分层的DNS服务器实现的分布式数据库,同时.他也是一个使得主机能 ...

  9. 应用层协议FTP、DNS协议、HTTP协议分析

    分析所用软件下载:Wireshark-win32-1.10.2.exe 一.阅读导览 1.分析FTP协议 2.分析DNS协议 3. 分析HTTP协议 二.分析要求 (1)ftp部分: 学习 Serv- ...

  10. 结合Wireshark捕获分组深入理解TCP/IP协议栈之DNS协议

    摘要:     本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析. 一.概述 1.1 DNS      ...

随机推荐

  1. OI刷题记录

    从六月一号开始记录啦 6月1日 link-cut-tree BZOJ2631 tree                                     

  2. GX转账站点无法访问的问题

    1.先检查200路由器上的端口<8099,8098> 没有则加上 2.检查站点是否能在200服务器上打开 不能打开,重启站点

  3. IIS7 + mysql + php + wordPress 在win7下部署

    最近在玩WordPress.wiki等开源平台的站点部署.通过一下实践和资料学习,为了以后少走弯路,觉得有必要把这个过程记录下来. 用到的东西: IIS服务: mysql; php; wordpres ...

  4. Qt Write and Read XML File 读写XML文件

    在Qt中,我们有时候需要把一些参数写入xml文件,方便以后可以读入,类似一种存档读档的操作,例如,我们想生成如下的xml文件: <?xml version="1.0" enc ...

  5. php 将查询出的数组数据存入redis

    我们从数据库查询出来的数据一般为数组的形式, 而redis是不支持存入数组的, 一种解决办法是将数组转化为json数据,再将json存入redis,之后取出时再将json转化为php数组. 但将取出的 ...

  6. thinkphp无法加载模块解决办法

    前台入口文件index.php <?php //前台入口 define('THINKPHP_PATH', '../ThinkPHP/');//底层的位置 define('APP_PATH', ' ...

  7. hdu-acm steps 命运

    /*表示刚刚接触dp.这是我接触到的第3道dp题,刚开始以为是要用dfs+dp,后来栈溢出...仔细想想, 其实这道题和数塔差不多,只要每步都得到最优子结构,最后结果一定是最优的.题目的初始化要做好, ...

  8. jquery ui dialog去掉右上角的叉号

    var dialog = $("#id").dialog({ resizable:false, height:, width:, zIndex:, modal:true, open ...

  9. iOS CUICatalog: Invalid asset name supplied: (null)

    iOS开发出现CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000 原因: 你用了这个方 ...

  10. jsp&Sevelet基础详解

    1.用scriptlet标签在jsp中嵌入java代码: (1).<%!...%>可以在里面定义全局变量,方法,类,一般写在<head>内 (2).<%%>定义的是 ...