Struttura FLOWPEC (qos.h)

La struttura FLOWPEC fornisce la qualità dei parametri di servizio al servizio SP RSVP. Ciò consente alle applicazioni con riconoscimento QOS di richiamare, modificare o rimuovere le impostazioni QOS per un determinato flusso. Alcuni membri di FLOWPEC possono essere impostati sui valori predefiniti. Per ulteriori informazioni, vedere la sezione Osservazioni.

Sintassi

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

Members

TokenRate

Specifica la frequenza consentita in base alla quale i dati possono essere trasmessi durante la durata del flusso. Il membro TokenRate è simile ad altri modelli di bucket token visti in tali tecnologie WAN come Inoltro frame, in cui il token è analogo a un credito. Se tali token non vengono usati immediatamente, si accumulano per consentire la trasmissione dei dati fino a un determinato limite periodico (PeakBandwidth, nel caso di Windows 2000 qualità del servizio). L'accumulazione di crediti è tuttavia limitata a un importo specificato (TokenBucketSize). La limitazione dei crediti totali (token) consente di evitare situazioni in cui, ad esempio, i flussi inattivi per qualche tempo inondano la larghezza di banda disponibile con la loro grande quantità di token accumulati. Poiché i flussi possono accumulare crediti di trasmissione nel tempo (al loro valore TokenRate ) solo fino al massimo del tokenBucketSize e perché sono limitati nelle trasmissioni burst al loro PeakBandwidth, il controllo del traffico e l'integrità delle risorse del dispositivo di rete vengono mantenuti. Il controllo del traffico viene mantenuto perché i flussi non possono inviare troppi dati contemporaneamente e l'integrità delle risorse del dispositivo di rete viene mantenuta perché tali dispositivi vengono risparmiati picchi di traffico elevati.

Con questo modello, le applicazioni possono trasmettere dati solo quando sono disponibili crediti sufficienti. Se non sono disponibili crediti sufficienti, l'applicazione deve attendere o eliminare il traffico (in base al valore di QOS_SD_MODE). Pertanto, è importante che le applicazioni basino le richieste TokenRate in base alle aspettative ragionevoli per i requisiti di trasmissione. Ad esempio, nelle applicazioni video , TokenRate è in genere impostato sulla frequenza media di bit dal picco al picco.

Se TokenRate è impostato su QOS_NOT_SPECIFIED solo nel ricevitore, l'unità di trasmissione massima (MTU) viene usata per TokenRate e i limiti della velocità di trasmissione (il modello di bucket del token) non verranno applicati. Pertanto, TokenRate viene espresso in byte al secondo.

Il membro TokenRate non può essere impostato su zero. Né può essere impostato come impostazione predefinita ,ovvero impostata su QOS_NOT_SPECIFIED) in un oggetto FLOWPEC di invio.

TokenBucketSize

La quantità massima di crediti può accumulare una determinata direzione di un flusso, indipendentemente dal tempo, in byte. Nelle applicazioni video , TokenBucketSize probabilmente sarà la dimensione media media più grande. Nelle applicazioni a frequenza costante , TokenBucketSize deve essere impostato per consentire piccole variazioni.

PeakBandwidth

Limite superiore per l'autorizzazione di trasmissione basata sul tempo per un determinato flusso, in byte al secondo. Il membro PeakBandwidth limita i flussi che possono essere accumulati una quantità significativa di crediti di trasmissione o token provenienti da risorse di rete con picchi di dati one-time o ciclici, applicando un limite di trasmissione dati al secondo. Alcuni sistemi intermedi possono sfruttare queste informazioni, causando un'allocazione delle risorse più efficiente.

Latency

Ritardo massimo accettabile tra la trasmissione di un bit dal mittente e la sua ricezione da uno o più ricevitori destinati, in microsecondi. L'interpretazione precisa di questo numero dipende dal livello di garanzia specificato nella richiesta QOS.

DelayVariation

Differenza tra il massimo e il minimo ritardo possibile che un pacchetto avrà esperienza, in microsecondi. Le applicazioni usano DelayVariation per determinare la quantità di spazio del buffer necessaria alla fine del flusso. Queste informazioni sullo spazio del buffer possono essere usate per ripristinare il modello di trasmissione dei dati originale.

ServiceType

Specifica il livello di servizio da negoziare per il flusso. Il membro ServiceType può essere uno dei tipi di servizio definiti seguenti.

Valore Significato
SERVICETYPE_NOTRAFFIC
Indica che nessun traffico verrà trasmesso nella direzione specificata. Nel supporto in grado di duplex, questo valore segnala il software sottostante per configurare solo connessioni unidirectionali. Questo tipo di servizio non è valido per l'API TC.
SERVICETYPE_BESTEFFORT
Non viene eseguita alcuna azione da RSVP SP. Il controllo del traffico crea un flusso BESTEFFORT, tuttavia, e il traffico sul flusso verrà gestito dal controllo del traffico in modo analogo ad altri traffico BESTEFFORT.
SERVICETYPE_CONTROLLEDLOAD
Fornisce un QOS end-to-end che approssima strettamente la qualità della trasmissione fornita dal servizio best-effort, come previsto in condizioni non caricate dai componenti di rete associati lungo il percorso dei dati.

Le applicazioni che usano SERVICETYPE_CONTROLLEDLOAD possono quindi presupponere quanto segue:

  • La rete offrirà una percentuale molto elevata di pacchetti trasmessi ai destinatari previsti. In altre parole, la perdita di pacchetti approssima la frequenza di errore del pacchetto di base del mezzo di trasmissione.
  • Il ritardo di trasmissione per una percentuale molto elevata dei pacchetti recapitati non supererà notevolmente il ritardo minimo di transito riscontrato da qualsiasi pacchetto recapitato correttamente.
SERVICETYPE_GUARANTEED
Garantisce che i datagrammi arrivino entro il tempo di recapito garantito e non vengano eliminati a causa di overflow di coda, purché il traffico del flusso rimanga all'interno dei parametri di traffico specificati. Questo servizio è destinato alle applicazioni che necessitano di una garanzia aziendale che un datagram arriverà non più tardi di un determinato periodo di tempo dopo la trasmissione dalla relativa origine.
SERVICETYPE_QUALITATIVE
Indica che l'applicazione richiede una trasmissione migliore rispetto alla trasmissione BESTEFFORT, ma non può quantificare i requisiti di trasmissione. Le applicazioni che usano SERVICETYPE_QUALITATIVE possono fornire un oggetto criteri di identificatore dell'applicazione. L'oggetto criteri di identificazione dell'applicazione consente ai server criteri nella rete di identificare l'applicazione e di conseguenza assegnare una qualità appropriata del servizio alla richiesta. Per altre informazioni sull'identificazione dell'applicazione, consultare il draft-ietf-rap-rsvp-appid-00.txt IETF Internet Draft o il white paper Microsoft sull'identificazione dell'applicazione. Il controllo traffico tratta i flussi di questo tipo con la stessa priorità del traffico BESTEFFORT nel computer locale. Tuttavia, i programmatori di applicazioni possono ottenere priorità aumentata per tali flussi modificando le impostazioni del livello 2 nel flusso associato usando l'oggetto QOS_TRAFFIC_CLASS QOS.
SERVICETYPE_NETWORK_UNAVAILBLE
Usato per notificare le modifiche alla rete.
SERVICETYPE_NETWORK_CONTROL
Usato solo per la trasmissione di pacchetti di controllo ,ad esempio i messaggi di segnalazione RSVP. Questo ServiceType ha la priorità più alta.
SERVICETYPE_GENERAL_INFORMATION
Specifica che tutti i tipi di servizio sono supportati per un flusso. Può essere usato solo sul lato mittente.
SERVICETYPE_NOCHANGE
Indica che la qualità del servizio nella trasmissione usando questo valore serviceType non viene modificata. SERVICETYPE_NOCHANGE può essere usato quando si richiede una modifica della qualità del servizio solo per una direzione o quando si richiede una modifica solo all'interno dei parametri ProviderSpecific di una specifica QOS e non in SendingFlowspec o ReceivingFlowspec.
SERVICETYPE_NONCONFORMING
Usato per indicare il traffico non conforma.
SERVICE_NO_TRAFFIC_CONTROL
Indica che il controllo del traffico non deve essere richiamato nella direzione specificata.
SERVICE_NO_QOS_SIGNALING
Elimina il segnale RSVP nella direzione specificata.
 

L'elenco seguente identifica la priorità relativa delle impostazioni di ServiceType :

SERVICETYPE_NETWORK_CONTROL

SERVICETYPE_GUARANTEED

SERVICETYPE_CONTROLLED_LOAD

SERVICETYPE_BESTEFFORT

SERVICETYPE_QUALITATIVE

Traffico non conforme

Per un esempio semplice, se un determinato dispositivo di rete era associato a risorse e doveva scegliere tra la trasmissione di un pacchetto da una delle impostazioni di ServiceType precedenti, invierebbe prima un pacchetto di SERVICETYPE_NETWORKCONTROL e se non vi erano pacchetti di tale ServiceType che richiedeva la trasmissione invierebbe un pacchetto di ServiceType SERVICETYPE_GUARANTEED e così via.

MaxSduSize

Specifica le dimensioni massime consentite o usate nel flusso di traffico, in byte.

MinimumPolicedSize

Specifica le dimensioni minime dei pacchetti per cui verrà fornita la qualità richiesta del servizio, in byte. I pacchetti più piccoli di questa dimensione vengono trattati dal controllo del traffico come MinimumPolicedSize. Quando si usa la struttura FLOWPEC in associazione a RSVP, il valore di MinimumPolicedSize non può essere zero; Tuttavia, se si usa la struttura FLOWPEC in particolare con l'API TC, è possibile impostare MinimumPolicedSize su zero.

Commenti

Molti membri della struttura FLOWPEC possono essere impostati su valori predefiniti impostando il membro su QOS_NOT_SPECIFIED. Si noti che i membri che possono essere impostati su valori predefiniti differiscono a seconda che FLOWPEC sia una ricezione FLOWPEC o un invio FLOWPEC.

Esistono alcune considerazioni da tenere presente quando si usa FLOWPEC con il controllo del traffico:

  • TokenRate può essere QOS_NOT_SPECIFIED per SERVICETYPE_NETWORKCONTROL, SERVICETYPE_QUALITATIVE e SERVICETYPE_BESTEFFORT. TokenRate deve essere valido per tutti gli altri valori ServiceType .
  • Se è specificato PeakBandwidth , deve essere maggiore o uguale a TokenRate.
Molte impostazioni possono essere predefinite in una ricezione FLOWPEC ad eccezione di ServiceType, con le considerazioni seguenti:
  • Per un ricevitore del servizio di carico controllato, i valori predefiniti vengono derivati dal TSPEC del mittente.
  • Per un ricevitore del servizio garantito, è necessario specificare ServiceType e TokenRate .
L'elenco seguente specifica i valori applicati quando una ricezione FLOWPEC imposta i valori corrispondenti per impostazione predefinita:

Quando il valore di ServiceType è impostato su SERVICETYPE_GUARANTEED, si applica anche quanto segue:

  • Il valore RATE in RSPEC è impostato sul valore di TokenRate.
  • Il valore DELAYLACKTERM in RSPEC è impostato su DelayVariation, impostato su zero se DelayVariation è impostato su QOS_NOT_SPECIFIED.
  • Per i ricevitori che richiedono SERVICETYPE_GUARANTEED, è necessario specificare TokenRate di ricezione. Questo contrasto con un ricevitore SERVICETYPE_CONTROLLEDLOAD, per il quale è possibile impostare TokenRate su QOS_NOT_SPECIFIED.
In un invio FLOWPEC, tutto può essere predefinito, ad eccezione di ServiceType e TokenRate. L'elenco seguente specifica i valori applicati quando un invio FLOWPEC imposta i valori corrispondenti per impostazione predefinita:

Controllo traffico: Se si usa il controllo traffico, l'oggetto ServiceTypeseguente non è valido. Se non si è certi che si stia lavorando direttamente con Il controllo traffico (e quindi è necessario preoccuparsi del fatto che i seguenti serviceTypesiano applicabili nella situazione), probabilmente non si è:

SERVICE_NO_TRAFFIC_CONTROL
SERVICE_NO_QOS_SIGNALING
SERVICETYPE_GENERAL_INFORMATION
SERVICETYPE_NETWORK_UNAVAILABLE
SERVICETYPE_NOCHANGE
SERVICETYPE_NOTRAFFIC

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione qos.h

Vedi anche

QOS