先日に50歳を迎えたRFC1という書いたが、RFC2以降も現在のインターネットの仕様とは程遠いアバウトな議論が続く。この初期のRFCにたびたび登場するBob Kahnにスポットを当て、TCPを発明するまでの思考を追いかけながらRFCを読んでみたい。
まずはWikipediaで予習から。
ARPAはRFC1が公開されたのと同じ1969年4月7日にBBN(Bolt, Beranek and Newman)という会社と契約する。このBBNの7人のチームに、後にTCP/IPを発明するBob Kahnがいた。Wikipediaの説明が正しければ左から5番目の黒いシャツが当時30歳のBob Kahn。若いな。
そのBBNチームとBob Kahnの名前はRFC3に連絡先として登場する。
当時、Webもメールも存在していなかったのだから郵便でやりとりしていたのだろう。その連絡先は「ホスト」を持つ4つの大学とARPA、そして「IMP(現在のルータに相当する装置)」を扱う1つの企業であるBB&Nだけが掲載されているシンプルなものだ。BB&Nは連絡先の最初に掲載されてはいるものの、ARPANET自体の仕様を発案するというより、技術的なアドバイザとして貢献する。
そのことがRFC6のタイトルにあらわれている。その名も「CONVERSATION WITH BOB KAHN」だ。
RFCなのに「昨日、Bob Kahnと話した」という大雑把な書き出しが新鮮だ。会話の中身は8bitのアスキーを6〜9bitに変換しようというもの。後にVint CerfがRFC20で「7bitにしようぜ」と提案する。後のBase64だ。
BBNおよびKahnは表舞台には出ないが裏で着々と仕様を策定している。それは、このような形でRFCに現れる。
RFC11の執筆者はUCLAのG. DelocheでHost - Hostの通信に関する議論だが、中身は「BBN Report No.1822」というBBNのドキュメントへの参照が頻出する。要するにARPAで議論されているHost-Hostの通信プロトコルは、BBNが作ったIMPのプロトコルがベースとなっているわけだ。この1822は1981年にRFC793でTCPが発表された後もRFCの中でたびたび言及されている。ミネソタ大学のインタビューでKahn本人が1822は自分が書いたと発言している。
RFC29で、ようやくBob Kahn本人がRFCを出す。
「clockには、どれぐらいの精度が必要かな」というRFCに対し、ミリセカンドじゃない?という回答をしている。IMPのベースとなったHoneywell DDP-516が1.1MHz(ということは1クロック約1ms)で動作していた。ひじょうにあっさりしてるが、仕様に関する議論はUCLAを中心とするチームの役割で、KahnはIMPの委託先として回答しているということだろう。
そんな一見、控えめなBob Kahnだが972年にBBNを離れ、ARPAに参加する。その際の心境を語ったインタビューがコンピュータ歴史博物館に残っている。
http://archive.computerhistory.org/resources/access/text/Oral_History/102657973.05.01.acc.pdf
1972年にBBNを辞めてMITに戻るかARPANETの一員となるか迷ったらしい。もしBob KahnがARPANETを選ばなかったらTCP/IPはどうなっていたのだろう?
ということで続きは明日に。
調べている途中に、このあたりを描いた洋書が出てきた。Kindleでも読めるので興味ある方はどうぞ。