今回は、Windows 10 または Windows 11 で FPS ゲームをしているときにラグ(遅延)が発生してしまう問題を改善する方法紹介します。
すべての環境でラグが発生するわけではありませんが、問題が発生している場合、下記の方法を実行すると改善できる可能性があります。
Nagle アルゴリズムが原因でラグが発生する
Nagle アルゴリズムを分かりやすく言うと、小さなデータパケットの送信を回避することであり、ある条件まで達しない限り小さなパケットを送信しません。
そして、ある条件まで達すると、小さなパケットをまとめて送信するという機能です。
もう少しわかりやすく言うと、例えば仕事で端から端まで物を3つ運ぼうとしたときに 1つずつ持って行くのではなく、3つ貯まってから 3つ同時に持って行ったほうが運ぶ時間と回数を減らせて効率的ですね。
しかし、3つ貯まってから運ぶ場合、3つ貯まるまでに多少の時間が空きます。
この空いた時間がラグとして FPS ゲーム上に現れます。
インターネットの接続速度が速い環境であれば特にラグを感じないかもしれませんが、接続速度が遅い環境や特定の条件下では非常に時間がかかってしまいます。
その場合、Nagleアルゴリズムを無効にすることにより、空いた時間がなくなり、FPS ゲームのラグを改善できる可能性がありますのでお試しください。
レジストリの編集が心配な方は、下記のレジストリ値の追加を簡単にできるツールを用意していますので、そちらをご利用ください。
1.Windowsキー + R を押して「ファイル名を指定して実行」を開き、「regedit」と入力して Enter を押します。
※ユーザーアカウント制御が表示されたら「はい」をクリックしてください。

2.レジストリエディターが開きますので、次のキーを開きます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
3.「Interfaces」キーを開くと、たくさんの数字が並んだキー(環境によって違う)がありますので、「Interfaces」キーを選択した状態でメニューの編集>「検索」をクリックします。
4.検索する値に「DhcpIPAddress」と入力し、検索対象の「キー」と「データ」のチェックを外して「次を検索」をクリックします。
5.すると、値に「DhcpIPAddress」が含まれているキーが開きますので、右側の欄の何もない所で右クリック>新規>「DWORD (32ビット) 値」をクリックします。
6.「新しい値 #1」という値が作成されますので、「新しい値 #1」の上で右クリック>名前の変更をクリックします。
7.名前に「TcpAckFrequency」と入力して Enter を押します。
TcpAckFrequency
8.値「TcpAckFrequency」をダブルクリックして開き、値のデータに「1」を入力して OK をクリックします。
9.もう 1つ「DWORD (32ビット) 値」を作成して名前を「TCPNoDelay」に変更し、Enter を押します。
TCPNoDelay
10.「TCPNoDelay」をダブルクリックして開き、値のデータに「1」を入力して OK をクリックします。

11.そのままキーボードの F3(次を検索)を押すと別の「DhcpIPAddress」が含まれているキーが開きますので、上記の操作を検索で見つからなくなるまで繰り返します。
※「TcpAckFrequency」と「TCPNoDelay」は、既に作成されている場合がありますので、値のデータが「1」であることを確認すればそのままで OK です。
12.すべて変更したら、レジストリエディターを終了し、PC を再起動して設定完了です。
FPSゲームの遅延、ラグをなくすツール「FTP_EliminateDelay」
上記のレジストリの書き込み、削除を自動で行うツール「FTP_EliminateDelay」を作成しましたので、レジストリエディターの操作が心配な方はご利用ください。
「FTP_EliminateDelay」のダウンロード
ハッシュ値:対象「FTP_EliminateDelay.exe」
SHA256 ハッシュ値:
ae8674be7d96b96f2c315b2de03af98188458b0f906ab5295770380be25e3533
使用方法
ダウンロードした「FTP_EliminateDelay.zip」を解凍し、中にある「FTP_EliminateDelay.exe」を実行します。

「FPSゲームの遅延、ラグをなくす」または「デフォルトに戻す」ボタンをクリックします。
「FPSゲームの遅延、ラグをなくす」ボタンで「TcpAckFrequency」と「TCPNoDelay」の各値を「1」に設定します。
「デフォルトに戻す」ボタンで「TcpAckFrequency」と「TCPNoDelay」を削除します。

確認ダイアログが表示されたら、OK をクリックして PC を再起動してください。
コメント
コメント一覧 (10件)
UDP通信のゲームには効果は無い感じですか?
匿名様、コメントありがとうございます。
お使いの環境により遅延が改善される場合と改善されない場合がありますので、効果の有無を断言することはできません。
いつも色々な記事を拝見させていただいております。
このツールを以前使った事もあったのですが、その前にTCP optimizerで同じ項目を設定してた事がありました。
ですがTCPの場合他の部分もいじれるが故、結局どのツールが一番有効なのかよくわからなくなってしまいましたw
そこで主様の考えが知りたいのと、自分が今思っている事は結局MTUだのなんだの変えずにこのツールでレジストリ値を変えてしまうのが効率よく遅延の改善がされるのでは?っていう辺りが気になっていますので出来れば教えていただきたいです!
イン様、コメントありがとうございます。
色々な記事を読んでくださり、ありがとうございます。
TCP optimizer は私も以前に使用したことがあり、MTU などの変更も行いました。
しかし、実際には効果はほとんど感じられず、現在は Windows のデフォルトの設定に戻し、当記事のレジストリ値の追加のみを行っています。
環境により効果が出る場合もありますので、ご自身でデフォルトに戻した場合と設定後の遅延を確かめてみるのが一番かと思います。
インターネット関連の設定は効果が出る場合もありますが、逆にパフォーマンスが落ちる場合や不具合が出る可能性がありますので、個人的にはあまり弄らないほうが良いと思います。
オンラインゲームの遅延はインターネット関連の設定のみが原因ではありません。OS やグラフィックボード、グラフィックドライバー、ネットワークドライバー、CPU、メモリー、ハードディスク、インストールしているソフトウェア等、システム環境も関係しています。
効果あった
匿名様、コメントありがとうございます。
お役に立ててよかったです。
デフォルトに戻すを押すとツールで変更されたところだけ戻るかそれ以外のレジストリの設定ももどされますか?分かりにくくてすみません…できれば教えていただきたいです!
hiromani様、コメントありがとうございます。
当ツールでは、デフォルトに戻すを押した場合は、「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces」キー下の「DhcpIPAddress」が含まれているすべてのキーにある値「TcpAckFrequency」と「TCPNoDelay」を削除します。
例えば、レジストリを変更後に新しく「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces」キー下に「DhcpIPAddress」が含まれているキーが追加された場合でも、そのキーに「TcpAckFrequency」と「TCPNoDelay」があれば削除されます。
初めまして!素晴らしいツールでした!このツールは一度オンにするとデフォルトに戻すを押さない限り反映されたままでしょうか!
P様、コメントありがとうございます。
一度「FPSゲームの遅延、ラグをなくす」ボタンを押せば、ネットワークアダプターの変更や自身で初期化等をしない限り、値はそのままになります。
※Windows Update(大型アップデート)で変更される可能性はあります。