Skip to content

Instantly share code, notes, and snippets.

@amutake
Last active October 2, 2018 00:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amutake/6ed3d032ed1cb6c918113f8fe858c041 to your computer and use it in GitHub Desktop.
Save amutake/6ed3d032ed1cb6c918113f8fe858c041 to your computer and use it in GitHub Desktop.
quic-14 ngtcp2 vector
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
Header: Long Header (0b1000_0000)
Type: Initial (0x7f)
Version: IETF QUIC draft-14 (0xff00000e)
DCIL: 18 (0xf + 3)
SCIL: 17 (0xe + 3)
Dst Connection ID: 0xf2aca972962edd0f195aa1bb9a16734be91b
Src Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Token Length: 0 (0x00, variable-length integer)
Token: (empty)
Length: 1208 (0x44b8, variable-length integer)
Packet Number: 0 (0x00, protected)
Payload:
Frame Type: CRYPTO (0x18)
Offset: 0 (0x00, variable-length integer)
Length: 299 (0x412b, variable-length integer)
Crypto Data: ClientHello (0x010001270303...)
Frame Type: PADDING (0x00)
...
サーバ -> クライアント (UDPパケット2つ、最初のUDPパケットに2つのQUICパケット、2番目のUDPパケットに1つのQUICパケット)
Header: Long Header (0b1000_0000)
Type: Initial (0x7f)
Version: IETF QUIC draft-14 (0xff00000e)
DCIL: 17 (0xe + 3)
SCIL: 18 (0xf + 3)
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Src Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Token Length: 0 (0x00, variable-length integer)
Token: (empty)
Length: 195 (0x4095, variable-length integer)
Packet Number: 0 (0x00)
Payload:
Frame Type: ACK (0x0d)
Largest Acknowledgement: 0 (0x00, variable-length integer)
ACK Delay: 0 (0x00, variable-length integer)
ACK Block Count: 0 (0x00, variable-length integer)
ACK Blocks - First ACK Block: 0 (0x00, variable-length integer)
Frame Type: CRYPTO (0x18)
Offset: 0 (0x00, variable-length integer)
Length: 123 (0x407b, variable-length integer)
Crypto Data: ServerHello (0x020000770303...)
Header: Long Header (0b1000_0000)
Type: Handshake (0x7d)
Version: IETF QUIC draft-14 (0xff00000e)
DCIL: 17
SCIL: 18
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Src Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Length: 1003
Packet Number: 0x00
Payload:
Frame Type: CRYPTO
Offset: 0
Crypto Data: EncryptedExtensions+Certificate+CertificateVerify(cont) (0x0800005d005b...0b0003130000...0f0001040804...) (cont)
Header: Long Header
Type: Handshake
Version: IETF QUIC draft-14
DCIL: 17
SCIL: 18
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Src Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Length: 244
Packet Number: 0x01
Payload:
Frame Type: CRYPTO
Offset: 982
Crypto Data: (cont)CertificateVerify+Finished (0x1843d640...40000302d54...)
クライアント -> サーバ (UDPパケット2つにQUICパケット1つずつ)
Header: Long Header
Type: Initial
Version: : 0xff00000e
DCIL: 18
SCIL: 17
Dst Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Src Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Token Length: 0
Token: 0x
Length: 22
Packet Number: 0x01
Payload:
Frame Type: ACK
Largest Acknowledgement: 0
ACK Delay: 0
ACK Blocks:
First ACK Block: 0
Header: Long Header
Type: Handshake
Version: : 0xff00000e
DCIL: 18
SCIL: 17
Dst Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Src Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Length: 77
Packet Number: 0x00
Payload:
Payload:
Frame Type: ACK
Largest Acknowledgement: 1
ACK Delay: 0
ACK Blocks:
First ACK Block: 1
Frame Type: CRYPTO
Offset: 0
Crypto Data: Finished (0x14000030c30a...)
サーバ -> クライアント (UDPパケット2つにQUICパケット1つずつ)
Header: Long Header
Type: Handshake
Version: : 0xff00000e
DCIL: 17
SCIL: 18
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Src Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Length: 22
Packet Number: 0x02
Payload:
Frame Type: ACK
Largest Acknowledgement: 0
ACK Delay: 0
ACK Blocks:
First ACK Block: 0
Header: Short Header
Key Phase Bit: 0
Third Bit: 1
Fourth Bit: 1
Google QUIC Demultiplexing Bit: 0
Reserved: 0
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Packet Number: 0x00
Payload:
Frame Type: CRYPTO
Offset: 0
Crypto Data: Finished (0x0400003d0000...)
Frame Type: STREAM (0x13, LEN+FIN)
Stream Data: Hello World! (0x48656c6c6f20576f726c6421)
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
Header: Short Header
Key Phase Bit: 0
Third Bit: 1
Fourth Bit: 1
Google QUIC Demultiplexing Bit: 0
Reserved: 0
Dst Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Packet Number: 0x00
Payload:
Frame Type: ACK
Largest Acknowledgement: 0
ACK Delay: 0
ACK Blocks:
First ACK Block: 0
Frame Type: MAX_STREAM_ID
Maximum Stream ID: 7
サーバ -> クライアント (UDPパケット1つにQUICパケット1つ)
Header: Short Header
Key Phase Bit: 0
Third Bit: 1
Fourth Bit: 1
Google QUIC Demultiplexing Bit: 0
Reserved: 0
Dst Connection ID: 0xd545b3713ec650dc4844f59652f737fa3a
Packet Number: 0x01
Payload:
Frame Type: ACK
Largest Acknowledgement: 0
ACK Delay: 0
ACK Blocks:
First ACK Block: 0
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
Header: Short Header
Key Phase Bit: 0
Third Bit: 1
Fourth Bit: 1
Google QUIC Demultiplexing Bit: 0
Reserved: 0
Dst Connection ID: 0x06d365c2a77f84da934dbf7436bfd74a72d7
Packet Number: 0x01
Payload:
Frame Type: CONNECTION_CLOSE
Error Code: 0
Frame Type: 0
Reason Phrase: (empty)
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
ffff00000efef2aca972962edd0f195aa1bb9a16734be91bd545b3713ec650dc4844f59652f737fa3a0044b87dfea45b7951caaea8aed9134aa73c600b6ae087ab834698b8722666cf1bb1fc785d9fd1ad74f95f0ee146c339af282a03f95181fe520785637467a3f44c7e756c74df109204bd51a4ec596edded9aedf2d0bd3a1f83a1244faf83dbc2be1aa9f278aba4fcfb28bca83e5f34b0ad117eb062db68d0df7f80b3ffbd49970452f110a0629029d12836bf93b749d4ef3f9c178d5de4748ea5e1eb91342a41419d781d27b0a4238966d4234b503df94c3da0942c0f7add1d6c69b52829a31bc693eeeae14dd33323b573d5de3756ea2b9a3c358164db6932e0f50ec61be4f00fc01de7776260afa0ed36699ada8601a229058359b6010dcb74c2bee3ebfa41539b3285aa135c341e8755c2ab445a4d0fe5721f59068835222a93bcf3e340ca103fbc514f5ebe55381e0f4f8c45b2400d1335246960236170b5e61850e3b60cd150f205d3f264a034dd0a53eae40534ff48aee5f18fa5a3c9b49bb50913894fa15335efc6b7f50d63361c04565b2647650f3d0adc67e84a45378bb143156a2ebaa0e0f7f16fd1ccc9cc596685afce902d6c6bf6ae753863332e949c70be2e255a848bace872c2163a2890e5145d9dad6e2843b0bfad09551b5dbb259863249a1ec1aff33bb36ac9373b0506d246b69f0bc1f64340008d15263e36838b06042b36c319897265faa3b70460e5e65347f55aae04ec07a7b0e83c20bb0a466a6b46b6cbc4716f9abe3b463c5a14b7e849fa790917b9f41fcd1443b0a2dcd48e9b8f809f8d49445962b483ad198f55043d0488f16f87ce528a5305dbe97eafd525907bcd69ab3fca3b0f10b3197b257ac0c2fa423f2232ee4525fab817d42f6546b569aa4568b9ab3fd24b453963c6969b57fb265b00034b4a096530570f0d7a56e439bfa1c13db07fb3c686d753144781185418b71b9394ef9345aa42ffc6ba8633342aee2da200b61699764dae176738ebadc71ecd1ecbc6b9d8c19b272414c9a413fa18680f96713a175a2334422fe6a49865a32855caadca58272ba8eea41cc96c166f71897367079ab44994fb3ef975a1b02eb89b3c5f97dbb01820be655f8dbf062ba9e09b3c3c59e1a28e138607daf3a8ff45d60d6f878cabc8d9beead0608a019a9b4e7518e1ec873c72ffd8015c5a719299857968c06819d03168cdca67ecfe8861e68f7f846abfe5deecdda45b8d7da36def9fdf67e539d841008d8281213b605ca01fd7026f26a99497cf7dc708f4d4054c1f6de935707acb6764997f218dc372283bf56d7296f16dd8d976a648dbcc6e9457d3ad13ea04aef46ee5682352c083aabc7882406e8064949473616d13e42cea842d193d20bb2ca2af87a19586dc68a558f0d629873cec3d61970434e72e6246f197840afe324e8ce299ee8d19c7178195d5f762efdee05f4efbfe90bc48e5d8d01d0e1a62a5ec997cf056301126c65c4d1aee9f5e3f5aa529b3265f2483b8b474179f4b77db6b4b732d0c309ddc6b9d6dccac9eb3c23ed0619a5b2c04841ac033705fc3ced733e87ad7ce1eb7692a67732e893457385802f5f62f6eca60033778e35d02286b6d4b5ab579fd15a4043481981010efc3b3504344e793330aaf5f7801fb66da2346d4d2ecea2f1e8f7d93cad68d0eec4e111a2e4c4a65199826904a1da4d17dd78a4fd28d97ad29c0bfd058fb3e1207c63cdd02f95ae4838e1b335fe9f0b6da31
サーバ -> クライアント (UDPパケット2つ、最初のUDPパケットに2つのQUICパケット、2番目のUDPパケットに1つのQUICパケット)
ffff00000eefd545b3713ec650dc4844f59652f737fa3a06d365c2a77f84da934dbf7436bfd74a72d700409577e24ec34249d9b74de91a153bb6aaf898240938067b28b0c96e84afa475ffe1cb457a9700a4dc2dc36beefdbf6202b3251fadb3216e9bbe3157f55f045c59a358b8e645b3f618d85695dd3a25b7560e36b7464bb6ff1624103c94e509fae29a8c88caf11f9f905af072b759033c8bcf2411fea5dd637ae28b3725b3a9de8de5bbc1971aee03f98c629017d423603593274cd3223ffdff00000eefd545b3713ec650dc4844f59652f737fa3a06d365c2a77f84da934dbf7436bfd74a72d743ebf2576c0aed4150a630626d537a43b5e3a33dcdf368a2ddd9c27386f571efa87c5e1f20aff1fb6f18681e52ea6ef7467974b2bb74153d41099bbe3f188cf36c79422d752f2300153be9ee1060b049f5f7b189e6074479d9bdf2d0ba9fb29c3f4a07e52d2089e098ec607b8ed433fe742b73dec8baeed048b251d02bd00d38a609897d0d02733b5fd6ebcfac3e7398a84bf824c96caa9ba370407969a2bbd457d470ff9eecd9391af412482fbaf100d3645129fbbf507c5068651e18d8e5f7a5198604af9e6eea3adfca8d2930b30e4cb59e7fa0233018edba7d582627bcaa62f2b3b1e745d873fbc46c79157f6b9a569ffe476dffd2f53244594e6bcc148705cf4d9a4f03b4fb04a9f41bcce4f8992a229bd32f710184cb995942775f56942243678b81c437dfe2a86d748a853261ad00698028f4607d50329d1383df1508c1f9f34cad92756a540e5c38df7c02555cb396ba3ea7428095c0dd68b34fce4510a1682fa2dcdc3b9214841e3addca72b141a54f95e6042093cb7d5ea183c37ce982c0ed55875f3cd6c352a3c79860d502c038e84544266b652516b293baab16cf5c71af4c096b51ba40266b5f93b1cf4cb50a922f4bf26c29cb774d06efe3257c3ba1b85356beeef079502490ded83a6283796fe35aa066896c6e61b2efe6c4113c6f14a64555a2b355dd8175eb14431ea8b4b275010f2425619b76b54b38301f05c53774be0b441746d9653c797b940979a4cdbb9b6f124bd95688e79bd6df240cc4c0c537cb085dfeabc83562acd1ea3efcfaff85a686e11868bf7570d682e878b0d63c520f1f6f1e82ada7247864a11a389d25296d45b1df35375af2026bac981fb5775a08c132c0e21275a68af5a7aaa4157607315afd21ebe693731a84599044832435df53589533f2e433c326ba2c55a2895f61fc821e53b45d347dc7566addbdbba69d63edb68ffbb99a821fe2ce7f26de09caf8f6b0cb4833f5123b329394b7f35a658a03b59af5427ee9cc82597ba2a1fc08ee5d226ff036c095e364d7e7129e1ad4ab7e4769d76e506b0cbb2870b010a245a50758304aa83400d32b46109d3361416fe575ca52f520db22280dce45dec8a81e512520c89e51fb65fbff42a149ceeb5634d04663544c2185820c702782d6352fe5693d22258886e0d819b5f86bd6355831de92a8c0904e66bcd29ff4b335d3b4f0c170ae3f46b9a8152fc04579d37e21f58d3bdb639d29c071435addc602c6f3d6a30b41cbab538cf97ab6d334181f106c663f991f533f62bf1a5922802ef0902616465e85d07e8099d1b950201c801e73aefc0f7e3bbe075cdbab69d6eace3f547d92554c11ab8020a32f36b85f42179157de80b8b1a61a862aa92aea541d16037a050392ee32c450c00e813a1baf1e1ff663206a
fdff00000eefd545b3713ec650dc4844f59652f737fa3a06d365c2a77f84da934dbf7436bfd74a72d740f43dccef8e2fa58b2ffc6bf5293fbba3485f3629bced66d2f8a20739cf01681c4ce472840faf869cdac5f7ad12bfc0b6569b5c40c23148e87af0fc241a8695e84a05104beb3d6b783d2d603e628c92552d79006bfdc4bdc3f8f20a7e3be5e290a846ccaf43c6f1191e714e605d787a2d161d9352a7155acb4e891622b8c5cf7a41a32333aa56f1579f786755dd9ed7c6f86a92bec70ed3b562dad3f602cb746e29012fee66f9b4c906aafe77c3c90dde3f1cfec236d630fa9defd0924fccdb6f98300d4bd9b66513d20c5654fc5b26e89d95d2cca7b9f7ee996587e9bbfe80b1fd2e49a59b282a5fdf94a00cc3222fe33857b79f85
クライアント -> サーバ (UDPパケット2つにQUICパケット1つずつ)
ffff00000efe06d365c2a77f84da934dbf7436bfd74a72d7d545b3713ec650dc4844f59652f737fa3a004016c2cfd48685dde2ca136fbc56ceb720561b89280439c6
fdff00000efe06d365c2a77f84da934dbf7436bfd74a72d7d545b3713ec650dc4844f59652f737fa3a404d75036b0eb32dc8cd98c88c6a6a1b3b67df7aea50753993c09492423a17d2779465face7d38fdcdc338bbc3f985434c6f46b43214c7e0fd091b36c1d6d954522298541bb3772b67cdebe81b1311
サーバ -> クライアント (UDPパケット2つにQUICパケット1つずつ)
fdff00000eefd545b3713ec650dc4844f59652f737fa3a06d365c2a77f84da934dbf7436bfd74a72d7401663b7f6194011fa9a85fc480e5bfb06004cf6752ba7ec
30d545b3713ec650dc4844f59652f737fa3aeea363ec2943dc6eb3f1694749b2effef6a7f4126155a0a649595ac8ece3a1aeb6fc1c573c79057100f2b8be6c00317083d95cf530796b66b499d76ae41c5c5ddb8ec5be6cace67c2c89745ad1ac50280890eaa8bcd6695b0ddf4f65341276a345f9a59296b815cf247ac5169a106a1422e88c56892e47c624a4ca33139959719079b96af6b7070a37dc1fdafc5dfeefab64cbd98996f1a9ec23ba573d0e0723243a2ace8a1d
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
3006d365c2a77f84da934dbf7436bfd74a72d7085e6050992f792aa95bc10f890cc8dc194fa525931ffac4
サーバ -> クライアント (UDPパケット1つにQUICパケット1つ)
30d545b3713ec650dc4844f59652f737fa3acc1e37b7d2dac1a9fd61093c558eec69b018dde3d9db
クライアント -> サーバ (UDPパケット1つにQUICパケット1つ)
3006d365c2a77f84da934dbf7436bfd74a72d7a40a50a7c84aaa5c6f97a9bf76063605c640a2ec6213
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment