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

HTTP優先度制御の今後とビデオ配信

kazuho
December 11, 2019

 HTTP優先度制御の今後とビデオ配信

HTTP/2と3にむけて検討が進んでいる新しい優先度制御の仕組みと、それがビデオ配信にもたらす最適化の可能性について解説します。

kazuho

December 11, 2019
Tweet

More Decks by kazuho

Other Decks in Programming

Transcript

  1. 自己紹介
 • オープンソースHTTPサーバ「H2O」主開発者
 ◦ CDN等で採用
 ◦ HTTP, TLS, QUICスタックを実装
 •

    IETFでの標準化に参加
 ◦ 103 Early Hints (RFC 8297)
 ◦ Encrypted SNI (draft-ietf-tls-esni)
 ◦ HTTP Priorities (draft-kazuho-httpbis-priority)

  2. ウェブページの優先度制御
 • だいたい以下の順に配信するのが正解
 ◦ JS, CSS (レンダリングをブロックするもの)
 ◦ HTML
 ◦

    画像
 ◦ 非同期読み込みのJS
 • 最適な順序はウェブサイト毎に異なります
 ◦ https://lists.w3.org/Archives/Public/ietf-http-wg/2019JulSep/0008.html 

  3. HTTP/2優先度制御 - 問題点
 • クライアント・サーバ双方が正しく実装する必要あり
 ◦ だが、仕様が複雑で実装品質がまちまち
 ◦ 結果、うまく働いていないことも多い
 •

    サーバによる優先度介入が不可能
 ◦ クライアント毎に構築する「木」の形が違うため
 ↓
 HTTP/2の優先度制御は非推奨へ

  4. 新手法 - 設計方針
 • ウェブページの優先度指定に必要な機能を実装
 ◦ HTTP/2の現手法と同等以上の性能を確保
 ◦ HTTPのバージョン関係なく動作
 ◦

    HTTP/3に間に合うよう必要最小限の機能
 ◦ サーバによる優先度介入をサポート
 • 将来にむけた拡張性を担保

  5. 新手法 - 絶対値による優先度指定
 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

  6. 新手法 - 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 

  7. 新手法 - 絶対値による優先度指定
 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. ビデオストリーミングの優先度制御
 • ウェブページの優先度制御とは要件が異なる
 ◦ ウェブページ - ファイルの優先度は固定
 ◦ ビデオストリーミング -

    .tsの優先度は時間と共に変化
 ▪ 再生直前の.ts - 優先度最高
 ▪ 再生後の.ts - 優先度ゼロ...
 • 優先度を、どのようにパラメータ化するか