windows上關閉Nagle算法


下面的設置可以調整或禁用 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啟用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 縮減到100ms.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM