通常、パケットを受け取ると「受け取ったよ」という応答(ACK)を返すのだが、毎回毎回返すわけではない。
Windowsでのデフォルトの動作は
- パケットを受信したらタイマー計測開始
- 受信したパケットがTcpAckFrequensyで設定された数に達するか、TcpDelAckTickesで設定された時間が経過したら応答を返す
- パケットを受信したら応答を返す
ツールを使っても出来るようですが余計な物は入れたくないのでregedit.exeを使用して以下の設定を行います。
設定前の状態はちゃんと覚えておきましょうね^^
- Windows2000の場合
以下のようにレジストリを設定します。ちなみに設定無しだと2(200ms)と見なされます。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<interface>
値の名前 : TcpDelAckTicks
データ型 : REG_DWORD
値のデータ : 0 - WindowsXP or Vistaの場合
以下のようにレジストリを設定します。ちなみに設定無しだと2と見なされます。何故、Windows2000と同じ項目を使わないのかは不明です。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<interface>
値の名前 : TcpAckFrequency
データ型 : REG_DWORD
値のデータ : 1
Vistaの場合「ファイル」→「エクスポート」で「選択された部分」を選択して「TCPオンライン用設定.reg」のようなファイル名をつけて保存します。
保存したファイルを右クリックして「編集」をクリックするとメモ帳が開きますので、以下のように今回変更を加えた項目だけにして保存します。
Windows Registry Editor Version 5.00保存したらファイルをコピーして、「TCPオンライン用設定削除.reg」のようなファイル名に変更します。
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}]
"TcpAckFrequency"=dword:00000001
変更したら右クリックして「編集」をクリックするとメモ帳が開きますので、変更を加える前の値にして保存します。以下はTcpAckFrequencyがなかった場合です。
Windows Registry Editor Version 5.00これでいつでも設定変更が可能です。
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}]
"TcpAckFrequency"=-
ドライバの更新などがあった場合はこの設定ファイルは使えなくなる可能性がありますけどね…
設定を変更したら再起動が必要らしいです。
参考資料
- Windows Sockets API プログラムを使用して TCP サーバーへデータをコピーした場合、パフォーマンスが低下する
TcpDelAckTicksについての説明があります - Windows XP および Windows Server 2003 で TCP ACK の動作を制御するための新しいレジストリ エントリ
TcpAckFrequencyについての説明があります - TcpDelAckTicks レジストリ値が Ack タイムアウトに影響しない
TcpDelAckTicksの設定が無視される不具合があった模様。2000はSP3で修正済 - TcpAckFrequency 値を 1 に変更することが影響を及ぼすことがありません。
TcpDelAckTicksの設定が無視される不具合があった模様。XPはSP2で修正済 - Windows Vista で TcpAckFrequency レジストリ エントリを変更した後、TCP 受信確認 (ACK) の動作を変更しません
TcpDelAckTicksの設定が無視される不具合があった模様。VistaはSP1で修正済
というような事も掲示板等で言われていましたが、これってMicrosoft Message Queuingの設定項目だから違うんじゃないの?って事で行わない事にしました。
参考資料
その他参考になるかもしれない資料
0 件のコメント:
コメントを投稿