Skype ~P2P通信の秘密~

Skype
.
~P2P通信の秘密~
β1
http://ikejisoft.com/
池嶋 俊
自己紹介
• 某国立大学 暇な大学生
– サークルしてみたり。
– ミニコミ誌作ってみたり。
– バイトしてみたり。
– 起業してみたり。
– 研究してみたり。
Skype ~P2P通信の秘密~
2
趣味
• P2P
– AsagumoWeb
• http://asagumo.net
• Web over P2Pソフト
• たとえば、Wikipediaのような大きなサイトをどう
やってP2Pにするかを考えています。
– WOP(うおっぷ)・MegaWeb/MiniWebなどの
言葉を提案
• 使われていない?
Skype ~P2P通信の秘密~
3
Skypeは?
• Skypeやろうぜ
– http://ikejisoft.com 内
– GoogleでSkype.comの次に出る。かもしれない?
Skype ~P2P通信の秘密~
4
僕、私のSkypeの使い方
• 無駄に無駄話ブレーンストーミング
– とりあえず、会議通話で繋いでおく。
– 独り言を言うと誰かが反応。
• たまに凄いアイディアが!?
– 何時間接続していても通話料金関係無いし。
– 問題点 鼻歌を歌う人がいるとうるさい。
Skype ~P2P通信の秘密~
5
おしながき
• P2Pとは何だ?
• SkypeとP2P
– SkypeのP2P
– SkypeがP2P
Skype ~P2P通信の秘密~
6
P2Pという考え方
分散。
• P2Pとは一言で言うと
• ひとりでやっていたことを皆でやる
Skype ~P2P通信の秘密~
7
P2Pという歴史
• クライアントサーバーシステム(C/S)
– 昔からある
– Ex. Web
– 作りやすい
Skype ~P2P通信の秘密~
8
P2Pという歴史
• 最近でてきたP2P
• C/Sに比べて
– 良いところもあり、悪いところもある
Skype ~P2P通信の秘密~
9
P2Pという利点
• 分散すると
– 負荷が分散される
• コストが下る
– 可用性が向上する
• いつでも使える
Skype ~P2P通信の秘密~
10
P2Pという欠点
• 分散すると
– 複雑になる
• 作りにくい
– 全体が大きくなる
• つまり、端から端までの距離が長い
• 号令をかけにくい
Skype ~P2P通信の秘密~
11
ひとやすみ
• 質問があれば、聞いてください。
Skype ~P2P通信の秘密~
12
SkypeとP2P
• Skypeで使われている2つのP2P
– SkypeのP2P
• Skypeの一部で使われているP2P技術
– SkypeがP2P
• Skype全体の動きのP2P技術
Skype ~P2P通信の秘密~
13
SkypeのP2P
• 既存のボイスチャット(Yahoo Messenger
など)では、サーバーを介して話をする。
• Skype(やSIP)は直接通信する。
Skype ~P2P通信の秘密~
14
P2P通信の利点
• サーバーの帯域に依存しない
– 音質を良くする事ができる。
• サーバーが不要
– サーバーがダウンしていても使える。
Skype ~P2P通信の秘密~
15
P2P通信の障害
• NATやFWによって通信が邪魔される事
がある
NAT
不許可
Skype ~P2P通信の秘密~
16
解決法1
• NATの内側から通信を開始すればよい。
NAT
許可
Skype ~P2P通信の秘密~
17
解決法1
• 呼び出し専用の人をおく
NAT
Skype ~P2P通信の秘密~
18
解決法1
• 話したいという伝言をする。
NAT
許可
Skype ~P2P通信の秘密~
19
P2P通信の障害 Returns
• 両方NATだったら?
不許可
許可
Skype ~P2P通信の秘密~
20
解決法2
• 必殺 UDP Hole Punching
Skype ~P2P通信の秘密~
21
解決法2
• 必殺 UDP Hole Punching
許可
許可
Skype ~P2P通信の秘密~
22
解決法2
• 必殺 UDP Hole Punching
許可
許可
Skype ~P2P通信の秘密~
23
解決法2
• 必殺 UDP Hole Punching
許可
許可
Skype ~P2P通信の秘密~
24
P2P通信の障害 Returns2
• UDP Hole Punching に失敗したら?
不許可
許可
Skype ~P2P通信の秘密~
25
解決法3
• 中継してあげる
Skype ~P2P通信の秘密~
26
なんでこんな面倒な事を?
• 最初から中継でいいじゃないか?
• 中継した分、音質が劣化する。
– 遅延が増え、ジッタエラーが増えるから。
• できれば直接通話したい。
• Skypeはがんばる。
Skype ~P2P通信の秘密~
27
SkypeのP2P
• これらのノウハウはP2P関係で蓄積され
てきた!
Skype ~P2P通信の秘密~
28
ひとやすみ2
• 質問してください。
• よろしくおねがいします。
Skype ~P2P通信の秘密~
29
SkypeがP2P
• Skype以外にも、ユーザー同士が直接話
す物はある。
– MSN Messengerのボイスチャット
– SIP
– Skypeとの違いは?
Skype ~P2P通信の秘密~
30
SIPのしくみ
Aさんは
こっちだよ
SIPサーバー
A
Aさんと
了解
話したい。
Skype ~P2P通信の秘密~
31
SIPの問題
忙しい
Eさんと
話したい。
Aさんと
話したい。
Fさんと
話したい。
Cさんと
話したい。
Skype ~P2P通信の秘密~
32
Skypeの解
• サーバーを分散してみました
Skype ~P2P通信の秘密~
33
Skypeの解
• この分散されたサーバー
をスーパー
ノードと呼びます。
• スーパーノードは一般ユーザーです。
Skype ~P2P通信の秘密~
34
Skypeの世界
グループ
グループ
Skype ~P2P通信の秘密~
35
Skypeの動作
そこにいるよ
A
グループ
Aさんはどこ?
グループ
Skype ~P2P通信の秘密~
36
Skypeの動作2
ここにいた
ここにいない
Bさんがいる
グループは?
A
B
グループ
Bさんはどこ?
グループ
Skype ~P2P通信の秘密~
37
予想!スーパーノード
• スーパーノードの間の通信は不明
– 今、注目されている技術にDHT(分散ハッ
シュテーブル)がある。
Aさんはどこ?
A
Skype ~P2P通信の秘密~
38
DHTとは何か?
• P2Pで使われる検索手法
• 特徴
– 一瞬で探せる
– 完全一致
• Skypeにぴったり
Skype ~P2P通信の秘密~
39
SIPサーバーの中身
ユーザの名前
Akira
Alice
Bob
・・・
・・・
・・・
・・・
・・・
Zenither
ユーザーの場所
192.168.xx.yy
172.25.xx.zz
10.0.zz.yy
192.168.yy.zz
Skype ~P2P通信の秘密~
40
DHTにすると?
ユーザの名前
テーブルを分
Akira
ける
Alice
Bob
・・・
・・・
・・・
・・・
・・・
Zenither
Skype ~P2P通信の秘密~
ユーザーの場所
192.168.xx.yy
172.25.xx.zz
10.0.zz.yy
192.168.yy.zz
41
検索するには?
A-D
E-H
I-L
M-P
Q-T
PさんはM-Pの
中にいるな
P
Skype ~P2P通信の秘密~
42
SkypeがP2P
• SkypeはP2Pを使った世界規模のネット
ワークを作っている。
Skype ~P2P通信の秘密~
43
まとめ
• SkypeはP2P技術を使っています。
• P2P技術を使う事で、Skypeは
– より音質が良く
– より使いやすく
している。
• これがSkypeの人気の秘密。
Skype ~P2P通信の秘密~
44
つづきは
• こまかい話は本にします
• 「入門 Skypeの仕組み
無料IP電話を支えるピアツーピア技術」
– 日経BP社
– 10月24日発売
– 買ってください m(_ _ ;)m
Skype ~P2P通信の秘密~
45