NetBIOS名称 Network Basic Input/Output System (RFC-1001,1002)网络基本输入/输出系统协议
NetBIOS是一种高级网络接口,最初是在硬件中实 现的。NetBIOS应用程序要建立一种名为“网络控制块”( Network Control Block,NCB)的数据结构,然后发出一个 BIOS函数调用,以便将NCB的内容发送给网络适配器。 Windows Server 2003通过一个NetBIOS模拟程序来提供对 NetBIOS应用程序的支持。这个模拟程序捕捉BIOS调用,并将 其转换成网络函数调用。NetBIOS最先是由Sytec Inc.在1983 年为IBM公司开发的,后来成为了PC网络接口的一种事实性的 标准。与此同时,IBM和Microsoft又和3Com一起开发了网络 命令语言,它最终演变为SMB(Service Message Block,服 务消息块)。SMB应用程序的早期版本都将NetBIOS用作网络 接口,将NETBEUI(NetBIOS扩展用户接口)用作传输协议。目前主要用于对等网模式中 的资源访问。 NetBIOS是基于NETBEUI协议进行通信的,它只能用于 Windows操作系统,不能用于Linux、UNIX等系统。
NetBIOS提供了资源的网络标识名,如工作组名、计算机名 等,并可以用这些名称访问资源。 当我们使用网上邻居或UNC地址中的名字访问网络中的计算 机时,使用的就是NetBIOS。
NetBIOS不能路由,所以使用NetBIOS只能访问同一网段中的计算机。
NetBIOS名字 NetBIOS名字由16个字节组成,其中前15个字节由用户指 定,第16个字节作为名称后缀,指定一种服务。
NetBIOS名字中只能包含字母、数字和连线-,长度不能超 过15。 一台计算机可以有多个NetBIOS名字,可以用“nbtstat -n” 命令进行查看。
用NetBIOS名字访问网络时使用的是UNC地址,该地址的 格式是: \\NetBIOS名字\路径 其中NetBIOS名字也可直接用IP地址代替。
NetBIOS的名字解析 与域名一样,用NetBIOS名字不能直接访问计算机, 必须把它解析为IP地址才能访问。 解析方法主要有两种: 1、在网络中发送广播进行查询; 2、利用WINS服务器进行解析。 另外,在本地计算机中有NetBIOS缓存,可保存最近 查询过的结果。 用户还可以手工创建Lmhosts文件进行解析。
NetBIOS提供三种不同的服务:
名字服务:名字登记和解析
会话服务:可靠的基于连接的通信
数据包服务:不可靠的无连接通信
当NetBIOS是数据链路层协议时,可以通过5Ch中断访问其功能。传递给这些函数的消息使用NCB格式。
NetBIOS和NetBEUI被设计为仅仅用于局域网,因此不支持路由,并且最多只能处理72个节点或者设备。NetBIOS和NetBEUI经常使用广播实现,尤其是名字服务的相关操作。
NBT使用一个或多个NBNS(NetBIOS Name Server(s))将名字服务扩展到多个子网。NBNS是动态DNS的一种,Microsoft的NBNS实现称为WINS。另外,为了将虚拟的NetBIOS网络扩展到多个IP子网,WINS标准还引入了一个或者多个NBDD(NetBIOS Datagram Distribution) 服务器。不幸的是,微软的NBDD实现从来没有工作过。
wins
Windows Internet命名服务(Windows Internet Name Service,WINS)为注册和查询网络上计算机和用户组 NetBIOS名称的动态映射提供分布式数据库。WINS将 NetBIOS名称映射为IP地址,并设计以解决路由环境的 NetBIOS名称解析中所出现的问题。WINS对于使用TCP/IP 上的NetBIOS 路由网络中的NetBIOS名称解析提供了最佳 选择。 ? WINS可以减少使用NetBIOS名称解析的本地IP广播,并允 许用户很容易地定位远程网络上的系统。因为WINS注册是 在每次客户启动并加入网络时自动执行,所以WINS数据库 在进行更改动态地址配置时会自动更新。例如,当DHCP服 务器将新的或已更改的IP地址发布到启用WINS的客户计算 机时,将更新客户端的WINS信息。这不需要用户或网络管 理员进行手动更改。 10.2.2.WINS的组成 典型的WINS系统由WINS服务器和WINS客户端两部分组成。WINS服务器 负责收集WINS客户端的注册信息,对WINS数据库进行维护和管理。WINS客户端在 启动时将自己的NetBIOS计算机名和IP地址注册到WINS服务器中。在网络系统中 ,还可能存在非WINS客户机,如Linux计算机等,如果WINS服务器和WINS客户机 处在不同的子网,那么,还需要配置WINS代理(WINS Proxy),类似第九章介绍 过的DHCP中继代理。如图所示。 10.2.3. WINS的工作过程 WINS在基于TCP/IP的网络中简化管理了NetBIOS的名称空间。WINS客户 端启动时,会向WINS服务器注册自己的计算机名称(注意:与第八章介绍的主机 名不同),即NetBIOS名称与对应的IP地址添加到数据库中,这是WINS服务器的注 册过程。WINS客户机在每次启动时都要在WINS服务器中注册一次,所以WINS服务 器中数据库总是能够保持最新。 WINS的工作过程 当WINS客户端之间需要进行通信时,它们首先需要 通过名称解析知道对方的IP地址,在WINS系统中解析工作由 WINS服务器完成。当WINS服务器收到WINS客户端的通信请求 后,会自动从本地数据库中查询对方计算机名和IP地址,并 将其提供给请求通信的WINS客户端,完成名称的解析。
LLMNR
LLMNR为使用IPv4、IPv6或者同时使用这两种地址的设备提供了点对点名称解析服务,可以让同一子网中的IPv4和IPv6设备不需要WINS或DNS服务器就可以解析对方的名称,而这个功能是WINS和DNS都无法完全提供的。虽然WINS可以为IPv4提供客户端-服务器以及点对点名称解析服务,不过并不支持IPv6地址。至于DNS,虽然支持IPv4和IPv6地址,但必须通过专门的服务器才能提供名称解析服务。LLMNR通过在DNS名称解析服务不可用时提供解析服务,弥补了DNS的不足。