Канер Ян : другие произведения.

Компьютерные мифы: этот вредный Qos

Самиздат: [: разрегистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
  • Аннотация:
    Компьютерные мифы: этот вредный Qos.
    Время написания: сентябрь 2005 г.


Компьютерные мифы - этот вредный QoS

  
   Зачастую компьютерные мифы рождаются при неверном переводе или неправильном понимании текстов справочной системы Windows. Лучшей иллюстрацией этого является легенда о "вредной службе QoS, отбирающей 20% пропускной способности сети в Windows 2000/XP".
   Вот текст типичного FAQ (руководства по часто задаваемым вопросам) по оптимизации Windows:
   "Вопрос: Правда ли, что служба QoS ограничивает скорость сети? Как ее отключить или настроить?
   Ответ: по умолчанию Quality of Service резервирует для своих нужд 20% от пропускной способности канала (любого - хоть модем на 14400, хоть гигабитный Ethernet). Причем даже если удалить службу QoS Packet Scheduler из свойств соединения, этот канал не освобождается". Далее идет инструкция по отключению этой службы или уменьшению зарезервированной пропускной способности до 0. И это было бы правильно, если бы не одно "но". К сожалению, все эти "советчики" плохо представляют себе, зачем вообще нужна эта служба, и на что уходят пресловутые 20%...
   Итак, допустим, у нас есть источник сетевого трафика и его приемник, соединенные неким каналом связи. Допустим, источник генерирует такое количество данных, которые может пропустить через себя сеть. Тогда все это работает идеально, но... только пока сетью пользуются только эти 2 процесса. А если к сети подключено еще некое количество таких источников и приемников - кто первым должен получать данные и как выстроить все источники и приемники "по старшинству"?
   Кроме этого, современная сеть - это не два провода, натянутые между двумя компьютерами, это (особенно в случае подключения к Интернет) еще и маршрутизаторы, свичи, хабы... Каждый из них может передать и принять данные с конечной скоростью. Если ее превысить, возникнет перегрузка устройства, "столкновение" (collision) пакетов данных. Сетевые устройства могут обработать это состояние, организуя очередь данных в своей памяти (буфере), пока перегрузка не пройдет. В случае переполнения буфера при продолжительной перегрузке устройство может отказаться от приема данных до освобождения буфера. Таким образом, приложения сталкиваются с изменением времени ожидания данных или даже с их потерей. Возникает вопрос, как "удержать" задержку и потери данных в требуемых программами-приемниками пределах?
   Решением этих проблем и занимается в Windows служба QoS - Quality of Service, "механизм качества обслуживания".
   Различные программы имеют индивидуальные требования к главным параметрам службы QoS - Bandwidth (полоса пропускания, т.е. скорость, с которой данные должны быть переданы по сети), Latency (допустимая задержка при передаче пакета данных), Jitter (изменение времени задержки) и Loss (процент "потерянных" данных). Получив эти параметры от процесса, служба QoS перераспределяет проходящий через нее трафик - пакеты от приложений, критичных к задержкам, отправляются первыми, а "несрочные" пакеты отправляются в буфер или в "хвост" очереди.
   Кроме этого, служба QoS соответствующим образом расставляет приоритеты обработки в следующих через нее пакетах данных, чтобы при дальнейшем прохождении через сетевые устройства параметры пакетов не слишком отличались от заданных программой - источником данных. Она использует механизмы стандарта IEEE 802.1 (приоритеты в локальных сетях), дифференцированные услуги per-hop-behaviors (diffserv, механизм поведения пакетов), интегрированные услуги (intserv, механизм гарантированной доставки пакетов) и т.п.
   Практическим примером всего этого может служить использование службы QoS системным администратором для предотвращения "завешивания" сети, когда, к примеру, один из пользователей решит посмотреть потоковое видео, или начнет закачку огромного файла.
   Однако служба QoS работает правильно при двух условиях. Во-первых, она должна быть запущена на передатчике и приемнике информации, и все устройства сети настроены соответствующим образом, и, во-вторых, программа - генератор данных должна "понимать" механизм QoS и сама обращаться к нему для задания приоритетов, иначе ее пакеты будут обработаны "на общих основаниях".
   Теперь, после общего объяснения, зачем же нужен механизм QoS, перейдем к пресловутым 20%. В самом начале объяснения рассматривалась схема "источник данных - канал связи - приемник" и пояснялось использование механизма QoS для нескольких компьютеров, пользующихся одной сетью. Но в случае домашнего компьютера, подключенного к Интернет, наблюдается похожая картина: есть несколько программ - источников и приемников данных (допустим, броузер и "качалка" файлов), пользующихся одним каналом связи. И здесь их "взаимоотношения" тоже могут быть либо "уравнены", либо отрегулированы механизмом QoS в зависимости от их "требовательности". И если механизм QoS включен, то он дает возможность программам резервировать для себя полосу пропускания не больше чем 20% по умолчанию. Причем, если эта "запасная" составляющая канала связи не используется зарезервировавшей ее программой, она отдается любой другой программе, запросившей связь, но возвращается "по первому требованию". Таким образом, ни о какой "потере" 20% пропускной способности речь не идет.
   Дополнительные сведения о сервисе QoS можно посмотреть в статье Microsoft Knowledge Base N316666 - "Механизм качества обслуживания (QoS) в Windows XP и его улучшения по сравнению с Windows 2000" http://support.microsoft.com/kb/316666/ru (английский оригинал см. http://support.microsoft.com/?id=316666)

Ян Канер

  
  

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"