Estructura FLOWSPEC (qos.h)
La estructura FLOWSPEC proporciona parámetros de calidad de servicio al SP RSVP. Esto permite que las aplicaciones compatibles con QOS invoquen, modifiquen o quiten la configuración de QOS para un flujo determinado. Algunos miembros de FLOWSPEC se pueden establecer en valores predeterminados. Vea Comentarios para obtener más información.
Sintaxis
typedef struct _flowspec {
ULONG TokenRate;
ULONG TokenBucketSize;
ULONG PeakBandwidth;
ULONG Latency;
ULONG DelayVariation;
SERVICETYPE ServiceType;
ULONG MaxSduSize;
ULONG MinimumPolicedSize;
} FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
Miembros
TokenRate
Especifica la velocidad permitida a la que se pueden transmitir los datos durante la vida útil del flujo. El miembro TokenRate es similar a otros modelos de cubos de tokens que se ven en tecnologías WAN como Frame Relay, en las que el token es análogo a un crédito. Si estos tokens no se usan inmediatamente, se acumulan para permitir la transmisión de datos hasta un determinado límite periódico (PeakBandwidth, en el caso de la calidad de servicio de Windows 2000). Sin embargo, la acumulación de créditos está limitada a una cantidad especificada (TokenBucketSize). Limitar los créditos totales (tokens) evita situaciones en las que, por ejemplo, los flujos que están inactivos durante algún tiempo inundan el ancho de banda disponible con su gran cantidad de tokens acumulados. Dado que los flujos pueden acumular créditos de transmisión a lo largo del tiempo (en su valor de TokenRate ) solo hasta el máximo de su TokenBucketSize, y porque están limitados en transmisiones de ráfaga a su PeakBandwidth, se mantienen el control de tráfico y la integridad de los recursos del dispositivo de red. El control de tráfico se mantiene porque los flujos no pueden enviar demasiados datos a la vez y se mantiene la integridad de los recursos del dispositivo de red porque estos dispositivos están libres de ráfagas de tráfico elevadas.
Con este modelo, las aplicaciones solo pueden transmitir datos cuando haya créditos suficientes disponibles. Si no hay suficientes créditos disponibles, la aplicación debe esperar o descartar el tráfico (en función del valor de QOS_SD_MODE). Por lo tanto, es importante que las aplicaciones basen sus solicitudes de TokenRate en expectativas razonables para los requisitos de transmisión. Por ejemplo, en las aplicaciones de vídeo, TokenRate se establece normalmente en la velocidad de bits media de pico a máximo.
Si TokenRate se establece en QOS_NOT_SPECIFIED solo en el receptor, la unidad de transmisión máxima (MTU) se usa para TokenRate y los límites de la velocidad de transmisión (el modelo de cubo de tokens) no se aplicarán. Por lo tanto, TokenRate se expresa en bytes por segundo.
El miembro TokenRate no se puede establecer en cero. Tampoco se puede establecer como valor predeterminado (es decir, establecido en QOS_NOT_SPECIFIED) en un FLOWSPEC de envío.
TokenBucketSize
La cantidad máxima de créditos que puede acumular una dirección determinada de un flujo, independientemente del tiempo, en bytes. En las aplicaciones de vídeo, TokenBucketSize probablemente será el tamaño medio de fotograma más grande. En las aplicaciones de frecuencia constante, TokenBucketSize debe establecerse para permitir pequeñas variaciones.
PeakBandwidth
Límite superior del permiso de transmisión basado en tiempo para un flujo determinado, en bytes por segundo. El miembro PeakBandwidth restringe los flujos que pueden haber acumulado una cantidad significativa de créditos de transmisión o tokens de sobrecargar los recursos de red con ráfagas de datos cíclicas o únicas, aplicando un límite máximo de transmisión de datos por segundo. Algunos sistemas intermedios pueden aprovechar esta información, lo que resulta en una asignación de recursos más eficaz.
Latency
Retraso máximo aceptable entre la transmisión de un bit por el remitente y su recepción por uno o varios receptores previstos, en microsegundos. La interpretación precisa de este número depende del nivel de garantía especificado en la solicitud de QOS.
DelayVariation
Diferencia entre el retraso máximo y mínimo posible que experimentará un paquete, en microsegundos. Las aplicaciones usan DelayVariation para determinar la cantidad de espacio de búfer necesario en el extremo receptor del flujo. Esta información de espacio de búfer se puede usar para restaurar el patrón de transmisión de datos original.
ServiceType
Especifica el nivel de servicio que se va a negociar para el flujo. El miembro ServiceType puede ser uno de los siguientes tipos de servicio definidos.
Valor | Significado |
---|---|
|
Indica que no se transmitirá ningún tráfico en la dirección especificada. En los medios compatibles con dúplex, este valor indica al software subyacente que configure solo conexiones unidireccionales. Este tipo de servicio no es válido para la API tc. |
|
No se produce ninguna acción realizada por el SP RSVP. El control de tráfico crea un flujo BESTEFFORT, pero el tráfico en el flujo se controlará mediante el control de tráfico de forma similar a otro tráfico BESTEFFORT. |
|
Proporciona un QOS de un extremo a otro que aproxima estrechamente la calidad de transmisión proporcionada por el servicio de mejor esfuerzo, según lo previsto en condiciones descargadas de los componentes de red asociados a lo largo de la ruta de acceso de datos.
Por lo tanto, las aplicaciones que usan SERVICETYPE_CONTROLLEDLOAD pueden suponer lo siguiente:
|
|
Garantiza que los datagramas lleguen dentro del tiempo de entrega garantizado y no se descartarán debido a desbordamientos de cola, siempre que el tráfico del flujo permanezca dentro de sus parámetros de tráfico especificados. Este servicio está pensado para aplicaciones que necesitan una garantía firme de que un datagrama llegará más tarde de un tiempo determinado después de que se transmita por su origen. |
|
Indica que la aplicación requiere mejor que la transmisión BESTEFFORT, pero no puede cuantificar sus requisitos de transmisión. Las aplicaciones que usan SERVICETYPE_QUALITATIVE pueden proporcionar un objeto de directiva de identificador de aplicación. El objeto de directiva de identificación de la aplicación permite a los servidores de directivas de la red identificar la aplicación y, en consecuencia, asignar una calidad de servicio adecuada a la solicitud. Para obtener más información sobre la identificación de la aplicación, consulte el borrador de Internet de IETF draft-ietf-rap-rsvp-appid-00.txt o las notas del producto de Microsoft sobre identificación de aplicaciones. El control de tráfico trata los flujos de este tipo con la misma prioridad que el tráfico BESTEFFORT en el equipo local. Sin embargo, los programadores de aplicaciones pueden aumentar la prioridad de estos flujos modificando la configuración de la capa 2 en el flujo asociado mediante el objeto QOS de QOS_TRAFFIC_CLASS . |
|
Se usa para notificar los cambios de red. |
|
Se usa solo para la transmisión de paquetes de control (como mensajes de señalización RSVP). Este ServiceType tiene la prioridad más alta. |
|
Especifica que se admiten todos los tipos de servicio para un flujo. Solo se puede usar en el lado remitente. |
|
Indica que no se cambia la calidad del servicio en la transmisión mediante este valor ServiceType . SERVICETYPE_NOCHANGE se pueden usar al solicitar un cambio en la calidad del servicio solo para una dirección, o al solicitar un cambio solo dentro de los parámetros ProviderSpecific de una especificación de QOS, y no en SendFlowspec o ReceiveingFlowspec. |
|
Se usa para indicar el tráfico no compatible. |
|
Indica que el control de tráfico no se debe invocar en la dirección especificada. |
|
Suprime la señalización RSVP en la dirección especificada. |
En la lista siguiente se identifica la prioridad relativa de la configuración de ServiceType :
SERVICETYPE_NETWORK_CONTROL
SERVICETYPE_GUARANTEED
SERVICETYPE_CONTROLLED_LOAD
SERVICETYPE_BESTEFFORT
SERVICETYPE_QUALITATIVE
Tráfico no conforme
Para obtener un ejemplo sencillo, si un dispositivo de red determinado estuviera enlazado a recursos y tuviera que elegir entre transmitir un paquete de una de las configuraciones de ServiceType anteriores, primero enviaría un paquete de SERVICETYPE_NETWORKCONTROL y, si no hubiera paquetes de ese ServiceType que requiera transmisión, enviaría un paquete de ServiceType SERVICETYPE_GUARANTEED, etc.
MaxSduSize
Especifica el tamaño máximo de paquete permitido o utilizado en el flujo de tráfico, en bytes.
MinimumPolicedSize
Especifica el tamaño mínimo del paquete para el que se proporcionará la calidad de servicio solicitada, en bytes. Los paquetes menores que este tamaño se tratan mediante el control de tráfico como MinimumPolicedSize. Cuando se usa la estructura FLOWSPEC en asociación con RSVP, el valor de MinimumPolicedSize no puede ser cero; Sin embargo, si usa la estructura FLOWSPEC específicamente con la API tc, puede establecer MinimumPolicedSize en cero.
Comentarios
Muchos miembros de la estructura FLOWSPEC se pueden establecer en valores predeterminados estableciendo el miembro en QOS_NOT_SPECIFIED. Tenga en cuenta que los miembros que se pueden establecer en valores predeterminados difieren en función de si FLOWSPEC es un FLOWSPEC receptor o un FLOWSPEC de envío.
Hay algunas consideraciones que debe tener en cuenta al usar FLOWSPEC con control de tráfico:
- TokenRate puede ser QOS_NOT_SPECIFIED para SERVICETYPE_NETWORKCONTROL, SERVICETYPE_QUALITATIVE y SERVICETYPE_BESTEFFORT. TokenRate debe ser válido para todos los demás valores de ServiceType .
- Si se especifica PeakBandwidth , debe ser mayor o igual que TokenRate.
- Para un receptor del servicio de carga controlada, los valores predeterminados se derivan del TSPEC del remitente.
- Para un receptor de servicio garantizado, se debe especificar ServiceType y TokenRate .
Cuando el valor de ServiceType se establece en SERVICETYPE_GUARANTEED, también se aplica lo siguiente:
- El valor RATE de RSPEC se establece en el valor de TokenRate.
- El valor DELAYLACKTERM de RSPEC se establece en DelayVariation, que se establece en cero si DelayVariation está establecido en QOS_NOT_SPECIFIED.
- Para los receptores que solicitan SERVICETYPE_GUARANTEED, se debe especificar tokenRate receptor. Esto contrasta con un receptor de SERVICETYPE_CONTROLLEDLOAD, para el que Se puede establecer TokenRate en QOS_NOT_SPECIFIED.
Control de tráfico: Los siguientes ServiceTypes no son válidos cuando se trabaja específicamente con Traffic Control. Si no está seguro de si está trabajando directamente con el Control de tráfico (y, por lo tanto, debe preocuparse por si los siguientes ServiceTypes son aplicables en su situación), probablemente no lo sea:
- SERVICE_NO_TRAFFIC_CONTROL
- SERVICE_NO_QOS_SIGNALING
- SERVICETYPE_GENERAL_INFORMATION
- SERVICETYPE_NETWORK_UNAVAILABLE
- SERVICETYPE_NOCHANGE
- SERVICETYPE_NOTRAFFIC
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | qos.h |