На чтение 3 мин Просмотров 7.1к. Опубликовано
Алгоритм Nagle
Алгоритм Nagle является средством повышения эффективности сетей TCP/IP за счет сокращения количества пакетов, которые необходимо отправить по сети. Он был придуман Джоном Нэйглом во время работы в Ford Aerospace и опубликован в 1984 году в ответ на запрос комментариев (Request for Comments) с заголовком «Управление перегрузкой» в сетях IP/TCP (см. RFC 896). В RFC он описывает «проблему малого пакета», где приложение неоднократно передает данные в малыми партиями, часто размером всего 1 байт. Поскольку TCP-пакеты имеют 40-байтовый заголовок (20 байтов для TCP, 20 байтов для IPv4), это приводит к формированию пакету в 41 байт с 1 байтом полезной информации, что является огромными накладными расходами.
Данная ситуация часто возникает в сеансах Telnet, где большинство нажатий клавиш генерируют один байт данных, которые передаются немедленно. Хуже того, по медленным каналам многие подобные пакеты передаются практически одновременно, что часто приводит к коллапсу. Алгоритм Нейгла работает, объединяя несколько небольших исходящих сообщений в единый пакет, а затем отправляя их получателю. В частности, до того момента пока адресант не получил пакет подтверждающий получение данных адресатом он продолжает накапливать в буфере пакеты до тех пор, пока не достигнет максимального размера полезного блока данных MSS, таким образом отправляем все пакеты за один раз.
По умолчанию Windows использует алгоритм Nagle при обработке сообщений. Это означает, что для того, чтобы сообщение было отправлено, его размер должно быть не более максимального возможного полезного блока данных для TCP-пакета (сегмента) MSS (Maximum segment size), что в некоторых ситуациях может мешать работе приложений, понижая их эффективность при работе с малыми пакетами или при взаимодействии с системами реального времени (real-time systems), когда скорость доставки критична. В данных ситуациях нам поможет отключение алгоритма Nagle, как следствие значительно снизится время доставки пакета.
Отключаем алгоритм Нейгла
Чтобы отключить алгоритм Nagle, выполните следующие шаги:
- Нажмите комбинацию клавиш Win+R и напечатайте в строке regedit.
- Перейдите к следующей ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces.
- Увидите несколько интерфейсов в следующем формате {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.
- Перейдите к ним и найдите подсказки (обычно это значение DhcpIPAddress), которые укажут, какой из них — интерфейс по умолчанию. Альтернативный вариант — выполнить следующие шаги для всех непустых интерфейсов, если вы хотите отключить алгоритм Нейгла на всех устройствах.
- Щелкните правой кнопкой мыши на пустом месте в правом окне и выберите New -> DWORD (32-bit) Value и установите его имя в TcpAckFrequency. Затем дважды щелкните на полученное значение, чтобы изменить его значение на 1.
- Повторите шаг 4, но на этот раз установите имя ключа DWORD (32-разрядное значение) в значение TCPNoDelay. Затем снова убедитесь, что вы изменили значение ключа на 1
- Перезагрузите Windows, задача выполнена.
Принципиальная схема обмена пакетами после того, как отключили алгоритм Nagle:
Симптомы
При отправке сообщений в очередь сообщений Microsoft и TCP/IP в качестве транспортного протокола, может быть задержка около 300ms перед отправкой пакетов по сети. Это происходит потому, что стек Windows TCP/IP использует алгоритм Nagle. Алгоритм Nagle повышает производительность, обеспечивая эффективное использование пакетов TCP/IP и препятствует сеть подвергается массовой рассылке небольших пакетов TCP/IP. Хотя в некоторых случаях может быть выгодно разрешить пакеты меньшего из соображений производительности отдельных. В данной статье описывается, как отключить алгоритм Nagle TCP/IP, отправляя сообщения MSMQ.
Важно. Эта статья содержит сведения об изменении реестра. Убедитесь, что вы сделали резервную копию реестра перед внесением в него изменений. Убедитесь, что вы знаете, как восстановить реестр в случае возникновения проблем. Дополнительные сведения о том, как сделать резервное копирование, восстановление и изменение реестра, см. в следующей статье базы знаний Майкрософт:
256986 описание реестра Microsoft Windows
Решение
Примечание. Следующее исправление не требуется для MSMQ 2.0 (Windows 2000) или MSMQ 3.0 (Windows XP и Windows 2003). Тем не менее значения реестра, описанные в разделе «Дополнительная информация» этой статьи будет по-прежнему необходимо добавить.
Доступно исправление от корпорации Майкрософт, но оно предназначено только для устранения проблемы, в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.
Чтобы устранить эту проблему, обратитесь к технической поддержки корпорации Майкрософт для получения исправления. Полный список телефонов служб поддержки продуктов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Английская версия данного исправления должны иметь следующие атрибуты файлов или более поздние:
Date Time Version Size File name Platform
————————————————————-
6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».
Данная ошибка была исправлена в Windows NT 4.0 Пакет обновления 6.
Дополнительные сведения
Алгоритм Nagle TCP/IP
Алгоритм Nagle TCP/IP был разработан для устранения неполадок с небольших пакетов, называемые tinygrams, в медленных сетях. Алгоритм утверждает, что подключение по протоколу TCP/IP может иметь только один баланс небольшой сегмент, еще не были подтверждены. Определение «small» меняется, но обычно он определен как «меньше, чем размер сегмента», который в сети ethernet составляет около 1500 байт.
Отключить алгоритм Nagle вручную
Алгоритм Nagle можно отключить, изменив следующий параметр реестра и с инструкциями в разделе «Активация изменений».
-
В разделе HKEY_LOCAL_MACHINE поддерево найдите следующий раздел:
\Software\Microsoft\MSMQ\Parameters
-
В меню Правка выберите команду Добавить раздел и используйте следующую информацию:
Value Name: TcpNoDelay
DWord: 1
Активация изменений
Диспетчер очереди должен быть остановлена и перезапущена после внесения изменений в реестр. Это можно сделать, остановка и запуск службы очереди сообщений Microsoft с помощью панели управления службы.
Ссылки
Примечание. Алгоритм Nagle определен в TCP/IP RFC 896.
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.
В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.
При онлайн-играх на устройстве Windows 10 любая задержка передачи данных может повлиять на исход игрового процесса. В этом посте я расскажу, как отключить алгоритм Нейгла для оптимизации скорости интернета в Windows 10.
Алгоритм Нейгла — назван в честь Джона Нейгла — средство повышения эффективности работы сетей TCP/IP, позволяющее уменьшить количество пакетов, которые должны быть отправлены по сети.
Приложения и игры, для которых важно актуальное время ответа, например, матчи Дота 2, могут плохо работать с алгоритмом Нейгла. Они предполагают, что какие-либо действия отправляются сразу, тогда как алгоритм целенаправленно задерживает передачу, увеличивая эффективность использования полосы пропускания сети за счет задержки. По этой причине приложения с низкой пропускной способностью срочных передач обычно используют TCP_NODELAY, чтобы обойти задержки алгоритма Нейгла.
Чтобы отключить алгоритм Нейгла и оптимизировать Windows 10, сделайте следующее:
1. Проверьте текущий IP-адрес вашего сетевого интерфейса.
Откройте командную строку с правами администратора, введите команду и нажмите Enter:
ipconfig /all
На выходе запишите IPv4-адрес.
2. Отключите алгоритм Нейгла
Теперь вы можете продолжить работу с реестром. Перед любыми изменениями создайте резервную копию реестра или точку восстановления системы в качестве необходимых мер предосторожности.
После этого вы можете продолжить:
- Нажмите клавиши Windows + R, чтобы вызвать диалоговое окно Выполнить.
- В окне Выполнить введите
regedit
и нажмите Enter, чтобы открыть редактор реестра. - Перейдите разделу реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
- В этом месте вам нужно будет проверить каждый из перечисленных интерфейсов, чтобы найти тот, который имеет правильный текущий IPv4-адрес.
- В правой части создайте две новых записи DWORD (32-разрядное).
- Переименуйте одно в TcpAckFrequency и нажмите Enter.
- Переименуйте второе в TCPNoDelay и нажмите Enter.
- Теперь дважды щелкните на каждом новом значении для редактирования свойств.
- Введите 1 в поле Value data.
- Нажмите OK, чтобы сохранить изменения.
- Выйдите из редактора реестра.
- Перезагрузите компьютер.
Вот так!
Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
Алгоритм Нейгла — это метод, используемый системой Windows 10 для оптимизации работы с сетевыми папками. Однако, в некоторых случаях, он может вызывать проблемы при работе с сетевыми ресурсами. В этом случае, отключение алгоритма Нейгла может устранить проблемы с доступом к сетевым папкам.
Шаг 1: Откройте реестр Windows
Для отключения алгоритма Нейгла необходимо зайти в реестр Windows. Для этого нужно нажать сочетание клавиш Win + R и в открывшемся окне ввести regedit. После этого нажмите Enter.
Шаг 2: Переход к папке параметров алгоритма Нейгла
Откроется окно редактора реестра. В левой части окна найдите папку параметров алгоритма Нейгла, перейдя по следующему пути:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
Выберите нужную папку и перейдите в нее, щелкнув по ней левой кнопкой мыши.
Шаг 3: Создание нового параметра
Создайте новый параметр, выбрав «Новый» -> «DWORD-значение (32 бита)».
Шаг 4: Изменение имени параметра
Измените имя параметра, введя значение «DisableTaskOffload».
Шаг 5: Определение значения параметра
Установите значения параметра равным 1.
Шаг 6: Завершение работы в редакторе реестра
После завершения всех настроек редактора реестра, закройте его окно и перезагрузите компьютер. После перезагрузки алгоритм Нейгла должен быть отключен.
Советы:
— Перед внесением изменений в редактор реестра Windows рекомендуется создать резервную копию системы.
— Внимательно следите за всеми шагами инструкции, так как изменение настроек реестра Windows может повлиять на работоспособности всей системы.
You will see the easiest way to Enable and Disable Nagle’s Algorithm on Windows 10 and 11 here. When you get a PC with Windows 11 or 10 as the Operating System, you expect every tool in your computer to be unconventional and useful. But a bitter truth is that all the features in it are not convenient. One such useless feature is Nagle’s Algorithm that slows down your internet speed and prevents you from quickly responding.
Before proceeding further, Let’s understand what Nagle’s Algorithm is in very simple words. It is designed to control the productivity of TCP/ IP networks by decreasing the packets that need to be sent over a network. This algorithm is justified by saying that it properly utilizes the TCP/ IP packets and prevents small TCP/ IP packets from flooding your network. Sending these smaller packets (tiny grams) is advantageous only in some particular scenarios such as on slower networks but overall, it is useless to many. Read – How Recent Google Algorithm change will affect Blogger and user
Here is How to Enable and Disable Nagle’s Algorithm on Windows 11 or 10 –
At first, let’s see some general information about Nagle’s Algorithm and why it is useless to many –
The Common Reason for Disabling Nagle’s Algorithm
Despite the convenience it provides, Nagle’s Algorithm has failed to impress most users. People who are involved in networked video games suffer from this algorithm the most as the games are effective only when the data transfers without any delays. Once you disable this, there will be no stuttering time delay while playing multiplayer games on a network.
You may also read – Fix Game Stuttering Using Intelligent Standby List Cleaner on Windows 10
Why you should disable Nagle’s Algorithm on Windows 11 or 10?
If you want the data to flow freely through your network, it is vital to disable Nagle’s Algorithm. Doing so will help in fasten network, and evade the lower gaming ping/latency. Before learning to enable and disable Nagle’s algorithm, it is important to understand the NIC Interface.
NIC Interface – When a PC has multiple internet connections Windows Registry generates a distinctive NIC-ID or NIC Interface for each one. Your computer displays this in a cryptic combination of numbers and letters, surrounded by braces. For recognizing the relevant NIC-ID, you need to get your active internet connection IP address. Here’s how –
- In the Search Box of your Taskbar, type CMD and when the result shows up, Press Enter on your keyboard. By doing this, Command Prompt opens.
- On the following window, type IPCONFIG after the blinking cursor and hit Enter so that information about your active internet connection can be seen.
- Under the Wireless LAN adapter Wi-Fi, look next to the IPv4 Address. It is the IP address you are looking for; note it down.
- Exit Command Prompt.
Enable Nagle’s Algorithm on Windows 11 or 10
You don’t need to do anything to turn on Nagle’s Algorithm on Windows 10 because your Operating System has it enabled by default. However, there are some steps to disable it which you will learn in the next part of this article.
Disable Nagle’s Algorithm on Windows 11 or 10
Disabling Nagle’s Algorithm on Windows 11 or 10 is quite easy; you just need to change in a registry entry. But, remember that for modifying the registry, you need the IP address which you have already found out in the above part of this article. After that, follow the below steps –
Step-1: In your Start Search Box, type regedit.exe and hit Enter.
Step-2: If a UAC prompts up, click on Yes to access Registry Editor.
Step-3: Copy the following path, paste in the address bar of the registry editor and press Enter –
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces
Don’t be curious if you see several NICs in the right pane because, as it’s normal. To disable Nagle’s Algorithm for the accurate internet profile, you need to gain access to the right NIC-ID. And this is done by clicking on each interface key. Then, locate and match the IP address with the one you noted in the previous section. The string value in which it is present might have the name DhcpIPAddress or IPAddress.
After finding it, continue in that key only –
Move your mouse pointer to the empty space, right-click, and choose New. This is for creating 2 different DWORD (32-bit) Values. Name one as TcpAckFrequency (to instantly send out the packets) and another one as TCPNoDelay (to disable Nagle’s Algorithm).
Next, modify both these entries by double-clicking them.
For activating them, set their Value data as 1.
Finally, click on OK to save the changes, close the Registry Editor and Restart your PC.
So, this is the easiest method to disable Nagle’s Algorithm on Windows 11 or 10. However, note that this is a vital tool of Windows 11 or 10 and should be reactivated when you carry out some proficient piece of work on your computer. It is best to disable this algorithm temporarily because when permanently turned off, your network’s regular bandwidth gets influenced. Therefore, when you finish your work, reverse the settings of Nagle’s Algorithm by altering the details of the two recently created values to 0.
That’s all!!