RNDIS 连接在 Windows 上延迟,在 Linux 上不延迟

RNDIS 连接在 Windows 上延迟,在 Linux 上不延迟

我有两部 Android 智能手机,它们可以通过 RNDIS(远程网络设备接口规范)协议通过 USB 为计算机提供互联网连接。我还有两台计算机,分别启动 Windows 7 Ultimate 和某些版本的 Linux(其中一台启动 Fedora 17,另一台启动 Ubuntu 12.04)。

当我将任意一部智能手机连接到任意一部计算机且该计算机运行的是 Windows 时,我必须在启用手机网络共享后等待大约 90 秒才能使用互联网连接。

当我将任意一部智能手机连接到任意一部计算机且该计算机运行 Linux 时,我必须等待大约 2.5 秒才能使用互联网连接。

我的问题是,为什么 Windows 上会出现如此长的延迟?

在 Windows 上,适配器上会显示“正在识别...”大约 60 秒,然后显示“访问受限或无访问”,然后如果我继续刷新浏览器,最终它会允许我浏览。之后就没问题了。

在 Linux 上,它可以立即连接,就像插入以太网电缆一样。砰,完成了。

我不认为这与硬件有关,因为我有两部来自不同制造商(摩托罗拉和 HTC)的手机,它们运行的​​是两个不同版本的 Android(2.3.6 和 4.0.4)。在计算机方面,我有一台联想 ThinkPad T530 和一台手工制造的台式机。我实际上已经在两台不同的手工制造的台式机上尝试过它;一台是 Nehalem 系统,另一台是 Ivy Bridge。据我所知,它们彼此之间完全没有关系。

我为提高 Windows 性能所做的尝试如下:

  1. 干净安装 Windows。除了基本驱动程序、SP1 和关键更新外,什么都没有。没有 VPN 软件、没有安全软件、没有虚拟化软件、没有任何自定义 netfilt 驱动程序,除了那些与手机绑定所必需的驱动程序。

  2. 在网络连接属性中取消选中除 TCP/IPv4 之外的所有选项(因此取消选中 QoS、Microsoft 网络客户端、链路层拓扑等)。

  3. 设置静态 IP 和静态 DNS 服务器。

这些都毫无帮助。在手机上启用网络共享功能后大约 90 秒,我根本无法在计算机上导航,而且问题只发生在 Windows 上。在 Linux 上则没问题。

对此我感到很困惑。我的 RNDIS 驱动程序版本为 6.1.7600.16385,名称为“基于 NDIS 的远程 Internet 共享设备”,后面通常跟有数字,如 #2、#9 等。我在所有情况下都使用正版 Windows,并且我尝试过联想的 OEM 版 Windows(在 ThinkPad 上)以及我的台式机上零售 CD 上的全新 Microsoft 安装。

答案1

我遇到一个问题,某个游戏(XCOM 2)会出现 3-5 秒的冻结,然后大约 0.5 秒正常运行,重复循环,从主菜单对开场场景进行 3D 渲染的部分开始。介绍视频渲染正常。显然,以每 5 秒 0.5 秒的速度玩游戏是无法玩的。

我最终将这种情况缩小到只有当我的 USB Verizon Hotspot (Jetpack) 插入时才会发生。所以我想我可以在没有互联网的情况下玩 XCOM 2,或者插入互联网而不玩 XCOM 2。由于这是我的主要互联网连接,我别无选择。有趣的是,在我向 SU 提出这个问题几年后,这个问题再次出现。

但问题实际上是由于驱动程序配置错误造成的!USB 热点(包括通过 USB 连接的 Android 智能手机)通过称为远程 NDIS 的协议将自身暴露给操作系统。NDIS 经历了 Windows XP、Vista、7、8 和 Windows 10 等多个版本的发布。NDIS 最大的变化是从版本 5.x 到版本 6.x。

不知何故,当我插入 Jetpack 时,Windows 10(64 位)为我的 Jetpack 安装了 NDIS 版本 5.x 驱动程序,尽管系统也提供 6.x 版驱动程序。这实际上会导致应用程序出现一系列严重问题,例如内置控制面板小程序“网络连接”,它需要很长时间才能加载,但有些人从不使用该应用程序,所以他们不知道这是一个问题。不过,我从未见过这会给游戏带来问题。

NDIS 版本 6 驱动程序自 Windows Vista 以来就一直存在,因此,操作系统为何使用 NDIS 版本 5.x 而不是 6 进行初始化,这确实令人费解。但是,当按照此手动步骤强制加载 NDIS 6.x 驱动程序时,我的 XCOM 2 问题就完全解决了。现在一切都运行良好!

修复此问题的详细步骤如下:http://forum.xda-developers.com/android/general/fix-usb-tethering-lags-freezes-windows-t3039183

简而言之,您需要做的是更新远程 NDIS 设备上的驱动程序,然后在计算机上手动选择一个驱动程序,然后选择供应商为 Microsoft,驱动程序为“USB RNDIS6”。这将更新您的驱动程序并提升您的 Internet 连接。之后,XCOM 2 将顺利运行。

如果我刚才描述的程序不起作用,请转到我上面链接的 XDA 论坛,还有其他一些替代方法来获取和安装远程 NDIS 驱动程序的 NDIS 6 版本。

感谢@DenisNikolaenko,他于 2015 年 1 月发布了解决方案,但直到现在我才看到他的评论。

相关内容