更新
好的,我已经尝试了以下答案,但没有任何改变。我已将笔记本电脑中的芯片组识别为 NVIDIA nForce 520。我为 nForce 520 下载了最新的 Vista x64 驱动程序(NVIDIA 还没有针对 Win 7 的该芯片组的任何驱动程序)。我已经尝试安装附带的防火墙软件(认为它可能会干扰 - 它不是)。我已经完全卸载了我的防病毒软件(我正在使用 Avast!),认为它的网络过滤器驱动程序可能会导致问题,但这也没有帮助。
我把我的笔记本电脑带到了我兄弟家,并且能够通过他的 100Mbit 网络以 10 - 12 MB/s 的速度复制文件,所以我认为这不是硬件。
我运行 iperf 得到了一些令人惊讶的结果:
iperf 从笔记本电脑发送到服务器(上传)
> iperf -c naru
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[328] local 192.168.7.100 port 8549 connected with 192.168.7.6 port 5001
[ ID] Interval Transfer Bandwidth
[328] 0.0-10.0 sec 162 MBytes 136 Mbits/sec
> iperf -c naru -w 64k
------------------------------------------------------------
Client connecting to naru, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[328] local 192.168.7.100 port 8550 connected with 192.168.7.6 port 5001
[ ID] Interval Transfer Bandwidth
[328] 0.0-10.0 sec 1.06 GBytes 909 Mbits/sec
iperf 从服务器发送到笔记本电脑(下载)
> iperf -c miyuki
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[256] local 192.168.7.6 port 51871 connected with 192.168.7.100 port 5001
[ ID] Interval Transfer Bandwidth
[256] 0.0-10.1 sec 25.2 MBytes 20.8 Mbits/sec
> iperf -c miyuki -w 64k
------------------------------------------------------------
Client connecting to miyuki, TCP port 5001
TCP window size: 64.0 KByte
------------------------------------------------------------
[256] local 192.168.7.6 port 51872 connected with 192.168.7.100 port 5001
[ ID] Interval Transfer Bandwidth
[256] 0.0-10.0 sec 21.1 MBytes 17.6 Mbits/sec
为了比较,这里是 HTPC 和服务器之间的 iperf 数
Server: Naru, Host: CC (CC sends to Naru)
iperf -c naru: 0.0-10.0 sec 363 MBytes 305 Mbits/sec
iperf -c naru -w 64k: 0.0-10.0 sec 1.06 GBytes 912 Mbits/sec
Server: CC, Host: Naru (Naru sends to CC)
iperf -c cc: 0.0-10.0 sec 322 MBytes 270 Mbits/sec
iperf -c cc -w 64k: 0.0-10.0 sec 1020 MBytes 855 Mbits/sec
使用 Wireshark 观察从服务器到笔记本电脑的传输,可以获取以下大量条目:
(:51aa is the server, :37a1 is the laptop)
No. Time Source Destination Proto Info
37785 27.286240 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#13] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40517974
37786 27.286258 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#14] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40519414
37787 27.286277 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#15] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40520854
37788 27.286295 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#16] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40522294
37789 27.286313 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#17] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40523734
37790 27.286332 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#18] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40525174
37791 27.286351 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#19] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40499254 SRE=40526614
37792 27.286370 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Previous segment lost] [TCP segment of a reassembled PDU]
37793 27.286372 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP segment of a reassembled PDU]
37794 27.286375 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Fast Retransmission] [TCP segment of a reassembled PDU]
37795 27.286377 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37796 27.286379 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37797 27.286382 fe80::1569:8500:b24a:51aa fe80::3820:2199:1623:37a1 TCP [TCP Out-Of-Order] [TCP segment of a reassembled PDU]
37798 27.286413 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#20] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40529494 SLE=40499254 SRE=40526614
37799 27.286432 fe80::3820:2199:1623:37a1 fe80::1569:8500:b24a:51aa TCP [TCP Dup ACK 37753#21] 8360 > microsoft-ds [ACK] Seq=80228 Ack=40489174 Win=64800 Len=0 SLE=40528054 SRE=40530934 SLE=40499254 SRE=40526614
在这一点上,我完全不知道接下来要尝试什么。
原始问题
背景
我目前在新安装的 Windows 7 笔记本电脑上遇到问题。这个问题最初是在我安装了 Windows 7 RC 之后发生的。当 Windows Vista 和 Windows 7 Beta 1 安装在这台笔记本电脑上时,我能够以千兆位速度传输,同时将巨型帧打开到 9KB/9014 范围。笔记本电脑之间的两个交换机也支持巨型帧。
当将文件从我的服务器复制到我的笔记本电脑时,它们以蜗牛般的速度运行(通常小于 1 MB/秒),而通过相同交换机的其他设备可以以更高的速度传输(45 - 55 MB/秒)。从笔记本电脑复制到服务器的速度似乎更快,但并不像它应该的那样。
涉及的机器
- Miyuki:有问题的笔记本电脑。Windows 7 x64 RTM。HP Pavilion dv9700 首席技术官。使用 NVIDIA nForce 10/100/1000 Mbps 以太网适配器。(视频为 GeForce 8400M GS)
- Naru:带有文件的服务器。自定义 Windows Server 2008 R2 x64 SP2。使用 D-Link DGE-560T PCI Express 千兆适配器。
- CC:HTPC 在同一个交换机上没有问题。Windows Vista x86 SP2。使用板载 Realtek RTL8168B/8111B PCI-E GBE 适配器。
拍摄这些图像时,巨型帧已全部关闭。
图像
从笔记本电脑开始复制
服务器 -> 笔记本电脑(来源:gibixonline.com)
笔记本电脑 -> 服务器
从服务器启动复制
服务器 -> 笔记本电脑(来源:gibixonline.com)
出乎意料的是,让服务器将文件从笔记本电脑复制到自身会导致我期望的速度。(笔记本电脑 -> 服务器)(来源:gibixonline.com)
我之前说过,同一交换机上的另一台机器没有这个问题。高 DPI 已打开,因为它显示在 HDTV 上。
服务器 -> HTPC (来源:gibixonline.com)
自然地,作为测试,我决定看看我的笔记本电脑和 HTPC 之间的速度是多少。不幸的是,它们正是我所期望的。
HTPC -> 笔记本电脑(来源:gibixonline.com)
最后的笔记
我已经尝试了我能想到的一切。此时甚至巨型帧都已关闭,似乎没有任何影响。我尝试关闭我的防病毒保护以更换我使用的电缆。目前使用的所有电缆都是我制造的 CAT-5e。我尝试从 HTPC 中取出电缆并将其插入我的笔记本电脑,以查看电缆是否有问题。有问题的两个交换机是 D-Link DGS-1216T 和支持巨型帧的“哑”交换机 D-Link DGS-2208。
尝试禁用 Window 的自动调整功能。
在 CMD 窗口中:
重新运行您的测试,看看您是否注意到性能改进。我不得不在我家的几台运行 Windows 7 的笔记本电脑上执行此操作,这很有帮助。
如果情况变得更糟,或者您没有注意到任何改进,您可以通过以下方式重新启用自动调整:
这似乎是 Windows 7 的一个大问题。一些游戏玩家抱怨这个问题。
这将我在大多数游戏中的 ping 从 200-300 毫秒降低到 50-60 毫秒,这与我通过游戏服务器的跟踪器看到的延迟相匹配。
取自减少 windows 7 或 vista 中的游戏网络延迟
要验证笔记本电脑是否没有故障,请运行 ubuntu live cd,将 iperf 安装到 ramdisk 上并运行测试。
这至少应该测试它的网络端。
检查丢弃的数据包。不知道如何在 Windows 中执行此操作,但如果您有一台 linux 机器,您可以在那里查看。
我在千兆位交换机上也有类似的经历,其中千兆位模式被破坏并丢弃数据包。我只在这种模式下连接了 2 台机器时才看到问题。在 100K 模式下,一切都很好。这是一个令人讨厌的问题,我花了几天时间才发现。我可能是 D-Link。对您的交换机型号进行一些谷歌搜索。我做了,发现其他人和我有同样的问题。
我以前在使用其他 AV 产品时遇到过这种情况。我的问题出在 SMB 上,即使“禁用”了 AV 产品也会受到干扰。它在您拥有的wireshark中显示了类似的结果。这是我检查的许多站点之一,以找到根本原因:Symantec SMB 问题和另一个:SMB2 使用 NTP 失败
此外,您可以尝试禁用/更改 SMB 中的全部或部分设置。我什至会考虑在操作系统上禁用 v2。查看这篇描述 Win Vista 中的 SMB 问题的文章,这个指向 Microsoft 的链接概述了有关 SMB reg 设置的一些技术数据。
我知道你提到了 Avast,但我看到类似的wireshark 结果是相当巧合的。请注意,在我的情况下,除了文件传输之外的所有内容似乎都可以正常工作。
在使用数据包签名时,我遇到了客户端与 Windows 服务器通信的问题。我没有遇到缓慢,而是非常常见的连接中断。
在此处阅读解决我的问题的解决方案。
此外,我在这里没有看到任何建议一一关闭 TCP 烟囱功能以查看其中一个是否出错。
似乎操作系统在写入磁盘之前正在检查数据包。我观察到所有缓慢的传输都是试图写入笔记本电脑的传输......我建议
其他人被建议但似乎没有帮助:
最后一个建议是,您可以检查 nic 高级属性的电池模式链接检测吗?这是一台笔记本电脑,节能属性可能存在一些问题...尝试在电池模式链接检测上“不节能”,在电池速度设置上尝试“满”。
我在台式电脑上使用 win7,这些选项不包含在我的 nic 的高级属性中。只要我从未遇到过这个问题,您也可以将“Flow Control”的值检查为“TX and RX Enabled”作为我的网卡选项。Jumbo 被禁用,Speed 和 Duplex 在我的配置中也是自动的...
我想不出任何其他解决方案...希望这会有所帮助...
以前我用完全相同的问题追逐我的尾巴一段时间!一个方向的传输速度很慢,在我的情况下是出站(上行链路)。
Windows 7 Pro、Celeron J1800 与 Realtek Gigabit 8111C 内置网卡。另一端是 QNAP 453a 和 MacBook Pro。
当通过 Iperf3 测量时,我的 Windows 7 设置为客户端(CPU 使用率为 25-30%)时获得了 112 mbps。设置为服务器时只有 39-41 Mbps,CPU 使用率在 50-100% 之间。太糟糕了,PC 在带宽测试时会死机。
无论我是将文件上传或下载到我的 NAS 还是我的 MAC,常规文件传输的上限为 45mbps。
我得到的数据不超过每秒 35-45 兆字节。相当令人沮丧!
最终成为一个糟糕的局域网卡驱动程序。我痴迷于更新驱动程序,并且总是在有新驱动程序可用时更新我的驱动程序。你猜怎么着,几次更新后我的网卡变慢了。
有些人可能会说,只需删除旧驱动程序并安装新驱动程序即可。很简单啊?我试了又试,它对我不起作用。
这是我的解决方案:
使用制造商网站上的 OEM 驱动程序从头开始安装 Windows。我也做了以下事情:
在设备管理器/局域网卡/高级设置/禁用除流量控制之外的所有内容。
在 Windows 功能下,禁用远程差异压缩。
现在平均速度在 80-100 Mbps 之间。
无论如何,我假设您已将网卡设置为全双工、100MBit,而不是自动?
你可能会讨厌这个答案,但我不得不说!
您是否尝试过更新驱动程序?
我在我的笔记本电脑(基于 Realtek 的 NIC)上遇到了类似的问题,它以大约 3MB/s 的速度传输,但是当我从他们的站点将驱动程序升级到最新的驱动程序时,它会上升到大约 40-50MB/s
仅仅因为 Windows 的驱动程序可以工作,并不意味着它们是最好的。