English Site
 高级搜索

网络大典博客 网络大典维基 网络大典问答 网络大典群组 佳文科技产品 网络大典首页

NetBIOS:网络基本输入/输出系统 (Network Basic Input / Output System)

网络基本输入输出系统(NetBIOS)由 IBM 公司开发。NetBIOS 定义了一种软件接口以及在应用程序和连接介质之间提供通信接口的标准方法。NetBIOS 是一种会话层协议,应用于各种 LAN(Ethernet、Token Ring 等)和 WAN 环境,诸如 TCP/IP、PPP 和 X.25 网络。

NetBIOS 使得应用程序无需了解包括差错恢复(会话模式)在内的网络细节。NetBIOS 请求以网络控制块(NCB:Network Control Block)的形式提供,NCB 中包含了信息存放位置和目标名称等信息。

NetBIOS 提供开放系统互联(OSI)模型中的会话层和传输层服务,但不支持标准帧或数据格式的传输。NetBIOS 扩展用户接口(NetBEUI)支持标准帧格式,它为 NetBIOS 提供网络层和传输层服务支持。

NetBIOS 支持两种通信模式:会话(session)或数据报(datagram)。会话模式是指两台计算机为“对话”建立一个连接,允许处理大量信息,并支持差错监测和恢复功能。数据报模式面向“无连接”(信息独立发送)操作,发送的信息较小,由应用程序提供差错监测和恢复功能。此外数据报模式也支持将信息广播到局域网中的每台计算机上。

NetBIOS 名称为 16 字节长(必要情况下使用填充位填满),对使用的字节值几乎没有限制。对于不执行路由的小型网络,将 NetBIOS 名称映射到 IP 地址上有三种方法:

  1. IP 广播 - 当目标地址不在本地 cache 上时,广播一个 包含目标计算机 NetBIOS 名称的数据包。目标计算机返回其 IP 地址。
  2. lmhosts 文件 - 这是一个负责映射 IP 地址和 NetBIOS 计算机名称的文件。
  3. NBNS - NetBIOS 命名服务器负责 将 NetBIOS 名称映射到 IP 地址上。该服务由 Linux 环境下的后台程序(nmbd daemon)执行。

协议结构

NetBIOS 数据包有很多不同格式,主要取决于服务和信息类型,以及用以传送 NetBIOS 数据包的传输协议。 NetBIOS 包含三种基本服务: NAME、SESSION 和 DATAGRAM。作为例子,我们提供 TCP/IP 环境中的 NetBIOS 名称数据包格式:

  • Header (12 bytes)
  • Question Entry (variable)
  • Answer Resource Records (variable)
  • Authority Resource Records (variable)
  • Additional Resource Records (variable)

NetBIOS 头格式如下:

2 2 1 1 2 2 2 bytes
Length Deliminator Command Data1 Data2 XMIT Cor RSP Cor
Destination name (16 bytes)
Source name (16 bytes)
  • Length ― NETBIOS 头大小。
  • Deliminator ― 分隔符,表示为实现 NetBIOS 功能定义并发数据。
  • Command ― 特定协议命令,表示帧功能类型。
  • Data 1 ― 每个特定命令分配1字节可选数据。
  • Data 2 ― 每个特定命令分配1字节可选数据。
  • Xmit/response correlator ― 用于联系接受到的对应传输请求的响应。
  • Destination name/num - 在非对话帧中该字段包含16字符名称。
  • Source name/num ― 在非对话帧中该字段包含16字符源名;在对话帧中,该字段包含1字节源对话号码。

相关协议:TCP、SMP、EthernetToken RingX.25UDPIPXNetBEUIPPP

组织来源:NetBIOS 和 NetBEUI 都是 IBM 协议。

相关链接:
http://ourworld.compuserve.com/homepages/TimothyDEvans/contents.htm: NetBios, NetBEUI, NBF, SMB, CIFS Networking
http://www.javvin.com/protocol/rfc1001.pdf
: PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS
http://www.javvin.com/protocol/rfc1002.pdf: PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: DETAILED SPECIFICATIONS