(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();

MTU値を久々に調べたら

最近あまり聞かないが、通信をやっていると避けて通れないMTU値。

MTUとは

インターネットを利用する際、最近は専門的な知識を持ち得なくても、結構普通に通信出来てしまっている事が当たり前になっている。
だから普段はあまり悩む事などないのが常だが、それはデフォルトで一定の設定が決め打ちで用意されていて、その設定で通信しているから、知らなくても通信できる、というのが世の中の当たり前になっている。
ところが、実はこの当たり前のデフォルト値は、あくまでも通信ができる、という事を前提にしているだけで、効率の良い通信をしているという事とは違うのである。
通信の世界では、適正な設定値は常に一定ではなく、通信経路の中で設定されている値と異なると通信ロスが発生する事もあるのである。
MTU値とは、1回の通信で転送可能な最大のデータサイズを意味する。
難しい話になるので、簡単にさわりだけ書くと、我々がよく耳にするイーサネットと、それよりも規模の大きいネットワーク層の通信で利用される規格とでは、こうした通信する仕組みが異なっていたりして、この設定値が違っていたりする。その食い違いを各通信機器が吸収し、大きすぎるデータを分割したりする。この分割処理の事をIPフラグメンテーションという。
通信をより効率よく行うには、このIPフラグメンテーションが起きないデータサイズにする事が理想なのだが、これを調整するため、MTU値を変えるのである。
イーサネットではこのMTU値は1,500と定めているので、基準は1,500になるのだが、通信経路の特定のところの機器でこの1,500と異なるMTU値にしていると、ここでIPフラグメンテーションが発生してしまう。
通信を早くする為には、このIPフラグメンテーションを起こさないようにする事が重要で、そのためにMTU値を変更して対応する。
実際には、IPv4通信において、このMTU値が異なっていたとしても、IPフラグメンテーションを通信パケットの送信回数を増やす事で解決してくれるので、通信できないという事はないのだが、最適値にする事でバケット送信回数を減らし、通信そのものを速くする事ができる。
で、このMTU値を推し量る事ができるサイトがある。ここで調べると、現在の環境としてのMTU値が判る。

一度調べて見る価値はあるかもhttps://www.speedguide.net/analyzer.php

PPPoEとIPoEで違う?

で、以前PPPoE通信をしていた時は、ウチのMTU値は「1454」だった。
それを数年前、IPv6に移行するとしてIPoE通信に切替えたが、その時以来、MTU値は見ていなかった。
で、調べて見たら…なんと「1460」に変わっていたのである。
通信経路が変わった事で、MTU値が変わったようである。
今年の年始に新PCを組み上げた事、現在はIPv6に移行した事、少なくともこの2点において以前とは環境が異なっているので、一度MTU値を見直す事にした。
イーサネットは規格上MTU値を1500としているので、Windowsでのイーサネット機器はMTU値が全て1500に設定されている。
なので、まずOSでコントロールしているイーサネットに関してMTU値を1460にした。
これは管理者権限のコマンドプロンプトで直接設定した。
まず最初に以下をコマンドプロンプトに入力した。

netsh interface ipv4 show interface

これを実行するとOSでIPv4通信するデバイス情報とその状態が表示される。
表示されているイーサネット、Wi-Fiに関するデバイスのIdxを指定して、MTU値を変更するが、その変更は以下のコマンドで実行する。

netsh interface ipv4 set interface (Idx番号) mtu=1460(MTU値)

たとえばIdx番号が3ならば、以下のようになる。

netsh interface ipv4 set interface 3 mtu=1460

複数のデバイスがあるようなら、これをデバイスの数だけ実行する。
Windowsの設定はこれで良いのだが、ここでそういえばルーターはどうなってるんだろう? と思いつき、WXR-5950AX12のMTU値を確認してみた。
すると…なんとこちらも1500になっていたので、コイツを1460に設定しなおしてみたところ…大問題が発生。なんとインターネットへの接続が全くできなくなったのである。

ルーターは元に戻す

大前提として、インターネットへのリンク確立ができなくなっては意味がない。
という事で、WXR-5950AX12のMTU値をとりあえず元の1500に設定し直す。
正直、WXR-5950AX12はヒトクセもフタクセもあるので、通信ができなくなったというだけでドキドキモノである。
とりあえず元に戻した段階でv6プラスのリンクが確立できたので、これ以上、設定を追い込む事は止めることにした。
とりあえずWindowsのイーサネットはMTU値を1460にする事ができたので、PCからの送信データサイズは1460の設定値で今後は通信できるだろう。
しかし…なぜルーターのMTU値を変更したのがマズかったのだろうか?
この辺り、私の知識が中途半端なのも問題だと言える。

ちなみにこのMTU値だが、PCだけでなくNintendo SwitchやPlayStation4、5でも設定値がある。
どこかのタイミングでこれらも見直す事で通信の効率化は図れるのではないかと思うが…判らなければ触らない、という方がよいのかもしれない。

この記事が気に入ったら
いいね!しよう

Share
アバター画像

武上

18歳の時、人生の最大の選択ミスをしてしまい、いきついた場所として山梨県人となる。 その後、建設業に身を投じ、資格をいくつか取得するものの、結局自分の性格と合わない事を理由に上京。 上京後、世間で話題になりつつあったアニメ・ゲームを主体とする業界の人間となり、デジタルコンテンツ業界を含む数々の著名人と同じ土俵でマルチメディアな仕事をするに至る。 一見華やかなメディアの世界の、その闇の深さたるやハンパない事こそ世間に何となく知られてはいるが、業界人しか知らないその氷山の全体像を十分すぎるほど目の当たりにした後、家庭の事情で再び甲州へと帰還。 しかし、この帰還も人生の選択ミスだったかもしれないなぁ…と今では思うものの、時既に遅し。 今は地元の製造業を営む会社の総務・品質保証という地味ではあるものの堅実な職につき、いつか再びやってくるだろう夢の実現を信じて隠者的生活を送っている…ハズだったのだが、またしても周囲の事情で運命は波乱の様相を見せ始めた。 私の人生は一体どの方向を向いているというのだろうか? ちなみに筆者はPCとの付き合いはかなり長いと思っている。 古くはPC-8801 mk2 SR、X1 Turbo、X68000、FM-Towns、PC-9801シリーズ(互換機含む)、PowerMAC 9500等をリアルタイムで使い、その後は、Windows PCの自作機を中心に現在に続いている。 デジタルガジェットに関しては興味もある事から、その時代の時々において、いろいろ使ったり調べたりして、専門家ほどではないが知識は蓄えてきたと思っている。 そうした経験を元に、今の時代へ情報発信させてもらっている。少々くどい言い回しが多いかも知れないが、お付き合いいただけるとありがたい。 連絡先:takegami@angel-halo.com (@を小文字にしてください)

You may also like...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


コメントは承認待ちです。表示されるまでしばらく時間がかかるかもしれません。

Desktop Version | Switch To Mobile Version