Контакти

Дроселювання пропускної здатності за допомогою QoS. Як використовувати QoS для забезпечення якості доступу до Інтернету Де знаходиться планувальник пакетів qos

У першій частині цієї серії статей я розповідав про те, що робить QoS і для чого він використовується. У цій частині я продовжу розмову поясненням того, як працює QoS. У міру прочитання цієї статті, будь ласка, враховуйте, що інформація, представлена ​​тут, заснована на застосунку QoS Windows Server 2003, яке відрізняється від застосування 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 – це концепт потоку. Потік являє собою просту послідовність пакетів, які схильні до одного потокувідомості. Простіше кажучи, 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 QoS. У третій частині я докладніше розповім, як планувальник пакетів QoS маркує пакети. Я також розповім про те, як QoS працює в умовах мережі з низькою пропускною здатністю.

У статті розглянемо, як настроїти зарезервовану пропускну спроможність у Windows 10. За промовчанням Windows резервує 20% загальної пропускної спроможності Інтернету.

Так, так, операційна система Windows 10 резервує певний відсоток пропускної спроможності вашого інтернет-з'єднання для якості обслуговування (QoS).

Згідно Microsoft:

QoS може включати критично важливі системні операції, такі як оновлення системи Windows, управління статусом ліцензування і т. д. Концепція зарезервованої смуги пропускання застосовна до всіх програм, що працюють в системі. Зазвичай планувальник пакетів обмежує систему до 80% пропускної спроможності зв'язності. Це означає, що Windows резервує 20% пропускну здатність вашого Інтернету виключно для QoS.

Якщо ви хочете отримати цей зарезервований відсоток пропускної здатності, ця стаття для вас. Нижче розглянемо два способи налаштування зарезервованої смуги пропускання операційної системи Windows 10.

ПРИМІТКА:Якщо ви відключите всю зарезервовану смугу пропускання для вашої системи, тобто встановіть її на 0%, це вплине на дії операційної системи, особливо автоматичні оновлення.

Відмова від відповідальності:подальші кроки включатимуть виправлення реєстру. Помилки під час редагування реєстру можуть негативно вплинути на вашу систему. Тому будьте обережні під час редагування записів реєстру та спочатку створіть точку відновлення системи.

Крок 1: Відкрийте редактор реєстру(якщо ви не знайомі з редактором реєстру, натисніть ).

Крок 2:У лівій панелі вікна редактора реєстру перейдіть до наступного розділу:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Psched

Примітка:Якщо розділ і параметр « NonBestEffortLimit» не існують просто створіть їх.

Крок 3:Тепер на правій панелі розділу реєстру «Psched»знайдіть параметр DWORD (32 біта) з ім'ям NonBestEffortLimit. Двічі клацніть на ньому, щоб змінити його значення:

За замовчуванням параметр має значення 50 у шістнадцятковій або 80 у десятковій системі обчислення.

Крок 4:Виберіть десяткову систему і встановіть значення, що дорівнює відсотку необхідної смуги пропускання, що резервується.

Для прикладуякщо ви встановите значення рівним 0 Зарезервована смуга пропускання для вашої операційної системи Windows буде повністю відключена, тобто дорівнює 0%. Натисніть кнопку "OK"та закрийте редактор реєстру.

Крок 5:Перезавантажте ПК, щоб зміни набули чинності.

Якщо ви хочете налаштувати або обмежити пропускну здатність, що резервується, на декількох комп'ютерах у вашій організації / на робочому місці, ви можете розгорнути відповідний параметр об'єкта групової політики.

Крок 1:Відкрийте редактор локальної групової політики

Крок 2:Перейдіть до розділу: "Конфігурація комп'ютера" → "Адміністративні шаблони" → "Мережа" → "Планувальник пакетів Qos"


Крок 3:У правому вікні подвійним кліком відкрийте політику.

За замовчуванням ця політика не задана та система резервує 20% пропускну здатність інтернет підключення. Вам необхідно ввімкнути її, встановіть для параметра «Обмежити пропускну здатність, що резервується»значення "Включено".

Немає жодної людини, яка б хоч раз не прочитала якусь FAQ по Windows XP. А якщо так, то кожен знає, що є така шкідлива служба Quality of Service — скорочено QoS. При налаштуванні системи її настійно рекомендується відключати, тому що вона за умовчанням обмежує мережну пропускну здатність на 20%, і начебто ця проблема існує і в Windows 2000.

Ось ці рядки:

Q: Як повністю вимкнути QoS (Quality of Service)? Як її налаштувати? Чи правда, що вона обмежує швидкість мережі?
A: Дійсно, за замовчуванням Quality of Service резервує для своїх потреб 20% від пропускної спроможності каналу (будь-якого модем на 14400, хоч гігабітний Ethernet). Причому навіть якщо видалити QoS Packet Scheduler з Properties-з'єднання, цей канал не звільняється. Звільнити канал або просто налаштувати QoS можна тут. Запускаємо аплет Group Policy (gpedit.msc). У Group Policy знаходимо Local computer policy та натискаємо на Administrative templates. Вибираємо пункт Network – QoS Packet Sheduler. Включаємо Limit reservable bandwidth. Тепер знижуємо Bandwidth limit 20% до 0% або просто вимикаємо його. За бажання тут можна налаштувати й інші параметри QoS. Для активації змін залишається лише перезавантажитися.

20% – це, звичайно, дуже багато. Воістину Microsoft - "маздай". Твердження подібного роду кочують з FAQ у FAQ, з форуму на форум, зі ЗМІ в ЗМІ, використовуються у різноманітних "твікалках" - програмах з "налаштування" Windows XP (до речі, відкрийте "Групові політики" та "Локальні політики безпеки", і жодна "твікалка" не зрівняється з ними за багатством варіантів налаштування). Викривати голослівні твердження такого роду потрібно обережно, що ми зараз зробимо, застосувавши системний підхід. Тобто ґрунтовно вивчимо проблемне питання, спираючись на офіційні першоджерела.

Що таке мережа із якісним сервісом?

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

Мережева служба QoS спирається на здатність мережі обробити цей трафік так, щоб гарантовано виконати запити деяких програм. Це вимагає наявності фундаментального механізму обробки мережевого трафіку, здатного ідентифікувати трафік, що має право на особливу обробку і право керувати цими механізмами.

Функціональні можливості QoS покликані задовольнити двох суб'єктів мережі: мережеві програми та мережевих адміністраторів. Вони часто мають суперечності. Адміністратор мережі обмежує ресурси, що використовуються специфічним додатком, в той же час програма намагається захопити якнайбільше мережевих ресурсів. Їхні інтереси можуть бути узгоджені, беручи до уваги той факт, що мережевий адміністратор відіграє чільну роль по відношенню до всіх додатків та користувачів.

Основні параметри QoS

Різні програми мають різні вимоги щодо обробки їх мережевого трафіку. Програми більшою чи меншою мірою терпимі до затримок та втрат трафіку. Ці вимоги знайшли застосування у наступних параметрах, пов'язаних з QoS:

  • Bandwidth (смуга пропускання) - швидкість, з якою трафік, що генерується додатком, має бути переданий по мережі;
  • Latency (затримка) - затримка, яку програма може допустити в доставці пакета даних;
  • Jitter – зміна часу затримки;
  • Loss (втрата) – відсоток втрачених даних.

Якби були доступні нескінченні мережеві ресурси, весь трафік програми можна було б передати з необхідною швидкістю, з нульовим часом затримки, нульовим зміною часу затримки і нульовими втратами. Проте мережеві ресурси не безмежні.

Механізм QoS контролює розподіл мережевих ресурсів для трафіку програми, щоб виконати вимоги щодо його передачі.

Фундаментальні ресурси QoS та механізми обробки трафіку

Мережі, які пов'язують хости, використовують різноманітні мережеві пристрої, включаючи мережеві адаптери хостів, маршрутизатори, свічі та хаби. Кожен має мережні інтерфейси. Кожен мережний інтерфейс може прийняти та передати трафік з кінцевою швидкістю. Якщо швидкість, з якою трафік спрямовано інтерфейс, вище, ніж швидкість, з якою інтерфейс передає трафік далі, виникає перевантаження.

Мережеві пристрої можуть обробити стан навантаження, організуючи чергу трафіку в пам'яті пристрою (у буфері), доки перевантаження не пройде. В інших випадках мережеве обладнання може відмовитись від трафіку, щоб полегшити перевантаження. В результаті програми зіштовхуються зі зміною часу очікування (оскільки трафік зберігається в чергах на інтерфейсах) або зі втратою трафіку.

Здатність мережевих інтерфейсів до пересилання трафіку і наявність пам'яті для збереження трафіку в мережевих пристроях (доки трафік не може бути надісланий далі) становлять фундаментальні ресурси, потрібні для забезпечення QoS для потоків трафіку додатків.

Розподіл ресурсів QoS по мережевих пристроях

Пристрої, що підтримують QoS, розумно використовують ресурси мережі передачі трафіку. Тобто трафік додатків, більш терпимих до затримок, стає в чергу (зберігається в буфері пам'яті), а трафік додатків, критичних до затримок, передається далі.

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

Механізм обробки трафіку

Механізм обробки трафіку включає:

  • 802.1p;
  • диференційовані послуги per-hop-behaviors (diffserv PHB);
  • Інтегровані послуги (intserv);
  • ATM та ін.

Більшість локальних мереж засновані на технології IEEE 802, включаючи Ethernet, token-ring та ін. 802.1p - це механізм обробки трафіку для підтримки QoS у таких мережах.

802.1p визначає поле (рівень 2 мережної моделі OSI) в заголовку пакета 802, яке може нести одне з восьми значень пріоритету. Як правило, хости або маршрутизатори, посилаючи трафік у локальну мережу, маркують кожен пакет, присвоюючи йому певне значення пріоритету. Передбачається, що мережні пристрої, такі як свічі, мости і хаби, оброблять пакети відповідним чином, використовуючи механізми організації черг. Область застосування 802.1p обмежена локальною мережею (LAN). Як тільки пакет перетинає локальну мережу (через рівень 3 OSI), пріоритет 802.1p видаляється.

Diffserv – це механізм рівня 3. Він визначає поле в рівні 3 заголовка пакетів IP, названих diffserv codepoint (DSCP).

Intserv - це цілий комплекс послуг, що визначає гарантований сервіс та сервіс, що керує завантаженням. Гарантований сервіс обіцяє нести певний обсяг трафіку з вимірюваною та обмеженою затримкою. Сервіс, що керує завантаженням, погоджується нести деякий обсяг трафіку з "появою легкої завантаженості мережі". Це - вимірні послуги в тому сенсі, що вони визначені, щоб забезпечити QoS вимірний до певної кількості трафіку.

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

QoS має ще багато різних складних механізмів, які забезпечують роботу цієї технології. Відзначимо лише один важливий момент: для того, щоб QoS запрацювала, необхідна підтримка цієї технології та відповідне налаштування протягом усього передачі від початкової точки до кінцевої.

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

Одним із можливих рішень цієї проблеми є QoS. QoS, або якість служби, є технологією надання пріоритетів пакетам даних. QoS дозволяє передавати чутливі до тимчасових значень пакети з більш високим пріоритетом, ніж інші пакети.

QoS – це стандарт індустрії, а не стандарт, що належить Microsoft. Проте вперше компанія Microsoft представила цей стандарт QoS у Windows 2000. Версія QoS від Microsoft досить сильно еволюціонувала з того часу, але все ще відповідає стандартам індустрії.

У Windows XP Professional QoS в першу чергу працює як механізм резервування пропускної здатності. Коли QoS увімкнено, програма дозволяє резервувати до 20% всієї пропускної здатності мережі, що забезпечується кожним мережним адаптером машини. Проте кількість резервованої додатком пропускної спроможності мережі можна налаштовувати. Я покажу вам, як змінювати кількість резервованої пропускної спроможності у третій частині.

Щоб подивитися, як використовується резервна пропускна здатність, припустимо, у вас є програма для проведення відеоконференцій, що вимагає пріоритетної смуги пропускання для правильної роботи. Припустивши, що для цієї програми включена QoS, можна сказати, що вона резервує 20% всієї смуги пропускання машини, залишаючи 80% пропускної спроможності для решти мережного трафіку.

Всі програми, крім програм для відеоконференцій, використовують технологію під назвою найкраща доставка (best effort delivery). Це означає, що пакети надсилаються з однаковими пріоритетами "перший доставлений пакет обслуговується в першу чергу". З іншого боку, трафік додатків для відеоконференцій завжди матиме вищий пріоритет у порівнянні з рештою трафіку, але додатку ніколи не буде дозволено споживати понад 20% усієї пропускної спроможності.

Однак лише той факт, що Windows XP залишає частину пропускної спроможності для пріоритетного трафіку, зовсім не означає, що програми зі звичайним пріоритетом не зможуть використовувати резервну пропускну спроможність. Хоча програми відеоконференцій користуються перевагами вищих пріоритетів, резервної пропускної спроможності, шанси постійного використання таких програм дуже малі. У цьому випадку Windows дозволяє іншим програмам використовувати резервну та не резервну пропускну здатність для максимально гарної доставки доти, доки програми, для яких зарезервована частина пропускної здатності мережі не будуть використовуватися.

Як тільки програма відеоконференції запускається, Windows починає в примусовому порядку використовувати резервування. Але навіть у цьому випадку резервування не є абсолютним. Припустимо, Windows зарезервував 20% пропускної спроможності мережі для програми відеоконференції, але цій програмі не потрібні всі 20%. У цих випадках Windows дозволяє іншим програмам використовувати залишкову пропускну здатність, але постійно контролюватиме потреби програми з вищим пріоритетом. Якщо додатку знадобиться більше пропускної здатності, пропускна здатність виділятиметься для нього до максимального значення 20%.

Як я вже казав, QoS – це стандарт індустрії, а не технологія Microsoft. Будучи такою, QoS використовується у Windows, але Windows не може виконувати цю роботу самостійно. Щоб QoS працював, кожен компонент обладнання між відправником та одержувачем має підтримувати QoS. Це означає, що мережні адаптери, комутатори, маршрутизатори і всі інші пристрої повинні знати про QoS, так само як і операційні системи одержувача і відправника.

Якщо вам цікаво, то вам не потрібно встановлювати якусь шалену екзотичну мережеву інфраструктуру, щоб використовувати QoS. Асинхронний режим передачі (Asynchronous Transfer Mode – АTM) – є чудовою мережевою технологією для використання QoS, оскільки це технологія, орієнтована на підключення, однак ви можете використовувати QoS і з іншими технологіями, такими як Frame Relay, Ethernet і навіть Wi-FI (802.11 x).

Причина, через яку ATM є настільки ідеальним вибором для QoS, у тому, що вона здатна впроваджувати резервування пропускну здатність і розподіляти ресурси лише на рівні устаткування. Такий тип розподілів виходить за рамки можливостей Ethernet та подібних мережевих технологій. Це не означає, що QoS не можна використовувати. Це лише означає, що QoS має застосовуватися негаразд, як у середовищі ATM.

У середовищі ATM ресурси розподіляються одночасно, лише на рівні фізичних пристроїв. Оскільки Ethernet та інші подібні технології що неспроможні розподіляти ресурси у такий спосіб, технології такого типу грунтуються на присвоєння пріоритетів, а чи не на справжньому виділенні ресурсів. Це означає, що резервування пропускної спроможності відбувається більш високому рівні моделі OSI. Як тільки пропускну здатність було зарезервовано, пакети з вищими пріоритетами передаються в першу чергу.

Одним моментом, який слід враховувати, якщо ви збираєтеся застосувати QoS через Ethernet, Wi-Fi або інші подібні технології, є те, що такі технології не мають з'єднання. Це означає, що у відправника немає можливості перевірити стан одержувача або стан мережі між відправником та одержувачем. А це, в свою чергу, означає, що відправник може гарантувати відправлення пакетів з вищими пріоритетами в першу чергу, але не може гарантувати доставку цих пакетів протягом певного часу. З іншого боку, QoS здатний дати такого роду гарантії на мережі ATM, оскільки ATM є технологією, орієнтованою на підключення.

Windows 2000 vs. Windows Server 2003

Раніше я говорив про те, що Microsoft вперше представила QoS у Windows 2000 і що це застосування QoS з того часу значно еволюціонувало. Тому я хочу трохи розповісти про відмінності між QoS у Windows 2000 і Windows XP і Windows Server 2003 (у яких цей стандарт використовується приблизно однаково).

У Windows 2000 застосування QoS було засноване на архітектурі Intserv, яка не підтримується в Windows XP або Windows Server 2003. Причина, через яку Microsoft вирішила не використовувати таку архітектуру, кривалася в тому, що лежачий в основі API було важко використовувати, і архітектура мала проблеми із масштабністю.

Деякі організації все ще використовують Windows 2000, тому я вирішив надати вам трохи інформації про те, як працює архітектура Windows 2000 QoS. Windows 2000 використовує протокол під назвою RSVP для резервування ресурсів пропускної спроможності. Коли запитується пропускна здатність, Windows необхідно визначити, коли пакети можна передавати. Для цього Windows 2000 використовує протокол сигналу під назвою SBM (менеджер пропускної спроможності підмережі – Sunbelt Bandwidth manager), щоб повідомляти відправнику про те, що вона готова приймати пакти. Служба Admission Control Service (ACS) перевіряє, що ефективна пропускна спроможність доступна і потім надає або відкидає запит на пропускну спроможність.

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 - це концепт потоку. Потік являє собою просту послідовність пакетів, які схильні до одного потокувідомості. Простіше кажучи, 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 тег.

802.1P сигнал

Як я говорив у попередній частині, передача сигналу 802.1p здійснюється на другому рівні моделі OSI. Цей рівень використовується такими фізичними пристроями, як комутатори. Пристрої другого рівня, що підтримують 802.1p, можуть переглядати маркування пріоритетів, призначених пакетам, а потім групувати ці пакети в окремі класи трафіку.

У мережах Ethernet маркування пріоритетів включено до тегів VLAN. VLANs та VLAN теги визначаються 802.1Q стандартом, який визначає поле трирозрядних пріоритетів, але насправді не визначає те, як це поле пріоритетів має використовуватись. Саме тут у гру входить 802.1P стандарт.

802.1P визначає різні класи пріоритетів, які можна використовувати разом із 802.1Q стандартом. Зрештою, 802.1Q залишає право вибору маркування пріоритетів за адміністратором, тому технічно вам не потрібно дотримуватися вказівок 802.1P, але 802.1P, здається, є тим, що всі вибирають.

Хоча ідея використання 802.1P стандартів для маркування другого рівня, ймовірно, звучить як чиста теорія, насправді вона може визначатися за допомогою параметрів групової політики. Стандарт 802.1P забезпечує вісім різних класів пріоритетів (варіюються в межах від 0 до 7). Пакети з пріоритетами вищого класу обробляються QoS із вищим пріоритетом доставки.

За промовчанням Microsoft призначає такі маркування пріоритетів:

Але, як я згадав раніше, ви можете змінювати ці пріоритети, модифікуючи різні параметри групової політики. Для цього потрібно відкрити редактора групової політики та перейти в дереві консолі по гілках Конфігурація комп'ютера \ Шаблони адміністрування \ Мережі \ Планувальник пакетів QoS \ Значення пріоритетів другого рівня. Як видно з малюнка A, є параметри групової політики, які відповідають кожному маркуванню пріоритетів, які я перерахував вище. Ви можете призначити рівні маркування пріоритетів будь-якому з цих типів служб. Однак не слід забувати, що ці параметри групової політики діють лише для хостів, на яких використовується Windows XP, 2003 або Vista.

Рисунок A: Ви можете використовувати редактора групової політики, щоб налаштувати маркування пріоритетів другого рівня.

Роздільні служби (Differentiated Services)

Як я пояснював у попередній статті, QoS виконує маркування пріоритетів на другому та третьому рівнях моделі OSI. Це забезпечує врахування пріоритетів протягом усього процесу доставки пакетів. Наприклад, комутатори працюють на другому рівні моделі OSI, але маршрутизатори зазвичай працюють на третьому рівні. Таким чином, якби пакети використовували лише 802.1p маркування пріоритетів, то пріоритети цим пакетам призначав би комутатор, проте ці пріоритети ігнорувалися мережевими маршрутизаторами. Щоб запобігти цьому, QoS використовує протокол Differentiated Services protocol (Diffserv) для призначення пріоритетів трафіку третьому рівні моделі OSI. Маркування Diffserv включено в IP заголовки пакетів за допомогою TCP/IP.

Архітектура, що використовується Diffserv, була спочатку визначена RFC 2475. Однак багато специфікацій архітектури були переписані в RFC 2474. RFC 2474 визначає Diffserv архітектуру для IPv4 та IPv6.

Цікавий момент IPv4 застосування RFC 2474 полягає в тому, що навіть, незважаючи на той факт, що Diffserv був абсолютно перевизначений, він все ще назад сумісний з оригінальною RFC 2475 специфікацією. Це означає, що старіші маршрутизатори, які не підтримують нові специфікації, можуть розпізнавати призначені пріоритети.

Поточне застосування Diffserv використовує октети типів служб пакетів Type of Service (TOS) для зберігання Diffserv значення (яке називається DSCP значенням). В рамках цього октету перші шість бітів зберігають значення DSCP, а останні два біти не використовуються. Причина, за якою ці маркування обернено сумісні з RFC 2475 специфікацією, полягає в тому, що RFC 2475 вимагала перші три біти в тому ж октеті для використання в інформації послідовності IP. Хоча DSCP значення завдовжки становлять шість біт, перші три біти однаково відбивають IP послідовність.

Як і у випадку з маркуванням 802.1p, яке я демонстрував раніше, ви можете налаштовувати Diffserv пріоритети за допомогою різних параметрів групової політики. Перш ніж я покажу вам як, я представлю стандартні Diffserv пріоритети, які використовуються в Windows:

Ви, можливо, помітили, що маркування пріоритетів Diffserv використовують абсолютно інший діапазон, ніж 802.1P. Замість підтримки діапазону 0 - 7, Diffserv підтримує діапазон маркування пріоритетів у межах від 0 до 63, причому великі числа мають вищі пріоритети.

Як я вже казав, Windows дозволяє вам визначати Diffserv маркування пріоритетів за допомогою параметрів групової політики. Однак слід пам'ятати, що деякі досконаліші маршрутизатори призначатимуть пакетам свої власні Diffserv значення незалежно від тих значень, які призначила Windows.

Враховуючи це, ви можете налаштувати маркування пріоритетів Diffserv, відкривши редактора групової політики, і перейшовши в дереві консолі по гілках Конфігурація комп'ютера \ Шаблони адміністрування \ Мережа \ Планувальник пакетів QoS.

Якщо ви подивитеся на малюнок B, ви помітите, що є дві вкладки, пов'язані з DSCP, які розташовані під вкладкою планувальника пакетів QoS. Одна з цих вкладок дозволяє призначати маркування пріоритетів DSCP для пакетів, відповідних flowspec, а друга дозволяє встановлювати маркування пріоритетів DSCP для невідповідних пакетів. Дійсні параметри власними силами подібні обох вкладок, як показано малюнку C.

Рисунок B: Windows керує маркуванням пріоритетів DSCP окремо для пакетів, які відповідають lowspec і які не відповідають.

Рисунок C: Ви можете вручну визначити маркування пріоритетів DSCP для різних типів служб.

Різноманітні параметри групової політики

Якщо ви подивитеся на малюнок B, ви помітите, що є три параметри групової політики, про які я не говорив. Я хотів коротко згадати про те, що це за параметри і що вони роблять для тих, кому може бути цікаво.

Параметр Limit Outstanding Packets, по суті, є значенням порога служби. Якщо кількість переважаючих пакетів досягає певного значення, QoS заборонить будь-які додаткові виділення пропускної спроможності для мережного адаптера, поки значення не опуститься нижче максимально допустимого порога.

Параметр Limit Reservable Bandwidth керує відсотком загальної пропускної спроможності, яку можуть зарезервувати програми з підтримкою QoS. За промовчанням програми з підтримкою QoS можуть резервувати до 80% пропускної спроможності мережі. Звичайно, будь-яка частина смуги пропускання, зарезервована, і в даний момент QoS додатками, що не використовується, може використовуватися іншими додатками.

Параметр Set Timer Resolution керує мінімальними одиницями часу (у мікросекундах), які планувальник пакетів QoS буде використовувати для планування пакетів. По суті цей параметр контролює максимальну частоту, з якою пакети можуть ставитися в чергу на доставку.

QoS та модеми

У цей час практично загальної доступності широкосмугових технологій здається дивною сама розмова про модеми. Однак все ще існує безліч малих підприємств та домашніх користувачів, які використовують модеми як механізм підключення до інтернету. Нещодавно я бачив велику корпорацію, яка використовувала модеми для зв'язку з супутниковими офісами, які розташовані у віддалених місцях, де немає доступу до широкосмугової технології.

Звичайно, найбільшою проблемою використання модемів є обмежена пропускна спроможність, яку вони мають. Менш очевидною, але не менш важливою проблемою є те, що користувачі зазвичай не змінюють своєї поведінки в режимі онлайн при використанні модемних з'єднань. Звичайно, користувачі можуть не відчувати великого бажання завантажити великі файли при підключенні до інтернету через модем, але решта поведінка користувачів залишається такою ж, як якщо б вони були підключені через широкосмугове з'єднання.

Зазвичай користувачі не дуже переймаються тим, щоб тримати Microsoft Outlook постійно відкритою, або переглядати сторінки, поки файли завантажуються у фоновому режимі. Деякі користувачі також тримають систему миттєвого обміну повідомленнями постійно відкритою. Проблема з таким типом поведінки полягає в тому, що кожен із цих додатків або завдань споживає певний обсяг пропускної спроможності підключення до Інтернету.

Щоб подивитися, як QoS може допомогти, давайте розглянемо, що відбувається у звичайних умовах, коли QoS не використовується. Зазвичай перший додаток, який намагається отримати доступ до інтернету, має найбільші права використання з'єднання. Це не означає, що інші програми не можуть використовувати з'єднання, а, швидше за все, Windows вважає, що інші програми не будуть використовувати з'єднання.

Як тільки з'єднання створено, Windows починає динамічно налаштовувати розмір вікна TCP. Розмір вікна отримання TCP - це обсяг даних, який можна надіслати, перш ніж очікувати на підтвердження, що дані були отримані. Чим більший розмір вікна отримання TCP, тим більше пакети, які відправник може передати, перш ніж чекати на підтвердження успішної доставки.

Розмір вікна отримання TCP потрібно налаштовувати акуратно. Якщо вікно отримання TCP занадто маленьке, страждатиме і ефективність, оскільки TCP вимагає дуже частих підтверджень прийняття. Однак якщо вікно отримання TCP занадто велике, машина може передати занадто багато даних, перш ніж дізнається, що під час передачі виникла проблема. В результаті потрібна повторна передача великого обсягу даних, що також впливає на ефективність.

Коли програма починає використовувати dial-up підключення до інтернету, Windows динамічно налаштовує розмір вікна отримання TCP у міру відправлення пакетів. Метою Windows є досягнення стабільного стану, в якому розмір вікна отримання TCP налаштований оптимально.

Тепер припустимо, що користувач відкриває другу програму, яка також вимагає підключення до Інтернету. Після того, як він це зробить, Windows ініціює алгоритм повільного запуску TCP, який є алгоритмом, що несе відповідальність за налаштування розміру вікна отримання TCP на оптимальне значення. Проблема полягає в тому, що TCP вже використовується програмою, яка була запущена раніше. Це впливає другий додаток двома способами. По-перше, другий додаток потрібно набагато більше часу на досягнення оптимального розміру вікна отримання TCP. По-друге, швидкість передачі даних для другої програми завжди буде повільнішою, ніж швидкість передачі для програми, запущеної вперед.

Хороша новина полягає в тому, що ви можете уникнути цих проблем у Windows XP та Windows Server 2003 шляхом простого запуску планувальника пакетів QOS. Після цього планувальник QOS буде автоматично використовувати технологію під назвою Deficit Round Robin щоразу, коли Windows виявляє повільну швидкість підключення.

Принцип роботи Deficit Round Robin полягає в динамічному створенні окремих черг для кожної програми, якій потрібний доступ до інтернету. Windows обслуговує ці черги у вигляді циклічного алгоритму, який значно покращує ефективність усіх програм, що потребують доступу до Інтернету. Якщо вам цікаво, Deficit Round Robin також доступний у Windows 2000 Server, але не включається автоматично.

Спільне використання інтернет-з'єднання

У Windows XP і Windows Server 2003 QoS також сприяє спільному використанню інтернет підключення. Як ви, мабуть, знаєте, спільне використання інтернет-з'єднання є спрощеним варіантом створення маршрутизатора на базі NAT. Комп'ютер, до якого інтернет з'єднання підключено фізично, відіграє роль маршрутизатора та DHCP сервера для інших комп'ютерів у мережі, забезпечуючи їм доступ до інтернету через цей хост. Спільне використання інтернет-з'єднання зазвичай використовується тільки в малих, пірингових мережах, в яких відсутня інфраструктура домену. Мережі великих розмірів зазвичай використовують маршрутизатори на базі фізичних пристроїв або маршрутизацію та служби віддаленого доступу.

У наведеному вище розділі я вже пояснював, як Windows динамічно налаштовує розмір вікна отримання TCP. Однак таке динамічне налаштування може викликати проблеми при спільному використанні підключення до Інтернету. Причина тому полягає в тому, що підключення між комп'ютерами в локальній мережі зазвичай відносно швидке. Зазвичай таке підключення складається з 100 Мб Ethernet, або з 802.11G бездротового з'єднання. Хоча ці типи з'єднання далеко не найшвидші, але вони набагато швидше за більшість підключень до інтернету, доступних у США. Саме тут криється проблема.

Клієнтському комп'ютеру потрібно взаємодіяти через інтернет, але він не може зробити цього безпосередньо. Натомість він використовує хост спільного використання підключення до інтернету як модуль доступу. Коли Windows обчислює оптимальний розмір вікна отримання TCP, він робить це, ґрунтуючись на швидкості з'єднання між локальною машиною та машиною Internet Connection Sharing. Різниця між обсягом даних, які локальна машина може дійсно отримати з інтернету, та обсягом, які вона думає, що зможе отримати, ґрунтуючись на швидкості підключення до хоста Internet Connection Sharing, може викликати проблеми. Якщо говорити точніше, різниця швидкості підключення може потенційно викликати ситуації, в яких дані створюють резервні копії в черзі, підключеної до низькошвидкісного з'єднання.

Тут у гру вступає QoS. Якщо ви встановите планувальник пакетів QOS на сайті Internet Connection Sharing, то хост Internet Connection Sharing анулює розмір вікна отримання TCP. Це означає, що хост Internet Connection Sharing задаватиме розмір вікна отримання TCP для локальних хостів на таке ж значення, яке вони мали б у разі прямого підключення до інтернету. Це усуває проблеми, викликані розбіжністю швидкостей мережного підключення.

Висновок

У цій серії статей я розповів про QoS і про те, як її можна використовувати для формування потоку трафіку в різних типах мережевих підключень. Як ви бачите, QoS може змусити мережу працювати набагато ефективніше, формуючи трафік таким чином, що він може користуватися моментами найменшої завантаженості в мережі та гарантувати швидку доставку трафіку з вищим пріоритетом.

Брайн Позей (Brien Posey)

Міф про QoS

Немає жодної людини, яка б хоч раз не прочитала якусь FAQ по Windows XP. А якщо так, то кожен знає, що є така шкідлива служба Quality of Service - скорочено QoS. При налаштуванні системи її настійно рекомендується відключати, тому що вона за умовчанням обмежує мережну пропускну здатність на 20%, і начебто ця проблема існує і в Windows 2000.

Ось ці рядки:
Q: Як повністю відключити QoS (Quality of Service)? Як її налаштувати? Чи правда, що вона обмежує швидкість мережі?
A: Дійсно, за замовчуванням Quality of Service резервує для своїх потреб 20% від пропускної спроможності каналу (будь-якого модем на 14400, хоч гігабітний Ethernet). Причому навіть якщо видалити QoS Packet Scheduler з Properties-з'єднання, цей канал не звільняється. Звільнити канал або просто налаштувати QoS можна тут. Запускаємо аплет Group Policy (gpedit.msc). У Group Policy знаходимо Local computer policy та натискаємо на Administrative templates. Вибираємо пункт Network – QoS Packet Sheduler. Включаємо Limit reservable bandwidth. Тепер знижуємо Bandwidth limit 20% до 0% або просто вимикаємо його. За бажання тут можна налаштувати й інші параметри QoS. Для активації здійснених змін залишається лише перезавантажитися".
20% – це, звичайно, дуже багато. Воістину Microsoft - "маздай". Твердження подібного роду кочують з FAQ у FAQ, з форуму на форум, зі ЗМІ в ЗМІ, використовуються у різноманітних "твікалках" - програмах з "налаштування" Windows XP (до речі, відкрийте "Групові політики" та "Локальні політики безпеки", і жодна "твікалка" не зрівняється з ними за багатством варіантів налаштування). Викривати голослівні твердження такого роду потрібно обережно, що ми зараз зробимо, застосувавши системний підхід. Тобто ґрунтовно вивчимо проблемне питання, спираючись на офіційні першоджерела.

Що таке мережа із якісним сервісом?
Давайте приймемо таке спрощене визначення мережевої системи. Програми запускаються і працюють на хостах та обмінюються даними між собою. Програми надсилають дані операційній системі передачі по мережі. Як тільки дані передані операційній системі, вони стають мережевим трафіком.
Мережева служба QoS спирається на здатність мережі обробити цей трафік так, щоб гарантовано виконати запити деяких програм. Це вимагає наявності фундаментального механізму обробки мережевого трафіку, здатного ідентифікувати трафік, що має право на особливу обробку і право керувати цими механізмами.
Функціональні можливості QoS покликані задовольнити двох суб'єктів мережі: мережеві програми та мережевих адміністраторів. Вони часто мають суперечності. Адміністратор мережі обмежує ресурси, що використовуються специфічним додатком, в той же час програма намагається захопити якнайбільше мережевих ресурсів. Їхні інтереси можуть бути узгоджені, беручи до уваги той факт, що мережевий адміністратор відіграє чільну роль по відношенню до всіх додатків та користувачів.

Основні параметри QoS
Різні програми мають різні вимоги щодо обробки їх мережевого трафіку. Програми більшою чи меншою мірою терпимі до затримок та втрат трафіку. Ці вимоги знайшли застосування у наступних параметрах, пов'язаних з QoS:
Bandwidth (смуга пропускання) - швидкість, з якою трафік, що генерується додатком, має бути переданий по мережі;
Latency (Затримка) - затримка, яку програма може допустити в доставці пакета даних.
Jitter – зміна часу затримки.
Loss (втрата) – відсоток втрачених даних.
Якби були доступні нескінченні мережеві ресурси, весь трафік програми можна було б передати з необхідною швидкістю, з нульовим часом затримки, нульовим зміною часу затримки і нульовими втратами. Проте мережеві ресурси не безмежні.
Механізм QoS контролює розподіл мережевих ресурсів для трафіку програми, щоб виконати вимоги щодо його передачі.

Фундаментальні ресурси QoS та механізми обробки трафіку
Мережі, які пов'язують хости, використовують різноманітні мережеві пристрої, включаючи мережеві адаптери хостів, маршрутизатори, свічі та хаби. Кожен має мережні інтерфейси. Кожен мережний інтерфейс може прийняти та передати трафік з кінцевою швидкістю. Якщо швидкість, з якою трафік спрямовано інтерфейс, вище, ніж швидкість, з якою інтерфейс передає трафік далі, виникає перевантаження.
Мережеві пристрої можуть обробити стан навантаження, організуючи чергу трафіку в пам'яті пристрою (у буфері), доки перевантаження не пройде. В інших випадках мережеве обладнання може відмовитись від трафіку, щоб полегшити перевантаження. В результаті програми зіштовхуються зі зміною часу очікування (оскільки трафік зберігається в чергах на інтерфейсах) або зі втратою трафіку.
Здатність мережевих інтерфейсів до пересилання трафіку і наявність пам'яті для збереження трафіку в мережевих пристроях (доки трафік не може бути надісланий далі) становлять фундаментальні ресурси, потрібні для забезпечення QoS для потоків трафіку додатків.

Розподіл ресурсів QoS по мережевих пристроях
Пристрої, що підтримують QoS, розумно використовують ресурси мережі передачі трафіку. Тобто трафік додатків, більш терпимих до затримок, стає в чергу (зберігається в буфері пам'яті), а трафік додатків, критичних до затримок, передається далі.
Для виконання цього завдання мережевий пристрій має ідентифікувати трафік шляхом класифікації пакетів, а також мати черги та механізми обслуговування.

Механізм обробки трафіку
Механізм обробки трафіку включає:
802.1p
Диференційовані послуги per-hop-behaviors (diffserv PHB).
Інтегровані послуги (intserv).
ATM та ін.
Більшість локальних мереж засновані на технології IEEE 802, включаючи Ethernet, token-ring та ін. 802.1p - це механізм обробки трафіку для підтримки QoS у таких мережах.

802.1p визначає поле (рівень 2 мережної моделі OSI) в заголовку пакета 802, яке може нести одне з восьми значень пріоритету. Як правило, хости або маршрутизатори, посилаючи трафік у локальну мережу, маркують кожен пакет, присвоюючи йому певне значення пріоритету. Передбачається, що мережні пристрої, такі як свічі, мости і хаби, оброблять пакети відповідним чином, використовуючи механізми організації черг. Область застосування 802.1p обмежена локальною мережею (LAN). Як тільки пакет перетинає локальну мережу (через рівень 3 OSI), пріоритет 802.1p видаляється.
Diffserv – це механізм рівня 3. Він визначає поле в рівні 3 заголовка пакетів IP, названих diffserv codepoint (DSCP).
Intserv - це цілий комплекс послуг, що визначає гарантований сервіс та сервіс, що керує завантаженням. Гарантований сервіс обіцяє нести певний обсяг трафіку з вимірюваною та обмеженою затримкою. Сервіс, що керує завантаженням, погоджується нести деякий обсяг трафіку з "появою легкої завантаженості мережі". Це - вимірні послуги в тому сенсі, що вони визначені, щоб забезпечити QoS вимірний до певної кількості трафіку.

Оскільки технологія ATM фрагментує пакети відносно маленькі комірки, то вона може запропонувати дуже низький час затримки. Якщо необхідно передати пакет терміново, інтерфейс ATM може завжди звільнятися для передачі на час, який потрібно передати одну комірку.
QoS має ще багато різних складних механізмів, які забезпечують роботу цієї технології. Відзначимо лише один важливий момент: для того, щоб QoS запрацювала, необхідна підтримка цієї технології та відповідне налаштування протягом усього передачі від початкової точки до кінцевої.

Для наочності розглянемо рис. 1.
Приймаємо таке:
Усі маршрутизатори беруть участь у передачі необхідних протоколів.
Один QoS-сеанс, що вимагає 64 Kbps, ініціалізований між хостом А та хостом B.
Інший сеанс, що вимагає 64 Kbps, ініціалізований між хостом А та хостом D.
Для спрощення схеми вважаємо, що маршрутизатори налаштовані так, що можуть резервувати всі мережеві ресурси.
У нашому випадку один запит про резервування 64 Kbps досяг би трьох маршрутизаторів на шляху даних між хостом А та хостом B. Інший запит про 64 Kbps досяг би трьох маршрутизаторів між хостом А та хостом D. Маршрутизатори виконали б ці запити на резервування ресурсів, тому що вони не перевищують максимуму. Якщо замість цього кожен з хостів B і C одночасно ініціалізував би 64 Kbps QoS-сеанс з хостом A, маршрутизатор, що обслуговує ці хости (B і C), заборонив би одне зі з'єднань.

Тепер припустимо, що адміністратор мережі відключає обробку QoS в трьох нижніх маршрутизаторах, що обслуговують хости B, C, D, E. У цьому випадку запити про ресурси до 128 Kbps задовольнялися б незалежно від розташування хоста, що бере участь у з'єднанні. При цьому гарантії якості були б низькими, оскільки трафік для одного хоста ризикував трафік іншого. Якість обслуговування могла б бути збережена, якби верхній маршрутизатор обмежував усі запити до 64 Kbps, але це призвело б до неефективного використання мережевих ресурсів.
З іншого боку, пропускну здатність всіх мережевих зв'язків можна було б збільшити до 128 Kbps. Але збільшена пропускна спроможність використовуватиметься тільки коли хости B і C (або D і E) одночасно зажадають ресурси. Якщо це не так, то ресурси мережі знову використовуватимуться неефективно.

QoS-компоненти Microsoft
Windows 98 містить компоненти QoS тільки рівня користувача, включаючи:
Компоненти програм.
GQoS API (частина Winsock 2).
QoS Service Provider.
Операційна система Windows 2000/XP/2003 містить усі описані вище та наступні компоненти:
Resource Reservation Protocol Service Provider (Rsvpsp.dll) та служби RSVP (Rsvp.exe) та QoS ACS. У Windows XP 2003 не використовуються.
Управління трафіком (Traffic.dll).
Generic Packet Classifier (Msgpc.sys) Класифікатор пакетів визначає клас сервісу, якому належить пакет. При цьому пакет буде поставлено у відповідну чергу. Черги керуються планувальником пакетів QoS.
Планувальник QoS пакетів (Psched.sys). Визначає QoS параметри для специфічного потоку даних. Трафік позначається певним значенням пріоритету. Планувальник пакетів QoS визначає графік постановки в чергу кожного пакета та обробляє конкуруючі запити між поставленими в чергу пакетами, які потребують одночасного доступу до мережі.

Діаграма на рис.2 ілюструє стік протоколів, компоненти Windows та їх взаємодію на хості. Елементи, які використовувалися у Windows 2000, але не використовувані у Windows XP/2003, на діаграмі не показані.
Програми знаходяться вгорі стека. Вони можуть знати чи не знати про QoS. Щоб використовувати всю потужність QoS, Microsoft рекомендує використовувати у програмах виклики Generic QoS API. Це особливо важливо для програм, що вимагають високоякісних гарантій обслуговування. Деякі утиліти можуть використовуватися для виклику QoS від імені програм, які не знають QoS. Вони працюють через API керування трафіком. Наприклад, NetMeeting використовує GQoS API. Але для таких програм якість не гарантується.

Останній цвях
Вищевикладені теоретичні моменти не дають однозначної відповіді на запитання, куди подінуться горезвісні 20% (які, зауважу, ніхто точно не вимірював). Виходячи з вищесказаного, такого не повинно бути. Але опоненти висувають новий аргумент: система QoS хороша, та реалізація крива. Отже, 20% все-таки "віджираються". Мабуть, проблема допекла і софтверного гіганта, оскільки він уже досить давно окремо спростував подібні вигадки.
Втім, дамо слово розробникам та викладемо обрані моменти зі статті "316666 - Windows XP Quality of Service (QoS) Enhancements and Behavior" літературною російською мовою:
"Сто відсотків мережної смуги пропускання доступні для розподілу між усіма програмами, якщо будь-яка програма явно не запитує пріоритетну смугу пропускання. Ця "зарезервована" смуга пропускання доступна іншим програмам, якщо програма, яка її зажадала, не надсилає дані.

За промовчанням програми можуть резервувати до 20% основної швидкості з'єднання кожного інтерфейсу комп'ютера. Якщо програма, яка резервувала смугу пропускання, не надсилає достатньо даних, щоб використовувати її повністю, невикористана частина зарезервованої смуги пропускання доступна для інших потоків даних.
Були заяви у різних технічних статтях та телеконференціях, що Windows XP завжди резервує 20% доступної смуги пропускання для QoS. Ці заяви неправильні".
Якщо тепер у когось все ще "віджирається" 20% смуги пропускання, що ж, я можу порадити й надалі використовувати якомога більше "твікалок" і кривих мережевих драйверів. Ще й не стільки "віджиратиметься".
Все, міф про QoS, помри!

Юрій Трофімов,



Сподобалася стаття? Поділіться їй