五、 NetBIOS的名字解析
在“你问我答”中我们多次提到,要在局域网的“网上邻居”中看到网络中的其它计算机,就必须安装 NetBEUI 协议。这实际就是 Windows 系统的浏览服务,通过这一服务,系统可以创建 NetBIOS 计算机名列表,这些计算机名再以组名为条件排序,用户就可以利用“网上邻居”或 NET View 命令来显示结果了。<> NetBIOS 名包含的内容:</P><> NetBIOS 名??即计算机名称,用来标识独立的用户或计算机。独立的 NetBIOS 名是工作组的成员,它们属于一个默认的工作组或由用户自定义可以加入一个自选的工作组。</P><> 工作组名??用来标识某个工作组的成员。</P><P> 域名??同工作组名一样,域名也是一种 NetBIOS 组名,它是通过域控制器来标识、证实其成员的。但在域名服务中这两者被认为是一样的,这也就是在“网络 控制面板”的属性的“标识”页框中只有计算机名、工作组、计算机说明等项目而没有“域名”的原因。</P><P> NetBIOS 名的登记:</P><P> NetBIOS 在小型网络中登记名字的方法是广播。NetBIOS 名字服务提供的功能有:自动登记名字、查询名字、响应名字查询、在关机时释放名字等,但它并不需要专门的名字服务器,甚至可以通过直接通信来进行名字登记。</P><P> NetBIOS 名字的解析方法(绑定协议为TCP/IP)</P><P> 1、NetBIOS 名字缓存??本地的名字缓存通过预先加载或地址解析而将地址在存放在客户机的内存中。其优点是从缓存中查询名字的速度特别快,缺点是缓存中每条记录的生存周期只有10分钟,需要不停的刷新。</P><P> 2、广播查询??如果名字在缓存中不能被查询到,同时系统没有配置 WINS 服务器,系统就使用 UDP 端口137和138的 NetBIOS Datagram Distribution Service(NDDS,中文意思就是 NetBIOS 数据报分布服务)来进行查询。本地网上的计算机在网络中搜索它们的名字列表,如果目标主机在同一网络中,就发出一个响应。缺点是 NDDS 服务不能通过路由器,只能在单段网络上使用广播查询。</P><P> 3、WINS??这个我们已经做了专门的介绍,客户机通过配置使用 WINS 服务器来登记和撤消自己的名字。其优点是可以指引 UDP 端口137和138的消息通过路由器,使得可以查询本地网以外的主机。</P><P> 4、LMHOSTS??这与我们讲到的名字缓存有关了。LMHOSTS 是一种在存储在本地机器上的纯文本的主机文件,采用的是 LAN Manager格式。其一般是在广播查询失败后才用到,其方法是通过标记 #PRE 将 LMHOSTS 名预先加载到本地的 NetBIOS 名字缓存,以避免使用广播查询用到的主机名。</P><P> 这里我们同时看看 Windows 系统中用到的另外两种名字解析方法:</P><P> 1、HOSTS??HOSTS 也是一种在存储在客户本地机器上的纯文本主机文件,但采用的是 UNIX格式。同样是在广播查询失败及 LMHOSTS 查询失败后才用到。其优点是可以存储别名和全域名,其缺点是不支持 Tag 操作。</P><P> 2、DNS??这一点我们也已经做了专门讲述了。如果客户机允许“启动 DNS”来进行 Windows 名字解析,客户机在上面的所有查询操作都失败后将查询 DNS 服务器。</P><P> 我们可以看出这两种解析方式是一种域名查询方式,一般说来它们用于 IP 主机名的解析。</P><P> 接下来,我们来看一下 HOSTS 文件,对于 LMHOSTS 我们准备作为一个专题独立出来集中讲述。</P><P> HOSTS 文件的示范文件可以在 C:\WINNT\SYSTEM32\DRIVERS\ETC 目录中得到,其文件名是:HOSTS.SAM。SAM 即 SAMPLE,是Microsoft 提供给用户的一个如何配置 HOSTS 的例子,其中带有说明性的文字。在用户需要进行 HOSTS 配置的时候,可以直接将其改名复制为 HOSTS 并做相应修改即可。</P><P> HOSTS 文件包含了 IP 地址及主机名称等信息。下面就是该文件的内容:</P><P># Copyright (c) 1993-1995 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows NT.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost</P><P> 这里的示例是将 rhino.acme.com 映射到地址 102.54.94.97。注意地址和主机名之间必须有空格。另外,一个地址可以使用多个名称,方法就是添加别名(跟在主机名后面,用空格隔开)。这在 UNIX 系统中可以将大、小写的所有名称都添加进去(因为 UNIX 区分大小写),如果希望将多个不同的名称解析到同一地址也可使用这一方法。示例中的#就是是我们上面的说到的由微软提供的说明性文字。
</P> |