QUICクライアントの、接続の実装をしているときには動作に問題がなかったので気が付かなかったのですが、パケット番号のエンコーディング、デコーディングが必要になります。 パケット番号は0~262-1 までの値をとります。一方で、QUICのパケットのフォーマ…
2023年5月20日(土)から6月4日(日) に行われる 技術書典14に参加します。 「プロトコル研究所」というサークルで「詳解QUICクライアント接続編」というタイトルで本を頒布します。 5月21日(日)には池袋サンシャインシティ 展示ホールDで行われるオフラインマ…
twitter には書いていたのですが、s2n-quicのecho exampleと接続し、echoを送りあうQUICクライアントを作っていました。 github.com この時の経験を技術同人誌にしてまとめようとしています。 いつ出すかは確定していませんが、近いうちに出せるとよいなと思…
今回は、RFC9001 A.2. Client Initial にある、QUICのパケットの暗号化と、QUICヘッダ―の保護のサンプルを実際に行ってみます。 このサンプルでは、Initialパケットの暗号化とヘッダーの保護のサンプルを提示しています。 本記事では、最初にQUICパケットの…
RFC9001 A.2. Client Initial にある以下のCRYPTO Frameを読み解いてみます。 060040f1010000ed0303ebf8fa56f129 39b9584a3896472ec40bb863cfd3e868 04fe3a47f06a2b69484c000004130113 02010000c000000010000e00000b6578 616d706c652e636f6dff01000100000a 0…
RFC 9001 Using TLS to Secure QUIC のInitialパケットの暗号化キーの生成などに関するメモです。
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」はQUICのデプロイ状況を調査した論文です。 論文のリンク: https://www.net.in.tum.de/fileadmin/bibtex/publications/papers/zirngibl2021over9000.pdf 紹介…
ツイッターで、pcap2qlogというpcapをqlogに変換するツールを教えていただきました。 今回は、s2n-quic と pcap2qlog を組み合わせて、qlogを生成してみたので紹介します。
s2n-quicはAWS が公開したRust のQUIC実装です。サンプルのエコーを動かしてみました。 aws.amazon.com echoのexampleは https://github.com/aws/s2n-quic/tree/main/examples/echo に用意されています。 リポジトリをクローンして、リリースビルドをします…
読むバイナリは、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 ;; …
今年の振り返り。雑多なメモ。
「The Packet Number Space Debate in Multipath QUIC」というQUICマルチパスの拡張に関する論文です。 arxiv.org Multipath QUICの現在のドラフトMultipath Extension for QUIC draft-lmbdhk-quic-multipath-00 上では、単一のパケット番号空間を選択するか…
SIGCOMM21で発表された「XLINK: QoE-Driven Multi-Path QUIC Transport in Large-scale Video Services」というMultipath QUIC を大規模な動画サービスに適用するための、設計、実装+検証についての論文です。 著者のページで論文が公開されています。 www.…
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…
HTTP3 でpub-subとMQTT-over-QUICの比較をIoTの観点から行った論文の備忘録です。 IoTという文脈で、ネットワークエミュレータに遅延と帯域を設定して、性能(最初のデータが到達するまでの時間、通信終了までの時間やスループット)、ネットワークへのオー…
SnapchatのQUICの導入事例の記事を読んだので備忘録として書きました。 eng.snap.com QUICの導入による、遅延の改善、BBRの適用によるエラーレート(接続タイムアウト、切断、などのエラーの発生率)、マイグレーションによるリクエスト成功率の向上、につい…
WWDC21で、「Accelerate networking with HTTP/3 and QUIC」という発表がありました。 developer.apple.com iOS15、MacOS Monterey からHTTP/3とQUICが利用可能になるらしく、HTTPの進化、HTTP/3の使い方、QUICの使い方の紹介が取り上げられていました。 気…
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.…
QUICの多重化によって起きる課題2つについて議論している。 ①ストリームの多重化によって起こる優先度の決定。QUIC自体は個別のストリームに関連付けられたセマンティクスは認識できないので、相対的なストリーム間の優先度はQUIC側からはわからない。FIFOみ…
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 を読んでみました。 https://www.easychair.org/publications/preprint/68D2 preprintバージョンのため今後更新される可能性はありそうです。 Linuxが載らないような(RAM256KB、フラッシュメモリ1MB)デ…
rmax先生の論文。 https://h3.edm.uhasselt.be/files/ResourceMultiplexing_H2andH3_Marx2020.pdf 以前qiitaで紹介した 「Of the Utmost Importance: Resource Prioritization in HTTP/3 over QUIC」を読みました - Qiita に内容を追加したものらしい。 ちゃ…
docs.google.com Twitterで見かけたChromeにあるNetwork Quality Estimator サービス(NQE)の紹介のスライドです。 ページのロードの最適化のために、ネットワークの状態を計測するサービスが含まれているそうです。 developerも、RTT estaimate, Download b…
engineering.fb.com FacebookがLive Videoというアプリケーションで、新しい輻輳制御アルゴリズムのCOPAをCUBIC・BBRと比較したという記事です。 COPAを使うことで、goodputとアプリケーションのRTTの2つの観点で、CUBIC, BBRよりも良い結果を得られています…
facebook AI researchが発表した強化学習の手法を輻輳制御に適用する論文を読んでみました。 非同期に行動の決定を実行することで帯域を有効に使えるようにした論文です。ただし、複数のネットワークを一緒に学習させると高いスループットが出せないという課…
arxiv.org https://arxiv.org/pdf/1812.04823.pdf 中国鉄路高速の上海北京間で、TCP over LTEの性能を計測した論文。300km/h以上の速度で運行しているときの、車内Wi-FiからLTEで通信する実ユーザーの計測データをもとに議論をしています。 主な内容は以下の…
BBR、CUBIC、NewRenoの3つに絞って調べています。 各実装のレポジトリを、BBR、CUBIC、Reno、congestion、でキーワード検索して、出てきた情報から判断しています。詳細な実装を確認したわけではないので、実際には実装されていてもキーワード検索時に引っか…
go のQUICライブラリのquic-goを使った開発したときのtipsの備忘録です。 github.com Keylogファイルの書きだし方 デバッグログの出力方法 についてメモしておきます。 Keylogファイルの書きだし方 ↓で説明があるように、wiresharkでQUICの復号を行うために…