MTU値とは?
パソコンを使用していて、「MTU値」という言葉を聞いたことはあるでしょうか。MTU(Maximum Transmission Unit)とは、ネットワークにおいて1回で送信できるパケットの最大サイズのことを表しています。
MTU値は物理媒体ごとに異なり、イーサネットのMTUは1500バイト・光ファイバー(FDDI)のMTUは4352バイトとなっています。実際には、インターネット回線を提供している会社ごとにMTUの値は異なります。
MTU値を超えたパケットの送信を行う場合は、設定されたMTU値に合わせてパケットを分割します。この処理のことを「IPフラグメンテーション」と呼び、IPフラグメンテーションが発生するとデータの分割・そして分割されたデータの結合という処理が発生してしまうために通信速度の低下が起きてしまいます。またIPフラグメンテーションが禁止されている機器を経由している場合は、通信そのものができなくなってしまうこともあります。また設定されたMTU値よりも非常に小さいパケットを送信した場合、逆に送信するパケット数が増えてしまいやはり通信速度が低下してしまいます。
ですので、MTUの最適値を調べて設定することでインターネットの通信速度を安定させることができますよ。この記事では、最適なMTU値を調べる方法をご紹介していきます。
最適なMTU値を調べる方法
現在のMTU値を調べる方法
Webサイトから最適なMTU値を調べる方法
それでは、最適なMTU値を調べる方法を説明します。まずは、WebサイトからMTU値を調べる方法を説明します。下記リンク先の「SpeedGuide.net TCP Analyzer」にアクセスしましょう。
pingコマンドで最適なMTU値を調べる方法
コマンドプロンプトでpingコマンドを使用して、最適なMTU値を求めることも可能です。ネットワークにて送信されるパケットは「TCPヘッダーの20バイト」と「IPヘッダーの8バイト」を付与して通信を行います。もし調べるMTU値が1500の場合は「1500-20-8=1472」となるため、1472がpingの値になります。
もし送信が失敗して「パケットの断片化が必要ですが、DFが設定されています。」と表示される場合はフラグメント化が起きているので、pingの値を調節して送信を行いましょう。そしてpingが成功した値があったら、その値に「28」を足した値が最適なMTU値となります。
MTU値を変更する
最適なMTU値を確認したら、変更を行いましょう。「現在のMTU値を調べる方法」で確認したネットワークアダプターの「Idx」の番号を使用します。コマンドプロンプトを起動したら、「netsh interface ipv4 set interface (Idx番号) mtu=(変更するMTU値)」と入力してEnterキーを押すことでMTU値を変更することができますよ。あとは「netsh interface ipv4 show interface」コマンドを実行して、該当のネットワークアダプターのMTU値が変更されているかどうか確認しましょう。