Microsoft TCP/IP 主机名称解析顺序

概要
本文讨论 Microsoft Windows 客户端使用的将主机名解析为 IP 地址的不同方法。该方法序列不同于将 NetBIOS 名称解析为 IP 地址所使用的序列。
更多信息
在使用 TCP/IP 协议的网络上,需要将资源名称转换为 IP 地址才能连接这些资源。Microsoft Windows 客户端将按照方法序列尝试将名称解析为地址,当成功将名称与 IP 地址匹配时停止搜索。

几乎在所有情况下,都会使用两个主要序列:NetBIOS 解析和主机名解析。通过 Windows 文件管理器或网络邻居连接到 Microsoft 服务器上的资源的客户端通常使用 NetBIOS 名称解析。

有关其他信息,请参见下面的 Microsoft 知识库文章:
119493 TCP/IP 上的 NetBIOS 名称解析和 WINS
主机名解析对未通过 NetBIOS 接口连接的 TCP/IP 资源的名称进行解析。其最常见的示例是 Web 浏览器,例如 Microsoft Internet Explorer。其他示例包括 Internet 应用程序,例如 Ping、FTP 和 Telnet。许多使用 Winsock(TCP/IP 套接字的 Microsoft Windows 实现)连接的现代数据库和邮件应用程序也使用主机名解析。这些应用程序类型的示例有 Outlook 和 Exchange。

当解决名称解析问题时,需要限定应用程序要解析 NetBIOS 名称还是主机名。

注意:在本文上下文中,“客户端”术语不一定指的是工作站。Windows NT 服务器会在要求访问需要主机名解析的资源时充当客户端角色。

主机名解析通常使用以下序列:

  1. 客户端查看查询的名称是否是其自身的名称。
  2. 客户端然后搜索本地计算机上存储的本地主机文件、IP 地址列表和名称。

    注意:主机文件位置取决于操作系统:
    Windows NT                  %Systemroot%\System32\Drivers\EtcWindows 95                  <驱动器>\<Windows 文件夹>Windows for Workgroups      <驱动器>\<Windows 文件夹>Windows 3.1                  <驱动器>\<Windows 文件夹>MS-Client 3.0               <启动卷>\NetLan Manager 2.2c 客户端     <启动卷>\Net						
    其中 %Systemroot% 是安装 Windows NT 的文件夹,<驱动器> 是安装 OS 的驱动器,<启动卷> 指的是启动软盘或驱动器 C。

    示例主机文件 Hosts.sam 随 TCP/IP 协议安装,用于显示正确的格式。
  3. 查询域名系统 (DNS) 服务器。
  4. 如果名称仍未解析,则 NetBIOS 名称解析序列充当备份。可以通过配置客户端的 NetBIOS 节点类型更改此顺序。
Windows 客户端将尝试这些方法中的每种方法,直到成功解析名称或使用完这些方法。使用 Microsoft TCP/IP 3.11b 的 Windows NT、Windows 95 和 Windows for Workgroups 客户端都按照此序列操作。Lan Manager 2.2c 或 Microsoft Client 3.0 客户端不将 NetBIOS 名称解析作为备份。

有关其他信息,请参见以下 Microsoft 知识库文章:
169141 MS-Client 和 LM 2.2c 的 NetBIOS 和主机名解析
当解析名称时,客户端将跳过未配置的方法。例如,如果系统中没有主机文件,则它将跳过上述步骤 2,尝试向 DNS 服务器发出查询。如果客户端 TCP/IP 配置中未输入 DNS 服务器 IP 地址,则客户端将跳到序列中 DNS 后的下一步。

更改主机名解析顺序的方法因操作系统和版本而异。这些方法记录在特定操作系统的资源包中以及 Microsoft 知识库中。

有关其他信息,请参见以下 Microsoft 知识库文章:
171567 未应用 Windows NT 4.0 服务提供商优先级值
139270 如何在 Windows 95 和 Windows NT 上更改名称解析顺序
119372 设置 TCP/IP-32 的名称解析搜索顺序

问题疑难解答

:客户端无法解析主机名。

疑难解答步骤:

如果客户端无法解析主机名,则最好验证客户端应当使用的上述主机名解析序列。如果该名称在客户端使用的任何资源中都不存在,则您必须决定将它添加到哪个资源中。如果该名称在资源之一(例如 DNS 服务器或 Windows Internet 名称服务 (WINS) 服务器)中存在,而客户端未能正确解析该名称,则您需要关注如何解决该特定资源的问题。

另外,请确认客户端正在尝试解析主机名而不是 NetBIOS 名称。许多应用程序有多种用来解析名称的方法,邮件和数据库应用程序尤其如此。应用程序可以配置为使用 NetBIOS 连接到资源。根据客户端配置,客户端可以绕过主机名解析。从那里,需要将连接类型更改为 TCP/IP 套接字或者像解决 NetBIOS 问题那样解决该问题。

问题:客户端解析名称的速度非常慢,或者无法解析名称并耗费很长时间报告失败。

疑难解答步骤:

此问题的原因是,在客户端的 TCP/IP 配置中配置了 DNS 服务器,但是该服务器对于客户端不可用。由于 TCP/IP 协议假设不可靠的网络,客户端将在放弃尝试的查询之前,不断尝试连接到 DNS 服务器。如果配置了另一个 DNS 服务器,则客户端将尝试查询该服务器,耗费相同的时间失败。只有这时,客户端才逐步执行上述 NetBIOS 名称解析。

解决此问题有三种方法。

  • 如果主机文件中正确输入了主机名,则将在客户端尝试查询 DNS 之前解析该主机名。此解决方案适用于 DNS 服务器暂时无法访问且需要解析很少数量的主机名的情况。解决方法是可以手动配置多个客户端的主机名。- 或 -

  • 如果 DNS 服务器可用,但是客户端 TCP/IP 配置中的 DNS 服务器地址不正确,则更正这些地址会使客户端立即连接到 DNS 服务器。即使 DNS 服务器报告无法解析名称,也会比客户端根本无法访问 DNS 服务器发生得更快一些。- 或 -

  • 如果客户端上配置了 DNS 服务器,但是这些服务器永久无法访问,则从客户端配置中删除 DNS 服务器的 IP 地址。客户端于是会绕过 DNS 查找,没有任何延迟。- 或 -

  • 如果 DNS 数据库中的记录丢失或不正确,则在 DNS 服务器报告无法解析名称之前查询其他 DNS 服务器时会发生延迟。这通常仅有几秒的延迟。
有关 TCP/IP 和名称解析的详细信息,请参见 Microsoft 匿名 FTP 服务器上的下列白皮书:
文件名:Tcpipimp2.doc
位置:ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers/
标题:“Microsoft Windows NT 3.5/3.51/4.0:TCP/IP Implementation Details TCP/IP Protocol Stack and Services, Version 2.0.”(TCP/IP 实现详细信息 TCP/IP 协议堆栈和服务,版本 2.0)
Властивості

Ідентифікатор статті: 172218 – останній перегляд: 11/29/2013 20:08:00 – виправлення: 7.0

Microsoft Windows NT Server 3.51, Microsoft Windows NT Server 4.0 Standard Edition, Microsoft Windows NT Workstation 3.5, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Workstation 4.0 开发员版, Microsoft Windows 95

  • kbinfo kbnetwork KB172218
Зворотний зв’язок