什么是netbios?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是netbios?相关的知识,希望对你有一定的参考价值。

我要准确、详细的答案,谢谢!

Netbois(网络基本输入/输出系统)最初由IBM,Sytek作为API开发,使用户软件能使用局域 网的资源。自从诞生,Netbois成为许多其他网络应用程序的基础。严格意义上,Netbios是接入网络服务的接口标准。

Netbios原来是作为THE网络控制器为IBM局域网设计的,是通过特定硬件用来和网络操作系统 连接的软件层。Netbios经扩展,允许程序使用Netbios接口来操作IBM令牌环结构。Netbios已被公认为工业标准,通常参照Netbios-compatible LANs.
它提供给网络程序一套方法,相互通讯及传输数据。基本上,Netbios允许程序和网络会话。它的目的是把程序和任何类型的硬件属性分开。它也使软件开发员可以免除以下负担:开发网络错误修复,低层信息寻址和路由。使用Netbios接口,可以为软件开发员做许多工作。
Netbios使程序和局域网操作能力之间的接口标准化。有它们,可以将程序细化到为osi模型的哪一层所写,使程序能移植到其他网络上。在Netbios局域网环境下,计算机通过名字被系统知道。网络中每台计算机都有通过不同方法编的永久性名称。这些名称将在下面做进一步讨论。
通过使用Netbios的数据报或广播方式,在Netbios局域网上的pc机建立会话彼此联络。会话允许更多的信息被传送,探测错误,和纠正。通信是在一对一的基础上的。数据报或广播方式允许一台计算机和多台其他的计算机同时通信,但信息大小受限。使用数据报或广播方式没有探测错误和纠正。然而,数据报通信可以不必建立一个会话。
在这种环境下所有的通信以一种称为“网络控制块“的格式提交给NetBIOS。内存中这些块的分配依赖于用户程序。这些“网络控制块“分配到域中,分别为输入/输出保留。
在当今的环境中,NetBIOS是使用很普遍的协议。以太网,令牌环,IBM PC网都支持NetBIOS。在它原始版本中,它仅作为程序和网络适配器的接口。从那以后,传输类功能加入NetBIOS,使它功能日益增多。
在NetBIOS里,面向连接(tcp)和无连接(udp)通信均支持。它支持广播和复播,支持三个分开的服务:命名,会话,数据报。

[1.0.2] NetBIOS 名称
NetBIOS名称用来在网络上鉴别资源。程序用这些名称开始和结束会话。你能用多个程序配置一台单独的机器,每个程序都有独特的NetBIOS名称。每台支持应用的pc机也有用户定义或通过内部方法获得的NetBIOS站名。
NetBIOS能包含至多16个阿尔法数字字母。在整个资源路由网络里,字母的组合必须独特。在一台使用NetBIOS的pc机在网络上能完全工作起来之前,pc必须先登记NetBIOS名称。当客户端活跃时,客户端广播它的名称。当它成功广播自己,并没有其他人和它重名,客户端就登记成功。登记过程如下:
1.在登陆上,客户端在所有地方广播它自己和它的NetBIOS信息6到10次,确保其他网络成员收到信息。
2.如果有客户端A已用此名,客户端A发布它自己的广播,包括它正在使用的名字。请求登陆的客户端停止所有登记的企图。
3.如无其他客户端反对登记,请求登陆的客户端完成登记过程。
在NetBIOS环境中有两类名称:独特的和集合的。独特的名称必须在网络中独特。集合的名称不必在网络中独特,所有同名过程属于同一集合。每个NetBIOS节点包含一张该节点当前使用名称的表。
NetBIOS命名允许16个字母用在NetBIOS名称中。而微软只允许15个字母用在NetBIOS名称中,第十六个为NetBIOS后缀。NetBIOS后缀用在Microsoft Networking 软件中,区别安装的功能,登记的设备和服务。
[注意:smb和nbt(在tcp/ip上的NetBIOS)紧密的工作在一起,且都使用137,138,139端口。137端口是NetBIOS名称UDP,138端口是NetBIOS数据报UDP,139端口是NetBIOS会话tcp,进一步的NetBIOS信息,看rhino9网站上所列文章]
以下是Microsoft WindowsNT目前使用的NetBIOS后缀表。后缀是16进制。
名称 数字 类型 用途
==================================================================
00 U Workstation Service
01 U Messenger Service
<\\_MSBROWSE_> 01 G Master Browser
03 U Messenger Service
06 U RAS Server Service
1F U NetDDE Service
20 U File Server Service
21 U RAS Client Service
22 U Exchange Interchange
23 U Exchange Store
24 U Exchange Directory
30 U Modem Sharing Server Service
31 U Modem Sharing Client Service
43 U SMS Client Remote Control
44 U SMS Admin Remote Control Tool
45 U SMS Client Remote Chat
46 U SMS Client Remote Transfer
4C U DEC Pathworks TCPIP Service
52 U DEC Pathworks TCPIP Service
87 U Exchange MTA
6A U Exchange IMC
BE U Network Monitor Agent
BF U Network Monitor Apps
03 U Messenger Service
00 G Domain Name
1B U Domain Master Browser
1C G Domain Controllers
1D U Master Browser
1E G Browser Service Elections
1C G Internet Information Server
00 U Internet Information Server
[2B] U Lotus Notes Server
IRISMULTICAST [2F] G Lotus Notes
IRISNAMESERVER [33] G Lotus Notes
Forte_$ND800ZA [20] U DCA Irmalan Gateway Service
独特的(u):该名仅有一个IP地址分给它。在网络设备中,一个名称的多次出现看来会被登记,但后缀是唯一的,使整个名称唯一。
集合的(g):普通集合,一个名称可有多个IP地址。
多址的(M):名称是唯一的,但由于在同一计算机上有多个网络接口,这种配置应该被允许登记。地址的最大数目是25。
Internet集合(I):这是组名的特殊配置,用在操作WINDOSNT的域名。
域名(D):在NT4.0中新引进的。
为了快速浏览一台服务器上登记的NETBIOS名称和服务,用以下命令:
nbstat -a [ipaddress]
nbstat -a [host]
[1.0.3] NetBIOS 会话
NetBIOS 会话服务提供给用户程序一种面向连接,可靠的,完全双重的信息服务。NetBIOS要求一个是客户端程序,一个是服务器端程序。NetBIOS会话的建立需要双方预定的合作。一个程序必须先发出listen命令,其他程序才可以发出call命令。listen命令参考在它的NetBIOS名称表中的名称(或windows服务器中的),也参考用于作为会话另一端的远端程序的名称。如果聆听者不在聆听,call命令将不会成功。如果call成功,各程序将接到会话id,以作为会话建立的确认。send和receive命令操作传输数据。在会话最后,各程序将执行挂起命令。没有为会话服务的实际流控制,因为假定局域网足够快,能够传输需要的数据。

[1.0.4] NetBIOS 数据报
数据报可以发送到特定的地点,或组中所有成员,或广播到整个局域网。与其它数据服务相比,NetBIOS数据报是无连接,非可靠的。Send_Datagram 命令需要调用者设定目的名。如果目的名是组名,组中每个成员都收到数据。Receive_Datagram 命令的调用者必须确定它接收数据的本地名。除了实际数据外,Receive_Datagram也返回发送者的名称。如果NetBIOS收到数据,但却没有Receive_Datagram 命令在等待,数据将被丢弃。
Send_Broadcast_Datagram命令发送信息给本地网上每个NetBIOS系统。当NetBIOS节点收到广播数据,发布Receive_Broadcast_Datagram 命令的每个进程都收到数据。如果当广播数据被收到时,没有这些命令在运行,数据将被丢弃。
NetBIOS使应用程序能和另一个设备建立会话,使网络转发器和处理协议处理收到、发送到另一台机器的请求。NetBIOS实际上不操作数据。NetBIOS定义规定了用来到达这些服务的协议的网络接口,而非协议本身。历史上,NetBIOS曾与叫做NetBEUI的协议(网络扩展用户接口)捆绑。接口和协议的结合有时引起混淆,但它们是不同的。
网络协议为定位、连接到网络上特定的服务提供至少一种方法。这通常由将节点和服务名转化为网络地址(名称解析)完成。在连接用TCP/IP建立前,NetBIOS服务名必须解析成IP地址。大多数NetBIOS的TCP/IP实现,用广播或LMHOSTS文件完成名称地址的解析。在Microsoft环境中,你最可能使用叫做WINS的NetBIOS名称服务器。

[1.0.5] NetBEUI 解释
NetBEUI是网络操作系统使用的NetBIOS协议的加强版本。它规范了在NetBIOS中未标准化的传输帧,还加了额外的功能。传输层驱动器经常被Microsofts LAN Manager(微软局域网操作器)使用。NetBEUI执行OSILLC2协议。NetBEUI是原始的PC网络协议和IBM为LanManger(局域网操作器)服务器设计的接口。本协议稍后被微软采用作为它们的网络产品的标准。它规定了高层软件通过NetBIOS帧协议发送、接收信息的方法。本协议运行在标准802.2数据链协议层上。

[1.0.6] NetBIOS 范围
NetBIOS范围ID为建立在TCP/IP(叫做NBT)模块上的NetBIOS提供额外的命名服务。NetBIOS范围ID的主要目的是隔离单个网络上的NetBIOS通信和那些有相同NetBIOS范围ID的节点。NetBIOS范围ID是附加在NetBIOS名称上的字符串。两个主机上的NetBIOS范围ID必须匹配,否则两主机无法通信。NetBIOS范围ID允许计算机使用相同的计算机名,不同的范围ID。范围ID是NetBIOS名称的一部分,使名称唯一。

参考资料:http://www.iselong.com/Security/0002/2321.htm

参考技术A 知道BIOS把~~基本输入输出,NETBIOS顾名思义就是网络基本输入输出~~

参考资料:
NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API

历史

NetBIOS是一个网络协议,在上世纪80年代早期由IBM和Sytec联合开发,用于所谓的PC-Network。虽然公开发表的文档很少,协议的API却成为了事实上的标准。

随着PC-Network被令牌环和以太网取代,NetBIOS也应该退出历史舞台。但是,由于很多软件使用了NetBIOS的API,所以NetBIOS被适配到了各种其他的协议上,比如IPX/SPX和TCP/IP。

使用令牌环和以太网传输的NetBIOS现在被称为NetBEUI。在Micrsoft Windows 98发布之前,一直广泛使用。在TCP/IP上运行的NetBIOS称为NBT,由RFC 1001和RFC 1002定义。NBT的基本思想是在基于IP的络上模拟基于NetBIOS的PC-Network。NBT在Windows 2000中引入,是现在首选的NetBIOS传输。

概述

不管使用哪一种传输方式,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实现从来没有工作过。
参考技术B 一种网络协议

NetBIOS发包

NetBIOS发包

1、拥有 LANA、Local Session Num即可发包。

ncb_lsn,session号。指定发向哪。

ncb_lana_num,lan-adapter号,指定用哪一个adapter的哪一个协议进行发包。

 

2、获取 LAN Session NUm。

ncb_lsn

Identifies the local session number. This number uniquely identifies a session within an environment. This number is returned by the Netbios function after a successful NCBCALL command.

 

拥有ncb_lana_num、client_name、server_name即可连接。

ncb_lana_num:指定哪用哪一个adapter。

ncb_name:本地名。

ncb_callname:对方名。

 

3、ncb_lsm,面向连接时用,类似tcp。

  ncb_num,单次收到,类似udp。

以上是关于什么是netbios?的主要内容,如果未能解决你的问题,请参考以下文章

求助高手:怎么清除NETBIOS的缓存

NetBios 的结构体详解

网络基础:NetBIOS

网络基础:NetBIOS

NeTBIOS是啥,有啥作用

NetBIOS发包