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 |
---|---|
|
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. |
|
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. |
|
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 :
|
|
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. |
|
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 . |
|
Utilisé pour notifier les modifications réseau. |
|
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. |
|
Spécifie que tous les types de service sont pris en charge pour un flux. Peut être utilisé uniquement côté expéditeur. |
|
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. |
|
Utilisé pour indiquer le trafic non conformant. |
|
Indique que le contrôle du trafic ne doit pas être appelé dans le sens spécifié. |
|
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.
- 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.
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.
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 |