名称解析,就是把一个文本类型的计算机名映射到一个数字类型IP地址,分为主机名称解析和NetBIOS名称解析两类。
程序简介
名称解析就是将
文本状态的计算机名映射为
IP地址的过程。Windows 2000支持两种名称解析方式:主机名称解析和NetBIOS解析。主机名称解析是将计算机主机名解析成IP地址,而NetBIOS解析是将NetBIOS名称映射成对应的IP地址。两种名称解析方式使用不同的方法实现名称解析。主机名解析可以通过Hosts 主机名文件或DNS 服务器实现,而NetBIOS名称解析可以通过Lmhosts 文件或WINS
服务器实现。
主机名解析
DNS是Windows2000和WindowsXP用于命名主机计算机的标准。与NetBIOS所提供的单层名称空间不同,DNS提供的是多层次名称空间。
用于DNS名称解析的机制包括Hosts文件、DNS本身和DNS解析器
缓存。
主机名的概念
主机名几乎用于所有的TCP/IP环境。下面列出了对主机名的描述:
1.主机名是
管理员为计算机分配的别名,别名用于识别TCP/IP主机。主机名不需要与NetBIOS计算机名相符,它可以是任何一个256字符的
字符串。可以为同一台主机分配多个主机名 ;
2.主机名简化了用户对其他TCP/IP主机的称呼方法。主机名比IP地址容易记忆,使用Ping工具或其他TCP/IP工具时,可以用
主机名代替IP地址;
3.主机名总是与一个IP地址相对应的,该IP地址
存储在Hosts文件、DNS数据库或NetBIOS名称服务器中;
4.主机名显示的是分配给
系统的主机名。在默认情况下,主机名和基于Windows的计算机名称相同。
DNS解析器缓存
Windows2000和WindowsXP有一个用于存放近期解析过的名称的缓存。当需要解析一个名称时,系统将搜索该缓存。如果没有找到要解析的名称,那么将使用其他解析方法。 使用ipconfig/displaydns可以查看
DNS解析器缓存。
使用Hosts进行名称解析
Hosts文件与只用于
远程主机的Lmhosts文件不同,它把本地主机和远程主机的主机名都映射到它们的IP地址。过程如下:
1.当用户使用主机名来输入一条命令(如
Ping命令)时,主机名称的解析就开始了。
2. 这台
计算机会检查主机名与本地主机名是否一致。如果一致,计算机就成功地解析了名称(目标主机与源主机相同),并使用该主机的IP地址。
3. 如果两个主机名不同,就会按顺序读取Hosts文件。如果在Hosts文件中找到主机名,那么主机名将被解析成一个IP地址。
4.如果无法解析主机名,并且没有
配置其他解析方法(如DNS、NetBIOS名称服务器、广播或Lmhosts文件),那么就中止解析过程,并显示一个错误消息。
使用DNS的名称解析
DNS服务器是一个在线
数据库。它将FQDN和其他主机名解析成IP地址。通过配置,可以使Window2000和
WindowsXP的所有版本都使用DNS
服务器,而使Windows2000的所有服务器版本都提供DNS服务器服务。使用DNS服务器解析
域名同使用Hosts文件解析域名的过程相似。
通过配置,使Windows2000或WindowsXP使用
DNS服务器来解析主机名的过程如下所述:
当用户使用FQDN或主机名输入一条命令时,DNS服务器在它的数据库内寻找该名称,并尝试把它解析成一个IP地址。如果DNS服务器无法解析该名称,那么该DNS服务器可以查询其他DNS服务器,请求它们帮助完成这个名称解析。
如果其他DNS服务器没有对该请求作出响应,那么计算机会再发出若干次请求。如果仍然没有任何响应,并且没有配置其他解析方法(如NetBIOS名称服务器或Lmhosts),那么就中止解析过程,并报告一个错误。
NetBIOS名称解析
NetBIOS名称就是计算机名。某些Windows
操作系统使用它来识别网络上的计算机。一台计算机要建立与另一台计算机的通信,就必须把对方的计算机名解析成一个IP地址。
NetBIOS名称解析的特有机制包括:广播、Lmhosts文件和NetBIOS名称服务器。
NetBIOS名称的概念
NetBIOS名称长度为16个字节。与255个字符的DNS主机名不同,NetBIOS名称是另一种计算机命名的方法。Windows2000和WindowsXP的多数功能使用
DNS名称,但是如果网络上有一些计算机运行Windows早期版本,或装有依赖于NetBIOS名称的应用程序,那么就必须进行NetBIOS名称解析。
1. NetBIOS名称注册
当计算机服务启动,以及用户登录时,将动态注册NetBIOS名称。NetBIOS名称既可以注册为惟一名称,用于映射惟一地址,又可以注册为组名称,用于映射多个地址。
2.NetBIOS名称注册举例
Windows2000的Server服务是使用NetBIOS名称服务的一个例子。Windows2000的Server服务提供文件和打印机共享。用户启动计算机时,该服务注册一个基于计算机名的惟一NetBIOS名称。注册名由15个字符的计算机名加上第16个字符0x20构成。这第16个字符惟一地标识了Server服务。
当用户尝试使用NetBIOS名称来连接到一个
共享文件夹时,将启动一个名称查询,用于搜索Server服务的NetBIOS名称。一旦找到该NetBIOS名称就建立
通信,这样用户就可以连接到该
共享文件夹所在的服务器
3.浏览
WindowsNT、Windows2000和WindowsXP可以创建已注册NetBIOS名称的列表,使用户能够在网络上找到含有
共享资源的计算机。建立这些列表的过程称为“浏览”。
要在Windows2000上访问共享资源,可以执行以下步骤:
1)打开“网上邻居”,然后双击“整个网络”;
2)单击“全部内容”;
3)双击“MicrosoftWindows网络”;
4)双击适当的域或工作组,然后双击该资源所在的计算机名。
广播名称解析
当WINS
服务器不可用时,运行Windows2000之前版本的
操作系统(如Windows 98)的计算机将使用广播消息把NetBIOS名称解析成IP地址。这个方法比较简单,效率也相当高。当遇到网络上另一台计算机的NetBIOS名称时,计算机会生成一系列“名称查询请求”消息,并把这些消息作为广播传送给本地网络上所有其他计算机。使用该查询消息中指定的NetBIOS名称的计算机就会向发出查询的计算机发送一条“肯定名称查询响应”消息,该消息中含有前者的IP地址。发出查询的计算机将使用这个IP地址向目标计算机发送单播消息。
广播名称解析法存在两个主要的问题。第一,广播只能用于解析本地
网络的计算机名。因为广播传输局限于产生广播的
局域网(LAN)内,所以即使LAN之间有
路由器连接,Windows计算机也无法使用该方法来解析其他LAN内的计算机名。在WINS普及之前,
网络管理员通常把广播与一个LM
HOSTS文件结合使用。这个个LMHOSTS文件专门用于存放其他LAN上NetBIOS名称的解析。第二,这个方法会在网络上产生大量的广播传输,使得网络上所有计算机的
网络接口适配器都要接收、检查和丢弃大量目标为其他计算机的消息。要解决这个问题,就需要安装只使用单播传输的WINS服务器。
使用Lmhosts的名称解析
当发送一个在同一
子网内的NetBIOS名称解析的广播后,如果
广播没有返回IP地址,
Microsoft客户端计算机就会读取Lmhosts文件。Lmhosts文件是一个静态
ASCII文件,用于解析远程NetBIOS计算机的NetBIOS名称。Lmhosts文件有以下特点:
1.它解析早期Windows命令(如netuse)所使用的NetBIOS名称 ,每项都由一个NetBIOS名称和它对应的IP地址组成 ;
。
使用NetBIOS名称服务器的名称解析
解析
本地和
远程NetBIOS名称,最常用的方法是使用NetBIOS名称服务器。当用户启动某些命令,或使一个NetBIOS应用程序与
网络进行交互时,NetBIOS名称的解析进程就开始了。
客户端计算机将先查NetBIOS名称缓存,以查找目标主机的“NetBIOS名称/IP地址”映射。如果在
缓存内找不到NetBIOS名称,那么客户端计算机就尝试使用其他办法来确定目标主机的IP地址。
如果使用NetBIOS名称缓存无法解析名称,那么就把该目标主机的NetBIOS名称发送到NetBIOS名称服务器,该NetBIOS名称服务器已配置为源主机。把NetBIOS名称解析成IP地址后,NetBIOS名称将返回源主机。