MTU値という言葉を聞いたことがありますか。オンラインゲームをプレイ中に動作の遅延が発生したり、特定のWebサイトが見れなかったりしたことはありませんか?これらのネットワークの問題の原因として、MTUが適切に設定されていない可能性があります。MTUはネットワークの転送時に利用される値で、ネットワークにデータを効率よく転送するために、重要な役割を果たしています。この記事では、MTUという言葉の定義と変更方法、及びオンラインゲームやWebブラウジングにおけるMTU変更の有効性についてご紹介します。
MTUとは?変更して最適化するとどうなる?
では、そもそもMTUとはどのような言葉なのでしょうか?その意味について解説し、変更方法や最適な値についてご紹介します。
MTU値とは
MTU(Maximum Transmission Unit)とは、1回の通信で転送できるデータの大きさの最大値です。MTUは、通信に利用するメディアや、経路上で利用する通信の方式よって定められています。その単位はバイト(Byte)です。
例えばPCによく付属している有線LANでは、Ethernetという規格が採用されており、そのMTUサイズは1500と決まっています。
つまり、PCからLANケーブルを使ってデータを送信する際には、1つあたり最大で1500バイトのデータを転送することが可能であるということです。
経路MTU
経路上にある機器のMTU値の中で最小のMTUサイズを経路MTUと言います。上述したように、MTUは機器によって異なります。インターネットでは、宛先のサーバーに到達するまでに複数の機器を経由します。そのため、PCのMTUが1500だった場合でも、経路途中のルーターのMTUが1400だった場合、目的のサーバーに1500バイトのデータを1回で届けることはできません。
そのため、経路MTUは目的のサーバーにデータを届ける際に1回で届けられるデータの大きさの最大値ということになります。
この経路MTUを知ることで、自分の機器で転送するべきデータのサイズを確認することができます。
IPフラグメント
ちなみに、上記のように自分のMTUサイズよりも大きなデータが転送されてきた場合、そのデータを分割してMTUサイズよりも小さなデータにしてから運ばれます。これをIPフラグメントと言い、この処理はデータ転送の効率が非常に悪くなります。そのため、できるだけデータが分割されないようにMTUの値を適切に設定することが重要となります。
MTU・MRU・MSS
また、MTUと関連する言葉として、MRUとMSSという言葉があります。
MRU(Maximum Receive Unit)とは、MTUとは逆に、1度で受信することのできるデータの最大値を表します。MRUも機器によって定められています。
MSS(Maximum Segment Size)とは、TCPという通信の取り決めにおいて利用される、1つのデータで送信できる最大のデータサイズです。MTUとの違いは、MTUはネットワーク上で利用する機器全てに設定されているのに対し、MSSはネットワーク機器ではなく、サーバーや自分の端末といった、実際に通信をやり取りする機器上で設定するものになります。
MTU値は回線で決まる
インターネットを利用する場合、宛先のサーバーに届くまでには様々な機器を経由します。そのそれぞれにMTUは設定されているため、本来であればその1つ1つのMTUを考慮する必要があります。また、通信の方式によってもMTUが変わることは前述した通りです。その経路MTUは実測することもできますが、インターネットサービスを提供しているプロバイダーによっては回線の経路MTUを公開していたり、算出が可能なところもあります。下記がその一例ですので、参考にしてください。
インターネット提供サービス | MTUサイズ |
フレッツ光 ネクスト | 1454 |
auひかり | 1492 |
NURO 光 | 1500 |
注意が必要なのは、これらの値はサービスが提供されている部分に関しての経路MTUであるという点です。当然オンラインゲーム等のサービスを利用する場合、データはこれらの回線を経由してインターネット内の別の回線に転送されることになります。そのため、目的としているサーバーまでこのデータの大きさのまま届く事を保証しているわけではありません。あくまで参考程度に考えた方が良いでしょう。
MTUを変更して最適化
経路の途中にあるルーターに小さいMTUサイズが設定されていたり、通信方式によってMTUサイズが小さく制限されているような場合にそれよりも大きいデータを一度に送信すると、IPフラグメントが発生します。
前述した通り、IPフラグメントが発生すると、通信の効率が悪くなるだけでなく、そのデータが破棄されてしまう可能性もあります。MTUを最適化する理由とはここにあります。しかし、送信するデータを小さくしすぎてしまうと、データを送信する回数が多くなり、また効率が悪くなってしまいます。
つまり、MTUの最適化というのは、経路全体のMTUを把握し、IPフラグメントが発生しないように送信する側でデータの大きさを調整するということに他なりません。
MTU値の確認サイト(PS4・スマホ・win10から)
まず、経路MTUは、下記のようなWebサイトを利用することで簡易的に調べることができます。
http://www.speedguide.net/analyzer.php
上記のWebサイトをブラウザ等で見ると、下記のような数値が表示されています。
この中で、「MTU=」の後に表示されている値が経路MTUのサイズです。
つまりこの値は、自分の端末から上記サイトのサーバーまでの経路における全ての機器や回線におけるMTUサイズの最小値となります。もちろん、宛先のサーバーが変わればそのサーバーまでの経路は大きく変わるため、この値はオンラインゲームなどで利用するサーバーまでの経路MTUではないことに注意が必要です。
しかし、この値が1500よりも明らかに小さい場合、自分の機器のMTUを経路MTUと同じ値にすることでネットワークの問題が解決する場合もあります。
MTU値をWindows10のコマンドプロンプトで確認する
上記のサイトでは実際に利用するサーバーまでの経路MTUを知ることはできません。目的のサーバーまでの経路MTUのサイズを確認する場合、pingというコマンドで確認することができます。pingとは、通信の到達性を確認する目的で利用されるソフトウェアで、各OSにはデフォルトでインストールされています。pingというコマンドを打つことで利用することができますが、そのオプションを利用してMTUを計測することができます。
pingによるMTU計測の仕組み
pingはそのオプションで「IPフラグメントを禁止する」ことと、「データの大きさを指定する」ことができます。宛先のサーバーにある大きさのデータを送信し、少しずつデータを大きくしていくことで「IPフラグメントされない最大のデータサイズ」つまり経路MTUを確認することができます。
pingは以下の記事でも解説しています。
Windows7・8.x・10における経路MTUの計測
まず、pingを宛先のサーバーに打つにはサーバーのIPアドレスが必要です。
例えばFinal Fantasy 14では下記URLで各サーバーのIPアドレスを公開しています。
https://arrstatus.com/
IPアドレスが確認できたら、コマンドプロンプトを開きます。見つからない場合、検索バーで「cmd」や「コマンドプロンプト」と検索すると良いでしょう。
pingコマンドを利用し、データサイズを指定して送信します。
入力するコマンドは「ping -f -l <データの大きさ> -n 1 <IPアドレス>」という形式になります。-fオプションでIPフラグメントを禁止し、-lオプションでデータの大きさを指定しています。-nオプションはデータの送信回数を指定するものです。
正常にpingが通っていれば応答時間が表示され、損失は0%となっているはずです。
データサイズを少しずつ大きくした時に、応答が下記のような表示になることがあります。
「パケットの断片化が必要ですが、DFが設定されています。」という応答が返ってきました。これは、パケットの断片化、つまりIPフラグメントが必要なデータの大きさとなったことを表しており、そのデータは経路MTUのサイズを超えたということになります。ここでは1426バイトのデータは送信できましたが、1427バイトのデータは送信できませんでした。
経路MTUは、pingが正常に通った最大のデータサイズに、28を加えた値となります。ここでは1426 + 28 = 1454バイトです。
28を加える理由ですが、実はpingには最初から28バイトのデータが付随しています。これは宛先の伝達や通信状態の確認等に必要なデータであり、データの中身は1426バイトですが、PCが送信している実際のデータサイズは1454バイトということになります。
MTUを最適化する設定・変更方法
ここでは、機器に設定されているMTUを確認する方法と、その設定変更の方法についてご紹介します。
MTU変更における注意点
MTU変更における注意点についてご紹介します。まず、MTUサイズは機器のネットワーク送信時における全てのレイヤーにおいて利用される、非常に重要な値です。変更することにより、ネットワークの接続が不安定になる、もしくは接続できなくなる可能性がありますので、正確に意味を理解し、適切な値を設定する必要があります。
また、オンラインゲームはその性質上小さなサイズのデータをやり取りすることが多いです。そのような仕組みの中ではMTUサイズより大きなデータを送信することは少なく、MTUサイズの変更がネットワーク速度の解消に影響を及ぼすことはありません。しかし、大きなサイズのデータをやり取りする仕組みで作られているゲームもあります。もちろんそのような場合にはMTUサイズの変更も一定の効果がある可能性があります。
MTUサイズを変更することで効果がある可能性があるのは、例えば下記のような場合です。
1.計測した経路MTUが1500よりも小さく、一部のWebサイトが開けなかったり、オンラインゲームで動作遅延があるなどの問題が発生している
2.IPv6を利用していて、明らかにIPフラグメントによる通信障害が発生している。
3.大きなデータを送信する時のみネットワークの速度が非常に遅くなったり、そもそも通信エラーになってしまう
もしMTUサイズを変更しても効果が表れなかったり、ネットワークの接続に問題が生じるようであれば原則として元に戻すようにしましょう。
MTUの最適値とは
機器のMTUの最適値の決定は難しいですが、先程計測した経路MTUの値が1500よりも小さい場合、経路MTUの値に合わせることが1つの最適値となります。通常のOSやゲーム機では1500で設定されており、回線の経路MTUよりも大きな場合が多いです。しかし、経路MTUの値と同じ、もしくは少し小さい値を設定することでIPフラグメントの発生を抑制する効果が期待できます。
MAC
MACで設定しているMTUサイズは、「システム環境設定」->「ネットワーク」から確認することができます。
自分の接続しているネットワークを選択し、「詳細」をクリックします。
「ハードウェア」タブを選択すると、MTUを確認することができます。デフォルトでは自動で構成されており、MTUは1500が設定されています。
構成を「手動」に切り替え、MTUを「カスタム」に変更すると、MTUを変更することができます。任意の値を入力し、「OK」をクリックします。
「適用」をクリックすることでMTUサイズの変更が適用されます。
Windows7・8.x・10
Windowsでは、コマンドプロンプトを利用して機器のMTUを変更します。
まずは、コマンドプロンプトを管理者として実行します。
「netsh interface ipv4 show interface」というコマンドを入力することで、現在の各ネットワークメディアに設定されているMTUの値を確認することができます。デフォルトでは、1500となっています。
自分のインターネットに通信しているメディアのMTUの値を変更しましょう。MTUの変更は、「netsh interface ipv4 set interface <メディアのIdx番号> mtu=<設定したいMTU値>」というコマンドで変更できます。
「OK」と表示されればMTUの変更は完了です。
PS4のMTU最適値と設定
PS4もMTUサイズを変更することが可能です。最適値と設定の変更方法についてご紹介します。
PS4のMTUの最適値は?
PS4もPCなどと同じEthernet規格に準拠したLANポートが装備されています。また、無線LANを利用した場合もMTUサイズについての考え方は全く同じです。そのため、PCと同様に、経路MTUの値が最適値の1つと言えます。
PS4のMTU設定方法
PS4では、「設定」の「ネットワーク」からMTUを変更します。
「インターネット接続を設定する」の項目で、「カスタム」を選択します。
接続したいネットワークを選択すると、ネットワーク設定について詳細を設定することができるようになります。MTUの項目で、任意のMTUを設定します。他の項目がわからない場合、「自動」を選択するようにしてください。
Switch(スイッチ)のMTU最適値と設定
Nintendo SwitchでもMTUサイズを変更することが可能です。最適値と設定の変更方法についてご紹介します。
Switch(スイッチ)のMTUの最適値は?
Nintendo SwitchでもPCやPS4等と同じ通信方式や規格を利用しているため、MTUの最適値についても同様に考えることができます。しかし、Nintendo SwitchではデフォルのMTUサイズとして1400が設定されています。この状態で正常に動作している場合、MTUの値を変更することは避けたほうがよいでしょう。
例えばそもそもインターネットに接続できない等、明らかに通信環境に異常が発生している場合はIPフラグメントによりデータが正常に送信されていない可能性があるため、1400から少し小さくして(1300~1350程度)ネットワークの状態を確認すると良いでしょう。また、接続できるものの時折速度が劇的に遅くなるような場合に、ネットワークの混雑や回線のスループットの問題でないと判断できるときには経路MTUの値を設定して挙動を確認しても良いと思います。
Switch(スイッチ)のMTU設定方法
「設定」の「インターネット」-> 「インターネット設定」を開きます。
接続しているネットワークを選択し、「設定の変更」を選びます。
設定項目の中からMTUを選択し、サイズを変更します。デフォルトでは1400になっています。
まとめ
MTUとは、各機器や通信方式によって決められている1つのデータで送信できる最大のデータサイズです。経路上のMTUを計測し、送信機器側で設定を変更することで、IPフラグメントの発生を抑制し、ネットワークの転送効率を高めることができます。
これにより、特定のWebサイトがそもそも見えなかったり、オンラインゲームのネットワーク遅延といった問題が解消される可能性があります。しかし、ネットワークの問題がMTUの設定の問題であるかという判断は難しく、その扱いには注意が必要です。一度MTUの設定変更を行っても通信の状態が変わらない場合、元に戻すという選択も考慮に入れておきましょう。