2.1. メッセージの種類

iSCP 2.0 プロトコルは、定義された順序で一連のメッセージを交換することによって動作します。 このセクションでは、各メッセージのフォーマットについて説明します。

iSCPで使用するメッセージには、合計29個の種類があります。 メッセージは、以下の4種類に分類することができます。

リクエストメッセージ

リクエストとレスポンスで1セットのメッセージです。 リクエストIDによって、リクエストとレスポンスの対応付けが判別されます。

ストリームメッセージ

特定のストリームに紐づくメッセージです。 ストリームIDのエイリアスによりどのストリームに紐づくか識別されます。

エンドツーエンドコールメッセージ

エンドツーエンドでの通信をブローカーに仲介してもらうときに使用するメッセージです。 コールIDによりエンドツーエンドでのコールが識別されます。

接続状態通知メッセージ

あるノードの接続状態をブローカーから別のノードに通知するときに使用するメッセージです。 フィードIDによりどの状態監視フィードに紐づくか識別されます。

ただし、Disconnect メッセージは、例外として上記のどの分類にも分類されません。

それぞれのメッセージには、そのメッセージが送信される方向が規定されています。 上り と記載されているメッセージは、ノードからブローカーに向かって送信されます( MUST )。 下り と記載されているメッセージは、ブローカーからノードに向かって送信されます( MUST )。 規定されていない方向にメッセージが送信された場合は、 プロトコル違反 です。

Upstream Chunk および Downstream Chunk の2つのメッセージは、 信頼性のあるトランスポート、信頼性のないトランスポートのどちらを使用しても送信することができます。 これらの2つのメッセージを、どちらのトランスポートを使用して送信するべきかは、使用する QoS によって規定されます( MUST )。 QoS の決定方法については、 アップストリームダウンストリーム などの各章のシーケンスにて定義されています。 メッセージの送信者はこれらの2つのメッセージ以外のすべてのメッセージを、信頼性のあるトランスポートを使用して送信する必要があります( MUST )。 ただし、メッセージの受信者は、規定外のトランスポートを使用されたメッセージを受信した場合でも、メッセージを受容することができます( MAY )。

使用するトランスポートの信頼性に関する詳細は、 トランスポートの信頼性 を参照してください。 また、 QoS に関する詳細は、 QoS (Quality of Service) を参照してください。

2.1.1. リクエストメッセージ

リクエストメッセージは、リクエストとレスポンスで1セットのメッセージです。 主にブローカーとノードの間での制御情報のやり取りに使用されます。 リクエストメッセージには、以下の種類があります。

表 2 接続全体の制御用メッセージ

名前

送信方向

説明

Connect Request

上り

接続要求

Connect Response

下り

Connect Request に対する応答

表 3 アップストリーム用メッセージ

名前

送信方向

説明

Upstream Open Request

上り

アップストリームの開始要求

Upstream Open Response

下り

Upstream Open Request に対する応答

Upstream Resume Request

上り

アップストリームの再開要求

Upstream Resume Response

下り

Upstream Resume Request に対する応答

Upstream Close Request

上り

アップストリームの終了要求

Upstream Close Response

下り

Upstream Close Request に対する応答

表 4 ダウンストリーム用メッセージ

名前

送信方向

説明

Downstream Open Request

上り

ダウンストリームの開始要求

Downstream Open Response

下り

Downstream Open Request に対する応答

Downstream Resume Request

上り

ダウンストリームの再開要求

Downstream Resume Response

下り

Downstream Resume Request に対する応答

Downstream Close Request

上り

ダウンストリームの終了要求

Downstream Close Response

下り

Downstream Close Request に対する応答

表 5 メタデータの送受信用メッセージ

名前

送信方向

説明

Upstream Metadata

上り

メタデータ(上り用)

Upstream Metadata Ack

下り

Upstream Metadata に対する確認応答

Downstream Metadata

下り

メタデータ(下り用)

Downstream Metadata Ack

上り

Downstream Metadata に対する確認応答

表 6 PING/PONG用メッセージ

名前

送信方向

説明

Ping

上り/下り

PING

Pong

上り/下り

PONG(Ping に対する応答)

表 7 接続状態フィード用メッセージ

名前

送信方向

説明

Connection Status Feed Open Request

上り

接続状態フィードの開始要求

Connection Status Feed Open Response

下り

Connection Status Feed Open Request に対する応答

Connection Status Feed Close Request

上り

接続状態フィードの終了要求

Connection Status Feed Close Response

下り

Connection Status Feed Close Request に対する応答

2.1.2. ストリームメッセージ

ストリームメッセージは、特定のストリームに紐づくメッセージです。 主に時系列データポイントを送信するために使用されます。 ストリームメッセージには、以下の種類があります。

表 8 データ送受信用メッセージ

名前

送信方向

説明

Upstream Chunk

上り

ストリームチャンク(上り用)

Upstream Chunk Ack

下り

Upstream Chunk に対する確認応答

Downstream Chunk

下り

ストリームチャンク(下り用)

Downstream Chunk Ack

上り

Downstream Chunk に対する確認応答

Downstream Chunk Ack Complete

下り

Downstream Chunk Ack に対する応答

2.1.3. エンドツーエンドコールメッセージ

エンドツーエンドコールメッセージは、ブローカーを介したノード同士の通信に使用するメッセージです。 エンドツーエンドコールメッセージには、以下の種類があります。

表 9 エンドツーエンドコール用メッセージ

名前

送信方向

説明

Upstream Call

上り

E2E コール(上り用)

Upstream Call Ack

下り

Upstream Call に対する応答

Downstream Call

下り

E2E コール(下り用)

2.1.4. 接続状態通知メッセージ

接続状態通知メッセージは、あるノードの接続状態をブローカーから別のノードに通知するときに使用するメッセージです。 接続状態通知メッセージには、以下の種類があります。

表 10 接続状態通知用メッセージ

名前

送信方向

説明

Connection Status

下り

接続状態通知

2.1.5. その他のメッセージ

Disconnect メッセージのみ、例外として上記のどの分類にも分類されません。

表 11 Disconnectメッセージ

名前

送信方向

説明

Disconnect

上り/下り

切断