1、计算机在网络上的名称NetBIOSvNetBIOS(Network Basic Input/Output System)是80年代末,为了利用IBM PC构建的局域网,在MS-DOS机器上出现的一种高级编程接口,可以利用网络硬件和软件将这些计算机连接在一起组成局域网。微软和其它供应商利用NetBIOS接口,来设计它们的网络组件和程序,后来微软对它进行了扩展,成为NetBEUI(NetBIOS Extend User Interface)协议,同时NetBIOS也成为一个独立的网络API。它可以在许多不同的协议上使用,既可以在NetBEUI上使用,也可以在IPX/SPX或TCP/IP上使用,由于
2、TCP/IP有许多优点,NetBIOS在TCP/IP上使用是最常见的接口。NetBIOS名称解析vNetBIOS名称解析在网络中进行通信的计算机双方需要知道对方的IP地址才能通信,然而计算机的IP是一个4个字节的数字,难以记忆。除了使用主机名(DNS计算机名)外,还可以使用NetBIOS名来代替IP地址。NetBIOS名对早期一些Windows版本(如Windows 95/98)来说是不可缺少的。NetBIOS使用长度限制在十六个字符的名称来标识计算机资源,这个标识也称为NetBIOS名。在一个网络中NetBIOS名是唯一的,在计算机启动、服务被激活、用户登录到网络时,NetBIOS名将被动态
3、的注册到数据库中。NetBIOS 名包含的内容有以下三个:NetBIOS 名:即计算机名称,用来标识独立的用户或计算机。独立的 NetBIOS 名是工作组的成员,它们属于一个默认的工作组或由用户自定义可以加入一个自选的工作组。v工作组名:用来标识某个工作组的成员。v域名:同工作组名一样,域名也是一种 NetBIOS 组名,它是通过域控制器来标识、证实其成员的。但在域名服务中这两者被认为是一样的,这也就是在计算机“系统属性”中,“计算机名”选项卡中只有计算机名、工作组、计算机说明等项目,而没有“域名”的原因。解析NetBIOS名的几种方法v解析NetBIOS名的几种方法要在局域网的“网上邻居”中
4、看到网络中的其它计算机,就必须安装 NetBEUI 协议,这实际就是 Windows 系统的浏览服务。通过这一服务,在使用计算机名来搜索另一台计算机或者使用计算机名来访问另一台计算机中的资源时,计算机会先把对方计算机名解析为IP地址,再使用这个IP地址和对方通信。可以使用以下几种方法把NetBIOS名解析为IP地址。1、使用广播:在本地网络上发送广播,通过广播某设备的NetBIOS名字,查找其对应的IP地址。广播方式也能用于注册自己的NetBIOS名字,例如一台计算机可以通过广播本机的名字,向其它计算机宣告自己使用了这个NetBIOS名字。广播的缺点是占用太多的带宽,不能跨越子网。v2、使用L
5、MHOSTS文件:Microsoft Windows能通过查找存放在本地文件LMHOSTS中的数据,来识别网络上NetBIOS名字和IP的关系,这个方式不是NetBIOS名字识别的标准,但它是Microsoft 的实现方式,因此是一种事实标准。使用LMHOSTS文件来解析NetBIOS名缺点是:v由于LMHOSTS文件通常是存放在本地计算机磁盘上的,所以在每台计算机上都要有LMHOSTS文件,所以配置的工作量很大;vLMHOSTS文件的内容不能动态变化,所以当计算机的IP地址发生变化时,要手动更新LMHOSTS文件;v当网络中的计算机很多时,LMHOSTS文件记录会很多,严重影响NetBIOS
6、名的解析速度。v3、使用WINS服务器:WINS(Windows Internet Name Server),原理和DNS有些类似,可以动态地将NetBIOS名和计算机的IP地址进行映射,它的工作过程为:每台计算机开机时,先在WINS服务器注册自己的NetBIOS名和IP地址,其它计算机需要查找IP地址时,只要向WINS服务器提出请求,WINS服务器就将已经注册了NetBIOS名的计算机的IP地址响应给它。v v4、使用缓存:缓存(NetBIOS Name Cache)是为了提高NetBIOS名的解析速度而设计的,缓存存在于本地计算机上。当计算机采用以上三种方法取得NetBIOS名的IP地址后
7、,会先把IP地址存储在缓存区内,下次如果还需要解析同一NetBIOS名时,会直接从缓存区中查找。IP地址在缓存区中存在有一定的时限(默认时间是l0分钟),时限到时缓存的记录会被清除。实际上计算机总是先查询缓存,查找不到时才使用以上三种解析方法。NetBlOS节点vNetBlOS节点在实际的应用中,计算机是将上节中介绍的几种方法结合起来,进行NetBIOS名的解析的。这几种方法如何结合,与NetBIOS的节点类型有很大关系,可以使用ipconfig/all命令来查看计算机的NetBIOS节点类型。vNetBIOS节点类型有如下几种:b-node:它利用广播的方式查找IP地址。例如,当计算机A要与
8、B通信时,它就会将“查找B的IP地址”的消息广播出去,当B收到此消息后,就会将其IP地址会送给A,因此A就可与B通信。但是如果B位于另外一个网段内,则广播的方式可能无法成功,因为大部分的路由器不会将广播消息传递到另一个网段内,否则会增加网络的负担。p-node:它利用点对点(peer-to-peer或point-to-point)的方式,直接向WINS服务器询问。例如,当计算机A要与B通信时,它就会直接向WINS服务器询问B的IP地址。m-node:这是b-node 与p-node 的混合方式,它会先利用广播的方式,若失败,则改向WINS服务器查询。例如,当计算机A要与B通信时,A会先利用广播
9、的方式来查找B的IP地址,若B没有响应(例如它位于另一个网段内),则改向WINS服务器查询。h-node:p-node和b-node的结合,计算机首先向WINS服务器查询NetBIOS名的IP地址,如果失败改为通过广播解析NetBIOS名。微软的Windows系统,其b-node方式还提供另外一种扩充能力,就是当利用广播方式失败时,它还会尝试到LMHOSTS文件内,去查找是否有要通信的计算机的IP地址。Windows操作系统默认是采用b-node方式,但如果它们是WINS客户端,则采用h-node模式。WINS 简介简介vWINS是Windows Internet Naming Server,
10、即Windows Internet 命名服务。它提供一个分布式数据库,能在路由网络的环境中动态地对IP地址和NetBIOS的名称映射进行注册与查询。WINS服务器工作原理服务器工作原理vWINS服务器和客户机的交互分成4个步骤:名称注册名称更新名称释放名称查询。当一个客户机启动时,它向所配置的WINS服务器发送一个名字注册信息(包括了客户机的IP地址和计算机名),如果WINS服务器的数据库中没有没有其它客户机注册了相同的名字,服务器就向客户机返还一个成功注册的消息及名字注册的存活期限。如果名字已经被其它计算机注册了,WINS服务将会验证该名字是否正在使用,如果该名字正在使用则注册失败。WINS
11、服务器对客户机的名称注册是临时的,有一定的使用期限。当使用期限到期之前,客户机必须向服务器发出请求进行更新。在客户机正常关机时,WINS客户机向WINS服务器发送一个名字释放的请求,以请求释放其映射在WINS服务器数据库中的IP地址和NetBIOS名字。如果客户机没有正常关闭,WINS服务器不知道其名字已经释放了,则该名字将不会失效,直到WINS名字注册记录过期。当客户机为了访问其它计算机的共享资源时,可能需要WINS服务器解析对方计算机名。它会直接向WINS服务器发送名称查询解析请求,WINS服务器收到请求后,查找数据库中NetBIOS名字和IP地址的对应关系,并把IP地址返回给客户机。WI
12、NS名称解析四种模式名称解析四种模式v在WINDOWS 中,WINS客户机的名称解析可以通过WINS、广播和LMHOSTS文件三方互相配合来解决。因此产生四种模式。B-node:利用全网广播的方式进行名称解析,在失败的情况下查询LMHOSTS文件;P-node::利用点对点方式,直接向WINS服务器查询对方IP地址;M-node:B-node和P-node的混合方式,先广播,如果失败,向WINS服务器查询;H-node:B-node和P-node的混合方式,先向WINS服务器查询,如果失败再使用广播,如果两者都失败,则查询LMHOSTS文件。NetBIOS 名称解析是名称解析是NetBIOS名
13、称映射为名称映射为一个一个IP地址的过程。地址的过程。IP地址是多少地址是多少?13192.168.1.35NetBIOS 名称缓存名称缓存WINS广播广播Lmhosts File2安装安装WINS服务器服务器添加/删除服务器角色数据库的复制v建立复制伙伴如果网络中有多台WINS服务器,可以互相设置为复制伙伴来复制对方的WINS数据库。这样做可以分流WINS客户机的查询请求、互相备份。当复制伙伴的WINS数据库信息发生改变时,将自动通知主WINS服务器,完成数据的更新。v通常情况下,我们可以做两台WINS服务器,主要是为了避免因WINS服务器时发生故障而导致整个服务瘫痪。两台WINS服务器互为
14、备份,互相复制数据库,提供了高可靠性和容错性。WINS数据库的复制采用的是一种增量型的复制,即在复制过程中只复制数据库中变化的记录,而不是整个数据库。vWINS服务器之间要互相进行复制,首先要确定它们之间的关系,也就是“复制伙伴”关系,分为两种:接收伙伴(Pull Partner)和发送伙伴(Push Partner)。假设有A、B两台WINS服务器,A服务器接收由B服务器发送过来的在一定时间间隔内数据库的更新数据,则A为B的接收伙伴,而B为A的发送伙伴。WINS服务器之间的复制有推复制将其数据中更改过的数据(而不是全部数据)复制给其接收伙伴拉复制是指WINS服务器向其他伙伴服务器发出复制请求
15、,将其他WINS服务器的数据库复制到自己的数据库中。Subnet 2Subnet 1WINS Server AWINS Server B使用静态映射v使用静态映射WINS客户机在开机的时候,会自动向服务器注册NetBIOS名称和IP地址,但是对于非WINS客户机,它们不会自动注册名称与地址,如果希望服务器中也注册它们的数据,则需要手动设置静态映射。维护数据库v备份数据库 在WINS服务器的属性对话框的“常规”属性页中,可以设置WINS数据库的备份路径。v清理数据库 清理数据库就是将一些过时的信息清理掉。用户可以手工清理数据库,也可以通过设定的更新时间间隔和消失时间间隔自动清理。v验证数据库的一
16、致性 启动数据库一致性的验证后,服务器会将所有接收来的记录和本地记录进行比较,来检查数据库的一致性。备份WINS数据库v备份WINS数据库 为了防止突发事件造成WINS服务器数据的丢失,用户可以采用系统自动备份或手动备份的方法来对WINS数据库进行备份。手动备份数据库还原数据库设置数据库验证间隔 v设置数据库验证间隔 WINS服务器如果曾经和其他计算机互相复制数据,则经过验证间隔后,会主动向复制来源计算机要求验证复制来的数据是否需要更新或者应该消失。用户通过设置WINS数据库的验证间隔,就可以使WINS服务器定时检查数据库,确认当前数据是否和网络上其他的服务器保持一致。在定时检查数据库的时候,
17、WINS服务器会复制所有其他服务器的数据进行每笔记录的新旧识别(通过版本号),如果其他服务器上有比本机更新的数据则覆盖本机的记录。查看数据库信息WINS代理vWINS代理作用:通过监听非WINS客户广播的名字注册和名字解析请求,提供非WINS客户和WINS客户之间的通讯。,如果要在一些非Windows网络客户机和没有安装WINS客户机软件的计算机上使用WINS服务,则需要将其中的一台WINS客户机设置为WINS代理,由WINS代理来代理其他客户机向WINS服务器发出请求,WINS代理再将返回的结果“翻译”给其他客户机使用。非WINS客户的名字注册v一个非WINS客户端广播自己的名字注册请求,当本地子网内的WINS proxy agent收到此广播,将它提交给另一个子网的WINS server来处理。非WINS客户的名字解析v非WINS客户端广播名字解析请求,WINS proxy agent收到后,先从自己的名字缓存中查找,若没有找到,再向WINS server提交查询。配置WINS客户机