当前位置:文档之家› NetBios协议详解

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 名称。

以下看仔细啦,一台机器开机啦~~他在干嘛??当客户端A活跃时,客户端A广播它的名称。

当它成功广播自己,并没有其他人和它重名,客户端就登记成功。

登记过程如下:1.在登陆上,客户端A在所有地方广播它自己和它的NetBIOS信息6到10次(靠,这种办法Who想出来个,馊的。

),确保其他网络成员收到信息。

(如果有机器没有收到,那该机的网上邻居里这个客户端A就隐身了)2.如果有另一客户端B已用此名,另一客户端B发布它自己的广播,包括它正在使用的名字。

请求登陆的客户端A停止所有登记的企图。

3.如无其他客户端反对登记,请求登陆的客户端A完成登记过程。

如果有可用的名称服务器,那么名称服务器会在它的数据库里记上一笔,某机的名称是A,IP地址是XXX.XXX.XXX.XXX4、当A机正常关机时,重新广播释放刚才注册的这个名字,同一网段上的计算机收到后把这个名字在网上邻居里就麻油了。

(靠,晕倒死正常关机。

不正常呢?别急呀)如果网上有Wins服务器的话,客户机非正常关机一定时间以后,Wins也会注销这个名字。

如果麻油wins服务的话,您就对着网上邻居里的图标撞大运吧~~,当心噢,这时候查询名字肯定是广播~~,如果你网上有个几十台机器,广播个N篇,再等回答问题真的解决了吗?要知道广播包是很容易出问题的,尤其在机器数量较多的网络里,这就是网上邻居常常找不到人的原因之一,并且广播不能穿过路由,所以不同子网的机器在网上邻居里是看不见地。

(如果有wins服务器存在而且节点类型不是B,那还....稍好一点,不广播了。

具体方式可参阅wins结点类型的相关资料)其实即使有些机器没有收到注册请求,也就是网上邻居里看不看见没什么大关系,只要A不恰好和B同名,如果有WINS服务那就更好了,你和他同名也没关系,WINS会更新纪录或拒绝A登记这个名字。

当你试图和A机进行基于NetBios的通讯,比如传只文件什么的,那首先会查询NetBios名字,如果找到就开始通讯。

在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]嘿嘿,知道点安全常识的这个端口号不会没听说过吧,要网上邻居还是要安全自已考虑清楚噢~~以下是Microsoft WindowsNT目前使用的NetBIOS后缀表。

后缀是16进制。

名称数字类型用途==========================================================================00 U Workstation Service01 U Messenger Service<\\_MSBROWSE_> 01 G Master Browser03 U Messenger Service06 U RAS Server Service1F U NetDDE Service20 U File Server Service21 U RAS Client Service22 U Exchange Interchange23 U Exchange Store24 U Exchange Directory30 U Modem Sharing Server Service31 U Modem Sharing Client Service43 U SMS Client Remote Control44 U SMS Admin Remote Control Tool45 U SMS Client Remote Chat46 U SMS Client Remote Transfer4C U DEC Pathworks TCPIP Service 52 U DEC Pathworks TCPIP Service 87 U Exchange MTA6A U Exchange IMCBE U Network Monitor AgentBF U Network Monitor Apps03 U Messenger Service00 G Domain Name1B U Domain Master Browser1C G Domain Controllers1D U Master Browser1E G Browser Service Elections1C G Internet Information Server 00 U Internet Information Server [2B] U Lotus Notes Server IRISMULTICAST [2F] G Lotus NotesIRISNAMESERVER [33] G Lotus NotesForte_$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系统。

当BetBIOS节点收到广播数据,发布Receive_Broadcast_Datagram 命令的每个进程都收到数据。

如果当广播数据被收到时,没有这些命令在运行,数据将被丢弃。

NetBIOS使应用程序能和另一个设备建立会话,使网络转发器和处理协议处理收到、发送到另一台机器的请求。

相关主题