QUICのパケット番号のエンコーディング/デコーディングについて

QUICクライアントの、接続の実装をしているときには動作に問題がなかったので気が付かなかったのですが、パケット番号のエンコーディング、デコーディングが必要になります。 パケット番号は0~262-1 までの値をとります。一方で、QUICのパケットのフォーマ…

技術書典14 で「詳解QUICクライアント接続編」という本を頒布します

2023年5月20日(土)から6月4日(日) に行われる 技術書典14に参加します。 「プロトコル研究所」というサークルで「詳解QUICクライアント接続編」というタイトルで本を頒布します。 5月21日(日)には池袋サンシャインシティ 展示ホールDで行われるオフラインマ…

QUICのechoクライアントを作ってみました&技術同人誌を書いています

twitter には書いていたのですが、s2n-quicのecho exampleと接続し、echoを送りあうQUICクライアントを作っていました。 github.com この時の経験を技術同人誌にしてまとめようとしています。 いつ出すかは確定していませんが、近いうちに出せるとよいなと思…

RFC9001 A.2. Client Initial のQUICパケットの暗号化とQUICヘッダーの保護をやってみる

今回は、RFC9001 A.2. Client Initial にある、QUICのパケットの暗号化と、QUICヘッダ―の保護のサンプルを実際に行ってみます。 このサンプルでは、Initialパケットの暗号化とヘッダーの保護のサンプルを提示しています。 本記事では、最初にQUICパケットの…

RFC9001のA.2. Client Initial にあるCRYPTOフレームのサンプルを読み解いてみる

RFC9001 A.2. Client Initial にある以下のCRYPTO Frameを読み解いてみます。 060040f1010000ed0303ebf8fa56f129 39b9584a3896472ec40bb863cfd3e868 04fe3a47f06a2b69484c000004130113 02010000c000000010000e00000b6578 616d706c652e636f6dff01000100000a 0…

QUICのInitialパケットの暗号化キーの生成などのメモ

RFC 9001 Using TLS to Secure QUIC のInitialパケットの暗号化キーの生成などに関するメモです。

Improving the reliability of the QUIC Handshake のメモ

Huitema氏が投稿していたImproving the reliability of the QUIC Handshakeという記事のメモです。 QUIC Interop Runner でのテストの中でも、しばしば失敗が検出されたものを紹介しています。 そのケースに対して、問題の起こり方、RFCに対してどのように反…

It’s Over 9000: Analyzing Early QUIC Deployments with the Standardization on the Horizon

「It’s Over 9000: Analyzing Early QUIC Deployments with the Standardization on the Horizon」はQUICのデプロイ状況を調査した論文です。 論文のリンク: https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/zirngibl2021over9000.pdf 紹介…

s2n-quicとpcap2qlogを使ってqlogを生成してみた

ツイッターで、pcap2qlogというpcapをqlogに変換するツールを教えていただきました。 今回は、s2n-quic と pcap2qlog を組み合わせて、qlogを生成してみたので紹介します。

s2n-quicのecho exampleを動かしてみた

s2n-quicはAWS が公開したRust のQUIC実装です。サンプルのエコーを動かしてみました。 aws.amazon.com echoのexampleは https://github.com/aws/s2n-quic/tree/main/examples/echo に用意されています。 リポジトリをクローンして、リリースビルドをします…

HTTPS RRのバイナリを読む

読むバイナリは、dig cloudflare.com type65 の結果返ってくるものの、RRの部分です。(参考) ; <<>> DiG 9.16.1-Ubuntu <<>> cloudflare.com type65 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47082 ;; …

2021年を振り返る

今年の振り返り。雑多なメモ。

The Packet Number Space Debate in Multipath QUICのメモ

「The Packet Number Space Debate in Multipath QUIC」というQUICマルチパスの拡張に関する論文です。 arxiv.org Multipath QUICの現在のドラフトMultipath Extension for QUIC draft-lmbdhk-quic-multipath-00 上では、単一のパケット番号空間を選択するか…

XLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video Services の紹介と備忘録

SIGCOMM21で発表された「XLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video Services」というMultipath QUIC を大規模な動画サービスに適用するための、設計、実装+検証についての論文です。 著者のページで論文が公開されています。 www.…

Dissecting Performance of Production QUIC の備忘録

twitterで見かけた、「Dissecting Performance of Production QUIC」という論文の備忘録 Nice paper on how QUIC being faster in theory doesn't always make QUIC faster in practice, due to implementation details:https://t.co/j4EbEkgPwZBTW, this ki…

A Pure HTTP/3 Alternative to MQTT-over-QUIC in Resource-Constrained IoT の備忘録

HTTP3 でpub-subとMQTT-over-QUICの比較をIoTの観点から行った論文の備忘録です。 IoTという文脈で、ネットワークエミュレータに遅延と帯域を設定して、性能(最初のデータが到達するまでの時間、通信終了までの時間やスループット)、ネットワークへのオー…

「QUIC at Snapchat」の備忘録

SnapchatのQUICの導入事例の記事を読んだので備忘録として書きました。 eng.snap.com QUICの導入による、遅延の改善、BBRの適用によるエラーレート(接続タイムアウト、切断、などのエラーの発生率)、マイグレーションによるリクエスト成功率の向上、につい…

WWDC21のAccelerate networking with HTTP/3 and QUICを見ました。

WWDC21で、「Accelerate networking with HTTP/3 and QUIC」という発表がありました。 developer.apple.com iOS15、MacOS Monterey からHTTP/3とQUICが利用可能になるらしく、HTTPの進化、HTTP/3の使い方、QUICの使い方の紹介が取り上げられていました。 気…

「Debugging Modern Web Protocols with qlog」の紹介

Robin Marx氏の論文「Debugging Modern Web Protocols with qlog」の紹介です。何かおかしなところがありましたら原文を確認いただけると。 概要 本論文では「Debugging Modern Web Protocols with qlog」では、QUICのデバッグ用に作られたqlog/qivsに対する…

最近の活動

会社のお仕事で外部に公開されているもののまとめ。 登壇 IoT@Loft #5 クラウドとロボティクス、オープンソース活用による次世代ロボットの可能性での登壇 LT4 - 株式会社アプトポッド AWS RoboMakerと連携するクラウド経由の遠隔制御の取り組み aws.amazon.…

【論文メモ】Resource Multiplexing and Prioritization in HTTP/2 over TCP and HTTP/3 over QUIC 2章 QUIC ResourceMultiplexing

QUICの多重化によって起きる課題2つについて議論している。 ①ストリームの多重化によって起こる優先度の決定。QUIC自体は個別のストリームに関連付けられたセマンティクスは認識できないので、相対的なストリーム間の優先度はQUIC側からはわからない。FIFOみ…

【論文メモ】Resource Multiplexing and Prioritization in HTTP/2 over TCP and HTTP/3 over QUIC 1章 Introduction

Robin Marx氏の論文「Resource Multiplexing and Prioritization in HTTP/2 over TCP and HTTP/3 over QUIC 」の1章を読んだメモ。 https://h3.edm.uhasselt.be/ からダウンロードできます。いずれちゃんと読んでqiitaにまとめたい。 Introductionでは、HTTP…

Towards Securing the Internet of Things with QUICを読みました

Towards Securing the Internet of Things with QUIC を読んでみました。 https://www.easychair.org/publications/preprint/68D2 preprintバージョンのため今後更新される可能性はありそうです。 Linuxが載らないような(RAM256KB、フラッシュメモリ1MB)デ…

Resource Multiplexing and Prioritization in HTTP/2 over TCP versus HTTP/3 over QUIC

rmax先生の論文。 https://h3.edm.uhasselt.be/files/ResourceMultiplexing_H2andH3_Marx2020.pdf 以前qiitaで紹介した 「Of the Utmost Importance: Resource Prioritization in HTTP/3 over QUIC」を読みました - Qiita に内容を追加したものらしい。 ちゃ…

Network Quality Estimation in Chrome

docs.google.com Twitterで見かけたChromeにあるNetwork Quality Estimator サービス(NQE)の紹介のスライドです。 ページのロードの最適化のために、ネットワークの状態を計測するサービスが含まれているそうです。 developerも、RTT estaimate, Download b…

Evaluating COPA congestion control for improved video performance

engineering.fb.com FacebookがLive Videoというアプリケーションで、新しい輻輳制御アルゴリズムのCOPAをCUBIC・BBRと比較したという記事です。 COPAを使うことで、goodputとアプリケーションのRTTの2つの観点で、CUBIC, BBRよりも良い結果を得られています…

MVFST-RL: An Asynchronous RL Framework for Congestion Control with Delayed Actions を読んでみました

facebook AI researchが発表した強化学習の手法を輻輳制御に適用する論文を読んでみました。 非同期に行動の決定を実行することで帯域を有効に使えるようにした論文です。ただし、複数のネットワークを一緒に学習させると高いスループットが出せないという課…

An Active-Passive Measurement Study of TCP Performance over LTE on High-speed Rails を読んでみました

arxiv.org https://arxiv.org/pdf/1812.04823.pdf 中国鉄路高速の上海北京間で、TCP over LTEの性能を計測した論文。300km/h以上の速度で運行しているときの、車内Wi-FiからLTEで通信する実ユーザーの計測データをもとに議論をしています。 主な内容は以下の…

IETF QUICの実装に使われている輻輳制御のアルゴリズムを調べてみました。(2019/12/6時点)

BBR、CUBIC、NewRenoの3つに絞って調べています。 各実装のレポジトリを、BBR、CUBIC、Reno、congestion、でキーワード検索して、出てきた情報から判断しています。詳細な実装を確認したわけではないので、実際には実装されていてもキーワード検索時に引っか…

quic-goを使った開発をするときのtips

go のQUICライブラリのquic-goを使った開発したときのtipsの備忘録です。 github.com Keylogファイルの書きだし方 デバッグログの出力方法 についてメモしておきます。 Keylogファイルの書きだし方 ↓で説明があるように、wiresharkでQUICの復号を行うために…