速度 (レイテンシ)

openssl speed とかいうのがあるみたいだけどよくわからんので自分で測定して感覚を掴んでみたいと思った。

でとりあえず localhost と 1000 回くらい hogehoge とか echo サーバーに送って返事を受信するだけの簡単なベンチをしてみて、結果は以下みたいな感じだったんだけど、

 0.771862 TCPSocket
 6.825988 ["DES-CBC-MD5", "SSLv2", 56, 56]
 6.852499 ["EXP-RC4-MD5", "SSLv2", 40, 128]
 6.896539 ["EXP-RC2-CBC-MD5", "SSLv2", 40, 128]
 7.110548 ["RC4-MD5", "SSLv2", 128, 128]
 7.592685 ["RC2-CBC-MD5", "SSLv2", 128, 128]
 8.015529 ["RC4-MD5", "TLSv1/SSLv3", 128, 128]
 8.417717 ["DES-CBC-SHA", "TLSv1/SSLv3", 56, 56]
 8.424664 ["AES256-SHA", "TLSv1/SSLv3", 256, 256]
 8.443360 ["DES-CBC3-MD5", "SSLv2", 168, 168]
 8.534704 ["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
 8.663834 ["AES128-SHA", "TLSv1/SSLv3", 128, 128]
 8.993231 ["RC4-SHA", "TLSv1/SSLv3", 128, 128]
 16.143871 ["EXP-EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 40, 56]
 51.640470 ["EDH-RSA-DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
 51.647685 ["EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 56, 56]
 52.671211 ["DHE-RSA-AES128-SHA", "TLSv1/SSLv3", 128, 128]
 57.752796 ["DHE-RSA-AES256-SHA", "TLSv1/SSLv3", 256, 256]

なんか色々よくわからんことがあって、まずいくつか例外が飛んじゃって選べないのがあった(たぶんRSAの証明書渡してるからDSAな認証ができないとかだと思う)。あとなんか SSLv3 と TLSv1 はまぁ似たような結果だったのは良かったんだけど、 SSLv3 のヤツを SSLv23 でやると SSLv23 でやった方が速くなったりして謎だなーと。まぁよくわからんけど上の結果はとりあえず、速いのと遅いのがあるなーというくらいの認識でいいんじゃないかと思った。もちろん遅いと言ってもカスみたいなサイズのデータを送るだけの例で遅いだけなので、もっとたくさん送ったら速いのかもしれないし、暗号の強度が強かったりするのかもしれないし、まぁよく知らんです。でもまぁさっきの強さ順のヤツと見比べてみると、こういう細かいの送る用途だと、速い方のグループにいる AES256-SHA あたりがいいんじゃないかとか思ったけど知らんです。

で、 localhost とのやりとりだと現実的じゃないので実際どんくらいの overhead なんかなーと、 shinh.org と実家で 10 往復くらいさせてみたベンチ。

 0.911451 TCPSocket
 1.433355 ["DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
 1.435176 ["AES256-SHA", "TLSv1/SSLv3", 256, 256]
 1.514165 ["RC4-SHA", "TLSv1/SSLv3", 128, 128]
 1.533170 ["RC4-MD5", "TLSv1/SSLv3", 128, 128]
 1.574204 ["AES128-SHA", "TLSv1/SSLv3", 128, 128]
 1.596982 ["EXP-RC4-MD5", "SSLv2", 40, 128]
 1.600494 ["DES-CBC-MD5", "SSLv2", 56, 56]
 1.617288 ["DES-CBC-SHA", "TLSv1/SSLv3", 56, 56]
 1.626607 ["RC2-CBC-MD5", "SSLv2", 128, 128]
 1.634951 ["DES-CBC3-MD5", "SSLv2", 168, 168]
 1.708413 ["EXP-RC2-CBC-MD5", "SSLv2", 40, 128]
 1.720872 ["RC4-MD5", "SSLv2", 128, 128]
 1.863379 ["EDH-RSA-DES-CBC3-SHA", "TLSv1/SSLv3", 168, 168]
 1.985764 ["EXP-EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 40, 56]
 2.014566 ["EDH-RSA-DES-CBC-SHA", "TLSv1/SSLv3", 56, 56]
 2.108500 ["DHE-RSA-AES128-SHA", "TLSv1/SSLv3", 128, 128]
 2.123336 ["DHE-RSA-AES256-SHA", "TLSv1/SSLv3", 256, 256]

なんか要するに大差ないということがよくわかるのであった。まぁ相変わらず AES256-SHA でいいんちゃうのって感じですが。こっちは試行回数少ないからさっきのベンチよりさらにあてにならない。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h