MTUの変更やTCP/IPタスクオフロード無効化でネットワークは高速化されるか実験しました

スポンサーリンク
スポンサーリンク

MTUとは、パケットが分割されずに一度に送信できるパケットサイズです。
ネットワーク内の機器などの通信環境に依存し、MTUを上回るパケットは、サイズがMTUで分割されて転送されます。
従って、PCが送信するパケットサイズをネットワークのMTU値にするのが一番転送効率が良いことになります。

TCP/IPタスクオフロードとは、TCPのチェックサム計算などを、CPUでは無くネットワークカード(NIC)に肩代わりさせることをいいます。
これによりCPUの負荷は低くなりますが、下記のように、このタスクオフロードを無効化した方が転送速度が向上するとの情報があります。

Windows Vista/7のオフロードを無効化する – 銀の鍵 (The Silver Key)

そこで、MTUの変更やTCP/IPタスクオフロード無効化でネットワークは高速化されるか測定してみました。

MTUの変更

MTUの確認・変更は下記サイトを参照して下さい。

Windows7でMTU値を変更する:それ以上でもそれ以下でもあったりします:So-netブログ

こちらの環境で確認すると、PCの デフォルトのMTUは「ワイヤレス ネットワーク接続」で1500でした。

>netsh interface ipv4 show interface
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
  1          50  4294967295  connected     Loopback Pseudo-Interface 1
 12          25        1500  connected     ワイヤレス ネットワーク接続
 11          10        1500  disconnected  ローカル エリア接続

ネットワークのMTUを確認してみると、MTU は 1454 となっていました。
PCの MTUを設定するには、下記のコマンドを管理者権限で実行します。

>netsh interface ipv4 set interface 12 mtu=1454
>netsh interface ipv4 show interface
Idx     Met         MTU          状態                 名前
---  ----------  ----------  ------------  ---------------------------
  1          50  4294967295  connected     Loopback Pseudo-Interface 1
 12          25        1454  connected     ワイヤレス ネットワーク接続
 11          10        1500  disconnected  ローカル エリア接続

管理者権限でコマンドプロンプトを開くには、コマンドプロンプトを手早く管理者権限で実行する方法 を参照して下さい。

TCP/IPタスクオフロード無効化

TCP/IPタスクオフロードを無効化するには、レジストリで下記値を設定し、再起動します。

キー HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
名前 DisableTaskOffload
種類 REG_DWORD
データ 00000001

元に戻す場合は、上記レジストリを削除するか、データに 00000000 を設定して再起動します。

測定

Windows7 32bit 上で、ワイヤレスネットワークで通信性能を測定しました。
測定には下記ツールを使用しました。

Iperf – The TCP/UDP Bandwidth Measurement Tool

5回測定し、それぞれのネットワークの通信性能を Mbps で示しています。

以下、結果です。
結論から言うと、MTUの変更やTCP/IPタスクオフロード無効化では、通信速度に変化は見られませんでした。

MTU=1500(デフォルト) & タスクオフロードあり(デフォルト)
20.1
19.7
19.8
19.2
18.4

MTU=1500(デフォルト) & タスクオフロード無効化
20.1
19.9
19.6
19.7
19.9

MTU=1454(ネットワークのMTU) & タスクオフロードあり(デフォルト)
19.6
19.7
19.8
19.3
19.7

MTU=1454(ネットワークのMTU) & タスクオフロード無効化
20.1
19.7
19.8
19.8
20.2

以上、MTUの変更やTCP/IPタスクオフロード無効化でネットワークは高速化されるかの実験でした。

参考

Windows Vista/7のオフロードを無効化する – 銀の鍵 (The Silver Key)
Windows7でMTU値を変更する:それ以上でもそれ以下でもあったりします:So-netブログ
TCP Chimney オフロード
Iperf – The TCP/UDP Bandwidth Measurement Tool

コメント

  1. 片膝飛行部隊 より:

    オフロードの無効ってping値の改善に良いって話では?

  2. パソコン鳥 より:

    コメントありがとうございます。
    おそらく、ping値にはほとんど影響ないと思います。
    ping値は単体パケットが相手ノードと往復する時間ですが、それに比べて、タスクオフロードの有無による単体パケットの処理時間差は小さいと思います。
    1パケットのサイズが大きい場合や、大量のデータを連続して送受信する場合には影響があると思いますが、記事の通り、こちらの環境では変化はありませんでした。
    最近のCPUパワーでは、タスクオフロードでネットワークカードに処理を負担させなくとも、それなりに回せているのかも知れません。
    認識不足・間違い等がありましたら、ご指摘よろしくお願いします。

タイトルとURLをコピーしました