34
Copyright © NTT Communications Corporation. All right reserved. OKINAWA OPEN DAYS 2015 「ユースケース研究事例:オンラインゲーム」 〜次の時代のオンラインゲームに求められるクラウド・ネットワーク技術〜 究極のゲーム⽤通信プロトコルを探せ! NTTコミュニケーションズ株式会社 技術開発部 Webコアテクニカルユニットリーダ/担当課⻑ ⼤津⾕ 亮祐 2015年12⽉

究極のゲーム用通信プロトコルを探せ!

Embed Size (px)

Citation preview

Page 1: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

OKINAWA OPEN DAYS 2015

「ユースケース研究事例:オンラインゲーム」〜次の時代のオンラインゲームに求められるクラウド・ネットワーク技術〜

究極のゲーム⽤通信プロトコルを探せ!

NTTコミュニケーションズ株式会社 技術開発部Webコアテクニカルユニットリーダ/担当課⻑⼤津⾕ 亮祐2015年12⽉

Page 2: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

⾃⼰紹介 / ⼤津⾕ 亮祐(おおつや りょうすけ)

2

n 仕事

HTML5(Web技術)チームのリーダ

WebRTCプラットフォーム“SkyWay” プロダクトマネージャ

n コミュニティ

WebRTCをテーマにしたカンファレンス“WebRTC Conference Japan” 幹事

n プライベート

神奈川県 葉⼭町 在住趣味は海と畑

Page 3: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

WebRTCとは

3

Web RTC

Web RT C

Web Real Time Communication

IPネットワークで リアルタイムな (意思疎通 | 通信)をするためのオープン標準

Page 4: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

リアルタイムコミュニケーションの歴史

最初のリアルタイム・コミュニケーションは電話1876年以来、電話会社が独占

4 www.flickr.com/photos/mattb_tv/2550476978

Page 5: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

2000年前後に、NapsterやSkypeがインターネット上でリアルタイム・コミュニケーションを実現

5 www.flickr.com/photos/132889348@N07/18410514419

Page 6: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

2011年にWebRTCの最初の草案が発表すべてのソフトウェアエンジニアが

リアルタイム・コミュニケーションを扱える時代が到来“リアルタイム・コミュニケーションの⺠主化”

6 www.flickr.com/photos/tjflex/57210112

Page 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については後述

Page 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

Page 9: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

P2Pとは

n P2P(Peer to Peer)とは、端末同⼠がサーバを経由せず、直接通信すること。

n サーバ負荷が⼩さいのでスケーラビリティが⾼い、サーバのコストが安い、遅延が少ない、などのメリットがある。

9

P2P通信 サーバ⇔クライアント通信

Page 10: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

NAT越え問題

n IPv4アドレスが枯渇、多くの端末はNATの下にあるn NATが外からのパケットをブロックするn P2P通信を実現するためには、何らかの⼯夫が必要

10

外からのパケットをNATがブロック

Page 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に⽳を空けておく

Page 12: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ICEによるNAT越え

n WebRTCではICE (内部技術…STUN、TURN、UDPホールパンチング) という技術を使ってNATを越える

n UDPホールパンチングは、UDPの「ステートレス」という特徴に着⽬して、NATをいわば「騙す」⼿法

n 実装が⼤変!

12

Page 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 シリーズ技術者向けの勉強会

Page 14: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ULLOGプロジェクトとは

超低レイテンシなゲーム専⽤のプロトコルを開発し、その特徴を活かした魅⼒的なゲームを開発を促進する

14

ULLOGUltra Low Latency Online Game

Page 15: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

⽴ち上げのきっかけ

n 沖縄オープンラボを通じて、NTT Comとモノビットが出会うn NTT Com

• WebRTCの開発フレームワーク “SkyWay” を提供中• ゲームはWebRTCの有望なユースケースだが、

ゲーム開発者における認知が低く、採⽤も進んでいないn モノビット

• ゲーム専⽤通信エンジンを提供中• 現状はサーバ⇔クライアント型だが、P2P型にも興味がある

15

Page 16: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ロードマップ

n まずは、WebRTCとその他のプロトコルの⽐較実験n WebRTCを使うかどうかも含めた開発⽅針を策定し、

プロトタイプ開発に進む

16

ゲーム⽤通信プロトコル実験

プロトタイプ開発

商⽤開発

開発⽅針の策定(今ココ)

Page 17: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ゲーム⽤通信プロトコル実験の概要

スマートフォン2台の間で通信に要する時間を測定

17

Page 18: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

プロトコル 4通り

18

P2P サーバ経由

①WebRTC ②UDP

③TCP

④WebSocket

Page 19: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

地域 2通り

19

①沖縄

②東京

Page 20: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

場所 3通り

20

①オフィス街 ②住宅街 ③電⾞で移動中

Page 21: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

端末 2通り

21

①iPhone ②Androidスマホ

Page 22: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

アプリ 2通り

22

①ブラウザ ②測定⽤アプリ

Page 23: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

回線 4通り

23

①光+Wi-Fi

②ドコモLTE

③auLTE

④ソフトバンクLTE

Page 24: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

時間帯 4通り

24

②平⽇ 夜間

①平⽇ ⽇中

④休⽇ 夜間

③休⽇ ⽇中

Page 25: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

リレーサーバ 1通り

25

①AWS 東京リージョン

Page 26: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

送信データ 1通り

26

①1/64秒(16ミリ秒)間隔で64bytesを送信

Page 27: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

謝辞

実験へのご協⼒ありがとうございました。

nブリブサー ⽐嘉様、喜納様n NEC 藤岡様n NTTコミュニケーションズ ⾼橋、加藤、⼭村

27

Page 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)

Page 29: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ゲーム⽤通信プロトコル実験でわかったこと①

n 正直に⾔って意外…n WebRTCはUDPより相当重いプロトコル

(UDPの上に、DTLSという暗号化レイヤーと、SCTPというプロトコルが乗っており、オーバーヘッドがある)

n 歴史あるWeb系プロトコルと⽐べると、プロトコルスタックが枯れておらず、パフォーマンスがでないのでは?

n と思っていた

29

Page 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%⾼速

Page 31: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ゲーム⽤通信プロトコル実験でわかったこと②

n WebRTCは、インターネットに出ず、キャリア網の中でつながったと考えられる

n ただし沖縄⇔沖縄の場合でも、沖縄内ではなく、東京までは⾏ってそう

31

Page 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倍⾼速

(僅差)

Page 33: 究極のゲーム用通信プロトコルを探せ!

Copyright © NTT Communications Corporation. All right reserved.

ゲーム⽤通信プロトコル実験でわかったこと③

n UDPは東京⇔沖縄を往復、WebRTCは家の中で繋がる

33

東京⇔沖縄を往復

Page 34: 究極のゲーム用通信プロトコルを探せ!

34Copyright © NTT Communications Corporation. All right reserved.

さて、WebRTCはゲーム向け通信プロトコルに使えるのでしょうか?