Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モンスターストライクのリアルタイム通信を支える技術

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 モンスターストライクのリアルタイム通信を支える技術

Avatar for Genta Kamitani

Genta Kamitani

July 06, 2019
Tweet

More Decks by Genta Kamitani

Other Decks in Programming

Transcript

  1. 自己紹介
 • 神谷 元太
 • Twitter: @cloudear8
 • 2018年 株式会社ミクシィに新卒入社


    • 開発本部 CTO室 SREグループ
 • モンスターストライク(モンスト)の
 開発・運用等を担当

  2. Session Traversal Utilities for NAT (STUN)
 • RFC5389
 • インターネット側から見たIPアドレス、ポートを取得するプロトコル


    • 他の拡張と組み合わせて使う
 client
 STUN
 N
 A
 T
 僕のIPアドレスは? 203.0.113.45 です
  3. Traversal Using Relays around NAT (TURN)
 • RFC5766
 • STUNの拡張


    • 端末間の通信を仲介する
 • UDP, TCP, TLS-over-TCPに対応
 client
 TURN
 N
 A
 T
 peer
 N
 A
 T

  4. TURN Extensions for TCP Allocations
 • RFC6062
 • TURNでTCPを使うための拡張
 •

    クライアントはサーバーと二種類のコネクションを張る
 • モンストではこれを使う
 client
 TURN
 N
 A
 T
 peer
 N
 A
 T