共用方式為


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 成員類似於這類 WAN 技術中看到的其他令牌貯體模型,例如 Frame Relay,其中令牌類似於點數。 如果未立即使用這類令牌,則會在 Windows 2000 服務品質) 的情況下,累算為允許數據傳輸至特定定期限制 (PeakBandwidth。 不過,點數的累算限制為指定數量, (TokenBucketSize) 。 限制令牌的總點數 (令牌) 避免發生的情況,例如,有一段時間非作用中的流程會用到大量累算令牌的可用頻寬。 由於流程可能會在其 TokenRate 值 (累算傳輸點數,) 其 TokenBucketSize 上限,而且因為流量會受到尖峰傳輸至 其 PeakBandwidth 的限制,因此會維護流量控制和網路裝置資源完整性。 流量控制 是維護的,因為流量無法一次傳送太多數據,而且會維護網路裝置資源完整性,因為這類裝置會備援高流量高載。

使用此模型時,應用程式只能在有足夠的點數可用時傳輸數據。 如果沒有足夠的點數可用,應用程式必須根據QOS_SD_MODE) 的值等候或捨棄流量 (。 因此,應用程式必須以其 TokenRate 要求為基礎,以合理的傳輸需求預期為基礎。 例如,在影片應用程式中, TokenRate 通常會設定為從尖峰到尖峰的平均比特率。

如果 TokenRate 設定為僅QOS_NOT_SPECIFIED接收者,則會使用 MTU) 的最大傳輸單位 (MTU) ,且令牌貯體) 模型 (傳輸速率的限制將不會生效。 因此, TokenRate 會以每秒位元組表示。

TokenRate 成員無法設定為零。 也無法將它設定為預設 (,也就是在傳送 的 FLOWSPEC 中設定為 QOS_NOT_SPECIFIED) 。

TokenBucketSize

指定流程方向的點數上限可能會累算,而不論時間為何,以位元組為單位。 在影片應用程式中, TokenBucketSize 可能是最大的平均畫面大小。 在固定速率應用程式中, TokenBucketSize 應該設定為允許小型變化。

PeakBandwidth

指定流程的時間型傳輸許可權上限,以每秒位元組為單位。 PeakBandwidth 成員會藉由強制執行每秒數據傳輸上限,來限制可能累積大量傳輸點數的流程,或透過一次性或循環數據高載來過度負擔網路資源的令牌。 某些中繼系統可以利用這項資訊,進而產生更有效率的資源配置。

Latency

傳送者傳輸位和接收端之間可接受的最大延遲,以微秒為單位。 此數位的精確解譯取決於 QOS 要求中指定的保證層級。

DelayVariation

封包可能會經歷的最大和最小延遲之間的差異,以毫秒為單位。 應用程式會使用 DelayVariation 來判斷接收流程結束時所需的緩衝區空間量。 此緩衝區空間資訊可用來還原原始數據傳輸模式。

ServiceType

指定要交涉流程的服務層級。 ServiceType 成員可以是下列其中一個已定義的服務類型。

意義
SERVICETYPE_NOTRAFFIC
表示不會以指定的方向傳輸任何流量。 在支援雙工的媒體上,此值會向基礎軟體發出訊號,只設定單向連線。 此服務類型對TC API 無效。
SERVICETYPE_BESTEFFORT
導致 RSVP SP 未採取任何動作。 不過,流量控制確實會建立 BESTEFFORT 流程,而流量上的流量將會由流量控制處理,類似於其他 BESTEFFORT 流量。
SERVICETYPE_CONTROLLEDLOAD
提供端對端 QOS,此 QOS 會非常接近最佳做法服務所提供的傳輸品質,如預期般,在數據路徑上從相關聯的網路元件卸除的狀況下。

因此,使用 SERVICETYPE_CONTROLLEDLOAD 的應用程式可能會假設下列事項:

  • 網路會將傳輸的封包百分比傳送至其預定接收者。 換句話說,封包遺失會接近傳輸媒體的基本封包錯誤率。
  • 傳遞封包百分比非常高的傳輸延遲,不會大幅超過任何成功傳遞封包所經歷的最小傳輸延遲。
SERVICETYPE_GUARANTEED
保證數據報會在保證的傳遞時間內抵達,而且不會因為佇列溢位而捨棄,前提是流程的流量會保留在其指定的流量參數內。 此服務適用於需要公司保證數據報不會晚於來源傳輸之後的特定時間送達的應用程式。
SERVICETYPE_QUALITATIVE
表示應用程式需要優於 BESTEFFORT 傳輸,但無法量化其傳輸需求。 使用 SERVICETYPE_QUALITATIVE的應用程式可以提供應用程式標識碼原則物件。 應用程式識別原則物件可讓網路上的原則伺服器識別應用程式,並據此將適當的服務品質指派給要求。 如需應用程式識別的詳細資訊,請參閱 IETF 因特網草稿 draft-ietf-rap-rsvp-appid-00.txt,或有關應用程式識別的 Microsoft 白皮書。 流量控制會將此類型的流量視為與本機計算機上 BESTEFFORT 流量相同的優先順序。 不過,應用程式程式設計人員可以使用 QOS_TRAFFIC_CLASS QOS 物件修改相關聯流程上的第 2 層設定,以提升這類流程的優先順序。
SERVICETYPE_NETWORK_UNAVAILBLE
用來通知網路變更。
SERVICETYPE_NETWORK_CONTROL
僅用於傳輸控制封包 (,例如 RSVP 發出訊號訊息) 。 此 ServiceType 具有最高的優先順序。
SERVICETYPE_GENERAL_INFORMATION
指定流程支援所有服務類型。 只能在傳送者端使用。
SERVICETYPE_NOCHANGE
表示不會變更使用此 ServiceType 值傳輸中的服務品質。 SERVICETYPE_NOCHANGE只能在要求一個方向的服務質量變更時使用,或只在 QOS 規格的 ProviderSpecific 參數內要求變更,而不是 在 SendingFlowspecReceivingFlowspec 中要求變更時使用。
SERVICETYPE_NONCONFORMING
用來指出不相符的流量。
SERVICE_NO_TRAFFIC_CONTROL
表示不應以指定的方向叫用流量控制。
SERVICE_NO_QOS_SIGNALING
以指定的方向隱藏 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 的值不能為零;不過,如果您特別搭配 TC API 使用 FLOWSPEC 結構,您可以將 MinimumPolicedSize 設定為零。

備註

FLOWSPEC 結構的許多成員都可以藉由將成員設定為 QOS_NOT_SPECIFIED來設定為預設值。 請注意,可以設定為預設值的成員會根據 FLOWSPEC 是接收 FLOWSPEC 還是傳送 FLOWSPEC 而有所不同。

使用 FLOWSPEC 搭配流量控制時,您應該記住幾個考慮:

  • TokenRate 可以針對SERVICETYPE_NETWORKCONTROL、SERVICETYPE_QUALITATIVE和SERVICETYPE_BESTEFFORT進行QOS_NOT_SPECIFIED。 TokenRate 對於所有其他 ServiceType 值都必須有效。
  • 如果指定 PeakBandwidth ,它必須大於或等於 TokenRate
接收 FLOWSPEC 中可以預設許多設定,但 ServiceType 除外,考慮下列事項:
  • 針對受控負載服務接收者,預設值衍生自傳送者 TSPEC
  • 針對保證的服務接收者,必須指定 ServiceTypeTokenRate
下列清單會指定接收 FLOWSPEC 將對應值設定為預設值時所套用的值:

ServiceType 的值設定為 SERVICETYPE_GUARANTEED 時,也會套用下列專案:

  • RSPEC 中的RATE值會設定為 TokenRate 的值。
  • RSPEC 中的 DELAYSLACKTERM 值會設定為 DelayVariation,如果 DelayVariation 設定為 QOS_NOT_SPECIFIED,則會設定為零。
  • 對於要求SERVICETYPE_GUARANTEED的接收者,必須指定接收 的 TokenRate 。 這與SERVICETYPE_CONTROLLEDLOAD接收者相反, TokenRate 可能會設定為QOS_NOT_SPECIFIED。
在傳送 的 FLOWSPEC 中,除了 ServiceTypeTokenRate 之外,所有專案都可以預設。 下列清單會指定傳送 FLOWSPEC 將對應值設定為預設值時所套用的值:

流量控制: 當特別使用流量控制時,下列 ServiceTypes 無效。 如果您不確定是否直接使用流量控制 (,因此需要擔心下列 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

另請參閱

Qos