2.1. 【拡張仕様】Protocol Buffers を用いたエンコーディング

本拡張仕様では、エンコーディングに Protocol Buffers を使用した場合の、メッセージのエンコード/デコードの方法について定義します。

2.1.1. エンコーディングの名称

トランスポート層での事前ネゴシエーション時に使用するエンコーディング名は、 proto を使用します。

2.1.2. メッセージのフォーマットとパース

このエンコーディングでは、Protocol Buffers のバイナリワイヤ形式を使用します。 各メッセージの定義には、 この proto ファイル群 を使用することができます。 本ファイル群の構成は、以下のとおりです。

表 86 .proto ファイル群

ファイル

内容

connection.proto

通信の開始と終了 に関連するメッセージの定義ファイル

upstream.proto

アップストリーム に関連するメッセージの定義ファイル

downstream.proto

ダウンストリーム に関連するメッセージの定義ファイル

e2e_call.proto

エンドツーエンド通信 に関連するメッセージの定義ファイル

ping_pong.proto

PING/PONG に関連するメッセージの定義ファイル

metadata.proto

メタデータ に関連するメッセージの定義ファイル

common.proto

共通で使用する構造体の定義ファイル

result_code.proto

結果コードの定義ファイル

extensions/connection.proto

connection.proto に関連する拡張フィールドの定義ファイル

extensions/upstream.proto

upstream.proto に関連する拡張フィールドの定義ファイル

extensions/downstream.proto

downstream.proto に関連する拡張フィールドの定義ファイル

extensions/e2e_call.proto

e2e_call.proto に関連する拡張フィールドの定義ファイル

extensions/ping_pong.proto

ping_pong.proto に関連する拡張フィールドの定義ファイル

拡張仕様をサポートする場合は、 extensions ディレクトリ配下の拡張フィールドの定義を、 サポートする拡張仕様の規定に合わせて差し替える必要があります。

このエンコーディングを使用するためのフォーマッタおよびパーサには、 Protocol Buffers エコシステムで提供されるツール群を使用して自動生成されたものを使用することができます。

2.1.3. フォーマットのタイプ

本エンコーディングはバイナリ形式です。