> ## 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.

# PC のポートの動作

> PC のポートの動作

このトピックでは、PC のポートの動作について説明します。

## ポートのルール

* PC のポートは、ユーザーが組み込みの既定の Windows ファイアウォールを使用している場合、すべての送信 Transmission Control Protocol (TCP) と User Datagram Protocol (UDP) トラフィックを許可し、要求されていない受信 TCP および UDP パケットをブロックします。

* 優先ローカル UDP マルチプレイヤー ポートは、他のポートと同じように動作しますが、要求されていない受信 UDP パケットを許可します。TCP は使用できません。

* 送信フローは常に機能し、これに対して属性を宣言する必要はありません。ユーザーがリモート サーバー/デバイスに最初のパケットを送信すると、そのデバイスからの以降の受信パケットは、無条件に配信されます。

* Microsoft Game Development Kit (GDK) タイトルのピアツーピアには、優先マルチプレイヤー ポート上で UDP を使用する必要があります。さらに、ファイアウォールと NAT パンチングを実行する必要があります。要求されていない受信 TCP パケットは、ユーザーがゲームを除外しない限りブロックされます。要求されていない受信 UDP パケットも既定でブロックされ、UDP ピアツーピア フローのブロックを解除するには、ユーザーによる除外設定か、なんらかの形式のファイアウォール パンチングが必要です。

* タイトルの除外設定は、ファイアウォールの設定を通じてユーザーが追加するか、パッケージング プロセス中に特定の属性を宣言することで追加できます。ユーザーのファイアウォール設定とゲーム パッケージの属性の両方が、実際の要求されていない受信パケットの動作を決定します。

* PC ユーザーはサードパーティのファイアウォールを使用できることに注意してください。これらの設定は、ポートの全体的な動作に影響します。詳細は下記のとおりです。

**ヒント**: [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking) は、この機能を自動的に処理するピアツーピア ネットワーク トポロジを提供します。または、独自の実装の出発点として、[STUN](https://tools.ietf.org/html/rfc5389) および [ICE](https://tools.ietf.org/html/rfc8445) の RFC を参照してください。

## 要求されていない受信トラフィックの管理

GDK を使用して作成された PC タイトルは、MSIXVC パッケージとして公開されます。

タイトルが MSIXVC パッケージとして出荷される場合、**MicrosoftGame.config** ファイルで [privateNetworkClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability) や [internetClientServer](https://learn.microsoft.com/uwp/schemas/appxpackage/uapmanifestschema/element-capability) などの属性を宣言することで、要求されていない受信トラフィックの処理方法を宣言するオプションがあります。

**重要:** ユーザーのファイアウォールと設定の関係で、これらの属性は実際には効果を持たない場合があります。詳細については、[ファイアウォールとトラフィックへの影響](#firewall-and-how-it-affects-traffic) を参照してください。

以下の表は、属性が要求されていない受信トラフィック アクセスと予想される顧客体験にどのように影響するかを示しています。

| MicrosoftGame.config                     | アクセス                                                | 予想される顧客体験                                            |
| ---------------------------------------- | --------------------------------------------------- | ---------------------------------------------------- |
| **privateNetworkClientServer** が指定されている  | 要求されていない受信 LAN トラフィックを許可                            | ゲーム パッケージで指定されたとおり、実行可能イメージのインストール中にゲームの除外設定が追加されます。 |
| **privateNetworkClientServer** が指定されていない | すべての要求されていない受信 LAN トラフィックがブロックされる既定の動作を維持           | 通知は表示されません。要求されていない受信 UDP/TCP パケットは静かにドロップされます。      |
| **internetClientServer** が指定されている        | 要求されていない受信ピアツーピア インターネット トラフィックを許可                  | ゲーム パッケージで指定されたとおり、実行可能イメージのインストール中にゲームの除外設定が追加されます。 |
| **internetClientServer** が指定されていない       | すべての要求されていない受信ピアツーピア インターネット トラフィックがブロックされる既定の動作を維持 | 通知は表示されません。要求されていない受信 UDP/TCP パケットは静かにドロップされます。      |

### GDK タイトルの MicrosoftGame.config を編集する方法

* タイトルのソース コードに移動します。
* **MicrosoftGame.config** を開きます。
* 以下のコード スニペットを追加してファイルを保存します。

MXIXVC パッケージをビルドすると、**SubmissionValidator** ログ ファイルに警告が生成されることに注意してください。

```xml theme={null}
<ExtendedAttributeList>
  <ExtendedAttribute Name="Capability" Value="privateNetworkClientServer"/>
  <ExtendedAttribute Name="Capability" Value="internetClientServer"/>
</ExtendedAttributeList>
```

プロパティがゲームの **MicrosoftGame.config** ファイルに追加されると、生成される **AppXManifest.xml** に適用されます。生成プロセスの詳細については、[MicrosoftGame.config の概要](/build/core-features/common/game-config/MicrosoftGameConfig-Overview) を参照してください。

<a id="firewall-and-how-it-affects-traffic" />

## ファイアウォールとトラフィックへの影響

ユーザーのファイアウォールと設定は、ゲームのネットワーク機能に影響します。このセクションでは、GDK タイトルに対するファイアウォールがトラフィックにどのように影響するかを説明し、ネットワーク設計を強化するのに役立ちます。

このトピックの理解を深めるため、参考として Win32 ゲームのファイアウォールに影響されるポート アクセスも記載しています。

一般に、**privateNetworkClientServer** と **internetClientServer** 属性は、サードパーティのファイアウォールを使用しているユーザーには効果がないと考えて備える必要があります。これは、総ユーザー数の 30 ～ 40% と予想されます。

### GDK 実行可能ゲーム

**既定の Windows 10 ファイアウォールを使用しているユーザー**

* **privateNetworkClientServer** と **internetClientServer** 属性は前述のように機能します
* 送信ベースのフローは、**privateNetworkClientServer** と **internetClientServer** 属性の定義の有無にかかわらず、常に機能します。ユーザーがリモート サーバー/デバイスに最初のパケットを送信する限り、そのデバイスからの以降の受信パケットは配信されます。

**サードパーティのファイアウォールを使用しているユーザー**

* **privateNetworkClientServer** と **internetClientServer** 属性は効果がありません。これらのユーザーは要求されていない受信パケットを静かにドロップします。注: これはパッケージング中に **MicrosoftGame.config** でアクセス機能を宣言したかどうかに **関係なく** 発生します。
* すべてのポート (優先ローカル UDP マルチプレイヤー ポートを含む) は、それらのファイアウォールで指定されたポリシーの対象となります。
* 送信ベースのフローは通常機能します。サードパーティのファイアウォール設定を通じてタイトルのネットワーク アクセスを適切に除外するのは、ユーザーの責任です。

### Win32 実行可能ゲーム

**注:** このセクションは比較として追加されています。GDK タイトルは Win32 タイトルではありません。PC タイトルには開発に GDK を使用することをお勧めします。

**既定の Windows ファイアウォールを使用しているユーザー**

* 最初の起動時に、ユーザーがゲーム サーバーへのアプリケーションのネットワーク アクセスを拒否または許可できるように通知が表示されます。
* 送信ベースのフローは、UI 通知なしでも常に機能します。

## 関連情報

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

* [XBOX コンソールのポートの動作 (NDA トピック)](/build/console-features/networking/game-mesh/xbox-console-port-behavior)

* [優先 UDP マルチプレイヤー ポート](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)

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


## Related topics

- [XBOX コンソールのポートの動作](/ja-jp/build/console-features/networking/game-mesh/xbox-console-port-behavior.md)
- [GDK での Windows Sockets の紹介](/ja-jp/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [ゲーム メッシュ通信: GDK と XDK の相違点](/ja-jp/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [XBOX PC Remote Iteration API](/ja-jp/reference/remoting/remoteiteration_members.md)
- [イベント ベースの実績のポータル構成](/ja-jp/services/xbox-services/player-data/achievements/event-based/config/live-achievements-eb-portal.md)
