2004-12-19

近況

会社主催の忘年会に出席する. 去年の今頃と同じように. 訓練なしに人は成長しないと思い知る. だた年をとるだけだ. 私は訓練をしないだろう. 私はただ年をとるのだろう.

そんな私が唯一学んだことと言えば, 偉い人ほど話が長い という事実であり, その長話の合間, 印刷しておいた暇潰しを読んだ: "An Analysis of the Skype Peer-to-Peer Internet Telephony" (PDF). Skype の通信を観察してわかったことをまとめたもの. 通信は TCP を中心とし, firewall の内側同士の通話は中継ノードを介しているという観察の結果が示されている. これを読む限り, どこかで聞いた "Skype が UDP Hole Punching をしている" という噂はあてが薄い. Google で検索 しても日本語のページばかりがヒットし, その大半は孫引きだ. 何かの勘違いで広まった希望的憶測なのかもしれない. あるいはバージョンによる違いか. Skype のページ には publicaly routable な IP を持つ計算機は NATed な計算機同士の通信を支援しているとある. Winny みたいなもの. NAT の多い日本だと帯域の効率が悪そうだな. この論文では他にも 認証のみに central server を使い client の indexing は分散して行なう Global Index など, 先のページに書いてあることを追認している. (index のキャッシュは Windows のレジストリに書いてあるらしい...現バージョンでは見当らないけど.)

P2P にぴったりの仕事

ページによれば, 中継サーバは計算機が暇している時のみ仕事をするらしい. 余剰計算資源を使ったアイデアの中では珍しく上手くいっているなと思う. 各ユーザが比較的対称な関係にあって, かつソフトウェアを常時フル稼働する意味のない P2P 電話というシステムは, 余剰リソースの利用と相性がいいのかもしれない. 計算機資源を貸し出すだけのグリッドは関係が対称でないし, 違法ダウンロードのツールは動きつづけて "余剰" がない. 電話のように人間が bottle-neck になるシステムの方が余剰を生むのには都合が良さそうだ. 似たような性質を持つネットゲームやビデオ録画も P2P が似合うかもしれない.

追記 (2004/12/25)

よそのウェブページの記事によると, UDP Hole Punching は, 使えるときは使うし使えないときは使わない(中継ノードを使う)らしい. 家で観察してみると UPnP もつかっている様子. 家のルータに UPnP による NAT エントリがあった. 憶測でなく正確な話を知りたい人は, 日経 NETWORK に詳しい説明が載っているそうです.