zoukankan      html  css  js  c++  java
  • windows上关闭Nagle算法

    下面的设置可以调整或禁用 nagel 算法。禁用 nagel 算法以后, 允许很小的包没有延迟立即发送。建议对某些游戏关闭 nagel 算法, 这样做对文件传输/吞吐量有负面影响。默认状态( 开启nagel )为了提高性能, 会把几个小数据包合并一起, 为了有效传输更大的数据包。虽然这提高了整体性能,并降低了TCP/ IP开销, 但可能会短暂延迟较小的数据包的传输。切记禁用 Nagle 算法可能对文件传输有一些负面影响, 只能帮助某些游戏减少延迟.

    为了实现这个调整,在注册表编辑器(开始>运行> REGEDIT)找到:
    此设置配置最大数量的ACKs ( Windows XP/2003/Vista/2008 )
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{NIC-id}
    将有多个网卡接口有列出,例如: {1660430C-B14A-4AC2-8F83-B653E83E8297}. 找到与你 IP 地址相同的地址, 创建一个新的 DWORD 值:
    TcpAckFrequency=1
    解释:(DWORD value, 1=disable, 2=default, 2-n=send ACKs if outstanding ACKs before timed interval. Setting not present by default).

    对于游戏性能,推荐的是1(禁用)。对于纯吞吐量和数据流,您可以尝试值超过2。如果您尝试较大的值,只要确保 TcpAckFrequency* MTU 小于 RWIN 就行, since the sender may stop sending data if RWIN fills witout acknowledgement.

    此外,找到下面的键(win7 下需要 开始→控制面板→程序→程序和功能→打开或关闭windows功能, 开启 Microsoft Message Queue 才能看见 Parameters):
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSMQParameters
    添加一个新的DWORD值:
    TCPNODELAY=1
    解释:(DWORD值为0启用Nagle算法,1禁用,默认情况下不存在)

    要配置的ACK间隔超时(只有启用 Nagel 的时候才有效),找到(新增)以下注册表项:
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{NIC-id}

    TcpDelAckTicks=0
    解释:(DWORD value, default=2, 0=disable nagling, 1-6=100-600 ms).
    你可以设置为 1 来将 NAGLE 的延迟时间从默认的 200ms 缩减到100ms.

  • 相关阅读:
    索引聚焦如何使 SQL Server高效 设计(ITPUT 讨论汇总)
    android包Android "java.lang.NoClassDefFoundError:*"报错的处理方法
    删除实现图的构造、DFS、BFS 以及图的删除实现
    RTL8019以太网控制器
    JavaScript正则表达式
    sql语句
    无线模块电阻表
    FindWindow(api)确认程序是否在运行
    正则表达式语法
    msi安装程序安装参数
  • 原文地址:https://www.cnblogs.com/larry-luo/p/11010871.html
Copyright © 2011-2022 走看看