我发了类似帖子问题在 StackOverflow 上。有人建议我在这里发布类似的问题,看看是否有人能给我一些见解。
从 MSDN 上得知,从 Windows Vista 开始不再支持 NetBIOS。果然,我从网络属性中再也看不到任何 NetBIOS 名称。
然而,当我在 Windows 7 上编写代码时,我仍然在很多地方遇到 NetBIOS 名称。例如
- 我仍然可以使用“MYDOMAIN\Harvey”登录我的机器,我相信 MYDOMAIN 是一个 NetBIOS 名称。
- 环境变量 COMPUTERNAME 和 USERDOMAIN 仍然是 NetBIOS 名称。我希望在这里看到 DNS 名称
- 从我的 SQL Server Management Studio 中出现的 SQL Server 实例名称仍然类似于 MYMACHINE\Instance1。
我猜微软仍然保留了其中的一些部分以实现向后兼容。我想了解 Windows 7 将如何将 NetBIOS 名称解析为 IP 地址。我发现这篇文章解释了NetBIOS 名称解析可以。但对于 Windows 7 来说,恐怕不再如此。至少对我来说没有 WINS 服务器。有人能向我解释一下 Windows 7 如何进行 NetBIOS 名称解析吗?
更新 如果协议消失,NetBIOS 名称解析将如何进行?它是否仍与 WINS 通信?如果是,它是否仍使用 NetBIOS 协议与 WINS 通信?
答案1
答案2
Windows Vista 及更高版本肯定仍支持 TCP/IP 上的 NETBIOS。您可以在适配器的 TCP/IP 设置中看到这一点。仍有一个位置可以添加 WINS 服务器地址。我们在校园内运行多个 WINS 服务器,我们所有的客户仍在使用它们。尽管如此,DNS 是现代/首选的命名解析方法,但 NETBIOS 仍然存在,以兼容旧版应用程序和/或网络。
答案3
与其尝试重新讨论其他地方已有的详尽记录,不如阅读http://www.jacco2.dds.nl/samba/smb.html
(NetBIOS 仍然存在 - NETBEUI 已消失)
答案4
更多的观察而不是答案......
我曾经在一台禁用了 WINS、禁用了 DNS 并启用了 TCP/IP 上的 NetBios 的机器上进行过跟踪。对同一网络中的名称的查询生成了单个广播,由本地浏览主机应答。在关闭该浏览主机的情况下,客户端在另一个客户端响应之前发送了 X(记不清了,但>=10)个广播。当对另一个网络上的机器进行查询时,客户端广播了 100 个查询,然后从第二个网络中的机器收到响应。Netbios 必须具有在网络之间转发请求的机制。
NetBios 非常有弹性,并且可能比人们所知道的更频繁地弥补不足(例如在禁用 WINS 或 DNS 配置错误的网络上)。