(从 StackOverflow 移到这里)
前段时间,我们团队中的几乎所有工作站(Windows XP SP2)在访问网络共享时都表现出间歇性但频繁的延迟。通常,第一次访问一段时间未访问的共享会导致工作站几乎冻结长达 30 秒。然后一切又开始正常工作了。
使用来自 Sysinternals 的 TCPView,我看到在此延迟期间,文件服务器上的netbios-ssn端口连接到状态SYN_SENT。
第一次尝试:
为 Intranet 网络适配器禁用TCP/IP 上的 NetBIOS 。
问题解决了,但我不想为 Intranet 操作我们集中管理的网络配置。
第二次尝试:
仅为 VMWare 网络适配器禁用TCP/IP上的 NetBIOS(VMNet1 仅用于主机通信)。
问题又解决了!
我的问题:
- 为什么一个网络适配器上的TCP /IP 上的 NetBIOS 会干扰另一个网络适配器上的 TCP/IP 上的 NetBIOS?
- 此问题是否特定于 VMWare 网络适配器?
- 有没有其他人见过这种现象?
附加信息:
- VMWare 工作站版本 6.0.3
- 当我开始认真分析问题时,再也不可能找出问题开始时我们的系统发生了什么变化。
我见过类似的现象。
乍一看,症状听起来不太相似:Windows 资源管理器有时会挂起几秒钟,无论是否访问本地磁盘或网络共享。
但经过一番调查,我认为挂起是由类似的 NetBIOS 问题引起的。
一些系统细节:
我整天都在运行 Wireshark,在物理适配器上嗅探数据包。我注意到,只要 Explorer 同时挂起几秒钟,就会向 WINS 服务器发送一个 NetBIOS 名称服务查询数据包。这些数据包包含 VMNet 适配器的地址之一作为其源 IP 地址!
这是其中一个可疑数据包:
我认为这是不正确的。数据包的源 IP 地址应设置为 192.168.10.111。
我没有在 WINS 服务器的接口上嗅探数据包。但我希望它通过其默认网关向 192.168.145.1 发送回复,因为它没有连接到 192.168.145.0 网络。网关应以“网络不可达”拒绝此数据包。
由于这是一个 UDP 数据包,因此在 SYN_SENT 状态下没有连接。但是以相同方式“损坏”的 TCP SYN 数据包应该使连接处于 SYN_SENT 状态,直到发生超时。
我试图解决这个问题的一些事情:
我已经在 Network Connections->Advanced->Advanced Settings以及运行netsh interface ip show config检查了适配器顺序。本地连接是两个地方列出的第一个连接。
此外,我注意到一些源 IP 地址为 192.168.137.1 和 192.168.145.1 的 NTP 数据包通过物理适配器发送到 192.168.10.192(它是一个 AD DC)。
同样的问题。使用wireshark捕获可疑数据包:协议:NBNS,信息:名称查询NBSTAT
尽管配置了 NAT,但来自 vmnet8 的 IP 数据包仍会在物理网络上发送!
似乎这个奇怪的 NetBIOS 东西不是 vmware 的 NAT'ed!
君特。
我的经验发现 Vmware NAT 是一种有限的能力。同样在其他网络模式下,某些类型的数据包不会返回。我认为这是 Vmware 如何处理网络数据的错误。