複製鏈接
請複製以下鏈接發送給好友

名稱解析

鎖定
名稱解析,就是把一個文本類型的計算機名映射到一個數字類型IP地址,分為主機名稱解析和NetBIOS名稱解析兩類。
中文名
名稱解析
外文名
Name Resolution
定    義
文本狀態的計算機名映射IP地址
分    類
主機名稱解析和NetBIOS名稱解析
系    統
Windows系統
領    域
計算機網絡

名稱解析程序簡介

名稱解析就是將文本狀態的計算機名映射為IP地址的過程。Windows 2000支持兩種名稱解析方式:主機名稱解析和NetBIOS解析。主機名稱解析是將計算機主機名解析成IP地址,而NetBIOS解析是將NetBIOS名稱映射成對應的IP地址。兩種名稱解析方式使用不同的方法實現名稱解析。主機名解析可以通過Hosts 主機名文件或DNS 服務器實現,而NetBIOS名稱解析可以通過Lmhosts 文件或WINS服務器實現 [1] 

名稱解析主機名解析

DNS是Windows2000和WindowsXP用於命名主機計算機的標準。與NetBIOS所提供的單層名稱空間不同,DNS提供的是多層次名稱空間。
用於DNS名稱解析的機制包括Hosts文件、DNS本身和DNS解析器緩存 [1] 

名稱解析主機名的概念

主機名幾乎用於所有的TCP/IP環境。下面列出了對主機名的描述:
1.主機名是管理員為計算機分配的別名,別名用於識別TCP/IP主機。主機名不需要與NetBIOS計算機名相符,它可以是任何一個256字符的字符串。可以為同一台主機分配多個主機名 ;
2.主機名簡化了用户對其他TCP/IP主機的稱呼方法。主機名比IP地址容易記憶,使用Ping工具或其他TCP/IP工具時,可以用主機名代替IP地址;
3.主機名總是與一個IP地址相對應的,該IP地址存儲在Hosts文件、DNS數據庫或NetBIOS名稱服務器中;
4.主機名顯示的是分配給系統的主機名。在默認情況下,主機名和基於Windows的計算機名稱相同 [1] 

名稱解析DNS解析器緩存

Windows2000和WindowsXP有一個用於存放近期解析過的名稱的緩存。當需要解析一個名稱時,系統將搜索該緩存。如果沒有找到要解析的名稱,那麼將使用其他解析方法。 使用ipconfig/displaydns可以查看 DNS解析器緩存 [2] 

名稱解析使用Hosts進行名稱解析

Hosts文件與只用於遠程主機的Lmhosts文件不同,它把本地主機和遠程主機的主機名都映射到它們的IP地址。過程如下:
1.當用户使用主機名來輸入一條命令(如Ping命令)時,主機名稱的解析就開始了。
2. 這台計算機會檢查主機名與本地主機名是否一致。如果一致,計算機就成功地解析了名稱(目標主機與源主機相同),並使用該主機的IP地址。
3. 如果兩個主機名不同,就會按順序讀取Hosts文件。如果在Hosts文件中找到主機名,那麼主機名將被解析成一個IP地址。
4.如果無法解析主機名,並且沒有配置其他解析方法(如DNS、NetBIOS名稱服務器、廣播或Lmhosts文件),那麼就中止解析過程,並顯示一個錯誤消息 [2] 

名稱解析使用DNS的名稱解析

DNS服務器是一個在線數據庫。它將FQDN和其他主機名解析成IP地址。通過配置,可以使Window2000和WindowsXP的所有版本都使用DNS服務器,而使Windows2000的所有服務器版本都提供DNS服務器服務。使用DNS服務器解析域名同使用Hosts文件解析域名的過程相似。
通過配置,使Windows2000或WindowsXP使用DNS服務器來解析主機名的過程如下所述:
當用户使用FQDN或主機名輸入一條命令時,DNS服務器在它的數據庫內尋找該名稱,並嘗試把它解析成一個IP地址。如果DNS服務器無法解析該名稱,那麼該DNS服務器可以查詢其他DNS服務器,請求它們幫助完成這個名稱解析。
如果其他DNS服務器沒有對該請求作出響應,那麼計算機會再發出若干次請求。如果仍然沒有任何響應,並且沒有配置其他解析方法(如NetBIOS名稱服務器或Lmhosts),那麼就中止解析過程,並報告一個錯誤 [2] 

名稱解析NetBIOS名稱解析

NetBIOS名稱就是計算機名。某些Windows操作系統使用它來識別網絡上的計算機。一台計算機要建立與另一台計算機的通信,就必須把對方的計算機名解析成一個IP地址。
NetBIOS名稱解析的特有機制包括:廣播、Lmhosts文件和NetBIOS名稱服務器。

名稱解析NetBIOS名稱的概念

NetBIOS名稱長度為16個字節。與255個字符的DNS主機名不同,NetBIOS名稱是另一種計算機命名的方法。Windows2000和WindowsXP的多數功能使用DNS名稱,但是如果網絡上有一些計算機運行Windows早期版本,或裝有依賴於NetBIOS名稱的應用程序,那麼就必須進行NetBIOS名稱解析。
1. NetBIOS名稱註冊
當計算機服務啓動,以及用户登錄時,將動態註冊NetBIOS名稱。NetBIOS名稱既可以註冊為惟一名稱,用於映射惟一地址,又可以註冊為組名稱,用於映射多個地址。
2.NetBIOS名稱註冊舉例
Windows2000的Server服務是使用NetBIOS名稱服務的一個例子。Windows2000的Server服務提供文件和打印機共享。用户啓動計算機時,該服務註冊一個基於計算機名的惟一NetBIOS名稱。註冊名由15個字符的計算機名加上第16個字符0x20構成。這第16個字符惟一地標識了Server服務。
當用户嘗試使用NetBIOS名稱來連接到一個共享文件夾時,將啓動一個名稱查詢,用於搜索Server服務的NetBIOS名稱。一旦找到該NetBIOS名稱就建立通信,這樣用户就可以連接到該共享文件夾所在的服務器
3.瀏覽
WindowsNT、Windows2000和WindowsXP可以創建已註冊NetBIOS名稱的列表,使用户能夠在網絡上找到含有共享資源的計算機。建立這些列表的過程稱為“瀏覽”。
要在Windows2000上訪問共享資源,可以執行以下步驟:
1)打開“網上鄰居”,然後雙擊“整個網絡”;
2)單擊“全部內容”;
3)雙擊“MicrosoftWindows網絡”;
4)雙擊適當的域或工作組,然後雙擊該資源所在的計算機名 [1] 

名稱解析廣播名稱解析

當WINS服務器不可用時,運行Windows2000之前版本的操作系統(如Windows 98)的計算機將使用廣播消息把NetBIOS名稱解析成IP地址。這個方法比較簡單,效率也相當高。當遇到網絡上另一台計算機的NetBIOS名稱時,計算機會生成一系列“名稱查詢請求”消息,並把這些消息作為廣播傳送給本地網絡上所有其他計算機。使用該查詢消息中指定的NetBIOS名稱的計算機就會向發出查詢的計算機發送一條“肯定名稱查詢響應”消息,該消息中含有前者的IP地址。發出查詢的計算機將使用這個IP地址向目標計算機發送單播消息。
廣播名稱解析法存在兩個主要的問題。第一,廣播只能用於解析本地網絡的計算機名。因為廣播傳輸侷限於產生廣播的局域網(LAN)內,所以即使LAN之間有路由器連接,Windows計算機也無法使用該方法來解析其他LAN內的計算機名。在WINS普及之前,網絡管理員通常把廣播與一個LMHOSTS文件結合使用。這個個LMHOSTS文件專門用於存放其他LAN上NetBIOS名稱的解析。第二,這個方法會在網絡上產生大量的廣播傳輸,使得網絡上所有計算機的網絡接口適配器都要接收、檢查和丟棄大量目標為其他計算機的消息。要解決這個問題,就需要安裝只使用單播傳輸的WINS服務器 [2] 

名稱解析使用Lmhosts的名稱解析

當發送一個在同一子網內的NetBIOS名稱解析的廣播後,如果廣播沒有返回IP地址,Microsoft客户端計算機就會讀取Lmhosts文件。Lmhosts文件是一個靜態ASCII文件,用於解析遠程NetBIOS計算機的NetBIOS名稱。Lmhosts文件有以下特點:
1.它解析早期Windows命令(如netuse)所使用的NetBIOS名稱 ,每項都由一個NetBIOS名稱和它對應的IP地址組成 ;
2.每台計算機都有自己的Lmhosts文件。默認目錄位置是以下形式的:systemroot\System32\Drivers\etc。該目錄含有一個Lmhosts樣本文件(Lmhosts.sam) [2] 

名稱解析使用NetBIOS名稱服務器的名稱解析

解析本地遠程NetBIOS名稱,最常用的方法是使用NetBIOS名稱服務器。當用户啓動某些命令,或使一個NetBIOS應用程序與網絡進行交互時,NetBIOS名稱的解析進程就開始了。客户端計算機將先查NetBIOS名稱緩存,以查找目標主機的“NetBIOS名稱/IP地址”映射。如果在緩存內找不到NetBIOS名稱,那麼客户端計算機就嘗試使用其他辦法來確定目標主機的IP地址。
如果使用NetBIOS名稱緩存無法解析名稱,那麼就把該目標主機的NetBIOS名稱發送到NetBIOS名稱服務器,該NetBIOS名稱服務器已配置為源主機。把NetBIOS名稱解析成IP地址後,NetBIOS名稱將返回源主機 [2] 
參考資料
  • 1.    劉竹濤 .名稱解析過程分析 [J].電腦知識與技術, 2007 , 4 (24) :159-161
  • 2.    [美] 特南鮑姆,[美] 韋瑟羅爾 著.計算機網絡:清華大學出版社 ,2012