Излишняя сетевая буферизация

Суть явления

Проблема излишней буферизации возникает, когда на пути от источника до приёмника пакетов присутствует устройство со слишком большим буфером. Как правило, буфера присутствуют практически во всех узлах сети: коммутаторах, маршрутизаторах, стеках операционных систем и т. д. Они предназначены для временного хранения «лишних» пакетов, для того чтобы не происходила их потеря, когда отправитель передаёт данные узлу быстрее, чем может получить получатель. Это происходит, когда полоса пропускания у отправителя выше, чем у получателя. Буферизация задерживает передачу пакета на несколько миллисекунд. Если буфер наполняется, то следующий пакет отбрасывается. Протоколы контроля перегрузки обнаруживают это на стороне отправителя и снижают скорость передачи. Данные продолжают передаваться, используя максимально возможную пропускную способность.

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

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

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

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

Источники проблемы

Излишнюю сетевую буферизацию может вызывать любая служба или любое действие в сети, передающие большие объёмы данных или большое количество пакетов через сеть. Среди них:

  • Загрузка видео на youtube, файлов на Crash dump и другие сервисы
  • Скачивание фильмов из интернета, просмотр фильмов онлайн
  • Копирование файлов по сети, создание бэкапов
  • Электронные письма с большими приложениями
  • Торрент-клиенты
  • Видео-конференции
  • Веб-серфинг по сайтам с медиа-содержимым: youtube, google maps, и т. д.

Где происходит

Явление может происходить везде, где происходит буферизация. В первую очередь затор создаётся на том узле, после которого идёт самая узкая полоса пропускания. Например:

  • Сетевой стек операционной системы
  • Сетевая карта, драйвер сетевой карты
  • Беспроводная точка доступа, домашний свитч, домашний маршрутизатор, домашний модем
  • DSLAM, CMTS и т. п.
  • Все маршрутизаторы, мосты, шлюзы на пути от источника до приёмника
  • Устройства спутниковой связи

Последствия

Многие протоколы и сетевые службы страдают от заторов и большого времени отклика. Например:

  • DNS. 100-ms задержки убивают запросы DNS от браузеров
  • ARP
  • DHCP. Машина не может попасть в сеть
  • RA, ND
  • VoIP, 1 пакет каждые 10 мс должен проходить для нормального функционирования. Разброс должен быть не более 30 мс.
  • Сетевые игры.
  • Потоковое видео.
  • Любые другие сетевые приложения.

Тем не менее, большие сетевые буфера нужны для нормальной обработки пакетов с большим MTU, например, Jumbo-кадров.

Тюнинг системы

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

Перед внесением изменений сформулируем для себя несколько правил:

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

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

Двойная буферизация в компьютерной графике

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

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

Программная двойная буферизация

В программной реализации двойной буферизации все операции рисования сохраняют свои результаты в некоторой области системной RAM ; любую такую ​​область часто называют «обратным буфером». Когда все операции рисования считаются завершенными, вся область (или только измененная часть) копируется в видео RAM («передний буфер»); это копирование обычно синхронизируется с растровым лучом монитора, чтобы избежать разрывов. Программные реализации двойной буферизации обязательно требуют больше памяти и процессорного времени, чем одинарная буферизация, из-за системной памяти, выделенной для заднего буфера, времени для операции копирования и времени ожидания синхронизации.

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

Листание страницы

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

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

Двойная и тройная буферизация с вертикальной синхронизацией

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

Примечание: Читателям стоит знать, что V-Sync повышает Input Lag.

В чем плюсы и минусы двойной буферизации с V-Sync?

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

Минусы. Суть в том, что, кроме проблемы простоя видеокарты при копировании данных, добавляется задержка ожидания отрисовки монитором. Это означает, что может очень сильно снижаться fps, если видеокарта генерирует меньшее число кадров, чем частота монитора. Например, 40-45 fps могут снизиться до 30 реальных fps, так как часть кадров будет отображаться за 1 такт монитора, а часть кадров за 2 такта монитора. Если же fps меньше 30, то снижение может быть вплоть до 15 кадров.

Второй существенный минус, что если реальный fps видеокарты в игре скачет, то это может быть ощутимым и дополнительно вызывать излишнюю усталость глаз. Например, если в одних сценах 40-50 fps, а в других 20-30 fps, то это означает, что fps будет чередоваться в стиле «30 — 15 — 30 — 15 — 15 — 30 — 30».

В чем плюсы и минусы тройной буферизации с V-Sync?

Плюсы. Те же, что и у двойной, но с некоторым отличием. Дело в том, что тройная буферизация позволяет избавиться от проблемы простоя, так как в моменты ожидания монитора или копирования данных, видеокарта формирует следующее изображение, что особенно полезно, если видеокарта формирует изображения то быстро, то медленно (однако, возможен минус в виде периодических пропусков изображений из-за V-Sync).

Минусы. Первый минус в том, что тройная буферизация требует больше вычислительных ресурсов. Второй минус в том, что если видеокарта всегда генерирует картинки быстро с учетом всех задержек, то толк от тройной буферизации теряется. Третий. Если компьютер «слабый», то включение этого метода может снизить реальный fps. Происходит это из-за первого минуса, так как требуется больше вычислительных ресурсов. В этом случае, лучше отключить не только тройную буферизацию, но и V-Sync.

Примечание: Третий минус редко встречается, так как нынешние «слабые» компьютеры достаточно мощные для этого метода.

Теперь, вы знаете что такое тройная буферизация, зачем она нужна и некоторые ее особенности.

  • Что такое Input Lag?
  • Что такое файловая система?

Дополнительно

Некоторые другие опции графики
Название Описание
Flip Queue Size Количество заранее подготавливающихся кадров. Включение может снизить/исключить провалы ФПС. Рекомендуемое значение — 2. При наличии многоядерного процессора значение 0 может снизить производительность.
Anisotropic/Trilinear Filtering Optimizations Оптимизация анизотропной и трилинейной фильтрации. Включение повысит скорость, снижение качества картинки вы вряд ли заметите. Актуально для топовых моделей видеокарт.
Адаптивное сглаживание Сглаживание обьекта (anti-aliasing) происходит не полностью, а только по краям. Эффект достигается использованием сильных сторон мультисемплинга (MSAA) и суперсемплинга (SSAA).
Поддержка сжатия DXT Сжатие текстур без потерь в целях экономии пропускной способности. Рекомендуется включать.

Оптимизация сети

Сетевая подсистема в Win2k3/Win2k8 (как, впрочем, и в любой другой ОС)
является многоуровневой. Глубокий тюнинг следует производить на каждом уровне,
начиная от драйвера и NDIS (спецификация интерфейса сетевых драйверов) и
заканчивая уровнем приложений. Начнем «снизу».

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

Локальные файлы HOSTS (для TCP/IP) и LMHOSTS (NetBEUI), хранящие адреса и
имена систем, помогают уменьшить количество запросов на разрешение имен. Эти
настройки можно произвести как вручную, так и зайдя в свойства TCP/IP в
настройках сетевой карты, и затем выбрав Advanced. Распространять изменения в
этих файлах можно в небольших сетях вручную, а в AD — при помощи политик.
Присутствие DNS- и WINS-серверов также способно уменьшить количество лишних
задержек.

Кстати, новая концепция ролей в Win2k8 приносит свои плоды: в настройках Сети
после установки системы ничего лишнего не включено, а новые алгоритмы настройки
и оптимизации требуют меньше телодвижений со стороны администратора. Например,
автоматическая настройка TCP Receive Window Auto-Tuning динамически изменяет
размер принимающего буфера TCP, используемого для хранения входящих данных, тем
самым повышая пропускную способность, скажем, при передаче больших файлов на
высокоскоростных каналах (поэтому ключ реестра TcpWindowSize в Win2k8
игнорируется). Средство Compound TCP (CTCP) увеличивает количество одновременно
отправляемых данных — ну, и так далее. Впрочем, кое-что нам оставили и для
ручной настройки.

Нажав кнопку Configure в свойствах адаптера, получаем во вкладке Advanced
доступ к ряду настроек (их количество зависит от конкретного адаптера).
Например, для файлового и FTP сервера рекомендуется задействовать следующие
опции: IPv4, TCP и UDP Checksum offload, Segmentation offload и TCP offload
engine (TOE). Поддержка последнего включается следующим образом:

Для веб-сервера и сервера базы данных желательно активировать еще и
Receive-side scaling (RSS). Но если сетевой адаптер не справляется с нагрузкой,
— наоборот, пробуем по одному отключать все offload настройки. В Link Speed &
Duplex указывается режим работы адаптера (по умолчанию он выбирается
автоматически), а в Transmit/Receive Buffers — буфер приема и передачи. В целях
экономии ресурсов размер буфера по дефолту установлен в минимальное или среднее
значение. При больших нагрузках это чревато потерями пакетов. Если адаптер
позволяет вручную изменить размер буфера, то увеличиваем, не задумываясь.

Параметр Interrupt Moderation по умолчанию установлен в Adaptive.
Проигравшись с настройками, можно попробовать выбрать приемлемый результат между
производительностью Сети и нагрузкой на CPU. Если на сервере несколько CPU и
сетевых карт, то возможна привязка CPU к сетевому адаптеру. Это положительно
скажется на производительности Сети и системы за счет уменьшения количества
«лишних» прерываний. Конечно, это не все, что может сделать админ для разгрузки
Сети. Например, для настройки драйвера http.sys, который используется IIS, есть
целая ветка реестра:

Что-то можно сделать и на прикладном уровне. Например, в ISA Server
реализована функция сжатия данных, передаваемых по протоколу HTTP. Правда, за
меньший трафик придется платить большей нагрузкой на CPU. В медленных сетях
пропускная способность повышается на 30%. Также уменьшается задержка при
передаче информации, хотя нагрузка на процессор не увеличивается более чем на
20%. Для разгрузки сервера терминалов в Computer Configuration — Administrative
Templates — Windows Components — Terminal Services — Terminal Server можно
уменьшить глубину цвета и размер рабочего стола, установить сжатие RDP,
отключить обои и т.д.

Тройная буферизация — что это такое?

Излишняя сетевая буферизация

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

Три буфера — это не предельное количество. Однако необходимости в 4 и более местах для временного хранения закачиваемых файлов нет, активно работать всегда будут только 3 из них. Поэтому оптимальный вариант – тройная буферизация.

Где мы встречаемся с буферизацией?

Излишняя сетевая буферизацияФактически все процессы в ПК связаны с этим процессом. Неинформированному человеку нелегко понять, что такое буферизация. Однако наблюдать ее очень просто: та же загрузка фильма онлайн — происходит буферизация данных, фильм загружается в КЭШ и воспроизводится, хотя его на компьютере и нет.

Операция эта позволяет процессам выполнять ввод и вывод данных независимо друг от друга. Благодаря такой своей полезности, буферизация используется в многофункциональных ОС.

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

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

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

Известно, что существует двойная и тройная буферизация. О них пойдет речь в следующем подзаголовке.

Включать или нет?

Включать необходимо в случае использования VSync в играх. При использовании VSync качество картинки повышается за счет удаления так называемого разрыва изображения, из-за этого может проседать ФПС. Результат — позволяет снизить к минимуму задержки в подготовки данных видеокартой. Особенно касается топовых процессоров/видеокарт.

Тройная буферизация доступна только в OpenGL, для активации в Direct3D играх можно воспользоваться программой RivaTuner.

RivaTuner предназначена для тонкой настройки видеокарт NVIDIA. Присутствуют недокументированные функции драйверов Detonator всех версий, низкоуровневый разгон GPU, исправление рефреша, модуль диагностики.

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

Если данный тип буферизации плохо влияет на игру — возможно дело в драйверах. Можно попробовать поставить другие драйвера, предыдущие. Совет — перед установкой сделайте точку восстановления. Если вы недавно устанавливали драйвера, тогда сделайте наоборот — попробуйте восстановить состояние ПК до установки новой версии.

История

Предыстория

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

Первое проявление перегрузки сети в крупном масштабе произошло в 1986 г. в сети NSFNet. В ответ на это событие в 1988 г. был разработан протокол контроля перегрузки сети Ван Якобсона (англ. Van Jacobson’s Congestion Control).

Интернет продолжал расти. В 1993 С. Флойд и В. Якобсон разрабатывают алгоритм RED (англ. Random early detection — Произвольное Раннее Обнаружение) для управления переполнением очередей маршрутизаторов.

В 2004—2007 один из крупнейших интернет-провайдеров США Comcast испытывает трудности в связи с сетевой перегрузкой. Об этом свидетельствуют неоднократные отключения интернета «тяжёлым» пользователям. А в 2007 Comcast, по словам Джима Геттиса, «задыхается» от битторрентов. Компанию обвиняют в блокировании торрент-траффика и даже преследуют судебные иски.

Обнаружение проблемы

По утверждению Джима Геттиса, первым, кто обнаружил проблему излишней сетевой буферизации, был Дэйв Кларк. В 2004 г. он наблюдал это явление на своём DSLAMе и использовал его, чтобы отбить у своего сына привычку подолгу играть в WOW.

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

В 2009 г. Дэйв Рид заявил о слишком большом времени оборота (RTT) пакетов (до 30 секунд) при малых потерях пакетов в сетях 3G, сделав сообщение в списке рассылки полного цикла. Сам Джим Геттис фиксировал в сетях 3G RTT до 6 секунд.

Геттис продолжает получать жалобы от семьи о медленном интернете. В апреле 2010 он провёл тест «ширина полосы пропускания / время ожидания». Результат теста показал, что время ожидания (задержка) пакетов возрастает при продолжительной передаче данных. 15 июля 2010 Геттис провёл совместный ланч с представителями Comcast, где была предложена причина проблемы: слишком большие буфера. Причина, в свою очередь, двумя годами ранее была предложена компании Дэйвом Кларком, но в компании не смогли найти доказательств этому. Другие причины, сопутствующие распуханию буфера: RED зачастую не включают в сетях, потому что он требует сложной настройки; ECN блокируются в некоторых сетях, потому что они приводят к сбоям домашних роутеров.

Геттис продолжил исследования, делая замеры дома и в командировках. Замер от 20 сентября показал задержку 8 с на пути, который проходится обычно за 10 мс. Далее Геттис вопроизвёл это и на других роутерах разных производителей.

В ноябре Геттис воспроизвёл проблему на разных ОС. Оказалось, что под Linux и Mac эта проблема легче воспроизводится, чем под Windows. Геттис сделал вывод: «чем-то попахивает в сетевых стеках операционных систем».

3 декабря 2010 Джим Геттис публикует в своём блоге статью «The criminal mastermind: bufferbloat!», где он даёт название этому явлению — bufferbloat. В этой и последующих статьях Геттис рассказывает о сути явления, местах возникновения, причинах и последствиях.

Реакция

Роберт Крингли, журналист, пишущий для InfoWorld, в своей статье «Предсказания 2011 года: Одно слово — bufferbloat. Или это два слова?» предсказывает, что излишняя сетевая буферизация будет величайшей проблемой 2011 года. Ссылаясь на Геттиса, он даёт описание проблемы. Через 3 дня ars technica опубликовал статью Ильича ван Бейнума, в которой тот указал, что некоторые детали, описанные Крингли, неверны, но при этом подтвердил наличие проблемы излишней сетевой буферизации.

  • Собрать вместе экспертов, чтобы заняться вопросом управления очередями в сетевых стеках
  • Распространить информацию о проблеме конечным пользователям
  • Создать инструменты для демонстрации и диагностики проблемы
  • Произвести эксперименты по улучшенному управлению перегрузками
  • Создать патчи для популярных ОС, драйверов устройств и стеков TCP/IP.

Суть явления

Проблема излишней буферизации возникает, когда на пути от источника до приёмника пакетов присутствует устройство со слишком большим буфером. Как правило, буфера присутствуют практически во всех узлах сети: коммутаторах, маршрутизаторах, стеках операционных систем и т. д. Они предназначены для временного хранения «лишних» пакетов, для того чтобы не происходила их потеря, когда отправитель передаёт данные узлу быстрее, чем может получить получатель. Это происходит, когда полоса пропускания у отправителя выше, чем у получателя. Буферизация задерживает передачу пакета на несколько миллисекунд. Если буфер наполняется, то следующий пакет отбрасывается. Протоколы контроля перегрузки обнаруживают это на стороне отправителя и снижают скорость передачи. Данные продолжают передаваться, используя максимально возможную пропускную способность.

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

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

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

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

Источники проблемы

Излишнюю сетевую буферизацию может вызывать любая служба или любое действие в сети, передающие большие объёмы данных или большое количество пакетов через сеть. Среди них:

  • Загрузка видео на youtube, файлов на Crash dump и другие сервисы
  • Скачивание фильмов из интернета, просмотр фильмов онлайн
  • Копирование файлов по сети, создание бэкапов
  • Электронные письма с большими приложениями
  • Торрент-клиенты
  • Видео-конференции
  • Веб-серфинг по сайтам с медиа-содержимым: youtube, google maps, и т. д.

Где происходит

Явление может происходить везде, где происходит буферизация. В первую очередь затор создаётся на том узле, после которого идёт самая узкая полоса пропускания. Например:

  • Сетевой стек операционной системы
  • Сетевая карта, драйвер сетевой карты
  • Беспроводная точка доступа, домашний свитч, домашний маршрутизатор, домашний модем
  • DSLAM, CMTS и т. п.
  • Все маршрутизаторы, мосты, шлюзы на пути от источника до приёмника
  • Устройства спутниковой связи

Последствия

Многие протоколы и сетевые службы страдают от заторов и большого времени отклика. Например:

  • DNS. 100-ms задержки убивают запросы DNS от браузеров
  • ARP
  • DHCP. Машина не может попасть в сеть
  • RA, ND
  • VoIP, 1 пакет каждые 10 мс должен проходить для нормального функционирования. Разброс должен быть не более 30 мс.
  • Сетевые игры.
  • Потоковое видео.
  • Любые другие сетевые приложения.

Тем не менее, большие сетевые буфера нужны для нормальной обработки пакетов с большим MTU, например, Jumbo-кадров.

Какая скорость нужна для домашней сети?

Дело не только в том, как быстро интернет приносит видео в ваш дом. Оказавшись там, информация должна быть отправлена ​​с модема на маршрутизатор.

Следующее соображение заключается в том, как быстро маршрутизатор может отправлять видео и другую информацию на компьютеры, медиа-стримеры, смарт-телевизоры и подключенные к нему проигрыватели дисков Blu-ray с доступом в Интернет. Маршрутизаторы, предназначенные для работы с потоковым видео, иногда называемые AV-маршрутизаторами, могут передавать больше данных, уменьшая прерывания воспроизведения.

Скорость соединения маршрутизатора с устройством потоковой передачи/воспроизведения мультимедиа считается конечной переменной. Маршрутизатор может поддерживать потоковую передачу мультимедиа на высокой скорости, но аудио и видео могут попасть на ваш медиа-стример/проигрыватель только с той скоростью, с которой соединение может их передать.