2009/09/12

what is NetBIOS?

1.什麼是NetBIOS?

NetBIOS(Network Basic Input / Output System)為當年IBM欲進軍個人電腦網路時發展的通訊協定,而IBM並不打算建構大型網路,僅供數十台電腦使用的網路。 NetBIOS包含18個基本命令使電腦網路能建立與維持,簡言之設計哲學在於小巧。


2.NetBIOS發展與由來
1983年IBM旗下的Sytec公司發展出NetBIOS協定,其工作為啟動能連結72個裝置的匯流排網路;NetBIOS設計時僅注意到區域網路,並不是為了大型網路設計,此處的網路服務對象為Ethernet或Token-Ring網路。Ethernet節點數量一般限制在30個左右、Token-Ring則是250個,當時並無連接數個網路的需求。1985年延伸出NetBEUI(NetBIOS Extended User Interface),但仍無連接多網路(routing)的功能,故需配套其他通訊協定。


3.NetBIOS特性
NetBIOS名稱是Windows電腦的命名方式。而容易錯亂的是hostname,與NetBIOS名稱不同,但為了方便查詢絕大部分NetBIOS名稱與hostname設定都一樣,其意義與作用也不同。NetBIOS名稱僅限使用於類似於網路芳鄰等使用NetBIOS AP的程式才能運作。


帶有NetBIOS協定的電腦在進入一個群組或網域並使用網路芳鄰時,作業系統會以系統定位決定其擔任browser的順序。大致依照以下順序:


1. 網域主控站(Primary Domain Controller, PDC)
2. 網域備份控制站(Backup Domain Controller, BDC)
3. Server
4. Workstation
5. Client作業系統


Browser可細分為以下四種角色:


1. Non-browser:不需維護電腦清單,但必須定期向master browser宣告自己存在
2. Potential Browser:尚未擔任Browser,但可發出競選通知並有機會成為Browser
3. Master Browser:每個網域群組需有一台電腦擔任,維護該區域電腦的名單
4. Backup Browser:每12分鐘複製master browser上的電腦名單。當群組電腦低於15部時由master browser兼任;超過此數目則另指定potential browser擔任第二個backup browser
5. Domain master browser:為一網域的PDC同時擔任master browser,其角色負責與其他子網路或群組的master browser溝通


網路上第一台電腦開機時,會檢查本身是否為potential browser,若為肯定則成為master browser,並廣播宣告;第二部電腦開機時若系統層級高於第一部,則會將master browser搶來,故PDC必為master browser。網路內任一電腦執行網芳時會對全網路廣播並提出要求,master browser便會將backup browser名單回應給client,再依據名單向backup browser取得電腦名單。此措施主要為避免造成master browser過大負荷。


4.NetBIOS名稱解析
NetBIOS名稱解析對於TCP/IP協定而言,代表將其解析為IP位址(NetBIOS over TCP/IP)。當執行某項服務之前必須建立TCP連線時,透過四種模式將NetBIOS名稱解譯為IP位址:


1. B-Node(廣播節點, broadcast node):使用廣播NetBIOS名稱以查詢,以進行登錄與解析。然而卻有兩個主要問題:一、廣播傳送將打擾每個網路上的節點二、由於路由器無法轉送廣播,僅可解析區域網路上的NetBIOS名稱。
2. P-Node(點對點節點, peer to peer node):使用NetBIOS名稱伺服器,例如WINS來解析NetBIOS名稱。P-Node不使用廣播,為直接查詢名稱伺服器。
3. M-Node(混合節點, mixed node):將B-Node與P-Node結合。預設先使用B-Node,若無法透過廣播解析,則改以P-Node查詢NetBIOS名稱伺服器。
4. H-Node(混雜節點, hybrid node):與M-Node相反,先以P-Node查詢NBNS,再以廣播的方式解析NetBIOS名稱。


然而電腦也能透過本機的Lmhosts的本機資料庫檔案將遠端的NetBIOS名稱解析為IP位址,其存放於%systemroot%\system32\drivers\etc資料夾。


一般而言NetBIOS轉化步驟如下:


1. 檢查NetBIOS Name Cache(若與目標電腦曾經連線則會留下的快取記錄)
2. 選擇執行四種方式找出節點IP
3. 檢查Lmhosts檔案
4. 檢查Hosts檔案:一般為了方便會將NetBIOS名稱與主機名稱(hostname)設定為一樣(Windows 2000後強制NetBIOS名稱與主機名稱相同),確認後則會以Hosts檔案內的主機名稱對應IP位址以解析。
5. 查詢DNS:同於上述理由,改以hostname轉為FQDN後查詢DNS Server以解析IP位址。


5.nbtstat指令
nbtstat指令顯示NetBIOS over TCP/IP通訊協定的統計紀錄、本機電腦及遠端電腦的NetBIOS名稱表格及名稱快取,以及WINS登錄的名稱。以下為常見用於nbtstat的debug指令:


1. command> nbtstat –a [hostname]:查詢該電腦提供的資源共享名稱及網路卡實體位址(MAC Address)。(或可用大寫A以IP查詢)
2. command> nbtstat –s:列出目前與本機電腦建立連線的遠端電腦名稱與資料量大小。(或可用大寫D查詢IP位址)
3. command> nbtstat -c:顯示 NetBIOS 名稱快取的內容、NetBIOS 名稱表格及其解析後的 IP 位址。

其餘尚有清除NetBIOS名稱快取內容、查詢NetBIOS名稱解析統計紀錄等相關功能。


0 Comments:

張貼留言