> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GDK 中的服務品質測量

> Microsoft Game Development Kit 中的服務品質測量

使用本主題來了解如何在 GDK 遊戲中測量服務品質 (QoS)。對於多人遊戲而言，測量 QoS 延遲非常重要。對於點對點連線，QoS 延遲測量可用來判斷與另一個用戶端進行遊戲是否可行。對於用戶端/伺服器連線，QoS 延遲測量可用來判斷最適合進行遊戲的資料中心位置。

對於 XBOX One ERA 遊戲，安全通訊端包含用於延遲和頻寬測量的 QoS API。GDK 遊戲可以達成相同的功能，如下列各節所述。

## 點對點

使用點對點通訊的遊戲，可以在遊戲程式碼、遊戲引擎或中介軟體中使用自訂 QoS 實作。

對於所有實作，遊戲都應確保符合下列指導方針。

* 安全通訊最佳做法。
  無論內容為何，遊戲都應遵循保護所有網路通訊的最佳做法。這也應適用於點對點 UDP QoS 探查。這些探查應透過安全通訊協定連線執行。如需安全通訊協定最佳做法的詳細資訊，請參閱 [Microsoft Game Development Kit 遊戲的安全遊戲網狀通訊 (NDA 主題)](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/game-principles/security/communication-security/communication-security-impl/gc-secure-game-mesh-impl)。
* 使用者資料包通訊協定 (UDP) 封包大小。
  對於 UDP 通訊，遊戲應確保不超過平台的最大傳輸單位 (MTU) 上限。在 XBOX 主機和 Windows 10 上，Microsoft Game Development Kit (GDK) 遊戲每個封包的預設最大 UDP 承載為 1,384 位元組。超過 MTU 的封包很可能會被分割，這可能會導致額外的延遲或封包遺失。
* 相符的通訊協定和通訊通道。
  點對點 QoS 應一律透過與遊戲流量相同的通訊通道和通訊協定執行。這可確保所有測量都能反映遊戲流量的行為，包括延遲和頻寬。
* 工作階段瀏覽 QoS 行為。
  在工作階段瀏覽清單中使用 QoS 的遊戲，可能會意外對熱門主機造成 QoS 洪泛。當所有使用者的工作階段瀏覽清單完全相同且包含自動 QoS 測試時，就會發生此情況。在此情況下，所有檢視工作階段瀏覽清單的使用者，都會對清單中排名最前面的主機執行 QoS 測試。這可能導致沉重的負載，並可能使主機或伺服器遭到洪泛。建議遊戲將工作階段瀏覽清單部分隨機化，以減少此問題。
* 遊戲的其他頻寬使用量。
  任何 QoS 測量都會受到其他本機或遠端網路行為的影響。遊戲無法影響其他平台或子網路的流量行為。不過，仍然可以控制遊戲內部的流量。遊戲應確保在執行 QoS 測量時，將遊戲下載或其他網路使用量降至最低。這同樣適用於多個平行的 QoS 測量。

## 用戶端/伺服器

使用用戶端/伺服器通訊的遊戲，可以在遊戲程式碼、遊戲引擎或中介軟體中使用自訂 QoS 實作。與點對點 QoS 測量不同，用戶端/伺服器 QoS 測量的典型目標是判斷到特定資料中心的延遲。此情況下的遊戲應確保遵守與點對點 QoS 測量相同的指導方針。

使用 Azure PlayFab 多人遊戲伺服器的遊戲，應一律使用所提供的 API 進行 QoS 測量。如需詳細資訊，請參閱[使用服務品質 (QoS) 信標測量玩家到 Azure 的延遲](/zh-TW/services/playfab/multiplayer/servers/using-qos-beacons-to-measure-player-latency-to-azure)。

## QoS 計量考量

決定連線品質的兩個最常見 QoS 計量是封包*延遲*和可用的連結*頻寬*。

* 延遲測試。
  延遲通常是在兩個端點之間以每個封包為基礎進行測試。最佳做法是將少量低於本機 MTU 大小的封包傳送至遠端端點，再由遠端端點將封包回傳至本機裝置。這可判斷封包的來回時間。進行測量時，應將多個封包加以平均。延遲測量可以快速執行。

* 頻寬測試。
  頻寬通常是透過以遞增的頻率將大量資料傳送至另一個端點來測試，以使本機連結飽和。連結頻寬可以根據本機傳送和/或接收緩衝區的狀態推斷。緩衝區使用量增加表示連結已飽和。頻寬測量需要較長的測試時間，而且可能會影響本機連結品質。

延遲和頻寬通常緊密相關。頻寬受限會導致較高的封包延遲，因為網路壅塞時封包會保留在本機。低延遲表示有較多的可用頻寬，因為這表示封包並未保留在本機。因此，遊戲應僅針對遊戲流量 QoS 的目的執行延遲測量。遊戲流量通常不需要頻寬測試。

## QoS 測試

XBOX One 開發套件可以執行網路模擬，以模擬受限的頻寬、封包遺失和延遲。我們強烈建議使用此功能來測試自訂 QoS 實作，以及對所有 QoS 功能進行端對端測試。如需詳細資訊，請參閱 [XBOX One 網路壓力](/zh-TW/build/console-features/networking/tools/netstress-networking)。

## 另請參閱

[Windows Sockets 2 (Winsock)](https://learn.microsoft.com/windows/desktop/WinSock/windows-sockets-start-page-2)

[PlayFab Party](/zh-TW/build/console-features/networking/game-mesh/playfab-party-intro-networking)

[使用服務品質 (QoS) 信標測量玩家到 Azure 的延遲](/zh-TW/services/playfab/multiplayer/servers/using-qos-beacons-to-measure-player-latency-to-azure)


## Related topics

- [XR-132 服務存取限制](/zh-TW/publishing/certification/xr/xr-132.md)
- [PartyRegionQualityMeasurementConfiguration](/ja-jp/services/playfab/multiplayer/networking/reference/structs/partyregionqualitymeasurementconfiguration.md)
- [認證逐步指南](/zh-TW/publishing/game-publishing/concepts/certification/certification-guide.md)
- [XR-003 提交的遊戲品質](/zh-TW/publishing/certification/xr/xr-003.md)
- [GDK 中的服务质量测量](/zh-CN/build/console-features/networking/game-mesh/qos-networking.md)
