Bolt Protocol において、サーバーとクライアントが接続を開始するためのプロトコルとして、Bolt Handshake Protocol Specification の仕様が策定されています。
本記事では、Bolt Handshake Protocol の概要について説明します。
クライアントがサーバーと接続を開始するまでの基本的な流れは以下の図の通りです。
まず、クライアントはサーバーに Bolt Protocol で接続を開始したい宣言を行います。これには、固定の 4 bytes のメッセージを送ります。
C: 60 60 B0 17
続いて、クライアントがサポートしている Bolt Protocol のバージョンを 4 つ 送ります。Big-endian の 32 bit 符号なし整数です。
例えば、上記の図では、以下の 4 つのバージョンをクライアントがサポートしています。
00 00 02 04
00 00 01 04
00 00 00 04
00 00 00 03
具体的には、以下の bit 列を送信します。
C: 00 00 02 04 00 00 01 04 00 00 00 04 00 00 00 03
サーバーがこの中から接続に利用する Bolt Protocol のバージョンを決定し、クライアント側に返却します。例えば、v4.1 を選択したとしましょう。
S: 00 00 01 04
以上の流れを改めてまとめると、以下の bit 列がやり取りされていることになります。 bit の合計 3 Round-Trip かかっています。
C: 60 60 B0 17
C: 00 00 02 04 00 00 01 04 00 00 00 04 00 00 00 03
S: 00 00 01 04
以上、Binary Handshake Protocol についての概要を紹介しました。