Structure FLOWSPEC (qos.h)

La structure FLOWSPEC fournit des paramètres de qualité de service au fournisseur de services RSVP. Cela permet aux applications prenant en charge QOS d’appeler, de modifier ou de supprimer des paramètres QOS pour un flux donné. Certains membres de FLOWSPEC peuvent être définis sur des valeurs par défaut. Pour plus d'informations, consultez la section Notes.

Syntaxe

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

Membres

TokenRate

Spécifie la vitesse autorisée à laquelle les données peuvent être transmises pendant toute la durée de vie du flux. Le membre TokenRate est similaire à d’autres modèles de compartiment de jetons vus dans des technologies WAN telles que Frame Relay, dans laquelle le jeton est analogue à un crédit. Si ces jetons ne sont pas utilisés immédiatement, ils s’accumulent pour permettre la transmission de données jusqu’à une certaine limite périodique (PeakBandwidth, dans le cas de la qualité de service Windows 2000). L’accumulation de crédits est toutefois limitée à un montant spécifié (TokenBucketSize). La limitation des crédits totaux (jetons) évite les situations où, par exemple, les flux inactifs pendant un certain temps inondent la bande passante disponible avec leur grande quantité de jetons accumulés. Étant donné que les flux peuvent accumuler des crédits de transmission au fil du temps (à leur valeur TokenRate ) uniquement jusqu’au maximum de leur TokenBucketSize, et qu’ils sont limités dans les transmissions en rafale à leur PeakBandwidth, le contrôle du trafic et l’intégrité des ressources des appareils réseau sont maintenus. Le contrôle du trafic est maintenu, car les flux ne peuvent pas envoyer trop de données en même temps, et l’intégrité des ressources des périphériques réseau est maintenue, car ces appareils sont épargnés par des pics de trafic élevés.

Avec ce modèle, les applications peuvent transmettre des données uniquement lorsque des crédits suffisants sont disponibles. Si suffisamment de crédits ne sont pas disponibles, l’application doit attendre ou ignorer le trafic (en fonction de la valeur de QOS_SD_MODE). Par conséquent, il est important que les applications basent leurs demandes TokenRate sur des attentes raisonnables en matière d’exigences de transmission. Par exemple, dans les applications vidéo, TokenRate est généralement défini sur le débit binaire moyen du pic au pic.

Si TokenRate est défini sur QOS_NOT_SPECIFIED sur le récepteur uniquement, l’unité de transmission maximale (MTU) est utilisée pour TokenRate et les limites du taux de transmission (modèle de compartiment de jetons) ne sont pas appliquées. Ainsi, TokenRate est exprimé en octets par seconde.

Le membre TokenRate ne peut pas être défini sur zéro. Il ne peut pas non plus être défini en tant que valeur par défaut (c’est-à-dire sur QOS_NOT_SPECIFIED) dans un FLOWSPEC d’envoi.

TokenBucketSize

Le montant maximal de crédits dans une direction donnée d’un flux peut s’accumuler, quel que soit le temps, en octets. Dans les applications vidéo, TokenBucketSize sera probablement la plus grande taille d’image moyenne. Dans les applications à débit constant, TokenBucketSize doit être défini pour permettre de petites variations.

PeakBandwidth

Limite supérieure de l’autorisation de transmission basée sur le temps pour un flux donné, en octets par seconde. Le membre PeakBandwidth limite les flux susceptibles d’avoir accumulé une quantité importante de crédits de transmission ou de jetons pour surcharger les ressources réseau avec des rafales de données ponctuelles ou cycliques, en appliquant un plafond de transmission de données par seconde. Certains systèmes intermédiaires peuvent tirer parti de ces informations, ce qui permet une allocation des ressources plus efficace.

Latency

Délai maximal acceptable entre la transmission d’un bit par l’expéditeur et sa réception par un ou plusieurs récepteurs prévus, en microsecondes. L’interprétation précise de ce nombre dépend du niveau de garantie spécifié dans la demande QOS.

DelayVariation

Différence entre le délai maximal et le délai minimal possible qu’un paquet rencontrera, en microsecondes. Les applications utilisent DelayVariation pour déterminer la quantité d’espace tampon nécessaire à la fin de réception du flux. Ces informations d’espace tampon peuvent être utilisées pour restaurer le modèle de transmission de données d’origine.

ServiceType

Spécifie le niveau de service à négocier pour le flux. Le membre ServiceType peut être l’un des types de service définis suivants.

Valeur Signification
SERVICETYPE_NOTRAFFIC
Indique qu’aucun trafic ne sera transmis dans le sens spécifié. Sur les supports compatibles duplex, cette valeur indique au logiciel sous-jacent de configurer uniquement des connexions unidirectionnelles. Ce type de service n’est pas valide pour l’API TC.
SERVICETYPE_BESTEFFORT
Aucune action n’est prise par le fournisseur de services RSVP. Toutefois, le contrôle du trafic crée un flux BESTEFFORT, et le trafic sur le flux sera géré par le contrôle de trafic de la même façon que d’autres trafics BESTEFFORT.
SERVICETYPE_CONTROLLEDLOAD
Fournit un QOS de bout en bout qui se rapproche étroitement de la qualité de transmission fournie par le service de meilleur effort, comme prévu dans des conditions déchargées à partir des composants réseau associés le long du chemin de données.

Les applications qui utilisent SERVICETYPE_CONTROLLEDLOAD peuvent donc supposer ce qui suit :

  • Le réseau fournira un pourcentage très élevé de paquets transmis à ses récepteurs prévus. En d’autres termes, la perte de paquets se rapproche étroitement du taux d’erreur de paquet de base du support de transmission.
  • Le délai de transmission d’un pourcentage très élevé des paquets remis ne dépassera pas considérablement le délai de transit minimal rencontré par tout paquet remis avec succès.
SERVICETYPE_GUARANTEED
Garantit que les datagrammes arriveront dans le délai de livraison garanti et ne seront pas ignorés en raison de dépassements de file d’attente, à condition que le trafic du flux reste dans les paramètres de trafic spécifiés. Ce service est destiné aux applications qui ont besoin d’une garantie ferme qu’un datagramme arrivera au plus tard un certain temps après sa transmission par sa source.
SERVICETYPE_QUALITATIVE
Indique que l’application nécessite mieux que la transmission BESTEFFORT, mais ne peut pas quantifier ses exigences de transmission. Les applications qui utilisent SERVICETYPE_QUALITATIVE peuvent fournir un objet de stratégie d’identificateur d’application. L’objet de stratégie d’identification d’application permet aux serveurs de stratégie sur le réseau d’identifier l’application et, par conséquent, d’attribuer une qualité de service appropriée à la demande. Pour plus d’informations sur l’identification des applications, consultez le draft-ietf-rap-rsvp-appid-00.txt internet de l’IETF ou le livre blanc Microsoft sur l’identification des applications. Le contrôle du trafic traite les flux de ce type avec la même priorité que le trafic BESTEFFORT sur l’ordinateur local. Toutefois, les programmeurs d’applications peuvent obtenir une priorité renforcée pour ces flux en modifiant les paramètres de couche 2 sur le flux associé à l’aide de l’objet QOS QOS_TRAFFIC_CLASS .
SERVICETYPE_NETWORK_UNAVAILBLE
Utilisé pour notifier les modifications réseau.
SERVICETYPE_NETWORK_CONTROL
Utilisé uniquement pour la transmission de paquets de contrôle (tels que les messages de signalisation RSVP). Ce ServiceType a la priorité la plus élevée.
SERVICETYPE_GENERAL_INFORMATION
Spécifie que tous les types de service sont pris en charge pour un flux. Peut être utilisé uniquement côté expéditeur.
SERVICETYPE_NOCHANGE
Indique que la qualité de service dans la transmission à l’aide de cette valeur ServiceType n’est pas modifiée. SERVICETYPE_NOCHANGE peut être utilisé lors de la demande d’une modification de la qualité de service pour une seule direction, ou lors de la demande d’une modification uniquement dans les paramètres ProviderSpecific d’une spécification QOS, et non dans la spécification SendingFlowspec ou ReceiveingFlowspec.
SERVICETYPE_NONCONFORMING
Utilisé pour indiquer le trafic non conformant.
SERVICE_NO_TRAFFIC_CONTROL
Indique que le contrôle du trafic ne doit pas être appelé dans le sens spécifié.
SERVICE_NO_QOS_SIGNALING
Supprime la signalisation RSVP dans le sens spécifié.
 

La liste suivante identifie la priorité relative des paramètres ServiceType :

SERVICETYPE_NETWORK_CONTROL

SERVICETYPE_GUARANTEED

SERVICETYPE_CONTROLLED_LOAD

SERVICETYPE_BESTEFFORT

SERVICETYPE_QUALITATIVE

Trafic non conforme

Pour un exemple simple, si un périphérique réseau donné était limité aux ressources et devait choisir parmi la transmission d’un paquet à partir de l’un des paramètres ServiceType ci-dessus, il envoyait d’abord un paquet de SERVICETYPE_NETWORKCONTROL, et s’il n’y avait pas de paquets de ce ServiceType nécessitant une transmission, il enverrait un paquet de ServiceType SERVICETYPE_GUARANTEED, et ainsi de suite.

MaxSduSize

Spécifie la taille de paquet maximale autorisée ou utilisée dans le flux de trafic, en octets.

MinimumPolicedSize

Spécifie la taille de paquet minimale pour laquelle la qualité de service demandée sera fournie, en octets. Les paquets inférieurs à cette taille sont traités par le contrôle de trafic comme MinimumPolicedSize. Lors de l’utilisation de la structure FLOWSPEC en association avec RSVP, la valeur de MinimumPolicedSize ne peut pas être égale à zéro ; Toutefois, si vous utilisez la structure FLOWSPEC spécifiquement avec l’API TC, vous pouvez définir MinimumPolicedSize sur zéro.

Remarques

De nombreux membres de la structure FLOWSPEC peuvent être définis sur des valeurs par défaut en définissant le membre sur QOS_NOT_SPECIFIED. Notez que les membres qui peuvent être définis sur des valeurs par défaut diffèrent selon que le FLOWSPEC est un FLOWSPEC de réception ou un FLOWSPEC d’envoi.

Vous devez garder à l’esprit quelques considérations lors de l’utilisation de FLOWSPEC avec le contrôle du trafic :

  • TokenRate peut être QOS_NOT_SPECIFIED pour SERVICETYPE_NETWORKCONTROL, SERVICETYPE_QUALITATIVE et SERVICETYPE_BESTEFFORT. TokenRate doit être valide pour toutes les autres valeurs ServiceType .
  • Si PeakBandwidth est spécifié, il doit être supérieur ou égal à TokenRate.
De nombreux paramètres peuvent être définis par défaut dans un FLOWSPEC de réception, à l’exception de ServiceType, avec les considérations suivantes :
  • Pour un récepteur de service de charge contrôlée, les valeurs par défaut sont dérivées de l’expéditeur TSPEC.
  • Pour un récepteur de service garanti, ServiceType et TokenRate doivent être spécifiés.
La liste suivante spécifie les valeurs qui sont appliquées lorsqu’un FLOWSPEC récepteur définit les valeurs correspondantes sur la valeur par défaut :

Lorsque la valeur de ServiceType est définie sur SERVICETYPE_GUARANTEED, les conditions suivantes s’appliquent également :

  • La valeur RATE dans RSPEC est définie sur la valeur TokenRate.
  • La valeur DELAYSLACKTERM dans RSPEC est définie sur DelayVariation, qui est définie sur zéro si DelayVariation a la valeur QOS_NOT_SPECIFIED.
  • Pour les récepteurs qui demandent SERVICETYPE_GUARANTEED, la valeur TokenRate de réception doit être spécifiée. Cela contraste avec un récepteur SERVICETYPE_CONTROLLEDLOAD, pour lequel TokenRate peut être défini sur QOS_NOT_SPECIFIED.
Dans un FLOWSPEC d’envoi, tout peut être défini par défaut à l’exception de ServiceType et TokenRate. La liste suivante spécifie les valeurs qui sont appliquées lorsqu’un flowSPEC d’envoi définit les valeurs correspondantes sur la valeur par défaut :

Contrôle du trafic : Les ServiceTypesuivants ne sont pas valides lors de l’utilisation spécifique de Traffic Control. Si vous ne savez pas si vous travaillez directement avec Traffic Control (et que vous devez donc vous soucier de savoir si les ServiceTypesuivants sont applicables dans votre situation), vous ne l’êtes probablement pas :

SERVICE_NO_TRAFFIC_CONTROL
SERVICE_NO_QOS_SIGNALING
SERVICETYPE_GENERAL_INFORMATION
SERVICETYPE_NETWORK_UNAVAILABLE
SERVICETYPE_NOCHANGE
SERVICETYPE_NOTRAFFIC

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête qos.h

Voir aussi

QOS