Netbios想必大家都有接触。对于netbios的理解,我以前有很多困惑,不知道如何掌握这些知识点,这几天通过了一段时间的实验和学习,有了一些体会,和大家一起分享。
阅读本文,你可以了解到以下内容

◆netbios的来龙去脉
◆netbios名和计算机名的关系
◆netbios名的存在依据
◆netbios名和IP地址解析的4种方式
◆如何查看本机netbios缓存
◆netbios和netbeui的关系

一、来历
       用几句简单的话来概括netbios的来由,毕竟了解一个事物,我们不能摈弃它的历史,尽管可能很久远。跳过这步,即使明白了,我想这也是不完整的。
       Netbios,到底是协议还是接口?不同的出处可能因侧重点不懂而不尽相同。我们一起来刨根问底,NetBIOS是什么?是一种协议。什么协议?是一种在局域网上的协议。谁来用呢?是局域网的一些应用程序(软件)。这些应用程序需要通过某种手段或者途径协同合作才能实现或完成某种操作或目的,他们运行的基础平台是什么??  是小型的局域网内的网络,也就是小型局域网。基础平台有了,如何去区分或者标记他们呢? 那就需要给每个应用程序打上标签,命名,否则就会混乱不堪。
好,重点来了,这个工作谁来完成,netbios应运而生。它就是这样一种东西。
简而言之,NetBIOS是一种在局域网上的应用程序可以使用的应用程序编程接口,
       最早由Sytec Inc在1983年为IBM开发。微软把netbios作为一种高级程序接口来标识网络上的每个资源,它的长度是有限的,仅仅16个字符位。现在的2000/2003系统中依然存在,只是集成到Tcp/IP协议中,称之为NetBT。因为win2000后就不对netbios这个命令接口支持了。可能有朋友要问了,现在的电脑我们一般用计算机名进行标示,那这个和netbios名称有什么关系呢?恩,好问题! 之前已经提到过,netbios名的字符长度为16位,前15位由用户指定,第16个字符用来标识名称后缀。其实,前15位和我们现在用的计算机名是一模一样的,没有什么区别,只是计算机名的最大长度是63个字节而已。

二、Netbios的存在形式
      前面也说了,在win2000就不再受支持了,但依然存在于windows系统中。我们来找找看。为了保证最大的系统兼容性(主要是为了照顾98/NT系统),netbios以两种形式存在。
1、第一种
我们可以打开网卡的TCP/IP属性,
未命名.JPG
点击右下方的【高级】,如下图:
未命名1.JPG
下方的红框内就是netbios的一种体现形式,我们可以手动开启或关闭。
主要运用于2000、xp 等客户端系统上,当然2000adv ser、2003 ser也有。
2、第二种
为了实现netbios名称解析和提高解析效率,微软开发了WINS,它是专门来负责netbios名称解析的一种网络服务。这也就是netbios的第二种体现方式,我们把netbios的名称解析服务简称为NBNS,即NetBIOS Name Server。

三、Netbios名和IP地址解析的4种查询方式
      我们再来谈一谈netbios的解析。解析,我们可以理解是一种对应关系,就是netbios名和计算机ip的对应关系。 有一点要先说明,当我们的网络上的各类资源通过netbios进行通信时,那我们就说这种通信是基于NetBIOS名的,而不能基于IP地址。netbios既是一种接口,也是一种协议,而TCP/IP是一类协议簇,在此之上通信的基础就是IP地址。netbios名和ip地址混合存在,必定会涉及到相互解析的问题。
那由谁来完成这项任务呢?通常有几种不同的查找方式:
1、netbios广播
在本地网络上发送广播信息,查找某个netbios名对应的IP地址。这种方式也可以用来注册本机的NetBIOS名字,因为当netbios主机启动的时候就会向整个网络通告自己的NetBIOS名,如果已经有其他计算机使用了这个名字,这个计算机就会收到错误信息。
2、本机缓存
支持NetBIOS的计算机都维护一张NetBIOS名和相应IP地址的列表。当有解析请求时,通过对应自己的缓存表来查找IP地址。
我们还可以通过nbtstat -c 这个命令查询本机的netbios缓存表。
下面是一个查询的实例:
未命名222.JPG
顺带说一下,如果查询本机的dns缓存,可以用 ipconfig /displaydns 命令。
3、NetBIOS名字服务器
也就是NBNS,NetBIOS Name Server(s))。在windows中,NBNS的具体体现就是WINS。通过WINS服务来实现netbios到ip地址的解析。
4、lmhosts文件
这个文件位于C:\WINDOWS\system32\drivers\etc下,与hosts文件在同一路径。windows可以通过查询lmhos ts来判断NetBIOS名字和IP的对应关系。

四、Netbios和Netbeui协议

        什么是Netbeui呢?即NetBIOS Extend User Interface,由IBM于1985年提出的一种传输协议,而NetBIOS仅仅是通过一组命令来让系统或程序使用网络而已。所以严格意义上将,Netbeui才算得上是一种真正早期的小型局域网协议。以前的不少程序都需要运行在netbeui的基础只上,当然自动TCP/IP大规模应用起来以后,这类协议就很少被使用,只是作为一种补充协议存在,新装的XP没有默认被安装,关于安装netbeui协议,网上有很多教程可以参考,所以这里就不作讨论了。