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セットのメッセージです。 主にブローカーとノードの間での制御情報のやり取りに使用されます。 リクエストメッセージには、以下の種類があります。
名前 |
送信方向 |
説明 |
---|---|---|
上り |
接続要求 |
|
下り |
Connect Request に対する応答 |
名前 |
送信方向 |
説明 |
---|---|---|
上り |
アップストリームの開始要求 |
|
下り |
Upstream Open Request に対する応答 |
|
上り |
アップストリームの再開要求 |
|
下り |
Upstream Resume Request に対する応答 |
|
上り |
アップストリームの終了要求 |
|
下り |
Upstream Close Request に対する応答 |
名前 |
送信方向 |
説明 |
---|---|---|
上り |
ダウンストリームの開始要求 |
|
下り |
Downstream Open Request に対する応答 |
|
上り |
ダウンストリームの再開要求 |
|
下り |
Downstream Resume Request に対する応答 |
|
上り |
ダウンストリームの終了要求 |
|
下り |
Downstream Close Request に対する応答 |
名前 |
送信方向 |
説明 |
---|---|---|
上り |
メタデータ(上り用) |
|
下り |
Upstream Metadata に対する確認応答 |
|
下り |
メタデータ(下り用) |
|
上り |
Downstream Metadata に対する確認応答 |
名前 |
送信方向 |
説明 |
---|---|---|
上り/下り |
PING |
|
上り/下り |
PONG(Ping に対する応答) |
名前 |
送信方向 |
説明 |
---|---|---|
上り |
接続状態フィードの開始要求 |
|
下り |
||
上り |
接続状態フィードの終了要求 |
|
下り |
2.1.2. ストリームメッセージ¶
ストリームメッセージは、特定のストリームに紐づくメッセージです。 主に時系列データポイントを送信するために使用されます。 ストリームメッセージには、以下の種類があります。
名前 |
送信方向 |
説明 |
---|---|---|
上り |
ストリームチャンク(上り用) |
|
下り |
Upstream Chunk に対する確認応答 |
|
下り |
ストリームチャンク(下り用) |
|
上り |
Downstream Chunk に対する確認応答 |
|
下り |
Downstream Chunk Ack に対する応答 |
2.1.3. エンドツーエンドコールメッセージ¶
エンドツーエンドコールメッセージは、ブローカーを介したノード同士の通信に使用するメッセージです。 エンドツーエンドコールメッセージには、以下の種類があります。
名前 |
送信方向 |
説明 |
---|---|---|
上り |
E2E コール(上り用) |
|
下り |
Upstream Call に対する応答 |
|
下り |
E2E コール(下り用) |
2.1.4. 接続状態通知メッセージ¶
接続状態通知メッセージは、あるノードの接続状態をブローカーから別のノードに通知するときに使用するメッセージです。 接続状態通知メッセージには、以下の種類があります。
名前 |
送信方向 |
説明 |
---|---|---|
下り |
接続状態通知 |