FLOWSPEC 구조체(qos.h)
FLOWSPEC 구조는 RSVP SP에 서비스 매개 변수의 품질을 제공합니다. 이를 통해 QOS 인식 애플리케이션은 지정된 흐름에 대한 QOS 설정을 호출, 수정 또는 제거할 수 있습니다. FLOWSPEC의 일부 멤버를 기본값으로 설정할 수 있습니다. 자세한 내용은 설명 부분을 참조하십시오.
구문
typedef struct _flowspec {
ULONG TokenRate;
ULONG TokenBucketSize;
ULONG PeakBandwidth;
ULONG Latency;
ULONG DelayVariation;
SERVICETYPE ServiceType;
ULONG MaxSduSize;
ULONG MinimumPolicedSize;
} FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
멤버
TokenRate
흐름의 수명 동안 데이터를 전송할 수 있는 허용되는 속도를 지정합니다. TokenRate 멤버는 토큰이 크레딧과 유사한 Frame Relay와 같은 WAN 기술에서 볼 수 있는 다른 토큰 버킷 모델과 유사합니다. 이러한 토큰을 즉시 사용하지 않는 경우 특정 주기적 제한(Windows 2000 서비스 품질의 경우 PeakBandwidth)까지 데이터 전송을 허용하기 위해 발생합니다. 그러나 크레딧의 증가는 지정된 금액(TokenBucketSize)으로 제한됩니다. 총 크레딧(토큰)을 제한하면 예를 들어 일정 시간 동안 비활성 상태인 흐름이 사용 가능한 대역폭에 대량의 누적 토큰으로 넘쳐나는 상황을 방지할 수 있습니다. 흐름은 시간이 지남에 따라 TokenBucketSize의 최대값 까지만 전송 크레딧을 누적할 수 있으며 PeakBandwidth로의 버스트 전송이 제한되기 때문에 트래픽 제어 및 네트워크 디바이스 리소스 무결성이 유지됩니다. 흐름이 한 번에 너무 많은 데이터를 보낼 수 없고, 이러한 디바이스가 높은 트래픽 버스트를 절약하기 때문에 네트워크 디바이스 리소스 무결성이 유지되므로 트래픽 제어가 유지됩니다.
이 모델을 사용하면 충분한 크레딧을 사용할 수 있는 경우에만 애플리케이션에서 데이터를 전송할 수 있습니다. 충분한 크레딧을 사용할 수 없는 경우 애플리케이션은 트래픽을 기다리거나 삭제해야 합니다( QOS_SD_MODE 값에 따라). 따라서 애플리케이션은 전송 요구 사항에 대한 적절한 기대치에 따라 TokenRate 요청을 기반으로 하는 것이 중요합니다. 예를 들어 비디오 애플리케이션에서 TokenRate 는 일반적으로 피크에서 최고까지의 평균 비트 전송률로 설정됩니다.
TokenRate가 수신기에서만 QOS_NOT_SPECIFIED 설정되면 TokenRate에 MTU(최대 전송 단위)가 사용되며 전송 속도(토큰 버킷 모델)에 대한 제한이 적용되지 않습니다. 따라서 TokenRate 는 초당 바이트로 표현됩니다.
TokenRate 멤버를 0으로 설정할 수 없습니다. 또한 보내는 FLOWSPEC에서 기본값(즉, QOS_NOT_SPECIFIED 설정)으로 설정할 수 없습니다.
TokenBucketSize
흐름의 지정된 방향이 시간에 관계없이 바이트 단위로 누적할 수 있는 최대 크레딧 양입니다. 비디오 애플리케이션에서 TokenBucketSize 는 가장 큰 평균 프레임 크기일 수 있습니다. 일정 비율 애플리케이션에서는 작은 변형을 허용하도록 TokenBucketSize 를 설정해야 합니다.
PeakBandwidth
지정된 흐름에 대한 시간 기반 전송 권한의 상한(초당 바이트)입니다. PeakBandwidth 멤버는 초당 데이터 전송 한도를 적용하여 상당한 양의 전송 크레딧 또는 일회성 또는 주기적 데이터 버스트로 네트워크 리소스에 과부하가 걸리는 토큰을 발생시킨 흐름을 제한합니다. 일부 중간 시스템은 이 정보를 활용하여 리소스를 보다 효율적으로 할당할 수 있습니다.
Latency
발신자에 의한 비트 전송과 하나 이상의 의도된 수신자에 의한 수신 사이의 최대 허용 지연(마이크로초)입니다. 이 수의 정확한 해석은 QOS 요청에 지정된 보증 수준에 따라 달라집니다.
DelayVariation
패킷에서 발생할 수 있는 최대 지연과 최소 지연 사이의 차이(마이크로초)입니다. 애플리케이션은 DelayVariation 을 사용하여 흐름의 수신 끝에 필요한 버퍼 공간의 양을 결정합니다. 이 버퍼 공간 정보를 사용하여 원래 데이터 전송 패턴을 복원할 수 있습니다.
ServiceType
흐름에 대해 협상할 서비스 수준을 지정합니다. ServiceType 멤버는 다음과 같은 정의된 서비스 유형 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
지정된 방향으로 트래픽이 전송되지 않음을 나타냅니다. 이중 지원 미디어에서 이 값은 기본 소프트웨어가 단방향 연결만 설정하도록 신호를 보냅니다. 이 서비스 유형은 TC API에 유효하지 않습니다. |
|
RSVP SP에서 수행한 작업이 없습니다. 그러나 트래픽 제어는 BESTEFFORT 흐름을 만들며 흐름의 트래픽은 다른 BESTEFFORT 트래픽과 유사하게 트래픽 제어에 의해 처리됩니다. |
|
데이터 경로를 따라 연결된 네트워크 구성 요소의 언로드된 조건에서 예상대로 최상의 서비스에서 제공하는 전송 품질과 거의 유사하게 근접한 엔드 투 엔드 QOS를 제공합니다.
따라서 SERVICETYPE_CONTROLLEDLOAD 사용하는 애플리케이션은 다음을 가정할 수 있습니다.
|
|
흐름의 트래픽이 지정된 트래픽 매개 변수 내에 유지되는 경우 데이터그램이 보장된 배달 시간 내에 도착하고 큐 오버플로로 인해 삭제되지 않도록 보장합니다. 이 서비스는 데이터그램이 원본에서 전송된 후 특정 시간까지 도착한다는 확고한 보장이 필요한 애플리케이션을 위한 것입니다. |
|
애플리케이션이 BESTEFFORT 전송보다 더 잘 필요하지만 전송 요구 사항을 정량화할 수 없음을 나타냅니다. SERVICETYPE_QUALITATIVE 사용하는 애플리케이션은 애플리케이션 식별자 정책 개체를 제공할 수 있습니다. 애플리케이션 식별 정책 개체를 사용하면 네트워크의 정책 서버가 애플리케이션을 식별하고 그에 따라 요청에 적절한 서비스 품질을 할당할 수 있습니다. 애플리케이션 식별에 대한 자세한 내용은 IETF 인터넷 초안 draft-ietf-rap-rsvp-appid-00.txt 또는 애플리케이션 식별에 대한 Microsoft 백서를 참조하세요. 트래픽 제어는 이 유형의 흐름을 로컬 컴퓨터의 BESTEFFORT 트래픽과 동일한 우선 순위로 처리합니다. 그러나 애플리케이션 프로그래머는 QOS_TRAFFIC_CLASS QOS 개체를 사용하여 연결된 흐름에서 계층 2 설정을 수정하여 이러한 흐름에 대한 우선 순위를 높일 수 있습니다. |
|
네트워크 변경 내용을 알리는 데 사용됩니다. |
|
제어 패킷(예: RSVP 신호 메시지)의 전송에만 사용됩니다. 이 ServiceType 의 우선 순위가 가장 높습니다. |
|
흐름에 대해 모든 서비스 유형이 지원되도록 지정합니다. 보낸 사람 쪽에서만 사용할 수 있습니다. |
|
이 ServiceType 값을 사용하는 전송의 서비스 품질이 변경되지 않음을 나타냅니다. SERVICETYPE_NOCHANGE 한 방향에 대해서만 서비스 품질 변경을 요청하거나 SendFlowspec 또는 ReceivingFlowspec이 아닌 QOS 사양의 ProviderSpecific 매개 변수 내에서만 변경을 요청할 때 사용할 수 있습니다. |
|
형식이 잘못된 트래픽을 나타내는 데 사용됩니다. |
|
지정된 방향으로 트래픽 제어를 호출해서는 안 됨을 나타냅니다. |
|
지정된 방향으로 RSVP 신호를 표시하지 않습니다. |
다음 목록에서는 ServiceType 설정의 상대적 우선 순위를 식별합니다.
SERVICETYPE_NETWORK_CONTROL
SERVICETYPE_GUARANTEED
SERVICETYPE_CONTROLLED_LOAD
SERVICETYPE_BESTEFFORT
SERVICETYPE_QUALITATIVE
비규격 트래픽
간단한 예제의 경우 지정된 네트워크 디바이스가 리소스에 바인딩되어 있고 위의 ServiceType 설정 중 하나에서 패킷을 전송하는 중에서 선택해야 하는 경우 먼저 SERVICETYPE_NETWORKCONTROL 패킷을 보내고 전송을 요구하는 ServiceType 패킷이 없는 경우 ServiceType SERVICETYPE_GUARANTEED 패킷을 보냅니다.
MaxSduSize
트래픽 흐름에서 허용되거나 사용되는 최대 패킷 크기(바이트)를 지정합니다.
MinimumPolicedSize
요청된 서비스 품질이 제공될 최소 패킷 크기(바이트)를 지정합니다. 이 크기보다 작은 패킷은 트래픽 제어에서 MinimumPolicedSize로 처리됩니다. RSVP와 관련하여 FLOWSPEC 구조를 사용하는 경우 MinimumPolicedSize 값은 0일 수 없습니다. 그러나 특히 TC API와 함께 FLOWSPEC 구조를 사용하는 경우 MinimumPolicedSize를 0으로 설정할 수 있습니다.
설명
FLOWSPEC 구조의 많은 멤버는 멤버를 QOS_NOT_SPECIFIED 설정하여 기본값으로 설정할 수 있습니다. 기본값으로 설정할 수 있는 멤버는 FLOWSPEC가 수신 FLOWSPEC인지 또는 보내는 FLOWSPEC인지에 따라 다릅니다.
트래픽 제어와 함께 FLOWSPEC 를 사용할 때 유의해야 할 몇 가지 고려 사항이 있습니다.
- TokenRate 는 SERVICETYPE_NETWORKCONTROL, SERVICETYPE_QUALITATIVE 및 SERVICETYPE_BESTEFFORT 대해 QOS_NOT_SPECIFIED 수 있습니다. TokenRate 는 다른 모든 ServiceType 값에 대해 유효해야 합니다.
- PeakBandwidth를 지정하는 경우 TokenRate보다 크거나 같아야 합니다.
- 제어된 Load Service 수신기의 경우 기본값은 보낸 사람 TSPEC에서 파생됩니다.
- 보장된 서비스 수신기의 경우 ServiceType 및 TokenRate를 지정해야 합니다.
ServiceType 값이 SERVICETYPE_GUARANTEED 설정되면 다음도 적용됩니다.
- RSPEC의 RATE 값은 TokenRate 값으로 설정됩니다.
- RSPEC의 DELAYSLACKTERM 값은 DelayVariation으로 설정되며 DelayVariation이 QOS_NOT_SPECIFIED 설정된 경우 0으로 설정됩니다.
- SERVICETYPE_GUARANTEED 요청하는 수신자의 경우 수신 TokenRate 를 지정해야 합니다. 이는 TokenRate 가 QOS_NOT_SPECIFIED 설정될 수 있는 SERVICETYPE_CONTROLLEDLOAD 수신기와 대조됩니다.
트래픽 제어: 다음 ServiceType은 트래픽 제어를 사용하여 특별히 작업할 때 유효하지 않습니다. Traffic Control에서 직접 작업하고 있는지 확실하지 않은 경우(따라서 다음 ServiceType이 해당 상황에서 적용 가능한지 여부에 대해 염려해야 하는 경우) 다음과 같은 경우에는 그렇지 않을 수 있습니다.
- SERVICE_NO_TRAFFIC_CONTROL
- SERVICE_NO_QOS_SIGNALING
- SERVICETYPE_GENERAL_INFORMATION
- SERVICETYPE_NETWORK_UNAVAILABLE
- SERVICETYPE_NOCHANGE
- SERVICETYPE_NOTRAFFIC
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | qos.h |