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
SERVICETYPE_NOTRAFFIC
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.
SERVICETYPE_BESTEFFORT
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.
SERVICETYPE_CONTROLLEDLOAD
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:

  • La red entregará un porcentaje muy alto de paquetes transmitidos a sus receptores previstos. En otras palabras, la pérdida de paquetes se aproximará estrechamente a la tasa básica de errores de paquetes del medio de transmisión.
  • El retraso de transmisión para un porcentaje muy alto de los paquetes entregados no superará en gran medida el retraso mínimo de tránsito experimentado por cualquier paquete entregado correctamente.
SERVICETYPE_GUARANTEED
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.
SERVICETYPE_QUALITATIVE
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 .
SERVICETYPE_NETWORK_UNAVAILBLE
Se usa para notificar los cambios de red.
SERVICETYPE_NETWORK_CONTROL
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.
SERVICETYPE_GENERAL_INFORMATION
Especifica que se admiten todos los tipos de servicio para un flujo. Solo se puede usar en el lado remitente.
SERVICETYPE_NOCHANGE
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.
SERVICETYPE_NONCONFORMING
Se usa para indicar el tráfico no compatible.
SERVICE_NO_TRAFFIC_CONTROL
Indica que el control de tráfico no se debe invocar en la dirección especificada.
SERVICE_NO_QOS_SIGNALING
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.
Muchas opciones de configuración se pueden establecer de forma predeterminada en una instancia de FLOWSPEC receptora excepto ServiceType, con las siguientes consideraciones:
  • 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 .
En la lista siguiente se especifican los valores que se aplican cuando un FLOWSPEC receptor establece los valores correspondientes en el valor predeterminado:

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.
En un flowSPEC de envío, todo se puede establecer de forma predeterminada, excepto ServiceType y TokenRate. En la lista siguiente se especifican los valores que se aplican cuando flowSPEC de envío establece los valores correspondientes en el valor predeterminado:

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

Consulte también

QOS