「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…

「The (not so) hidden cost of sharing code between iOS and Android」を読んだ

DropboxのThe (not so) hidden cost of sharing code between iOS and Android という記事を読んだ。 https://blogs.dropbox.com/tech/2019/08/the-not-so-hidden-cost-of-sharing-code-between-ios-and-android/ 異なるプラットフォーム間で共通のc++のコー…

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の優先度制御を最適化する話。 # サーバ側のバッファサイズの課題 優先度が低いリソースのリクエストの後に、優先度が高いリソースのリクエストが来…

avastのメールの署名を消す

メニューをクリック→設定→プロテクション→メインシールド→メールシールド→「送信するメールの末尾に署名を追加」のチェックを外す