ネットワークの調整
「インターネット」ページの各項目が何を書き込み、何をそのままにするか、そしてどれが試合を変えうるかを説明します。ほとんどは試合を変えられず、ページにもそう書かれています。
まず、正直なところ
「インターネット」ページのどの項目も、平均 Ping を下げることはありません。Ping はサーバーまでの距離にルーター内のキューを足したもので、PC の設定はそのどちらも変えません。これらの項目にできるのは、お使いの PC の中で起きる小さな特定の遅延を取り除くことです。それはマイクロ秒単位で、負荷時には数ミリ秒になることもあります。しかも、項目が扱う仕組みがお使いのハードウェアに存在する場合に限ります。存在しない場合、その項目は何も書き込まず、ログにそう記録します。
ここにあるどの設定も、ケーブルの代わりにはなりません。Wi-Fi は一瞬の干渉で数十ミリ秒も変動することがあり、このページのどの項目も干渉に対しては何もしません。
項目ごとの説明
TCP の ACK をすぐに送信する: 動作している物理的な有線アダプターに限り、HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<GUID> に TcpAckFrequency=1 を書き込みます。仮想アダプター (VPN の TAP、WSL、Hyper-V) はスキップします。Windows は、確認応答を 2 つ目のセグメントとまとめるために最大 40 ms 待ちます。この項目は確認応答をすぐに送信させます。影響するのは TCP だけです。CS2、Valorant、Fortnite、Apex、Dota 2、League of Legends は UDP で通信するため、この項目では何も変わりません。効果が現れるのは TCP を使うゲーム (Minecraft Java) と、MMO や ARPG のセッション通信で、それも往復あたり最大で数十ミリ秒です。Wi-Fi は意図的にスキップします: 上り方向のフレーム数が倍になると、ダウンロードが使っている通信時間 (エアタイム) を消費するためです。再起動後に有効になります。
ネットワーク アダプターの省電力を無効にする: アダプターのクラス キーに PnPCapabilities=8 を書き込みます。これは、デバイス マネージャーで「電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする」のチェックを外すのと同じです。この項目は既定でチェックが外れています。トレードオフはこうです: これを設定すると、Windows はこのカードを電源管理できないものとして扱うため、ネットワーク経由のスリープ解除が機能しなくなります。また、ノート PC ではモダン スタンバイ中にカードがアイドル状態ではなく停止状態になり、ふたを閉じている間は何も届きません。得られるのはアイドルが続いた後の 1 パケット分で、ゲームがリンクをアイドルにすることは決してありません。書き込むのは、ドライバーが実際に電源管理を公開している場合だけです。Windows Update が多くの Realtek カードにインストールする Microsoft の標準ドライバーは公開していないため、その場合はその旨を表示し、何も書き込みません。
省電力イーサネットを無効にする: ドライバーが宣言している EEE のキーワード (*EEE、EnableGreenEthernet、AdvancedEEE、EnableSavePowerNow、EEELinkAdvertisement) に、ドライバーが保存している型で 0 を書き込みます。EEE (802.3az) はパケットの合間にリンクを低電力のアイドル状態にし、そこから戻るのにギガビットで最大約 16 マイクロ秒かかります。目に見える Ping の差ではありません。オフにする本当の理由は安定性です: 一部の 2.5G カードは EEE がオンだとリンクが切れ、Intel 自身も I225/I226 ファミリーでは無効にするよう勧めています。代償はアイドル時にリンクあたり約 0.5 W で、ノート PC ではバッテリーの消費になります。どのキーワードも宣言していないドライバーはスキップし、メッセージにそう表示します。標準ドライバーでは公開されていない設定が、メーカーのドライバーでは公開されている場合があります。
アダプターのセレクティブ サスペンドを無効にする: アダプターのドライバーが *SelectiveSuspend を一覧に含めているデスクトップ PC でのみ表示され、最初はチェックが外れています。そのキーワードに、ドライバーが保存している型で 0 を書き込みます。セレクティブ サスペンドは、通信のない状態が数秒 (既定では 5 秒) 続くと、Windows がアイドル状態のアダプターを低電力にする機能です。その後の最初のパケットは、アダプターが復帰するまで待たされます。ゲームがリンクをそれほど長くアイドルにすることはないため、試合中には何も変わりません。得られる効果は通信のない時間が続いた後の最初のパケットに対するもので、その効果は測定していません。Microsoft はこの仕組みを USB 1.1 と 2.0 のアダプター向けとしています。ほとんどの有線カードのドライバーはこれを一覧に含めておらず、その場合この項目は表示されません。代償はアイドル時の電力で、そのためノート PC でこの項目が表示されることはありません。アダプターの再起動時に有効になります: デバイス マネージャーでアダプターを無効にしてから有効にするか、PC を再起動してください。同じカードで「ネットワーク アダプターの省電力を無効にする」以上の効果があるかどうかは測定していません。
アダプターの受信バッファーをドライバーの最大値まで増やす: 通信に使われているアダプターが、受信したフレームを測定できるほどドロップしている場合にのみ表示されます: アダプター自身の破棄カウンターで、アダプターが最後に起動してから受信した 100,000 個以上のフレームのうち 0.01% 以上です。これは「カクつき探偵」に表示されるのと同じ数です。デスクトップ PC でもノート PC でも最初はチェックが外れており、ラベルにはこの 2 つの数値が表示されます。*ReceiveBuffers には、ドライバーの INF が宣言している範囲の上限を書き込みます。w0a が選んだ数値を書き込むことは決してありません。また、その上限がカードの現在の値より大きい場合にだけ書き込みます。手動でさらに大きくした値を下げることはありません。負荷時に受信バッファーがいっぱいになったカードは、次に届いたものをドロップします: TCP のセグメントは少なくとも 1 往復分遅れて再送され、UDP のゲーム パケットは決して届きません。Microsoft によるこの設定の説明では、バッファーが少なすぎるアダプターは高負荷時に不足する可能性があるとされています。Intel のチューニング ガイドは、受信パケットがドロップされる場合に増やすよう勧めており、代償をバッファー 1 つあたり約 2 KB のメモリとしています。ドロップが測定されていなければ何の効果もないため、その場合この項目は表示されません。アダプターの再起動時に有効になり、そのときドロップのカウンターも 0 から数え直します。Ping やフレームへの効果は測定していません: w0a を開発している PC では、Realtek 用の標準ドライバーの最大値は 512 で、カードはすでにその値で動作しており、3.8 M (380 万) フレームの中で 1 つもドロップしていません。
TCP の既定値を復元する: netsh int tcp set global autotuninglevel=normal、rss=enabled、ecncapability=disabled を実行します。これらは Windows の出荷時の値です。この項目はまず現在の値を読み取ります: クリーンな PC では 3 つとも最初から正しいため、何も書き込まず、その旨を表示します。この項目は、調整スクリプトが残していったもののためにあります。たとえば、実際に遅延のある回線ならどこでもスループットを激減させる「自動チューニングを無効にする」という助言です。性能向上ではなく修復であるため、既定でチェックが外れており、最適化としては数えません。RSS は全体に効くスイッチです: 受信処理が複数のコアに分散されるかどうかは、そもそもアダプターが RSS に対応しているかどうかで決まり、お使いのアダプターが対応しているかどうかはメッセージに表示されます。この 3 つには元に戻すための記録がありません。「Fix」ページの「ネットワーク設定」カードで元に戻せます。
高負荷時: フロー制御、割り込みモデレーション、セグメント結合をオフにする: アダプターが宣言している場合に *FlowControl、*InterruptModeration、*RscIPv4、*RscIPv6 に 0 を書き込み、netsh int tcp set global rsc=disabled を実行します。フロー制御は、スイッチがこの PC の送信を一時停止できるようにする仕組みです (2.5G カードがギガビットのルーターにつながっていて、しかもアップロードしているときにだけ意味があります)。割り込みモデレーションは、CPU が処理する前にパケットをまとめます: 数十から数百マイクロ秒です。セグメント結合は、TCP の受信セグメントを上位に渡す前に結合します。UDP のゲーム通信がこれを通ることはなく、オフにするとダウンロード時に CPU を消費します。どれもマイクロ秒の話で、ルーターのキューはミリ秒単位で測るものです。無条件に書き込むのはフロー制御だけです: PAUSE フレームはその後ろにあるすべてのパケットを止めてしまい、それを望む PC はありません。ほかの 3 つはトレードオフであるため、物理コアが 6 個未満の PC (追加の割り込みのコストが節約分を上回る) と、2.5 Gbit を超えるリンクではスキップします。4 つのどれも、アダプターがそのキーワードを宣言していなければ書き込まず、実際に書き込んだものをメッセージに正確に一覧表示します。
アプリごとの優先度 (QoS): この項目はなくなりました。w0a はもうゲーム向けの QoS ポリシーを書き込みません。この機能はマーキングがすべてでしたが、プロバイダーの大半はマーキングを無視し、一部はマーキングされた通信を急がせるのではなく取り締まる対象として扱う (速度を落とす、またはドロップする) ため、廃止しました。以前のバージョンがこの PC にルールを書き込んでいた場合は、「Fix」ページの「ネットワーク設定」カードで削除できます。
DNS ページ: 各リゾルバーを通常の UDP で測定し、選んだ 2 つのサーバー アドレスを、通信に使われているアダプターに書き込みます (運営者が IPv6 アドレスを公開している場合は両方のアドレス ファミリに書き込み、公開していない場合は IPv6 を自動に戻します)。DNS のレイテンシで変わるのは名前を解決する速さです: サーバーへの最初の接続、ブラウザー、ダウンロードの開始などです。試合中の Ping は変わりません。
暗号化 DNS (DNS ページ): オンにするまではオフです。アダプターが使っているサーバーに対して Windows 自身の DNS over HTTPS をオンにします。ただし、Windows がそのサーバーの暗号化アドレスをすでに知っている場合 (Cloudflare、Google、Quad9) に限ります。それ以外のサーバーではその旨を表示して何も書き込まず、PC 上のプログラムが動かしているリゾルバーはそのプログラムに任せます。これはプライバシーの設定です: 途中のネットワークは、DNS の通信からどの名前が問い合わせられたかを読み取れなくなりますが、接続先サーバーのアドレスは見えたままです。また、この設定は Ping や FPS については何も約束しません。通常の DNS へのフォールバックはオフのままなので、クエリが知らないうちに暗号化されずに送信されることはありません。オンにした後、w0a は名前を 1 つ問い合わせ、応答が返ってきて、かつ Windows の DNS クライアントが HTTPS でサーバーに接続したことを確認できた場合にだけ設定を残します。そうでない場合は設定を元に戻し、2 つのうちどちらが失敗したかを表示します。「DNS」ページの ms の数値は通常の DNS での測定値で、暗号化された問い合わせにかかる時間ではありません。元に戻すには、カードのボタン、「バックアップ」ページ、または「Fix > インターネット接続と DNS」を使います。
削除された項目
「閉じた接続を早く解放する」という項目は、TcpTimedWaitDelay=30 と StrictTimeWaitSeqCheck=1 を書き込んでいました。測定の結果: 1 つ目の値は Windows 11 で読み取られます (閉じた接続の TIME_WAIT は 30 秒で終わりました)。しかし、この値が決めるのは閉じた接続がポートを解放する速さで、それはサーバー側の問題です。1 台の PC がゲームをプレイしていてポートを使い果たすことはありえません。2 つ目の値は、どの Windows のネットワーク ドライバーにもまったく出てきません。ゲームに何の効果もない項目を「インターネット」ページに置く理由はないため、削除しました。以前に適用していた場合は、「Fix」ページの「ネットワーク設定」カードで両方の値が削除されます。また、この項目が残した元に戻すための記録は、今も「バックアップ」ページで読み込まれます。
元に戻す方法
- バックアップと復元: 変更の前に書き込まれた復元ポイントに戻します。
- Fix ページ: 「ネットワーク設定」は TCP のグローバル設定をリセットし、QoS ポリシーと、ドメイン外でも QoS ポリシーを有効にするスイッチを削除し、物理アダプターから
PnPCapabilitiesを、すべてのインターフェイスからTcpAckFrequencyを削除します。「ネットワーク アダプターのオフロード」は、アダプターのキーワード (EEE の各種の表記、セレクティブ サスペンド、受信バッファーを含む) を、ドライバー自身の INF の既定値に戻します。どちらも w0a のバックアップ ファイルには依存しません。
このページの範囲外
Wi-Fi の代わりにケーブルを使うこと。プレイ中に誰かがダウンロードするなら、SQM (fq_codel または cake) に対応したルーターを使うこと。ケーブルは無線とその干渉を経路から取り除き、SQM はほかの何かがダウンロードしている間もルーターのキューを短く保ちます。PC のどの設定も、そのどちらも実現できません。お使いの回線でそれらがどれだけの違いを生むかは測定していません。
ゲームに影響する Windows の設定はどれか、それぞれが誰に役立ち、誰には何の効果もないのか: ゲーム向けに Windows 11 を最適化する方法: 本当に意味のある設定
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。