Negitaku.org e-Sports > Counter-Strike > ニュース > クライアントのネットワーク設定

ニュース

Counter-Strike クライアントのネットワーク設定

cl_updaterate

クライアントがサーバーにデータを要求する頻度。
単位はper second、デフォルトでは20となっている。 単純に考えると

1000 / 20 = 50ms

最大で50msの待ち時間が考えられる。平均値を取って約25ms。 最大値の100にすれば

1000 / 100 =10 ms

と理論上はLatencyを減らすことができる。しかしサーバーによってはChokeが発生する原因ともなる。

これをあげるとnet_graph 3での
Inの値のレートが大きくなっていることに気づく。
標準ではsv_maxupdaterate 60とサーバー側の
上限があるので60以上も意味がないかもしれない。
とりあえず20はISDNやモデムの設定、とのことらしいので
20 - 60程度の間で適当に決めるのがいいかもしれない。
ただしChokeが出るようだったら 下げたほうがいいだろう。

cl_cmdrate

クライアントがサーバーに送るコマンド(操作全般)の頻度。
単位はper second、デフォルトでは30となっている。
これをあげるとnet_graph 3でのOutの値のレートが
大きくなっていることに気づく。
cl_cmdrateが低すぎると送信するコマンドが多いときにラグを感じる。

具体的にはcl_cmdrate 10で
武器をカチャカチャ切り替えながら走ってみればわかる。
これも大きすぎるとサーバーに負荷がかかる。
これも30 - 60程度の間で適当に。

rate

転送速度の設定。単位は Byte/S。単純に考えると6000だと6Kbyte/s、48Kbps必要な計算になる。
rateだけを上げてもあまり意味がない。この設定を転送量が超えるとchokeとなる。
試しにrate 1000、cl_updaterate
100、にしてみればChokeが100ぐらいになり、Latencyが 大幅に増えるのがわかるはず。

ただしローカルで試す場合はサーバーを
sv_lan 0にしないとクライアントのrateが無視されるようだ。
サーバー側ではsv_maxrate、sv_minrate
で上下限が決められている。あまり上げてもサーバーに負荷がかかる。
ADSL以上の回線ならなら6000以上はあった方がいい。
LANなら25000ぐらいにしといて問題ない。

また、サーバーがsv_lan 1の場合、rateは適切な値に設定される。

実際の転送速度はrateを基準に

  • rate < sv_minrate のとき
    sv_minrate
  • rate > sv_maxrate のとき
    sv_maxrate
  • sv_minrate < rate < sv_maxrate
    のとき rate

    が採用される。

    fps_max

    fpsの上限。HLエンジンの仕様で100が上限。
    Vsyncをオンに設定している場合は、Refresh rateの制限もつく。
    ネットワークに関わらず、スペックがあるなら100にしておくべき。
    通信はクライアント、サーバーのfpsにも基づいている。
    よってfpsが低いとかなりLatencyが高くなる。
    試しにfps_max 20程度に設定してみれば
    Latencyがかなり増えることがわかるはず。

    1000 / 100 =10 ms

    fps100でも1フレーム10msなので、50切ってるようだったらLatencyよりまずは新しいPCを買うべき。

    fps_modem

    オンラインでのfpsの制限。 0にしておかないと、そのfpsに制限されてしまう。

    LAN上のLatencyと設定の対応表

    pingboost
    cl_updaterate
    cl_cmdrate
    fps_max
    latency(ms)
    in(k/s)
    out(k/s)
    in
    out
    0
    20
    30
    100
    12
    1.52
    1.78
    57
    36
    0
    30
    40
    100
    9
    1.7
    1.85
    39
    30
    0
    60
    60
    100
    18
    3.39
    3.12
    34
    27
    0
    100
    100
    100
    18
    3.67
    5
    34
    24
    0
    100
    100
    20
    28
    1.7
    1.18
    34
    24
    0
    10
    100
    100
    29
    0.98
    4.49
    34
    25
    0
    100
    10
    100
    18
    1.2
    0.85
    34
    51
    2
    20
    30
    100
    14
    1.39
    1.65
    39
    34
    2
    30
    40
    100
    7
    1.7
    1.83
    34
    30
    2
    50
    40
    100
    6
    2.25
    2.15
    39
    30
    2
    60
    60
    100
    7
    2.7
    2.7
    39
    29
    2
    100
    100
    100
    8
    3.85
    5.49
    34
    24
    2
    100
    100
    20
    23
    1.78
    1.31
    34
    25
    2
    10
    100
    100
    15
    1.01
    4.72
    34
    28

    LAN上でのLatencyと設定の対応表を作ってみた。
    サーバーはLAN内にあってPen!!!800 / RAM 256MB / Linux hlds_l_3110。
    オプションは

    -game cstrike +maxplayers 20
    +map de_aztec -nomaster +sv_lan 1 -pingboost 2

    0の方は-pipngboost無しで起動。
    +showscoresで最も安定したLatencyを書いた。

    In-Outは静止した状態でのnet_graph 3の値を書いた。
    実際のゲームではもっと多くの数値になる。
    サーバーはsys_ticrate 100。fpsは常に100出てると思う。
    sv_lan 1なのでrateは制限されない。
    クライアントもfps_maxの値は常に出る。
    Latency自体あまり安定しなく、不正確なので表もけっこう不正確。

    まずfps_max 20においては、Latencyがかなりあがる。

    またcl_updaterate、cl_cmdrate
    が100であるにもかかわらずIn-Outは、
    cl_updaterate 20、cl_cmdrate 30の
    値より小さくなっている。
    もしかするとfps以上の送受信は行われないのかもしれない。
    Pingboostを使用した場合は、明らかにLatencyが小さくなる。
    やはりサーバー側のfpsの影響が高いことがわかる。 標準よりLatencyが10ほど低くなる。
    updaterate、
    cmdrateは100にすればいい、というわけではないようだ。

    100にしておくとrateが足りなくて、多くのサーバーでchokeが発生する。
    実際にサーバーにつないで最適な値を見つけるのがいいかもしれない。

    スポンサードリンク

  • コメントを投稿

    コメントはまだ書かれていません。一番最初のコメントを書いてみませんか?

    コメントを書くにはログインする必要があります。

    リンクテンプレート

    リンクやトラックバックの際に、コピーしてご利用下さい。

    表示例:
    クライアントのネットワーク設定 | Negitaku.org e-Sports

    トラックバック (0)

    このエントリーのトラックバックURL:

    当サイトへのリンクを含まないエントリからのトラックバックは記録されません。

    前後の記事 最新記事

    スポンサードリンク

    SteelSeries

    DHARMAPOINT(ダーマポイント)