Tuesday, October 11, 2011

Host Name V.S NetBIOS Name


Ref: http://wentzwu.com/TechNotes/NameResolution.htm
Ref: http://wiki.iiietc.ncu.edu.tw/mediawiki/index.php?title=23.%E8%AA%AA%E6%98%8E_WINS%3F 
Ref: http://baike.baidu.com/view/22282.htm


 Host Name即一般人所稱的Domain Name(雖然二者並不一樣),其中Host Name加上Domain Name就是所謂的FQDN(Fully Qualified Domain Name), 如www.HiNet.net.,www為Host Name,HiNet.net為Domain Name。

NetBIOS Name最長16Bytes,但微軟保留第16個Byte來識別Service,所以你在設電腦名稱時只能用15個文數字。而Host Name加上Domain Name(即FQDN), 如果我沒記錯的話,最長應可到254個Bytes。

如果你的程式是屬於NetBIOS的程式,那麼將根據Node Type ( H-Node, P-Node, B-Node) 來進行NetBIOS Name解析,如果程式是標準的TCP/IP之Socket或WinSocket程式,那麼就以Host Name的解析方式來進行。

WINS是Windows Internet Name Service的縮寫是由 Microsoft 所發展出來的一種網路名稱轉換服務它可以將 NetBIOS 電腦名稱轉換為對應的 IP 位址,並用來解決在路由環境中解析 NetBIOS 名稱的問題,WINS 是 NetBIOS 名稱解析最好的選擇。 這與DNS服務也執行類似的功能不過它是將網域名稱(domain name) (例如 www.abc.com) 轉換為 IP 位址 。  

在WINS的運作結構中,WINS伺服器是被動接收並記錄WINS客戶端電腦傳送給它的資料,也因為是採用這個方式,WINS客戶端的電腦上必須有WINS伺服器的IP位址,如此才能將自己的電腦名稱傳送給WINS伺服器。與DNS Server不同的地方是WINS Server是被動地而且動態的收集各客戶端電腦的主機名稱。而DNS Server則需要以人工的方式建立主機名稱與IP位址對照表。

   ARP: IP <-> MAC address
   WINS: Computer Name <-> IP
   DNS: Host Name <-> IP



名稱解析

關於名稱解析的問題,有二點是必須先確定的:
1. 名稱類型:(有的名稱可以立即判斷出是host name或NetBIOS Name)
Host Name -> www.abc.com (符合DNS的名稱格式,一定是Host Name)
NetBIOS Name -> \\server1 (這是微軟的UNC,一定是NetBIOS Name)
無法直接判斷 -> mail1 (無法確定。這個名稱可能是host name也可能是或NetBIOS Name)
2. 程式類型:
TCP/IP的網路程式 -> 就是所謂的Socket程式,例如:Telnet, FTP, Browser等.
微軟傳統的網路程式 -> 就是NetBIOS程式, 網芳, 檔案總管(NT4.0以前的程式都是)

結論:

1. 如果名稱類型可以直接判定是Host Name,解析方式為:hosts -> DNS
2. 如果名稱類型可以直接判定是Net BIOS Name,解析方式為:
B_Node: cache -> broadcast -> lmhosts
P_Node: cache -> WINS -> lmhosts
M_Node: cache -> broadcast -> WINS -> lmhosts
H_Node: cache -> WINS -> broadcast -> lmhosts
3. 如果名稱類型無法可以直接判斷,則視程式類型以決定解析方式為:
Socket程式 -> 會將該名稱視為Host Name,採用[結論1]來解析。
NetBIOS程式 -> 會將該名稱視為NetBIOS Name,採用[結論2]來解析。
4. 微軟對上述名稱解析的改良:
當程式使用[結論1]進行名稱解析無法成功,微軟的產品可以用[結論2]再進行一次;反之亦然。
當使用[結論1]及[結論2]都無法解析無法成功,才會出現錯誤訊息。

範例:

  • http://server1.abc.com (host name,使用[結論1]解析)
  • http://server1 (無法直接判斷,根據[結論3],結果會使用[結論1]解析)
  • net use \\server1\c$ (NetBIOS name,使用[結論2]解析)
  • net use \\server1.abc.com\c$ (host name,使用[結論1]解析)

No comments:

Post a Comment