見出し画像

RFC1からTCPが生まれるまでのBob Kahnの思考を辿る(1)

先日に50歳を迎えたRFC1という書いたが、RFC2以降も現在のインターネットの仕様とは程遠いアバウトな議論が続く。この初期のRFCにたびたび登場するBob Kahnにスポットを当て、TCPを発明するまでの思考を追いかけながらRFCを読んでみたい。

まずはWikipediaで予習から。

At year's end, ARPA considered only two contractors, and awarded the contract to build the network to Bolt, Beranek and Newman Inc. (BBN) on 7 April 1969. The initial, seven-person BBN team were much aided by the technical specificity of their response to the ARPA RFQ, and thus quickly produced the first working system. This team was led by Frank Heart and included Robert Kahn. The BBN-proposed network closely followed Roberts' ARPA plan: a network composed of small computers called Interface Message Processors (or IMPs), similar to the later concept of routers, that functioned as gateways interconnecting local resources.

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に連絡先として登場する。

1. Bob Kahn, BB&N
2. Larry Roberts, ARPA
3. Steve Carr, UCLA
4. Jeff Rulifson, UTAH
5. Ron Stoughton, UCSB
6. Steve Crocker, UCLA

https://www.rfc-editor.org/rfc/rfc3.txt

当時、Webもメールも存在していなかったのだから郵便でやりとりしていたのだろう。その連絡先は「ホスト」を持つ4つの大学とARPA、そして「IMP(現在のルータに相当する装置)」を扱う1つの企業であるBB&Nだけが掲載されているシンプルなものだ。BB&Nは連絡先の最初に掲載されてはいるものの、ARPANET自体の仕様を発案するというより、技術的なアドバイザとして貢献する。

そのことがRFC6のタイトルにあらわれている。その名も「CONVERSATION WITH BOB KAHN」だ。

I talked with Bob Kahn at BB&N yesterday. We talked about code conversion in the IMP's, IMP-HOST communication, and HOST software.

BB&N is prepared to convert 6, 7, 8, or 9 bit character codes into 8-bit ASCII for transmission and convert again upon assembly at the destination IMP. BB&N plans a one for one conversion scheme with tables unique to the HOST. I suggested that places with 6-bit codes may also want case shifting. Bob said this may result in overflow if too many case shifts are necessary. I suggested that this is rare and we could probably live with an overflow indication instead of a guarantee.

RFCなのに「昨日、Bob Kahnと話した」という大雑把な書き出しが新鮮だ。会話の中身は8bitのアスキーを6〜9bitに変換しようというもの。後にVint CerfがRFC20で「7bitにしようぜ」と提案する。後のBase64だ。

BBNおよびKahnは表舞台には出ないが裏で着々と仕様を策定している。それは、このような形でRFCに現れる。

The first section is closely related to the BBN reports No. 1822 and 1763[1] and specifies the HOST functions for exchanging messages. It mostly deals with links and connections, message structure, transactions, and control messages.

RFC11の執筆者はUCLAのG. DelocheでHost - Hostの通信に関する議論だが、中身は「BBN Report No.1822」というBBNのドキュメントへの参照が頻出する。要するにARPAで議論されているHost-Hostの通信プロトコルは、BBNが作ったIMPのプロトコルがベースとなっているわけだ。この1822は1981年にRFC793でTCPが発表された後もRFCの中でたびたび言及されている。ミネソタ大学のインタビューでKahn本人が1822は自分が書いたと発言している。

Let me put it this way: the most visible public aspect of the whole project was the guidance that went out to everybody as to how to connect to the network and make it work. That was a fairly thick document that we wrote early on. It was called RFC 1822 or BBN report 1822. I wrote that.

RFC29で、ようやくBob Kahn本人がRFCを出す。

A "millisecond" clock should be satisfactory for most network measurements. Round-trip message transit times typically should be at least on the order of tens to hundreds of milliseconds. The IMP contains a 16-bit hardware clock which is incremented every 100 microseconds to allow for timing of internal events within the IMP, as for example, during tracing. However, most measurements are made using a 25.6 ms. software clock.

「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

I think I joined them in October of 1966, and I stayed there until October of 1972, so I was there just about six years. When I joined them my thought was to go back to MIT, but we got involved in the ARPANET project, which I can explain. I had to make a determination. Do I go back or do I stay with the ARPANET project? I opted to stay, figuring if they didn’t want me in five years, then going back now was probably not the right thing, and I wanted to see this project through. I started working on networking when I was at BB&N because I found it an interesting topic.

1972年にBBNを辞めてMITに戻るかARPANETの一員となるか迷ったらしい。もしBob KahnがARPANETを選ばなかったらTCP/IPはどうなっていたのだろう?

ということで続きは明日に。

調べている途中に、このあたりを描いた洋書が出てきた。Kindleでも読めるので興味ある方はどうぞ。


この記事が気に入ったらサポートをしてみませんか?