自宅などのインターネット回線を使って、Windowsパソコンをインターネットに接続したとき、一部のサイトだけ開けない、通信速度が異常に遅い、通信が頻繁に切断されるといったトラブルに見舞われることがあります。
このようなトラブルで、回線そのものに問題がない場合、原因の一つとして挙げられるのが、ネットワークアダプターのMTU設定が最適化されていないケースです。
特にPPPoE接続などを使ってインターネットに接続している場合、ネットワークアダプターのMTU設定を調整しないと、上のようなトラブルに遭遇するケースがあります。
そこでここでは、Windows 10でネットワークアダプターのMTU設定を最適な値に調整する方法を紹介します。
目次
MTU(Maximum Transfer Unit)とは
MTUとは、パソコンなどのネットワーク機器が一度に送受信できるパケットのデータ量を表しており、Windowsではデフォルトで1500バイトに設定されています。
一般的なインターネット接続環境では、デフォルト設定のままで問題ありませんが、PPPoE接続などを利用している場合では、MTUのを最適な値に変更しないと、一部のサイトだけ開けない、通信速度が異常に遅い、通信が頻繁に切断されるといった現象に見舞われることがあります。
MTUを最適な値に変更する
MTUを最適な値に変更するには、自分の環境での最適値を見つけて設定する必要があります。
最適化の必要性を確認する
まず、コマンドプロンプトを起動して、以下のコマンドを実行します。
> ping -f -l 1500 www.yahoo.co.jp
コマンドの実行結果が以下の画像ように「パケットの断片化が必要ですが、DFが設定されています。」と表示され、パケットが損失している場合は、MTU値の変更が必要です。
なお、以下の画像のように正常に応答されている場合は変更は不要です。
最適値を見つける
つぎに、pingコマンドを使ってパケットが断片化されない境界値を見つけます。
よくあるパケットサイズは1426バイトなので、まずこの値で以下のコマンドを実行します。
> ping -f -l 1426 www.yahoo.co.jp
コマンドの実行結果に「パケットの断片化が必要ですが、DFが設定されています。」と表示されている場合は、1426から値を1ずつ減らしてコマンドを実行し、コマンドが正常に応答された場合は、1426から値を1ずつ増やしてコマンドを実行します。
これを繰り返して、コマンドが正常に応答するぎりぎりの値を見つけ、その値に28を加えた値が、その環境での最適なMTU値となります。
PINGで正常に応答したパケットサイズ+20(IPヘッダ)+8(TCPヘッダ) = 最適なMTU値
なお、手っ取り早く最適なMTU値を知りたいときは、以下のWebサイトにアクセスすることでも確認できます。
MTU値を変更する
MTU値を変更するときは、管理者権限でコマンドプロンプトを起動して、以下のコマンドを実行し、MTU値を変更するネットワークアダプターの「インターフェース番号」を確認します。
> netsh interface ipv4 show interface
コマンド実行結果の一番左の列がインターフェース番号で、ここでは例としてインターフェース番号「16」のネットワークアダプターを対象にMTU値を変更します。
変更対象のインターフェースは、一番右側の列に表示されているインターフェースの名前で判断しましょう。
ネットワークアダプターの「インターフェース番号」を確認したら、その値を指定してMTU値を先ほど調べた最適な値に変更します。
> netsh interface ipv4 set interface 16 mtu=1430
コマンド実行後「OK」を表示されていれば、再度以下のコマンドを実行して、MTU値が変更されていることを確認します。
> netsh interface ipv4 show interface
以上で作業完了です。
あとがき
最近では、PPPoE接続を利用することも少なくなり、MTU値の変更が必要なケースはほとんどないと思いますが、一部のサイトだけ開けない、通信速度が異常に遅い、通信が頻繁に切断されるといった現象に見舞われたときは、試してみる価値があるでしょう。
また、端末側の設定だけで解消しないときは、インターネット接続用のルーターの設定でもMTU値を変更できる場合は、上で調べた値に変更することで解消することがあるでしょう。