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. 【BZOJ】2823: [AHOI2012]信号塔

    题意 给\(n\)个点,求一个能覆盖所有点的面积最小的圆.(\(n \le 50000\)) 分析 随机增量法 题解 理论上\(O(n^3)\)暴力,实际上加上随机化后期望是\(O(n)\)的. 算法 ...

  2. 【BZOJ1270】1270: [BeijingWc2008]雷涛的小猫 DP

    Description   Input Output Sample Input Sample Output 8 HINT Source 唉这么蠢的Dp没一下子看出来,Dp真是太弱了啦. #includ ...

  3. 【BZOJ2223/3524】[Coci 2009]PATULJCI

    Description Input   Output 10 3 1 2 1 2 1 2 3 2 3 3 8 1 2 1 3 1 4 1 5 2 5 2 6 6 9 7 10 Sample Input ...

  4. Android -- EditText方法

    1. 选择需要的内容 final EditText myEditText=(EditText)findViewById(R.id.editText1); //编辑框对象 myEditText.setT ...

  5. 李洪强iOS经典面试题134-C语言

    可能碰到的iOS笔试面试题(4)--C语言   C语言,开发的基础功底,iOS很多高级应用都要和C语言打交道,所以,C语言在iOS开发中的重要性,你懂的.里面的一些问题可能并不是C语言问题,但是属于计 ...

  6. 1047. Student List for Course (25)

    Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course li ...

  7. JAVA中JDBC连接数据库

    这里列举了JDBC连接Oracle . SQLServer .MySQL 三种 数据库 1.Oracle连接(导入classes12.jar 包) public static Connection g ...

  8. js原型对象与Java类的比较

    在我学习Javascript的原型对象时,我总是不自觉地拿Java的类思想来做比较,时间久了,我渐渐认识到二者有巨大的不同. 首先,类是不能直接当方法来运行,它最简便的方式是调用其静态方法:而原型对象 ...

  9. .net 服务器端文件下载

    string path = Server.MapPath("/Source/mjpjb.rar"); System.IO.FileInfo file = new System.IO ...

  10. spring security 图解过滤器的使用

    1. HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个Sec ...