100 MB 网络上冲突率太高

文章翻译 文章翻译
文章编号: 315237 - 查看本文应用于的产品
有关本文的 Microsoft Windows 2000 版本,请参阅 169789

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

本文内容

症状

如果您使用 TCP/IP 协议和 100 MB 网络适配器,您可能会注意到,在复制文件时网络性能很慢。在 Windows XP 中使用 Windows Explorer 时也可能遇到此问题。

请注意,尽管已经知道在几种 100 MB 网络适配器上会出现性能变慢的情况,但此问题并不是 Windows 特有的。

原因

此问题是由于网络上早期冲突率太高导致的。帧间间隔(尝试在网线上传输之前,工作站等待的时间)小于 IEEE 802.3 规范的 9.6 微秒。

解决方案

警告:“注册表编辑器”使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因“注册表编辑器”使用不当而导致的问题。使用“注册表编辑器”需要您自担风险。

要解决此问题,请联系您的网络适配器制造商,以了解有关增加帧间间隔的信息。

Intel EtherExpress 100B 网络适配器有一个注册表参数可以用来控制帧间间隔的长度。如果您使用 Intel EtherExpress 100B 网络适配器,要修改此参数,请执行以下步骤:
  1. 启动注册表编辑器 (Regedit.exe)。
  2. 在注册表中找到以下注册表键,其中 x 是网络适配器的编号:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\e100bx\Parameters
  3. 单击编辑,单击添加数值,然后键入以下信息:
    数值名称:Adaptive_ifs
    数值类型:REG_DWORD
    数据:1(启用自适应算法)
    默认情况下,用于检测冲突和调整帧间间隔的自适应算法是启用的。将此数值设置为 0 可以禁用自适应算法。一个介于 2 到 200 之间的数值设置了预定义的帧间间隔。开始时,请将此值设置为 20,然后以 20 为单位逐渐递增。在此过程中,测量冲突次数同时注意性能,然后设置一个具有较小冲突率又不影响性能的最终值。

变通办法

要解决此问题,您可以创建一个 TcpWindowSize 注册表参数,这样,发送方必须收到接收方的 ACK 才会发送更多数据。进行此更改可减少冲突发生的可能性。按照下列步骤操作:
  1. 启动注册表编辑器 (Regedit.exe)。
  2. 在注册表中找到下面的项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. 单击添加,单击数值,然后添加以下信息:
    数值名称:TcpWindowSize
    数值类型:REG_DWORD
    数据:2920(十进制数)-- 字节数
    对于 Ethernet,请将此数值设置为十进制数 2920;对于其他网络拓扑,将其设置为最大 TCP 数据大小的两倍。但是,对于其他网络可以不必修改此设置,因为基于令牌环或“光纤分布数据接口” (FDDI) 的网络的冲突率没有 Ethernet 网络那么高。

    请注意,修改此参数可能会严重影响性能。一般说来,根据网络拓扑的不同,广域网 (WAN) 或常规 10 MB 网络上的发送方和接收方之间通常存在一定的滞后。因此,由于 TCP/IP 确认 (ACK) 而导致冲突的可能性是不存在的。此种情况下,调整 TcpWindowSize 只是减少吞吐量。

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。

更多信息

当两个工作站在网线上同时传输数据时,就会产生“冲突”。“早期冲突”是 512 位帧在网线上传输之前产生的任何冲突。在正常运行的 Ethernet 网络上也可能出现早期冲突。硬件没有故障,工作站也没有错误现象。

IEEE 802.3 规范规定,工作站必须等待 9.6 微秒(帧间间隔)后才可以在网线上传输数据。为了获取较高的数据传输率,一些适配器制造商将他们的适配器设计为较小的帧间间隔。这个较小的帧间间隔就可能导致较高的冲突率。

冲突的可能性也受上层协议行为的影响。TCP/IP 规范是收到两个数据帧发送一个 ACK(确认)。也就是说,当 TCP 主机收到两个数据帧后,该 TCP 主机才会向发送方发出一个 ACK。如果已经收到两个数据包的客户端尝试发出一个 ACK,但同时发送方也在尝试向客户端发送更多数据,这种情况下冲突的可能性就比较高。

分析 Windows XP 中的 Windows Explorer 文件复制

使用命令行或 Windows XP 中的 Windows Explorer 启动同一文件复制时,数据传输的模式是不一样的。此种情况下,转发程序将发出一个 60 千字节 (KB) 的“块读取”或“原始读取”。数据传输模式如下所示:
10 CLIENT SERVER  SMB C read & X, FID = 0x1004, Read 0xf000
11 SERVER CLIENT  SMB R read & X, Read 0xf000
12 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
13 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
14 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
15 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
16 CLIENT SERVER  TCP .A...., len:0, seq:404791-404791, ack
17 CLIENT SERVER  TCP .A...., len:0, seq:404791-404791, ack
18 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
19 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
20 SERVER CLIENT  NBT SS:Session Message Cont., 1460 Bytes
				
TCP 级:
10 CLIENT SERVER  TCP len:64, seq:404727-404790, ack:   6992081
>客户端发送 64 字节数据(SMB 命令以读取 4KB);

11 SERVER CLIENT  TCP len:1460, seq:6992081-6993540, ack:    404791
>服务器发送 Piggyback ACK,SMB 使用一些数据响应;

12 SERVER CLIENT  TCP len:1460, seq:6993541-6995000, ack:    404791
13 SERVER CLIENT  TCP len:1460, seq:6995001-6996460, ack:    404791
>服务器将其余数据发送给客户端。

>**可能在此时发生冲突,因为客户端尝试发送 ACK。

14 SERVER CLIENT  TCP len:1460, seq:6996461-6997920, ack:    404791
15 SERVER CLIENT  TCP len:1460, seq:6997921-6999380, ack:    404791
>但服务器将获得网线使用权并发送更多数据。

16 CLIENT SERVER  TCP len:0, seq:404791-404791, ack:   6996461
>客户端将获得网线使用权并针对第 12 帧和第 13 帧数据发送 ACK。

17 CLIENT SERVER  TCP len:0, seq:404791-404791, ack:   6999381
>客户端将获得网线使用权并针对第 14 帧和第 15 帧数据发送 ACK。

18 SERVER CLIENT  TCP len:1460, seq:6999381-7000840, ack:    404791
19 SERVER CLIENT  TCP len:1460, seq:7000841-7002300, ack:    404791
>服务器继续发送数据。

>**可能在此时发生冲突,因为客户端尝试发送 ACK。

20 SERVER CLIENT  TCP len:1460, seq:7002301-7003760, ack: 404791
>但服务器将获得网线使用权并发送更多数据。
				
使用 TCP/IP 协议时,TCP 确认 (ACK) 将会影响冲突。但是,此问题并不是 TCP/IP 或 Windows Explorer 可以进行 60 KB 块读取这项改进引起的。此问题也可以用 FTP 来说明。TCP/IP、转发程序和 Windows Explorer 绝对无法控制帧间间隔。帧间间隔处于物理层,它是由适配器上的芯片控制的。因此,如果您的网络冲突率太高,请联系网络适配器制造商。

有关 TCP/IP 协议的其他信息,请参阅标题为“TCP/IP Implementation Details”的白皮书,您可以在以下 Microsoft 匿名 FTP 站点上找到此白皮书:
ftp://ftp.microsoft.com/bussys/winnt/winnt-docs/papers/
此白皮书的文件名是 Tcpipimp2.doc。

属性

文章编号: 315237 - 最后修改: 2007年12月1日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Professional x64 Edition
关键字:?
kbnetwork kbprb KB315237
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com