Форум программистов, компьютерный форум, киберфорум
Администрирование Windows
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/103: Рейтинг темы: голосов - 103, средняя оценка - 4.54
Эксперт WindowsАвтор FAQ
17660 / 7504 / 887
Регистрация: 25.12.2011
Сообщений: 11,278
Записей в блоге: 16
1

Что делает команда netsh int tcp set heuristics?

16.04.2017, 21:56. Показов 21224. Ответов 4

Здравствуйте!

Интересует, что делают эти команды, и могут ли они как-то помочь в решении проблем с сетью разного рода у юзеров:

Код
netsh int tcp set heuristics disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=enabled
Согласно хелпу:
Код
set heuristics - Задает параметры TCP эвристики.

Параметры:

       Тег      Значение
       wsh    - Одно из следующих значений:
                disabled: отключить эвристику масштабирования окна.
                enabled : включить эвристику масштабирования окна.
                default : восстановить системное состояние эвристики
                          масштабирования окна по умолчанию.

Примечания: Задает параметры TCP, относящиеся ко всем подключениям.

Пример:

       set heuristics enabled
       set heuristics wsh=enabled

autotuninglevel - одно из следующих значений:
                disabled: фиксация значения окна приема
                    по умолчанию.
                highlyrestricted: разрешение на увеличение окна приема
                    относительно значения по умолчанию,
                    но очень незначительное.
                restricted: разрешение на увеличение окна приема
                    относительно значения по умолчанию, с ограничением
                    увеличения при некоторых сценариях.
                normal: разрешение на увеличение окна приема в
                    соответствии с требованиями большинства сценариев.
                experimental: разрешение на увеличение окна приема в
                    соответствии с требованиями экстремальных сценариев.

       rss          - одно из следующих значений:
                      disabled: отключение масштабирования на стороне приема.
                      enabled : включение масштабирования на стороне приема.
                      default : восстановление заданного по умолчанию состояния
                          масштабирования на стороне приема.
Ну, это терминология для тех, кто шарит.
А для тех, кто в танке - можно более по-человечески объяснить, что делает каждая из команд?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2017, 21:56
Ответы с готовыми решениями:

Что делает команда SET?
Я пишу в cmd set /? И вот что выходит ‚лў®¤, §*¤**ЁҐ Ё г¤*«Ґ*ЁҐ ЇҐаҐ¬Ґ**ле б।л cmd.exe. ...

Что делает команда set?
Доброго времени суток!!! Что делает команда? set Набрал в консоли какой то скрипт вывел.

Что делает команда «set "variables=%*"»?
set "variables=%*"

Что делает Read(byte[] buffer, int offset, int count) метод класса Stream
Что делает Read(byte buffer, int offset, int count) метод класса Stream. Приведите пример...

4
Джоуи
1067 / 629 / 240
Регистрация: 05.05.2015
Сообщений: 3,557
Записей в блоге: 2
22.04.2017, 16:23 2
Dragokas, цитирую http://www.speedguide.net/_ifr... %20WINDOW:
TCP Receive Window is a buffer that determines how much data the receiving computer is prepared to get at one time.
The sending side will only send data up to the size of the RWIN, and wait for acknowledgement before sending additional packets.
A RWIN value that's too large will result in greater loss of data if a packet is lost or damaged. A too small RWIN will be very slow, as each packet will have to be acknowledged before the next packet is sent.
RWIN is one of the most important parameters in tweaking any TCP/IP connection.

На всякий случай (вдруг Вы не знаете английского) переведу:
TCP Receive Window (принимающее окно TCP) или RWIN - буфер, определяющий, сколько данных принимающий ПК готов принять за раз.
Отправляющая сторона отправляет данные согласно размеру этого буфера (не больше) и ожидает подтверждения перед отправкой доп. пакета.
Слишком большой размер RWIN приведет к бОльшим потерям, если пакет повредится/потеряется.
А слишком маленький размер окна делает его слишком медленным, так как каждый такой пакетик будет ждать подтверждения от предыдущего
Размер принимающего окна (RWIN) - один из самых важных параметров в настройках TCP/IP соединения.


Далее. https://blogs.msdn.microsoft.c... sta-tcpip/
МСДН говорит - At any given time, the amount that TCP can send is governed by three factors: the congestion window, the receive window and the number of bytes available to send. Without using TCP window scaling (which is disabled by default in previous versions of Windows), the maximum receive window a receiver can advertise is 64K bytes. Since the congestion window is usually greater than 64K bytes in high-bandwidth/high-latency networks, the receive window is often the limiting factor if the application is submitting enough data.

В любой взятый момент времени количество данных, которые может переправлять протокол TCP, контролируется 3 факторами: https://en.wikipedia.org/wiki/... ion_window, RWIN и количество доступных к отправке байт. Без использования TCP window scaling (масштабирование RWIN) (по умолчанию отключено в WinXP и более ранних) максимум для RWIN - 64кб. Так как congestion window обычно больше 64кб в высокоскоростных подключениях, то обычно малый размер TCP Receive Window является тормозящим фактором для приложений, способных принимать большее количество данных (примерно, не уверен, что я правильно понял последние слова).

Эвристический метод масштабирования TCP Receive Window подразумевает (насколько я понял наших забугорных товарищей) самостоятельное, в соответствии с обстоятельствами (и местными тенденциями на Вашем ПК), управление Windows этим самым окном - RWIN или TCP Receive Window. Как утверждает
http://www.speedguide.net/faq/... tuning-339
Windows изменяет даже самостоятельно настроенные пользователем настройки. Этот вывод был сделан, когда
Windows Batch file
1
netsh int tcp show global
выдал ** The above autotuninglevel setting is the result of Windows Scaling heuristics

ИТОГО:
To prevent that behavior and turn off heuristics, before setting the TCP Receive Window auto-tuning level you should execute the following command (чтобы избавиться от такого поведения и отключить эвристический режим):
Windows Batch file
1
netsh int tcp set heuristics disabled
Note this should be executed in elevated command prompt (as administrator). If the command is accepted by the OS you should see an "Ok." on a new line. (запускать под Админом, если все ОК, то Вы и увидите ОК)

Добавлено через 6 минут
Правда я не компетентен в этом, может профы подтянутся и объяснят. Как я все это понимаю, отключение эвристического метода запретит винде менять размеры принимающего окна взамен устанавливаемому Вами в autotuninglevel
1
Эксперт по компьютерным сетям
9190 / 6072 / 1538
Регистрация: 25.12.2012
Сообщений: 25,651
23.04.2017, 12:24 3
для начала стоит прочитать принцип работы TCP http://www.vanderboot.ru/tcp-ip/wtcp.php
после прочтения сложится представление об управлении передачей в TCP
1
Эксперт WindowsАвтор FAQ
17660 / 7504 / 887
Регистрация: 25.12.2011
Сообщений: 11,278
Записей в блоге: 16
23.04.2017, 13:19  [ТС] 4
Спасибо.
Почитать конечно всегда полезно, но мне на столько углубляться не нужно. Основной вопрос прост: может ли такая настройка помочь с проблемами в работе сети или нет (если взять среднестатистически). Или есть большая вероятность, что наоборот ухудшит. Или ответить нельзя, т.к. во многих случаях всё будет очень индивидуально. Или поможет, но только если вот такой-то тест показал это, а не вот это.

Добавлено через 7 минут
Joey, спасибо. Английский знаю, но с Вашими комментами ещё лучше. Интересная инфа.
На сколько я понял, эта настройка отключает автоматическое подстраивание системой допустимого максимального объема данных на "пакет", или что они там называют окном.
А вот станет лучше или хуже всё ещё открытый вопрос.
Полагаю, тут будет сугубо индивидуально.
0
Эксперт по компьютерным сетям
9190 / 6072 / 1538
Регистрация: 25.12.2012
Сообщений: 25,651
23.04.2017, 13:46 5
Цитата Сообщение от Dragokas Посмотреть сообщение
На сколько я понял, эта настройка отключает автоматическое подстраивание системой допустимого максимального объема данных на "пакет", или что они там называют окном.
да.
Цитата Сообщение от Dragokas Посмотреть сообщение
Полагаю, тут будет сугубо индивидуально.
именно так и будет.
Цитата Сообщение от Dragokas Посмотреть сообщение
Почитать конечно всегда полезно, но мне на столько углубляться не нужно.
Dragokas, там очень все подробно написано, когда полезно фиксировать размер окна, иначе не объяснить никак.
если не вникать, то можно применить
Код
netsh int tcp set global autotuninglevel=disabled
,
а если задержки в сети увеличатся, вернуть значение в дефолт (normal)
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2017, 13:46

Что делает команда?
Подскажите, что делает команда, с Linux'ом не работал, так что если можно объясните как для...

Что делает команда
Новичок в баше. В скрипте попалась команда echo $* | sed 's/ /\n/g' | while read arg; Что она...

Что делает команда?
Здравствуйте! Есть такой отрывок кода: ... start: jmp flag db 0cdh, 20h, 07h, 08h, 09h...

Объясните что делает int z(int a)
вот весь исходный код #include <iostream> #include <stdio.h> #include <cmath> using namespace...

Что делает конструкция c get и set
что делает код public int Index { get; set; } ? Хочу сказать что хорошо знаком с ООП на примере...

Что делает команда DISKPART?
diskpart создает диски? если да то можно указать память на диске хоть 10 мб или 10 гб или нет? то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.