4.1 客户端与服务器通信过程 6
4.2 DNS解析的具体流程 9
5 详细设计 10
5.1 DNS报文 10
5.2 客户端与服务器 13
6 系统测试运行结果 15
总结 20
致谢 22
参 考 文 献 23
1 引言
域名系统是Internet上最为关键的基础设施,作为基于TCP/IP协议的分布式数据库,其主要作用是提供主机名称和IP地址之间的转换,从而保障其他网络应用的顺利执行。作为全球最大也是最为成功的分布式系统,其效率和普及程度相对于其他服务显得更加重要。然而,当前的名字空间导航系统DNS存在着服务模式单一、更新速度慢、资源描述能力不够强等缺点,不能满足许多新型应用的要求。因此域名导航软件的设计与实现对提高效率起到很大作用。
1.1 域名空间的结构及其导航服务
当前互联网的各层结构中,除了物理层以外,每层协议实体都有自己的名字空间,它们分别是链路层的MAC地址、网络层的IP地址、传输层的(IP地址,端口号)和应用层的域名。在这些名字空间中,MAC地址只要求在子网内唯一,而端口号只要求在主机内部唯一,因此互联网的全局名字空间主要有两个:IP地址和域名。域名和IP地址之间是通过DNS进行解析的。
IP地址不仅作为通信设备的网络接口的身份标识,还作为网络接口在网络拓扑中的位置标识。考虑到路由处理的效率,IP地址的长度是固定的(IPv4中是32位,IPv6中是128位)。为了减少路由表的条目,IP地址一般都是按照层次结构来组织的,因此,IP地址是一个有结构的层次名字空间,不同的层次表示IP地址在网络拓扑中的位置区域。IP地址是可以复用的,一段IP地址空间可以被用来表示不同的网络拓扑区域,而且在DHCP等技术中,IP地址也是动态分配的。一个设备接口可以有多个IP地址,因此IP地址的分配是非唯一的。如果把路由过程看作是对IP地址的解析,那么IP地址的解析是全局统一的,因为每个路由器都单独进行全局的路由计算。如前所述,IP地址的解析既可以是“早解析”(源路由)的,也可以是“晚解析”(逐跳路由)的。
域名表示主机的名字,但在实际使用中常常对其进行扩展以作为应用层的实体标识,如http地址、ftp地址、E-mail地址等。域名空间是可变长的,而且也是一个层次名字空间,不同的层次反映域名的管理结构。域名是动态分配并可以复用的,一个域名可以分配给某个主机一段时间,然后又分配给另一个完全不同的主机。一个主机可能拥有多个域名,因此域名的分配也是非唯一的。
1.2 存在的问题
在互联网最初的设计中,核心网络采用的是单播和尽力发送的模型, 而且认为IP地址空间是足够用的,主机是静止的,因此名字空间的设计也相对简单。这种简单性是互联网能够取得今天的巨大成功的重要因素之一。但是随着互联网及其应用的飞速发展,当前的互联网名字空间结构及其解析服务也面临着许多挑战。