Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
時雨堂 QUIC 開発ログ

時雨堂 QUIC 開発ログ

日時:2020-12-08
作:時雨堂
バージョン:2020.1

概要

時雨堂 で開発中の Erlang/OTP による QUIC / WebTransport の開発ログです。

目的

WebRTC が QUIC ベースの WebTransport を利用する可能性が高くなってきたため

  • WebTransport に対応するため
  • Erlang/OTP アピールのため

方針

  • コードは公開しない
  • Erlang/OTP NIF を利用しない
  • Erlang/OTP ssl モジュールを利用しない
  • QUIC 自体の販売予定はない

ゴール

進捗

QUIC タイムライン

一番上が最新

  1. draft-32 へ追従を開始
  2. draft-19 へ追従を開始
  3. Retry に対応
  4. Version Negotiation に対応
  5. draft-18 へ追従を開始
    • ACK Range へ切り替える
  6. draft-17 の卒業
  7. CRYPTO フレームの再送対応を開始した
  8. 再送やパケロスの調査を開始した
  9. ngtcp2 draft-17 と Short Header Packet のやり取りが成功した
  10. ngtcp2 draft-17 と Handshake が成功した
  11. ngtcp2 draft-17 ブランチをビルドして動作を確認した
  12. draft-17 へ追従を開始
    • Initial Saltを変更
    • Frame Type を変更
    • Long Header Packet Typeを変更
    • Label を pn から hp に変更
    • Label を "quic " から "tls " に戻し "quic key" などに変更
    • Transport Parameters の Type を変更
    • Transport Parameters の Length を変更
    • Protection Header の暗号化と復号に対応
  13. ngtcp2 draft-15 と Short Header Packet のやり取りが成功した
  14. keylog を出力し、Wireshark で QUIC パケットが復号できるようにした
  15. ngtcp2 draft-15 と Handshake が成功した
  16. サーバから Handshake パケットを送って QUIC のハンドシェイクを完了できるようにした
  17. EncryptedExtensions に QUIC TransportParameters を追加できるようにした
  18. ClientHello から QUIC Transport Parameters を取り出してデコードできるようにした
  19. サーバ Handshake Packet で CRYPTO フレームを分割できるようにした
    • RSA 2048 の証明書とかだと必ず分割が必要なので
  20. サーバ Handshake Packet を生成、暗号化できるようにした
  21. クライアント Initial Packet からサーバ Initial Packet を生成、暗号化できるようにした
  22. QUIC Frame のエンコーダーを実装した
  23. QUIC Packet のエンコーダーを実装した
  24. QUIC 専用の TLS 1.3 ライブラリを実装した
    • Record が不要
    • SeqNum が不要
    • QUIC 向け ClientHello 拡張が必要
    • PacketNumber Protection 向けの鍵が必要
      • Header Protection 向け鍵に draft-17 で変更
    • ChangeCipherSpec は不要
    • Alert は QUIC 向けにマッピングが必要
  25. クライアント Initial Packet をパース、復号できるようにした
  26. ngtcp2 のログと pcap からテストベクターを生成した
    • ngtcp2 は secret や key を出力してくれる機能がある
  27. ngtcp2 を使って pcap を取得した
  28. ngtcp2 の使い方を覚えた
  29. QUIC フレームのデコーダーを実装した
  30. QUIC パケットのデコーダーを実装した
  31. QUIC TLS のドラフトをざっと眺めた
    • 英語ができないので翻訳したもの
  32. QUIC Transport のドラフトをざっと眺めた
    • 英語ができないので翻訳したもの
  33. SO_REUSEPORT を利用した UDP の仕組みを用意した
    • UDP 1 ソケットをスケールするのは Erlang/OTP だと厳しいので
  34. TLS 1.3 1-RTT の実装した
    • TLS 1.3 0-RTT は未実装
      • QUIC 1-RTT が実装終わり次第着手予定
  35. TLS 1.3 理解した
    • TLS/DTLS 1.2 までの実装経験あり

2020-12-08

  • 1.5 年ぶりに draft-32 への追従を開始
  • WebTransport である QuicTransport への対応を目標とする
  • HTTP/3 対応は行わない

2019-04-08

  • ngtcp2 draft-19 とやり取りを確認した

2019-03-22

  • draft-19 の追従を開始した
  • draft-18 を卒業した
  • ngtcp2 draft-18 とやり取りを確認した

2019-02-20

  • HTTP/3 は別に

2019-02-08

  • Version Negotiation に対応した
  • Retry に対応した

2019-01-27

  • draft-18 の追従を開始した
  • draft-17 を卒業した

2019-01-21

  • CRYPTO フレームの再送対応を開始した

2019-01-10

  • 再送とパケロスの調査を開始した

2019-01-09

  • ngtcp2 draft-17 とメッセージのやり取りを確認した

2019-01-08

  • ngtcp2 draft-17 とハンドシェイクを確認した

2019-01-07

  • draft-17 に追従を開始した
  • ngtcp2 draft-17 の動作を確認した

2019-01-04

  • QUIC 1-RTT が動作した
  • keylog を出力するようにした
  • Wireshark で QUIC が復号できることを確認した

2018-12-30

  • QUIC 1-RTT ハンドシェイクが動作した

2018-12-26

  • draft-16 をメインに進めてる

2018-12-24

  • 進捗をわかりやすくした

2018-12-23

  • draft-16 をメインに進めてる、 draft-17 は ngtcp2 が draft-17 に対応したタイミングで進める
  • TLS 1.3 は QUIC 専用の実装を用意することにした
    • record や application_data を利用しない、暗号化や復号が Payload タイプということで既存を流用はめんどくさい
    • Erlang/OTP でフルスクラッチで実装した TLS 1.3 があるので、それを最小限実装に落としていく

2018-12-22

  • draft-16 も並行して開発していくことに
    • draft-16 用は quic16 prefix をつけて残すことにした

2018-12-21

  • draft-17 に追従を開始
    • ngtcp2 の draft-17 ブランチを参考に
    • initial salt の更新
    • packet number protection を header protection へ変更
    • label を修正

2018-12-16

  • SO_REUSEPORT を利用した同一ポートでの UDP スケール仕組みを用意した

2018-12-11

  • draft-16 で Client Initial Packet のデコードが成功した

2018-11-28

  • TLS 1.3 (1-RTT) over TCP が OpenSSL 1.1.1 の s_client で動作を確認

2018-11-06

QUIC が WebRTC に入る可能性が高いため QUIC の開発に着手

参考 RFC (ドラフト 含む)

QUIC

WebTransport

参考資料

現状

draft-32

  • 追従中

draft-18

  • QUIC Draft 18 (0xFF00012) の実装
    • ngtcp2 draft-18 疎通確認

draft-17

  • QUIC Draft 17 (0xFF00011) の実装
    • Handshake 完了
    • Short Header Packet 完了
    • ngtcp2 疎通確認

draft-16

  • QUIC Draft 16 (0xFF00010) の実装
    • Handshake 完了
    • Short Header Packet 完了
    • ngtcp2 疎通確認

tls 1.3

  • TLS 1.3 (1-RTT) over TCP の実装
    • 1-RTT 完了
    • openssl s_client テスト完了

ログ

日時:2018-04-08 時点の draft-19 対応のクライアントのログ

QUIC クライアント (ngtcp2) ログ

IP アドレスはダミー

$ ./client -i 127.0.0.1 4433                                                                                                                                                     (git)-[master]
msg_cb: write_p=1 version=772 content_type=22 len=296
I00000000 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt tx pkn=0 dcid=0x36404fd5e455d90cc27c82d17ef9baa04b37 scid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 type=Initial(0x00) len=0 k=0
I00000000 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Initial(0x00) CRYPTO(0x06) offset=0 len=296
I00000000 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Initial(0x00) PADDING(0x00) len=891
I00000000 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv loss_detection_timer=1554553803020391936 last_hs_tx_pkt_ts=1554553802820391936 timeout=200
Sent packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 1252 bytes
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 63 bytes
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=63
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=0 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x776388cfa9850cff166210b083d10daa type=Initial(0x00) len=22 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 0 Initial(0x00) ACK(0x02) largest_ack=0 ack_delay=0(0) ack_block_count=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 0 Initial(0x00) ACK(0x02) block=[0..0] block_count=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv latest_rtt=35 min_rtt=35 smoothed_rtt=35.115 rttvar=17.558 max_ack_delay=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv pkn=0 acked, slow start cwnd=13252
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv loss_detection_timer=1554553802890621952 last_hs_tx_pkt_ts=1554553802820391936 timeout=70
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 63 left 0
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 186 bytes
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=186
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=1 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x776388cfa9850cff166210b083d10daa type=Initial(0x00) len=144 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 1 Initial(0x00) CRYPTO(0x06) offset=0 len=123
Ordered CRYPTO data in Initial crypto level
00000000  02 00 00 77 03 03 9d 32  f9 c1 28 57 f1 43 f6 e6  |...w...2..(W.C..|
00000010  df 7b 92 51 82 09 12 83  17 7e 09 6b df d5 cf 7f  |.{.Q.....~.k....|
00000020  a6 1b 82 f8 f3 2b 00 13  02 00 00 4f 00 2b 00 02  |.....+.....O.+..|
00000030  03 04 00 33 00 45 00 17  00 41 04 c2 fe a3 42 37  |...3.E...A....B7|
00000040  cf ee a4 ac 11 31 b3 c1  79 e4 47 55 59 7e 77 e9  |.....1..y.GUY~w.|
00000050  0b 6a 23 07 44 d0 c0 47  66 e0 3b 52 9a 66 2f da  |.j#.D..Gf.;R.f/.|
00000060  c5 79 e6 79 20 a6 0c dc  2d a4 b3 1d 1d 81 c3 0a  |.y.y ...-.......|
00000070  37 4a e5 34 29 8f 1f 71  26 20 9d                 |7J.4)..q& .|
0000007b
msg_cb: write_p=0 version=772 content_type=22 len=123
server_handshake_traffic
+ secret=cf2e20c35160249cf7049a821c92d0712c561e0717b2e7e64d65c714f0939e748e4f4d1df558cabd2540b3745f18ca36
+ key=bc0ebe0a9d438a125655af14960f40f50a148a3541b774502595e80b9906cd60
+ iv=d3d1a721a0f1ca5419921ea7
+ hp=edc598b7b88cf3737d626f7727b5ee591f3b699b9524405a544a495d814b2e53
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 186 left 0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con processing buffered handshake packet
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 1212 bytes
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=1212
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=0 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x776388cfa9850cff166210b083d10daa type=Handshake(0x02) len=1171 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 0 Handshake(0x02) CRYPTO(0x06) offset=0 len=1150
Ordered CRYPTO data in Handshake crypto level
00000000  08 00 00 63 00 61 ff a5  00 5d ff 00 00 12 08 ff  |...c.a...]......|
00000010  00 00 12 ff 00 00 13 00  4e 00 02 00 10 11 6c 40  |........N.....l@|
00000020  6d ba 36 f9 95 dd 18 49  58 61 25 71 42 00 05 00  |m.6....IXa%qB...|
00000030  01 00 00 06 00 02 50 00  00 07 00 01 00 00 04 00  |......P.........|
00000040  04 80 01 00 00 00 08 00  02 40 64 00 09 00 01 00  |.........@d.....|
00000050  00 01 00 01 1e 00 03 00  04 80 00 ff f7 00 0a 00  |................|
00000060  01 03 00 0b 00 01 19 0b  00 03 4a 00 00 03 46 00  |..........J...F.|
00000070  03 41 30 82 03 3d 30 82  02 25 a0 03 02 01 02 02  |.A0..=0..%......|
00000080  09 00 e5 d9 bc 75 03 d9  e3 26 30 0d 06 09 2a 86  |.....u...&0...*.|
00000090  48 86 f7 0d 01 01 0b 05  00 30 35 31 0b 30 09 06  |H........051.0..|
000000a0  03 55 04 06 13 02 4a 50  31 12 30 10 06 03 55 04  |.U....JP1.0...U.|
000000b0  0a 0c 09 73 68 69 67 75  72 65 64 6f 31 12 30 10  |...shiguredo1.0.|
000000c0  06 03 55 04 03 0c 09 73  68 69 67 75 72 65 64 6f  |..U....shiguredo|
000000d0  30 1e 17 0d 31 38 31 31  32 36 30 33 34 30 32 33  |0...181126034023|
000000e0  5a 17 0d 32 38 31 31 32  33 30 33 34 30 32 33 5a  |Z..281123034023Z|
000000f0  30 35 31 0b 30 09 06 03  55 04 06 13 02 4a 50 31  |051.0...U....JP1|
00000100  12 30 10 06 03 55 04 0a  0c 09 73 68 69 67 75 72  |.0...U....shigur|
00000110  65 64 6f 31 12 30 10 06  03 55 04 03 0c 09 73 68  |edo1.0...U....sh|
00000120  69 67 75 72 65 64 6f 30  82 01 22 30 0d 06 09 2a  |iguredo0.."0...*|
00000130  86 48 86 f7 0d 01 01 01  05 00 03 82 01 0f 00 30  |.H.............0|
00000140  82 01 0a 02 82 01 01 00  a5 bf 54 62 e1 fa 51 14  |..........Tb..Q.|
00000150  4e 17 83 ee 96 c4 89 05  98 cc c1 da c0 79 9f c3  |N............y..|
00000160  50 2d e0 99 3b 1a 85 92  0f 37 d0 f3 e0 73 fc fc  |P-..;....7...s..|
00000170  9b e0 b6 25 2b 10 ea 07  8e ff 8b 21 7d 1e 9b 3b  |...%+......!}..;|
00000180  15 86 86 d6 de 89 04 45  e5 8d 3b 9d b8 56 f2 92  |.......E..;..V..|
00000190  c7 d0 61 71 b6 0b 6f 5b  4f d3 49 17 b6 e6 3e 84  |..aq..o[O.I...>.|
000001a0  e6 86 5f 91 8f ce 02 c6  93 88 1a 42 69 4c 2a ae  |.._........BiL*.|
000001b0  f9 26 61 b7 0d a0 b6 37  fc 1b 37 1e 3a d4 d0 d5  |.&a....7..7.:...|
000001c0  1c 1b 69 45 8b 46 48 a0  65 30 b6 9e 64 eb e9 5d  |..iE.FH.e0..d..]|
000001d0  7c 02 6f 42 b0 2a 57 24  61 6f 39 38 05 50 a0 a6  ||.oB.*W$ao98.P..|
000001e0  eb eb ba ae f2 a6 c4 44  d0 f1 27 33 a0 20 8d b8  |.......D..'3. ..|
000001f0  32 c1 19 3e d5 86 68 b2  95 85 52 69 90 d0 3d 9d  |2..>..h...Ri..=.|
00000200  54 08 68 b5 56 0f ce c2  41 b8 b4 3b 8d 5e 71 8c  |T.h.V...A..;.^q.|
00000210  c8 00 98 50 7e 1c 24 9a  65 9f 92 75 4f 82 e8 fa  |...P~.$.e..uO...|
00000220  9f fd dd ba 26 04 5f 23  5c 32 4f d7 8b b7 69 93  |....&._#\2O...i.|
00000230  7e b3 9e a0 4c 4b 39 75  3a c7 92 ca c0 fa 50 a2  |~...LK9u:.....P.|
00000240  90 16 db 68 f4 c3 54 e9  02 03 01 00 01 a3 50 30  |...h..T.......P0|
00000250  4e 30 1d 06 03 55 1d 0e  04 16 04 14 13 6d 98 2a  |N0...U.......m.*|
00000260  86 d5 c1 a9 fc 6c 6c dc  99 9e 51 0e 7a d5 42 7a  |.....ll...Q.z.Bz|
00000270  30 1f 06 03 55 1d 23 04  18 30 16 80 14 13 6d 98  |0...U.#..0....m.|
00000280  2a 86 d5 c1 a9 fc 6c 6c  dc 99 9e 51 0e 7a d5 42  |*.....ll...Q.z.B|
00000290  7a 30 0c 06 03 55 1d 13  04 05 30 03 01 01 ff 30  |z0...U....0....0|
000002a0  0d 06 09 2a 86 48 86 f7  0d 01 01 0b 05 00 03 82  |...*.H..........|
000002b0  01 01 00 3d 56 3b 0b 13  34 56 49 d6 5d 79 bb c2  |...=V;..4VI.]y..|
000002c0  de 42 6b 3e 43 e3 45 3d  83 7b 22 5c 83 a4 1d 64  |.Bk>C.E=.{"\...d|
000002d0  df 65 03 98 a6 36 40 e1  56 2f a7 a6 73 73 c4 cd  |.e...6@.V/..ss..|
000002e0  cb e3 9d d2 2b fd 20 35  00 42 8e 4f 48 f9 4b 8a  |....+. 5.B.OH.K.|
000002f0  f9 b1 e9 4a 4d 2e 7e 0a  e8 b5 4a af 9a d2 1d 3e  |...JM.~...J....>|
00000300  1b 42 72 43 71 e1 92 d4  7d 2b 96 9c f3 d4 f5 e6  |.BrCq...}+......|
00000310  08 ab dc 2a ab 9e 6b 83  b2 32 71 f8 c8 a4 e5 f6  |...*..k..2q.....|
00000320  d3 3e 2c 1a 63 dd 4b a8  e5 09 3b 08 2d 4e 7e 28  |.>,.c.K...;.-N~(|
00000330  ab d4 3a d9 b1 0a 0e 9e  9c f5 6f 06 bf 20 6b 77  |..:.......o.. kw|
00000340  93 93 d3 e1 85 64 eb 42  6c 73 36 0d 85 20 96 00  |.....d.Bls6.. ..|
00000350  ee c6 a6 a0 40 e7 8a 26  16 65 30 23 72 78 b8 6f  |....@..&.e0#rx.o|
00000360  a5 9e 4b c4 06 7f 90 7e  22 fa c4 7f a5 de f6 f7  |..K....~".......|
00000370  3f 86 4b bf 84 47 98 e4  93 da 00 1c e9 35 36 0a  |?.K..G.......56.|
00000380  cb 39 40 4c 4d 0a 2f 22  49 89 7e 79 6f 70 c4 9f  |.9@LM./"I.~yop..|
00000390  68 30 1e 0d 5e 1e 1c 49  51 2d 01 d6 c8 ca 5e eb  |h0..^..IQ-....^.|
000003a0  8c a9 89 ec 2c cf 51 74  0d 98 91 78 16 f7 a6 7b  |....,.Qt...x...{|
000003b0  5e 82 bf 00 00 0f 00 01  04 08 04 01 00 57 54 61  |^............WTa|
000003c0  e3 d2 84 18 f9 1c 99 ab  c6 ac eb ff 5f bb 5a 93  |............_.Z.|
000003d0  c3 79 d6 34 f3 95 51 4d  1a 1e 4d cf 5a 38 89 76  |.y.4..QM..M.Z8.v|
000003e0  f0 0e f4 de fe d6 e7 6d  53 b4 a3 42 0e 79 15 56  |.......mS..B.y.V|
000003f0  ff 02 5d c8 5b 07 9e 8c  10 4a 8d 4f 02 e0 37 43  |..].[....J.O..7C|
00000400  34 0b e2 34 99 4d 04 23  79 45 60 44 8c 58 5a 97  |4..4.M.#yE`D.XZ.|
00000410  ad 5a be f4 eb e0 68 29  d7 97 4c d1 01 3b 67 3f  |.Z....h)..L..;g?|
00000420  83 fc db 33 93 eb b0 a9  90 e5 38 b3 70 65 cb e0  |...3......8.pe..|
00000430  6e 03 75 d5 81 8c 25 36  5b ae 82 e4 cb a1 36 49  |n.u...%6[.....6I|
00000440  19 43 78 f7 31 4f 86 ca  5f 4f f9 6a 05 7e 95 d8  |.Cx.1O.._O.j.~..|
00000450  e1 45 4a e3 24 b6 2e 2d  c1 40 55 c1 a2 f7 ac 4b  |.EJ.$..-.@U....K|
00000460  be 41 7f 0b 7e 0e b1 91  ce d3 62 46 28 19 fb 67  |.A..~.....bF(..g|
00000470  a8 3a 79 53 41 3b 2e b8  f5 aa 97 f4 d3 89        |.:ySA;........|
0000047e
msg_cb: write_p=0 version=772 content_type=22 len=103
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters negotiated_version=0xff000012
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters supported_version[0]=0xff000012
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters supported_version[1]=0xff000013
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters stateless_reset_token=0x116c406dba36f995dd18495861257142
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_stream_data_bidi_local=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_stream_data_bidi_remote=4096
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_stream_data_uni=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_data=65536
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_bidi_streams=100
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters initial_max_uni_streams=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters idle_timeout=30
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters max_packet_size=65527
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters ack_delay_exponent=3
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 cry remote transport_parameters max_ack_delay=25
msg_cb: write_p=0 version=772 content_type=22 len=846
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 1212 left 0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con processing buffered handshake packet
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 178 bytes
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=178
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=1 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x776388cfa9850cff166210b083d10daa type=Handshake(0x02) len=137 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 1 Handshake(0x02) CRYPTO(0x06) offset=1150 len=115
Ordered CRYPTO data in Handshake crypto level
00000000  30 a7 1f d7 c2 83 88 9c  73 cc 31 e6 13 69 ca 1d  |0.......s.1..i..|
00000010  ca 65 00 05 ef 54 68 3d  2a fc 29 8a 20 de e6 76  |.e...Th=*.). ..v|
00000020  83 24 17 c3 f9 fd 10 14  a3 cf f9 33 48 7c 8b f8  |.$.........3H|..|
00000030  4f 22 84 60 39 6d 71 7f  f2 aa c1 ea 1a fc 74 14  |O".`9mq.......t.|
00000040  00 00 30 d0 76 f7 13 7e  84 d0 ba c6 34 77 6c 2a  |..0.v..~....4wl*|
00000050  34 ea bd 0a 6a 3e 6b b7  41 79 df 75 c1 b8 98 8c  |4...j>k.Ay.u....|
00000060  96 6e f4 3a 9a 29 21 e3  4d 2e 23 ae 6b 3c 06 11  |.n.:.)!.M.#.k<..|
00000070  8b d3 09                                          |...|
00000073
msg_cb: write_p=0 version=772 content_type=22 len=264
msg_cb: write_p=0 version=772 content_type=22 len=52
server_application_traffic
+ secret=d570fa85ad3732f1513c6b6577a9da3922ea8720d37e18f5cbf69a27c926a2315e616c5b1c1d74947de8ab82e01d1353
+ key=2c07099ef71af66c1f79fb3ac13d84ff57cce7d6818f87cb68a65784a5e33134
+ iv=38631caa8a57d64bfe89cdbc
+ hp=de257c2ddb81c677181edf4d0807010e35fe9d4582fcfb60492cafa1c40cd7f6
client_handshake_traffic
+ secret=ea50b91308b876d93f4a458e90d37484a9a1f9991cfa643e6a03cd2ed7a70cdf1116d251625091db59aa7e72c4f25c02
+ key=0a26ad05900c47d663951ded7a2b6d2bc528310e4d5323dccd80b8b8c7ad4552
+ iv=933b8712408f4dc76cbb1423
+ hp=9fe19e1638b6b4bbd0aa76c7b440c391ed99418668e99a373e854300b96f6877
msg_cb: write_p=1 version=772 content_type=22 len=52
client_application_traffic
+ secret=6955fc908fff43a97ac6542518cbaa096090fc2e2037c0a7a1ebed4a981c5166f847ad021e80f8b2c5e088e383b7e62c
+ key=f87b1fe6e3156f1ce0051e5c81ccc1b979272582345605277c9ad099eb59b9f0
+ iv=1317d9fc9aa84879309fa6b9
+ hp=cf81d8e0e0f26f3baf03182d6868938494028a0f4ee392d47fd53b943d7348df
Negotiated cipher suite is TLS_AES_256_GCM_SHA384
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 178 left 0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con processing buffered handshake packet
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt tx pkn=0 dcid=0x776388cfa9850cff166210b083d10daa scid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 type=Handshake(0x02) len=0 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Handshake(0x02) CRYPTO(0x06) offset=0 len=52
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Handshake(0x02) ACK(0x02) largest_ack=1 ack_delay=0(0) ack_block_count=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Handshake(0x02) ACK(0x02) block=[1..0] block_count=1
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv loss_detection_timer=1554553802925736960 last_hs_tx_pkt_ts=1554553802855506944 timeout=70
QUIC handshake has completed
Interactive session started.  Hit Ctrl-D to end the session.
The stream 0 has opened.
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con processing buffered protected packet
Sent packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 118 bytes
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt tx pkn=0 dcid=0x776388cfa9850cff166210b083d10daa scid=0x type=Short(0x70) len=0 k=0
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=8 cid=0xe659fe6940f7f84c1b14ee36641d26a851 stateless_reset_token=0x3543067e1319d92a323c227059bdb4da
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=7 cid=0x0720d798743f7262e941a591e7624392bd stateless_reset_token=0x42aaab779ba0817a5d0414865c179f22
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=6 cid=0x9828fec8ff1bd2833edc9b53d916acb17d stateless_reset_token=0xb44689e988d2ffd5fd1c38355a05de6f
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=5 cid=0x823ec4619cfd8de9380ca0be7101cb6a2c stateless_reset_token=0xe309a6a00df52bf22f9adb18add25135
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=4 cid=0x5ca59f9a47ea4613f9d0229d5190c9ad28 stateless_reset_token=0x05de187b0ec4ce1f1c2caaf7f8f43c53
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=3 cid=0xb28544386f9a1cc6a82e5a3d9e70c57f06 stateless_reset_token=0xfe1087ed9f66882c1da24d487d1b49dc
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=2 cid=0xbb75b529e958d9d7c24889caa77b58bc30 stateless_reset_token=0x8bda47415711a45f4973c76f5df44615
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm tx 0 Short(0x70) NEW_CONNECTION_ID(0x18) seq=1 cid=0xb2bc0901a2064820420696e07df6c7079b stateless_reset_token=0xf49e079d7cafb9cbe461549bf0e0383e
I00000035 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv loss_detection_timer=1554553802925736960 last_hs_tx_pkt_ts=1554553802855506944 timeout=70
Sent packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 322 bytes
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 62 bytes
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=62
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=2 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x776388cfa9850cff166210b083d10daa type=Handshake(0x02) len=22 k=0
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 2 Handshake(0x02) ACK(0x02) largest_ack=0 ack_delay=0(0) ack_block_count=0
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 2 Handshake(0x02) ACK(0x02) block=[0..0] block_count=0
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv latest_rtt=9 min_rtt=9 smoothed_rtt=31.890 rttvar=19.618 max_ack_delay=0
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv pkn=0 acked, slow start cwnd=13370
I00000044 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 62 left 0
Received packet: local=[0.0.0.0]:51356 remote=[127.0.0.1]:4433 40 bytes
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 con recv packet len=40
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt rx pkn=0 dcid=0x8dda8c2fa2adfaafa351f22570a7a6cba3 scid=0x type=Short(0x70) len=0 k=0
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 0 Short(0x70) ACK(0x02) largest_ack=0 ack_delay=0(0) ack_block_count=0
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 frm rx 0 Short(0x70) ACK(0x02) block=[0..0] block_count=0
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv latest_rtt=10 min_rtt=9 smoothed_rtt=29.155 rttvar=20.184 max_ack_delay=0
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv pkn=0 acked, slow start cwnd=13692
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 rcv loss detection timer canceled
I00000045 0x8dda8c2fa2adfaafa351f22570a7a6cba3 pkt read packet 40 left 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment