TcpAckFrequency(TAF)をチューニングしてネットワークの応答速度を上げる


興味があるので調べてみました。DPS(Damage Per Second; 秒間ダメージ)と正確な操作が極めて重要なMMORPGのプレイヤーの間で語られていました。少しでもDPSを高めるために,彼らはFPSerの僕達と同等かそれ以上にネットワークの遅延に敏感であったようだ。尊敬に値する。

個人的な見解

平常時と比べてトラフィックが増えることでサーバーに想定以上の負担をかけてしまうのが心配。また,ハードに負担をかけたり,通信速度が低下したりするのがネックだ。ゲーム時だけレジストリを変えて再起動というのも面倒だし…ううん。FPSゲームで効果はあまり感じられなかったが,MMORPGコミュニティの彼らの検証によれば明らかに変わったそうだ。”判定負け”が少なくなると考えれば多少面倒でも導入する価値はある。もしこれが事実だとしたら,0.2秒の大きさを知る我らガチ勢は当然導入すべき設定項目となるだろう。

TcpAckFrequencyとは?

“TcpAckFrequencyは、未解決の TCP 受信確認 (ACK) 数がいくつになったら遅延 ACK タイマを無視するかを決定する、Microsoft Windows XP および Microsoft Windows Server 2003 の新しいレジストリ エントリです。”

Microsoftから引用(http://support.microsoft.com/kb/328890/ja)

ここではTCPに関する詳細な説明は割愛させていただきますが,インターネット通信においてはふつう,通信効率を高めるために,相手から2回データ(セグメント)を受信するごと又は最後の受信から200ミリ秒が経過したあとに受信証明を送るようになっています。いちいちデータを受信するごとに受信確認を送っていては負荷がかかって混雑しますからね。

今回しようとしていることは,この受信確認の頻度を2回から毎回に高めて,200msの遅延を無くそうということです。余談ですが,大量データ通信目的で遅延が気にならない場合はこの頻度を減らす(3回以上に増やす)ように指示されています(IBM)。環境によっては無駄なやりとりが減り通信速度が上がるかもしれません。

デメリット

通信回数が増えることによるハードウェアへの負荷がほとんどの原因です。

  • 応答速度が向上する一方で,通信速度が低下する (ダウンロード速度が半減したとか)
  • ルーター等の通信機器に負荷がかかる (性能次第で逆に応答速度が下がる可能性も)
  • 等々…(詳しくはこちら→ RO-Tune|デメリット)

設定方法

!警告! レジストリを扱うので設定を誤ればPCが起動しなくなる場合があります。また,負荷がかかりハードウェアが故障する等予期せぬトラブルが起きる可能性もあります。必ずご自身の責任をもって設定して下さるよう,よろしくお願いします。

万が一の事態に備えレジストリの変更前にバックアップすることを推奨します(10/17追記)

  1. 「Windowsキー + R」(ファイル名を指定して実行)で「cmd」と入力して「コマンドプロンプト」を起動する
  2. 「ipconfig」と入力してエンター
  3. 現在使用中のネットワークアダプタの情報を覚えておく(普通は「イーサネットアダプターローカルエリア接続」,この場合はIPアドレスが「192.168.1.199」となっている)
  4. コマンドプロンプトに続けて「regedit」と入力して「レジストリエディター」を起動する
  5. 「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{****}」に移動する。{****}が沢山ありますが,先ほど調べた「IPAddress」や「DefaultGateway」等の情報を参考に,適切な場所を選んでください。似たような名前のディレクトリがありますから,十分注意してください
  6. 右画面の空いている場所を右クリックして,「新規(N)」→「DWORD (32 ビット) 値(D)」を選択
  7. 「新しい値 #1」という値ができるので,名前を「TcpAckFrequency」に変更して右クリック→「修正(M)…」
  8. 値のデータを「1」に変更して,OKを押す
  9. PCを再起動すると,設定が反映されます
  10. 挙動がおかしくなって戻したい場合は「TcpAckFrequency」の値を削除して,PCを再起動してください

参考

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>