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. [Leetcode] Next Permutation

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  2. jquery实现隐藏,简化和更多

    HTML代码: <div class="box"> <div class="header"> <h3>图书分类</h3 ...

  3. webstorm常用快捷键(常用)

    ctrl+/ 注释 ctrl+shift+/ 注释一块的代码 ctrl+shift+z 返回撤撤销前的操作 ctrl+shift+up/down 代码向上/向下移动 ctrl+b或ctrl+鼠标左键单 ...

  4. 简单打包 ipa 方式!

    应用的发布也分两种 一种是.打包成ipa上传到国内第3方软件市场,当用户的手机已经JailBreak时,双击下载的ipa文件就可以安装软件 (ipa同android的apk包一样,实质是一个压缩包) ...

  5. OSG中的示例程序简介

    OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示 ...

  6. JAVA泛型? T K V E等代表的意思

    ? 表示不确定的java类型. T  表示java类型. K V 分别代表java键值中的Key Value. E 代表Element. Object跟这些东西代表的java类型有啥区别呢? Obje ...

  7. Eclipse安装nodeclipse插件

    1. Start Eclipse, then select Help > Install New Software... 2. Enter the update site URL into th ...

  8. [LintCode] Decode Ways 解码方法

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  9. 提交form表单不刷新页面案列

    提交form表单不刷新页面其实很简单的,这里拿上传图片来举列,大家有什么其它的方法也欢迎留言告知与我 <form action="" method="post&qu ...

  10. 20145337《JAVA程序设计》第七周学习总结

    20145337 <Java程序设计>第七周学习总结 教材学习内容总结 时间的度量 格林威治时间GMT,世界时UT,国际原子时TAI,世界协调时间UTC 就目前来说,即使标注为GMT,实际 ...