Планировщик пакетов qos windows 7 где находится. Автоподстройка TCP – отключаем. Распределение ресурсов QoS по сетевым устройствам

При работе на компьютере, управляемом Windows XP, операционная система отбирает до 20% пропускной способности сети. Проблема заключается в специфической конфигурации сетевых служб, а виновником является служба QoS (quality of service), которая должна сохранять в неприкосновенности некоторую часть доступной пропускной полосы для важных приложений, передающих приоритетные пакеты, и для поддержания высокой производительности сети.
В компьютерных сетях предприятия наличие службы QoS оправдывает себя: по крайней мере, можно быть уверенным, что важный поток данных не прервётся неким Васей Пупкиным из отдела снабжения, который решил скачать порнофильм. В домашних условиях (где, как правило, скорость связи и без того невелика) вряд ли кто откажется от возможности занять канал полностью — однако сделать это Windows XP не позволит.
Операционная система Windows XP слишком умна, и простым отключением этой службы её не обманешь — 20% траффика так и останутся зарезервированными. Но эту «полезную» функцию все-таки можно отключить.
Ниже вы найдёте пошаговую инструкцию, описывающую, как отключить службу QoS, ограничивающую скорость связи в Windows XP.

1. Войдите в Windows XP от имени «Administrator»; следует использовать именно этого пользователя, другой, даже обладающий администраторскими правами, не подойдёт. Пользователя «Administrator» нет в общем списке, демонстрируемом после загрузки операционной системы. Чтобы войти от этого имени, нужно одновременно нажать кнопки Ctrl+Alt+Del. В появившемся окошке введите имя «Administrator» (следите за регистром букв) и соответствующий ему пароль (он указывается при установке Windows XP).
2. Когда первый этап успешно пройден, нужно запустить gpedit.msc. Это можно сделать из командной строки или при помощи пункта «Run» в меню «Start».
3. Левая часть открывшегося окна «Group Policy» представляет собой дерево. Сначала раскройте ветвь, имеющую название «Local computer policy» (впрочем, в некоторых случаях она уже открыта). Найдите подпункт «Administrative templates». На входящей в него ветви «Network» скрывается пункт «QoS Packet Sheduler». Нажмите на него, чтобы отобразить его содержимое в правой части окна.

4. Дважды кликните мышью на строку «Limit reservable bandwidth» в правой части окна и отметьте пункт «enabled» в появившемся диалоговом окне. После этого снизьте значение "Bandwidth limit % ", равный по умолчанию 20, до нуля. Сделав это, gpedit.msc можно закрыть.
5. Теперь необходимо проверить настройки сети. Для этого в папке «My computer» откройте «My network connection» и вызовите «View network connections». Выберите соединение, которое вы хотели бы использовать без ограничений (это может быть, например, телефонное соединение, по которому вы подключаетесь к своему интернет-провайдеру). Нажав правой кнопкой по его иконке, откройте окно свойств («Properties») и убедитесь, что QoS packet sheduler включён и работает (см. закладку «Networking», список используемых протоколов). Если это так — можете перезагружать компьютер.
Дело сделано, теперь Windows XP не будет ограничивать вашу скорость связи.

Никто не любит, когда при загрузке веб-страницы они открывают очень долго, а закачка файлов не происходит на том уровне, на каком хотелось бы. Хотя, при заказе услуги у провайдера там ясно значилось 20 или даже 100 Мб/с, а на деле мы не получаем такой скорости.

Конечно, этому есть объяснение. Во-первых, система забирает порядка 20% на свои нужды, во-вторых, браузеру поступает ответ с DNS-серверов, правда на это нужно время.

Чтобы там не было, мы сейчас разберемся, как увеличить скорость интернета в несколько раз.

Отключаем ограничение скорости QoS

Обычно в системе стоит ограничение в 20% по скорости, хотя у всех может быть по-разному. Для увеличения скорости интернета необходимо отключить этот параметр. Для этого мы будем пользоваться локальными групповыми политиками. К сожалению, данная функция доступна только на Pro редакциях Windows.

Откройте окошко «Выполнить», с помощью комбинации Win+R и в появившемся окне напишите такую команду: gpedit.msc .

С левой стороны открывшегося окна идём в раздел: Конфигурация компьютера Административные шаблоны – Сеть – Планировщик пакетов QoS Ограничить резервируемую пропускную способность .

Находим там пункт «Ограничить резервную пропускную способность». Нажмите на нём дважды и установите параметр в положение «Включено» , а потом впишите цифру «0» в «Ограничение пропускной способности». Нажмите «Применить».

Чтобы убедиться, работает ли сетевое устройство с планировщиком пакетов QoS нужно зайти в Центр управления сетями и общим доступом. Попасть туда можно, если нажать на панели задач по значку Wi-Fi, либо проводному подключению правой кнопкой мыши. Слева переходим в раздел «Изменение параметров адаптера». Нажимаем правой кнопкой мыши по своему подключению и выбираем «Свойства». Там должен появится параметр «QoS Packet Scheduler» , отмеченный галочкой.

Отключение QoS через реестр

При наличии другой версии Windows, кроме PRO эта инструкция может вам подойти. Переходим в реестр, для этого используем комбинацию Win+R и вводим команду regedit .

Идём в следующий раздел:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft

Здесь находим раздел Windows , нажимаем по нему правой кнопкой мыши и создаём новый раздел с именем Psched .

Переходим в созданный раздел и справа создаем параметр DWORD 32 бита с именем NonBestEffortLimit . Этому параметру мы присваиваем значение «0» .


После проделанной работы перезагружаем компьютер.

Отключаем ограничение скорости интернета в ПО

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

Взять к примеру торрент-клиент. Если нажать правой кнопкой мыши по активной закачке, то там есть пункт «Ограничение приёма» . Направляем на него мышь и смотрим. Активен должен быть режим «Неограниченно» .


С другими торрент-клиентами аналогично. В других же типах программ придется покопаться и найти что-то похожее.

Как увеличить DNS-кэш для увеличения скорости?

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

Поехали! Нажимаем Win+R и вводим команда для входа в реестр – regedit. Открывается окно, где мы слева должны перейти в этот раздел:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNScache\Parameters

Справа вам нужно нажать правой кнопкой мыши по пустому месту и создать 4 параметра «DWORD» и дать им такие имена – CacheHashTableBucketSize , CacheHashTableSize , MaxCacheEntryTtlLimit , MaxSOACacheEntryTtlLimit .

У каждого из них должны быть эти значения (по порядку к каждому) – 1, 384, 64000 и 301.

Для успешного завершения работы перезагрузите компьютер.

Автоподстройка TCP – отключаем

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

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

Турбо режим браузеров для ускорения загрузки сайтов

Во многих браузерах существует функция «Турбо-режим», который ускоряет открытие страниц. Пока что он доступен на следующих популярных браузерах: Opera и Яндекс браузер. Для других же вы можете загрузить специальные расширения.

В Опере эта функция включается, если нажать в левом верхнем углу по кнопке «Opera». Находим функцию «Opera Turbo» и активируем её.

В Яндекс браузере эта функция включается в настройках – Показать дополнительные настройки. Рядом с разделом «Турбо» ставим «Всегда включен» .

Утилита NameBench для повышения загрузки страниц

Многие провайдеры, особенно коммерческие, всегда хотят сэкономить на оборудовании. А когда вы начинаете посещать веб-сайты, происходит обращение к DNS-серверам (оборудованию провайдеров). Если оно дешевое, то и скорость загрузки страниц у вас будет очень медленная. Чтобы исправить эту проблему нам необходимы быстрые DNS-сервера, а найти их нам поможет программка NameBench.



Она бесплатная, скачать можно отсюда . В программе установите свою страну и выберите браузер, который используете, а потом нажмите «Start Benchmark» . Программа начнет тестирование большого количества DNS-серверов и выберет наиболее быстрый.

Когда NameBench найдет нужный сервер, то покажет его IP-адрес, который необходимо прописать в настройках вашего подключения.

Обновление прошивки роутера

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

Вот собственно и все методы, которые можно использовать на современных версиях Windows. Хотя, может быть и еще что-то есть, а если и появится, то мы не обойдем это стороной.

В первой части этой серии статей я рассказывал о том, что делает QoS, и для чего он используется. В этой части я продолжу разговор объяснением того, как работает QoS. По мере прочтения этой статьи, пожалуйста, учитывайте, что информация, представленная здесь, основана на Windows Server 2003 применении QoS, которое отличается от применения QoS в Windows 2000 Server.

API управления трафиком

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

Здесь в игру вступает Traffic Control API (программный интерфейс управления трафиком). Traffic Control API – это программный интерфейс приложения, позволяющий применять параметры QoS к индивидуальным пакетам. Traffic Control API работает на основе определения отдельных потоков трафика, и применения различных способов QoS контроля к этим потокам.

Первое, что делает Traffic Control API, это создает то, что известно под названием filterspec. Filterspec – это, по сути, фильтр, определяющий, что значит для пакета принадлежать к определенному потоку. Некоторые атрибуты, используемые filterspec, включают IP адрес источника и назначения пакета и номер порта.

Как только filterspec был определен, API позволяет создать flowspec. Flowspec определяет QoS параметры, которые будут применяться к последовательности пакетов. Некоторые из параметров, определяемые flowspec, включают скорость передачи (допустимую скорость передачи) и тип службы.

Третий концепт, определяемый интерфейсом Traffic Control API – это концепт потока. Поток представляет собой простую последовательность пакетов, которые подвержены одному flowspec. Проще говоря, filterspec определяет, какие пакеты будут включены в flowspec. Flowspec определяет, будут ли пакеты обрабатываться с более высокими приоритетами, а поток – это собственно передача пакетов, которые подвергаются обработке flowspec. Все пакеты в потоке обрабатываются равноправно.

Следует упомянуть, что одним из преимуществ Traffic Control API над Generic QoS API, использовавшемся в Windows 2000, является способность использовать агрегирование (объединение). Если узел имеет несколько приложений, передающих множественные потоки данных в общее место назначения, то эти пакеты могут быть объединены в общий поток. Это действует, даже если приложения используют различные номера портов, но при условии, что IP адрес источника и назначения одинаков.

Классификатор общих пакетов (Generic Packet Classifier)

В предыдущем разделе я рассказал о взаимоотношениях между flowspec, filterspec и потоком. Однако важно помнить, что интерфейс Traffic Control API – это просто программный интерфейс приложения. Будучи таковым, его работа заключается в определении и назначении приоритетов потокам трафика, а не создание этих потоков.

За создание потоков отвечает Generic Packet Classifier. Как вы помните из прошлого раздела, одним из атрибутов, который определялся в flowspec, был тип службы. Тип службы, по сути, определяет приоритет потока. Generic Packet Classifier отвечает за определение типа службы, который был назначен для flowspec, после чего он помещает связанные пакеты в очередь, соответствующую типу службы. Каждый поток помещается в отдельную очередь.

QoS Packet Scheduler (планировщик пакетов)

Третий QoS компонент, о котором вам нужно знать, – это планировщик пакетов QoS. Проще говоря, основной задачей планировщика пакетов QoS является формирование трафика. Для этого планировщик пакетов получает пакеты из различных очередей, а затем маркирует эти пакеты приоритетами и скоростью потока.

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

На самом деле, здесь присутствует два типа маркировки. Планировщик пакетов QoS использует Diffserv маркировку, которая распознается устройствами третьего уровня, и маркировку 802.1p, которая распознается устройствами второго уровня.

Настройка планировщика пакетов QoS

Прежде чем я покажу вам, как работает маркировка, следует отметить, что вам нужно будет настроить планировщика пакетов QoS, чтобы все работало. В Windows Server 2003 планировщик пакетов QoS относится к необязательным сетевым компонентам, так же как и клиент для сетей Microsoft или TCP/IP протокол. Чтобы включить планировщика пакетов QoS, откройте страницу свойств вашего сетевого подключения сервера и поставьте флажок рядом со строкой планировщик пакетов QoS, как показано на рисунке A. Если планировщик пакетов QoS отсутствует в списке, нажмите кнопку «Установить» и следуйте указаниям.

Рисунок A: Планировщика пакетов QoS необходимо включить, прежде чем вы сможете использовать QoS

Еще один момент, который вам нужно знать касаемо планировщика пакетов QoS, заключается в том, что для его корректной работы ваш сетевой адаптер должен поддерживать 802.1p маркировку. Чтобы проверить свой адаптер, нажмите кнопку «Настроить», рисунок A, и Windows отобразит свойства вашего сетевого адаптера. Если вы посмотрите во вкладку «Дополнительно» на странице свойств, вы увидите различные свойства, которые поддерживает ваш сетевой адаптер.

Если вы посмотрите на рисунок B, вы увидите, что одним из свойств в списке является 802.1Q / 1P VLAN Tagging. Вы также видите, что это свойство отключено по умолчанию. Чтобы включить 802.1p маркировку, просто включите это свойство и нажмите OK.

Рисунок B: Вы должны включить 802.1Q/1P VLAN Tagging

Вы, возможно, заметили на рисунке B, что свойство, которое вы включили, связано с VLAN тегированием, а не с пакетной маркировкой. Причина тому кроется в том, что маркеры приоритетов включаются в VLAN теги. 802.1Q стандарт определяет VLANs и VLAN теги. Этот стандарт на самом деле резервирует три бита в VLAN пакете, которые используются для записи кода приоритетности. К сожалению, 802.1Q стандарт никогда не определяет, каковы должны быть эти коды приоритетности.

802.1P стандарт был создан в качестве дополнения к 802.1Q. 802.1P определяет маркировку приоритетности, которая может быть заключена в VLAN тег. Я расскажу вам о принципе работы этих двух стандартов в третьей части.

Заключение

В этой статье мы обсудили некоторые основные понятия в архитектуре Windows Server 2003′s QoS. В третьей части я подробнее расскажу о том, как планировщик пакетов QoS маркирует пакеты. Я также расскажу о том, как работает QoS в условиях сети с низкой пропускной способностью.

Пропускная способность локальной сети — тема, которая становится с распространением скоростного интернета все более актуальной. С каждым разом мы пытаемся подключить к роутеру все больше устройств, а программное обеспечение по умолчанию не всегда может с ними со всеми справиться. В этом случае на помощь приходит настройка приоритетов QoS пакетов пропускной способности локальной сети на маршрутизаторе. Она назначает приоритет на выполнение тех или иных самых важных на данный момент задач и доступна не только на топовых маршрутизаторах Mikrotik или Cisco, но и на любой недорогой модели TP-Link, Asus, Zyxel Keenetic, D-Link.

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

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


Но пропускная способность локальной сети и канала интернет ограничена. Первая — возможностями роутера. Ппомните, мы говорили про ?.

Вторая — вашим тарифным планом от провайдера. Так как при этом разделяется приоритет на выполнение этих одновременных задач?

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

Именно поэтому в роутерах предусмотрена возможность настроить пропускную способность сети вручную. А именно распределить приоритет так, как вам это необходимо. Называется эта функция — QoS (Quality of Service). То есть технология предоставления различным классам трафика приоритетов в обслуживании.

Диспетчер трафика на роутере Asus

В разных моделях эта настройка может скрываться под различными названиями в пункте меню. У меня сейчас работает роутер Asus в новой прошивке — показываю на RT-N10U версии B1. И здесь настройка планировщика QoS осуществляется в разделе «Диспетчер трафика».

Для начала надо сменить активированный по умолчанию автоматический режим на один из двух. «Определяемые пользователем правила QoS» или «Определяемый пользователем приоритет»

Определяемые пользователем правила планировщика пакетов QoS

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

Итак, сейчас на «Web Serf», то есть на подключения через браузер через используемый для этого 80 порт, стоит «Наивысший» приоритет. Кликнув по выпадающему списку, мы можем выбрать другой из предложенного списка. В то же время на «File Transfer», то есть для программ-загрузчиков файлов — наименьший. Поменяв эти параметры местами мы получим эффект, что при одновременной загрузке файла с какого-либо сайта и просмотре html-страницы, бОльшая скорость будет отдаваться первому процессу.


Но это еще не все. Для программ для передачи файлов посредством P2P (например, BitTorrent), или он-лайн игр, а также множества других приложений можно задать свои значения приоритета. Это делается добавлением нового правила к уже существующим.

Для его создания кликаем по пункту «Выберите» и из выпадающего списка выбираем интересующий нас тип передачи данных или предустановленные настройки для конкретного приложения. Например, можно задать в пропускной способности сети приоритет для почтовых приложений типа Outlook или TheBat (пункт SMTP, POP3…) или для ftp-клиентов (FTP, SFTP, WLM…). Также есть большой список популярных игр, например Counter Strike, и программ для обмена файлами — BitTorrent, eDonkey и т.д.

Выберем качалку торрентов. Автоматически проставятся используемые данной программой по умолчанию порты.
Но лучше на слово роутеру не верить и перепроверить их самостоятельно. Откроем программу (у меня uTorrent) и зайдем в «Настройки > Настройки программы > Соединения». Посмотрим, какой порт задан для работы этой проги.

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

Определяемый пользователем приоритет пакетов QoS

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

Например, для исходящего трафика на «Наивысший» в данный момент по умолчанию у меня задано 80% — минимальное значение и 100% — максимальное. Это означает, что те, у которых наивысший приоритет, будут получать не менее 80% ширины пропускаемости канала. Независимо от того, сколько бы одновременных процессов не производили исходящие соединения с интернетом. Те же, у кого приоритет «Высокий» — не менее 10%. И так далее — думаю, суть вы поняли. Отредактировав эти значения, можно детально управлять скоростью загрузки и выгрузки для разных категорий работающих программ.

Теперь предлагаю посмотреть развернутый видеоурок о настройке QoS на роутерах фирмы Cisco

Настройка планировщика пакетов QoS на роутере TP-Link

Ниже для вашего удобства приведу несколько скриншотов администраторских разделов для управления пропускной способностью с моделей других фирм. На роутерах TP-Link планировщик пакетов QoS находится в разделе меню «Контроль пропускной способности». Для его активации ставим галочку на «Включить контроль полосы пропускания» и задаем максимальную скорость для входящего и исходящего трафика.

По клику на кнопку «Добавить» можно добавить новое правило на приоритет для одного или нескольких компьютеров. Для этого необходимо вписать их IP адрес или диапазон адресов. А также указать порты и тип обмена пакетами, на которые данное правило будет распространяться.

Недавно у TP-Link появилась новая визуализация панели администратора, которая устанавливается на все новые модели. В ней планировщик QoS находится в «Дополнительных настройках» в разделе «Приоретизация данных». Включаем ее галочкой и регулируем ползунками три вида приоритетов:

  • Высокий
  • Средний
  • Низкий

Для добавления фильтра нажимаем на кнопку «Добавить» в одной из трех окон предустановленных настроек

Откроется список подключенных к роутеру клиентов — выбираем нужный и жмем на ссылку «Выбрать» и далее «ОК»

Пропускная способность сети IntelliQoS на Zyxel Keenetic

На маршрутизаторах Keenetic функция управления пропускной способностью сети называется IntelliQoS. Изначально данный модуль не присутствует в прошивке. Необходимо дополнительно >>установить компонент IntelliQoS из соответствующего раздела панели администратора. После чего в меню «Мои сети и WiFi» появится отдельный одноименный пункт.

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

Настройка пропускной способности сети на роутере D-Link

Для роутера D-Link в модель DIR-620 разработчики почему-то реализовали возможность установить QOS ограничения по скорости только на компьютеры, подключенные по кабелю к одному из LAN портов. Находится эта настройка в разделе «Дополнительно — Управление полосой пропускания»

Выбрав один из них, включаем ограничение и устанавливаем скорость

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

Видео по настройке QoS на роутере

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

Меня зовут Владимир и я работаю сетевым инженером в одном из небольших ISP в Санкт-Петербурге.

Одним из оказываемых нами сервисов является L2VPN под транспорт IPTV потоков. На примере этого сервиса я буду вести рассказ.

Начинается всё с обращения в техподдержку от клиента-оператора с жалобой на качество IPTV - картинка сыпется («артефакты»), пропадает звук, в общем стандартный набор. IPTV у нас в сети классифицируется в очередь assured forwarding, поэтому диагностика заключается в том, чтобы пробежаться по железкам на маршруте и проверить, что в AF очереди на egress нет потерь, а на ingress нет физических ошибок. После этого мы бодро рапортуем клиенту, что в нашей зоне ответственности потерь не обнаружено, рекомендуем клиенту искать проблему у себя или поставщика IPTV, и идём пить чай с печеньем.

Но клиент давит и продолжает настаивать, что виноваты мы, а у него всё отлично. Мы проверяем всё ещё раз, смотрим корректность классификаторов и маркировку пакетов от клиента, завязывается диалог и на каком-то этапе задаём вопрос «а как у вас сконфигурирован QoS на сети?», на что получаем ответ «никак, у нас интерфейсы даже на 50% не загружены поэтому нам QoS не нужен». Тяжёлый вздох и поехали.

Обычно график загрузки на который все смотрят имеет интервал в 5 минут. Если «real time» - то несколько секунд, начиная от 1. К сожалению и к счастью, современное сетевое оборудование оперирует периодами не в 5 минут и не в 1 секунду даже, а пикосекундами. То, что в течении секунды интерфейс не был загружен на 100%, не значит, что он точно так же не был загружен и в течении нескольких миллисекунд.

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

Обычно первая реакция - как так?! Мы же живём в эпоху скоростных интерфейсов! 10Gb/s уже обыденность, 40 и 100Gb/s внедряется повсеместно, а мы ждём уже 1Tb/s интерфейсы.

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

Механизм возникновения очень прост, я его рассмотрю на примере трёх 1Gb/s интерфейсов, где трафик из двух из них уходит через третий.

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

У каждого egress интерфейса есть очередь отправки tx-ring, которая представляет из себя кольцевой буфер. Туда складываются пакеты для отправки в сеть и конечно же этот буфер имеет конечный размер. Но у ingress интерфейсов на отправляющей стороне тоже есть такие же кольцевые буферы, которые обеспечивают такой-же line-rate. Что произойдёт, если они начнут отправлять трафик одновременно? У нашего egress интерфейса не хватит места в его tx-ring, так как заполняться он будет в два раза быстрее, чем он способен отправлять пакеты. Оставшиеся пакеты нужно где-то хранить. В общем случае это другой буфер, который мы называем очередью (queue). Пока в tx-ring нет места, пакет хранится в очереди и ждёт свободного места в tx-ring. Но вот беда - у очереди память тоже конечна. Что произойдёт, если ingress интерфейсы работают на line-rate достаточно долго? Память в очереди тоже закончится. В этом случае новому пакету уже негде храниться, и он будет отброшен - такая ситуация называется tail drop.

Сколько времени нужно, чтобы такой сценарий стал реальностью? Давайте посчитаем.

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

Для 1Gb/s интерфейса нам потребуется (1000000000 * 0.2) / 8 = 25MB памяти. Сколько времени нужно работать на line-rate двум 1Gb/s интерфейсам, чтобы полностью забить буфер? 200ms. Это время за которое передаются 25MB со скоростью 1Gb/s. Да, ingress интерфейсов то у нас два, но egress интерфейс то тоже без дела не сидит и отправляет данные с той же скоростью, поэтому 200ms.

Это сравнительно много. А 10Gb/s ingress интерфейсу сколько времени понадобится чтобы перегрузить 200ms буфер 1Gb/s интерфейса? ~22ms. Это уже ощутимо меньше.

А сколько нужно памяти, чтобы хранить 200ms для 10Gb/s интерфейса? Уже 250MB. Это не то чтобы много по современным меркам, но ветер дует именно в эту сторону - скорости растут, и чтобы сохранять глубину буфера требуется всё больше и больше памяти, что выливается в инженерные и экономические проблемы, а чем меньше буфер тем быстрее микробёрст забьёт его.

Получается вечный вопрос для инженеров вендоров - сколько памяти давать интерфейсу в железе? Много - дорого и каждая следующая миллисекунда становится бессмысленнее и бессмысленнее. Мало - микробёрсты будут приводить к большим потерям пакетов и жалобам от клиентов.

Эта ситуация в пакетных сетях неизбежна - интерфейс проработает на line-rate меньше секунды, а потери уже будут. Единственный способ её избежать - строить сеть так, чтобы ingress скорость никогда не превышала egress скорость, а это непрактично и нереально.

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

Что делать? Настраивать QoS. Обязательно классифицировать приоритетный трафик и помещать его в отдельную очередь которой выделять бОльший объём памяти. Конфигурировать алгоритмы отправки пакетов так, чтобы приоритетные пакеты попадали в tx-ring раньше других - таким образом их очередь будет очищаться быстрее.

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

Assured forwarding(AF) - «подержи но доставь». В AF очередь классифицируется трафик, который требует гарантированной доставки, но не чувствителен к задержкам. Этой очереди выделен большой объём памяти, но даётся сравнительно мало места в tx-ring, и пакеты туда попадают позже других. Яркий пример такого трафика это IPTV - он буферизиуется на клиенте(VLC или STB), поэтому его можно задержать, но потеря превратится в артефакт изображения.
Expedited forwarding(EF) - «доставь мгновенно или выброси». Этой очереди выделятся минимум(или вообще никакой) памяти для очереди, но выставляется высший приоритет для попадания в tx-ring, чтобы пакет был отправлен как можно быстрее. Пример трафика - VoIP. Голос нельзя доставить поздно, иначе и кодек телефонии не сможет его корректно собрать - абонент услышит кваканье. В то же время потери отдельных пакетов на общем качестве голоса сильно не сказываются - он у людей итак не идеальный.
Есть ещё network control(NC) и best effort(BE), для управления сетью и всего остального соответственно, а трафик бывает ещё, например, телеконференции, который представляет из себя гибрид между VoIP и IPTV, но это уже совершенно отдельная тема, и настраивать QoS для них следует отдельно в каждой сети, в зависимости от топологии и прочих факторов. Всё вместе в целом это выглядит примерно так(картинка с сайта Cisco):

Надеюсь теперь вы будете настраивать QoS в своей сети?