TCP/IP DNS
1.概述
域名系统(DNS)是一种用于TCP/IP应用程序的分布式数据库,提供主机名字和ip地址转换的选路信息,在应用的角度上,DNS的访问通过地址解析器(resolver)完成,在unix中,解析器通过两个库函数gethostbyname和gethosybyaddr来访问,前者接受主机名字并返回IP地址,后者接收IP地址来寻找主机名字.解析器通过一个或多个名字服务器来完成这种相互交换.在RFC 1034 说明了DNS的概念和功能,RFC1035中揭示了DNS的规范和实现.
2.BASIC
1.每个结点有至多63个字符长的标示,命名标示一律不区分大小写,以.分隔域名,域名树必须有一个唯一的域名,域名树的不同结点可使用不同的标示.
2,顶级域名分为3个部分
(1)apra是一个用作地址到名字的特殊域
(2)7个3字符长的普通域
(3)所有2字符长的域均基于ISO3166定义的国家代码
3.在普通域中分为7个划分
域 | 描述 |
com | 商业组织 |
edu | 教育机构 |
gov | 美国政府部门 |
int | 国际组织 |
mil | 美国军事网点 |
net | 网络 |
org | 其他组织 |
3.DNS报文格式
DNS定义了一个用于查询和响应的报文格式
1.报文由12个字节长的首部和4个长度可变得字段组成
标示字段由客户程序设置并由服务器返回结果,客户程序通过它确定响应与查询是否匹配
16bit标志字段被划分为若干个字段
QR是1bit字段:0标示查询报文,1标示响应报文
opcode是4bit字段.0为标准查询,1为(反向查询)和2(服务器状态请求)
AA是1bit标志,标示授权回答(authoritative answer)该名字是授权于该域名的
TC是1bit字段,标示可截断的,使用UDP时,表示应答长度超过512字节时,只返回当前的512字节
RD是1bit表示期望递归,
RA是1bit字段,标示可用递归
随后的3字段必须为0
rcode是一个4bit的返回码字段,通常值为0(没有差错)和3(名字差错),名字差错只有一个授权名字服务器返回,标示查询中制定的域名不存在
随后的4个16bit说明最后4个变长字段包含的条目数