Posted at

pingコマンドの意味


はじめに

昔, 研究室にいたときのネットワークにNISが使われてました.

NIS(Network Information Service)ていうのはすごく簡単に言うと, 同じネットワークに属するコンピュータ間でユーザ情報などを共有するシステムのことを指します. つまり, ローカルにはguestユーザ(とroot)しか入ってないです.

研究室の隅っこで, ガチガチにロックされた銀箱の中に大切にしまわれていたPCがありまして, その中に研究生たちのユーザ情報が格納されていました. これがNISサーバです. venus(女神)と呼んでました.


朝からログインできんのよ

つまり, ネットワークが繋がってなければ自分のアカウントにログインもできない訳です. PCの電源を入れてログインできないという事象は(なぜか)山ほどありましたが, nisサービスが正常に稼動しているかどうか調べるより先に, そもそもvenusまで繋がってるのかを調べる必要があります.

そんなときはみんなだいすきpingコマンド.

$ ping ${ホスト名 or IPアドレス}

pingはネットワーク上にあるコンピュータまでの接続経路が接続されているか, 導通を確認してくれるコマンドです. 基本的にIPアドレスを渡して使いますが, 研究室内のPCは大体ホスト名を割り当てていましたので楽でした. IPアドレスぐらいはいつのまにか覚えますけどね.

localhost(127.0.0.1)へのpingの実行結果を以下に示します.

PING 127.0.0.1 (127.0.0.1): 56 data bytes

64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.040 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.088 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.084 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.068 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.094 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=7 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=8 ttl=64 time=0.062 ms
64 bytes from 127.0.0.1: icmp_seq=9 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=10 ttl=64 time=0.084 ms
64 bytes from 127.0.0.1: icmp_seq=11 ttl=64 time=0.089 ms
64 bytes from 127.0.0.1: icmp_seq=12 ttl=64 time=0.111 ms
64 bytes from 127.0.0.1: icmp_seq=13 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=14 ttl=64 time=0.082 ms
64 bytes from 127.0.0.1: icmp_seq=15 ttl=64 time=0.085 ms
64 bytes from 127.0.0.1: icmp_seq=16 ttl=64 time=0.072 ms
64 bytes from 127.0.0.1: icmp_seq=17 ttl=64 time=0.073 ms
64 bytes from 127.0.0.1: icmp_seq=18 ttl=64 time=0.083 ms
64 bytes from 127.0.0.1: icmp_seq=19 ttl=64 time=0.088 ms
64 bytes from 127.0.0.1: icmp_seq=20 ttl=64 time=0.083 ms
64 bytes from 127.0.0.1: icmp_seq=21 ttl=64 time=0.084 ms
^C
--- 127.0.0.1 ping statistics ---
22 packets transmitted, 22 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.040/0.080/0.111/0.013 ms

こんな感じで, Ctrl+C とかで強制停止するまでずっと導通の確認が行われます.

pingさんにはちょいちょいお世話になることもあったので敬意を込めてまとめてみます. (ぐぐればあるけど)



  • 64byte -> パケットデータサイズ. 導通確認をするために送信したデータのバイト数のこと.


  • icmp_req -> 何回めの確認なのよ, て数字. pingだとICMPメッセージのタイプ0(echo replay)が使われてる.


  • ttl -> あのTTL(time to live). いわゆる有効期限ですね. 数字が0なればそのパケットは消える.


  • time -> pingコマンドを実行したコンピュータが導通確認のパケットデータを出して, 相手先からのリプライが戻ってくるまでの時間.

ちなみにネットワークに接続されていないと,

Distination Host Unreachable



と表示される. 相手先が見つからずにパケットが100%破棄される.


Option

pingのオプションについて少々.



  • -c


    • pingは, 短い間に試験のためのパケットデータを一気にネットワークや導通相手の機器に送り続けて負荷を強いる.

    • -cオプションで確認回数を制限できる.




  • -i


    • -iは繰り返し間隔を指定できる.

    • 単位は[s]




おわりに


  • /etc/init/ypbind status 見る前に, pingやるまえに, LANケーブル抜けてないかの確認大事.