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

SIGCOMM21で発表されたMultipath QUIC を大規模な動画サービスに適用するための、設計、実装+検証についての論文です。 著者のページで論文が公開されています。 www.hongqiangliu.com 論文へのリンク また、以下のページでは、発表動画が視聴可能です。短…

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の復号を行うために…

「LiteSpeed Beats Nginx in HTTP/3 Benchmarks」の紹介

blog.litespeedtech.com OpenLiteSpeedとnginx の実装を比較している記事 163バイトのindex file、そこからリンクを張られている1MB、10MB、1GB のファイルのダウンロードを比較している。 index fileに対しては、同時に複数アクセスして毎秒どれくらいのリ…

「BBR Control in QUIC and HTTP/3」を読みました

blog.litespeedtech.com LiteSpeedのLiteSpeed Web Server 5.4.2、Web ADC 2.6.0、OpenLiteSpeed 1.6.1でQUICの接続にBBRを使うようになったらしいです。 BBRは、Googleが開発した、Bottleneck Bandwidth and RTTという新しい輻輳制御のアルゴリズムです。BB…

Perceiving QUIC: Do Users Notice or Even Care?

arxiv.org QUICとTCPをQoEの観点で比較した論文。2つを使ってウェブページをロードしたときに速いほうを知覚できるかと、単体で見た時速いかどうかを知覚できるかを調べたらしい。 2つ並べているときは速いほうを知覚できる。 単体の時で、特にネットワーク…

Mahimahiのmm-onoff でネットワークの接続・切断を繰り返す状態のエミュレーション

紹介 Mahimahiとはネットワークエミュレーターです。遅延、帯域設定、ロス設定などができます。特徴として、「より正確に、マルチサーバーの環境を再現できる」、「ネットワークトラフィックを独立した環境に閉じ込めることができるので、複数の異なるインス…

JAPAN Mobile Network Experience Report October 2019 を読みました

モバイルネットワークの評価についてのレポート情報があったので読んでみました。 www.opensignal.com 日本国内で、Docomo、SoftBank、auの3キャリアに対して、合計358,228デバイス、856,239,500計測、これを2019/6/1 ~ 2019/8/29 の間に行ったデータがまと…

Goでpanic(string) すると recover()で取り出せるのがstringになる

panic()が返すのは空interfaceなので、panic(string)したらrecover()で取り出せるのはstringになる。 ググってみても、panic(string)してる例は結構たくさんあった。 package main import ( "fmt" "reflect" ) func main() { f() } func f() { defer func() …

GoのChannelをコピーしてコピー元のChannelをクローズするとコピー先のChannelもcloseされる

Goのプログラムを書いてたらはまってたのでメモしておく。 package main func main() { ch1 := make(chan struct{}) ch2 := ch1 close(ch1) close(ch2) } Result panic: close of closed channel goroutine 1 [running]: main.main() /tmp/sandbox237471277/…

proxygen の QUICのサンプルを試してみた。

facebookのHTTP Library proxygen がQUICとHTTP/3に対応しているらしいので動かしてみました。 github.com Note that currently this project has been tested on Ubuntu 18.04 and Mac OSX although it likely works on many other platforms. ubuntu16.04 …

Bolina: a new end-to-end protocol specially designed for wireless communication

下の記事で、BoliaというUDPベースのプロトコルとQUIC、TCPの比較が行われていました。 blog.codavel.com Boliaでは、QUIC(やTCPなど)で用いているのACKの仕組みをnetwork codingで代替しているようです。 無線などを使ったときに発生するランダムなロスが…

WebAssembly: Web Workers を読んだ

https://dzone.com/articles/webassembly-web-workers WebAssemblyのコードを、fetch→ArrayBuffer→コンパイル→postMessage という風に使う。 ブラウザには、UI用のスレッド ('window' オブジェクト) とは別に、Web Workderというのを使ってスレッドを立てる…

New Kid on the Web: A Study on the Prevalence of WebAssembly in the Wild を読んだ

https://www.sec.cs.tu-bs.de/pubs/2019a-dimva.pdf WebAssemblyの普及状況を調べた論文 alexa top 1milioon の947,704 sitesに対して、topページも使われていない可能性を加味してランダムで3つリンクを踏んだ分のあわせて、3,465,320 pagesを訪問した その…

Optimizing HTTP/2 prioritization with BBR and tcp_notsent_lowat

https://blog.cloudflare.com/http-2-prioritization-with-nginx/ BBRとtcp_notsetn_Iowatを使って、HTTP/2の優先度制御を最適化する話。 サーバ側のバッファサイズの課題 優先度が低いリソースのリクエストの後に、優先度が高いリソースのリクエストが来る…

ウェブページのロードはなぜ早くないといけないのか

qiitaように書いてたけど論文の内容には含まれないので切り出しました。 昔から、ウェブページのロード時間が長くなると利益が減るため、ウェブページのロードは速いほうが良いと考えられています。ソース元はリンク切れしていますが、10年ほど前にAmazonは1…