On a small LAN, with no DNS or WINS server, you'll use NetBIOS Over TCP for local name resolution. NetBT based name to address resolution is a pretty complex process, and a rather common cause of problems in Windows Networking.
To identify a possible problem on your LAN, start by running "ipconfig /all" in a command window, or in a Windows Vista command window. The value of NodeType will tell you if you have a problem with network based resolution. Remember to allow for local resolution too.
You might see output similar to this:
Windows IP Configuration
Host Name . . . . . . . . . . . . : MyComputer
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Broadcast
You might see any of 5 values for Node Type, and the various values will have varying effects on address resolution.
Broadcast Node Type
For a small LAN with no name server, Broadcast, or B-node, makes the most sense. Broadcast simply resolves by broadcasting an address query to all computers on the subnet, then responds promptly with "name not found" if no response is received from the broadcast.
Note that Broadcast, and the variants of Broadcast (Hybrid / Mixed), depend upon packets broadcast over NetBIOS Over TCP (NetBT). Make sure that your DHCP server, if you have one, is setup to enable NetBT. If you're on a small LAN with a NAT router providing DHCP, make sure that NetBT is explictly Enabled on each computer, and make sure that all personal firewalls are properly configured for NetBT. Without NetBT, you'll need a DNS server, for name resolution.
Also note that the effect of NetBT Broadcast name resolution is much more pronounced on a large LAN with slow network speed, or with congestion. In a small LAN, with modern, high-speed components, the effects of NetBT broadcast will be minimal. For most small LANs, NetBT Broadcast is a perfectly acceptable method of name resolution.
Hybrid Node Type
Node type Hybrid, or H-node, will work on a small LAN, but it may cause response issues. Hybrid queries the name server first, using directed NetBT, not broadcast NetBT. If there is no name server, the computer has to wait for the name server query to time out, before trying to resolve by Broadcast.
Mixed Node Type
Node type Mixed, or M-node, will work on a small LAN, but it may cause response issues when trying to resolve invalid names. Mixed tries Broadcast first, then queries the name server if no response is received to the broadcast. If a computer with the desired name does not exist, the computer has to wait for the name server query to time out before responding with an error 53, "name not found".
Peer-Peer Node Type
Node type "Peer-Peer", more appropriately called "Point-Point", is a problem on most small LANs. That means MyComputer requires a WINS server to resolve names. No WINS server means no name resolution, no access to its shared resources, and the dreaded "Name Not Found" error (among various symptoms).
Microsoft has documented (KB903267): a fix for this. You'll need to run the Registry Editor on MyComputer. You need to find the key [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NetBT \Parameters], and delete these two values (which ever is there):
After restarting the computer, rerun IPConfig and examine the results.
Unknown Node Type
An Unknown node type, if a WINS server is configured, will be treated as Hybrid. If you actually have a WINS server, then fine. If not, this could cause name resolution latency.
On a small LAN, with no WINS configuration, Node Type Unknown should not be a problem - Unknown will be treated as Broadcast. However, Microsoft has documented (KB310570): a fix for this, if seeing "Unknown" bothers you.
To resolve this issue, use Registry Editor (Regedit.exe) to locate the following key in the registry:
HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Netbt \Parameters
Change the value of the EnableProxy value in the preceding registry key to 0 or 1, quit Registry Editor, and then restart your computer.
The above fix simply says to change the value specified. Some people discover that their system has no registry entry for that value. If that's the situation you find yourself in, simply add a REG_DWORD value of that name, with value "0". Apparently, changing (or adding) that value forces the system to recalculate the correct value of NodeType.
Changing The Node Type
There's no GUI applet to change Node Type. You'll have to use the Registry Editor, and change value [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NetBT \Parameters \DHCPNodeType], or [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NetBT \Parameters \NodeType] (which ever is there), or add [HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \NetBT \Parameters \NodeType].
The Total Picture
Microsoft, in Microsoft Windows NT Browser: Microsoft TCP/IP and Name Resolution, summarises the sequence of events involved in NetBT based name resolution.
(Click on either of the above 2 images for a larger view).
For more information, see:
- Microsoft: (KB160177): Default Node Type.
- Microsoft: Enterprise Design for WINS.
- Microsoft: Integrating DNS with WINS.
- Microsoft: (KB310570): "Ipconfig /All" Command Shows the Node Type as Unknown.
- Microsoft: Microsoft Windows NT Browser: Microsoft TCP/IP and Name Resolution.
- Microsoft: (KB314053): TCP/IP and NBT configuration parameters for Windows XP.
- Microsoft: TechNet: Name Resolution Technologies.
- PChuck: The DNS Server Settings On Your Computer.