インターネットの次

   このエントリをはてなブックマークに登録    2007/3/5

A New Way to look at Networking (Google Video)」を見ました。 Van Jacobson氏による1時間21分のプレゼン映像でした。

ビデオでは、コペルニクス的発想が必要だとか、昔は電話システムを前提に皆が議論をしていたからインターネットの仕組みはあり得ないと当初は皆が言っていた、という内容の事を何度か言っています。 確かに、私も聞いていて「WinnyかBitTorrentをDRMと組み合わせたもの?」という感じの方法論を考えてしまいました。 恐らく、今の仕組みで作ってしまう方法を考えるのではなく、アーキテクチャとしてこの案を考えなくてはならないという物だと思いました。 きっと、ここで言っている話が実現するとIPの上でも動くけど、下にその他の通信形態が来ても動くという新たなアドレッシング手法に近いものを提案しているのだと思いました。 どうしても現状の仕組みでやってしまう方法を考えてしまう私は、今のインターネットという仕組みが成し得た成功に毒されているのだと思いました。

でも、これを語っているのがVan Jacobson氏じゃなかったら「ふーん」で終わってしまいそうな気もしました。 きっと非常に深く色々考えた上で言っている気はしますが、非常に難しい話をしていると感じました。 難しい話でしたが非常に面白かったです。

インターネット設計時の思想などに興味を持たれた方は、 2006年6月6日ごろに本ブログで紹介している「The Design Philosophy of the DARPA Internet Protocols」という論文を読むとインターネットの設計思想がわかって楽しいかもしれません。

以下、ビデオの内容を要約してみました。 聞き間違いや勘違いをしている可能性があるので、詳細はビデオをご覧下さい。 なお、以下で章立てのように表現しているのは、長くなってしまったためです。 プレゼン中でこのように分かれているわけではありません。 後半は私が力尽きているので要約がいい加減になっています。 ご注意下さい。 (1時間20分の講演映像を見て要約するのに4時間強かかってしまいました。。。)




Van Jacobson氏紹介

Van Jacobson氏は、インターネットに関する著名な研究者です。 今のTCPの元と成る仕組みを考案したり、traceroute,pathchar,tcpdumpの作者の一人だったりします。 また、M-Bone(Multicast Backbone)を作ったメンバーでもあります。 vic,vat,wbなども作っています。

問題意識

アメリカでのネットワークに関する研究が行き詰っている気がしています。 本当はネットワーキングの研究をするにはすばらしい時期であるはずです。 何でもネットワークにつながっているし、それぞれお互いにつながっています。

でも、日々、ネットワークでやろうとしていることが難しくなっています。 例えば、無線はうまくいかない場合が多くなっています。 ポータブルデバイスでの情報共有もうまくいっていません。

色々、個々の問題を解決するツールはあるが、それぞれAd-hocに特定の問題のみを解決するものばかりです。 もしかしたら、もともとのアーキテクチャが間違っているのかもしれません。

60年代と70年代は今の状況に似ていました。 ネットワークと言えば電話でした。 研究者達はデータを電話上に乗せようとしていて失敗していました。 最近はそのときの状況に似ているかもしれません。

もしかしたら、やりたいことはインターネットにあっていないのかもしれません。 それは、インターネットの問題ではなく、問題自身が変わってしまったのかも知れません。

ネットワークの歴史

Generation 1 : 電話(電話線が注目されていた)

Generation 2 : インターネット(Endpointが注目されていた)

Generation 3 : dissemination[普及](データが注目される)

電話システムとインターネット

電話システムの本質は電話をかけることではありません。 電話システムはwire matrix上でコネクションを作る事が本質です。 wire上でpath(経路)を作るのが電話をかけることです。 電話番号というのは、相手の電話を表すものではなく、途中での回線の経路を表しています。

70年代の課題は、爆弾を落とされてもネットワークが利用できるようにする事でした。 当時は、信頼性が全く無い安物を組み合わせて、どれか一つの箇所が失敗しても問題のない巨大システムを作りあげることが課題でした。 これは、電話システムとは全く逆の発想です。

当時、ネットワークの研究は皆それに注目していました。 当初は電話でどうやってやっていくかを皆が考えていました。 それは、昔は電話しかコミュニケーションしかなかったからです。

「電話だけが通信手段じゃないんじゃない」と言い出した人がいました。 データを小分けにして出す。 皆で同じ経路を使ってデータを流す。 小分けにしたデータをパケットと呼ぶ。 送る先がわからなければ、次の人に任せてしまおう。 という発想でした。

最初は皆が、これは絶対に動かないと言っていました。 でも、71年にネットワークを知らないがアイディアを気にいったARPAのヘッドがARPAnetを作りました。 当初、ARPAnetは電話線の上に構築されました。 そのため、電話屋さんはそれはネットワークじゃなくて、電話を使っているだけだと言っていました。 IPネットワークが電話上にあろうが、Ethernet上だろうが気にするものではないということに皆が気づくまで10年かかりました。 当時、他の人たちは、電話線用の経路セットアップを早くするにはどうすれば良いかばかりを考えていました。

次に、各自が勝手にネットワークを作って、それらを接続する事と考え出した。 encapsulation方法とアドレッシング方法に基準さえあれば良いということになりました。 これが70年代後半です。 当初はCATENETという名前だったが、軍が3文字を好むようなのでTCP/IPという名前になりました。

TCP/IPは、セットアップを何もせず、電話のように厳密な経路を考える必要は無く、 とりあえずパケットを投げてみて届かなければもう一度投げなおす、という方式でした。

TCP/IPが勝った要因

  • 信頼性はシステムサイズが大きくなるにつれて指数関数的に向上する
  • 呼に対してセットアップが必要ないため、どのような帯域、送信間隔、送信規模でも大丈夫
  • 分散された経路成魚によって、どのようなトポロジでも利用可能になった
  • 動的な経路制御によって、システムが障害から回復できる

電話システムは、自己構築しません。 一方、IPネットワークはつないだ瞬間に使えるようになります。 IPアドレスさえもらえば、中央の機器を設定しなくても通信できるようになります。

現状の問題点

TCP/IPがあまりにうまく行き過ぎたので、当初電話があったときのように、思考がTCP/IPが最適という方向に行ってしまっています。

今のデータがリッチな環境はTCP/IPが当初作られたときに想定していたものではありません。 そんなに機器が大きかったわけではないし、データの種類も今ほどあったわけでもありません。

今の問題は、インターネットにつながっているかどうかが全てになってしまっていることです。 つながっていると全ての情報にアクセスできるし、つながっていなければ何もできない。 IPアドレスを持っているかどうかが全てになってしまっています。

現在のネットワークは動くものは嫌いです。 現状の技術では、動いているものに対して接続性を維持するのが難しくなっています。 結局、動いているものに対しての一番良いのはブロードキャストする事です。 でも、インターネットはブロードキャストとの相性は良くありません。 IPは1対1が前提です。 例えば、1000人のうちの1人に対してデータを送りたいために、ブロードキャストをしてしまって999人がデータを捨ててしまうのは良くありません。

TCP/IPは世界を変えました。 でもTCP/IPが作り上げた世界が成熟しきってきたら、今度はTCP/IPがスケールしなくなってきました。 TCP/IPが悪いわけではなく、問題が変わってしまったのです。

TCP/IPでは、ネットワークはコネクションにしか注目できません。 ネットワークレベルでのセキュリティというものはできません。 例えば、SSLで各コネクションを守ることはできても、SPAMは来てしまいます。

データにフォーカス

重要なのは、どこにデータがあるかではありません。 データはどこか特定の場所にあるわけではありません。 データはサーバに入っているものではなく、概念的てきなものです。

どこからデータを受け取るのではなく、データの中身から判断をします。 これを実現するには、例えば暗号化するなどのセキュリティモデルが必要になります。

例えば、今日のNY Timesが欲しいとします。 そして、何かのレスポンスを受け取り、データが流れてきます。


REQ http://nytimes.com/today ⇒

← RESP http://nytimes.com/today
    http://nytimes.com/20060830/index.html
    <NameMac 3fde... />
    <DataMAC 07a2... />
    <html>
    ...
    </html>

セキュアにしなくてはいけないことが2つあります。

まずは、NYTIMESを要求するという内容に対するnameとのbindingです。 これに対するAuthentication checkが必要です。 また、帰ってくるspecific nameとデータのbindingもセキュアにする必要があります。 違う内容を誰か他の人が偽者を送っていないか確認する必要があります。

この場合、データを得るには名前が必要でロケーションではありません。 今出来る事と結果は同じだけど、コンセプトが全く違います。 どこにデータがあるか気にしません。 そのため、今あるcacheの技術とは違います。

integrityとtrustはデータそのものから来ます。 データが自分自身の証明を自己解決します。

これによってできること

QoSはEnd-To-Endではなく、データに対して行えるようになる。

非常に人気のあるコンテンツは、そこらじゅうにあるので、オリンピックサーバのような問題は発生しない。

ノードに対して話しているのではない

  • グローバルネーミングに対して話している
  • IPで通信する必要するすら無い
  • トポロジではなく、データに興味がある
  • 現在の温度が知りたければ近くにある温度計に教えてもらえばいい

誰かが覚えていれば、誰かがくれる

セキュリティ

phising, pharming, spamが今の仕組みではできるが、これが実現するとできなくなる

誰が送ったかが証明されていることが前提だから

データに対して信頼が置かれる

必ずしも通信に回線を使う必要がない、近くにディスクのある飛行機が飛んでいればそこからもらえばいい

必要な事

  • データのintegrityを確認できるようにすること
  • データのリポジトリを作成する方法、自動的にデータのintegrityを作ってくれる
  • データロケーション(URL, search, epidemic algorism, その他)

名前

名前とは何か

コンテンツを更新したい。バージョン情報などを名前に入れたいのかも入れないかも

大きなデータをネットワークに流したくない。 細切れにしたい。

困難な事

データSharingに対するインセンティブ。 ユーザは何故Shareしたいか。

ただ乗り問題

再配布問題。ウィルスを再配布してしまう可能性など。

何故、やるのか?

昔は仮想敵国(ソ連)がいた。 爆弾を落とされても生きながらえる通信手段が必要だった。

今は。。。仮想的な敵はR○○○(ウケマシタ。ビデオを見てください)

まとめ

  • IPによってWireレベルで物を考える必要はなくなったが、データレベルで考えなくてはならない。
  • Ad-hocは再配布システムはいっぱいある。需要があることは証明されています。
  • 車輪の再発明をすべきではない。TCP/IPを置き換えるのではなく、使うべき

QA

BitTorrentは?

  • bindingが問題
  • 大きいものがやり取りされる
  • ロケーション、近いところからまずは取得すべき
  • プロトコル上にそれがない

Multicastは?

  • マルチキャストは大好き
  • ただ、スケールしない。グローバルにできない。
  • データで、自分がどこにいるかを考えるべき
  • ローカルでマルチキャストを使える場合は使えばよいが、それをグローバルにやる必要は無い
  • ローカルなマルチキャストでDNSやプロキシを探すのは効果的
   このエントリをはてなブックマークに登録