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