サーバー構築 セキュリティ TCP/IP基礎 TIPS 書籍 ブログ

Web全体 サイト内検索

 TCP/IPの基礎知識
TCP/IPとOSI参照モデル
必須:コンピュータの情報単位
IPアドレスとその仕組み
プリフィックス値とサブネットマスク
グローバル/プライベートアドレス
ブロードキャスト/マルチキャストアドレス
 プロトコル別解説編
ARPとRARP/MACアドレス
ポート番号とは?
TCPとUDP/両プロトコルの相違
ICMPとは?
DNSとは/DNSサーバーの仕組み
VPN(PPTP/L2TP)とは
 実践ネットワークコマンド
PINGコマンド/MTU値の調整
TRACERTコマンド
NETSTATコマンド
NSLOOKUPコマンド
ARPコマンド
IPCONFIGコマンド
 各関係組織・団体
JPNIC
Whoisデータベース(VeriSign)
IANA
 


PINGコマンド/TRACERTコマンド


■Pingコマンド

それでは、ついにネットワークコマンドの実践について解説していきます。ここで紹介しているネットワークコマンドはいずれもごく基本的なものなのでしっかりと理解しておきましょう。まず、最初にICMPプロトコルを利用したコマンドである「Pingコマンド」について解説します。「Pingコマンド」とはコンピュータ同士の通信確認を行うための最も基本的なネットワークコマンドで、実装形態こそ違えど、ほとんど全てのOSに標準で実装されています。仮に、特定のコンピュータと通信をとりたい場合にこのコマンドを実行することで「ICMPエコー要求」を送出し、その宛先のコンピュータにICMPエコー要求が届いた場合に今度は反対に、「ICMPエコー応答」が返ってきます。その結果として双方間での通信確認が実現できる仕組みになっているのです(参考:「ICMPとは?」)。



ネットワークコマンドに共通することですが、実際にコマンドを使用する際にはコマンドプロンプトを使用します。「Pingコマンド」を利用する際には、コマンドプロンプト上で以下のように打ち込みます。ここで、ひとつ注意しておきたいことは、「Pingコマンド」は必ず、自分が加入しているプロバイダか、LAN内にあるコンピュータに向けて実行するようにしてください。「Pingコマンド」は相手のコンピュータが存在するかどうかを確認するコマンドゆえに、見も知らぬ他人のホスト名、もしくはIPアドレスに対して実行すると相手先にも迷惑がかかりますし、侵入の疑いがあると思われかねません(とはいえ、一度、pingされたぐらいで侵入する気だな、と思う方もいませんが)。

 ping [相手先ホスト名] または[相手先IPアドレス]


◎Pingコマンド通信確認テスト


C:\>ping www.plala.or.jp
↑ぷららに対してPingコマンドを実行

Pinging www.plala.or.jp [210.153.0.27] with 32 bytes of data:

Reply from 210.153.0.27: bytes=32 time=80ms TTL=236
Reply from 210.153.0.27: bytes=32 time=40ms TTL=236
Reply from 210.153.0.27: bytes=32 time=30ms TTL=236
Reply from 210.153.0.27: bytes=32 time=30ms TTL=236
↑パケットを4回送信。それぞれに対するリプライ状況と到達時間、TTLを表示

Ping statistics for 210.153.0.27:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 80ms, Average = 45ms


※なお、[相手先ホスト名]を指定して実行する場合には、DNSによる名前解決が可能な環境である必要があります。

Windows系OSの場合は、デフォルトで32バイトのパケットを4回送信し、それぞれに対するリプライ状況と到達時間(=ms)、TTLを表示する仕様となっています。TTL(Time to Live)値は、システムの実装によって255、または128、64から開始され、ゲートウェイ(ルータやネットワーク)を1つ超えるたびにカウントダウンされていきます。Windowsの場合は、通常は255から開始され、LAN内の端末に対してPingを打つ際は128から開始されます。上記の例で言えば、TTL値が236であるため、ゲートウェイを19回経由したことになります。なお、ここではパケットロス率(=Lost)が0%となっていますが、ロス率が100%に超えると(つまり、ICMPエコー応答が戻らない状態になると)、到達不可能の状態であることが判断できます。もし、4回送信したパケットのうち3回のICMPエコー応答が戻ってきた場合のパケットロス率は「25%」ということになります。


◎タイムアウトになる場合


Pingコマンドは、デフォルトで相手からの応答確認が4000ms(4秒)以内にないと、通信に失敗したものとみなし、「Request timed out」と表示されます。これは、コンピュータが遠い場所にあったり、ネットワークの混雑などが原因でタイムアウトになってしまうことがあります。この場合は以下のように「-w」オプションを指定することで解決することがあります。

C:\>ping 219.47.68.XXX

Pinging 219.47.68.XXX with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.
↑タイムアウトが原因で通信確認ができない


◎「-w」オプション

タイムアウトが表示された際には、オプションスイッチの「-w」を指定してタイムアウト時間を延ばしてみるのも1つの手です。以下の例はデフォルトの4秒から5秒へと時間を延長してPingを実行した例です。

 ping -w 数値(ms) [相手先ホスト名] または[相手先IPアドレス]

C:\>ping -w 5000 219.47.68.XXX




■Pingコマンドを利用してMTU値の調整

MTU(Maximum Transfer Unit:最大転送単位)値と言えば悩まされた覚えのある方も多いことでしょう。回線の速度をあげるためにRWINとMTUの値をどのくらいの値にすれば最も速くなるのかの最適値を求めるため、なんどもPCを再起動しながら試行錯誤していた様子が目に浮かんでくるようです(というか自分がそうでした)。MTUとはネットワーク層で取り扱うことのできる最大パケットサイズのことで、一般的に、Ethernetでは1500、FDDIでは4352、TokenRingでは17914とネットワークの種類によってMTUのサイズにも違いが生じるようになります。つまり、複数のネットワーク形態をまたいで転送を行うためには、必要に応じてデータパケットを最適化(=分割や結合)しなくてはならないのです。このMTUに基づき、データパケットを分割することを「フラグメンテーション」と呼び、一般的にこの作業はLANとLANを結ぶ場所に設置されるルータが担当しています。

ここではなぜ、MTU値を調整する必要があるのかについて考えていきます。皆さんもご存知のように回線種別にはADSLやCATV、光ファイバー、ISDN、アナログ回線といったさまざまな選択肢がありますが、どの回線を選ぶかによって非常に大きな速度差が生じてきます。一般的なコンピュータは通常はEthernet経由(LANボード経由)でネットワークに接続するため、MTU値は1500バイトがデフォルトの値となっています。しかしながら、インターネット上にはMTUサイズが1500バイトよりも小さな値で設定されているケースもあり、例えば、NTT東日本/西日本が提供しているフレッツADSLにおいては、バックボーン回線で生じるオーバーヘッドなどを考慮し、MTUサイズの値を意図的に1454バイトに設定しています。フレッツADSLの方はとにかくMTU値は「1454」にしておけと言われる所以はここにあるのです。

つまり、この値(1454)よりもMTU値を大きくすると通常よりも多くのフラグメンテーション(パケットの分割)が発生することになり、結果的にはヘッダ情報やエラーチェック、通信確認などのネゴシエーションが増加することになり、パフォーマンスの低下を引き起こします。したがって常にデフォルトの値である1500で利用するよりはその回線の種類や速度に応じた最適値を用いた方がパフォーマンスの向上にもつながるわけです。

そこで、MTUの最適値をどのようにして求めるのかというとPingコマンドを利用するわけです。ここでは、自分が加入しているプロバイダまでのMTU値を調べる方法について解説していきます。コマンドプロンプトを起動して以下のように入力してください。

 ping -f -l 1472 [相手先ホスト名] または[相手先IPアドレス]

 -f パケットの分割を禁止するオプションです。
 -l パケットのサイズを指定します。



C:\>ping -f -l 1472 www.plala.or.jp
↑分割を禁止して1472バイトのパケットを送信

Pinging www.plala.or.jp [210.153.0.27] with 1472 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
↑パケットを分割すれば送信できるが、フラグメント禁止フラグ(DF)が立っているため、送信不可能


ここでは「1472」を指定していますが、常に1472を入力するわけではありません。1472を指定しているのはIPプロトコル上で付与されるIPヘッダ情報を差し引いているためで、Pingコマンドで1472バイトを送信したとしても、実際にコンピュータから出力されるパケットは「実データ(1472バイト)+ICMPヘッダ(8バイト)+IPヘッダ(20バイト)=1500(最大値」となります。

上記のような実行結果は管理人がフレッツADSL回線を使用しているためで、CATVや光ファイバーを利用している方はおそらく上記のようなエラーは発生しないでしょう。これは前述したようにフレッツADSL(NTT東日本/西日本)がMTU値を1454に設定しているためです。試しに今度は、ICMPヘッダとIPヘッダ(つまり、28バイト)を差し引いて、合計パケットサイズが1455になるようにパケットを送信してみます。その場合は、「1455-28=1427」なので1427バイトをコマンドプロンプトで入力します。すると、以下のように同じ結果が返ってきたので今度は1426バイトに変更してパケットを送出します。

C:\>ping -f -l 1427 www.plala.or.jp

Pinging www.plala.or.jp [210.153.0.25] with 1427 bytes of data:

Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.



1426の値にしたらエコー応答が返ってきました。つまり、フラグメントが立っていない状態となっているため、1426にIPヘッダ情報を追加したものがMTUの最適値ということになります。ここでは、「1426+28=1454」でMTUの最適値はNTTが推奨している値と同様の「1454」になったというわけです。なお、ひとつ注意しておきたいのはプロバイダによってはセキュリティの関係上、ルータやファイアーウォールを使用してPingには応答しないように設定しているところもあります(つまり、いくらPingしても応答が返ってこない)。その場合は、他プロバイダにPingを実行して確認してみるのも良いかもしれません(ほんとは良くないんだろうけど)。

C:\>ping -f -l 1426 www.plala.or.jp

Pinging www.plala.or.jp [210.153.0.28] with 1426 bytes of data:

Reply from 210.153.0.28: bytes=1426 time=90ms TTL=236
Reply from 210.153.0.28: bytes=1426 time=60ms TTL=236
Reply from 210.153.0.28: bytes=1426 time=60ms TTL=236
Reply from 210.153.0.28: bytes=1426 time=60ms TTL=236




MTUの最適値がわかったら実際にレジストリを編集して値を変更するわけですが、間違って編集してしまうとシステムに異常をきたす恐れがあります。また、レジストリは極力、自分ではいじりたくないという方もいるでしょう。ここではいくつか作者も使用したことのあるMTU値を変更することのできるツールを一部、紹介しておきます(他にもたくさんあります)。使い方はいたって簡単なので各自で試してみるとよいでしょう。なお、これらのツールにはウィンドウサイズ(RWIN値)を設定する項目もあり、より一層の相乗効果も期待できます。一般的に、RWIN値はMTUの整数倍に設定するのが良いといわれています。より細かく設定したい方は作者のホームページのヘルプか添付のヘルプを参照するかしてください。とことんまでスピードを追求したいというかたは以下のリンクが非常に参考になるので是非、訪れてみてください。

MTU等の調整で高速接続・高速表示

インターネット接続の最適化


■NetTune

作者:みーさん
URL:http://members.tripod.co.jp/mimi1014/







■Dr.TCP

URL:http://www.dslreports.com/front/drtcp.html





 

Copyrights©KORO 2002-08 All Rights Reserved.Since 02/08/15 | サイトのプライバシーポリシー