マイク・ムースは夜明け前に新しいプログラムを動作させた。その時までに、彼の同僚であるチャック・ケネディは、そのプログラムが調査するはずだったネットワークハードウェアを修理していた。ムースは、最初のテストパケットを送る前に消滅した問題のために一晩かけてツールを構築したのだった。彼はそのプログラムをpingと名付けた。[1]
1983年12月、ムースは米国陸軍弾道研究所のIPネットワークで奇妙な動作に悩まされていた。数ヶ月前に聞いたある発言が、どこから始めるべきかを示唆した。その年の7月にノルウェーで開催されたDARPA会議で、デイブ・ミルズは、メッセージがネットワークパスを移動するのにかかる時間を測定するために電子エコーのタイミングを取る方法について説明していた。ムースはそのアイデアを思い出し、コーディングを始めた。[1]
彼のプログラムは正常にコンパイルされたが、動作を拒否した。その下にあるUNIXカーネルには、彼のコードが必要とする生のICMPソケットのサポートが欠けていたのだ。ムースは自分を「激怒した」と表現した。彼は不足しているカーネルサポートも記述し、夜明け前に両方の部分を動作させた。カーミットとして知られるケネディは、ムースが最初のpingパケットを起動できるまでに、すでにハードウェアを見つけて修理していた。[1]
ムースは大学時代にソナーとレーダーのシステムをモデル化しており、その名前にはソナーの音を借りた。パルスが外向きに伝播し、エコーが戻ってくる。彼のソフトウェアは、インターネット制御メッセージプロトコルですでに定義されているメッセージ、つまりエコーとエコー応答を使用した。このプロトコルは、受信側のマシンに送信されたデータを返すよう指定していた。この交換のタイミングを計ることで、ムースは別のマシンへの往復を調査する方法を得た。[1][2]
バークレーでは、開発者たちが彼のソースコードとカーネル修正をBerkeley UNIXに取り入れた。緊急修理はpingなしで行われていたが、他の人々は、自分で夜通し修正用のコードを書かずに、そのプログラムのコピーを使うことができた。ムースは後に自身のプログラムを「千行の夜のハック」と表現し、もしそれが彼の最も有名な業績となることを知っていたら、オプションを追加するためにもう1日か2日費やしたかもしれないと冗談を言った。[1]
現代のLinuxマニュアルには、往復時間とパケット損失統計を伴う同じリクエストとリプライの交換が記述されている。また、可聴オプションも提供されている。このプログラムは、リプライが到着したときに音を出すことができ、新しい行が表示されるのを監視する代わりに、動作中の接続を聞くことができる。[3]
USENIX会議で、ムースは、その「聞く」というアイデアをさらに大きく発展させた管理者についての話を聞いた。ムースが記録した話によると、その男性はpingをボコーダーに接続し、その出力をオフィスステレオを通して流し、耐えられる限りの大音量で音量を上げた。彼が建物内を歩き回り、イーサネットコネクタを揺らしながら、1秒に1回、コンピュータは「Ping、ping、ping...」と叫んだ。[1]
ムースはそれを聞いた中で最高のpingの話だと評した。彼がソナーから借りたその名前は、可聴の障害発見ツールとなっていた。管理者は、叫び声が止まるまでコネクタからコネクタへと移動し続けた。その沈黙が、断続的な障害がどこにあるのかを彼に知らせたのだ。[1]
出典
写真: 弾道研究所のチャック・ケネディ(左)、マイク・ムース(中央)、ダグ・キングストン。この写真はpingが書かれた夜のものではありません。ロン・ナタリー, ウィキメディア・コモンズ, CC BY-SA 4.0。トリミングおよびサイズ変更済み;同じライセンスに基づく派生作品。






