おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ
ネットワークレベルでサーバーと通信ができるか確認できる「ping」コマンドは、1983年にUNIXコマンドとして開発されて以来、サーバーの死活監視や通信速度の測定など、あらゆる場所で使われているコマンドです。そんなpingコマンドを開発したマイク・ムース氏は、2000年11月20日にレストランからの帰宅途中、高速道路で玉突き事故に巻き込まれて亡くなっていますが、ムース氏により「ping」コマンド開発秘話が綴られたブログ「The Story of the PING Program」はムース氏の没後20年となる2020年現在も閲覧することができます。
The Story of the PING Program
https://ftp.arl.army.mil/~mike/ping.html
ムース氏がpingコマンドについて語っているブログはアメリカ陸軍研究所のFTPサーバー「ftp.arl.army.mil」上に保存されており、ムース氏の事故死から20年たった2020年においても閲覧することが可能。20年前のブログであるため、装飾のないシンプルなデザインとなっています。
pingはICMPパケットを利用して通信先のマシンとの距離を測るコマンド。コマンド名の「ping」に対してはのちに「Packet INternet Groper」のバクロニムがつけられていますが、ムース氏は大学在学時にソナーやレーダーシステムのモデリングを経験したことから、ソナーの発する音にちなんで命名したとのこと。典型的なpingメッセージはこんな感じで、ICMP_ECHOパケット送信元のIPアドレスや遅延、ロスしたパケットの割合などを確認することができます。
PING vapor.arl.army.mil (128.63.240.80): 56 data bytes 64 bytes from 128.63.240.80: icmp_seq=0 time=16 ms 64 bytes from 128.63.240.80: icmp_seq=1 time=9 ms 64 bytes from 128.63.240.80: icmp_seq=2 time=9 ms 64 bytes from 128.63.240.80: icmp_seq=3 time=8 ms 64 bytes from 128.63.240.80: icmp_seq=4 time=8 ms ^C ----vapor.arl.army.mil PING Statistics---- 5 packets transmitted, 5 packets received, 0% packet loss round-trip (ms) min/avg/max = 8/10/16
ムース氏がpingコマンドを開発するきっかけとなったのは、1983年7月にノルウェーで開催された国防高等研究計画局の会議にて、デイヴィッド・L・ミルズが発表したICMPパケットによる通信遅延を計測するシステム「Fuzzball」だったとのこと。
ムース氏は4.2a BSD UNIX向けに手早くAF_INETソケットを利用したpingコマンドを書き上げましたが、当時のUNIXカーネルはICMPパケットを直接サポートしていなかったとのこと。ムース氏はUNIXカーネルが直接ICMPパケットを扱えるようにサポートを追加することで、無事プログラムを動作させることができたそうです。「もしpingプログラムが私の人生で最も有名な功績になると知っていたら、もう数日かけていくつかオプションを追加していたかもしれません」とムース氏。
BSD UNIXの開発元であるカリフォルニア大学バークレー校はムース氏によるpingコマンドとカーネル変更を進んで取り入れ、それ以来BSD UNIXの標準機能となったとのこと。pingコマンドは無料だったこともあり、MicrosoftのWindows 95やWindows NTを含む、他のシステムにも移植されていきます。
バン・ジェイコブソン氏がICMPパケットのTTLを1つずつ加えることで経路上のルーターをリストアップするtracerouteコマンドを開発したとき、ムース氏はとても嫉妬したそうです。「その方法を思いついていればなあ」とムース氏はコメント。
pingコマンドを開発してから10年後、ムース氏はUSENIX協会から、深い知的業績とコミュニティへの奉仕を称える特別功労賞を授与されています。
・関連記事
Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE
XPまであったゲーム「ピンボール」がWindows Vistaから消えた知られざる理由とは? - GIGAZINE
Pingで死活監視して自動リブート&ネット経由で強制的に再起動できるコンセント「iBoot」シリーズ - GIGAZINE
インターネット回線速度やPing値・パケットロスをまとめて一気に測定できるHTML5で作られた通信速度測定サイト「SourceForge Speed Test」 - GIGAZINE
ネットの速度や遅延をサクッと&詳細に計測できるスピードテストサイトがCloudflareから登場 - GIGAZINE
・関連コンテンツ