More Related Content Similar to 究極のゲーム用通信プロトコルを探せ! (20) More from Ryosuke Otsuya (12) 究極のゲーム用通信プロトコルを探せ!1. Copyright © NTT Communications Corporation. All right reserved.
OKINAWA OPEN DAYS 2015
「ユースケース研究事例:オンラインゲーム」
〜次の時代のオンラインゲームに求められるクラウド・ネットワーク技術〜
究極のゲーム⽤通信プロトコルを探せ!
NTTコミュニケーションズ株式会社 技術開発部
Webコアテクニカルユニットリーダ/担当課⻑
⼤津⾕ 亮祐
2015年12⽉
2. Copyright © NTT Communications Corporation. All right reserved.
⾃⼰紹介 / ⼤津⾕ 亮祐(おおつや りょうすけ)
2
n 仕事
HTML5(Web技術)チームのリーダ
WebRTCプラットフォーム
“SkyWay” プロダクトマネージャ
n コミュニティ
WebRTCをテーマにした
カンファレンス
“WebRTC Conference Japan” 幹事
n プライベート
神奈川県 葉⼭町 在住
趣味は海と畑
3. Copyright © NTT Communications Corporation. All right reserved.
WebRTCとは
3
Web RTC
Web RT C
Web Real Time Communication
IPネットワークで リアルタイムな (意思疎通 | 通信)
をするためのオープン標準
4. Copyright © NTT Communications Corporation. All right reserved.
リアルタイムコミュニケーションの歴史
最初のリアルタイム・コミュニケーションは電話
1876年以来、電話会社が独占
4 www.flickr.com/photos/mattb_tv/2550476978
5. Copyright © NTT Communications Corporation. All right reserved.
2000年前後に、NapsterやSkypeがインターネット上
でリアルタイム・コミュニケーションを実現
5 www.flickr.com/photos/132889348@N07/18410514419
6. Copyright © NTT Communications Corporation. All right reserved.
2011年にWebRTCの最初の草案が発表
すべてのソフトウェアエンジニアが
リアルタイム・コミュニケーションを扱える時代が到来
“リアルタイム・コミュニケーションの⺠主化”
6 www.flickr.com/photos/tjflex/57210112
7. Copyright © NTT Communications Corporation. All right reserved.
エンジニア向けの説明
1. ⾳声、映像、データのリアルタイム通信のオープン標準
• 従来のサービス(LINE、Skype等)は独⾃技術でできていた。
WebRTCはオープン標準技術。ライセンス使⽤料が不要。
• 中⾝は4つ。IETF(①~③)とW3C(④)で標準化。
①暗号化、到達・順序保証、流量・輻輳制御を実現する
プロトコル
②ネットワーク機器(NAT等)を越えてP2P通信する⼿順
③⾳声と映像の形式(コーデック)
④JavaScriptから利⽤するブラウザAPI
2. ブラウザとネイティブアプリの両⽅で利⽤できる
• WebRTC対応ブラウザにURLを⼊⼒するだけで、WebRTCを利⽤した
サービスを利⽤できる。
• オープンソースのC++のコードを利⽤しコンパイルすれば、ネイティ
ブアプリにWebRTC機能を組み込むこともできる。
7
P2Pについて
は後述
8. Copyright © NTT Communications Corporation. All right reserved.
マーケティング的な説明
1. コミュニケーションアプリを容易に開発
• Facebook Messenger, ChatWork等のビデオ通話に採⽤
2. アプリ内/サイト内で完結する⼀貫性のあるユーザ体験
• アプリやサイトにコミュニケーション機能を組み込みめる。
従来は、別デバイスや別アプリ(電話、Skype等)が必要だった。
3. サポートコストの削減、低ITリテラシ層の利⽤
• ブラウザで利⽤する場合、インストールが不要。
アプリで利⽤する場合、別アプリの併⽤が不要。
4. 家電、IoT分野の⼀部で活⽤できる
• 映像や⾳声を扱う場合のプロトコルとして利⽤できる。
既にWebRTCを利⽤した家電も登場(右の写真)。
5. 電話との連携
• WebRTC⇔IP電話変換サーバを使えば、ブラウザで電話の
発着信が可能に。
Chromecast
Withings Home
9. Copyright © NTT Communications Corporation. All right reserved.
P2Pとは
n P2P(Peer to Peer)とは、端末同⼠がサーバを経由せず、
直接通信すること。
n サーバ負荷が⼩さいのでスケーラビリティが⾼い、
サーバのコストが安い、遅延が少ない、などのメリットがある。
9
P2P通信 サーバ⇔クライアント通信
10. Copyright © NTT Communications Corporation. All right reserved.
NAT越え問題
n IPv4アドレスが枯渇、多くの端末はNATの下にある
n NATが外からのパケットをブロックする
n P2P通信を実現するためには、何らかの⼯夫が必要
10
外からのパケット
をNATがブロック
11. Copyright © NTT Communications Corporation. All right reserved.
UPnPによるNAT越え
n UPnPやNAT-PMPに対応しているNATの場合、端末からポート
の変換ルールを指⽰して、外からのアクセスを許可できる。
n しかし、ISPや携帯キャリアに導⼊されているNAT
(CGN = Carrier Grade NAT, LSD = Large Scale NAT) は、
UPnPやNAT-PMPに対応していない。
11
あらかじめNATに
⽳を空けておく
12. Copyright © NTT Communications Corporation. All right reserved.
ICEによるNAT越え
n WebRTCではICE (内部技術…STUN、TURN、UDPホールパンチング)
という技術を使ってNATを越える
n UDPホールパンチングは、UDPの「ステートレス」という
特徴に着⽬して、NATをいわば「騙す」⼿法
n 実装が⼤変!
12
13. Copyright © NTT Communications Corporation. All right reserved.
WebRTCの開発者コミュニティ
13
n IETF … プロトコル、NAT越え、コーデックの標準化
W3C … JavaScriptから利⽤するブラウザAPIの標準化
n WebRTC Conference Japan (2016/2/16~17)
ビジネスと技術の両⽅を対象にしたカンファレンス&展⽰会
n WebRTC Meetup シリーズ
技術者向けの勉強会
14. Copyright © NTT Communications Corporation. All right reserved.
ULLOGプロジェクトとは
超低レイテンシなゲーム専⽤のプロトコルを開発し、
その特徴を活かした魅⼒的なゲームを開発を促進する
14
ULLOG
Ultra Low Latency Online Game
15. Copyright © NTT Communications Corporation. All right reserved.
⽴ち上げのきっかけ
n 沖縄オープンラボを通じて、NTT Comとモノビットが出会う
n NTT Com
• WebRTCの開発フレームワーク “SkyWay” を提供中
• ゲームはWebRTCの有望なユースケースだが、
ゲーム開発者における認知が低く、採⽤も進んでいない
n モノビット
• ゲーム専⽤通信エンジンを提供中
• 現状はサーバ⇔クライアント型だが、P2P型にも興味がある
15
16. Copyright © NTT Communications Corporation. All right reserved.
ロードマップ
n まずは、WebRTCとその他のプロトコルの⽐較実験
n WebRTCを使うかどうかも含めた開発⽅針を策定し、
プロトタイプ開発に進む
16
ゲーム⽤通信
プロトコル実験
プロトタイプ
開発
商⽤開発
開発⽅針の策定
(今ココ)
17. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験の概要
スマートフォン2台の間で通信に要する時間を測定
17
18. Copyright © NTT Communications Corporation. All right reserved.
プロトコル 4通り
18
P2P サーバ経由
①WebRTC ②UDP
③TCP
④WebSocket
19. Copyright © NTT Communications Corporation. All right reserved.
地域 2通り
19
①沖縄
②東京
20. Copyright © NTT Communications Corporation. All right reserved.
場所 3通り
20
①オフィス街 ②住宅街 ③電⾞で移動中
21. Copyright © NTT Communications Corporation. All right reserved.
端末 2通り
21
①iPhone ②Androidスマホ
22. Copyright © NTT Communications Corporation. All right reserved.
アプリ 2通り
22
①ブラウザ ②測定⽤アプリ
23. Copyright © NTT Communications Corporation. All right reserved.
回線 4通り
23
①光
+Wi-Fi
②ドコモ
LTE
③au
LTE
④ソフトバンク
LTE
24. Copyright © NTT Communications Corporation. All right reserved.
時間帯 4通り
24
②平⽇ 夜間
①平⽇ ⽇中
④休⽇ 夜間
③休⽇ ⽇中
25. Copyright © NTT Communications Corporation. All right reserved.
リレーサーバ 1通り
25
①AWS 東京リージョン
26. Copyright © NTT Communications Corporation. All right reserved.
送信データ 1通り
26
①1/64秒(16ミリ秒)間隔で64bytesを送信
27. Copyright © NTT Communications Corporation. All right reserved.
謝辞
実験へのご協⼒ありがとうございました。
n ブリブサー ⽐嘉様、喜納様
n NEC 藤岡様
n NTTコミュニケーションズ ⾼橋、加藤、⼭村
27
28. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと①
n WebRTCはすべての場合においてUDPとTCPより⾼速!!
28
場所 回線 WebRTC
(P2P)
UDP
(S⇔C)
TCP
(S⇔C)
東京⇔東京 LTE 同キャリア 50 70 110
LTE 異キャリア 60 62 100
光+Wi-Fi 10 13 13
東京⇔沖縄 LTE 同キャリア 65 100 140
沖縄⇔沖縄 LTE 同キャリア 68 92 171
LTE 異キャリア 78 90 150
光+Wi-Fi 19 62 106
(Androidの場合、単位ms)
29. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと①
n 正直に⾔って意外…
n WebRTCはUDPより相当重いプロトコル
(UDPの上に、DTLSという暗号化レイヤーと、SCTPというプロ
トコルが乗っており、オーバーヘッドがある)
n 歴史あるWeb系プロトコルと⽐べると、
プロトコルスタックが枯れておらず、
パフォーマンスがでないのでは?
n と思っていた
29
30. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと②
n 同じキャリア間は特にWebRTCが速い
30
92
68
0 50 100
UDP
WebRTC
70
50
0 50 100
UDP
WebRTC
沖縄⇔沖縄、LTE 同キャリア
(Androidの場合、単位ms)
東京⇔東京、LTE 同キャリア
40%⾼速 35%⾼速
31. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと②
n WebRTCは、インターネットに出ず、キャリア網の中で
つながったと考えられる
n ただし沖縄⇔沖縄の場合でも、沖縄内ではなく、
東京までは⾏ってそう
31
32. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと③
n 同じWi-Fiアクセスポイント配下は特にWebRTCが速い
32
13
10
0 50 100
UDP
WebRTC
62
19
0 50 100
UDP
WebRTC
沖縄⇔沖縄、光+Wi-Fi東京⇔東京、光+Wi-Fi
(Androidの場合、単位ms)
3.3倍⾼速
(僅差)
33. Copyright © NTT Communications Corporation. All right reserved.
ゲーム⽤通信プロトコル実験でわかったこと③
n UDPは東京⇔沖縄を往復、
WebRTCは家の中で繋がる
33
東京⇔沖縄を
往復
34. 34Copyright © NTT Communications Corporation. All right reserved.
さて、WebRTCはゲーム向け
通信プロトコルに使えるのでしょうか?