only"という台詞があります。only."とだけ命令を出すシーンです。その後レッドオクトーバー号から"ピンー..."というソナー音が響くシーンに続き、なるほどまさにPingだなぁと子供ながらに思ったわけです。このping、ネットワークの話では相手ホストまで通信が到達するかどうか確かめるコマンドで、ネットワークエンジニアだけでなくこの業界の人なら常識でしょう。え?pingってネットワークが生きてるかだけでポート番号とかサービスは関係無いんじゃないの?という会話を聞いたことがあります。確かにpingはポート番号のあるサービスに対して死活確認は出来ないような気がしてました。切迫したトラブルの場で「実際どうなんだ!」と聞かれると確信を持って答えられません。そこできっちり調べると、PingはIPで通信し、ICMPのType8、Echo要求を送るコマンドということです(Echo応答はType0です)。IPもICMPもL3のプロトコル、ということ。ICMPはIPの上位プロトコルなのでL4?と思いそうなのが少し混乱します。確かにパケットのデータ構造的にはL4のTCPと同じような位置にICMPがあるはずですが、とにかくIP+ICMPでL3の通信となるらしいです。L4のTCPの概念であるポート番号だとかは認識できないんです。pingはL3のコマンドだからネットワークのリンクアップしか確認できませんよとカッコいく横槍を入れてやりましょう。ちなみにIPアドレス+ポート番号に到達するか確認を行うにはWindowsなら「portqry」というツールを使うと良いらしいです。EC2を使ってみました。仮想マシンを作って起動し、IPに対してPingを打つといきなりPingが通りません。何でかというとデフォルト設定がSSH用のTCPポート22番だけ許可で、なんとICMPは遮断しています。設定でICMPを許可すればPingも通ります。上記の会話と逆でPingが通らないのにSSHには繋がるという状況にちょっとびっくり。