前回 MySQL X Protocol で使用している Protobuf について書きましたが、それだけでは MySQL のプロトコルは解析できません。
TCP を流れるデータは区切りがないので、書き込み側が Protobuf データをただ垂れ流しても、読み込む側がどう読んで良いのかわかりません。
書き込むデータの大きさと、書き込む Protobuf データの型を相手に伝える必要があります。
MySQL X Protocol のパケットは次のようになっているようです。
┌────┬─────────────── │size(4) │type(1) + Protobuf(size-1) └────┴───────────────
最初の4バイト(リトルエンディアン)で続くデータ部のサイズを示します。 …
[さらに読む]