名字地址映射
在访问一个命名实体之前,必须首先获得该实体的网际地址。这个过程称为名字映射。
名字映射可看成是一个由实体名到网际地址(包括孤立网的情况, 此时网络号 0)的映象。它分为静态和动态两种方式。静态连接方式是将命名实体的地址嵌入访问实体的系统内。
动态连接方式是将实体名嵌入系统,且由NBP实现动态地址映象。这种方式又进一步分成两种形式:动态先映射和动态后映射。前者是指用户的节点进网时就实现名字映射; 后者则是指每次访问命名实体时才实现名字映射。由于节点进网到实体访问的过程中,网络拓扑结构可能会发生变化,这样节点地址也将随之变化。因此,动态先映射可能会导致使用过时或不正确的网络资源。采用动态后映射方式则可避免出现这种错误。不过,采用动态后映射要求每次访问实体时都要进行映射,这样势必会增大响应时间。如果网际网的实体地址变动较频繁,采用动态后映射的方式是比较合适的。1
基本技术背景在网络系统中,为了进行通信和资源共享,名字扮演着重要的角色。没有名字或命名策略,网络几乎无法正常工作。在网际网环境下,如象区域或簇、信关或桥、网络、节点、套接字乃至用户进程等都需要有自己的名字。如何命名,对于不同的网络系统,可能会采用不同的策略。
在Apple Talk协议中,网络信包交换的地址,均采用数字代码(网络号、节点号、套接字号)表示。这对习惯于使用字符代码的计算机操作员来说是很不方便的。为此,协议中成提供某种机制以实现字符代码到数字代码的变换。名字映射协议(NBP)柏主要功能正是实现这种变换的。引入NBP的另一个目的还在于APP Talk使用动态方式分配节点号,这样,网络软件就不能直接使用同络地址访问网络资源。在引入NBP后,网络软件则可以使用名字,在NBP实现名字到网络实际地址映象后,完成对网络资源的访问。下面,我们简要介绍一下名字映射所涉及到的某些主要技术问题。1
网络可见实体同络可见实体(NVE)(Network-Visible Entities)是指网络上可访问的实体。例如,网际同中所有的套接字用户均是NVE;网络节点不是NVE,但节点中可供使用的服务都是NV B_打印服务器算不上NVE,但是打印服务程序作为服务器请求侦听套接字用户却是一个NVE。类似地, 网络操作员不是NVE,但他在一个文件服务器中可以拥有一个电子邮箱,l而这个邮箱就是一个NVE,并具有一个网络地址。
实体名NVE 可以(但并非必须)为自己分配一个名字,即实体名。实体名由一串字符组成。一个实体可拥有多个名字(剐名)。一个实体名由对象、类型和区域三个域拘成。各域之间由“:”和“@”分隔开,其格式为:
object:type@ zone
其中,对象反映了一个实体的基本名字;类型反映了实休的基本属性。一个实体也可以有若干个属性。例如,一个打印服务程序可以有若干个属性:打印机类型(点阵、激光)、打印纸类型及大小等。所以实体名到套接字的映象,还应提供实体属性查找服务。区域反映r实体所在的区域名。所谓区域,意指网际网中由全体AppleTMk阿构成的集合中的任意子集。一 个Apple Talk只能属于一个区域,所有区域的并集则构成阿际网的Apple Talk集 。一个区域中的多个Apple Talk并不一定要在网际网的拓扑结构中邻接。在实体名中使用区域, 主要是为了加快NBP在网际网中的实现速度。实体名中每个域l长度最大可达32 。object和type域可用“=” 表示任何可能的值zone域可使用 ,表示缺省值(即本地域)。例如, :Maibox@#表本地区域具有Maibox类型的所有实体。1
名字目录和表在网络系统中,每个节点都将维护一张名字表(NT), 它存有本节点所有实体的实体名到实体网际地址的映象(称之为NBP元组)。网际网中所有节点名字表的并集将构成该网际网的名字目录(ND)。ND实际上是一个实体名到实体地址映象的分布式数据库,它分布在所有包含命名实体的节点上。
别名与计数器NBP允许一个实休具有多个名字。所有这些别名都必须作为一个独立项存放在NT中。为简化和加快查找NT时,区分别名的能力,NT中的每一项还专门设有一个计数器。它占有一个字节,由NBP内部产生,但不能被NBP访问。计数器实际 h相当予一个标识符,NT中各实体 名均具有唯一的计数值。
名字信息套接字NBP拥有一个静态分配的套接字,即名字信息套接字(NIs)以及NIS的监听程序。该监听程序负责维护节点的名字表,接收并处理来自节点内部或网络发来的名字查询请求。1
名字—IP地址映射随着Internet 的发展,TCP/ IP 通讯协议已日益成为企业内部网络协议标准,组建TP/ IP 网络首先遇到的问题之一就是解决名字与IP 地址的映射问题。在名字与IP 地址的映射问题上,Windows NT4. 0 提供了几种方法。一种是广泛应用于Internet 的DNS;另一种是WINS;第三种是LMHOSTS文件。
域名系统DNS域名系统是一个分布式主机信息数据库,整个网络按照组织结构或管理范围、逻辑地分解成为一个层次结构,形成一个倒立的域名树,其顶部是根,根名是空标记,根以下的节点都有一个标记名,称为域(Do2main) , 如图1 所示。域名就是从根到当前域所经过的所有节点的标记名、从左到右排列、并用“. ”进行分隔的标记串,如:epg. edu. cn。
DNS 采用Client/ Server 机制,提出查询请求的DNS。工作站为Client 方,而提供所需数据的DNS 服务器称为域名服务器(Name Server) 。在DNS 服务器数据库中记录着DNS 服务器的配置。DNS 服务器是以区(Zone)为单位来管理的(注意不是以Domain 为单位) ,一台服务器可以管理一个或多个区,一个区也可以同时由多个DNS 服务器管理。在DNS 服务器中,包含所管理的区中的所有数据,例如:区内主机名与IP 地址的映射表等等。对DNS 服务器的配置,主要是建立DNS 数据库文件,这些文件保存着名字—IP 地址的对应数据。2
WINS在TCP/ IP 网络中,解决名字与IP 地址的映射可利用DNS 方式,但这种方式有一个最大的缺点,那就是系统管理员必须以手工方式建立和维护数据库文件,增加了系统管理员的负担。
微软的WINS(WindowsInternet Name Service) 可以自动建立数据库文件, 当WINS 工作站启动时,自动将自己的计算机名与IP 地址加入到WINS 服务器的数据库中。如果主机的IP 地址因故更改,则下次启动时会重新登记到WINS 服务器中;当WINS 工作站注销时,WINS 服务器也会自动将此工作站设置为已释放 。WINS采用客户/ 服务器(Client/ Server) 机制,WINS工作站之间相互通讯时,它们就向WINS 服务器询问对方的IP 地址,由WINS 服务器从数据库中查询其IP地址送给WINS 工作站。
在NT 网络上,只有WINS 工作站可以直接通过WINS 服务器进行名字解析,而非WINS 工作站要通过广播方式取得其它工作站的IP 地址,但广播信息无法跨越其它网段,因此,利用广播来查询其它网段中主机的IP 地址, 必须通过WINS 代理(WINS proxy) 。当WINS代理收到同一网段内的非WINS 工作站查询IP地址的广播信息后,它就转向WINS 服务器查询,并将查询结果送回非WINS 工作站。如果在同一网段内没有WINS 服务器可供查询,WINS 代理会跨越路由器(Router) ,向其它网段内WINS 服务器查询。
任何一台Windows for Workgroups3. 11、WindowsNT3. 5x 和WindowsNT4 ,0 的计算机都可以设置为WINS 代理。WINS 工作站与非WINS 工作站通讯可通过WINS服务器查询IP 地址,但必须将非WINS 工作站的IP 地址以静态映射方式输入WINS 服务器数据库中。
NT4. 0 WINS 服务器不是缺省安装,需要时可安装。安装过程同DNS。WINS 服务器可利用“WINS 管理器”进行配置和管理WINS 服务。2
LMHOSTS 文件在TCP/ IP 网络中,LMHOSTS 文件也是解决名字解析的方法之一。LMHOSTS 文件是一个纯文本文件,保存在%Systemroot % \ System32 \ Drivers \ etc 目录中。LMHOSTS 文件保存着计算机名与IP 地址的对应数据。
这些数据需系统管理员手工建立,当工作站的IP 地址或名字更改时,必须修改LMHOSTS 文件中的相应数据项。LMHOSTS 文件中除了本网内计算机名与IP 地址的对应数据外,还可以包含其它网段内的名字与IP 地址的对应数据。
当计算机的Microsoft TCP/ IP 协议安装后,已默认启用查询LMHOSTS 文件的功能,且LMHOSTS 文件已经建立,如果真的要启用它,还需输入相应数据。如不想启用此功能,可通过“开始—→设置—→控制面板—→网络协议—→TCP/ IP —→属性—→WINS 地址—→启用LMHOSTS 查询”选项来停用此功能。
LMHOSTS 文件分布在全网每一台计算机上,当NT网络中的计算机安装了TCP/ IP 协议后,如果不启用DNS 和WINS 查询IP 地址,首先利用广播方式查询IP地址,若查询的计算机位于其它网段,广播方式无效,转而查询LMHOSTS 文件;如果NT网络启用了WINS 功能,首先向WINS 服务器查询IP 地址,若查询失败,改为广播方式,再失败,才查询LMHOSTS 文件。2
名字解析映射现有系统在名字解析映射中,DNS一直扮演着重要的角色,只要用户提供一个域名,它可以将其解析为一个IP返回。一体化网络服务解析映射模块的设计宗旨是设计一个全新的解析映射机制,在继承DNS优点的基础上,克服DNS所存在的一些固有缺点。3
新系统设计图为名字解析映射系统,它是一个重叠结构,主要由3层组成:中继层、实现层和维护层。其中,中继层的主要功能是控制用户的接入,以及处理用户注册或查询资源名字的请求。实现层和维护层联合工作,实现了各种资源名字的注册与查找,其中实现层维护一个Chord系统,而维护层维护一个向量空间(向量空间是指某一个服务器知道该层其他服务器的所有信息)。3
系统具体实现中继层上各节点分别与实现层上1~3个节点相连,通过这些相连的节点进入系统注册或获取服务所需的连接信息。实现层维护一个Chord环,该层中的各节点维护两组表项——父节点表项和路由表项。其中路由表项与原Chord算法中实现方式一致4(,而父节点表项内容为管理该节点的维护层节点ID。维护层维护两组表项—— 区域表项和管理表项,区域表项用于维护实现层的一部分连续区域,管理表项用于指示在这个区域内有哪几个节点存活。3