ステートを持つとしてどうパースするのか
ステートを持って、packetをパースすることにした。
server greetingを受けてるまでのip:portの組からのパケットは全部破棄するとして、ステートマシンは独自に作らないとならない。 実際MySQL serverがやるようにパースすればよいが、高負荷環境ではtcpdumpでもパケットロストが発生するので、十分にパケットを処理できない場合にどう処理するかは悩みどころ。
実際問題server greetingが来るまでリセットさせてパケットを破棄するしかないように思える。
今の所通常のquery, prepared_statementで8ステート作っているが、他のパケットもパースしようとするとかなり大変。