Row control что это

Скрытая настройка во всех компьютерах на Windows 10 значительно повышает скорость работы

Операционная система Windows 10 является одной из самых сложных и запутанных для начинающих пользователей. Прямо «из коробки» она просто работает, но если требуется настроить ее каким-то особым образом, то это может повлечь за собой множество проблем. Оказывается, что во всех компьютерах и прочих устройства, работающих на базе последней сборки этой ОС, есть скрытая от посторонних глаз настройках, которая значительно повышает скорость работы всей системы.

После обновления до Windows 10 Fall Creators Update (1709) все владельцы компьютеров и планшетов должны были заметить, что система стала работать ощутимо медленнее. Особенно сильно это заметно на компьютерах с обычными жесткими дисками (HDD) и слабеньким процессором. Сначала многие подумали, что дело в неправильно работающих драйверах видеокарты, которые после установки апдейта начали работать некорректно, однако эта гипотеза была очень быстро опровергнута.

Row control что это. e63ZiPlVu D1L22MBv2TCA. Row control что это фото. Row control что это-e63ZiPlVu D1L22MBv2TCA. картинка Row control что это. картинка e63ZiPlVu D1L22MBv2TCA

Пользователи выяснили, что даже самые крутые 3D-игры на максимальных настройках не тормозят, тогда как многие системные программы в Windows 10 очень сильно «тупят». Наиболее сильно это заметно при работе с приложением «Проводник», который позволяет работать с файлами. Зачастую некоторые папки открываются по одной минуте, от чего многие пользователи в бешенстве.

Row control что это. 8DmMUkg rdEGvQr265E VQ. Row control что это фото. Row control что это-8DmMUkg rdEGvQr265E VQ. картинка Row control что это. картинка 8DmMUkg rdEGvQr265E VQ

Оказалось, что Microsoft добавила во все компьютеры на базе Windows 10 новую разработку под названием Control Flow Guard. Это своего рода специальная защита, направленная на борьбы с уязвимостями, связанными с повреждениями памяти. Защита защитой, но она в несколько раз снижает скорость работы всей операционной системы, причем отключить ее, на первый взгляд, невозможно.

Row control что это. iyrweB9i8kPU5nBns6hnOg. Row control что это фото. Row control что это-iyrweB9i8kPU5nBns6hnOg. картинка Row control что это. картинка iyrweB9i8kPU5nBns6hnOg

К счастью, была обнаружена скрытая настройка, которая значительно повышает скорость работы всех компьютеров на Windows 10. Для этого необходимо запустить «Защитник Windows», а затем перейти в раздел «Управление приложениями и браузеров». Потребуется открыть подраздел «Параметры защиты от эксплойт», после чего отключить защиту CFG (Control Flow Guard). Чтобы все начало работать потребуется перезагрузить компьютер.

Row control что это. . Row control что это фото. Row control что это-. картинка Row control что это. картинка

После выполнения этих действий и перезагрузки компьютера, он начнет работать в разы быстрее, поскольку фирменная система защиты Control Flow Guard перестанет использоваться. Зачем Microsoft принудительно включала эту настройку для всех – неизвестно, однако на форумах компании уже имеются десятки тысяч отзывов от пользователей, которые жалуются на медленную работу операционной системы Windows 10 из-за такого нововведения.

Источник

Расширенные настройки для Ethernet-адаптеров Intel®

Тип материала Установка и настройка

Идентификатор статьи 000005593

Последняя редакция 01.11.2021

Дополнительную информацию о виртуальных адаптерах Microsoft Hyper-V в объединениях и VLAN можно найти в разделе «Установка и конфигурация драйвера и программного обеспечения для Microsoft* Windows*» в руководстве пользователя сетевых адаптеров Intel® Ethernet.

Приложение Intel® PROSet для Диспетчера устройств Windows* — это выбираемый компонент во время установки универсального драйвера и пакетов программного обеспечения из Центра загрузки.

ПримечаниеВстроенные драйверы не поддерживают Intel® Advanced Network Services (Intel® ANS).

Приложение Intel® PROSet для Диспетчера устройств Windows имеет вкладку расширенных настроек с параметрами и определениями:

Row control что это. prsethlp. Row control что это фото. Row control что это-prsethlp. картинка Row control что это. картинка prsethlp

Если настройка конфигурации не отображается, она недоступна для вашего устройства или для вашей версии Windows*.

Большинство расширенных настроек конфигурации и определений представлены в следующей таблице. Для получения новейшей информации о настройках перейдите на вкладку «Advanced» в приложении Intel® PROSET для Диспетчера устройств Windows.

Определяет настройку адаптера или партнера по подключению в качестве главного устройства. Другое устройство назначается подчиненным.
Изменение настройки может улучшить качество связи с определенными партнерами по подключению.

Гигабитовый ведущий или ведомый режим
Предупреждение.
Row control что это. caution. Row control что это фото. Row control что это-caution. картинка Row control что это. картинка caution
Некоторые устройства с несколькими портами могут быть принудительно переведены в режим основного устройства. Если устройство сделано основным принудительно, оно может отключить или выполнить понижение скорости канала 100 Мбит/с. Эта проблема также может возникнуть у подчиненного устройства при его использовании с другим подчиненным устройством. Изменение этой настройки может привести к кратковременной потере подключения.

Крупные кадры (Jumbo)
(крупные кадры)

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

Рекомендации по использованию

Эта функция позволяет адаптеру разгружать задачи сегментации сообщений TCP для допустимых кадров Ethernet.

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

Вы можете настроить разгрузку операций с отправкой больших пакетов отдельно для IPv4 и IPv6.

ПримечаниеЧтобы адаптеры могли получить преимущества, используя эту функцию, партнеры по связи должны поддерживать кадры управления потоком.

Локально администрируемый адрес

Предупреждение.
Row control что это. caution. Row control что это фото. Row control что это-caution. картинка Row control что это. картинка caution
Локально администрируемый адрес заменяет MAC-адрес для данного сетевого адаптера. Убедитесь, что никакие другие системы в сети не используют этот адрес.

Виртуальный адрес не заменяет физически записанный адрес на адаптере.

Для задания нового сетевого адреса введите в поле Значение 12-значный шестнадцатеричный номер.

Рекомендации по использованию

Журнал событий состояния связи

Позволяет вести системный журнал изменений состояния канала связи.

LINK_UP_CHANGE
Когда отображается это сообщение, канал активен.

LINK_DOWN_CHANGE
Когда отображается это сообщение, канал закрыт. Чтобы исследовать проблему, перейдите на вкладку Скорость линии и запустите диагностику.

LINK_DUPLEX_MISMATCH
Это сообщение указывает на несогласованность дуплексной связи между адаптером и партнером по подключению. Чтобы исследовать эту проблему, перейдите на вкладку Скорость линии и исправьте значения скорости и дуплекса.

Параметры производительности — Адаптивное пространство между кадрами

Компенсирует чрезмерные коллизии пакетов Ethernet, управляя фоновой синхронизацией.

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

Параметры производительности — Управление потоком

Управление потоком позволяет адаптерам генерировать кадры управления потоком или отвечать на них, что способствует контролю сетевого трафика.

Выкл.
Адаптер не может отправлять или получать кадры управления потоком.

Ответ
Адаптер приостанавливает передачу, когда он получает кадр управления потоком от партнера по каналу.

Генерировать
Адаптер генерирует кадр управления потоком, когда его очередь приема достигает заданного лимита.

Ответ и создание
Адаптер генерирует и отвечает на кадры управления потоком.

ПримечаниеЧтобы адаптеры могли получить преимущества, используя эту функцию, партнеры по связи должны поддерживать кадры управления потоком.

Параметры производительности — Частота модерации прерываний

Устанавливает частоту регулировки прерываний (ITR), а именно скорость, с которой контроллер управляет прерываниями.

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

Выкл. (ITR = 0, без ограничений)

Предельная (ITR = 3600)

Когда происходит событие, адаптер генерирует прерывание, которое позволяет драйверу обработать пакет. С увеличением скоростей передачи данных генерируется больше прерываний, и повышается загруженность центрального процессора. В результате снижается производительность системы. Если вы используете более высокую частоту ITR, скорость появления прерывания снижается, и в результате повышается производительность системы.

ПримечаниеВысокая частота ITR означает, что драйвер имеет больше задержек во время обработки пакетов. Если адаптер обрабатывает множество мелких пакетов, следует понизить частоту ITR, чтобы драйвер активнее реагировал на входящие и исходящие пакеты.

Параметры производительности — Дескрипторы приема
или
Буферы приема

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

Дескрипторы приема — это сегменты данных, которые позволяют адаптеру распределять полученные пакеты в памяти. Для каждого полученного пакета требуется один дескриптор приема, и каждый дескриптор использует 2 КБ памяти.

Параметры производительности — Дескрипторы передачи
или
Буферы передачи

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

Если вы заметите снижение производительности передачи, можно увеличить количество дескрипторов передачи. Увеличение числа дескрипторов передачи может повысить производительность передачи. Однако дескрипторы передачи используют системную память. Если производительность приема не является проблемой, используйте установки по умолчанию.

Маркировка пакетов QoS
или
Приоритет и VLAN

Включает функцию отправки и получения маркированных кадров IEEE 802.3ac, включающих:

Теги 802.1p QoS (управление качеством обслуживания) для пакетов с высокими приоритетами

Теги 802.1Q виртуальных локальных сетей

Приложение Intel® PROSet автоматически включает маркировку 802.1p во время настройки VLAN. Вы не можете отключить маркировку пакетов QoS в виртуальной сети, так как эта маркировка требуется для VLAN.

Когда эта функция включена, маркированные пакеты используют настройки очереди, заданные в определении уровня приоритетов операционной системы.

Когда эта функция выключена, адаптер не может помечать исходящие пакеты с помощью тегов 802.1p/802.1Q.

Включает функцию масштабирования на стороне приема (RSS). RSS уравновешивает поступающий трафик между несколькими ядрами центрального или графического процессора. Эта настройка не работает, если в системе имеется только процессор.

Примечания для объединения адаптеров:

Эта функция используется для настройки количества очередей RSS:

Параметры разгрузки протокола TCP/IP — Разгрузка операций с контрольной суммой IPv4

Эта функция позволяет адаптеру проверять контрольную сумму стека IP для полученных пакетов и вычислять контрольную сумму для передаваемых пакетов. Включение этой функции может повысить производительность IP-передачи и снизить загруженность центрального процессора.

ПримечаниеИзменение этой настройки может привести к кратковременной потере подключения.

Параметры разгрузки протокола TCP/IP — Разгрузка операций с контрольной суммой TCP

Эта функция позволяет адаптеру проверять контрольную сумму TCP для полученных пакетов и вычислять контрольную сумму для передаваемых пакетов. Включение этой функции может повысить производительность TCP-передачи и снизить загруженность центрального процессора.

Она может конфигурироваться отдельно для IPv4 и IPv6.

ПримечаниеИзменение этой настройки может привести к кратковременной потере подключения.

Параметры разгрузки протокола TCP/IP — Разгрузка операций с контрольной суммой IP

Эта функция позволяет адаптеру вычислять контрольную сумму IP для передаваемых пакетов. Она может повысить производительность IP-передачи и снизить загрузку центрального процессора. Если разгрузка отключена, проверку контрольной суммы IP выполняет операционная система.

Параметры разгрузки протокола TCP/IP — Разгрузка операций с контрольной суммой UDP

Эта функция позволяет адаптеру проверять контрольную сумму UDP для полученных пакетов и вычислять контрольную сумму для передаваемых пакетов. Включение этой функции может повысить производительность UDP-передачи и снизить загрузку центрального процессора.

Она может конфигурироваться отдельно для IPv4 и IPv6.

Эта функция решает, будет ли драйвер ожидать автоматического согласования перед сообщением о состоянии канала.

Выкл.: драйвер не ожидает автоматического согласования

Вкл.: драйвер ожидает автоматического согласования. Если для параметра скорости не установлено значение автоматического согласования, драйвер будет ожидать некоторое время для завершения связи, а затем сообщит о состоянии канала.

Автовыбор: автоматически устанавливает значение Вкл. или Выкл. в зависимости от скорости и типа адаптера, когда драйвер установлен.

Источник

Row control что это. userinfo v8. Row control что это фото. Row control что это-userinfo v8. картинка Row control что это. картинка userinfo v8alex_emilsson

Emilsson Magazine. Обо всём, кроме политики

Вся приводимая ниже информация, в первую очередь, разумеется, будет относиться к имеющемуся у меня сетевому адаптеру (за неимением других), однако, в основном, все сетевые адаптеры имеют схожие настройки (кроме параметров, специфичных для конкретного производителя/модели), различающиеся, разве что, названиями; поэтому вы с большим успехом можете отнести всё нижеизложенное и к своему адаптеру.

А теперь немного о подопытном. Это сетевой адаптер «Realtek PCIe GBE Family Controller» с чипом «Realtek RTL8111C/D(L) chip (10/100/1000 Mbit)«, интегрированный в материнскую плату «GigaByte GA-G41M-ES2L rev. x.x«<даже диагностические программы выдают именно ревизию "x.x", хотя по цветовой маркировке разъёмов это вылитая "1.0">. Причём, судя по информации с сайта GigaByte, это довольно распространённый вариант для их материнских плат. Адаптер используется на PC под управлением ОС Windows XP SP2, «отupdateнной» до SP3, а также под управлением Windows 7, на которую был установлен SP1 (использовалась версия для x86, хотя для x64 разницы нет). Параметры, специфичные для конкретной ОС, будут помечены в тексте вот так: «< WinXP >» или «< Win7 >«.

Примечания:
Задействовать этот параметр можно только, если все устройства в сети а) поддерживают большие кадры и б) сконфигурированы на использование кадров ОДНОГО размера;
Имейте в виду, что различные адаптеры и сетевые устройства могут по-разному вычислять размер большого кадра (например, включать или не включать размеры дополнительных заголовков);
Наиболее эффективно используют эту технологию сетевые адаптеры, работающие на скоростях 1 Гбит/с и 10 Гбит/с. Известно, что использование больших кадров на скоростях 10/100 Мбит/с на некоторых адаптерах приводит к потере производительности или даже обрыву связи;
Не все ОС могут работать с кадрами размером больше 4K, т.к. это может приводить к перегрузке сети при больших объёмах трафика;
////////WIN7///////Уменьшение числа буферов приёма/передачи менее 256 приводит к обрыву связи при использовании больших кадров.

Описание:
Разрешает или запрещает опцию включения по сети (WOL) компьютера после его выключения.

Описание:
Управляет общей функцией энергосбережения. Для Realtek состояние этой функции можно узнать с помощью «Realtek Ethernet Diagnostic Utility» (см. рис.)

Описание:
Позволяет адаптеру проверять контрольную сумму для принимаемых пакетов (Rx) и вычислять контрольную сумму для отправляемых пакетов (Tx). Включение этой опции может повысить производительность сети и снизить загрузку CPU. Если опция отключена, расчёт и проверку контрольной суммы выполняет ОС.

Описание:
Позволяет адаптеру выполнять задачу фрагментирования пакетов TCP на допустимые кадры Ethernet. Поскольку контроллер адаптера может выполнять фрагментирование гораздо быстрее, чем программное обеспечение ОС, то эта опция может повысить производительность передачи данных. Кроме того, адаптер использует меньше ресурсов CPU.

Описание:
Замещает виртуальный, назначенный пользователем MAC-адрес адаптера. Эта настройка не замещает реальный физический (аппаратный) MAC-адрес адаптера.

Примечание:
Если вы оставите поле «Значение» пустым (при установленном в это значение переключателе), также будет использован исходный MAC-адрес адаптера.

Описание:
Определяет начальную скорость соединения после WOL (далее, видимо устанавливается значение из параметра «Скорость и дуплекс«).

Описание:
Добавляет дополнительные 4 байта к Ethernet-фрейму (кадру), содержащие информацию о приоритете пакета и идентификаторе VLAN, которой этот пакет принадлежит. Т.е. данная опция разрешает аппаратное тегирование VLAN средствами адаптера.

Примечание:
Разумеется, эта опция имеет смысл только при установленной VLAN.

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

Примечание:
Для получения преимущества от управления потоком, оба адаптера должны поддерживать это свойство.

Описание:
Определяет доступные возможности WOL.

Описание:
По смыслу эти параметры представляют тот же самый функционал, что и параметр «Функции включения по сети«; просто здесь WOL настраивается для «Pattern Match» и «Magic Packet» по отдельности.

Описание:
Для обеспечения целей энергосбережения, драйвер может автоматически отключить гигабитную скорость, когда сетевой кабель переподключён.

Описание:
Задаёт количество буферов памяти, используемых адаптером при отправке данных. Увеличивая это значение, можно повысить производительность адаптера; правда, при этом также возрастает расход системной памяти. Поэтому, если производительность не является критическим параметром, используйте значение по умолчанию.

Описание:
По смыслу эта группа параметров аналогична «Контрольной сумме разгрузки. «; здесь обработка контрольных сумм настраивается отдельно для TCP и UDP протокола IP обеих версий.

Описание:
По смыслу это параметр «Тегирование 802.1Q/1p VLAN» с более гибкими возможностями настройки.

Примечание:
На некоторых сетевых и/или системных конфигурациях при включенных параметрах группы «Разгрузка при большой отправке. » наблюдается существенная деградация производительности. В этом случае значения всех параметров «Разгрузка при большой отправке. » необходимо отключить (обычно это помогает решить проблему).

Понравилась эта и/или другие мои статьи?

Друзья, тогда предлагаю вам принять посильное участие в улучшении моего журнала. Что можете сделать именно Вы? Для начала, оставьте хотя бы комментарий! Это покажет, что Вы не равнодушны к моему «творчеству». А мне будет приятно, в свою очередь, осознать, что, то что я делаю, нужно не только мне, но и кому-то ещё, например, друзья, Вам! И это будет неплохим стимулом для написания новых статей, определении новых тем и т.д. Далее, Вы можете подписаться на мой блог и стать моими постоянными читателями! Это стало бы дополнительной моральной поддержкой для меня в плане моего творчества.

Источник

Тонкая настройка сетевого стека на Windows-хостах (часть вторая)

Продолжение статьи о тонкой настройке сетевого стека Windows-систем

Это – вторая часть статьи. Поэтому всё, что относится к первой, относится и к этой. В этой, правда, будет больше настроек сетевых адаптеров, но не суть. Не буду повторяться, разве что в плане диспозиции.

Диспозиция

Я предполагаю, что Вы, товарищ читатель, знаете на приемлемом уровне протокол TCP, да и вообще протоколы сетевого и транспортного уровней. Ну и канального тоже. Чем лучше знаете – тем больше КПД будет от прочтения данной статьи.

Речь будет идти про настройку для ядра NT 6.1 (Windows 7 и Windows Server 2008 R2). Всякие исторические ссылки будут, но сами настройки и команды будут применимы к указанным ОС, если явно не указано иное.

В тексте будут упоминаться ключи реестра. Некоторые из упоминаемых ключей будут отсутствовать в официальной документации. Это не страшно, но перед любой серьёзной модификацией рабочей системы лучше фиксировать то, что Вы с ней делаете, и всегда иметь возможность удалённого доступа, не зависящую от состояния сетевого интерфейса (например KVM).

Содержание (то, что зачёркнуто, было в первой части статьи)

Работаем с управлением RWND (autotuninglevel)

Данный параметр тесно связан с описаным ранее параметром WSH – Window Scale Heuristic. Говоря проще, включение WSH – это автоматическая установка данного параметра, а если хотите поставить его вручную – выключайте WSH.

Параметр определяет логику управление размером окна приёма – rwnd – для TCP-соединений. Если Вы вспомните, то размер этого окна указывается в поле заголовка TCP, которое называется window size и имеет размер 16 бит, что ограничивает окно 2^16 байтами (65536). Этого может быть мало для текущих высокоскоростных соединений (в сценариях вида “с одного сервера по IPv6 TCPv6-сессии и десятигигабитной сети копируем виртуалку” – совсем тоскливо), поэтому придуман RFC 1323, где описывается обходной способ. Почему мало? Потому что настройка этого окна по умолчанию такова:

Примечание: Речь о номинальной скорости, т.е. по информации с интерфейса в момент его инициализации, а не о фактической, которая может быть и ощутимо ниже.

Способ обхода, предлагаемый в RFC 1323, прост и красив. Два хоста, ставящих TCP-сессию, согласовывают друг с другом параметр, который является количеством бит, на которые будет сдвинуто значение поля windows size. То есть, если они согласуют этот параметр равный 2, то оба из них будут читать это поле сдвинутым “влево” на 2 бита, что даст увеличение параметра в 2^2=4 раза. И, допустим, значение этого поля в 64К превратится в 256К. Если согласуют 5 – то поле будет сдвинуто “влево” на 5 бит, и 64К превратится в 2МБ. Максимальный поддерживаемый Windows порог этого значения (scaling) – 14, что даёт максимальный размер окна в 1ГБ.

Примечание: Как понятно, всё это не будет работать без включения поддержки RFC 1323 (см. предыдущую статью).

Как настраивается RWND в Windows

Существующие варианты настройки этого параметра таковы:

Ещё раз – если Вы включите WSH, он сам будет подбирать “максимальный” множитель, на котором достигается оптимальное качество соединения. Подумайте перед тем, как править этот параметр вручную.

Работаем с Checksum offload IPv4/IPv6/UDP/TCP

Данная пачка технологий крайне проста. Эти настройки снимают с CPU задачи проверки целостности полученых данных, которые (задачи, а не данные) являются крайне затратными. То есть, если Вы получили UDP-датаграмму, Вам, по сути, надо проверить CRC у ethernet-кадра, у IP-пакета, и у UDP-датаграммы. Всё это будет сопровождаться последовательным чтением данных из оперативной памяти. Если скорость интерфейса большая и трафика много – ну, Вы понимаете, что эти, казалось бы, простейшие операции, просто будут занимать ощутимое время у достаточно ценного CPU, плюс гонять данные по шине. Поэтому разгрузки чексумм – самые простые и эффективно влияющие на производительность технологии. Чуть подробнее про каждую из них:

IPv4 checksum offload

Сетевой адаптер самостоятельно считает контрольную сумму у принятого IPv4 пакета, и, в случае, если она не сходится, дропит пакет.

Бывает продвинутая версия этой технологии, когда адаптер умеет сам проставлять чексумму отправляемого пакета. Тогда ОС должна знать про поддержку этой технологии, и ставить в поле контрольной суммы нуль, показывая этим, чтобы адаптер выставлял параметр сам. В случае chimney, это делается автоматически. В других – зависит от сетевого адаптера и драйвера.

IPv6 checksum offload

Учитывая, что в заголовке IPv6 нет поля checksum, под данной технологией обычно имеется в виду “считать чексумму у субпротоколов IPv6, например, у ICMPv6”. У IPv4 это тоже подразумевается, если что, только у IPv4 субпротоколов, подпадающих под это, два – ICMP и IGMP.

UDPv4/v6 checksum offload

Реализуется раздельно для приёма и передачи (Tx и Rx), соответственно, считает чексуммы для UDP-датаграмм.

TCPv4/v6 checksum offload

Реализуется раздельно для приёма и передачи (Tx и Rx), соответственно, считает чексуммы для TCP-сегментов. Есть тонкость – в TCPv6 чексумма считается по иной логике, нежели в UDP.

Общие сведения для всех технологий этого семейства

Помните, что все они, по сути, делятся на 2 части – обработка на адаптере принимаемых данных (легко и не требует взаимодействия с ОС) и обработка адаптером отправляемых данных (труднее и требует уведомления ОС – чтобы ОС сама не считала то, что будет посчитано после). Внимательно изучайте документацию к сетевым адаптерам, возможности их драйверов и возможности ОС.

Ещё есть заблуждение, гласящее примерно следующее “в виртуалках всё это не нужно, ведь это все равно работает на виртуальных сетевухах, значит, считается на CPU!”. Это не так – у хороших сетевых адаптеров с поддержкой VMq этот функционал реализуется раздельно для каждого виртуального комплекта буферов отправки и приёма, и в случае, если виртуальная система “заказывает” этот функционал через драйвер, то он включается на уровне сетевого адаптера.

Как включить IP,UDP,TCP checksum offload в Windows

Включается в свойствах сетевого адаптера. Операционная система с данными технологиями взаимодействует через минипорт, читая настройки и учитывая их в случае формирования пакетов/датаграмм/сегментов для отправки. Так как по уму это всё реализовано в NDIS 6.1, то надо хотя бы Windows Server 2008.

Работаем с Flow Control

Вы наверняка видели в настройках сетевых адаптеров данный параметр. Он есть практически на всех, поскольку технология данная (официально называемая 802.3x) достаточно простая и древняя. Но это никак не отменяет её эффективность.

Примечание: Сразу – это – управление потоком ethernet-кадров (которые L2). У TCP есть свой flow control, это другое.

Суть технологии проста – существует множество ситуаций, когда приём кадра L2 нежелателен (заполнен буфер приёма, перегружена шина данных, загружен порт получателя). В этом случае без управления потоком кадр придётся просто отбросить (обычный tail-drop). Это повлечёт за собой последующее обнаружение потери пакета, который был в кадре, и долгие выяснения на уровне протоколов более высоких уровней (того же TCP), что и как произошло. Иными словами, потеря 1.5КБ кадра превратится в каскад проблем, согласований и выяснений, на которые будет затрачено много времени и куда как больше трафика, чем если бы потери удалось избежать.

Примечание: Работает это всё только поверх full-дуплекса, потому что дуплекс подразумевает, что с той стороны – другой хост или коммутатор, а в случае 802.3 без дуплекса непонятен получатель кадра и механизм не работает.

Примечание 2: Заметьте, какой интересный адрес. Это хоть и мультикаст (видно по биту в заголовке), но т.н. local switch multicast. То есть нормальный простой свич (без всяких IGMP и CGMP), по идее, отдаёт мультикастовые кадры флудом во все порты, но этот адрес будет исключением – это специальный мультикаст “от абонента до ближайшего свича и не дальше”.

Включайте поддержку этой технологии всегда, когда это возможно – в таком случае в моменты пиковой нагрузки сетевая подсистема будет вести себя более грамотно, сокращая время перегрузки за счёт интеллектуального управления загрузкой канала.

Кстати, была в своё время попытка сделать более сложный и мудрый стандарт, который бы учитывал кучу факторов – характеристику среды, параметры портов коммутатора и абонента, и прочее-прочее-прочее. Называли 802.3ar. К 2008 году стало понятно, что это банально никому не нужно и комитет разогнали.

Как включить Flow control в Windows

Включается в свойствах сетевого адаптера. Операционная система с данной технологией не взаимодействует. Не забудьте про full duplex.

Работаем с Jumbo Frame

Исторически размер данных кадра протокола Ethernet – это 1.5КБ, что в сумме со стандартным заголовком составляет 1518 байт, а в случае транкинга 802.1Q – 1522 байт. Соответственно, этот размер оставался, а скорости росли – 10 Мбит, 100 Мбит, 1 Гбит. Скорость в 100 раз выросла – а размер кадра остался. Непорядок. Ведь это обозначает, что процессор в 100 раз чаще “дёргают” по поводу получения нового кадра, что объём служебных данных также остался прежним. Совсем непорядок.

Идея jumbo frame достаточно проста – увеличить максимальный размер кадра. Это повлечёт огромное количество плюсов:

Данная технология реализуема только на интерфейсах со скоростями 1 гбит и выше. Если Вы включите jumbo frames на уровне сетевого адаптера, а после согласуете скорость в 100 мбит, то данная настройка не будет иметь смысла.

Во избежание каши: PDU – это название элемента данных на разных уровня модели OSI. На первом это будет бит, на втором – кадр или ячейка (в ряде ситуаций и пакет), на третьем – пакет или датаграмма, на четвёртом – датаграмма или сегмент. MTU – это максимальное количество байт полезной нагрузки (поэтому про MTU первого уровня говорить не принято – примерно как про Западный и Восточный полюсы Земли). MSS – это максимальный размер одного “кусочка” tcp-сессии – сегмента.

Для увеличения максимального размера кадра есть достаточно технологических возможностей – например, длина кадра хранится в поле размером в 2 байта, поэтому менять формат кадра 802.3 не нужно – место есть. Ограничением является логика подсчёта CRC, которая становится не очень эффективна при размерах >12К, но это тоже решаемо.

Фундаментально неверное мнение – что jumbo frame – это “разрешение на обработку кадров специальной длины”. Вызвано тем, что в настройках сетевых адаптеров обычно выбирается размер jumbo-кадра из фиксированных – 4088, 9014, 16K. По сути, включение jumbo просто снимает верхнее ограничение на приём кадров, у которых в поле “размер” число больше 1500. Если jumbo frame не поддерживаются, такие кадры просто отбрасываются. А данные стандартные числа в настройках сетевого адаптера – это ограничение на формируемый для отправки кадр. Нужно оно, потому что не все коммутаторы поддерживают произвольную длину (ведь эта поддержка требует пропорционально увеличить кадровые буферы). В реальности подавляющее большинство коммутаторов поддерживает размер кадра в 9К, выставлять значение 4088 нет особого смысла.

Самый простой способ – выставить у адаптера данный параметр в 9014 байт. Это является тем, что сейчас “по умолчанию” называется jumbo frame и шире всего поддерживается.

Внимательный читатель уже заметил, что когда речь идёт о 1.5К данных, кадр получается 1518 байт, а когда про 9К – 9014. Как же так получается? Да очень просто – по причине раздолбайства укоренилась чуть разная логика подсчёта. Когда считают обычный кадр, то его делят на 3 части – header(14 байт)-data(до 1500 байт)-trailer(который CRC – 4 байта), а когда jumbo – то считают математическую сумму длины заголовка (который тоже 14 байт) и данных (которые до 9000 байт), а CRC не учитывают. Отсюда и бардак.

Есть ли у данной технологии минусы? Есть. Первый – в случае потери кадра из-за обнаружения сбоя в CRC Вы потеряете в 6 раз больше данных. Второй – появляется больше сценариев, когда будет фрагментация сегментов TCP-сессий. Вообще, в реальности эта технология очень эффективна в сценарии “большие потоки не-realtime данных в локальной сети”, учитывайте это. Копирование файла с файл-сервера – это целевой сценарий, разговор по скайпу – нет. Замечу также, что протокол IPv6 более предпочтителен в комбинации с Jumbo frame.

Как включить Jumbo frame в Windows

Включается в свойствах сетевого адаптера (естественно, только гигабитного). Операционная система с данной технологией не взаимодействует, автоматически запрашивая у сетевой подсистемы MTU канального уровня.

Работаем с AIFS (Adaptive Inter-frame Spacing)

Данная технология предназначена для оптимизации работы на half-duplex сетях со скоростями 10/100 мегабит, и, в общем-то, сейчас не особо нужна. Суть её проста – в реальной жизни, при последовательной передаче нескольких ethernet-кадров одним хостом, между ними есть паузы – чтобы и другие хосты могли “влезть” и передать свои данные, и чтобы работал механизм обнаружения коллизий (который CSMA/CD). Иначе, если бы кадры передавались “вплотную”, хост, копирующий по медленной сети большой поток данных, монополизировал бы всю сеть для себя. В случае же full-duplex данная мера уже не сильно интересна, потому что ситуации “из N хостов одновременно может передавать только один” нет. Помните, что включая данную технологию, Вы позволяете адаптеру уменьшать межкадровое расстояние ниже минимума, что приведёт к чуть более эффективному использованию канала, но в случае коллизии Вы получите проблему – “погибнет” не только один кадр, но и соседний (а то и несколько).

Данные паузы называются или interframe gap, или interframe spacing. Минимальное штатное значение этого параметра – 96 бит. AIFS уменьшает это значение до:

Как понятно, чисто технически уменьшать это значение до чисел менее 32 бит (размер jam) совсем неправильно, поэтому можно считать 32 бита технологическим минимумом IFS.

Процесс, который состоит в приёме потока кадров с одним IFS и отправкой с другим IFS, иногда называется IFG Shrinking.

В общем, говоря проще – негативные эффекты этой технологии есть, но они будут только на 10/100 Мбит сетях в режиме half-duplex, т.к. связаны с более сложным сценарием обработки коллизий. В остальном у технологии есть плюс, Вы получите небольшой выигрыш в части эффективности загрузки канала в сценарии “плотный поток от одного хоста”.

Да, не забудьте, что коммутатор должен “понимать” ситуацию, когда кадры идут плотным (и более плотным, чем обычно) потоком.

Как включить Adaptive Inter-frame Spacing в Windows

Включается в свойствах сетевого адаптера. Операционная система с данной технологией не взаимодействует.

Работаем с Header Data Split

Фича достаточно интересна и анонсирована только в NDIS 6.1. Суть такова – допустим, что у Вас нет Chimney Offload и Вы обрабатываете заголовки программно. К Вам приходят кадры протокола Ethernet, а в них, как обычно – различные вложения протоколов верхних уровней – IP,UDP,TCP,ICMP и так далее. Вы проверяете CRC у кадра, добавляете кадр в буфер, а после – идёт специфичная для протокола обработка (выясняется протокол сетевого уровня, выясняется содержимое заголовка и предпринимаются соответствующие действия). Всё логично.

Но вот есть одна проблема. Смотрите. Если Вы приняли, допустим, сегмент TCP-сессии, обладающий 10К данных, то, по сути, последовательность действий будет такая (вкратце):

Заметили проблему? Она проста. Каждый слой читает свой заголовок, который исчисляется в байтах, а тащит ради этого путём копирования весь пакет.

Технология Header-Data Split адресно решает этот вопрос – заголовки пакетов и данные хранятся отдельно. Т.е. когда при приёме кадра в нём обнаруживается “расщепимое в принципе” содержимое, то оно разделяется на части – в нашем примере заголовки IP+TCP будут в одном буфере, а данные – в другом. Это сэкономит трафик копирования, притом очень ощутимо – как минимум на порядки (сравните размеры заголовков IP, который максимум 60 байт, и размер среднего пакета). Технология крайне полезна.

Как включить Header-Data Split в Windows

Включится оно само, как только сетевой драйвер отдаст минипорту флаг о поддержке данной технологии. Можно выключить вручную, отдав NDIS_HD_SPLIT_COMBINE_ALL_HEADERS через WMI на данный сетевой адаптер – тогда минипорт будет “соединять” головы и жо не-головы пакетов перед отправкой их на NDIS. Это может помочь в ситуациях, когда адаптер некорректно “расщепляет” сетевой трафик, что будет хорошо заметно (например, ничего не будет работать, потому что TCP-заголовки не будут обрабатываться корректно). В общем и целом – включайте на уровне сетевого адаптера, и начиная с Windows Server 2008 SP2 всё дальнейшее будет уже не Вашей заботой.

Работаем с Dead Gateway Detection

Данный механизм – один из самых смутных. Я лично слышал вариантов 5 его работы, все из которых были неправильными. Давайте разберёмся.

Первое – для функционирования этого механизма надо иметь хотя бы 2 шлюза по умолчанию. Не маршрутов, вручную добавленых в таблицу маршрутизации через route add например, а два и более шлюза.

Второе – этот механизм работает не на уровне IP, а на уровне TCP. Т.е. по сути, это обнаружение повторяющихся ошибок при попытке передать TCP-данные, и после этого – команда всему IP-стеку сменить шлюз на другой.

Как же будет работать этот механизм? Логика достаточно проста. Стартовые условия – механизм включен и параметр TcpMaxDataRetransmissions настроен по-умолчанию, то есть равен 5. Допустим, что у нас на данный момент есть 10 tcp-подключений.

Когда такое происходит для более чем 25% соединений (у нас их 10, значит, когда такое случится с 3 из них), то IP-стек меняет шлюз по-умолчанию. Уже не для конкретного TCP-соединения, а просто – для всей системы. Счётчик количества “сбойных” соединений сбрасывается на нуль и всё готово к продолжению.

Примечание: Если шлюз последний, и ниже его в списке никого нет, опять берётся первый.

Как настроить Dead Gateway Detection в Windows

Для настройки данного параметра нужно управлять тремя значениями в реестре, находящимися в ключе:

Все они имеют тип 32bit DWORD и следующую логику настройки:

Вместо заключения

Сетевых настроек – много. Знать их необходимо, чтобы не делать лишнюю работу, не ставить лишний софт, который кричит об “уникальных возможностях”, которые, на самом деле, встроены в операционную систему, не разрабатывать дурацкие архитектурные решения, базирующиеся на незнании матчасти архитектором, и в силу множества других причин. В конце концов, это интересно.

Если как-нибудь дойдут руки – будет новая часть статьи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *