Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WebTransportのまとめと今後
Search
yuki_uchida
December 11, 2020
Technology
5
1.5k
WebTransportのまとめと今後
WebTransport & WebCodecs meetup vol.0
で話したWebTransportについてのまとめと、今後の予想についてのスライドです。
yuki_uchida
December 11, 2020
Tweet
Share
More Decks by yuki_uchida
See All by yuki_uchida
Rustでマルチスレッドプログラミング! リアルタイム通信ではどのようにスレッドを立てるのか
yuki_uchida
8
7.9k
MoQとか勉強会#2 発表資料
yuki_uchida
2
2.8k
SkyWayが遭遇したWebRTC の可観測性に関する問題と開発者向け可視化サービス提供までの道のり
yuki_uchida
4
4.4k
技術発信を続けるためのTIPS
yuki_uchida
3
210
何かの技術の"専門家"になりたかったから技術調査チームを立ち上げてプロダクトに貢献した話
yuki_uchida
6
810
メソッドチェーンを使ってDataFrameの可読性と保守性を向上させよう
yuki_uchida
1
520
仕様策定中のプロトコルを Rust で書いてブラウザで動かしてみた
yuki_uchida
3
4.4k
Media Over QuicTransportって知ってる?
yuki_uchida
0
690
WebRTCの歴史とこれから
yuki_uchida
0
1.5k
Other Decks in Technology
See All in Technology
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
700
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
OpenShiftでllm-dを動かそう!
jpishikawa
0
130
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
590
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
180
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
680
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
110
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.3k
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
180
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Crafting Experiences
bethany
1
49
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
Docker and Python
trallard
47
3.7k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
How to Ace a Technical Interview
jacobian
281
24k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
Transcript
WebTransportのまとめと今後 WebTransport & WebCodecs meetup vol.0
Intro 内田 裕貴(@yuki_wtz) Webとか自然言語処理とかが好き 最近はNWプロトコルとか映像音声処理に興味あり 2019年4月: NTT コミュニケーションズ入社 2019年6月: SkyWay
DevOpsチームに配属 2020年6月: WebTransportの調査開始 2020年9月: WebRTC Researchチームで活動開始
1. WebTransport記事のまとめと補足 2. WebTransportの最新動向 a. TPAC 2020 b. IETF 2020
3. いつ触るべきなの WebTransport a. 各ブラウザベンダの雰囲気 (Kranky geek 2020) b. 触ってみた所感 興味あればみてね https://qiita.com/yuki_uchida/items/d9de148bb2ee418563cf
1. WebTransportのまとめ 1. WebTransportとは? 2. どうしてWebTransportが出てきたの? 3. WebSocket/WebRTCとの違いのまとめ 4. QUICというプロトコル
1. WebTransport とは WebTransport とは・・・
1. WebTransport とは WebTransport とは・・・ WebSocketやWebRTCと同じ低遅延な双方向通信フレームワーク
1. どうしてWebTransportが出てきたの?
1. どうしてWebTransportが出てきたの? WebRTCやWebSocketには問題がたくさん・・・
1. どうしてWebTransportが出てきたの? - WebSocketのパフォーマンス問題 - WebSocketでは対応できないユースケース - WebRTCの複雑さ - WebRTCの柔軟性のなさ
WebRTCやWebSocketには問題がたくさん・・・
1. どうしてWebTransportが出てきたの? - WebSocketのパフォーマンス問題 - WebSocketでは対応できないユースケース - WebRTCの複雑さ - WebRTCの柔軟性のなさ
WebRTCやWebSocketには問題がたくさん・・・ => (実は)一部の事業者は苦しんでいた・・・
1. どうしてWebTransportが出てきたの? 一部の事業者って誰? - 映像配信 - クラウドゲーミング - IoTデータ などなど・・・
常に低遅延を目指したいサービス 何かいい技術は・・・
1. どうしてWebTransportが出てきたの? QUIC採用によるパフォーマンス問題解消 (HLoB) TCP/UDPの両ユースケースの対応 WebSocketのような低レベルAPIによる柔軟性 これならいける そこで考案されたのが・・・ WebTransport!
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebSocket WebRTC UDP like ??? WebRTC 今までの双方向通信
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebSocket WebRTC UDP like WebRTC...? WebRTC 今までは満たすことのできなかったユースケースを WebRTCなどを用いて頑張って満たしていた。 しかしWebRTCはそもそもP2Pを前提に策定されているため、 サバクラ型にはfitせず、複雑になってしまったりする問題も・・・
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebSocket WebRTC UDP like WebTransport WebRTC そういったケースがWebTransportで!!! 映像配信・クラウドゲーミング・ IoTなどの低遅延が求められるアプリケーション の希望の光!!!
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebSocket WebRTC UDP like WebTransport WebRTC そういったケースがWebTransportで!!! 映像配信・クラウドゲーミング・ IoTなどの低遅延が求められるアプリケーション の希望の光!!! そしてさらに・・・
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebTransport WebRTC UDP like WebTransport WebRTC もともとWebSocketで満たしていたユースケースも WebTransportで!! WebTransportはTCPlikeなユースケースもUDPlikeなユースケースも満たせる ように策定されている。
1. WebSocket/WebRTCとの違いのまとめ Server <-> Client (サバクラ) Peer <-> Peer (P2P)
TCP like WebTransport WebRTC (RTCQuicTransport) UDP like WebTransport WebRTC (RTCQuicTransport) さらにさらに・・・ WebRTCにもRTCQuicTransportというものを作ろうという動きがあります。 (WebRTCではSCTPとDTLSというプロトコルが複雑かつ遅かったためです。これを QUICに置き換えようという動きです。 )
1. QUICというプロトコル この動きの背景には・・・ QUIC というプロトコルの策定が進んできていたのが影響しています 4年ほど時間を掛けて策定が進んできた QUICがfixに向けて動き出した。 QUICを採用しているWebTransportもそれに応じて進んできた
1. QUICというプロトコル QUICとは UDP上にTCPの色々なしくみ・TLSの機能などを 載せた新しいプロトコル 引用: https://datatracker.ietf.org/meeting/98/materials/slides-98-edu-sessf-quic-tutorial/ 過去策定された色々なプロトコルの反省を 踏まえて策定された Reliable
UDP... SCTP...
2. WebTransport最新動向 2020年 6月 : Google Chrome M84からWebTransportのOrigin Trialの開始 8月
: Google Chrome M86からWebCodecsのOrigin Trialの開始 10月: TPAC2020 WebTransport MTG 10月: QUICのラストコール 11月: IETF2020 11月: Kranky geek 2020(WebRTC conference)
2. WebTransportのOrigin Trial開始(2020 5~6月) 正確には QuicTransport(WebTransportの軽量版)が Google Chromeで Origin Trial
開始 Github Issueとか bugs.chromium.orgでバグが議論されたり重要な APIの変更が報告されたりする
2. WebCodecsのOrigin Trial開始(2020 8月) WebTransportはTCP/UDP両ユースケース対応 注目されるのは映像や音声などのメディアデータ コーデックの低レベルAPIを触れると嬉しいよねってこ とでWebCodecsが登場。 WebTransportとWebCodecsを組み合わせてビ デオチャットアプリを作ってみた記事もあげている
のでみてね https://qiita.com/yuki_uchida/items/b177ec07ac0379950e58
2. TPAC 2020 WebTransport MTG (2020/10) WebTransportがテーマのMTGがTPACで開 催された(初?) ユースケースの確認や上がっている issueに
ついての議論が行われた。 引用: TPACのスライドのリンク https://docs.google.com/presentation/d/1xx1MLjxY-ZiWQBxivJCITmvKrHdW3AMuz-DxDOr Acdw/edit#slide=id.g9d9162b157_1_588
2. QUICのラストコール(2020/10) WebTransportではQUICプロトコルを採用している。 およそ4年間かけて使用策定がすすめられてきたQUICがついにfix... ドラフトのversionは32 にまでなった QUICがコア技術となっている WebTransportも 使用策定がしやすく。 今後、策定はより進んでいくはず。
https://tools.ietf.org/html/draft-ietf-quic-transport-32
2. IETF 2020 WebTransport MTG (2020/11) WebTransportがテーマのMTGがIETFで開催。 TPACと同様にユースケースの確認や上がっているissueについての議 論が行われた。 引用:IETFのスライドのリンク
https://datatracker.ietf.org/meeting/109/materials/slides-109-webtrans-ietf-109-webtrans-wg-slides-03 WebTransportとQuicTransportの APIの統合が発表されたり (引数に与えるURLで内部で dispatchしてくれるように)
2. Kranky Geek 2020 WebRTC Conference (2020/11) Kranky Geek は
WebRTCがメインのテーマのカンファレンス WebTransportはWebRTC Next Versionとしても期待されているので、質問コー ナーでは多くWebTransportについての質問がよせられていた => その内容は次のセクションで
3. いつ触るべきなの WebTransport
3. いつ触るべきなの WebTransport 個人的な主観ですが・・・ 映像配信・クラウドゲーム・IoTなど、低遅延通信のパ フォーマンスがそのままサービスの価値に直結してしまう ような企業でなければ当分触る必要なし
3.a. 各ブラウザベンダの雰囲気 Google Chrome Safari Firefox Microsoft Edge 前向き 様子見
様子見 様子見 *) Kranky geek 2020で行われたブラウザベンダセッションより。 *) 各社が正式な声明を出しているわけではなく、ディスカッションを通して感じた個人的な解釈なのでご注意く ださい 低レベルAPIがないと実現できないユース ケースがあるので進めていくよ 特に言及なし 大企業にしか扱えない様な APIにならなな いかは不安だけど改善はもちろん賛成 柔軟性は素晴しいけど検証中の技術
3.a. 各ブラウザベンダの雰囲気 Google Chrome Safari Firefox Microsoft Edge 前向き 様子見
様子見 様子見 Origin Trial 実施中 具体的な開発計画なし 具体的な開発計画なし 具体的な開発計画なし *) Kranky geek 2020で行われたブラウザベンダセッションより。 *) 各社が正式な声明を出しているわけではなく、ディスカッションを通して感じた個人的な解釈なのでご注意く ださい
3.b. 触ってみた所感 WebTransport datagramがウリだが、WebRTCやHLSなどではサポートされ ている仕組みがまだまだ実装されていない - 再送処理 - 輻輳制御 etc...
=> 今まで既存の実装に頼っていた仕組みを自前で実装する必要が出てく る。そしてそれをうまくやってくれるライブラリもまだまだ出てきていない
3.b. 触ってみた所感 WebTransport datagramがウリだが、WebRTCなどではサポートされている 仕組みがまだまだ実装されていない - 再送処理 - 輻輳制御 etc...
=> 今まで既存の実装に頼っていた仕組みを自前で実装する必要が出てく る。そしてそれをうまくやってくれるライブラリもまだまだ出てきていない 低レベルAPIの宿命・・・(柔軟性は増すが扱うのが難しい )
3.b. 触ってみた所感 映像の様なデータを送る際に必要な、パケット分割や再送制御など、軽いも のは実装してみたが、色々なテクニックの塊なので、ここらへんを自作するの は結構大変。 => プロトコルに詳しくて自作できる様な人材と余裕がある企業なら今からで も動けるかも WebTransportとWebCodecsを組み合わせてビデオチャットを実装してみる」という記事でそこらへん を書いてます
https://qiita.com/yuki_uchida/items/b177ec07ac0379950e58
3.b. 触ってみた所感 UDPが通らないような場合のフォールバックもまだ策定中 - FallbackTransport(Http2Transport) => 現状だと結局fallbackとしてWebSocket(etc)使うことに・・・
3.b. 触ってみた所感 既存のライブラリを使用した場合にパフォーマンスに懸念が残る - WebSocketやWebRTCに比べてCPU使用率が高い - 各コードがまだパフォーマンスチューニングされていない (Origin Trial中なので当然ですが )
- ブラウザの実装 - ライブラリ - 軽く調べてみると、100byteもないデータを送信するために 3%もCPUがくわれた。 - 複数人に送信したい&映像のような大きなデータを送りたいとなった時にキツイかも - Macbook Pro(2.9 GHz 6コアIntel Core i9) - aioquicをquicTransportサーバーで使用
3. つまり・・・ まずはGoogle Chromeが進めている Origin Trialが順調に進み、パフォーマンスの調査やコー ドの最適化が行われ、各ブラウザベンダが実装するまでは実用段階にはない。 プロトコルに詳しく、UDP上に再送処理などのいろいろな仕組み・WebTransportサーバーを自 作できるパワーを持ち、通信のパフォーマンスがサービスの価値に直結するような企業でなけ れば使うのが難しいのが現状
=> とはいえ、2,3年後にはどうなってるかわかりません。 => ライブラリなどが充実してくるまで期待して待ちましょう(ウォッチしておくと技術的に優位に立 てるかも?)
おわり