Главная / Алгоритм Нагла

⚡ Алгоритм Нагла

Отключение алгоритма Нагла для снижения задержки в MMO играх и интерактивных приложениях

📋 Что это?

Алгоритм Нагла объединяет несколько мелких пакетов в один большой для повышения эффективности. Это снижает накладные расходы, но вносит небольшую задержку, которая может быть проблематичной для игр.

🎯 Преимущества отключения

  • Снижает задержку до 50% в MMO, таких как WoW и Diablo III
  • Улучшает время отклика в FPS и MOBA играх
  • Устраняет микро-заикания при постоянных соединениях
⚠️

⚠️ Предупреждение

Отключение Нагла может снизить производительность при передаче больших файлов. Рекомендуется только для систем, предназначенных для игр.

💻 Как отключить

Шаг 1: Найти ID сетевого адаптера

Получить GUID сетевого адаптера powershell
Get-NetAdapter | Select-Object Name, InterfaceGuid

Путь в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\

Шаг 2: TcpAckFrequency

Значение по умолчанию: 2 (200мс задержки)
Рекомендуется: 1 (отключает Nagling)
Создать TcpAckFrequency powershell
# Замените NIC-ID на ваш GUID
$nicPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-ID}"
New-ItemProperty -Path $nicPath -Name "TcpAckFrequency" -PropertyType DWord -Value 1 -Force

Шаг 3: TCPNoDelay

Создать TCPNoDelay powershell
$nicPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-ID}"
New-ItemProperty -Path $nicPath -Name "TCPNoDelay" -PropertyType DWord -Value 1 -Force

Шаг 4 (Необязательно): TcpDelAckTicks

Настроить TcpDelAckTicks powershell
$nicPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-ID}"
New-ItemProperty -Path $nicPath -Name "TcpDelAckTicks" -PropertyType DWord -Value 0 -Force

Для MSMQ (если применимо)

TCPNoDelay для MSMQ powershell
$msmqPath = "HKLM:\SOFTWARE\Microsoft\MSMQ\Parameters"
New-ItemProperty -Path $msmqPath -Name "TCPNoDelay" -PropertyType DWord -Value 1 -Force
💡

💡 Совет

Работает на Windows 7, 8, 10 и 11. Также немного улучшает производительность WiFi.

🔄 Откатить изменения

Удалить настройки powershell
$nicPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{NIC-ID}"
Remove-ItemProperty -Path $nicPath -Name "TcpAckFrequency" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $nicPath -Name "TCPNoDelay" -ErrorAction SilentlyContinue
⚠️

⚠️ Важно

  • Перезагрузка: Перезагрузите Windows для применения изменений
  • PowerShell Admin: Запустите от имени администратора
  • Резервная копия: Создайте точку восстановления