五、 NetBIOS的名字解析
在“你問(wèn)我答”中我們多次提到,要在局域網(wǎng)的“網(wǎng)上鄰居”中看到網(wǎng)絡(luò )中的其它計算機,就必須安裝 NetBEUI 協(xié)議。這實(shí)際就是 Windows 系統的瀏覽服務(wù),通過(guò)這一服務(wù),系統可以創(chuàng )建 NetBIOS 計算機名列表,這些計算機名再以組名為條件排序,用戶(hù)就可以利用“網(wǎng)上鄰居”或 NET View 命令來(lái)顯示結果了。<> NetBIOS 名包含的內容:</P><> NetBIOS 名??即計算機名稱(chēng),用來(lái)標識獨立的用戶(hù)或計算機。獨立的 NetBIOS 名是工作組的成員,它們屬于一個(gè)默認的工作組或由用戶(hù)自定義可以加入一個(gè)自選的工作組。</P><> 工作組名??用來(lái)標識某個(gè)工作組的成員。</P><P> 域名??同工作組名一樣,域名也是一種 NetBIOS 組名,它是通過(guò)域控制器來(lái)標識、證實(shí)其成員的。但在域名服務(wù)中這兩者被認為是一樣的,這也就是在“網(wǎng)絡(luò ) 控制面板”的屬性的“標識”頁(yè)框中只有計算機名、工作組、計算機說(shuō)明等項目而沒(méi)有“域名”的原因。</P><P> NetBIOS 名的登記:</P><P> NetBIOS 在小型網(wǎng)絡(luò )中登記名字的方法是廣播。NetBIOS 名字服務(wù)提供的功能有:自動(dòng)登記名字、查詢(xún)名字、響應名字查詢(xún)、在關(guān)機時(shí)釋放名字等,但它并不需要專(zhuān)門(mén)的名字服務(wù)器,甚至可以通過(guò)直接通信來(lái)進(jìn)行名字登記。</P><P> NetBIOS 名字的解析方法(綁定協(xié)議為T(mén)CP/IP)</P><P> 1、NetBIOS 名字緩存??本地的名字緩存通過(guò)預先加載或地址解析而將地址在存放在客戶(hù)機的內存中。其優(yōu)點(diǎn)是從緩存中查詢(xún)名字的速度特別快,缺點(diǎn)是緩存中每條記錄的生存周期只有10分鐘,需要不停的刷新。</P><P> 2、廣播查詢(xún)??如果名字在緩存中不能被查詢(xún)到,同時(shí)系統沒(méi)有配置 WINS 服務(wù)器,系統就使用 UDP 端口137和138的 NetBIOS Datagram Distribution Service(NDDS,中文意思就是 NetBIOS 數據報分布服務(wù))來(lái)進(jìn)行查詢(xún)。本地網(wǎng)上的計算機在網(wǎng)絡(luò )中搜索它們的名字列表,如果目標主機在同一網(wǎng)絡(luò )中,就發(fā)出一個(gè)響應。缺點(diǎn)是 NDDS 服務(wù)不能通過(guò)路由器,只能在單段網(wǎng)絡(luò )上使用廣播查詢(xún)。</P><P> 3、WINS??這個(gè)我們已經(jīng)做了專(zhuān)門(mén)的介紹,客戶(hù)機通過(guò)配置使用 WINS 服務(wù)器來(lái)登記和撤消自己的名字。其優(yōu)點(diǎn)是可以指引 UDP 端口137和138的消息通過(guò)路由器,使得可以查詢(xún)本地網(wǎng)以外的主機。</P><P> 4、LMHOSTS??這與我們講到的名字緩存有關(guān)了。LMHOSTS 是一種在存儲在本地機器上的純文本的主機文件,采用的是 LAN Manager格式。其一般是在廣播查詢(xún)失敗后才用到,其方法是通過(guò)標記 #PRE 將 LMHOSTS 名預先加載到本地的 NetBIOS 名字緩存,以避免使用廣播查詢(xún)用到的主機名。</P><P> 這里我們同時(shí)看看 Windows 系統中用到的另外兩種名字解析方法:</P><P> 1、HOSTS??HOSTS 也是一種在存儲在客戶(hù)本地機器上的純文本主機文件,但采用的是 UNIX格式。同樣是在廣播查詢(xún)失敗及 LMHOSTS 查詢(xún)失敗后才用到。其優(yōu)點(diǎn)是可以存儲別名和全域名,其缺點(diǎn)是不支持 Tag 操作。</P><P> 2、DNS??這一點(diǎn)我們也已經(jīng)做了專(zhuān)門(mén)講述了。如果客戶(hù)機允許“啟動(dòng) DNS”來(lái)進(jìn)行 Windows 名字解析,客戶(hù)機在上面的所有查詢(xún)操作都失敗后將查詢(xún) DNS 服務(wù)器。</P><P> 我們可以看出這兩種解析方式是一種域名查詢(xún)方式,一般說(shuō)來(lái)它們用于 IP 主機名的解析。</P><P> 接下來(lái),我們來(lái)看一下 HOSTS 文件,對于 LMHOSTS 我們準備作為一個(gè)專(zhuān)題獨立出來(lái)集中講述。</P><P> HOSTS 文件的示范文件可以在 C:\WINNT\SYSTEM32\DRIVERS\ETC 目錄中得到,其文件名是:HOSTS.SAM。SAM 即 SAMPLE,是Microsoft 提供給用戶(hù)的一個(gè)如何配置 HOSTS 的例子,其中帶有說(shuō)明性的文字。在用戶(hù)需要進(jìn)行 HOSTS 配置的時(shí)候,可以直接將其改名復制為 HOSTS 并做相應修改即可。</P><P> HOSTS 文件包含了 IP 地址及主機名稱(chēng)等信息。下面就是該文件的內容:</P><P># Copyright (c) 1993-1995 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows NT.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost</P><P> 這里的示例是將 rhino.acme.com 映射到地址 102.54.94.97。注意地址和主機名之間必須有空格。另外,一個(gè)地址可以使用多個(gè)名稱(chēng),方法就是添加別名(跟在主機名后面,用空格隔開(kāi))。這在 UNIX 系統中可以將大、小寫(xiě)的所有名稱(chēng)都添加進(jìn)去(因為 UNIX 區分大小寫(xiě)),如果希望將多個(gè)不同的名稱(chēng)解析到同一地址也可使用這一方法。示例中的#就是是我們上面的說(shuō)到的由微軟提供的說(shuō)明性文字。
</P>