NetBIOS協議和NetBIOS名稱的問題
在使用NetBIOS協議的時候。我們通常會遇到一些問題。這些問題的發生其實是NetBIOS名稱的一些混淆。那么這個協議的具體過程我們就需要掌握一下了。那么接下來我們就來對這方面問題詳細了解下吧。NetBIOS協議(網絡基本輸入/輸出系統)最初由IBM,Sytek作為API開發,使用戶軟件能使用局域網的資源。自從誕生,NetBIOS成為許多其他網絡應用程序的基礎。嚴格意義上,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)通信均支持。它支持廣播和復播,支持三個分開的服務:命名,會話,數據報。
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.XXX
4、當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]嘿嘿,知道點安全常識的這個端口號不會沒聽說過吧,要網上鄰居還是要安全自已考慮清楚