Andy,
Here's my currently (unpublished) explanation. Apologies if it's a bit long.
In any large office (enterprise) environment, you have dozens, if not hundreds
of computers. You don't have to constantly turn the browser service on or off
there. How does that work, and why doesn't a Small Office / Home Office (SOHO)
workgroup environment work the same way?
In a computer network, there are clients, and there are servers. A client is any
computer accessing shared data on another computer, and a server is any computer
providing shared data to another computer. A domain, or workgroup, is a
collection of clients and servers which have a common purpose.
The computers operating as clients, and as servers, all run a Windows operating
system, and all connect to a network. That summarises the similarities between
a SOHO workgroup and an enterprise domain. There are an almost infinite number
of differences between them.
How do the clients know which servers are out there, providing shared data for
them? When you look in Network Neighborhood, and see a list of shares (or
don't), where does the list come from (or why are some shares not there)? The
list is provided by the browser subsystem, and any omissions from the list are
the fault of the browsers.
You can't have every server on the network constantly advertising its presence
to every client - that would create chaos. The browser subsystem tames the
chaos. The servers are listed by the browser servers, and the browser servers
("browsers") provide the server list to the clients.
Just as having every server advertise to every client is bad, so would be having
every server advertise to one server, and that one server distribute the server
list to all of the clients. The official recommendation from Microsoft calls
for 1 browser for every 32 computers in the domain (workgroup). If you have
more than 32 computers, you have backup browsers. The backup browsers have
their activity coordinated by a master browser.
If you have more than one computer, you should have a browser. If you have more
than two computers, you should have a backup browser, and a master browser.
With just two computers, the backup and master browser might be the same
computer.
Each backup browser periodically sends its server list to the master browser,
which combines all the lists into one master list, and distributes back to each
backup browser. The backup browsers distribute the list to the clients, which
then have something to display in Network Neighborhood.
In an enterprise domain, the domain controller (master authentication server)
generally acts as the master browser. The domain controller is always online,
and always accessible. There are major problems in a domain environment, if the
domain controller isn't available.
The domain controller functionality, and the browser functionality, both include
failover mechanisms, so there will always be a domain controller, and a master
browser, available if the server providing that functionality becomes
unavailable for any reason.
There are many differences between an enterprise domain environment, and a SOHO
workgroup environment.
In an enterprise domain network, for instance:
1) The role of any computer, as a client or server, is very formal.
2) Servers are traditionally fixed in location, and stay connected.
3) Servers generally run a server operating system.
4) Clients typically only need to know (see) the presence of servers.
5) Clients typically don't become browsers, because there are usually at least
2 servers present on the domain, acting as browsers.
The master browser role, and the browser role, are generally chosen for a
computer running as the domain controller, and for a computer running a server
operating system.
Contrast all that with your typical SOHO workgroup, where you have 2 or more
computers, all sharing data with each other in a web of shares.
1) The role of any computer, as a client or a server, is casual.
2) Some computers, wirelessly or otherwise connected, may move around.
3) Many computers are casually disconnected from the network, or turned off, at
the whim of the owner.
4) Most computers run a client operating system, though acting as servers.
5) All computers need to know (see) the presence of other computers in Network
Neighborhood.
6) All computers become browsers, unless otherwise configured.
7) Many servers have software or settings changes made at the whim of the
owner, which may hamper performace as a client or as a server.
The master browser will be one of the workgroup computers, and be subject to the
treatment of a workgroup computer.
Regardless of all of the above considerations, there is expected to always be a
master browser in any workgroup (domain). Always being a relative term, subject
to the browsers checking for a master browser periodically, not every second.
Short of there being a domain controller in your workgroup (there won't be), or
a computer running a server operating system (there may not be), the server
chosen to be the master browser will probably be the server that's been up the
longest (not necessarily online the longest).
Anytime that a backup browser realises that there is no master browser present
on the domain, the browser is authorised to hold an election to determine a new
master browser.
What happens if any server loses contact with another? If a browser server
loses contact with the master browser, it may elect itself a master browser.
This gives you a workgroup (domain) with 2 master browsers, neither able to see
the other. This is where many browser problems start.
Differences between operating system, and configurations, of the various
servers, combined with changing the identity of the master browser, will make
for an ever changing workgroup, as seen in Network Neighborhood. And complaints
that "I can't always see all the computers in my workgroup" ("always" and "all"
are key words here) become natural.
What happens if the master browser is rebooted? While it's being rebooted, a
master browser election may be held, and when the server that was the master
browser comes back up and online, it may find that it's no longer the master
browser. Or it may not. The more servers online at any time, the more backup
browsers to notice the absence of the master browser when it's rebooted.
Timing is a major issue here. In any domain (workgroup), as I said, there has
to always be a master browser visible to any backup browser. Any time any
backup browser can't contact the master browser, it assumes that there's a
problem with the master browser, and elects a new master browser. The greater
number of backup browsers that there are on the network, the greater the chance
that one backup browser will realise the absence of the master browser, and
start an election.
What if you, on your home workgroup, casually unplug the network cable on the
master browser? Depending upon how long you leave it unplugged, the master
browser may be replaced. If you simply plug the cable back in, you will have a
workgroup with two master browsers. Some servers may still recognise the old
master browser, others the new one.
What if you carry your laptop away from the router, and it loses network
connectivity? If it's a backup browser, and it realises that contact with the
master browser has been lost, it may elect itself master browser. When it
reconnects to the network, the above situation may apply.
There are also challenges when you have computers running Windows 9x (95, 98, or
ME) on the same network with computers running NT (NT, 2000, XP, Server 2003).
The rules for detecting the absence of the master browser ("Browse Master" in
Windows 9x) vary between the 2 platforms. This leads to the problems when a
working LAN of Windows 9x computers has a Windows XP computer added.
<
http://www.microsoft.com/technet/archive/win95/w95brows.mspx>
<
http://support.microsoft.com/?id=246489>
System configurations, and personal firewalls, may affect the ability of a
server to be seen by a browser, or to act as a master browser. The
restrictanonymous registry setting may prevent any server from being seen by a
browser. Any personal firewall, depending upon configuration, may prevent a
server from being seen as a master browser, or may prevent a master browser from
communicating with the backup browsers.
The bottom line is, in a SOHO workgroup environment, if you can't control the
above factors (and the chaotic environment makes that unlikely), the best thing
to do is to restrict the number of browsers on the network. By doing that, you
lessen the possibility of master browser changes and conflicts. So the advice
given is generally to use one (or two, with the second being the backup)
browsers, and turn the service off on all others.
The Microsoft Browstat program will show us what browsers (I'm not talking about
Internet Explorer here) you have in your domain / workgroup, at any time.
http://support.microsoft.com/?id=188305
You can download Browstat from either:
<
http://www.dynawell.com/reskit/microsoft/win2000/browstat.zip>
<
http://rescomp.stanford.edu/staff/manual/rcc/tools/browstat.zip>
Browstat is very small (40K), and needs no install. Just unzip the downloaded
file, copy browstat.exe to any folder in the Path, and run it from a command
window, by "browstat status". Make sure all computers list the same master
browser.
For more information about the browser subsystem (very intricate), see:
http://support.microsoft.com/?id=188001
http://support.microsoft.com/?id=188305
http://support.microsoft.com/?id=231312
<
http://www.microsoft.com/technet/prodtechnol/winntas/deploy/prodspecs/ntbrowse.mspx>
<
http://www.microsoft.com/technet/archive/win95/w95brows.mspx>
Summary rules for dealing with the browser:
1) Diagnose the problem before making changes to the browser infrastructure.
As I said, the complaint "I can't always see all of the computers from every
computer" is a good symptom of a browser conflict. Lack of "always" or "all" in
the complaint may indicate a different cause. Don't go changing the browser
setup without having some chance of producing results.
2) Browstat, which only works on Windows NT systems, is a good diagnostic tool,
when only Windows NT / 2000 / 2003 / XP systems are involved.
3) It is best to run the browser service on any wired server on the LAN, and
let the browser subsystem elect a master browser as necessary.
4) If you have a small LAN with no computers running a server OS, all servers
are potential master browsers. If you take any server offline, and it is
powered up, you need to power it off before reconnecting it (or at least restart
it while reconnecting it). Or be prepared to diagnose browser conflicts.
5) If you have a small LAN with no computers running a server OS, and any of
the servers are wirelessly connected, disable the browser service on all
wirelessly connected servers. Or be prepared to diagnose browser conflicts.