在前两篇中,我们分别介绍了微软的Windows 2000以前版本和以后版本中计算机名称注册和解析原理,本篇要介绍的是这些Windows系统是如何通过以上名称注册和解析原理来实现在“网上邻居”上的浏览的。这就是要涉及到Windows系统中的一个非常重要的服务——Computer Browser Service(计算机浏览器服务)。
计算机浏览服务
是一系列分布式的含有可用的网络资源列表,这些列表分布在一些计算机上,提出浏览请求的计算机充当浏览工作站,而提供浏览列表的计算机充当浏览服务器。
一、浏览服务概述
一、浏览服务概述
每个子网上基于Windows系统的计算机操作均使用计算机浏览器服务。用作浏览器的计算机维护浏览列表,其中包含网络上使用的所有共享资源。Windows早期版本提供的某些网络应用程序如“网上邻居”、NETVIEW命令及WindowsNT资源管理器均需要进行浏览。
例如,当用户在运行Windows95的计算机上打开“网上邻居”时,将生成域和计算机的显示列表。该操作通过计算机从同一子网中的浏览器计算机获得浏览列表副本完成。网络上的大部分计算机均按非浏览器操作,但运行计算机浏览器服务的计算机可作为每个子网潜在的浏览器,对于在网络上作为浏览器并维护浏览列表副本的计算机,Windows NT为其分派特殊的职能。理论上来讲,网络上的每台计算机都可以作为浏览服务器提供浏览列表(
Browsing List
)
,但这样一来会造成浏览工作站提出查询请求时,众多计算机同时向浏览工作站提供浏览列表,产生过多的网络流量,降低了网络的性能,同时也会增加CPU的负担。为了减轻网络和计算机CPU的负担,同时为了方便对资源列表进行管理,就需要对提供资源浏览服务的浏览器(并非用于网页浏览的IE之类的软件浏览器,而是指计算机实体)定义各种角色,以便明确分工,各负其责,尽量减少重复无益的流量产生。表1描述了浏览器的种类及运行该服务的计算机为实现网络浏览目的而执行的各种职能:
浏览器类别
|
说明
|
域主浏览器
|
仅用于域环境。在默认情况下,域的主域控制器 (PDC) 完成该任务。
|
收集和维护域中可用服务器的主浏览列表,以及网络中其他域和工作组的名称。
|
|
分配和同步其他子网中主浏览器的主浏览列表,该子网有属于相同域的计算机。
|
|
主浏览器
|
收集和维护子网中可用网络服务器的主浏览列表。
|
完全复制列出的包括主浏览列表的信息以获得网络的完整浏览列表。
|
|
向同一子网上的备份浏览器分发完整列表。
|
|
备份浏览器
|
从主浏览器接收本子网的浏览列表副本。
|
根据请求向其他计算机分发浏览列表。
|
|
潜在浏览器
|
在正常情况下,按非浏览器运行。
|
在接到子网主浏览器指令后才会成为备份浏览器。
|
|
非浏览器
|
不维护浏览列表。
|
可作为浏览客户端操作,从同一子网中从作为浏览器的计算机上请求浏览列表。
|
|
如此配置不能成为浏览器。
|
在某些条件下,如果担任指定浏览器职能的计算机失效或关闭,浏览器(或潜在浏览器)可能改作其他职能。这通常通过称作“浏览器选举”的过程来执行。在Windows操作系统的早期版本中浏览服务可理解为三个关键过程:
(1). 浏览信息的收集
浏览列表由通过使用服务器服务共享资源的计算机组成。运行该服务的每台计算机周期性地向其子网广播包含其配置的域或工作组名的主机声明消息。这些声明由每个子网的主浏览器以在线方式收集并处理。
当子网上的主浏览器收到主机声明后,将发送计算机的名称合并到当前的浏览列表中。如果名称已经存在,则刷新列表。如果名称不存在,则添加到列表。
(2). 浏览信息的分发
浏览列表由子网主浏览器分发给备份浏览器。主浏览器必须周期性地向本地子网广播包含配置的域或工作组名称的声明消息。该消息确认主浏览器在网络上的存在。如果主浏览器在一段时间不能声明自己,则将发生浏览器选举。一旦主浏览器存在或(因失败事件而)被替换,其他备份浏览器周期性地与其联系以获得其所维护子网浏览列表的更新副本。
(3). 向来自客户的浏览请求提供服务
当浏览客户计算机在子网上启动后,将向主浏览器请求在子网上备份浏览器的列表。主浏览器响应该请求并向客户端提供包含三个备份浏览器的列表。浏览客户端则随机地从列表中选择一个备份浏览器并与其联系以获得浏览列表副本。被选中的备份浏览器响应该客户机,给它一个域或工作组的服务器列表。客户机再从该服务器列表中取得这个服务器上的可用资源的列表。
对于接下来的浏览列表请求,客户端继续使用在启动时主浏览器提供的备份浏览器列表并不再广播。该过程的成功首先取决于客户端从主浏览器收到响应,其次是解析从列表中选择的备份浏览器名称的能力。
二、浏览器选举
在NT域环境下或工作组环境下,浏览服务维护着一个浏览列表,它包含所有可使用的域、工作组和计算机名等,是共享资源的目录。当我们使用“网上邻居”时,就在使用这个浏览服务。这些系统的浏览服务系统同样包含了主浏览器、备份浏览器和浏览器客户等角色。
作为主浏览器的计算机起到了维护浏览列表的作用并且周期性地把拷贝发送到作为备份浏览器的计算机上。当浏览器客户需要知道网上有哪些可利用的资源时,向作为备份浏览器的计算机发出API呼叫以得到当前的列表。 主域控制器(PDC)有主浏览器的优先权,这样它就承担了维护它所在的这个工作组的浏览列表的工作。但是它也有关机或重启的时候,这时便产生了主浏览器的选举过程。也就是说,选举发生在当一个计算机不能定位主浏览器时,或具备更优先条件的计算机上线时,或NT主域控制器启动时。按照各自的选举条件,当作为主浏览器的计算机推举出来后,网络浏览才能正常。选举过程可以简化为如下几步:
(1)
.
选举是通过发广播来实现的,如果哪个计算机的选举条件比它收到的报文要好,则它将广播自己的选举条件
,
收到别人的选举条件后每个计算机根据自己在域中的角色延迟不等的时间后再做反应,这样能减少选举条件较差的计算机发送选举报文。
(2)
.
当一个计算机选举成为主浏览器并且它的浏览列表是空时,它将广播一个请求通知的报文,强迫所有的计算机必须在30秒内给予答复,这个30秒的时间是为了防止服务器过载或报文丢失。
(
3
)
.
除了承担主浏览器和备份浏览器任务的计算机外,其他
计算
机将向主浏览器周期性地发布通知,告知自己是可利用的资源。这个时间开始是1分钟、2分钟、4分钟、8分钟,以后就是每12分钟一次了。
(4)
.
如果某个计算机关机了,主浏览器连续3个周期也就是36分钟没有收到它的消息,将认定它不可用,并从浏览列表中删掉它。但是它还留在备份浏览器的计算机里,备份浏览器每隔15分钟呼叫主浏览器一次以获得更新的网络资源列表,也就是说不可用的资源最多要等到36+15=51分钟后才会从网上彻底消失。这就是为什么有的计算机改了名,但旧名字依旧留在网上一段时间的原因。
在一个工作组里有一个主浏览器,那么在多个工作组、多个域甚至多个子网里中又将如何呢?这就需要一个域主浏览器,每个工作组或域的主浏览器要周期性地向这个域主浏览器发送自已所管辖的列表,这个周期开始是1分钟,5次后是15分钟。如果3个周期内没有收到这个报文,域主浏览器也将它从自己的列表中去除。也就是说,当一个工作组失效后,它还将在主列表中保留45分钟。域主浏览器默认为主域控制器,Windows XP Professional版本的计算机不能担此重任。当收到浏览列表后,计算机必须能解析里面的NetBIOS名,这就要求网络的WINS服务或DNS服务必须正常,浏览才能正常,因为浏览的选举过程是通过UDP广播实现的。
作为网络管理员,当网上邻居出现问题时,要一步步分析,看是暂时的还是选举过程出了问题。目前没有办法证明浏览列表是否完整,但有办法发现某可用资源是否在列表里,甚至可以强迫开始一次选举。一般是沿着通信链的路径从第一个应该具有该资源的主浏览器查起,看它是否收到某计算机的通知报文。浏览服务使用的是CIFS/E(Common Internet File System)协议组里的计算机浏览协议,在Windows 2000的计算机环境里使用活动目录来代替它,但为了向下兼容,Windows 2000也支持这个浏览服务。
为了便于说清楚整个浏览服务的工作原理,现举例如下。如
图
1
显示了称作
MIS
的示例域的三个过程的示例。
图
1
在本例中,
MIS
域有三个主浏览器计算机(
PDC-MIS
、
A-MB1
和
C-MB1
),分别位于子网
A
、
B
和
C
上。另外,
PDC-MIS
具有特殊重要性,除了作为子网
B
的主浏览器外还承担域的域主浏览器。
作为各个子网上的主浏览器,这三台计算机执行下列任务以在所有三个子网创建并管理
MIS
域浏览列表的更新和分发:
·处理来自各自本地子网服务器的广播浏览声明。
·相互复制各自本地子网浏览列表。这将最终建立并复制一个完整的域浏览列表,可在三个包含组成域的计算机的子网分配并使用。
·将当前浏览列表复制到各自子网的备份浏览器以提高可靠性和负载平衡。
·当客户请求浏览列表时,各子网的主浏览器用备份浏览器的列表应答本地客户,用于联系并获得浏览列表。客户则用该列表与备份浏览器联系并获得实际的浏览列表副本。
本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/11525如需转载请自行联系原作者
茶乡浪子