とにかくflagが厄介
Connection phaseで5byte目で判断できない厄介なケースのまとめ
Protocol::HandshakeResponse41
4 capability flags, CLIENT_PROTOCOL_41 always set 4 max-packet size 1 character set string[23] reserved (all [0])
頭の部分がこれで来る。 string[23]で判断できなくはない。
Protocol::SSLRequest:
4 capability flags, CLIENT_SSL always set 4 max-packet size 1 character set string[23] reserved (all [0])
HandshakeResponse41と同じ。 パケットのフィールドはこれで全部
Protocol::AuthSwitchResponse
パケットのフィールド全部がstring. headerとかの目印がない。。。 文字として認識できる、5byte目が0x20以上かどうか(かつ0xfeとかじゃない)で判断してみる
string[EOF] auth plugin response
よくよく見てみると判断できなくはないが、毎パケット23byteが全て0x00か見るのは避けたい、、、 パフォーマンスは考えずにまずはきれいに分類できるようにしてチューニングは現実のパケットがわかってきてからにしよう
.