• DNS (二)协议


    报文字段含义:

    标识字段 由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否匹配。
    标志字段 协商具体的通信方式和反馈通信状态
    随后的 4个16 bit字段说明最后 4个变长字段中包含的条目数

     DNS标志字段

    QR是1bit字段:0表示查询报文,1表示响应报文。
    opcode是一个4bit字段:通常值为0(标准查询) ,其他值为1(反向查询)和2(服务器状态请求)。
    AA是1bit标志表示“授权回答(authoritative answer)”。该名字服务器是授权于该域的。
    TC是1bit字段,表示“截断的(truncated)”。使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节
    RD是1bit字段表示“期望递归(recursion desired)”。该比特能在一个查询中设置,并在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询。如果该位为0,且被请求的名字服务器没有一个授权回答,它   就返回一个能解答该查询的其他名字服务器列表,这称为迭代查询。
    RA是1bit字段,表示“可用递归”。如果名字服务器支持递归查询,则在响应中将该比特设置为1。大多数名字服务器都提供递归查询,除了某些根服务器。
    Rcode是一个4bit的返回码字段。通常的值为0(没有差错)和3(名字差错)。

     DNS查询报文内部:

    查询名示例:

    格式:计数+内容 以0结束
    查询类型:A/CNAME/NS等
    查询类:IN/CS等

    说明:

    计数字节的值必须是0 ~ 63的数,因为标识符的最大长度仅为63(在本节的后面我们将看到计数字节的最高两比特为1(oxc0),即值192~255,将用于表示压缩);

    DNS查询类型:

     

    查询类型除了包含资源记录类型之外,还包含以下的类型值:

    DNS查询类:

    DNS 应答报文:

    域名可以使用压缩。长度以C0开头表示压缩形式,内容是报文一定偏移处的域名内容。
    类型说明 RR的类型码。类通常为 1,指Internet数据。
    生存时间字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为 2天。
    资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型1(A记录)资源数据是4字节的IP地址。

    注:应答报文的回答、授权、额外信息字段就是以上的格式。也就是说这三个部分是有多条资源记录组成的,资源记录的数量是前面报文头部相应字段的值。

     A类型请求报文

    A类型应答报文

  • 相关阅读:
    Linux下定时删除指定目下n天前的文件
    日期时间格式化
    sed与awk
    Linux守护进程(init.d和xinetd)
    python-Json模块
    python3 urllib模块
    linux 命令 rsync
    Linux下scp的用法
    代码块重定向
    使用exec
  • 原文地址:https://www.cnblogs.com/ibyte/p/5780654.html
Copyright © 2020-2023  润新知