Skip to main content

Name Resolvers: WINS vs. DNS

What do WINS and DNS do?
Windows NT 3.5 offered the Windows Internet Name Service (WINS). Most of us had no idea what it did, but we soon figured out that we pretty much needed it. The rest of the Internet world seemed to be using something similar, but incompatible: the Domain Name System (DNS).
What is WINS, and, well, why isn't it DNS? The short answer is that WINS and DNS have somewhat different jobs. Consider the two following commands, both issued to the same server:
ping and net use * \\server01 \mainshr
The ping command refers to the server as server01.big The net use command calls the same server server01. The difference is important.
Why Two Different Names?
The ping command is a platform-independent, TCP/IP/Internet kind of command. It's valid on UNIX, VMS, Macintosh, and MVS--so long as the machine is running a TCP/IP protocol stack. On any of these platforms, you can issue a ping only if you're running TCP/IP. The command's syntax is the same on every OS, but the response varies from platform to platform. For example, when the command is successful, many UNIX implementations of ping return the message, " is alive" (UC Berkeley used to have a machine named Elvis, so you could type ping Elvis and get the response, "Elvis is alive"). In contrast, Microsoft implementations of ping respond with something like, "Reply from [IP address]..."
In contrast to ping, net use is a Microsoft platform-specific networking command that is independent of protocol. You can do a net use on an NT network, no matter what protocol you're running, but the command usually isn't valid on a UNIX, VMS, Mac, or other machine. Microsoft networking is designed to work on PCs and machines built on the MIPS, PowerPC, and Alpha chip sets.
The difference between ping and net use goes back to the network API that each command is based on. The ping command is based on the TCP/IP Sockets interface--actually, on the common PC implementation of TCP/IP Sockets, the Winsock interface. Basing ping on Sockets was a good idea, because this approach makes creating a ping for any OS simple, as long as the computer has a Sockets interface. In fact, people use basically the same source code to create ping for PCs, UNIX machines, VMS machines, and Macs.
The reference is to a DNS name, so for ping to recognize, you need a DNS name resolver (a DNS server) on your network. The ping command works only with IP addresses, not names; ping must know that is at IP address Translating from the human-friendly name server01.big to the ping-friendly is Winsock's job, and it calls on DNS to help. That need for two types of address is why NT 4.0 has a DNS server--to handle name resolution for Winsock-based programs.
net use is built on a different programming interface, the NetBIOS API. This API is based on a fairly old and simple network protocol that Sytek and IBM invented in the mid-1980s. The original NetBIOS protocol no longer exists: It has mutated into the NetBEUI protocol. Because existing networking programs were built under the assumption that NetBIOS would continue to be around, NetBEUI retained NetBIOS as its programming interface.
By the way, when you read network documentation, remember that NetBEUI is the network protocol and NetBIOS is the network programming interface that first appeared on NetBEUI. Although I'm drawing my examples from the net commands, they're not the only important programs built on NetBEUI. The Microsoft File Server System and Network Neighborhood are examples of two applications that won't work on a computer that doesn't have NetBIOS.
NetBEUI was Microsoft's protocol of choice until as recently as 1993, I recall Microsoft bigwig Steve Ballmer preaching that the speed of what he called JetBEUI would assure NetBEUI's eventual preeminence in the networking market. So Microsoft's networking tools have traditionally been built on NetBIOS, NetBEUI's programming interface. The net.exe program, the networking shell for Microsoft networking, cannot run unless NetBIOS is present and cannot use other programming interfaces such as Winsock. (However, Microsoft intends to eventually change that restriction: A version of net.exe called inet.exe works just like net but runs atop Winsock.)

Popular posts from this blog


The BCD registry file controls which operating system installation starts and how long the boot manager waits before starting Windows. Basically, it’s like the Boot.ini file in earlier versions of Windows. If you need to edit it, the easiest way is to use the Startup And Recovery tool from within Vista. Just follow these steps: 1. Click Start. Right-click Computer, and then click Properties. 2. Click Advanced System Settings. 3. On the Advanced tab, under Startup and Recovery, click Settings. 4. Click the Default Operating System list, and edit other startup settings. Then, click OK. Same as Windows XP, right? But you’re probably not here because you couldn’t find that dialog box. You’re probably here because Windows Vista won’t start. In that case, you shouldn’t even worry about editing the BCD. Just run Startup Repair, and let the tool do what it’s supposed to. If you’re an advanced user, like an IT guy, you might want to edit the BCD file yourself. You can do this

DNS Scavenging.

                        DNS Scavenging is a great answer to a problem that has been nagging everyone since RFC 2136 came out way back in 1997.  Despite many clever methods of ensuring that clients and DHCP servers that perform dynamic updates clean up after themselves sometimes DNS can get messy.  Remember that old test server that you built two years ago that caught fire before it could be used?  Probably not.  DNS still remembers it though.  There are two big issues with DNS scavenging that seem to come up a lot: "I'm hitting this 'scavenge now' button like a snare drum and nothing is happening.  Why?" or "I woke up this morning, my DNS zones are nearly empty and Active Directory is sitting in a corner rocking back and forth crying.  What happened?" This post should help us figure out when the first issue will happen and completely avoid the second.  We'll go through how scavenging is setup then I'll give you my best practices.  Scavenging s

AD LDS – Syncronizing AD LDS with Active Directory

First, we will install the AD LDS Instance: 1. Create and AD LDS instance by clicking Start -> Administrative Tools -> Active Directory Lightweight Directory Services Setup Wizard. The Setup Wizard appears. 2. Click Next . The Setup Options dialog box appears. For the sake of this guide, a unique instance will be the primary focus. I will have a separate post regarding AD LDS replication at some point in the near future. 3. Select A unique instance . 4. Click Next and the Instance Name dialog box appears. The instance name will help you identify and differentiate it from other instances that you may have installed on the same end point. The instance name will be listed in the data directory for the instance as well as in the Add or Remove Programs snap-in. 5. Enter a unique instance name, for example IDG. 6. Click Next to display the Ports configuration dialog box. 7. Leave ports at their default values unless you have conflicts with the default values. 8. Click N