SPDY/3 の HTTP 重畳効果を測定する

彰 村地
彰 村地IT スペシャリスト at 株式会社シーピーエス
SPDY の
HTTP 重畳の
効果を計測する
Murachi Akira
aka hebikuzure
This material provided by CC BY-NC-ND 4.0. See http://creativecommons.org/licenses/by-nc-nd/4.0/
About me
村地 彰 aka hebikuzure
株式会社シーピーエス
http://www.murachi.net/
http://www.hebikuzure.com/
MicrosoftMVP(InternetExplorer)Apr.2011~
2014/7/29 2© 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮)
Web サイト今昔
昔: 1回ずつ読み込ん
だら終わり
今: 何度でもサー
バーとやり取り
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 3
HTML
画像 JS CSS
HTML
(SPA)
画像 JS CSS
XHR
画像画像 JSJS CSSCSS
Web
Sockets
HTTP はステートレス
1対のリクエスト – レスポンスで終了
HTTP 1.0 では HTTP セッションが終わる
と TCP セッションも終了
HTTP 1.1 で Keep-Alive が可能になる
それでも TCP 1 セッションで HTTP 1 セッ
ションしか収容できない
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 4
Modern Web =
TCP Session Eater
1ページを表示するだけなのに
TCP セッション数が膨大になる
TCP handshake のオーバーヘッド
NAT セッションの枯渇?
CGN (Carrier Grade NAT) はどうする?
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 5
TCP を大切に使おう!
TCP 1 セッションに複数の HTTP セッショ
ンを重畳すればいいんじゃない?
by Google
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 6
SPDY
SPDY で TCP セッション
削減
同じオリジンへの HTTP リクエストが一
つの TCP セッションに重畳される
ページの動作に必要な TCP セッション数
が削減される
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 7
TCP セッション削減を計
測
環境 : Windows 7 SP1
ブラウザー :
◦ Google Chrome 36 (SPDY/3 サポート)
◦ Internet Explorer 11 (SPDY 未サポート)
サイト :
◦ Gmail のトップページ
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 8
測定方法
各ブラウザーで Gmail を表示
リンククリックからページ表示終了まで
Wireshark でパケットキャプチャ
[Statics]
– [Conversation List]
– [TCP(IPv4 & IPv6)]
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 9
比較
googlehosted.l.googleusercontent.com
◦ 8 ⇒ 5
googlemail.l.google.com
◦ 5 ⇒ 1
talkgadget.l.google.com
◦ 7 ⇒ 1
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 10
結論
SPDY/3 で TCP セッションに HTTP (HTTPS)
セッションが重畳されている
TCP セッション数が削減されている
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 11
比較手順
1. Wireshark から Conversation List をコ
ピー
2. コピーしたリストをテキスト エディタ
に貼り付けて csv ファイルとして保存
3. csv ファイルを Excel で開く
4. Excel で集計
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 12
Conversation List をコピー
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 13
[Copy] ボタンをクリック
csv ファイルとして保存
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 14
[名前を付けて保存]
csv ファイルを Excel で開
く
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 15
Excel がインストールされていれば、csv ファイルのダブルクリックで開く
Excel で集計 (1)
見やすくするため列幅を調整
◦ 調整したい列を選択、列見出しの境界線をダ
ブルクリックで自動調整
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 16
Excel で集計 (3)
集計のために個数を数えるフィールド
(ここでは Address B)でソートする
1. Address B の列内のセルをクリック
2. [データ] タブ– [昇順]
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 17
Excel で集計 (3)
1. 集計したいセル範囲内をクリック
2. [データ] タブ – [小計]
◦ グループの基準
◦ Address B
(サーバー側エンドポイント)
◦ 集計の方法
個数
◦ 集計するフィールド
Address B
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 18
Excel で集計 (4)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 19
アウトライン記号(赤囲)をクリックして折りたためます
Excel で集計 (5)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 20
折り畳んで不要な列を非表示にし、列幅を調整すれば
TCP セッション数一覧表の完成
※ 集計の解除はもう一度 [修正の設定] を表示して [すべて削除]
ピボット テーブルで集計
ピボット テーブルを使った集計も可能
1. 集計したいセル範囲内をクリック
2. [挿入] タブ – [ピボット テーブル]
3. [OK] をクリック
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 21
ピボット テーブルで集計
(2)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 22
Address B を [行] にドロップ
ピボット テーブルで集計
(3)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 23
Port B を [値] にドロップ
ピボット テーブルで集計
(4)
1. [値] の [合計/Port B] をクリック
2. [値フィールドの設定] をクリック
3. [集計方法] で
[データの個数] を
選択
4. [OK] をクリック
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 24
ピボット テーブルで集計
(4)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 25
TCP セッション数一覧表の完成
SPDY の現状とこれから
HTTP/2 として標準化予定
SPDY/3 はメジャーなブラウザーの最新
バージョンで既にサポート済み
◦ Internet Explorer でも Windows 8 / 8.1 で
サポート済み
Google のサイト以外に、Twitter などでサ
ポート済み
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 26
HTTP を刷新しよう
HTTP 1.1 の次のバージョン
最初は HTTP 2.0 として検討
SPDY を基礎に標準化
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 27
HTTP/2
HTTP/2
TCP 1 セッションに複数の HTTP セッショ
ン (ストリーム) を重畳
バイナリ フレームの採用
HPACK によるヘッダー圧縮
サーバー プッシュ
ストリームのプライオリティ設定
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 28
HTTP/2 の現状
IETF の Working Group で Last Call
今年中に IESG に提出予定
各ベンダーの実装と相互運用性検証は進
んでいる (サーバー / クライアントとも)
2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 29
1 of 29

More Related Content

Viewers also liked(20)

What’s New in Apache Lucene 2.9What’s New in Apache Lucene 2.9
What’s New in Apache Lucene 2.9
Lucidworks (Archived)486 views
Search Analytics What? Why? How?Search Analytics What? Why? How?
Search Analytics What? Why? How?
Lucidworks (Archived)1K views
Joan MiroJoan Miro
Joan Miro
guest986e5ae273 views
What’s new in apache lucene 3.0What’s new in apache lucene 3.0
What’s new in apache lucene 3.0
Lucidworks (Archived)994 views
How To Get The Justin Bieber SmileHow To Get The Justin Bieber Smile
How To Get The Justin Bieber Smile
Dr. D. K. Simmons, DDS1.2K views
Mujer, pajaro y estrellaMujer, pajaro y estrella
Mujer, pajaro y estrella
guest986e5ae486 views
A haitiA haiti
A haiti
tanica249 views
PortadesPortades
Portades
guest6bfe1581293 views
Azure と世間様Azure と世間様
Azure と世間様
彰 村地841 views
Van goghVan gogh
Van gogh
guest986e5ae857 views
Already, just, still, yetAlready, just, still, yet
Already, just, still, yet
tanica2.8K views
Integration of apache solr with crawlersIntegration of apache solr with crawlers
Integration of apache solr with crawlers
Lucidworks (Archived)1.2K views

More from 彰 村地(20)

Process Monitor の使い方Process Monitor の使い方
Process Monitor の使い方
彰 村地782 views
How tousemicrosoftsearch 20200725How tousemicrosoftsearch 20200725
How tousemicrosoftsearch 20200725
彰 村地269 views
Web standard 2019_0216Web standard 2019_0216
Web standard 2019_0216
彰 村地256 views
Message Analyzer 再入門【2】Message Analyzer 再入門【2】
Message Analyzer 再入門【2】
彰 村地1.9K views
Message Analyzer 再入門【1】Message Analyzer 再入門【1】
Message Analyzer 再入門【1】
彰 村地3.9K views

SPDY/3 の HTTP 重畳効果を測定する

  • 1. SPDY の HTTP 重畳の 効果を計測する Murachi Akira aka hebikuzure This material provided by CC BY-NC-ND 4.0. See http://creativecommons.org/licenses/by-nc-nd/4.0/
  • 2. About me 村地 彰 aka hebikuzure 株式会社シーピーエス http://www.murachi.net/ http://www.hebikuzure.com/ MicrosoftMVP(InternetExplorer)Apr.2011~ 2014/7/29 2© 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮)
  • 3. Web サイト今昔 昔: 1回ずつ読み込ん だら終わり 今: 何度でもサー バーとやり取り 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 3 HTML 画像 JS CSS HTML (SPA) 画像 JS CSS XHR 画像画像 JSJS CSSCSS Web Sockets
  • 4. HTTP はステートレス 1対のリクエスト – レスポンスで終了 HTTP 1.0 では HTTP セッションが終わる と TCP セッションも終了 HTTP 1.1 で Keep-Alive が可能になる それでも TCP 1 セッションで HTTP 1 セッ ションしか収容できない 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 4
  • 5. Modern Web = TCP Session Eater 1ページを表示するだけなのに TCP セッション数が膨大になる TCP handshake のオーバーヘッド NAT セッションの枯渇? CGN (Carrier Grade NAT) はどうする? 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 5
  • 6. TCP を大切に使おう! TCP 1 セッションに複数の HTTP セッショ ンを重畳すればいいんじゃない? by Google 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 6 SPDY
  • 7. SPDY で TCP セッション 削減 同じオリジンへの HTTP リクエストが一 つの TCP セッションに重畳される ページの動作に必要な TCP セッション数 が削減される 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 7
  • 8. TCP セッション削減を計 測 環境 : Windows 7 SP1 ブラウザー : ◦ Google Chrome 36 (SPDY/3 サポート) ◦ Internet Explorer 11 (SPDY 未サポート) サイト : ◦ Gmail のトップページ 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 8
  • 9. 測定方法 各ブラウザーで Gmail を表示 リンククリックからページ表示終了まで Wireshark でパケットキャプチャ [Statics] – [Conversation List] – [TCP(IPv4 & IPv6)] 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 9
  • 10. 比較 googlehosted.l.googleusercontent.com ◦ 8 ⇒ 5 googlemail.l.google.com ◦ 5 ⇒ 1 talkgadget.l.google.com ◦ 7 ⇒ 1 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 10
  • 11. 結論 SPDY/3 で TCP セッションに HTTP (HTTPS) セッションが重畳されている TCP セッション数が削減されている 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 11
  • 12. 比較手順 1. Wireshark から Conversation List をコ ピー 2. コピーしたリストをテキスト エディタ に貼り付けて csv ファイルとして保存 3. csv ファイルを Excel で開く 4. Excel で集計 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 12
  • 13. Conversation List をコピー 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 13 [Copy] ボタンをクリック
  • 14. csv ファイルとして保存 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 14 [名前を付けて保存]
  • 15. csv ファイルを Excel で開 く 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 15 Excel がインストールされていれば、csv ファイルのダブルクリックで開く
  • 16. Excel で集計 (1) 見やすくするため列幅を調整 ◦ 調整したい列を選択、列見出しの境界線をダ ブルクリックで自動調整 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 16
  • 17. Excel で集計 (3) 集計のために個数を数えるフィールド (ここでは Address B)でソートする 1. Address B の列内のセルをクリック 2. [データ] タブ– [昇順] 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 17
  • 18. Excel で集計 (3) 1. 集計したいセル範囲内をクリック 2. [データ] タブ – [小計] ◦ グループの基準 ◦ Address B (サーバー側エンドポイント) ◦ 集計の方法 個数 ◦ 集計するフィールド Address B 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 18
  • 19. Excel で集計 (4) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 19 アウトライン記号(赤囲)をクリックして折りたためます
  • 20. Excel で集計 (5) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 20 折り畳んで不要な列を非表示にし、列幅を調整すれば TCP セッション数一覧表の完成 ※ 集計の解除はもう一度 [修正の設定] を表示して [すべて削除]
  • 21. ピボット テーブルで集計 ピボット テーブルを使った集計も可能 1. 集計したいセル範囲内をクリック 2. [挿入] タブ – [ピボット テーブル] 3. [OK] をクリック 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 21
  • 22. ピボット テーブルで集計 (2) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 22 Address B を [行] にドロップ
  • 23. ピボット テーブルで集計 (3) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 23 Port B を [値] にドロップ
  • 24. ピボット テーブルで集計 (4) 1. [値] の [合計/Port B] をクリック 2. [値フィールドの設定] をクリック 3. [集計方法] で [データの個数] を 選択 4. [OK] をクリック 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 24
  • 25. ピボット テーブルで集計 (4) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 25 TCP セッション数一覧表の完成
  • 26. SPDY の現状とこれから HTTP/2 として標準化予定 SPDY/3 はメジャーなブラウザーの最新 バージョンで既にサポート済み ◦ Internet Explorer でも Windows 8 / 8.1 で サポート済み Google のサイト以外に、Twitter などでサ ポート済み 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 26
  • 27. HTTP を刷新しよう HTTP 1.1 の次のバージョン 最初は HTTP 2.0 として検討 SPDY を基礎に標準化 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 27 HTTP/2
  • 28. HTTP/2 TCP 1 セッションに複数の HTTP セッショ ン (ストリーム) を重畳 バイナリ フレームの採用 HPACK によるヘッダー圧縮 サーバー プッシュ ストリームのプライオリティ設定 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 28
  • 29. HTTP/2 の現状 IETF の Working Group で Last Call 今年中に IESG に提出予定 各ベンダーの実装と相互運用性検証は進 んでいる (サーバー / クライアントとも) 2014/7/29 © 2014 Murachi Akira - CC BY-NC-ND - ネットワーク パケットを読む会(仮) 29