【转】DNS协议报文(RFC1035)

(转自:http://hi.baidu.com/wzypunk/blog/item/1fb46d26fb4130fcd6cae22e.html)

DNS协议报文(RFC1035)
2010-10-16 17:19

一、域名和资源记录的定义

1、Name space definitions
2、资源记录定义(RR definitions)

    2.1 格式
         后面分析报文的时候详细解释。
    2.2 类型值(TYPE values)
         类型主要用在资源记录中,注意下面的值是QTYPE的一个子集。
        类型           值和含义
         A               1 a host address
         NS              2 an authoritative name server
         MD              3 a mail destination (Obsolete - use MX)
         MF              4 a mail forwarder (Obsolete - use MX)
         CNAME           5 the canonical name for an alias
         SOA             6 marks the start of a zone of authority
         MB              7 a mailbox domain name (EXPERIMENTAL)
         MG              8 a mail group member (EXPERIMENTAL)
         MR              9 a mail rename domain name (EXPERIMENTAL)
         NULL            10 a null RR (EXPERIMENTAL)
         WKS             11 a well known service description
         PTR             12 a domain name pointer
         HINFO           13 host information
         MINFO           14 mailbox or mail list information
         MX              15 mail exchange
         TXT             16 text strings
    2.3 查询类型(QTYPE values)
         查询类型出现在问题字段中,查询类型是类型的一个超集,所有的类型都是可用的查询类型,其他查询类型如下:
         AXFR            252 A request for a transfer of an entire zone
         MAILB           253 A request for mailbox-related records (MB, MG or MR)
         MAILA           254 A request for mail agent RRs (Obsolete - see MX)
         *               255 A request for all records
    2.4 类(CLASS values)
         IN              1 the Internet
         CS              2 the CSNET class (Obsolete - used only for examples in some obsolete RFCs)
         CH              3 the CHAOS class
         HS              4 Hesiod [Dyer 87]
    2.5 查询类(QCLASS values)
         查询类是类的一个超集
         *               255 any class
   3、Standard RRs
     3.1 CNAME RDATA format
    3.2 HINFO RDATA format
    3.3 MB RDATA format (EXPERIMENTAL)
    3.4 MD RDATA format (Obsolete)
    3.5 MF RDATA format (Obsolete)
    3.6 MG RDATA format (EXPERIMENTAL)
    3.7 MINFO RDATA format (EXPERIMENTAL)
    3.8 MR RDATA format (EXPERIMENTAL)
    3.9 MX RDATA format
    3.10 NULL RDATA format (EXPERIMENTAL)
    3.11 NS RDATA format
    3.12 PTR RDATA format
    3.13 SOA RDATA format
    3.14 TXT RDATA format
   4、ARPA Internet specific RRs
    4.1 A RDATA format
    4.2 WKS RDATA format
5、IN-ADDR.ARPA domain
6、Defining new types, classes, and special namespaces

二、报文

1、报文格式(Format)
    dns请求和应答都是用相同的报文格式,分成5个段(有的报文段在不同的情况下可能为空),如下:
    +---------------------+
    |        Header       | 报文头
    +---------------------+
    |       Question      | 查询的问题
    +---------------------+
    |        Answer       | 应答
    +---------------------+
    |      Authority      | 授权应答
    +---------------------+
    |      Additional     | 附加信息
    +---------------------+
    Header段是必须存在的,它定义了报文是请求还是应答,也定义了其他段是否需要存在,以及是标准查询还是其他。
    Question段描述了查询的问题,包括查询类型(QTYPE),查询类(QCLASS),以及查询的域名(QNAME)。剩下的3个段包含相同的格 式:一系列可能为空的资源记录(RRs)。Answer段包含回答问题的RRs;授权段包含授权域名服务器的RRs;附加段包含和请求相关的,但是不是必 须回答的RRs。
    1.1 Header的格式
        报文头包含如下字段:
                                    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                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        各字段分别解释如下:
        ID      请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。
        QR      1个比特位用来区分是请求(0)还是应答(1)。
        OPCODE 4个比特位用来设置查询的种类,应答的时候会带相同值,可用的值如下:
                0               标准查询 (QUERY)
                1               反向查询 (IQUERY)
                2               服务器状态查询 (STATUS)
                3-15            保留值,暂时未使用
        AA      授权应答(Authoritative Answer) - 这个比特位在应答的时候才有意义,指出给出应答的服务器是查询域名的授权解析服务器。
                注意因为别名的存在,应答可能存在多个主域名,这个AA位对应请求名,或者应答中的第一个主域名。
        TC      截断(TrunCation) - 用来指出报文比允许的长度还要长,导致被截断。
        RD      期望递归(Recursion Desired) - 这个比特位被请求设置,应答的时候使用的相同的值返回。如果设置了RD,就建议域名服务器进行递归解析,递归查询的支持是可选的。
        RA      支持递归(Recursion Available) - 这个比特位在应答中设置或取消,用来代表服务器是否支持递归查询。
        Z       保留值,暂时未使用。在所有的请求和应答报文中必须置为0。
        RCODE   应答码(Response code) - 这4个比特位在应答报文中设置,代表的含义如下:
                0               没有错误。
                1               报文格式错误(Format error) - 服务器不能理解请求的报文。
                2               服务器失败(Server failure) - 因为服务器的原因导致没办法处理这个请求。
                3               名字错误(Name Error) - 只有对授权域名解析服务器有意义,指出解析的域名不存在。
                4               没有实现(Not Implemented) - 域名服务器不支持查询类型。
                5               拒绝(Refused) - 服务器由于设置的策略拒绝给出应答。比如,服务器不希望对某些请求者给出应答,或者服务器不希望进行某些操作(比如区域传送zone transfer)。
                6-15            保留值,暂时未使用。
        QDCOUNT 无符号16位整数表示报文请求段中的问题记录数。
        ANCOUNT 无符号16位整数表示报文回答段中的回答记录数。
        NSCOUNT 无符号16位整数表示报文授权段中的授权记录数。
        ARCOUNT 无符号16位整数表示报文附加段中的附加记录数。
    1.2 Question的格式
        在大多数查询中,Question段包含着问题(question),比如,指定问什么。这个段包含QDCOUNT(usually 1)个问题,每个问题为下面的格式:
                                    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个字节表示查询类型,.取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。
        QCLASS 2个字节表示查询的协议类,比如,IN代表Internet。
    1.3 资源记录格式(Resource record)
        应答,授权,附加段都共用相同的格式:多个资源记录,资源记录的个数由报文头段中对应的几个数值确定,每个资源记录格式如下:
                                    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网络地址。
    1.4 报文压缩
        为了减小报文,域名系统使用一种压缩方法来消除报文中域名的重复。使用这种方法,后面重复出现的域名或者labels被替换为指向之前出现位置的指针。
        指针占用2个字节,格式如下:
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    | 1 1|                OFFSET                   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        前两个比特位都为1。因为lablels限制为不多于63个字节,所以label的前两位一定为0,这样就可以让指针与label进行区分。(10 和 01 组合保留,以便日后使用) 。偏移值(OFFSET)表示从报文开始的字节指针。偏移量为0表示ID字段的第一个字节。
        压缩方法让报文中的域名成为:
        - 以0结尾的labels序列
        - 一个指针
        - 指针结尾的labels序列
        指针只能在域名不是特殊格式的时候使用,否则域名服务器或解析器需要知道资源记录的格式。目前还没有这种情况,但是以后可能会出现。
        如果报文中的域名需要计算长度,并且使用了压缩算法,那么应该使用压缩后的长度,而不是压缩前的长度。
        程序可以自由选择是否使用指针,虽然这回降低报文的容量,而且很容易产生截断。不过所有的程序都应该能够理解收到的报文中包含的指针。
        比如,一个报文需要使用域名F.ISI.ARPA,FOO.F.ISI.ARPA,ARPA,以及根。忽略报文中的其他字段,应该编码为:
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    20 |           1           |           F           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    22 |           3           |           I           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    24 |           S           |           I           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    26 |           4           |           A           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    28 |           R           |           P           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    30 |           A           |           0           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    40 |           3           |           F           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    42 |           O           |           O           |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    44 | 1 1|                20                       |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    64 | 1 1|                26                       |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    92 |           0           |                       |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

        偏移20的是域名F.ISI.ARPA。域名FOO.F.ISI.ARPA偏移40; 这样表示FOO的label后面跟着一个指向之前F.ISI.ARPA的指针。域名ARPA偏移64,使用一个指针指向F.ISI.ARPA的ARPA。 注意可以用这个指针是因为ARPA是从偏移位置20开始的labels序列中的最后一个label。 根域名在位置92定义为一个0,没有labels。

2、传输(Transport)
    DNS假设报文以数据报,或者从虚链路上以字节流进行传输。虚链路可以用来任何的DNS的传输,数据报可以减少代价提高传输性能。区域刷新必须使用虚链路,因为需要一个可靠的传输。
    因特网中DNS支持端口53的TCP[RFC-793]和端口53的UDP [RFC-768]传输。
    2.1 使用UDP
        消息通过UDP的53端口进行传输。
         UDP传输的消息严格要求限制在512字节内(不包括IP和UDP头)。长报文被截断,同时置报文头的TC标志位。
         UDP不能用于区域传输,主要用在标准的域名查询。报文通过UDP可能会丢失,所以重传机制是需要的,请求和应答可能在网络中或者服务器处理的时候被重新排序,所以解析客户端不能依赖请求的发送顺序。
        UDP的最优重传策略会因为网络的性能,客户的需要而不同,但是下面是推荐的:
        - 客户端在对一台固定的服务器重试之前,尝试一下其他的服务器。
        - 如果可能的话,重传的时间间隔需要建立在统计分析数据的基础上,太快的重试可能因为量太大导致服务器响应慢。建议的重试时间为2-5秒。
    2.2 使用TCP
         通过TCP发送的报文使用53端口,报文的前面有个字节表示后面报文的长度,长度不包括自己占用的2个字节,这个长度使得底层收取完整的报文后在交给上层处理。
         很多连接管理策略如下:
         - 服务器不能阻塞其他传输TCP数据的请求。
         - 服务器需要支持多连接
         - 服务器要等客户端主动关闭连接,除非所有的数据都已经传输完了。
         - 如果服务器想关闭没有通讯的连接来释放资源,那么需要等待大约2分钟的时间。特别是要等SOA和AXFR(刷新操作中)在一个连接上传输完。服务器关闭连接的时候可以单方面的关闭,或者直接reset掉连接。

三、实例
1、请求解析www.baidu.com.
     在linux下使用tcpdump port 53抓包,同时使用dig进行解析测试,得到结果如下:
         ; (1 server found)
         ;; global options: +cmd
         ;; Got answer:
         ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1169
         ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 0

         ;; QUESTION SECTION:
         ;www.baidu.com.    IN A

         ;; ANSWER SECTION:
        www.baidu.com.   1200 IN CNAME www.a.shifen.com.
        www.a.shifen.com. 600 IN A 121.14.88.76
        www.a.shifen.com. 600 IN A 121.14.89.10

         ;; AUTHORITY SECTION:
         a.shifen.com.   86411 IN NS ns5.a.shifen.com.
         a.shifen.com.   86411 IN NS ns6.a.shifen.com.
         a.shifen.com.   86411 IN NS ns1.a.shifen.com.
         a.shifen.com.   86411 IN NS ns3.a.shifen.com.
    1.1 请求报文
0x0000: 4500 003b f8cf 0000 4011 f9ae xxxx xxxx E..;....@......r
0x0010:   xxxx xxxx 92b8 0035 0027 23ed 0491 0100 ...q...5.'#.....
0x0020: 0001 0000 0000 0000 0377 7777 0562 6169 .........www.bai
0x0030: 6475 0363 6f6d 0000 0100 01              du.com.....
        0491:报文ID,也就是十进制的1169
        0100:标志,置了RD字段,也就是期望递归的请求
        0001 0000 0000 0000:分别为问题数,应答数,授权记录数,附加记录数,也就是1个问题
        0377 7777 0562 6169 6475 0363 6f6d 00:也就是www.baidu.com的编码
        00 0100 01:查询类型和查询类都为1,也就是internet的A记录查询
    1.2 应答报文
0x0000: 4500 00be 0016 4000 4011 b1e5 xxxx xxxx E.....@.@......q
0x0010:   xxxx xxxx 0035 92b8 00aa 33e1 0491 8180 ...r.5....3.....
0x0020: 0001 0003 0004 0000 0377 7777 0562 6169 .........www.bai
0x0030: 6475 0363 6f6d 0000 0100 01c0 0c00 0500 du.com..........
0x0040: 0100 0004 b000 0f03 7777 7701 6106 7368 ........www.a.sh
0x0050: 6966 656e c016 c02b 0001 0001 0000 0258 ifen...+.......X
0x0060: 0004 790e 584c c02b 0001 0001 0000 0258 ..y.XL.+.......X
0x0070: 0004 790e 590a c02f 0002 0001 0001 518b ..y.Y../......Q.
0x0080: 0006 036e 7335 c02f c02f 0002 0001 0001 ...ns5././......
0x0090: 518b 0006 036e 7336 c02f c02f 0002 0001 Q....ns6././....
0x00a0: 0001 518b 0006 036e 7331 c02f c02f 0002 ..Q....ns1././..
0x00b0: 0001 0001 518b 0006 036e 7333 c02f       ....Q....ns3./
         注意8180,也就是二进制的 1 0000 0 0 1 1 000 0000 ,说明是应答,置了RD和RA位
         黄色背景为压缩编码,比如c016就代表第22个字节,也就是com。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RFC介绍域系统和协议细节,并假设读者熟悉在姊妹篇RFC“域名 - 概念和设施”[RFC-1034]中讨论的概念。 目录 第1章 本备忘录状态 第2章 序言 2-1 综述 2-2 一般配置 2-3 惯例 2-3-1 首选的名称句法 2-3-2 数据传送顺序 2-3-3 字符大小写 2-3-4 大小限制 第3章 域名空间和资源记录(RR)定义 3-1 名称空间定义 3-2 资源记录定义 3-2-1 格式 3-2-2 TYPE值 3-2-3 QTYPE值 3-2-4 CLASS值 3-2-5 QCLASS值 3-3 标准RRs 3-3-1 CNAME RDATA格式 3-3-2 HINFO RDATA格式 3-3-3 MB RDATA格式(试验) 3-3-4 MD RDATA格式(废止) 3-3-5 MF RDATA格式(废止) 3-3-6 MG RDATA格式(试验) 3-3-7 MINFO RDATA格式 (试验) 3-3-8 MR RDATA格式(试验) 3-3-9 MX RDATA格式 3-3-10 NULL RDATA格式(试验) 3-3-11 NS RDATA格式 3-3-12 PTR RDATA格式 3-3-13 SOA RDATA格式 3-3-14 TXT RDATA格式 3-4 ARPA互联网特定RRs 3-4-1 A RDATA格式 3-4-2 WKS RDATA格式 3-5 IN-ADDR.ARPA域 3-6 定义新的类型、类和专用名称空间 第4章 消息 4-1 格式 4-1-1 首部部分格式 4-1-2 问题部分格式 4-1-3 资源记录格式 4-1-4 消息压缩 4-2 传送 4-2-1 UDP应用 4-2-2 TCP应用 第5章 主文件 5-1 格式 5-2 定义区域的主文件的应用 5-3 主文件举例 第6章 名称服务器实现 6-1 架构 6-1-1 控制 6-1-2 数据库 6-1-3 时间 6-2 标准查询处理 6-3 区域更新和重新加载处理 6-4 反向查询(可选) 6-4-1 反向查询和响应的内容 6-4-2 反向查询和响应举例 6-4-3 反向查询处理 6-5 完整查询和响应 第7章 解析器实现 7-1 将用户请求换为查询 7-2 发送查询 7-3 处理响应 7-4 使用缓存器 第8章 邮件支持 8-1 邮件交换绑定 8-2 邮箱绑定(试验) 第9章 参考文献和参考书目 原文索引
本备忘录介绍域名系统(Domain Name System, DNS),文中忽略了许多细节,这些细节可在姊妹篇RFC“域名---实现和规范”[RFC-1035]中找到。RFC1035假设读者熟悉本备忘录中讨论的概念。 目录 第1章 本备忘录状态 第2章 序言 2-1 域名的历史 2-2 DNS设计目标 2-3 有关应用的假设 2-4 DNS组成部分 第3章 域名空间和资源记录 3-1 名称空间规范和术语 3-2 有关应用的管理准则 3-3 有关应用的技术准则 3-4 名称空间举例 3-5 优先选用的名称句法 3-6 资源记录 3-6-1 RRs的文本表示 3-6-2 别名和正则名称 3-7 查询 3-7-1 标准查询 3-7-2 反向查询(可选) 3-8 状态查询(试验中) 3-9 完整查询(放弃) 第4章 名称服务器 4-1 序言 4-2 怎样将数据库划分成区域 4-2-1 技术上的考虑 4-2-2 管理上的考虑 4-3 名称服务器内部 4-3-1 查询和响应 4-3-2 算法 4-3-3 通配符 4-3-4 否定响应缓存(可选) 4-3-5 区域维护和传送 第5章 解析器 5-1 序言 5-2 客户端-解析器接口 5-2-1 典型功能 5-2-2 别名 5-2-3 临时故障 5-3 解析器内部 5-3-1 末梢解析器 5-3-2 资源 5-3-3 算法 第6章 场景 6-1 C.ISI.EDU名称服务器 6-2 标准查询举例 6-2-1 QNAME=SRI-NIC.ARPA, QTYPE=A 6-2-2 QNAME=SRI-NIC.ARPA, QTYPE=* 6-2-3 QNAME=SRI-NIC.ARPA, QTYPE=MX 6-2-4 QNAME=SRI-NIC.ARPA, QTYPE=NS 6-2-5 QNAME=SIR-NIC.ARPA, QTYPE=A 6-2-6 QNAME=BRL.MIL, QTYPE=A 6-2-7 QNAME=USC-ISIC.ARPA, QTYPE=A 6-2-8 QNAME=USC-ISIC.ARPA, QTYPE=CNAME 6-3 解析举例 6-3-1 解析ISI.EDU.的MX 6-3-2 获得地址26.6.0.65的主机名 6-3-3 获得poneria.ISI.EDU的主机地址 第7章 参考文献和参考书目 原文索引
### 回答1: RFC 1035是由互联网工程任务组(IETF)发布的一项标准,该标准定义了域名系统(DNS协议规范和要求。 RFC 1035主要包括以下几个方面的规范: 1. DNS消息格式:RFC 1035定义了DNS消息的格式,包括消息头部和消息体,以及各个字段的含义和使用方法。消息头部包括标识符、标志位、问题数、回答数等信息,用于标识和解析DNS请求和响应。 2. DNS资源记录:RFC 1035规范了不同类型的DNS资源记录的格式和用途,包括主机地址记录(A记录)、别名记录(CNAME记录)、邮件交换记录(MX记录)等。这些资源记录用于将域名映射到IP地址或其他数据,实现域名解析。 3. DNS协议操作:RFC 1035定义了DNS协议中的各种操作,包括查询操作、响应操作、递归查询、迭代查询等。这些操作使得DNS能够根据域名查询相关的IP地址或其他资源记录。 4. 域名层次结构:RFC 1035对域名的层次结构进行了规范,使用点分隔符(.)分割不同的域名层级。例如,www.example.com中的www是主机名,example是二级域名,com是顶级域名。 5. 域名解析过程:RFC 1035详细描述了DNS解析的过程,包括递归查询和迭代查询的步骤,以及域名服务器的工作原理。通过这些规范DNS系统能够实现高效的域名解析和资源查找。 总之,RFC 1035规范DNS协议的各个方面,对于保障互联网域名解析的准确性和可靠性发挥了重要作用。它成为了互联网上域名解析的基础,为DNS服务器之间的通信提供了统一的规则和标准。 ### 回答2: RFC 1035是一项关于域名系统(DNS)的Internet标准,其中详细定义了DNS协议规范和消息格式。 该规范由Internet工程任务组(IETF)发布于1987年11月,它替代并废弃了早期的RFC 882和RFC 883。RFC 1035明确了域名系统的基本工作原理,定义了DNS的消息格式、查询和响应标准。 RFC 1035规定了DNS消息的结构,包括头部、问题部分、回答部分、授权部分和附加部分。其中,头部包含了标识、查询类型、查询类别等信息。问题部分包含了查询的域名信息。回答部分、授权部分和附加部分则包含了具体的查询或响应信息。 此外,RFC 1035也规定了常见的DNS查询类型,如A记录(将域名映射为IPv4地址)、AAAA记录(将域名映射为IPv6地址)、MX记录(指定邮件服务器)等。它还定义了DNS缓存、区域传输、递归查询等核心功能。 RFC 1035为网络中的域名解析提供了标准化的基础,确保了互联网上域名到IP地址的快速、准确地换。它被广泛地使用在DNS服务器、域名注册商和域名解析器中,为互联网提供了可靠的域名解析服务,并为后续更多的扩展、改进提供了基础。 总之,RFC 1035规范定义了DNS的工作原理、消息格式和标准化查询类型等内容,为域名系统提供了统一的标准,保证了互联网域名解析的准确性和高效性。 ### 回答3: RFC 1035是Internet工程任务组(IETF)发布的一项标准,定义了域名系统(DNS)的协议规范DNS是互联网中用于将域名换为IP地址的系统,RFC 1035旨在提供一种标准的方法来实现和管理DNSRFC 1035规范主要包括以下几个方面的内容: 1. DNS消息格式:规范中详细描述了DNS消息的格式,包括消息头部和消息体的结构,以及各个字段的含义和使用方法。这使得不同DNS服务器之间能够互相传递和解析DNS消息。 2. 域名解析和资源记录:RFC 1035定义了域名的命名规则和解析过程,以及资源记录的格式和类型。例如,A记录用于将域名映射到IPv4地址,AAA记录用于将域名映射到IPv6地址,MX记录用于指定邮件服务器等。 3. DNS报文传输和查询:规范中介绍了DNS报文的传输方式,包括使用UDP和TCP协议进行传输的细节。此外,标准还定义了DNS查询的各种类型,如递归查询、迭代查询等。 4. 域名服务器的操作和层次结构:RFC 1035详细讨论了域名服务器的操作和层次结构。它定义了主域名服务器(Authoritative Name Server)和递归域名服务器(Recursive Name Server)之间的交互过程,以及域名服务器的层次结构和区域划分。 RFC 1035的发布使得互联网中的DNS变得更加标准化和可靠。它为域名解析提供了一个一致的协议规范,使得不同厂商和组织的DNS服务器能够相互兼容和交互。通过遵循RFC 1035规范,互联网用户可以更高效地进行域名解析和资源记录的管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值