что такое буфер приема и передачи
Как настроить сетевой адаптер на Windows 7: самое важное
Иногда при подключении интернета или использовании ресурсов локальной сети возникают проблемы. Могут вылезать ошибки подключения, получения IP адресов или конфигурации сетевого оборудования. Внутри компьютера или ноутбука, функцией подключения к локальной или глобальной сети, занимается сетевой адаптер. В статье мы как раз и поговорим про настройку сетевого адаптера для улучшения связи в интернете. Инструкция будет ходовая для всех версий Windows 7, 8 и 10.
Более подробная настройка
Мне постоянно приходят письма с вопросами – как более детально настроить сетевой адаптер для меньшего пинга в играх, для лучшего просмотра кино и большей скорости скачивания. Поэтому я решил написать более детальную статью. Ну, поехали! По идее она настраивается автоматически под рациональное использование ресурсов системы и самого устройства. Но конфигурацию можно корректировать под свои нужды.
Переходим во вкладку «Дополнительно». И так смотрите, у нас есть определённые свойства, которые мы можем включать (Enebled) или выключать (Disable). На новых версиях «Виндовс» может быть написано «Вкл» или «Выкл». А теперь разбёрем каждое свойство:
ВНИМАНИЕ! Параметры адаптера могут в какой-то степени улучшить показатели, в каком-то моменте ухудшить. Изменяя установки сетевого адаптера, лучше возьмите листочек и выпишите – что именно вы изменили, чтобы в случаи чего вернуть параметры обратно. Также я рекомендую скачать последнюю версию драйвера для вашей сетевой карты или Wi-Fi модуля и установить его. Только после этого заходим в характеристики
После изменения, следует перезагрузить компьютер или ноутбук, чтобы некоторые изменения вступили в силу. Установки сетевого адаптера всегда можно откатить обратно, самое главное не потеряйте тот листок с настройками.
ПРОСЬБА! Если я что-то не указал, или написал что-то не так – пишите смело в комментариях свои исправления или замечания, буду рад поучиться чему-то у своих читателей.
Настройка производительности сетевых адаптеров
область применения: Windows server 2022, Windows server 2019, Windows Server 2016, Azure Stack хЦи, версии 21H2 и 20H2
используйте сведения в этом разделе для настройки сетевых адаптеров производительности для компьютеров под управлением Windows Server 2016 и более поздних версий. Если сетевые адаптеры предоставляют параметры настройки, эти параметры можно использовать для оптимизации пропускной способности сети и использования ресурсов.
Правильные параметры настройки для сетевых адаптеров зависят от следующих переменных.
В следующих разделах описывается ряд параметров настройки производительности.
Включение функций разгрузки
Включение функций разгрузки на сетевом адаптере обычно имеет положительный эффект. Однако сетевой адаптер может оказаться недостаточно мощным для обработки возможностей разгрузки с высокой пропускной способностью.
Не используйте разгрузку задач IPSec функции разгрузки или разгрузку TCP Chimney. эти технологии являются устаревшими в Windows Server 2016 и могут негативно сказаться на производительности сервера и сети. Кроме того, эти технологии могут не поддерживаться корпорацией Майкрософт в будущем.
Например, рассмотрим сетевой адаптер с ограниченными аппаратными ресурсами. В этом случае включение возможности разгрузки сегментации может снизить максимальную устойчивую пропускную способность адаптера. Однако если приемлема пропускная способность, следует включить функции сегментирования разгрузки.
Для некоторых сетевых адаптеров требуется включить разгрузку компонентов независимо для путей отправки и получения.
Включение масштабирования на стороне приема (RSS) для веб-серверов
RSS способно повысить веб-масштабируемость и производительность, когда число сетевых адаптеров меньше количества логических процессоров на сервере. Когда весь веб-трафик проходит через сетевые адаптеры, поддерживающие RSS, сервер может обрабатывать входящие веб-запросы с разных соединений одновременно на разных процессорах.
Избегайте использования сетевых адаптеров, отличных от RSS, и сетевых адаптеров, поддерживающих RSS, на одном сервере. Из-за логики распределения нагрузки в RSS и протоколе HTTP, производительность может быть значительно снижена, если сетевой адаптер, не поддерживающий RSS, принимает веб-трафик на сервере с одним или несколькими сетевыми адаптерами, поддерживающими RSS. В этом случае необходимо использовать сетевые адаптеры, поддерживающие RSS, или отключить RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера.
Чтобы определить, поддерживает ли сетевой адаптер RSS, можно просмотреть сведения RSS на вкладке Дополнительные свойства в свойствах сетевого адаптера.
Профили RSS и очереди RSS
стандартный профиль RSS по умолчанию — нумастатик, который отличается от используемого по умолчанию предыдущих версий Windows. Прежде чем приступить к использованию профилей RSS, ознакомьтесь с доступными профилями, чтобы понять, когда они полезны и как они применяются к сетевой среде и оборудованию.
Например, если открыть диспетчер задач и проверить логические процессоры на сервере и они будут недостаточно загружены для приема трафика, можно попробовать увеличить число очередей RSS по умолчанию, равное двум, до максимума, поддерживаемого сетевым адаптером. В используемом сетевом адаптере могут быть параметры для изменения числа очередей RSS в драйвере.
Увеличение ресурсов сетевого адаптера
Для сетевых адаптеров, позволяющих вручную настраивать ресурсы, такие как буферы приема и отправки, следует увеличить выделенные ресурсы.
В некоторых сетевых адаптерах устанавливаются небольшие буферы приема для экономии выделенной памяти от узла. Это ведет к потере пакетов и снижению производительности. Поэтому для сценариев с интенсивным приемом рекомендуется увеличить буфер приема до максимума.
Если сетевой адаптер не предоставляет настройки ресурсов вручную, он динамически настраивает ресурсы, или для ресурсов задано фиксированное значение, которое нельзя изменить.
Включение контроля прерываний
Для управления прерываниями прерываний некоторые сетевые адаптеры предоставляют различные уровни управления прерываниями, различные параметры объединения буфера (иногда отдельно для буферов отправки и получения) или и то, и другое.
Следует рассмотреть возможность контроля прерываний для рабочих нагрузок, привязанных к ЦП. При использовании управления прерываниями учитывайте компромисс между экономией ЦП узла и задержкой, а также увеличением экономии ресурсов узла из-за большего количества прерываний и снижения задержки. Если сетевой адаптер не выполняет контроль прерываний, но он предоставляет объединение буферов, можно повысить производительность, увеличив число Объединенных буферов, чтобы освободить больше буферов на отправку или получение.
Настройка производительности для обработки пакетов с низкой задержкой
Многие сетевые адаптеры позволяют настраивать параметры для оптимизации системной задержки. Задержка — это время между обработкой входящего пакета сетевым драйвером и отправкой этого пакета обратно. Обычно это время измеряется в микросекундах. Для сравнения время передачи пакетов на длинные дистанции обычно измеряется в миллисекундах (это на порядок дольше). Эта настройка не сокращает время прохождения пакета.
Ниже приведены некоторые советы по настройке производительности для загруженных сетей, в которых на счету каждая микросекунда.
Установите в операционной системе профиль управления электропитанием Высокая производительность.
Этот параметр не работает должным образом, если BIOS системы имеет значение отключить управление питанием в операционной системе.
Включить статические разгрузки. Например, включите контрольные суммы UDP, контрольные суммы TCP и отправку параметров большой разгрузки (LSO).
Если трафик проходит через несколько потоков, например при получении многоуровневого трафика многоадресной рассылки, включите RSS.
Отключите Управление прерываниями в драйверах сетевых адаптеров, которым требуется самая низкая задержка. Помните, что эта конфигурация может использовать больше времени ЦП и представляет компромисс.
Обрабатывайте прерывания сетевого адаптера и DPC на основном процессоре, который совместно использует процессорный кэш с ядром, которое используется программой (пользовательским потоком), обрабатывающей пакет. Для передачи процесса конкретным логическим процессорам можно использовать настройку фиксации ЦП вместе с настройкой RSS. Использование одного ядра для прерываний, DPC и пользовательского потока ведет к снижению производительности из-за увеличения нагрузки, поскольку ISR, DPC и поток будут конкурировать за ядро.
Прерывания управления системой
Многие аппаратные системы используют прерывания управления системой (SMI) для различных функций обслуживания, таких как сообщения об ошибках с кодом коррекции ошибок (ECC), поддержка устаревшей совместимости с USB, управление вентилятором и управление параметрами питания, управляемой BIOS.
SMI — это прерывание с наивысшим приоритетом в системе и помещает ЦП в режим управления. Этот режим загружает все остальные действия, в то время как SMI запускает подпрограммы службы прерываний, обычно содержащиеся в BIOS.
К сожалению, такое поведение может привести к скачкам задержки 100 микросекунд или более.
Когда необходимо обеспечить минимальную задержку, следует запросить у поставщика оборудования версию BIOS, в которой прерывания SMI имеют наименьший возможный приоритет. Эти версии BIOS часто называются «BIOS с низкой задержкой» или «SMI Free BIOS». В некоторых случаях аппаратная платформа не может полностью исключить активность SMI, так как она используется для управления важными функциями (например, вентиляторами).
Операционная система не может управлять SMIs, так как логический процессор работает в специальном режиме обслуживания, что предотвращает вмешательство пользователя операционной системы.
Настройка производительности TCP
Для настройки производительности TCP можно использовать следующие элементы.
Автоматическая настройка окна приема TCP
в более ранних версиях Windows сетевой стек Windows использовал окно приема фиксированного размера (65 535 байт), которое ограничивает общую возможную пропускную способность для подключений. Общая пропускная способность подключений TCP может ограничивать сценарии использования сети. Автоматическая настройка окна приема TCP позволяет этим сценариям полностью использовать сеть.
Для окна приема TCP, имеющего определенный размер, можно использовать следующее уравнение для вычисления общей пропускной способности отдельного соединения.
Общая пропускная способность в байтах Размер окна приема TCP в байтах * (1/ Задержка подключения в секундах)
Например, для соединения с задержкой 10 мс общая пропускная способность составляет только 51 Мбит/с. Это значение целесообразно для большой корпоративной сетевой инфраструктуры. Однако с помощью автонастройки для настройки окна приема подключение может обеспечить полную скорость линии для подключения 1 Гбит/с.
Некоторые приложения определяют размер окна приема TCP. Если приложение не определяет размер окна приема, скорость связи определяется следующим образом:
Например, на компьютере с установленным сетевым адаптером с 1 Гбит/с размер окна должен быть 64 КБ.
Эта функция также обеспечивает полное использование других функций для повышения производительности сети. Эти функции включают остальные параметры TCP, определенные в RFC 1323. используя эти функции, компьютеры на базе Windows могут согласовать размеры окна приема TCP, которые меньше, но масштабируются по определенному значению в зависимости от конфигурации. Такое поведение упрощает обработку размеров для сетевых устройств.
Может возникнуть проблема, при которой сетевое устройство не соответствует параметру TCP Window Scale, как определено в RFC 1323 и, следовательно, не поддерживает коэффициент масштабирования. в таких случаях обратитесь к этой статье KB 934430, если вы пытаетесь использовать Windows Vista за устройством брандмауэра или обратитесь в службу поддержки для поставщика сетевых устройств.
Проверка и настройка уровня автонастройки окна приема TCP
для просмотра или изменения уровня автонастройки окна приема TCP можно использовать команды netsh или командлеты Windows PowerShell.
в отличие от версий Windows, которые предварительно устарели Windows 10 или Windows Server 2019, вы больше не можете использовать реестр для настройки размера окна приема TCP. Дополнительные сведения об устаревших параметрах TCPсм. здесь.
Подробные сведения о доступных уровнях автонастройки см. в разделе уровни автонастройки.
Использование команды Netsh для просмотра или изменения уровня автонастройки
Чтобы проверить текущие параметры, откройте окно командной строки и выполните следующую команду:
Выходные данные этой команды должны выглядеть следующим образом:
Чтобы изменить этот параметр, выполните в командной строке следующую команду:
В предыдущей команде представляет новое значение для уровня автоматической настройки.
Использование PowerShell для просмотра или изменения уровня автонастройки
Чтобы проверить текущие параметры, откройте окно PowerShell и выполните следующий командлет.
Выходные данные этого командлета должны выглядеть следующим образом.
Чтобы изменить этот параметр, выполните следующий командлет в командной строке PowerShell.
В предыдущей команде представляет новое значение для уровня автоматической настройки.
Дополнительные сведения об этих командлетах см. в следующих статьях:
Уровни автонастройки
Можно настроить автоматическую настройку окна приема на любой из пяти уровней. Уровень по умолчанию — Обычная. В следующей таблице описаны уровни.
Level | Шестнадцатеричное значение | Комментарии |
---|---|---|
Normal (по умолчанию) | 0x8 (коэффициент масштабирования 8) | Задайте для окна приема TCP значение рост в соответствии с практически всеми сценариями. |
Выключено | Коэффициент масштабирования недоступен | Задайте для окна приема TCP значение по умолчанию. |
С ограниченным доступом | 0x4 (коэффициент масштабирования 4) | Задайте размер окна приема TCP, превышающего значение по умолчанию, но ограничьте такой рост в некоторых сценариях. |
С высоким уровнем ограничений | 0x2 (коэффициент масштабирования 2) | Задайте размер окна приема TCP, превышающего значение по умолчанию, но это очень консервативно. |
Экспериментальный | 0xE (коэффициент масштабирования 14) | Задайте для окна приема TCP значение рост в соответствии с экстремальными сценариями. |
Если для записи сетевых пакетов используется приложение, приложение должно сообщить данные, аналогичные приведенным ниже, для различных параметров автонастройки окна.
Уровень автонастройки: нормальный (состояние по умолчанию)
Уровень автонастройки: отключен
Уровень автонастройки: ограниченный
Уровень автонастройки: очень ограниченный
Уровень автонастройки: экспериментальный
Устаревшие параметры TCP
следующие параметры реестра из Windows Server 2003 больше не поддерживаются и не учитываются в более поздних версиях.
Все эти параметры были расположены в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
Платформа фильтрации Windows
Windows в Vista и Windows Server 2008 появилась платформа фильтрации Windows (WFP). WFP предоставляет интерфейсы API независимым поставщикам программного обеспечения (ISV) для создания фильтров обработки пакетов. Например, для брандмауэров и антивирусного ПО.
Плохо написанный фильтр WFP может значительно снизить производительность сети сервера. дополнительные сведения см. в разделе перенос Packet-Processing драйверов и приложений в WFP в Windows Центр разработки.
Ссылки на все разделы данного руководства см. в разделе Настройка производительности сетевой подсистемы.
alex_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» с более гибкими возможностями настройки.
Примечание:
На некоторых сетевых и/или системных конфигурациях при включенных параметрах группы «Разгрузка при большой отправке. » наблюдается существенная деградация производительности. В этом случае значения всех параметров «Разгрузка при большой отправке. » необходимо отключить (обычно это помогает решить проблему).
Понравилась эта и/или другие мои статьи?
Друзья, тогда предлагаю вам принять посильное участие в улучшении моего журнала. Что можете сделать именно Вы? Для начала, оставьте хотя бы комментарий! Это покажет, что Вы не равнодушны к моему «творчеству». А мне будет приятно, в свою очередь, осознать, что, то что я делаю, нужно не только мне, но и кому-то ещё, например, друзья, Вам! И это будет неплохим стимулом для написания новых статей, определении новых тем и т.д. Далее, Вы можете подписаться на мой блог и стать моими постоянными читателями! Это стало бы дополнительной моральной поддержкой для меня в плане моего творчества.
Тонкая Настройка TCP
Слишком часто разработчики винят недостаточную производительность сети, хотя на самом деле зачастую причина в неправильно настроенном программном обеспечении. В этой статье описаны некоторые утилиты для анализа и настройки сети, которые позволяют разработчикам оптимизировать свои приложения для оптимизации сетевых возможностей.
Как-то раз мой друг Боб пришел ко мне с вопросом. Он написал программу на Java, которая копировала 100 МБ файлы с его компьютера под управлением Windows XP в его офисе на Linux-сервер в региональный офис компании. В обоих офисах используются 100Мбит сети Ethernet, соединенные через 155Mbps VPN канал. Однако он был очень неприятно удивлен тем, что измеренная скорость передачи была ниже 4Мбит, и попросил меня объяснить причину такого поведения.
В результате я написал эту статью, чтобы объяснить причину такого поведения и что должен сделать Боб, чтобы максимально использовать пропускную способность своей сети. Слишком часто разработчики винят недостаточную производительность сети, хотя на самом деле зачастую причина в неправильно настроенном программном обеспечении. В этой статье описаны некоторые утилиты для анализа и настройки сети, которые позволяют разработчикам оптимизировать свои приложения для оптимизации сетевых возможностей.
Как Работает TCP
Чтобы достичь максимальной скорости, важно использовать оптимальный размер буфера для TCP сокета для используемого подключения. Если буферы слишком маленькие, окно перегрузки TCP некогда не откроется полностью, таким образом отправитель не сможет работать по полной. Если буферы слишком большие, отправитель попросту завалит получателя, что приведет к тому, что получатель просто будет резать пакеты и окно перегрузки выключится. Наиболее вероятна такая ситуация когда отправляющий хост по производительности лучше, чем получающий. Слишком большое окно на отправляющей стороне это не проблема, пока существует некоторый избыток памяти.
Рассчитываем Размер Буфера TCP
Предположим, что сеть не перегружена и пакеты в ней не теряются, тогда пропускная способность сети зависит прямо пропорционально от размера TCP буфера и сетевой задержки. Сетевая задержка есть не что иное, как количество времени, необходимое пакету для прохода через сеть. Чтобы сосчитать максимальную пропускную способность, нужно:
Пропускная способность = размер буфера / задержка
В обычной сети задержка между двумя офисами составит около 40ms, а в Windows XP размер буфера по умолчанию равен 17,520 байт. Значит, максимальная пропускная способность будет равна:
Размер буфера по умолчанию для Mac OS X установлен в 64K, таким образом, при использовании Mac OS X у Боба получилось бы лучше, однако были бы достигнуты далеко не 100Mbps, которые по идее должны быть.
(Люди, которые постоянно используют сеть, думают о битах в секунду, тогда как все оставшиеся думают о байтах, что часто приводит к путанице.)
Большинство экспертов по сетям соглашаются, что оптимальный размер буфера для определенной сети равен удвоенному произведению задержки и полосы пропускания:
Для сети Боба ping вернул RTT в 80ms. Это значит, что размер буфера TCP должен быть:
Боб знал скорость VPN канала компании, но часто вы не знаете о пропускной способности сетевого маршрута. Определить пропускную способность сети иногда очень сложно. На сегодняшний день самой большой пропускной способностью является 1Gbps (в США, Европе и Японии), получается, что узкое место это местные сети на обоих концах. В моей практике я встречал в основном офисы, где компьютеры объединены 100Mbps сетью Ethernet. Тогда имеем следующую картину: 100Mbps=12MBps, что, согласитесь, совсем неплохо.
Перенастройка размера буфера никак не повлияет на производительность в сетях, где регламентированная скорость составляет 10Mbps или ниже; например, с хостами, соединенными через DSL, кабельный модем, ISDN, или линию T1. Существует программа pathrate, которая выполняет хорошую работу: оценивает пропускную способность. Но она не позволяет проводить глубокий анализ полученных временных рядов. Например, не ставилась задача получать различные функции распределения, а так же недостаточен набор параметров, которые можно варьировать при проведении измерений. Программа работает только на платформе Linux и требует возможности логина на оба компьютера.
Устанавливаем размер буфера TCP
Итак, имеем две настройки, которые нужно оптимизировать: размер буфера TCP по умолчанию и максимальный размер буфера. С правами пользователя можно изменить размер буфера по умолчанию, но для изменения его максимального размера требуются права администратора. Заметьте, что большинство сегодняшних Unix-Like систем по умолчанию имеют значение максимального размера буфера TCP всего лишь 256K. В Windows нет максимального размера буфера по умолчанию, но администратор может его установить. Очень важно изменить размеры буферов у посылающей и принимающей машин. Изменение только отправляющего буфера не даст ничего, т.к. TCP согласовывает размер буфера с меньшим из двух. Это означает, что не обязательно устанавливать оптимальный размер буфера на отправляющей и принимающей машинах. Обычно делают следующее: устанавливают размер буфера на серверной стороне довольно большим (например 1,024K) и затем позволяют клиенту определить и установить «оптимальное» значение для данного сетевого маршрута. Чтобы установить размер буфера TCP, используйте метода setSendBufferSize и setReceiveBufferSize в Java, или вызов setsockopt в С. Ниже представлен пример установки размеров буфера ТСР в пределах приложения на Java:
А вот и пример на С:
Фрагмент кода на С, проверяющий текущий размер буфера:
Устанавливаем Максимальный Размер буфера TCP
Для большинства соединений невозможно увеличить предопределенный системой максимальный размер ТСР буфера. Например, возьмем соединение в 100Mbps между Калифорнией и Великобританией, время задержки RTT которого 150 мсек. Оптимальный размер буфера для такого соединения будет равен 1,9 МБ, что в 30 раз больше чем размер буфера по умолчанию и в 7,5 раз больше, чем максимальный размер буфера ТСР в Linux.
Устанавливайте максимальные размеры буферов таким образом, чтобы полностью использовать ресурсы соединения. В Windows не требуется вносить каких-либо изменений, как например максимальный размер буфера ТСР по умолчанию (GlobalMaxTcpWindowSize) не определяется. На моем сайте TCP Tuning Guide web site можно найти информацию о том, как установить максимальный размер буфера в других операционных системах.
От Теории к Практике
Наверняка сейчас у вас возник вопрос «А как же я могу осуществить все эти возможности в реальных условиях? Доверить ли пользователям установку размера буфера? Стоит ли подсчитать оптимальный размер буфера для пользователя? Или может вообще стоит установить больший буфер и больше не вспоминать об этом?»
Обычно, я предлагаю следующее для большинства приложений, ориентированных на высокоскоростную (более 40Mbps), с большой задержкой (RTT > 10ms) сеть. Ваш клиент должен запустить ping, чтобы определить RTT и затем просто принять пропускную способность, равную 100Mbps. Ping трафик блокируется некоторыми сайтами. В этом случае можно воспользоваться утилитой synack, которая использует ТСР вместо ICMP для определения RTT. Если ваши пользователи разбираются в сетях, то можно предоставить им самим самостоятельно выбирать размер TCP буфера. Не правильно тупо устанавливать большие размеры буферов для всех сетевых маршрутов, особенно если приложение могут запустить через медленные линии, такие как DSL или модемы.
Linux на Помощь
Наладка Сети
Обратите Внимание на Программу scp
Для копирования файлов через Интернет обычно пользуются программой scp. К сожалению, тонкая настройка ТСР не поможет пропускной способности >scp, потому что в scp используетсяOpenSSL, в котором используются статически определенные потоки буферов. Эти буферы действуют на пропускную способность сети как узкое место, особенно в сетях с длинной задержкой и высокими скоростями. Питсбургская страница Сверхвысокопроизводительного Центра High Performance SSH/SCP объясняет это более подробно и, кроме того, там имеется патч для OpenSSL, устраняющий эту проблему.