Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HTTP優先度制御の今後とビデオ配信
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kazuho
December 11, 2019
Programming
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTTP優先度制御の今後とビデオ配信
HTTP/2と3にむけて検討が進んでいる新しい優先度制御の仕組みと、それがビデオ配信にもたらす最適化の可能性について解説します。
kazuho
December 11, 2019
More Decks by kazuho
See All by kazuho
RubyでRuby拡張を書いたらRubyより35倍速になったってどういうこと??
kazuho
3
1.3k
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
1.6k
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
2
2.5k
Encrypted SNI
kazuho
5
7.1k
Security, privacy, performance of next-generation transport protocols
kazuho
8
41k
TLS 1.3とその周辺の標準化動向
kazuho
0
9.9k
Fastlyのプログラマから見たCDN
kazuho
29
19k
Other Decks in Programming
See All in Programming
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
240
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
160
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
スマート反転とウェブアクセシビリティ
camiha
0
210
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
110
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
110
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
540
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
350
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
110
VueプロジェクトをTypeScript7に対応させる- Side-by-Side戦略による一部高速化 -
koukimiura
0
110
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
100
Featured
See All Featured
How to make the Groovebox
asonas
2
2.4k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
320
Building Adaptive Systems
keathley
44
3.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
270
WENDY [Excerpt]
tessaabrams
14
39k
Designing for humans not robots
tammielis
254
26k
Fireside Chat
paigeccino
43
4k
Typedesign – Prime Four
hannesfritz
42
3.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Transcript
HTTPの 新しい優先度制御と ビデオ配信 Kazuho Oku
自己紹介 • オープンソースHTTPサーバ「H2O」主開発者 ◦ CDN等で採用 ◦ HTTP, TLS, QUICスタックを実装 •
IETFでの標準化に参加 ◦ 103 Early Hints (RFC 8297) ◦ Encrypted SNI (draft-ietf-tls-esni) ◦ HTTP Priorities (draft-kazuho-httpbis-priority)
• HTTP/2優先度制御 - 非推奨へ • HTTP/2と3に適用可能な新しい優先度制御 • 新優先度制御手法とビデオ配信 アジェンダ
ウェブページの優先度制御 • だいたい以下の順に配信するのが正解 ◦ JS, CSS (レンダリングをブロックするもの) ◦ HTML ◦
画像 ◦ 非同期読み込みのJS • 最適な順序はウェブサイト毎に異なります ◦ https://lists.w3.org/Archives/Public/ietf-http-wg/2019JulSep/0008.html
HTTP/2優先度制御 - Firefox source: https://datatracker.ietf.org/meeting/105/materials/slides-105-httpbis-sessa-http3-priorities-01
HTTP/2優先度制御 - Chrome source: https://datatracker.ietf.org/meeting/105/materials/slides-105-httpbis-sessa-http3-priorities-01
HTTP/2優先度制御 - 問題点 • クライアント・サーバ双方が正しく実装する必要あり ◦ だが、仕様が複雑で実装品質がまちまち ◦ 結果、うまく働いていないことも多い •
サーバによる優先度介入が不可能 ◦ クライアント毎に構築する「木」の形が違うため ↓ HTTP/2の優先度制御は非推奨へ
HTTPワーキンググループの現状 • HTTP/3の標準化が進行中 • 並行して、HTTP/2と3の両方で機能する、より単純な新しい優 先度制御手法を標準化することに ◦ "Extensible Prioritization Scheme
for HTTP" ▪ 著者: Kazuho Oku (Fastly), Lucas Pardue (Cloudflare) ▪ 現在Call for Adoptionの結果待ち
新手法 - 設計方針 • ウェブページの優先度指定に必要な機能を実装 ◦ HTTP/2の現手法と同等以上の性能を確保 ◦ HTTPのバージョン関係なく動作 ◦
HTTP/3に間に合うよう必要最小限の機能 ◦ サーバによる優先度介入をサポート • 将来にむけた拡張性を担保
新手法 - 絶対値による優先度指定 time urgency GET /index.html Priority: u=1, i=?1
GET /style.css Priority: u=0 GET /image.jpg Priority: u=4, i=?1 GET /analytics.js Priority: u=5
新手法 - 8段階の絶対的優先度 ("u") Name Urgency Examples prerequisite 0 CSS,
JS in <HEAD> default 1 HTML, fonts supplementary 2 (server-only) 3 hero images 4 images 5 async JS 6 (server-only) background 7 prefetch, file download wiggle room for clients
新手法 - 「インクリメンタル」フラグ ("i") • インクリメンタルにデータを処理できるかを表すフラグ ◦ 画像 => true,
CSS, JS => false
新手法 - 絶対値による優先度指定 time urgency GET /index.html Priority: u=1, i=?1
GET /style.css Priority: u=0 GET /image.jpg Priority: u=4, i=?1 GET /analytics.js Priority: u=5
新手法 - サーバによる優先度介入 • サーバの指定したパラメータが、クライアントの指定値をオー バーライド • 例: Async JSを画像よりも高優先度に変更
GET /critical.js Priority: u=5 GET /critical.js Priority: u=5 200 OK Priority: u=1 H2 terminator origin server
新手法 - 拡張性 • 任意のパラメータを追加可能 • 想定される第一の利用用途がビデオストリーミング ◦ 具体的には、これから議論 GET
/index.html Priority: u=1, i=?1
新手法 - 拡張性 • 任意のパラメータを追加可能 • 想定される第一の利用用途がビデオストリーミング ◦ 具体的には、これから議論 GET
/index.html Priority: u=1, i=?1, hoge=foo
ビデオストリーミングの優先度制御 • ウェブページの優先度制御とは要件が異なる ◦ ウェブページ - ファイルの優先度は固定 ◦ ビデオストリーミング -
.tsの優先度は時間と共に変化 ▪ 再生直前の.ts - 優先度最高 ▪ 再生後の.ts - 優先度ゼロ... • 優先度を、どのようにパラメータ化するか
ビデオストリーミングの優先度制御 • 再生タイミングを指定する?
ビデオストリーミングの優先度制御 • 再生タイミングを指定する? time GET /filePart271.ts Priority: playat=193031;dur=10 GET /filePart272.ts
Priority: playat=193041;dur=10 GET /filePart273.ts Priority: play=193051;dur=10
ビデオストリーミングの優先度制御 • 再生タイミングを指定する? ◦ あるいは、不要になった.tsのリクエストは、クライアントが キャンセルすればいい?
ビデオストリーミングの優先度制御 • 全ての.tsがIフレームを含まない場合、ファイル間の順序指定 も必要?
ビデオストリーミングの優先度制御 • 全ての.tsがIフレームを含まない場合、ファイル間の順序指定 も必要? time GET /filePart271.0.ts GET /filePart271.1.ts Priority:
after=/filePart271.0.ts GET /filePart271.2.ts Priority: after=/filePart271.1.ts
何が必要か、教えてください m(__)m