Valorantのためのネットワークチューニング

Valorantのためのネットワークチューニング

この記事では、Valorantのためのネットワークチューニング術を紹介します。専門的な内容もいくつか含まれますが、それぞれに解説を付けてあるので、まずは設定だけでもお試しください。

ネットワークチューニングの意義

ネットワークチューニングは根本的にはネットワークの安定性を高めるための手法です。しかし、ゲームにおいてはネットワークの安定性はもちろんのことではありますが、それ以上にPINGの最適化、及びパケットロスの低減が目標とされ、安定性は二の次とされるのが基本です。

よってここでのネットワークチューニングとは、飽くまでもゲームのためのチューニングであり、その他のネットワークを利用するものに広く効果が適用されるわけではないことをご承知ください。

それでは以下にネットワークチューニングをカテゴリ別に紹介させていただきます。

レジストリによるTCP/IP設定

レジストリによる設定項目は以下の通りです。

  • TcpNodelayの設定
  • TcpAckFrequencyの設定

ではそれぞれの効果と設定方法について解説してゆきます。

TcpNoDelayの設定

TcpNoDelayは、一連のTCPネットワークフローにおいて重要な値になります。TcpNoDelayはこれを設定することで、TCPプロトコルに於けるNagleアルゴリズムを無効化し、遅延ACKを無視する振る舞いをします。

ここで上記に出てきた単語の説明をします。

Nagleアルゴリズムとは、端的に言えば、TCP/IPで送信すべきパケット数を減らし、ネットワーク通信の効率を上げるためのアルゴリズムです。具体的にはNagleアルゴリズムでは以下の条件を満たすまでパケットを送信せず、バッファに保管します。

  • 未送信のデータが最大セグメントサイズ以上になる
  • 過去に送信されたパケットのうち、ACK未到達のパケットが空になる
  • Nagleアルゴリズムのタイムアウトが発生する

なお、Nagleアルゴリズムの設定は、各アプリケーションに委譲されているため、ユーザが個々で設定を変更するのは困難です。

ACKとは、TCP/IPでの3ウェイハンドシェイクのために送信されるパケットの一種で、具体的には、相手に通信肯定を確認するためのパケットです。一般にTCP/IPでは通信が行われる前にこのACKパケットが相手に送信され、相手から同じようにACKパケットが来るのを待ってから、ペイロードが送信される仕組みを取っています。

遅延ACKとは、低速ネットワーク向けに、ネットワーキングの処理フローを効率化するために設けられた実装で、複数のACKパケットをまとめて送信します。これにより、Windowsでは標準で200msの遅延が各通信に発生します。しかし、現在の高速ブロードバンドではこの設定はパフォーマンスを低下させ、よって様々な弊害を生み出します。

TcpNoDelayを有効にするためにはレジストリエディタから現在使用しているネットワークアダプタに対して値を追加します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

上のアドレスにレジストリエディタへ移動し、現在自分が使用しているネットワークアダプタを検索します。探す際の目安になるのがDHCPアドレスです。

ここにDWORDとして名前を「TcpNoDelay」、値を16進で1にセットしてください。この値を0にするとTcpNodelayを無効に、1にすると有効に設定することができます。

ネットワークアダプタによる設定

チェックサムのオフロード

チェックサムのオフロードとは、ipv4通信をする際に、通信時に誤りビットがないか確認するための機能です。

通常、ipv4通信ではこの誤り検出を通信フローに組み込んであるため、通信のたびに余計なオーバーヘッドを抱えています。詳細に云えば、1パケットごとに送信前のチェックサムと受信後のチェックサムが等しいかを計算し、計算が終わるまではネットワークは通信を停止します。

この機能は通常の通信においては、ネットワークの負荷を低減させるために非常に重要な機能でありますが、ゲーム時の通信のような、一切の遅延が許されない環境においては逆効果と言わざるを得ません。

よって、ゲームプレイ時にはこの機能をオフにする必要があります。オフにする方法は、ネットワークの設定からアダプターオプションの設定を開き、現在使用しているネットワークインターフェースのアダプターを選択、詳細プロパティを開きます。

ここのIPv4チェックサムのオフロードを無効に設定します。