タグ

*networkとrdbに関するsh19910711のブックマーク (2)

  • MySQLのパケットを読んでいく - tom__bo’s Blog

    この記事はMySQL Casual Advent Calendar 2018 10日目の記事です。 最近golangMySQLのclient/serverプロトコルのでシリアライザを作っていて、この記事ではclient/serverプロトコルを解説しつつ、そのデシリアライザの紹介をしようと思っていました。 ですが、思っている以上に進捗出せなかったので、今回はMySQLのpacketを読む面白さと参考にすると良い資料を紹介しようと思います。 なんでパケットを読むのか MySQLの通信プロトコルを知ることでMySQLの運用が楽になったり、知らないと困るようなことはまずありません。 とはいえ、プロトコルを解釈できればclient/server間の通信を中継したり、キャプチャすることで分析することができます!! 僕がプロトコルを理解しようと思ったきっかけは、プロダクション環境で実行されているクエ

    MySQLのパケットを読んでいく - tom__bo’s Blog
    sh19910711
    sh19910711 2022/09/19
    2018 / "通信プロトコルまでドキュメントになっているミドルウェアはそう多くないと思っていて(当社比)、プロトコルに関してもここまで整備がされているのはMySQLの良さの一つ"
  • MySQL X Protocol を解析してみる - @tmtms のメモ

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

    MySQL X Protocol を解析してみる - @tmtms のメモ
  • 1