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
HTTP優先度制御の今後とビデオ配信
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kazuho
December 11, 2019
Programming
140
1
Share
HTTP優先度制御の今後とビデオ配信
HTTP/2と3にむけて検討が進んでいる新しい優先度制御の仕組みと、それがビデオ配信にもたらす最適化の可能性について解説します。
kazuho
December 11, 2019
More Decks by kazuho
See All by kazuho
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
2
1.8k
Encrypted SNI
kazuho
5
6.9k
Security, privacy, performance of next-generation transport protocols
kazuho
8
40k
TLS 1.3とその周辺の標準化動向
kazuho
0
9.8k
Fastlyのプログラマから見たCDN
kazuho
29
19k
Other Decks in Programming
See All in Programming
感情を設計する
ichimichi
2
420
存在論的プログラミング: 時間と存在を記述する
koriym
5
760
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
120
アーキテクチャモダナイゼーションとは何か
nwiizo
5
1.4k
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
430
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
110
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
590
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
180
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.4k
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
290
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
110
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
500
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Crafting Experiences
bethany
1
110
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
140
Why Our Code Smells
bkeepers
PRO
340
58k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
460
GraphQLとの向き合い方2022年版
quramy
50
14k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
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