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.

  • 相关阅读:
    sklearn 的 metrics
    转载:spring boot 中使用 jpa以及jpa介绍
    springboot 事件监听(@EventListener实现)
    多线程:创建线程和线程的常用方法
    缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    不定义新变量,交换两个变量的值
    理解WebSocket心跳及重连机制
    SpringBoot实现WebSocket
    批量打包成ZIP压缩文件
    RocketMQ入门教程
  • 原文地址:https://www.cnblogs.com/larry-luo/p/11010871.html
Copyright © 2011-2022 走看看