Структура FLOWSPEC (qos.h)

Структура FLOWSPEC обеспечивает качество параметров обслуживания для поставщика услуг RSVP. Это позволяет приложениям с поддержкой QOS вызывать, изменять или удалять параметры QOS для заданного потока. Для некоторых элементов FLOWSPEC можно задать значения по умолчанию. Дополнительные сведения см. в разделе "Примечания".

Синтаксис

typedef struct _flowspec {
  ULONG       TokenRate;
  ULONG       TokenBucketSize;
  ULONG       PeakBandwidth;
  ULONG       Latency;
  ULONG       DelayVariation;
  SERVICETYPE ServiceType;
  ULONG       MaxSduSize;
  ULONG       MinimumPolicedSize;
} FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;

Члены

TokenRate

Указывает разрешенную скорость передачи данных в течение жизненного срока потока. Элемент TokenRate аналогичен другим моделям контейнеров маркеров, которые используются в таких технологиях глобальной сети, как Frame Relay, в которых маркер аналогичен кредиту. Если такие маркеры не используются немедленно, они начисляются, чтобы обеспечить передачу данных до определенного периодического предела (PeakBandwidth, в случае качества обслуживания Windows 2000). Однако начисление кредитов ограничено указанной суммой (TokenBucketSize). Ограничение общего объема кредитов (токенов) позволяет избежать ситуаций, когда, например, потоки, которые неактивны в течение некоторого времени, заполняют доступную пропускную способность большим количеством накопленных токенов. Так как потоки могут начислять кредиты передачи с течением времени (при значении TokenRate ) только до максимального значения TokenBucketSize и поскольку они ограничены в скорости передачи в PeakBandwidth, управление трафиком и целостность ресурсов сетевого устройства поддерживаются. Управление трафиком поддерживается, так как потоки не могут отправлять слишком много данных одновременно, а целостность ресурсов сетевых устройств поддерживается, так как такие устройства избавлены от высоких пиков трафика.

В этой модели приложения могут передавать данные только при наличии достаточного количества кредитов. Если достаточные кредиты недоступны, приложение должно подождать или отменить трафик (на основе значения QOS_SD_MODE). Поэтому важно, чтобы приложения основывали свои запросы TokenRate на разумных ожиданиях в отношении требований к передаче. Например, в видео-приложениях Для TokenRate обычно устанавливается средняя скорость передачи данных от пикового к пиковой.

Если параметру TokenRate задано значение QOS_NOT_SPECIFIED только на получателе, для TokenRate используется максимальная единица передачи (MTU), а ограничения на скорость передачи (модель контейнера маркеров) не будут введены в действие. Таким образом, TokenRate выражается в байтах в секунду.

Для элемента TokenRate нельзя задать нулевое значение. Он также не может быть задан в качестве значения по умолчанию (т. е. для QOS_NOT_SPECIFIED) в отправке FLOWSPEC.

TokenBucketSize

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

PeakBandwidth

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

Latency

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

DelayVariation

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

ServiceType

Указывает уровень обслуживания для согласования потока. Элемент ServiceType может быть одним из следующих определенных типов служб.

Значение Значение
SERVICETYPE_NOTRAFFIC
Указывает, что трафик не будет передаваться в указанном направлении. На носителе с поддержкой дуплексов это значение сигнализирует базовому программному обеспечению о настройке только однонаправленных подключений. Этот тип службы недопустим для API TC.
SERVICETYPE_BESTEFFORT
Не приводит к никаким действиям, выполняемым поставщиком услуг RSVP. Однако управление трафиком создает поток BESTEFFORT, и трафик в потоке будет обрабатываться с помощью управления трафиком аналогично другому трафику BESTEFFORT.
SERVICETYPE_CONTROLLEDLOAD
Предоставляет сквозную QOS, которая точно соответствует качеству передачи, обеспечиваемой службой best-effort, как и ожидалось в условиях выгрузки из связанных сетевых компонентов вдоль пути данных.

Поэтому приложения, использующие SERVICETYPE_CONTROLLEDLOAD, могут предполагать следующее:

  • Сеть будет доставлять очень большой процент передаваемых пакетов предполагаемым получателям. Иными словами, потеря пакетов будет точно приближена к базовой частоте ошибок пакетов для среды передачи.
  • Задержка передачи для очень большого процента доставленных пакетов не будет значительно превышать минимальную задержку передачи, с которыми сталкивается любой успешно доставленный пакет.
SERVICETYPE_GUARANTEED
Гарантирует, что датаграммы будут поступать в течение гарантированного времени доставки и не будут удалены из-за переполнения очередей при условии, что трафик потока остается в пределах заданных параметров трафика. Эта служба предназначена для приложений, которым требуется твердая гарантия того, что датаграмма поступит не позднее определенного времени после ее передачи источником.
SERVICETYPE_QUALITATIVE
Указывает, что приложение требует лучше передачи, чем BESTEFFORT, но не может количественно определить свои требования к передаче. Приложения, использующие SERVICETYPE_QUALITATIVE, могут предоставлять объект политики идентификатора приложения. Объект политики идентификации приложений позволяет серверам политик в сети идентифицировать приложение и, соответственно, назначать запросу соответствующее качество обслуживания. Дополнительные сведения об идентификации приложений см. в draft-ietf-rap-rsvp-appid-00.txt проекта IETF в Интернете или в техническом документе Майкрософт по идентификации приложений. Управление трафиком обрабатывает потоки этого типа с тем же приоритетом, что и трафик BESTEFFORT на локальном компьютере. Однако программисты приложений могут получить увеличенный приоритет для таких потоков, изменив параметры уровня 2 в связанном потоке с помощью объекта QOS_TRAFFIC_CLASS QOS.
SERVICETYPE_NETWORK_UNAVAILBLE
Используется для уведомления об изменениях в сети.
SERVICETYPE_NETWORK_CONTROL
Используется только для передачи контрольных пакетов (например, сигнальных сообщений RSVP). Этот тип службы имеет наивысший приоритет.
SERVICETYPE_GENERAL_INFORMATION
Указывает, что поток поддерживает все типы служб. Может использоваться только на стороне отправителя.
SERVICETYPE_NOCHANGE
Указывает, что качество обслуживания при передаче с использованием этого значения ServiceType не изменяется. SERVICETYPE_NOCHANGE можно использовать при запросе изменения качества обслуживания только для одного направления или при запросе изменения только в параметрах ProviderSpecific спецификации QOS, а не в SendingFlowspec или ReceivingFlowspec.
SERVICETYPE_NONCONFORMING
Используется для обозначения несоверяющего трафика.
SERVICE_NO_TRAFFIC_CONTROL
Указывает, что управление трафиком не должно вызываться в указанном направлении.
SERVICE_NO_QOS_SIGNALING
Подавляет передачу сигналов RSVP в указанном направлении.
 

В следующем списке указан относительный приоритет параметров ServiceType :

SERVICETYPE_NETWORK_CONTROL

SERVICETYPE_GUARANTEED

SERVICETYPE_CONTROLLED_LOAD

SERVICETYPE_BESTEFFORT

SERVICETYPE_QUALITATIVE

Несоответствующий трафик

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

MaxSduSize

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

MinimumPolicedSize

Указывает минимальный размер пакета, для которого будет предоставляться запрошенное качество обслуживания, в байтах. Пакеты меньше этого размера обрабатываются управлением трафиком как MinimumPolicedSize. При использовании структуры FLOWSPEC в связи с RSVP значение MinimumPolicedSize не может быть равным нулю; Однако если вы используете структуру FLOWSPEC специально с API TC, можно задать для параметра MinimumPolicedSize значение 0.

Комментарии

Для многих элементов структуры FLOWSPEC можно задать значения по умолчанию, задав для элемента значение QOS_NOT_SPECIFIED. Обратите внимание, что элементы, которым можно задать значения по умолчанию, различаются в зависимости от того, является ли ФУНКЦИЯ FLOWSPECпринимающей или отправляющей FLOWSPEC.

При использовании FLOWSPEC с управлением трафиком следует учитывать несколько аспектов:

  • TokenRate можно QOS_NOT_SPECIFIED для SERVICETYPE_NETWORKCONTROL, SERVICETYPE_QUALITATIVE и SERVICETYPE_BESTEFFORT. TokenRate должен быть допустимым для всех остальных значений ServiceType .
  • Если указан параметр PeakBandwidth , он должен быть больше или равен TokenRate.
Многие параметры могут быть заданы по умолчанию в получающих FLOWSPEC , за исключением ServiceType, с учетом следующих факторов:
  • Для получателя службы управляемой нагрузки значения по умолчанию являются производными от отправителя TSPEC.
  • Для получателя гарантированного обслуживания необходимо указать ServiceType и TokenRate .
В следующем списке указываются значения, которые применяются, когда получающий ОБЪЕКТ FLOWSPEC устанавливает соответствующие значения по умолчанию:

Если для параметра ServiceType задано значение SERVICETYPE_GUARANTEED, применяется следующее:

  • Для параметра RATE в RSPEC задано значение TokenRate.
  • Значение DELAYLACKTERM в RSPEC имеет значение DelayVariation, которое равно нулю, если параметр DelayVariation имеет значение QOS_NOT_SPECIFIED.
  • Для получателей, запрашивающих SERVICETYPE_GUARANTEED, необходимо указать принимающее значение TokenRate . Это контрастирует с приемником SERVICETYPE_CONTROLLEDLOAD, для которого TokenRate может быть задано значение QOS_NOT_SPECIFIED.
В отправляемом FLOWSPEC по умолчанию может быть задано все, кроме ServiceType и TokenRate. В следующем списке указываются значения, которые применяются, когда отправка FLOWSPEC устанавливает соответствующие значения по умолчанию:

Управление трафиком: Следующие значения ServiceTypeнедопустимы при работе с управлением трафиком. Если вы не уверены, работаете ли вы напрямую с управлением трафиком (и поэтому должны быть обеспокоены тем, применимы ли следующие serviceTypeв вашей ситуации), вы, скорее всего, не так:

SERVICE_NO_TRAFFIC_CONTROL
SERVICE_NO_QOS_SIGNALING
SERVICETYPE_GENERAL_INFORMATION
SERVICETYPE_NETWORK_UNAVAILABLE
SERVICETYPE_NOCHANGE
SERVICETYPE_NOTRAFFIC

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть qos.h

См. также раздел

QOS