a

よろしくのキワミ

HTTP3なるもの『PART1』

HTTP/3なるもの『PART1』

が出るらしい。いつか勉強しようと思っていたので今日やることにした。
興味があるところだけ見ることにする。

理解できたことをメモ・雑に書きます
間違いがあればご指摘いただきますととてもありがたいです。

思ったことを書いているところ

参考にさせて頂いた本

https://http3-explained.haxx.se/ja/

そもそもHTTP2とはなにか

TCPで動作する

クライアントとサーバ間とのコネクションに複数のストリームがあり、並行してやり取りを行えるというもの。

それ以前のHTTP1.1では1件のリクエストに対して複数のレスポンスを返していたがリクエストの順番で取り寄せることになっていた。

問題点

プロトコルとしてTCPを使用しているため通信の途中でパケットの損失があった場合それ以降のやり取りが止まってしまう。

複数のストリームを使っているがhtmlやcssの取り寄せに  
1つのストリームを使っているだけで  
htmlを分割して複数のストリームで送るわけではない。

HTTP3とはなにか

QUICというプロトコルを使用した通信のこと。UDPで動作する

QUITではTCPにある3ウェイハンドシェイクのようにコネクションのセットアップが存在する。

このコネクションで2つの異なるストリームをセットアップする場合、独立したものとして扱われ、1つのストリーム内でパケットロスが起こってもそちらだけで再送制御できる

セキュリティ面

QUICでは平文版のプロトコルが存在しない。
もちろんコネクションを確立する際に行われるハンドシェイクのパケットは平文のままだ

ハンドシェイク

QUICのハンドシェイクは時間短縮のために0-RTTハンドシェイク1-RTTハンドシェイクを使用している。

www.slideshare.net

※ QUICではTLS messagesのみを利用しTLS recordsは利用しないことになっている。
OpenSSLはまだ対応できておらず、追加の要望もないとのこと

クライアントの負荷

QUICを膨大なトラフィックに適用させた場合HTTP/2 over TLSに比べ約2倍のCPUが必要になる。

これはUDPTCPやTLSのように通信への最適化がされていないだけのようだ。

つまりこれから作っていけばいいらしい。
開発者の人はチャンスですね(白目)

続く

プライバシーポリシー お問い合わせ