スポンサーリンク

安定した環境を提供し続けるskype(スカイプ)の優れた技術

なぜスカイプは重くなく繋がるのか?

スカイプははPtoPを使ったシステムを採用しています。クライアント・サーバ型ではありません。
クライアント・サーバ型はインターネットでは多く見られる形です。

クライアント・サーバ型

クライアント・サーバ型画像

親であるサーバに利用者がアクセスしてサービスを受ける図式です。この方式だとデータが一元管理できる利点がありますが、 アクセスが集中して負荷が掛かると重かったり、サーバがダウンしてサービスが停止する可能性があります。

スカイプはこのようなシステムをとっていません。PtoPといわれる形です。

PtoP型

PtoP型画像

PtoP型はサーバを必要としないかサーバの役割がとても軽いシステムです。 各クライアントが1対1で接続し、サービスを展開するので障害がおきた場合でもそのクライントを使わずに展開することができるので サービスを停止する可能性は非常にすくないです。


スーパーノード

スカイプを登録する際にデータベースに一度IDを登録するだけでスカイプ自体はサーバをほぼこれしかもっていません。
スカイプIDと利用するIPを関連付けたデータが膨大な数作成されますが、スカイプ自体はこれを保持せず、 このデータは分割されてスカイプの利用者が分散して保持しています。
しかし、すべての人にデータを分散させると公立が悪くなるので「スーパーノード」といわれるリーダーを作成します。
このスーパーノードに接続に関するデータを分散させ、他のユーザーはそのデータを参照してPtoP接続を行うことになります。

スーパーノード画像

スーパーノードには、ログインしているノードのリストを常に更新するので

・グローバルIPアドレスを持っている。
・高速回線で接続されている。
・CPU性能が高く、RAMの容量が多い。
・Skypeの使用時間が長い


これらの条件にマッチしたものが自動的に選ばれます。スーパーノードの負荷が高まった場合は新たに他のコンピュータに対しても スーパーノードが追加割り当てされているので常に良いマシンがスパーノードになるため重くなく接続することが可能です。


高音質な音声

スカイプの高音質な音声の秘密は「iSac」「iLBC」という2つのコーデックを利用しているためです。
コーデックはデータを圧縮復元する機能で、コーデックがすぐれていると巨大なサイズの動画や音声も品質を落とさずに利用できます。
スカイプは固定電話などとちがい、インターネットの回線の速さやパソコンの処理速度によってスピードが変化します。

スカイプの利用環境画像
ですので利用している環境に応じて2つのコーデックを自動的に使い分け適切なパフォーマンスができるような仕組みになっています。