PART2 Skype、その通信の仕組み特集:Skypeは企業IP電話を変えるか(1/4 ページ)

SkypeはP2Pの仕組みを利用しながら、瞬時にユーザーを検索したり、複雑な設定をせずにファイアウォールを通過したりすることが可能だ。Part2では、Skypeを安定性のある電話システムとして成り立たせている仕組みを解説する。(関連特集)

» 2005年05月30日 19時48分 公開
[岩田真一,N+I NETWORK Guide]

N+I NETWORK Guide 5月号(2005年)より転載しています

POINT
1 一定条件で選ばれたスーパーノードは、一般ノードの初期接続先、ユーザー検索のための巨大なアドレス帳、動的クラスタなどさまざまな役割を担う。
2 モバイル性やテキストチャット、会議通話の機能は、簡易ながらSkypeの業務利用時のメリットを引き出す。コストメリットも大きい。
3 NAT/ファイアウォール越えは、UDP Hole PunchingやSTUNの技術、リレーノードにより実現。HTTPパケットをチェックするファイアウォールでは、通信できないこともある。
4 通話品質は、独自の音声コーデックや呼制御プロトコルで確保している。また、AES暗号鍵やPKIによる鍵交換で通話時のセキュリティも保証する。

システムの全体像

 Skypeのシステム構成要素は、以下の4つである。

  1. Skypeサーバ
  2. 一般ノード
  3. スーパーノード
  4. リレーノード

 この中で、開発元のSkype Technologies社が直接管理しているのは(1)のSkypeサーバだけであり、また、それはシステム内唯一の「サーバ」である。Skypeサーバの役割としては、ユーザーの初期登録やログイン認証、SkypeOutのバウチャ管理など、セキュリティ上、一元管理が必要なものや、技術的に分散処理が向いていない機能を提供している。Skypeサーバは、厳密にいえばSkypeのP2Pネットワークの構成要素ではない。

 これに対してほかの3つは、SkypeのP2Pシステムを構成する、いわゆるノードだ。ノードは、単にSkypeクライアントとしてユーザー自身の通話やチャットだけに使われる「一般ノード」と、一般ノードの中から特定の条件を満たすものとして選ばれ、P2P方式による通信を補助する役割を担う「スーパーノード」「リレーノード」がある(図1)。スーパーノードやリレーノードについては、後で詳しく述べる。

図1 図1●Skypeのシステム Skypeサーバ、一般ノード、スーパーノード、リレーノードの4要素で構成される。サーバはユーザー登録や認証などに利用される

ユーザー認証はクライアント/サーバ型

 SkypeはP2Pアプリケーションであるが、当然すべてを完全にP2Pだけでまかなうことはできない。ユーザー登録や認証だけを見ると、通常のクライアント/サーバ型となんら変わりはない。そのため、P2Pのスケーラビリティはここには発揮されないが、ユーザー認証などで発生するトラフィックは、音声通話などに比べれば微々たるものであるという割り切りも感じられる。

ユーザー検索と通話はP2P型

 ノード(ユーザー)の認証が済めば、Skypeサーバとの接続は終了し(*1)、SkypeはノードだけのP2Pシステムで運用される。具体的には音声通話、テキストチャット、ファイル転送といったSkypeがユーザーインタフェースを提供する機能と、それらを支えるユーザー検索の機能である。

SkypeはハイブリッドP2P

 通常P2Pは、データやユーザーの検索を受け持つサーバ(インデックスサーバ)をシステム内に擁する「ハイブリッドP2P」と、インデックスサーバを持たずにノード同士が協調して検索結果を返す「ピュアP2P」に大別される。

 SkypeのP2Pシステムでは、一般ノードは検索に寄与しないため、ハイブリッド型に分類できる(図2)。ただし、検索を担当するのは一般のハイブリッドP2Pのように固定的なインデックスサーバではなく、Skypeならではのスーパーノード群が担当している。スーパーノードは、一般ノードの要求に対して動的に組織されるクラスタのように振る舞うため、より正確には「動的クラスタ型ハイブリッドP2P」といえる。

図2 図2●P2Pの分類 ノード間で動的クラスタを構成するため、Skypeは特殊なハイブリッド型といえる

 ただし、この方式でここまで実効があるのは、現状ではSkypeと同じくスーパーノードを使う「KaZaA」(*2)だけなので、今後はいっそのこと「スーパーノード式P2P」と呼んだほうがわかりやすいかもしれない。

Skypeの鍵をにぎるスーパーノード

 Skypeのシステムを理解するうえで欠かせないスーパーノードについて、詳しく解説しよう。

●スーパーノードの必要条件

 スーパーノードは一般ノードの中から選ばれると前述したが、具体的な基準は次の通りだ。

  • 高性能CPUと大容量のメモリを持つ
  • 広いネットワーク帯域を持つ(特に、上り256Kbps以上)
  • グローバルIPアドレスを持つ
  • 内向きパケットを常に受け入れる
  • 連続稼働している

 これらの条件をクリアしたノードは、スーパーノード候補となる。ただし、必要条件であるので、このスペックを持つノードがすべてスーパーノードになるわけではない。スーパーノードの数は全ノードの1%程度になるように調整されているためだ。

 スーパーノードは自動的に選ばれ、かつ選ばれたことはそのノードには通知されない(Skype社では、「ノード同士がネゴシエーションしてスーパーノードを決めていく」という表現を使っている)。実際、自分のノード(PC)がスーパーノードになることはほとんどないと考えてよいだろう。


*1 ログアウト時すら再接続することはない。

*2 「カザー」と読む。Skype Technologiesの設立者の1人であるNiklas Zennstrom氏が共同開発したP2Pファイル交換ソフト。P2Pの仕組み自体は、KaZaAにも使用される米Joltid社(Zennstrom氏がSkype以前に設立した企業)の「FastTrack」がベースになっている。

       1|2|3|4 次のページへ

Copyright(C) 2010 SOFTBANK Creative Inc. All Right Reserved.

注目のテーマ