![]()
連載:5分でネットがわかるシリーズ(5)
通話網を脅かすSkypeの仕組み、
分かりやすく解剖!
江原顕雄
2006/10/19
| 3. どんな場面でも接続をするよ! |
●ファイアウォールとNATが大きな壁
外部インターネットと内部のネットワークの間に立ち、双方向の通信をチェックするセキュリティの番人「ファイアウォール」。通常のPtoPシステムだと、ファイアウォールの内部でSkypeを使用する際は、外部からのアクセスをファイアウォールがブロックしてしまいます。もう1つの障害はグローバルIPとローカルアドレスを変換するNAT(Network Address Translation)です。NATというより家庭用のルータといった方がピンと来るかもしれません。外部から見たIPと内部のIPが違うわけですから、PtoPで接続する際の大きな障壁となります
さてこの大きな2つの壁をSkypeはどのように越えるのか? Skypeは3つの方法を使ってこれらの問題を解決します。
![]() |
| 図3-1 ファイアウォールを使っているネットワークは接続が難しい 外部・内部のアクセスをコントロールするファイアウォール。当然許可されていない、外部からのアクセスはブロックされてしまう |
![]() |
| 図3-2 NATを使っているネットワークは接続が難しい 内部からのアクセスはポート番号を使って、どのローカルアドレスからのアクセスか判別している。が、外部からのアクセスの場合、どのローカルアドレスに対してアクセスを求めているか分からない |
●解決法1 スーパーノードが代理で通知
PtoPは1対1で接続をしてサービスを展開するものですが、1対1でコネクトができない場合は、先ほど説明したクライアントのリーダー格「スーパーノード」を使って解決します。
外部からのアクセスを遮断しているファイアウォールでも内部からの外部へのアクセスを許可するパターンが多々あります。外部にいるSkypeクライアントAkiraから内部のBabaにアクセスする場合、ファイアウォールが邪魔して1対1で接続ができません。そこで、Babaと常に接続をしているスーパーノードに「Babaさんと通話がしたい」とAkiraがメッセージを送ります。スーパーノードはその旨をBabaに伝え、Babaは内部から外部のAkiraに接続要求を行い、見事に1対1で接続をするのです。
![]() |
| 図3-3 解決法1 スーパーノードが代理で通知 |
●解決法2 双方向で同時に接続要求
先ほど挙げた例は「片方がファイアウォール(NAT)、片方は行き来自由」というパターンでしたが、両方ともファイアウォールで内部からアクセスは可能だが、外部からのアクセスは不可という場合を考えてみましょう。解決法1では、相手からの接続要求をファイアウォールやNATがけってしまいます。
ここでもスーパーノードに助けてもらいます。それぞれファイアウォール・NATの内側にいるクライアントでもスーパーノードとは接続をしています。クライアントAkiraとBabaが接続を試みるとき、それぞれ同じスーパーノードに接続をし、スーパーノードに発信のタイミング管理をしてもらいながら、Akira・Bagaが同時に「AkiraからBabaに接続したい」「BabaからAkiraに接続したい」とそれぞれ接続のパケットを送ります。
ファイアウォールやNATは「内部のAkiraから外部のBabaに接続要求を出したのだから、Babaのパケットは通過させなくては!」と判断し(Baba側も同じ)、それぞれの接続要求がファイアウォールやNATを越えて互いに接続をするのです。この技術は「UDPホールパンチング」と呼ばれています。仕組みもすごいですが、名前もなかなか強烈ですね。
![]() |
| 図3-4 解決法2 双方向で同時に接続要求 上の例のようにお互いにファイアウォールやNATを使っている場合にはうまく接続ができない。そこで、同時にパケットをだすことでファイアウォールを相手からの返信のように装い、通過させてしまう |
●解決法3 スーパーノードで完全中継
解決法1、2でもどうしても接続がうまくいかない場面もあります。そういう場合でもまだ奥の手があります。何度も繰り返しになりますが、Skypeのクライアントは常にスーパーノードとは接続をしているのです。そこで、お互いのクライアントがスーパーノードを経由してデータをやりとりするのです。この方法は「リレーノード」と呼ばれています。
![]() |
| 図3-5 スーパーノードで完全中継 お互いに接続ができない場合は、スーパーノード経由でデータのやりとりをする |
ちょっと長くなってしまいましたが、上記のようなテクニックを使いSkypeは相手と接続をしようと努力をしているのです。すべて自動的に行われているので、私たち利用者は何も考えずに、設定もせずに気軽に利用ができるのです。接続に関する技術を見てきましたが、音声の品質についてもSkypeはこだわりを持っています。そのこだわりとは? 高音質の通話について次に見てみましょう。
| 通話網を脅かすSkypeの仕組み、分かりやすく解剖! | |
| <1分>「Skype」って何? | |
| <2分>スカイプの接続形態の秘密 | |
| <3分>どんな場面でも接続をするよ! | |
| <4分>音声がなぜ高音質? | |
| <5分>固定電話がなくなってしまう | |
5分でネットがわかるシリーズ バックナンバー
- 第1回 5分でわかるRSS。Web更新情報を効率的に知る技術
- 第2回 Webの情報を関連付けるタグで管理・検索を便利に
- 第3回 個人が“放送”できるポッドキャストって?
- 第4回 これだけ知っていればワンセグ博士!
- 第5回 通話網を脅かすSkypeの仕組み、分かりやすく解剖!
- 第6回 一足早く「Plagger」の便利さを実感してみよう
- 第7回 2006年のネット界を席巻したSNS
- 第8回 PLCでケーブルだらけのLANにさようなら
- 第9回 なぜiPhoneは日本で使えないの?
- 第10回 プログラマならWeb APIという巨人の力を使っちゃえ!
- 第11回 2007年春の無線LAN用語ばっちり講座
- 第12回 ニンテンドーDSで学ぶ無線LANのセキュリティ
- 第13回 5分でわかるクラウド・コンピューティング
- 第14回 5分でわかるフェムトセル
- 第15回 5分で絶対に分かるOpenFlow
| 「Master of IP Network総合インデックス」 |
TechTargetジャパン
- 実機では測定できない性能を測定? (2012/2/7)
システムの完成前に、達成し得る性能値や必要なサーバリソースを知るには? その解となる「性能シミュレーション技法」を解説 - 性能チューニング個所の検討 (2012/1/30)
アプリのチューニングや環境増強で、どの程度改善が見込める? 今回からは「実際に活用できる性能対策」を解説します - 遅いところを直すだけでいいのですか? (2012/1/24)
負荷が集中したときの性能ボトルネックを改善するのに、アプリケーションサーバとDB、どちらを優先すべきでしょう? - cloudfoundry.comを使ってみよう (2012/1/19)
VMwareが提供するPaaSプラットフォーム「CloudFoundry」。注目を集めるこの基盤を活用してPaaSを構築!
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





