分享

理解Windows网络中的名字解析 - WinSVR.ORG - Windows Server System Chinese Resource Website

 dreamland 2006-04-21
理解Windows网络中的名字解析


 
TCP/IP协议通信是基于IP地址的,但是,谁会记住那一串单调的数字呢?因此,大家基本上都是通过访问计算机名字,然后通过某种机制将计算机名字解析为IP地址来实现。此时,名字解析机制就变得特别重要。在Windows Server 2003中,提供了两种名字解析方式:NetBIOSDNS,它们具有各自不同的解析机制。
:无论是NetBIOS名字还是DNS名字,都是计算机名字,只是使用不同的格式而已。
首先,给大家介绍一下Windows系统中的名字组成。当你安装Windows系统的时候,你必须为计算机输入一个长度不超过15个字符的名字,这个计算机名字将作为NetBIOS名字,同时也作为DNS名称的主机名。NetBIOS名字是平面性的,最大长度为15个字符(完整的NetBIOS服务名称是16个字符,其中最后一个字符用户不可配置,用于定义NetBIOS服务类型),在任何一个NetBIOS广播域中,某个确定的NetBIOS名字必须是唯一的,即只能有某一个确定的计算机拥有此NetBIOS名字。和NetBIOS名称不同,DNS名称是具有层次性的,主机名只是完整的DNS名称-称为完全限定域名(fully qualified domain name,FQDN)的一部分而已。FQDN除包括主机名外,还包含主机所在的域名,例如DNS名称 www.winsvr.org,则www是主机名,winsvr.org则是这台主机所存在的域的域名。
在名字组成中,涉及了以下术语:
  • NetBIOS名字:一个NetBIOS名字用于唯一识别绑定到某个网络适配器主要IP上的NetBIOS服务,可以通过广播、WINS服务器或Lmhosts文件来进行解析。NetBIOS名字为15个字符,和计算机名字相同;如果计算机名字长度超过15个字符则为前15个字符,如果不足15个字符则使用0进行填充。完整的NetBIOS服务名称为16个字符,其中第16个字符用于定义服务类型,用户不可配置。
  • 主机名:通常代表FQDN的第一部分,例如,FQDN www.winsvr.org的主机名是 www。一般情况下,计算机名称也作为主机名。当你在安装时指定计算机名称或者在系统属性的计算机名标签中修改时,则同时指定了NetBIOS名字和主机名。
  • 主域名后缀:主域名后缀指定计算机在名字注册和名字解析时所使用的域名后缀,你可以在系统属性的计算机名标签中修改。通常主域名后缀也称为主域名或者域名,例如,www.winsvr.org的主域名后缀是winsvr.org。
  • 连接指定后缀:连接指定后缀指分配给某个网络适配器的DNS后缀,例如,一个连接指定后缀通常是subnet2.winsvr.org。当计算机具有连接到不同子网的多个网络适配器时,通过连接指定后缀,可以实现让不同子网中的客户通过不同的FQDN来访问这台主机上连接对应子网的网络适配器。
  • 完全限定域名(FQDN):完全限定域名是完全标识网络上一台计算机的DNS名字。一个FQDN由“.”连接主机名和主域名后缀而产生,例如,www.winsvr.org。通常完全限定域名又称为DNS名字。
 
对于NetBIOS名字和DNS名字,主要区别如下:
 
NetBIOS名字
DNS名字
类型
平面
层次
组成字符限制
Unicode字符,数字
A~Z,a~z,0~9,和连字符“-”
最大长度
15个字符
DNS域名的每一节最大长度为63字节,FQDN长度最大为255字节
名字解析方式
广播
WINS服务器
Lmhosts文件
DNS服务器
Hosts文件
通讯协议端口
UDP 137
UDP 53
 

那么,NetBIOS名字和DNS名字各自的作用和使用范围是什么呢?

NetBIOS实际上不是一个命名系统,而是一个使用在Windows网络中的应用程序编程接口,它允许计算机相互进行连接和通讯。NetBIOS名字是微软在Windows 2000之前的Windows系统中采用的标准名称解析方式;在Windows 2000之后,采用DNS协议作为首选名称解析方式,但是仍然保留了对Netbios协议的支持,称之为Netbios over TCP/IP。当你在使用计算机名字进行访问,例如,使用server1share1来访问网络共享时,则是通过NetBIOS来进行名字解析。同时,网上邻居和计算机浏览器服务依赖于NetBIOS协议。

注:计算机如何区别用户输入的名字是NetBIOS名字还是DNS名字呢?这是通过判断用户输入的名字中是否包含“.”来决定。如果包含则认为是DNS名字,如果不包含则认为是NetBIOS名字。

注意我在前面关于名字组成的时候,对于NetBIOS名字,提到一个NetBIOS广播域的概念,这是因为NetBIOS协议的广播特性。默认情况下NetBIOS协议基于本地局域网中的UDP广播,这样的好处是速度快、无需额外配置,缺点是广播不能跨越网段和增加了网络流量,因此微软推出了WINS(Windows Internet Name Service)服务器,当计算机配置为使用WINS服务器时,它直接和WINS服务器进行单播通讯,这样可以避开NetBIOS协议使用广播时的这两大缺陷。

对于NetBIOS名字的解析,默认过程如下:

  • 检查本地的NetBIOS名字缓存;

  • 查询WINS服务器;

  • NetBIOS广播查询本地网络;

  • 查询Lmhosts文件,如果配置为这样做,此文件位于%systemroot%System32DriversEtc目录下

 

DNS是Windows 2000及其后Windows系统的首选名字解析方式,它也是TCP/IP协议族中的标准名字解析机制。计算机通过和配置的DNS服务器进行通讯来解析域名。和NetBIOS相比,DNS提供了更好的扩展性、安全性以及和Internet的兼容性,同时DNS服务也是活动目录的基础服务。

对于DNS名字的解析,过程如下:

  • 检查本地的DNS缓存(Hosts文件中的配置已经加载到DNS缓存中);

  • 检查DNS服务器;

 

在Windows 2000及以后的Windows系统中,首选使用DNS方式进行名字解析,但是这两种名字解析机制是可以共用的。并且从用户惯性的角度,建议保留NetBIOS名字解析。不过,从网络性能的角度,当部署使用NetBIOS名字解析时并且计算机超过15台时,建议部署WINS服务器。

关于DNS服务器和WINS服务器的部署,请参见WinSVR.ORG相关技术文章。

作者:风间子

 
引用:
  错了错了,NetBios 最早是 ibm 开发的。NetBEUI 是一个实现(NetBios Extended User Interface),历史悠久了。NetBios 的其他实现包括 NetBios over IPX/SPX,NetBios over TCP/IP ==。NetBios 主要是应用在 LanManager、DOS、Windows、OS/2 等系统中。

当年 TCP/IP 还没有一统江湖,IPX/SPX,NetBEUI,AppleTalk 等一些协议群雄割据中。而 PC 上联网的协议最主要的就是 IPX/SPX 和 NetBEUI。当年恐怕没多少人在 DOS 上跑 TCP/IP 的(不是说当时没有 DOS 下的 TCP/IP 堆栈。另外,IPX/SPX 是 Novell 从 TCP/IP 发展过来的。)

后来 MS 的 NT 份额逐步扩大,把 Netware 干翻了,IPX 就逐步没落;而 NetBEUI,本身有缺陷,基于广播,不能路由,没法扩展,因此随着 Internet 的逐步发展,TCP/IP 开始占据主流。MS 先是实现了 NetBios over Tcp/ip,NBT,后来随着 2k 系统的出现及 ActiveDirectory 取代 NT 传统 Domain 模式,新一代 NetBIOS over TCP/IP 也诞生了,其实就是原先的 NBT 的超集,跑在 445 (microsoft directory service,microsoft-ds)端口上。从端口的名字就知道,AD 的核心就跑在这个端口上,CIFS 应该算是上面的一个应用。

无论什么系统,9x/NT/2k,包括 DOS/Win3.x,使用什么协议,NetBEUI/IPX/TCPIP,配置好了都能找到联网的计算机,那种说需要 NetBEUI 才能访问到网上邻居中计算机的说法是都是胡扯。可能是 NetBEUI 基于广播,最简单,装好就能用,所以很多人在无法访问其他计算机的时候才首先想到他。不过,你让他找个跨网段的计算机试试?甚至,你计算机上装两个网卡的时候,NetBEUI 就会给颜色你看,会告诉你网络上有重名的计算机。

TCP/IP 成为 MS 系统的主流协议好像是从 NT4 开始的,那时候默认的协议好像就是 TCP/IP 了。主要的 NetBios 名字解析手段是 WINS,DNS/广播/LMHOSTS/HOSTS 文件是辅助手段。当然用户可以自己决定用什么解析手段为主,这就是 NBT 结点类型的作用。当然,随着 Internet 的大发展,到了 2k 里,就以 DNS 作为主要的解析手段了。  
另外,DHCP 和 NetBios 最主要的联系恐怕就是能分配 WINS 服务器地址以及 NBT 结点类型,这关系到 NetBios 名字的解析。其他方面 DHCP 和 NetBIOS 好像就没什么关系了。 
[ 由 edwardjGS在 2006.04.20 22:14最后编辑. ]

 


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多