在TCP/IP网络中,为解决计算机名称于IP地址的对应问题,用户可以利用HOST文件、DNS等方式,但使用这些方法都存在着一个最大的问题,就是网络管理员需要以手工方式将计算机名称(NetBIOS名)及其IP地址一一输入到计算机中,一旦某台计算机的名称或IP地址发生变化,管理员又需要修改相应的设置。这对于管理员来说是一项繁重的工作。而微软提供的网际名称服务WINS解决了这个问题。利用它可以让客户机在启动时主动的将它的计算机名称(NetBIOS名)及IP地址注册到WINS服务器的数据库中,在WINS客户机之间通信的时候它们可以通过WINS服务器的解析功能获得对方的IP地址。由于以上工作全部由WINS客户机与服务器自动完成的所以大大降低了管理员的工作负荷,同时也减少了网络中的广播。在理解及使用WINS之前用户首先应该了解计算机名称(NetBIOS名)的一些知识。
1.1定义计算机名(NetBIOS名)
NetBIOS是80年代末为了利用IBMPc构建局域网而出现的一种MS-DOS程序的高级语言接口。为了利用网络硬件和软件将这些计算机连接在一起组成局域网,微软和其它供应商利用NetBIOS接口来设计它们的网络组件和程序。NetBIOS接口利用最多为16个字符的名称来标识每一个网络资源。
在一个网络中NetBIOS名是唯一的。在计算机启动、服务被激活、用户登录到网络时,NetBIOS名将被动态的注册到数据库中。NetBIOS可以以独立名称的形式注册,也可以以组名称的形式注册。以单机名注册时要有一个IP地址与其相对应,如以组名称注册时会有多个IP地址与其对应。
在Windows2000发布前的所有基于MS-DOS和Windows的操作系统都需要使用NetBIOS名称接口以便网络可以正常工作。伴随着Windows2000的发布,网络中的计算机不再需要NetBIOS名称接口的支持。如在Windows2000和一些UNIX版本的网络中它们只要求客户机支持DNS使用就可以了,不再需要NetBIOS名。但为了与以前版本的网络操作系统结合使用,微软在Windows2000中仍然支持NetBIOS名,以便与以前版本的操作系统协同使用,微软通过两方面实现对NetBIOS名的支持:
所有使用Windows2000的客户机在默认情况下都支持利用客户端的WINS服务注册和解析NetBIOS名。
§Windows2000服务器继续提供一个高效的WINS服务器,用它来管理网络中的NetBIOS名。
定义NetBIOS名称
NetBIOS名称包含16字节。前15个字节是由用户指定的,用它来表示:
§网络上的单个用户或计算机
§网络上的一组用户或计算机
在NetBIOS名中的第16个字符作为名称的后缀,用于识别名称及显示注册名称的信息。NetBIOS名可以被设置为独立名称或组名称。
在使用独立名称时,是将网络信息发送给一台计算机,而使用组名称是将网络信息同时发送给多台计算机。
在WindowsNT早期版本中,所有的网络服务都是利用NetBIOS名注册的。而在Windows2000中,登录网络及其它的网络服务都是在DNS中进行注册的。
1.2NetBIOS名的解析
NetBIOS名的解析就是将计算机的NetBIOS名成功的与IP地址进行映射的过程。从上面用户已经知道NetBIOS名是用来识别网络上NetBIOS资源由16个字符组成的地址。让用户通过下面这个例子了解NetBIOS名是如何解析的。
一台Windows2000的计算机(CORPSERVER)中运行的文件与打印共享服务的NetBIOS名的解析过程。当计算机启动时文件与打印共享服务利用计算机名在网络上注册一个独立NetBIOS名。这个NetBIOS名前15位字符是计算机名,第16位字符为0x20。如果计算机名不够15个字符,那么利用空格补齐。(即:CORPSERVER[20])。当用户试图与这台计算机的共享文件夹建立通信时必须指明它的文件与打印共享的NetBIOS名。在建立文件与打印共享连接前,首先要建立TCP连接,为了建立TCP连接首先要将NetBIOS名(即:CORPSERVER[20])解析成IP地址。
WINS客户机主要利用广播、LMHOSTS文件、WINS服务器三种方式的组合解决NetBIOS名解析的问题,根据组合方式的不同分成了四种NetBIOSnode模式,见下表:
Node模式
描述
B-node(broadcast)
B-node用户利用广播NetBIOS名查询的方法实现名称的注册和解析;在广播失败后,查询Lmhosts文件,寻找相应的地址
P-node(peer-peer)
利用点对点的方式直接向WINS服务器查询相应NetBIOS名的IP地址。
M-node(mixed)
M-node是把B-node和P-node组合在一起。默认情况下使用广播的方式,如果失败,再向WINS服务器进行查询。
H-node(hybrid)
H-node是把B-node和P-node组合在一起。默认情况下向WINS服务器进行查询,如果失败,再使用广播的方式。如果两种方法都失败,则查询Lmhosts文件,寻找相应的地址。
运行Windows2000的计算机默认使用B-node模式,当为它们设置了WINS服务器后,改用H-node模式。Windows2000也能使用本地数据库文件Lmhosts解析NetBIOS名。此文件存放在:SystemRoot\System32\Drivers\Etc文件夹中。
用户一定要为基于活动目录的Windows2000计算机设置一个WINS服务器的IP地址,以便它们可以与无法使用活动目录的WindowsNT、Windows2000,Windows95、Windows98计算机进行通信。
Windows Internet Name Service
微软开发的域名服务系统。
WINS是Windows Internet Name Server(Windows网际名字服务)的简称。WINS为NetBIOS名字提供名字注册、更新、释放和转换服务,这些服务允许WINS服务器维护一个将NetBIOS名链接到IP地址的动态数据库,大大减轻了对网络交通的负担。
一.我们为什么需要WINS服务
在默认状态中,网络上的每一台计算机的NetBIOS名字是通过广播的方式来提供更新的,也就是说,假如网络上有n台计算机,那么每一台计算机就要广播n-1次,对于小型网络来说,这似乎并不影响网络交通,但是当大型网络来说,加重了网络的负担。因此WINS对大中型企业来说尤其重要。
二.WINS工作原理
上面说过,WINS服务器为客户端提供名字注册了、更新、释放和转换服务,下面就详细介绍这四个基本服务的工作原理:
1.名字注册
名字注册就是客户端从WINS服务器获得信息的过程,在WINS服务中,名字注册是动态的。
当一个客户端启动时,它向所配置的WINS服务器发送一个名字注册信息(包括了客户机的IP地址和计算机名),如果WINS服务器正在运行,并且没有没有其它客户计算机注册了相同的名字,服务器就向客户端计算机返还一个成功注册的消息(包括了名字注册的存活期----TTL)。
与IP地址一样,每个计算机都要求有唯一的计算机名,否则就无法通信。如果名字已经被其它计算机注册了,WINS服务将会验证该名字是否正在使用。如果该名字正在使用则注册失败(发回一个负确认的信息),否则就可以继续注册。
2.名字更新
因为客户端被分配了一个TTL(存活期),所有它的注册也有一定的期限,过了这个期限,WINS服务器将从数据库中删除这个名字的注册信息。它的过程是这样的:
(1).在过了存活期的1/8后,客户端开始不断试图更新它的名字注册,如果收到不到任何响应,WINS客户端每过2分钟重复更新浓度,直到存活期过了一半。
(2).当存活期过了一半时,WINS客户端将尝试与次选WINS服务器更新它的租约,它的过程与首选WINS服务器一样。
(3).如果时间过了一半后仍然没有成功的话,该客户端又回到它的首选WINS服务器了。
在该过程中,不管是与首选还是次选WINS服务器,一旦名字注册成功之后,该WINS客户端的名字注册将被提供一个新的TTL值。
3.名字释放
在客户端的正常关机过程中,WINS客户端向WINS服务器发送一个名字释放的请求,以请求释放其映射在WINS服务器数据库中的IP地址和NetBIOS名字。收到释放请求后,WINS服务器验证一下在它的数据库中是否有该IP地址和NetBIOS名,如果有就可以正常释放了,否则就会出现错误(WINS服务器向WINS客户端发送一个负响应)。
如果计算机没有正常关闭,WINS服务器将不知道其名字已经释放了,则该名字将不会失效,直到WINS名字注册记录过期。
4.名字解析
当客户端在许多网络操作中需要WINS服务器解析名字,例如当使用网络上其它计算机的共享文件时,为了得到共享文件,用户需要指定两件事:系统名和共享名,而系统名就需要转换成IP地址。
名字解析过程是这样的:
(1).当客户端计算机想要转换一个名字时,它首先检查本地NetBIOS名字缓存器。
(2).如果名字不在本地NetBIOS名字缓存器中,便发送一个名字查询到首选WINS服务器(每隔15秒发送一次,共发三次),如果请求失败,则向次选WINS发送同样的请求。
(3).如果都失败了,那么名字解析可以通过其它途径来转换(例如本地广播、lmhosts文件和hosts文件、或者DNS来进行名字解析。
三.WINS服务器和客户端的需求
1.Microsoft对服务器的需求
(1).至少提供一个首选WINS服务器和一个次选WINS服务器来提供容错功能。
(2).一个WINS服务器每分钟可以处理近1500个名字注册和约4500个名字查询。因此我们强烈建议你一个首选和一个次选WINS服务器可以带动10000个客户端。
(3).如果WINS服务器与客户机不在同一个子网上,就要考虑到路由器的性能了。
2.客户端的需求
几乎所有的支持网络互联的Microsoft客户端都可以是WINS客户端,下面列出了可以与WINS一起工作的客户端:
*Windows NT Server 3.5x,4.0
*Windows NT Workstation 3.5x,4.0
*Windows 9x/me/2000
*Windows for Workgroups with TCP/IP-32
*Microsoft Network Client 3.0 for MS-DOS
*LAN Manager 2.2c for MS-DOS
基于DOS的客户端也可以用WINS服务器进行名字解析,但你必须为它们在WINS服务器中添加静态词条。
2000以后wins几乎被抛弃
全面转向win2000的DNS系统了~