NetBIOS是Network Basic Input/Output System的缩写,严格来说它不是一个网络协议,而是一套API,为局域网内应用程序通信提供会话层(OSI七层参考模型)的支持。 NetBIOS有三种不同的实现分别为:NetBIOS Framse(NBF)协议;NetBIOS over IPX/SPX (NBX)协议;NetBIOS over TCP/IP (NBT)协议 前两个协议是在旧系统上的,NBF是在IEEE 802.2(数据链路层的协议)之上实现的,NBX是在IPX/SPX(与TCP/IP类似的协议)之上实现的。
现在网络上的都是NBT协议,NBT自然是基于TCP/IP的。这样局域网内的一台机器除了可以用IP来标识外,也能用NetBIOS Name标识。
NetBIOS包括三个服务:
Name service(NetBIOS-NS) 名称注册和解析服务
Datagram distribution service (NetBIOS-DGM) 为无连接通信提供数据报分发服务
Session service (NetBIOS-SSN) 为面向连接通信提供会话服务
其中NetBIOS-NS是其他两个服务的基础。NetBIOS names为16个字节,通常最后一个字节保留,用来指定系统提供的服务或资源类型。
NBT:
Name service (NBNS)使用UDP 137端口;Datagram distribution service 使用UDP 138端口;Session service使用TCP 139端口。NBNS是最早的一个动态P2P的分布式名称注册服务。
WINDOWS的NetBIOS 名称解析:
windows上NetBIOS名为机器名的前15个字符
解析方法有以下几种:
1.广播
2.LMHOSTS 是C:\Windows\System32\drivers\etc\目录下的一个文件lmhosts。其中保存ip与name映射的静态表。
3.WINS 一个分布式的名称服务,提供注册,更新,删除,查询功能
4.NetBIOS name cache 当用上面三种方式获取到name与ip的映射以后会缓存起来,下次解析直接从缓存查找
首先用ipconfig /all 命令查看节点类型
节点类型决定了该节点名称解析所采用的方式。节点类型有以下几种:
- B-node: 0x01 先广播如果失败再查询LMHOSTS
- P-node: 0x02 查询WINS服务
- M-node: 0x04 先广播如果失败再查询WINS
- H-node: 0x08 先查询WINS,其次广播,前面都失败再查询LMHOSTS
在这里可以添加WINS服务的地址。设置NetBIOS是使用TCP/IP上的还是DHCP服务器上的 。
nbtstat 命令可以查看NetBIOS相关信息。具体用法查看 nbtstat /?