Ping
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ping(ピング、ピン)はTCP/IPネットワークにおいて、ノードの到達性を確認するツールである。TCP/IPネットワークへの接続をサポートするOSには、大抵デフォルトで搭載されている。pingはICMPの”echo request”パケットを対象ノードに投げ、対象ノードから”echo response”が返ってくることで到達性を確認している。pingではリプライが返ってくるまでの時間や応答率から、対象ノード間のラウンドトリップタイム(RTT)やパケットロス率を求めることができる。これらは対象ノード間の回線状況を知るため重要な情報である。
目次 |
[編集] pingの歴史
1983年12月、当時アメリカ陸軍の弾道学研究所(Ballistics Research Lab)に所属していたマイク・ムース( Mike Muuss)氏が自身の管理するネットワークでのトラブルシュート用にプログラムを書いた。そのプログラムの挙動が潜水艦などで使われるアクティブソナーの発する音波(=ping)の挙動と似ていることから、pingと名づけた。後にNTPを開発したデビット・L・ミルズ(David L. Mills)氏により”Packet Internet Grouper (Groper)”、別の人より”Packed Internet Gopher”(ここでのGopherはIT用語でのGopherではなく、齧歯目のGopher)というバクロニムを授かっている。
インターネットの接続性の問題の”診断”にも有用なpingであったが、2003年末、Welchiaのようなpingをネットワークにフラッドし標的を探すタイプのコンピュータウイルスが出現したり、悪意を持ったユーザが攻撃目標の調査やネットワークに負荷をかけるなどの目的でpingの悪用を行ったため、一部のISPでICMP Type 8(echo request)パケットがフィルタリングされるようになった。
[編集] pingの出力例
以下の出力例はLinux端末からwww.google.comへ、iputilsバージョンのpingからpingを打った結果である。
$ ping www.google.com PING www.l.google.com (64.233.183.103) 56(84) bytes of data. 64 bytes from 64.233.183.103: icmp_seq=1 ttl=246 time=22.2 ms 64 bytes from 64.233.183.103: icmp_seq=2 ttl=245 time=25.3 ms 64 bytes from 64.233.183.103: icmp_seq=3 ttl=245 time=22.7 ms 64 bytes from 64.233.183.103: icmp_seq=4 ttl=246 time=25.6 ms 64 bytes from 64.233.183.103: icmp_seq=5 ttl=246 time=25.3 ms 64 bytes from 64.233.183.103: icmp_seq=6 ttl=245 time=25.4 ms 64 bytes from 64.233.183.103: icmp_seq=7 ttl=245 time=25.4 ms 64 bytes from 64.233.183.103: icmp_seq=8 ttl=245 time=21.8 ms 64 bytes from 64.233.183.103: icmp_seq=9 ttl=245 time=25.7 ms 64 bytes from 64.233.183.103: icmp_seq=10 ttl=246 time=21.9 ms --- www.l.google.com ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 9008ms rtt min/avg/max/mdev = 21.896/24.187/25.718/1.619 ms
出力例からわかることは、まずwww.google.comというURLがDNSのCNAMEレコードによりwww.l.google.comへ誘導され、64.233.183.103というIPアドレスにリソルブされている。そして64.233.183.103に向けて10回pingが打たれており(Linuxの場合はデフォルトではCtrlとCを打って止めるまで、ずっとpingが打たれる設定となっている)、出力の最後にpingの結果が出ている。
結果からわかることは以下の通りである。
- パケットは10回送信され、10回とも受信された。パケットロスは0%である。
- ラウンドトリップタイムは最短21.896ミリ秒(1ミリ秒=1/1000秒)、平均24.187ミリ秒、最長25.718ミリ秒、平均偏差は1.619である。
以下の出力例はMicrosoft Windows XP端末からwww.google.comへ、コマンドプロンプト標準のpingを使用してpingを打った結果である。
C:\>ping www.google.com Pinging www.l.google.com [64.233.183.103] with 32 bytes of data: Reply from 64.233.183.103: bytes=32 time=25ms TTL=245 Reply from 64.233.183.103: bytes=32 time=22ms TTL=245 Reply from 64.233.183.103: bytes=32 time=25ms TTL=246 Reply from 64.233.183.103: bytes=32 time=22ms TTL=246 Ping statistics for 64.233.183.103: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 22ms, Maximum = 25ms, Average = 23ms
出力例からわかることは、まずwww.google.comというURLがDNSのCNAMEレコードによりwww.l.google.comへ誘導され、64.233.183.103というIPアドレスにリソルブされている。そして64.233.183.103に向けて4回pingが打たれており(Windowsの場合はデフォルトではpingは4回ずつ打たれる設定となっている)、出力の最後にpingの結果が出ている。
結果からわかることは以下の通りである。
- パケットは4回送信され、4回とも受信された。パケットロスは0%である。
- ラウンドトリップタイムは最短22ミリ秒、最長25ミリ秒、平均23ミリ秒である。
[編集] 関連項目
[編集] 外部リンク
- The Story of the PING Program pingの作者である故マイク・ムース氏の解説(英語)
- ping.eu Ping and other online tools and services オンラインネットワークサービス