Categories |
CPUの創りかた |
Modern Compiler Implementation in ML |
NerdTV |
PDP-11シミュレータで古代のUNIXを動かしてみる |
The Yakumo Project |
やさぐれ読書録
最近のツッコミ:1.Dominic(2008-06-23 05:05)
2.CheapestCheapOEMoem(2008-06-17 03:00)
3.NewDownloadCreativAdobOEM(2008-06-12 20:00)
最近のトラックバック:1.濃縮還元オレンジニュース:プロ.. (2006-12-22 22:02)
前回に引き続き、NerdTVによる、TCP/IPの 父、Bob Kahnへのインタビューの日本語訳をお送りする。今回はTCP/IPの誕生と、インターネットの成立について語っているところ。インタビューでは23分 22秒あたりから始まる一節である。
Bob Cringely: あなたはDARPAに勤務していて、 ARPANETの構築に参加しながらその仕様 を固めたり、理論的な仕事を数多くやったりしていたわけですよね。その当時にもARPANETにはいくつかのプロトコルが存在していたはずですが、あなた は(BB&Nから)DARPAに移った後に、新しいプロトコルを作る必要があると感じていた。それについて教えてください。
Bob Kahn: そうですね、ARPANETでは理論的な研究が数多く行われていたのですが、そういった仕事 は主に、UCLAのLen Kleinrockなどのところで行われていました。UCLAでは当時、沢山の学生がネットワークのパフォーマンス予測や分析の方法を研究していたんで す。シミュレーションレベルの研究はNew York州Glen CoveにあるNetwork Analysis Corporationで、Howard Frankとその周辺の人たちが盛んに行っていました。私たちの方は実際にシステムを稼動させるためのエンジニアリングをやっていました。私たちの仕事は システムを実際に構 築するというものです。理論的な話はあまりやっていませんでした。アルゴリズムをデザインしたり、どのようにすればうまく動くようになるかということにつ いて考えてたりはしていましたが、最終的にはコンピュータ同士を接続できるネットワークを作る、というところに落ち着くわけです。コンピュータは、ネット ワーク上にある線のどれにビット列を送信するか指定したり、そのビット列がどこへ行くものか、またどこから来たものであるかを知らせたりすることは出来ま したが、それらはすべて、一つのネットワークに閉じたも のでした。もしも他のネットワークをつなげようとした場合には、ARPANETのhost protocolの仕組みでは、世界のどこかの、別のネットワークに接続された、任意のマシンを相手にするということは出来なかったのです。
Bob Cringely: それではイ ン ターネットにはならない、というわけですね。
Bob Kahn: そうです。そのようなことを実現するような努力をしない限りは。
さらに言うと、ARPANETにはコンピューティングにとって非常に役に立つ機能が、多数備わっていました。具体的に言うと、デー タを確実に送信先へ送るための仕組みで す。お互 いに ダイレクトに つながっていて、もしもデータが届かなければ、何かおかしいところがあるはずだ、という風に考えられるようにするわけです。例 えば、あなたがプリンタで何かを印刷しようとしたけれども何も出てこないということになったら、普通はどこかが故障していると思いますよね。その一方 で、例えば無線での通信といったような、より現実的な通信環境では、どこも故障していないのに通信が出来ない、ということは十分にあり得ます。例えばトン ネルの中にいるような場合だと、トンネルの中に電波を届かせるような仕組みを作らない限り、電波というのは届かないわけです。また、あなたと通信相手の間 に山があるような場合には、電波が山を通り抜けて伝わることはありません。意図的な妨害であるか、単に途中に障害物があるかを問わず、そんな状況になる場 所にあなたがいるというのは十分に考えられます。ですから、例えば無線ネットワークを使っているような場合には、通信は出来ないけれども、厳密な意味では どこも故障してはいない、ということが起こりうるわけです。
このような問題に対しては、新しい方法で対応しなければいけないと私は思っていました。信頼性が十分でない通信経路にどう対処する か、 そしてネット ワーク上にあるマシンのアドレスを指定する方法はどのようにすべきか、という二つの大きな課題があったわけです。そういった課題に対する答えとして、大幅 に見直されたプロトコルが誕生し、それを我々はTCPと呼びました。その後、インターネットに関係するプロトコルをそこから分離し、独立させることにし ました。TCP/IPという名前の裏には、そういう背景があります。IPの部分はネットワーク上のマシンのアドレスを指定する方法と、そのIPアドレスを 元に、ネットワークの経路を決めるという役目を負い、またTCPの部分は、通信データを適切に組み上げることにより、二つのマシンが直接に通信をしている ような効果をもたらすという役目を果たすことになりました。ネットワークというのは千差万別ですし、あるネットワークでは大きなパ ケットを受け付ける一方で、別のネットワークでは小さなパケットしか取り扱うことが出来ないということが起こり得ます。そのような場合には、大きなパケッ トを小さなパケットに分割して、その分割されたパケットそれぞれに、行き先のアドレスを付けてあげるという作業が必要になります。それぞれのパケットは別 々の経路を通っていく可能性があるので、そのようにしてやってきたパケットの集まりをどのようにまとめあげるか、またそれぞれのパケットが、送信データの 中のどの位置に相当するものかを知る必要も出てきます。このプロトコルがそのあたりの面倒を見てくれるというわけです。パケットの中には重複し て送られるものがあるかも知れませんし、あるいは再送信が必要となったり、順序が狂っていたり、途中で消えてしまっているものがあったりする、なんていう ケースが起こり得ますが、そのあたりをカバーするのが(TCP)プロトコルの役目です。実際に使われるネットワークの(物理的な)姿に依存せずにネット ワーク構築を可能とするよ うな、論理的なフレームワークというものを考え出すべく、大変な努力を行いました。オリジナルのデザインが優れていたところは、その後に現れたネットワー クのほぼ全てに対応し、それらを大きなネットワークの一部として取り込んでいくことが出来た点にあると思います。それも全て、土台となるネットワークが何 であるかに依存せず、 相互のやりとりの方法に焦点を置いたアーキテクチャであったという点に集約されると思います。プロトコルが分かれたのにはそのような背景があったというわ けです。
Bob Cringely: 数多くのプロトコルや技術が現れては 消え ていった中で、TCP/IPがこれだけ長く使われ続けているというのは驚異的なことだと思います。例えば、X.25が世界標準となるという話も ありましたが、実際にはそうはなりませんでしたよね。
Bob Kahn: まぁ、X.25は沢山の人に使われていましたし、基本的にはバーチャルサーキット形式の接続のための規格ではありますが、今 後も多分、分野によっては生き残ることでしょう。インターネットの特徴として一つ指摘しておきたいのは、開発が理論的ではなく、実践的なレベルで行われて いたという点です。というのも、私がDARPAに勤務するようになって最初にやった仕事というのが、新たに二つのネットワークを作り上げるというものだっ たからです。そのうちの片方のネットワークは少し前に開発が始まっていたのですが、実際のところはARPANETのノード間を結ぶ、モデム接続の一種とい う感じのものでした。私たちはそれを、異なるインタフェースを持つ、独立した一種のネットワークとして成立させ、それらのノードの間に一種のゲートウェイ をおくという 開発を行いました。ここで言うゲートウェイというのは、現在はルータと呼ばれるものに当たります。もう一つの方のネットワークは、パケット無線ネットワー クと呼ばれるものですが、現在のCDMA技術の先祖に当たるもの、と説明したほうが、人によっては分かりやすいもしれません。
パケット無線ネットワークのノードは、一立方フィートくらいのサイズでした。重さは50ポンドから75ポンドの間くらい。がんばれ ば運 べないことはないですが、さすがにシャツのポケットには入りませんね。
Bob Cringely: 無理でしょうね。
Bob Kahn: それが開発されていた1970年代の中ごろで、ノード一つ当たり5万ドルしていましたから、今の価格に直すと、多分25万ドルから35万ドルほどになりま す。ということで、非常に高価な機械でした。しかしマイクロコンピュータを組み込んだ機械としては、歴史的に見ると一番最初とは言わないまでも、最も初期 の機械の一つ(として貴重な存在)であったと言えると思います。こ のプロジェクトを立ち上げたのと、マイクロプロセッサが発明されたのとはほぼ同じ時期でしたから。ちょうどIntelの8008が登場したばかりのころで したね。その前が4004で、それが世界最初のマイクロプロセッサでしたし。我々が使ったのはNationalのM16と呼ばれるプロセッサでしたが、こ れは市場に出回った最初の16ビットマイクロプロセッサでした。我々の無線ネットワークノードはまた、拡散スペクトラム技術も採用していました。それ自体 は以前にもあちこちで利用されている技術ではありましたが、私の知る限りではそれらは全て軍用に限定されていたと思います -- この技術は信号を広い周波数帯域にかけて流すことで、例えば電波の干渉の影響を減らすとか、信号強度を低く抑えるということを実現するものです。
Bob Cringely: あるいは盗聴されに くく するとか。
Bob Kahn: そうですね、あと電波妨害に対抗するとか。私たちは最終的に、このシステムが実際に動く様子をデモンストレーションするところまでこぎつけることが出来ま した。デモンストレーションでは表面弾性波素子(surface acoustic wave devices)というものを利用したのですが -- 確か、最初のバージョンはTexas Instrumentsが作ったもので、その改良版がLincoln Labsにあったので、私たちはそれを使ったと思います。実際にどのような仕組みで動くのかをデモンストレーションした後、無線ネットワークの実地テスト に移り、30から60ノードからなる小さなネットワークを作りました。その時点で、この技術が使えるものであることが実証されたわけです。ということで、 私 たちが持っているネットワークは、100から400キロビット/秒くらいの速度で通信可能なパケット無線ネットワークが一つ、専用回線を使って50キロ ビッ ト/秒で通信するARPANETが一つ、そして人工衛星のIntelsat 4を使ったパケット衛星ネットワークが一つ、という状況となりました。三つの異 なったネットワーク、通信速度もそれぞれ違っていますし、パケットサイズもインタフェースもバラバラだった、ということで、これらをどうやって束ねてやる のがよいだろうか、というのが、切実な問題として目の前に現れてきたわけです。
そしてそれこそが、インターネットというプロジェクトのきっかけ、原点となったのです。
本エントリ の内容はクリエイ ティブ・コモンズ・ライセンスの下に公開されています