1、netBIOS
非可路由协议
LAN适配器(LAN adapter)编号很重要.
每个LANA编号对应于网卡和传输协议的唯一组合。
netBIOS名字
在Wi n 3 2环境中,针对每个可用的L A N A编号,每
个进程都会为其维持一张N e t B I O S名字表。若为LANA 0增添一个名字,意味着你的应用程序
只能在LANA 0上同客户机建立连接。对每个L A N A来说,能够添加的名字的最大数量是2 5 4,
编号从1到2 5 4(0和2 5 5由系统保留)
,N e t B I O S名字共有两个性质:唯一名字和组名
微软网络中的机器命名就是NetBIOS命名。
“组名”的作用是将数据同时发给多个接收者;或者相反,接收发给多个
接收者的数据。组名并非一定要“独一无二”,它主要用于多播(多点发送)数据通信
若有“windows互联网命名服务器”即wins,则有它管理,若无则发广播探测是否重名。
1.1.3 NetBIOS特性
N e t B I O S同时提供了“面向连接”服务以及“无连接”服务。
1.2 NetBIOS编程基础
NetBIOS API的设置,只有一个函数:
UCHAR Netbios(PNCB pNCB);
用于N e t B I O S的所有函数声明、常数等等均是在头文件N b 3 0 . h内定义的。若想连接
N e t B I O S应用,唯一需要的库是N e t a p i 3 2 . l i b。
调用N e t b i o s函数时,可选择进行同步调用,还是进行异步调用。所有N e t B I O S命令本身均是同步的。要想异步调用一个命令,需要让N e t B I O S命令同A S Y N C H标志进行一次逻辑O R(或)运算。如指定了A S Y N C H标志,那么必须在n c b _ p o s t字段中指定一个后例程(Post Routine),或必须在n c b _e v e n t字段中指定一个事件句柄。执行一个异步命令时,从N e t b i o s返回的值是N R C _ G O O D R E T( 0 x 0 0 ),但n c b _ c m d _ c p l t字段会设为N R C _ P E N D I N G ( 0 x F F )。除此以外, N e t b i o s函数还会将N C B结构的n c b _ c m d _ c p l t字段设为N R C _ P E N D I N G(待决),直到命令完成为止。命令完成后,n c b _ c m d _ c p l t字段会设为该命令的返回值。N e t b i o s也会在完成后将n c b _ r e t c o d e字段设为命令的返回值。
1.4 数据报的工作原理
“数据报”(D a t a g r a m)属于一种“无连接”的通信方法。作为发送方,只需用目标
N e t B I O S名字为发出的每个包定址,然后简单地送出了事。此时,不会执行任何检查,以确
保数据的完整性、抵达顺序或者传输的可靠性等等。
发出一个数据报共有三种方式。
第一种是指挥数据报抵达一个特定的(或唯一的)组名。这意味着只能有一个进程负责数据报的接收—亦即注册了目标名字的那个进程。
第二种是将数据报发给一个组名。只有注册了指定组名的那些进程才有权接收消息。
最后,第三种方式是将数据报广播到整个网络。