1、netBIOS
非可路由協(xié)議
LAN適配器(LAN? adapter)編號(hào)很重要.
每個(gè)LANA編號(hào)對(duì)應(yīng)于網(wǎng)卡和傳輸協(xié)議的唯一組合。
netBIOS名字
在Wi n 3 2環(huán)境中,針對(duì)每個(gè)可用的L A N A編號(hào),每
個(gè)進(jìn)程都會(huì)為其維持一張N e t B I O S名字表。若為L(zhǎng)ANA 0增添一個(gè)名字,意味著你的應(yīng)用程序
只能在LANA 0上同客戶機(jī)建立連接。對(duì)每個(gè)L A N A來(lái)說(shuō),能夠添加的名字的最大數(shù)量是2 5 4,
編號(hào)從1到2 5 4(0和2 5 5由系統(tǒng)保留)
,N e t B I O S名字共有兩個(gè)性質(zhì):唯一名字和組名
微軟網(wǎng)絡(luò)中的機(jī)器命名就是NetBIOS命名。
“組名”的作用是將數(shù)據(jù)同時(shí)發(fā)給多個(gè)接收者;或者相反,接收發(fā)給多個(gè)
接收者的數(shù)據(jù)。組名并非一定要“獨(dú)一無(wú)二”,它主要用于多播(多點(diǎn)發(fā)送)數(shù)據(jù)通信
若有“windows互聯(lián)網(wǎng)命名服務(wù)器”即wins,則有它管理,若無(wú)則發(fā)廣播探測(cè)是否重名。
1.1.3 NetBIOS特性
N e t B I O S同時(shí)提供了“面向連接”服務(wù)以及“無(wú)連接”服務(wù)。
1.2 NetBIOS編程基礎(chǔ)
NetBIOS API的設(shè)置,只有一個(gè)函數(shù):
UCHAR Netbios(PNCB pNCB);
用于N e t B I O S的所有函數(shù)聲明、常數(shù)等等均是在頭文件N b 3 0 . h內(nèi)定義的。若想連接
N e t B I O S應(yīng)用,唯一需要的庫(kù)是N e t a p i 3 2 . l i b。
調(diào)用N e t b i o s函數(shù)時(shí),可選擇進(jìn)行同步調(diào)用,還是進(jìn)行異步調(diào)用。所有N e t B I O S命令本身均是同步的。要想異步調(diào)用一個(gè)命令,需要讓N e t B I O S命令同A S Y N C H標(biāo)志進(jìn)行一次邏輯O R(或)運(yùn)算。如指定了A S Y N C H標(biāo)志,那么必須在n c b _ p o s t字段中指定一個(gè)后例程(Post Routine),或必須在n c b _e v e n t字段中指定一個(gè)事件句柄。執(zhí)行一個(gè)異步命令時(shí),從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字段會(huì)設(shè)為N R C _ P E N D I N G ( 0 x F F )。除此以外, N e t b i o s函數(shù)還會(huì)將N C B結(jié)構(gòu)的n c b _ c m d _ c p l t字段設(shè)為N R C _ P E N D I N G(待決),直到命令完成為止。命令完成后,n c b _ c m d _ c p l t字段會(huì)設(shè)為該命令的返回值。N e t b i o s也會(huì)在完成后將n c b _ r e t c o d e字段設(shè)為命令的返回值。
1.4 數(shù)據(jù)報(bào)的工作原理
“數(shù)據(jù)報(bào)”(D a t a g r a m)屬于一種“無(wú)連接”的通信方法。作為發(fā)送方,只需用目標(biāo)
N e t B I O S名字為發(fā)出的每個(gè)包定址,然后簡(jiǎn)單地送出了事。此時(shí),不會(huì)執(zhí)行任何檢查,以確
保數(shù)據(jù)的完整性、抵達(dá)順序或者傳輸?shù)目煽啃缘鹊取?/p>
發(fā)出一個(gè)數(shù)據(jù)報(bào)共有三種方式。
第一種是指揮數(shù)據(jù)報(bào)抵達(dá)一個(gè)特定的(或唯一的)組名。這意味著只能有一個(gè)進(jìn)程負(fù)責(zé)數(shù)據(jù)報(bào)的接收—亦即注冊(cè)了目標(biāo)名字的那個(gè)進(jìn)程。
第二種是將數(shù)據(jù)報(bào)發(fā)給一個(gè)組名。只有注冊(cè)了指定組名的那些進(jìn)程才有權(quán)接收消息。
最后,第三種方式是將數(shù)據(jù)報(bào)廣播到整個(gè)網(wǎng)絡(luò)。