TcpAckFrequencyってなんぞ?

というわけで調べてみた。設定方法については後述する。文中にリンクがあります。


とりあえずぐぐると出てくるのは下記
http://support.microsoft.com/kb/328890/ja

概要
TcpAckFrequency は、未解決の TCP 受信確認 (ACK) 数がいくつになったら遅延 ACK タイマを無視するかを決定する、

「TCP」はネットワーク通信時の方法であり、ACKはその手続きのひとつ。ACK(アック)は機械制御なんかだと良く出る単語でありOKサインだと思って良い。未解決のTCP受信確認数とは、ACKを返す状況であるけどまだACKを返してない、滞留しているのがいくつあるかということ。
もうちょいおおざっぱに言えば、Windows自体が意図的に0.2秒ラグらせる機構を持っているということ。


下記からTCP通信シーケンスの図を拝借すると
http://www.nina.jp/server/basic/tcpip.html

ACKはこれの3番目の部分に当たる。


先頭のSYNで「接続させてー」と要求を出し、サーバ側からSYN+ACKで「接続してOK」と返答。そしてクライアント側のACKで「今から送ります」という流れになる。
黒の矢印内で実際のデータが送信され、最後のFINをクライアントかサーバのいずれかが投げると接続が終了する。


尚、注意としてここで言うTCPの接続終了≠鯖キャン(サーバからログアウト)である。実際ログイン中でもTCPの接続と終了は発生していると思われる。
(普通切れてるはずだけど、パケ見たわけじゃないので断言は避けました)


設定方法やそれによるメリット・デメリットは下記を参考に
http://ronodeley.wiki.fc2.com/wiki/%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8
(自力で書こうと思ったがSS入りまで作る気なかったので参照で勘弁)


で、このTcpAckFrequencyの値を増減させる意味は何かと言うと
通信のチューニング用途であり、小さいデータ量をパラパラと流す場合と大きいデータをドカンと流す場合で調整するとそれぞれで通信速度(正確には応答速度)が上がるというものらしい。
ネトゲだと前者に該当するが、パッチサーバやファイルサーバなど、特にMB級のやりとりをするなら逆にこの値を増やしてやる方が良いらしい。
http://www.microsoft.com/japan/technet/itsolutions/interop/sfu/perfnfs.mspx


というわけで、再起動っと・・・。