关闭nagel算法

翻译 2013年12月04日 21:06:16
原文出处
http://www.xtremesystems.org/forums/showthread.php?237964-Gaming-Tweak!!!!-disable-nagle-s-algorithm

游戏调整 —— 关闭 nagel 算法

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

此设置配置最大数量的ACKs ( Windows XP/2003/Vista/2008 )
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{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_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters
添加一个新的DWORD值:
TCPNODELAY=1(DWORD值为0启T用Nagle算法,1禁用,默认情况下不存在)

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

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


附注:
据悉,上述游戏调整(禁用Nagle算法)可以减少WOW(魔兽世界)延迟了近一半!
XP/2003需要 SP2 补丁(MS KB815230)
Vista需要 SP1 补丁(MS KB935458)



相关文章推荐

windows下关闭TCP的Nagle纳格算法

session 1 Nagle算法       Nagle算法,纳格算法:nagle算法是为了解决TCP传出过程中出现的“愚笨窗口综合症”的一种TCP传输算法,该算法是在TCP发送小数据包(teln...

使用setsockopt TCP_NODELAY禁用 Nagle算法

Nagle算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用 程序系统的效率。(Nagle虽然解决了小封包问题,但也导致了较...
  • yahohi
  • yahohi
  • 2011年08月25日 10:43
  • 14950

Nagel算法

Nagel算法TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个...

Manacher算法总结

Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。 相对于前...

Nagel_book

  • 2011年12月13日 21:31
  • 2.48MB
  • 下载

尝试用顺序表实现排序算法(持续更新..)

数据结构刚刚学到顺序表,于是顺便试下复习下C语言,自学下后面必会的各种排序算法并自己实现下。(排序算法毕竟比较基础也是很多时候面试会面到的)算是随笔吧,最近又挺忙的,搞项目的事 排序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关闭nagel算法
举报原因:
原因补充:

(最多只允许输入30个字)