ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

第三十一回スパルタンプログラミング

何がしたいか?何が問題か?を意識して変なとこでぐだぐだ考えないこと! 30分悩んで分からなかったら、早めにヘルプを出す。

会社の某先輩の3年振り返り回(以下)でしこたまやられたーン。

  1. ニパチ(7人):安くていいね
  2. SAYURI(7人):つい注文が増えちゃうね
  3. (どっかの)バル(5人):店員がかわいいね、シャンパンうめぇです
  4. ID(4人):テキーラダウン(入るときには終電を逃すことが確定していた)
  5. 長浜ラーメン(4人):沈黙

カラオケで朝まですごそうとする2人をふりきり、タクシーにのりこみヒロは千種へ、僕は本山の巣へ帰り着いた。

その次の日のこと。

やりたいこと

  • 頭が復活したら、のんびりしたい。
  • 「PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n」がとれねぇを解決したい。

やったこと

  • UPSのバッテリ替え8台。以上!
  • ssl関係まとめ
  • 「PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n」がとれねぇの解決
  • 150316にちょろっと

ssl関係まとめ

いっしーが情報収集してくれたもの

僕が収集したもの

「PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n」がとれねぇの解決

自分も悩み、いっしーも巻き込んで云々言わせたが、以前見た資料のp.7, 8に助けられた。

とりあえず、firefox側のabout:configのnetwork.http.spdy.enforce-tls-profileをfalseにすることでPRIがとれたー!!

network.http.spdy.enforce-tls-profileをfalseにしないでPRIをとるには?

cipher suiteを指定する必要があると思うのだけれど方法が分からん。ぐぐる

Parameters for using ECDHE and ECDSA

SSL_CTX_set_ecdh_auto

を使うのかい?もうちょっと調べるとopenssl 1.0.2のCHANGESに

*) Support for automatic EC temporary key parameter selection. If enabled$ the most preferred EC parameters are automatically used instead of$ hardcoded fixed parameters. Now a server just has to call:$ SSL_CTX_set_ecdh_auto(ctx, 1) and the server will automatically$
support ECDH and use the most appropriate parameters.$

とある。使ってみたらいけたー!

150316

frameの勉強

  • 9byte(72bit)のheader
    • 24bitのpayloadの長さ
    • 8bitのflame type
    • 8bitのframe type固有のflags
    • 1bitのreserved bit
    • 31bitのstream identifier
  • それにつづくpayload
    • payloadのstructとcontentはframe typeに依存する

frame type

  1. Data frames (type=0x0)
  2. The HEADERS frame (type=0x1)
  3. The PRIORITY frame (type=0x2)
  4. The RST_STREAM frame (type=0x3)
  5. The SETTINGS frame (type=0x4)
  6. The PUSH_PROMISE frame (type=0x5)
  7. The PING frame (type=0x6)
  8. The GOAWAY frame (type=0x7)
  9. The WINDOW_UPDATE frame (type=0x8)
  10. The CONTINUATION frame (type=0x9)

実装の戦略

  • frame formatは同じなので、同じstructに突っ込もう。 -- frame formatのstructはbit fieldで構成する。
  • frameへの応答は同一関数内でframe typeで応答を分けられるようにしよう。
  • HPACKどうする?

HPACKの勉強

マッチョすぎる。僕は借りてこよう(とこのときは思ってた)。nghttp2にHPACKのpublic APIがある。

HPACK 05の実装と解析

Chromium の hpack 実装をソースコードリーディング #http2study

HTTP 2.0のヘッダ圧縮