しょぼいネットワークのレイテンシーについて

さて、oculus riftみたいなデバイスが手元にあると、いろんな場所から部屋の様子を(深度)カメラで撮りたいなーと思ったりするわけです。順当に考えると有線LANを使うのがよい気がしますが、気になるのは遅延です。そこで今回は1日ぐらいpingしつづけた結果を書こうと思います。

条件

私はネットワークは趣味じゃないので、使ってるスイッチングハブとかはcoregaとかIO DATAの1000円ぐらいのやつです。今回関係しそうな部分の接続を書くと以下のような感じになります。

これでpingを次の二つに送ってRTTを調べます。期間は1日ちょっと、負荷は特にかけずに「普通に」使用します。

  1. malkuth → daath
  2. malkuth → keter

今回気になるのは、ハードウェアに起因する遅延と言うよりも、特に何も考えずに設定したネットワークでDHCPの何かとかOSにかかる負荷みたいなソフトウェアに起因する突発的な要因がどれだけ悪影響を及ぼすかです。

結果

さて、結果ですが、先ほど挙げた順番通りに以下のようになりました。ちなみにketerの方は間の半日ぐらいスリープにしてたのでデータが抜けています。

まず気がつくのは、hop数が小さい(-keter)ほうがなぜか2倍ぐらい遅いということです。で、どちらも正規分布ではないです。今回の目的とは関係ないですが、遅延のプロファイルをすごく精密に調べると内部状態がちょっとぐらい分かるのかもしれません。

最大のRTTはどちらも2ms以下に収まってるので、全体の遅延の中ではかなり小さい部分しか占め無さそうです。

あとがき

SW起因の遅延を調べると言いつつ、pingはもしかするとわりと優先度の高いプロセスが処理してるんじゃないかと思い当たったので、実際はだいぶ違うかもしれません。