コマンドプロンプト

【コマンドプロンプト】PingコマンドでMTUサイズの調査

更新日:

 
スポンサーリンク
   

MTU(Mazimum Transmission Unit)とはネットワーク上で一度に送信できるデータ(1パケット)のサイズの事をいいます。

PCやネットワーク機器には必ずMTUサイズが設定されていて、そのサイズを超えたデータ容量を1度に送信するとフラグメンテーション(分割)しデータの送信を行います。

フラグメンテーションされ送られたデータは送信先で再び結合処理が行われる為に、
MTUサイズを超えたデータ容量で通信を行うと分割と結合が繰り返され、ネットワーク機器の負荷が増えスループットに影響がでます。

これらの問題を発生させないためにMTUサイズを調査し、正しいMTUに調整することが必要となります。

 


スポンサーリンク

MTUサイズの調査の流れ

MTUサイズを調べるにはPingコマンドを使い指定したデータ容量を送信し、
フラグメンテーションが発生するデータ容量としないデータ容量の境目を探す方法で行います。

フラグメンテーションが発生するデータ容量から徐々に送信量を減らしていき、
フラグメンテーションが発生しなくなった時点のデータ容量がMTUサイズとなります。

この調査を行うにはpingコマンドで「データサイズを指定するオプション」と「フラグメントをさせないオプション」を設定する必要があります。
それぞれのオプションの使い方を説明します。

 

データサイズ指定オプション

パケットサイズを指定するには「-l」オプションを使います。

【書式】
ping -l <SIZE> <IP ADDRESS>
【実行例:1490bytesを指定】
ping -l 1490 192.168.0.1

スポンサーリンク

フラグメントをさせないオプション

「-f」オプションに入れ「-l」でデータサイズを指定します。

【書式】
ping -f -l <SIZE> <IP ADDRESS>
【実行例】
ping -f -l 1490 192.168.0.1

 

MTUサイズを調べる

では実際にMTUサイズを調べてみましょう。
まず最初に少し大きめのデータサイズ「1490byte」を指定しpingコマンドを実行します。

【実行例:1490bytes】

C:\>ping -f -l 1490 192.168.0.1

192.168.0.1 に ping を送信しています 1490 バイトのデータ:
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。
パケットの断片化が必要ですが、DF が設定されています。

MTUサイズを超えていると「パケットの断片化が必要ですが、DF が設定されています。」とエラーが表示されます。
続けてパケットサイズを減らして実行してください。

ある時点で実行結果が下記のように変わるはずです。

【実行例:1472bytes】

C:\>ping -f -l 1472 192.168.0.1

192.168.0.1 に ping を送信しています 1472 バイトのデータ:

192.168.0.1 からの応答: バイト数 =1472 時間 <1ms TTL=255
192.168.0.1 からの応答: バイト数 =1472 時間 <1ms TTL=255
192.168.0.1 からの応答: バイト数 =1472 時間 <1ms TTL=255
192.168.0.1 からの応答: バイト数 =1472 時間 <1ms TTL=255

192.168.0.1 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 0ms、最大 = 0ms、平均 = 0ms

このように先ほどのメッセージは表示されず、pingの応答が返ってくるようになります。
この時点でのデータサイズ(1472bytes)IPヘッダー(20bytes)ICMPヘッダー(8bytes)足したサイズがMTUサイズになります。

データサイズ:1472bytes
IPヘッダ:20bytes
ICMPヘッダ:8bytes1472+20+8=1500
MTUサイズ=1500bytes

以上がPingコマンドでMTUサイズの調査する方法です。

-コマンドプロンプト

Copyright© ぱそかけ , 2024 All Rights Reserved Powered by STINGER.