(57)【特許請求の範囲】
【請求項１】
メッシュ通信ネットワークにおいて、少なくとも１つのノード装置を介して、話者装置から聴者装置へのデータストリーム伝送をセットアップするために資源を割り当てる方法であって、
リンク状態ルーティングプロトコルに従って前記メッシュ通信ネットワークにわたってデータ経路が定義される
方法において、
前記方法は、各ノード装置が、
‐前記データストリーム伝送に対するストリーム予約リクエストを受信することと、
‐前記ストリーム予約リクエストから、前記データストリーム伝送がセットアップされなければならないデータ経路を特定する経路識別子と、前記聴者装置の識別子とを取得することと、
‐前記ストリーム予約リクエストにおいて特定される前記データ経路が、前記ノード装置のどの出力ポートを介して前記聴者装置に向かって継続しているかを決定することと、
‐前記受信したストリーム予約リクエストの資源要求を満たすために、前記決定された出力ポートに関連付けられた十分な資源が存在するか否かをチェックすることと、
前記十分な資源が存在する時に、
‐前記データストリーム伝送について資源を一時的に予約することと、
‐前記聴者装置に向けて前記ストリーム予約リクエストを伝搬させることと、
前記データストリーム伝送について前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信した時に、
‐前記予約された資源の少なくとも一部を実際に割り当てることと、
‐前記話者装置に向けて前記ストリーム予約レスポンスを伝搬させることと
を実行し、
前記十分な資源が存在しない時に、前記ノード装置は、
‐資源予約問題を示すことにより前記ストリーム予約リクエストを修正することと、
‐前記修正されたストリーム予約リクエストを前記聴者装置に向けて伝搬させることと
を実行する、方法。
【請求項２】
前記聴者装置は、
‐前記ストリーム予約リクエストを受信することと、
‐前記受信したストリーム予約リクエストの資源要求を満たすために十分な内部資源が存在するか否かをチェックすることと、
‐前記十分な内部資源が存在する時に、前記ストリーム予約リクエストに対する肯定応答を表す前記ストリーム予約レスポンスを前記話者装置に向けて送信することと、
‐前記十分な内部資源が存在しない時に、前記ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを前記話者装置に向けて送信することと、
を実行する、請求項１に記載の方法。
【請求項３】
前記ストリーム予約リクエストを受信した時に、前記聴者装置は、事前に、
‐前記受信したストリーム予約リクエストが、上流で発生した資源予約問題を示しているか否かをチェックすることと、
‐前記ストリーム予約リクエストが前記資源予約問題を示している時に、前記ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを、前記話者装置に向けて送信することと
を実行する、請求項１または２に記載の方法。
【請求項４】
ストリーム予約リクエストを送信する時に、前記話者装置は、第１の事前に定義されたタイムアウト期間をもって第１のタイマを始動させ、
前記話者装置が前記ストリーム予約リクエストに対する肯定応答を表す前記ストリーム予約レスポンスを受信することなく前記第１のタイマがタイムアウトした時に、前記話者装置は、前記予約された資源を解放するよう前記ノード装置に命令する、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを前記データストリーム伝送について受信した時に、前記ノード装置は、
‐前記予約された資源を解放することと、
‐前記ストリーム予約レスポンスを前記話者装置に向けて伝搬させることと
を実行する、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
資源必要性のヌル指標を伴うストリーム予約リクエストを受信した時に、前記ノード装置は、前記データストリームに対して予約されまたは割り当てられた資源を解放する、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記データストリームに対して資源を一時的に予約する時に、前記ノード装置は、第２の事前に定義されたタイムアウト期間をもって第２のタイマを始動させ、
前記ノード装置が前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信することなく前記第２のタイマがタイムアウトした時に、前記ノード装置は前記予約された資源を解放する、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記話者装置は、前記データストリームに対する複数のストリーム予約リクエストを、それぞれ区別された複数のデータ経路を介して送信し、
前記聴者装置が前記複数のストリーム予約リクエストを受信した時には、前記聴者装置は、
‐各ストリーム予約リクエストに含まれる資源要求の指標に従い、前記複数のストリーム予約リクエストのうち前記ストリーム予約リクエストが最良の性能を示すデータ経路を少なくとも１つ選択することと、
‐前記選択されたデータ経路（複数可）に関連する前記ストリーム予約リクエスト（複数可）に対する肯定応答を表すストリーム予約レスポンスを送信することと、
‐前記選択されたデータ経路（複数可）ではないデータ経路に関連する各ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを送信することと、
を実行する、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記リンク状態ルーティングプロトコルの結果として得られる前記データ経路は、転送テーブルに記載され、
各前記転送テーブルは、
‐データ経路識別子と、
‐前記データ経路のエンドポイント１つの識別子と、
‐前記転送テーブルを実装する前記ノード装置の出力ポートのうち、前記データ経路の前記特定されたエンドポイントが到達可能である出力ポートの識別子と、
の間の対応関係からなり、かつ、
前記転送テーブルを構築した後、前記ノード装置は、前記特定された出力ポートに関連付けられた利用可能な資源の指標で前記転送テーブルを拡張する、
請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
前記メッシュ通信ネットワークはイーサネットタイプであり、かつ、
前記リンク状態ルーティングプロトコルは最短経路ブリッジングＳＰＢプロトコルである、請求項１〜９のいずれか一項に記載の方法。
【請求項１１】
プログラム可能な装置によって実行される時に請求項１〜１０のいずれか一項に記載の方法を実施するために、前記プログラム可能な装置にロード可能なプログラムコード命令を含む、コンピュータプログラム。
【請求項１２】
プログラム可能な装置によって実行される時に請求項１〜１０のいずれか一項に記載の方法を実施するために、前記プログラム可能な装置にロード可能なプログラムコード命令を含むコンピュータプログラムを記憶する、情報記憶手段。
【請求項１３】
話者装置から聴者装置へのデータストリーム伝送をセットアップするために、メッシュ通信ネットワークに含まれるよう意図されるノード装置であって、
リンク状態ルーティングプロトコルに従って前記メッシュ通信ネットワークにわたってデータ経路が定義される
ノード装置において、
前記ノード装置は、
‐前記データストリーム伝送に対するストリーム予約リクエストを受信する手段と、
‐前記ストリーム予約リクエストから、前記データストリーム伝送がセットアップされなければならないデータ経路を特定する経路識別子と、前記聴者装置の識別子とを取得する手段と、
‐前記ストリーム予約リクエストにおいて特定される前記データ経路が、前記ノード装置のどの出力ポートを介して前記聴者装置に向かって継続しているかを決定する手段と、
‐前記受信したストリーム予約リクエストの資源要求を満たすために、前記決定された出力ポートに関連付けられた十分な資源が存在するか否かをチェックする手段と、
を実装し、
前記十分な資源が存在する時に、前記ノード装置は、さらに、
‐前記データストリーム伝送について資源を一時的に予約する手段と、
‐前記聴者装置に向けて前記ストリーム予約リクエストを伝搬させる手段と、
を実装し、
前記データストリーム伝送について前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信した時に、前記ノード装置は、さらに、
‐前記予約された資源の少なくとも一部を実際に割り当てる手段と、
‐前記話者装置に向けて前記ストリーム予約レスポンスを伝搬させる手段と
を実装し、
前記十分な資源が存在しない時に、前記ノード装置は、
‐資源予約問題を示すことにより前記ストリーム予約リクエストを修正する手段と、
‐前記修正されたストリーム予約リクエストを前記聴者装置に向けて伝搬させる手段と
を実装する、ノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、メッシュ通信ネットワークにおいてデータストリーム伝送をセットアップするために資源を割り当てることに関する。
【０００２】
メッシュ通信ネットワークにおいて通信をセットアップできるようにするために、ノード装置はリンク状態ルーティングプロトコルを実装する。リンク状態ルーティングプロトコルは、各ノード装置が転送テーブルを構築するよう導く。転送テーブルは、宛先(addressee)に関する情報を含むメッセージまたはデータパケットを受信した時に、そのメッセージまたはデータパケットがそのノード装置のどの出力ポートに転送されなければならないかをノード装置が決定できるようにする情報を含む。転送テーブルは、しばしば「フィルタリングテーブル」とも呼ばれる。
【０００３】
リンク状態ルーティングプロトコルは、メッシュ通信ネットワークにおいてネットワークトポロジー情報を自動的に伝搬させ同期させるために、通信ネットワークにおいて広く用いられる。たとえば、標準規格ＩＥＥＥ８０２．１ａｑに詳述されるリンク状態ルーティングプロトコルＳＰＢ（短経路ブリッジング(Short Path Bridging)）を引用することができる。ＳＰＢは、トポロジーおよび論理的ネットワークメンバーシップの双方をアドバタイズするためにリンク状態タイプのルーティングプロトコルを用いるネイティブイーサネット（登録商標）インフラストラクチャー上に論理的イーサネットネットワークを実装できるようにする。ＳＰＢと同じ目的を達成するために、その他のリンク状態ルーティングプロトコルも存在する。
【０００４】
データストリーム伝送について資源割り当てを実行するために、メッシュ通信ネットワークにおいてアドミッションコントロールのためのシグナリングを実装する必要がある。この目的のために、ＯＳＩ（Open Systems Interconnection）モデルの第２層で動作するＳＲＰ（標準規格IEEE 802.1Qatにおいて定義されるストリーム予約プロトコル）が利用可能である。聴者装置（listener device）は、どのデータストリームが受信されるべきかを示すためにプリミティブを用い、話者装置（talker device）は供給可能なストリームをアナウンスするためにプリミティブを用いる。話者装置において、聴者装置において、および、データストリームのデータ経路に沿った遷移ノードにおいて、これらのプリミティブから資源が割り当てられ設定される。割り当ての成否を検出するエンドツーエンドシグナリング機構もまた提供されている。しかしながら、この手法は、メッシュ通信ネットワークにおける多数のメッセージ交換に依存する。さらに、メッシュ通信ネットワークのコンテキストでは、話者装置から聴者装置にデータストリームを伝送するためにあるデータ経路から別のデータ経路に切り替えることが容易にできないので、このような手法は柔軟性を欠く。
【０００５】
従来技術の上述の問題を克服することが望ましい。
【０００６】
とくに、データストリームをセットアップするために交換されるメッセージおよび／またはデータの量を低減するとともに、そのメッセージおよび／またはデータの伝搬を簡素化する解決策を提供することが望ましい。
【０００７】
さらに、実装が容易でありコスト効率的な解決策を提供することが望ましい。
【０００８】
この目的のために、本発明は、メッシュ通信ネットワークにおいて、少なくとも１つのノード装置を介して、話者装置から聴者装置へのデータストリーム伝送をセットアップするために資源を割り当てる方法であって、リンク状態ルーティングプロトコルに従って前記メッシュ通信ネットワークにわたってデータ経路が定義される、方法に関する。本方法は、各ノード装置が、
‐前記データストリーム伝送に対するストリーム予約リクエストを受信することと、
‐前記ストリーム予約リクエストから、前記データストリーム伝送がセットアップされなければならないデータ経路を特定する経路識別子と、前記聴者装置の識別子とを取得することと、
‐前記ストリーム予約リクエストにおいて特定される前記データ経路が、前記ノード装置のどの出力ポートを介して前記聴者装置に向かって継続しているかを決定することと、
‐前記受信したストリーム予約リクエストの資源要求を満たすために、前記決定された出力ポートに関連付けられた十分な資源が存在するか否かをチェックすることと、
を実行するものである。そして、前記十分な資源が存在する時に、前記ノード装置は、
‐前記データストリーム伝送について資源を一時的に予約することと、
‐前記聴者装置に向けて前記ストリーム予約リクエストを伝搬させることと、
を実行する。そして、前記データストリーム伝送について前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信した時に、前記ノード装置は、
‐前記予約された資源の少なくとも一部を実際に割り当てることと、
‐前記話者装置に向けて前記ストリーム予約レスポンスを伝搬させることと
を実行する。
【０００９】
このように、メッシュ通信ネットワークにおいて交換されるメッセージの量が従来の手法に比べて低減され、前記メッセージの伝搬が簡素化される。
【００１０】
特定の特徴によれば、前記聴者装置は、
‐前記ストリーム予約リクエストを受信することと、
‐前記受信したストリーム予約リクエストの資源要求を満たすために十分な内部資源が存在するか否かをチェックすることと、
‐前記十分な内部資源が存在する時に、前記ストリーム予約リクエストに対する肯定応答を表す前記ストリーム予約レスポンスを前記話者装置に向けて送信することと、
‐前記十分な内部資源が存在しない時に、前記ストリーム予約リクエストに対する否定応答を表す前記ストリーム予約レスポンスを前記話者装置に向けて送信することと、
を実行する。
【００１１】
このように、聴者装置が複数のデータストリームを受信した時には、聴者装置はＱｏＳ（サービス品質（Quality of Service））を保証することができる。
【００１２】
特定の特徴によれば、前記十分な資源が存在しない時に、前記ノード装置は、
‐資源予約問題を示すことにより前記ストリーム予約リクエストを修正することと、
‐前記修正されたストリーム予約リクエストを伝搬させることと
を実行する。
【００１３】
このように、資源予約問題の指標が下流に伝搬される。
【００１４】
特定の特徴によれば、前記ストリーム予約リクエストを受信した時に、前記聴者装置は、事前に、
‐前記受信したストリーム予約リクエストが、上流で発生した資源予約問題を示しているか否かをチェックすることと、
‐前記ストリーム予約リクエストが前記資源予約問題を示している時に、前記ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを、前記話者装置に向けて送信することと
を実行する。
【００１５】
このように、資源予約問題の指標は聴者装置から話者装置へと上流に伝搬される。
【００１６】
特定の特徴によれば、ストリーム予約リクエストを送信する時に、前記話者装置は、第１の事前に定義されたタイムアウトをもって第１のタイマを始動させ、
前記話者装置が前記ストリーム予約リクエストに対する肯定応答を表す前記ストリーム予約レスポンスを受信することなく前記第１のタイマがタイムアウトした時に、前記話者装置は、前記予約された資源を解放するよう前記ノード装置に命令する。
【００１７】
このように、メッシュ通信ネットワークにわたるストリーム予約リクエストまたはストリーム予約レスポンスの伝送中に通信問題が発生したとしても、話者装置はメッシュ通信ネットワークの資源を管理することができる。
【００１８】
特定の特徴によれば、前記ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを前記データストリーム伝送について受信した時に、前記ノード装置は、
‐前記予約された資源を解放することと、
‐前記ストリーム予約レスポンスを前記話者装置に向けて伝搬させることと
を実行する。
【００１９】
このように、ノード装置は、ストリーム予約リクエストの要求に従ってデータストリームをハンドリングするために、別のノード装置または聴者装置の能力不足(inability)を考慮することができる。
【００２０】
特定の特徴によれば、資源必要性のヌル指標を伴うストリーム予約リクエストを受信した時に、前記ノード装置は、前記データストリームに対して予約されまたは割り当てられた資源を解放する。
【００２１】
このように、データストリームをテアダウンすることが容易に実装される。
【００２２】
特定の特徴によれば、前記データストリームに対して資源を一時的に予約する時に、前記ノード装置は、第２の事前に定義されたタイムアウトをもって第２のタイマを始動させ、
前記ノード装置が前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信することなく前記第２のタイマがタイムアウトした時に、前記ノード装置は前記予約された資源を解放する。
【００２３】
このように、メッシュ通信ネットワークにわたるストリーム予約リクエストまたはストリーム予約レスポンスの伝送中に通信問題が発生したとしても、ノード装置は関連する前記ノード装置の出力ポートに関連付けられた資源を管理することができる。
【００２４】
特定の特徴によれば、前記ストリーム予約リクエストは、前記データストリームに対する資源要求の前記指標に加え、資源限度の指標を含み、前記資源限度を超えると前記データストリームを受理する必要はない。さらに、前記ノード装置は、前記データストリームに対する前記ノード装置の実際の能力を示すために、前記実際の能力が前記資源要求と前記資源限度との間である時に、前記ストリーム予約リクエストにおける資源要求の前記指標を修正し、前記ノード装置が前記ストリーム予約リクエストに対する肯定応答を表す前記ストリーム予約レスポンスを受信した時に、前記ノード装置は、前記ストリーム予約レスポンスに含まれる資源要求の前記指標によって表される量の資源のみを実際に割り当てる。
【００２５】
このように、データストリームセットアップに柔軟性がもたらされる。
【００２６】
特定の特徴によれば、前記話者装置は、前記データストリームに対する複数のストリーム予約リクエストを、それぞれ区別された複数のデータ経路を介して送信する。さらに、前記聴者装置が前記複数のストリーム予約リクエストを受信した時には、前記聴者装置は、
‐各ストリーム予約リクエストに含まれる資源要求の前記指標に従い、前記複数のストリーム予約リクエストのうち前記ストリーム予約リクエストが最良の性能を示すデータ経路を少なくとも１つ選択することと、
‐前記選択されたデータ経路（複数可）に関連する前記ストリーム予約リクエスト（複数可）に対する肯定応答を表すストリーム予約レスポンスを送信することと、
‐前記選択されたデータ経路（複数可）ではないデータ経路に関連する各ストリーム予約リクエストに対する否定応答を表すストリーム予約レスポンスを送信することと、
を実行する。
【００２７】
このように、低減された処理レイテンシーをもって、良好な性能のデータストリームセットアップが達成可能である。
【００２８】
特定の特徴によれば、前記リンク状態プロトコルの結果として得られる前記データ経路は、転送テーブルに記載され、
各前記転送テーブルは、
‐データ経路識別子と、
‐前記データ経路のエンドポイント１つの識別子と、
‐前記転送テーブルを実装する前記ノード装置の出力ポートのうち、前記データ経路の前記特定されたエンドポイントが到達可能である出力ポートの識別子と、
の間の対応関係からなる。そして、前記転送テーブルを構築した後、前記ノード装置は、前記特定された出力ポートに関連付けられた利用可能な資源の指標で前記転送テーブルを拡張する。
【００２９】
このように、事前に確立した経路に沿った資源の高速割り当てが可能となる。
【００３０】
特定の特徴によれば、前記メッシュ通信ネットワークはイーサネットタイプであり、前記リンク状態ルーティングプロトコルは最短経路ブリッジングＳＰＢプロトコルである。
【００３１】
また、本発明は、話者装置から聴者装置へのデータストリーム伝送をセットアップするために、メッシュ通信ネットワークに含まれるよう意図されるノード装置であって、リンク状態ルーティングプロトコルに従って前記メッシュ通信ネットワークにわたってデータ経路が定義される、ノード装置にも関する。前記ノード装置は、
‐前記データストリーム伝送に対するストリーム予約リクエストを受信する手段と、
‐前記ストリーム予約リクエストから、前記データストリーム伝送がセットアップされなければならないデータ経路を特定する経路識別子と、前記聴者装置の識別子とを取得する手段と、
‐前記ストリーム予約リクエストにおいて特定される前記データ経路が、前記ノード装置のどの出力ポートを介して前記聴者装置に向かって継続しているかを決定する手段と、
‐前記受信したストリーム予約リクエストの資源要求を満たすために、前記決定された出力ポートに関連付けられた十分な資源が存在するか否かをチェックする手段と、
を実装する。そして、前記十分な資源が存在する時に、前記ノード装置は、さらに、
‐前記データストリーム伝送について資源を一時的に予約する手段と、
‐前記聴者装置に向けて前記ストリーム予約リクエストを伝搬させる手段と、
を実装する。そして、前記データストリーム伝送について前記ストリーム予約リクエストに対する肯定応答を表すストリーム予約レスポンスを受信した時に、前記ノード装置は、さらに、
‐前記予約された資源の少なくとも一部を実際に割り当てる手段と、
‐前記話者装置に向けて前記ストリーム予約レスポンスを伝搬させる手段と
を実装する。
【００３２】
また、本発明は、通信ネットワークからダウンロード可能であり、および／または、コンピュータによって読み取り可能な媒体に記憶され、プロセッサによって実行可能であるコンピュータプログラムにも関する。このコンピュータプログラムは、そのプログラムがプロセッサによって実行される時に、上述の方法をいずれかの実施形態において実施するための命令を含む。また、本発明は、そのようなコンピュータプログラムを記憶する情報記憶手段にも関する。
【００３３】
システムおよびコンピュータプログラムに関係する特徴および利点は、対応する上述の方法に関連して述べたものと同じであるので、ここでは繰り返さない。
【００３４】
本発明の特徴は、以下に示す実施形態の例の記載を読めばより明らかになるであろう。以下の記載は添付の図面を参照して作成されている。
【図面の簡単な説明】
【００３５】
【図１Ａ】本発明が実施可能なメッシュ通信ネットワークを概略的に表す図である。
【図１Ｂ】メッシュ通信ネットワークのノード装置によって実装される転送テーブルを概略的に表す図である。
【図２】そのようなノード装置のアーキテクチャ、および／または、メッシュ通信ネットワークの話者装置のアーキテクチャ、および／または、メッシュ通信ネットワークの聴者装置のアーキテクチャを概略的に表す図である。
【図３】ストリーム予約リクエストを処理するために各ノード装置が実行するアルゴリズムを概略的に表す図である。
【図４】ストリーム予約リクエストを処理するために聴者装置が実行するアルゴリズムを概略的に表す図である。
【図５】ストリーム予約レスポンスを処理するために各ノード装置が実行するアルゴリズムを概略的に表す図である。
【図６】ストリームセットアップ(stream set up)命令を処理するために話者装置が実行するアルゴリズムを概略的に表す図である。
【図７】ストリームテアダウン(stream tear down)命令を処理するために話者装置が実行するアルゴリズムを概略的に表す図である。
【００３６】
図１Ａは、本発明が実施可能なメッシュ通信ネットワークを概略的に表す。メッシュ通信ネットワークはイーサネットタイプであることが好ましい。
【００３７】
図１Ａに示すメッシュ通信ネットワークは、話者装置(talker device)１０１と、聴者装置(listener device)１０２と、１組のノード装置１１１、１１２、１１３、１１４、１１５とを備える。
【００３８】
話者装置１０１は、聴者装置１０２によって受信され処理されるように意図されるデータストリームパケットを提供する（たとえば生成する）よう構成される。ノード装置１１１、１１２、１１３、１１４、１１５は、事前にメッシュ通信ネットワークにおいて実行される資源割り当てに従い、データストリームパケットが話者装置１０１から聴者装置１０２に伝送されることを保証するよう構成される。資源割り当て処理は、図３、４および５に関連して後に詳述する。データストリームセットアップ処理は、図６に関連して後に詳述する。データストリームテアダウン(data stream tear down)処理は、図７に関連して後に詳述する。
【００３９】
メッシュ通信ネットワークにおいて通信をセットアップできるようにするために、ノード装置はリンク状態ルーティングプロトコルを実装する。リンク状態ルーティングプロトコルは、各ノード装置が転送テーブルを構築するよう導く。リンク状態ルーティングプロトコルの原理によれば、各ノード装置がメッシュ通信ネットワークに対する接続性のマップをグラフ形式で構築し、どのノード装置が別のどのノード装置に接続されているかを示す。その後、各ノード装置は、各ノード装置からメッシュ通信ネットワーク内の潜在的な宛先ノード装置(destination node device)それぞれまでの、最良データ経路を独立に計算する。その後、ノード装置は、１つ以上の上述の転送テーブルに、最良のデータ経路の集合を記憶する。言い換えると、リンク状態ルーティングプロトコルは、ノード装置が、最初から(from scratch)転送テーブルを構築するよう導く。
【００４０】
好適な実施形態では、メッシュ通信ネットワークのノード装置は、リンク状態ルーティングプロトコルＳＰＢを実装する。
【００４１】
話者装置１０１および聴者装置１０２は、メッシュ通信ネットワークのノード装置であってもよい。話者装置１０１および聴者装置１０２は、メッシュ通信ネットワークの端末装置であってもよい（これは、話者装置１０１および聴者装置１０２が転送テーブルを実装しないということを意味する）。
【００４２】
通信ネットワークがメッシュ通信ネットワークであるので、典型的には話者装置１０１と聴者装置１０２との間に複数のデータ経路が存在する。したがって、話者装置１０１から聴者装置１０２に所与のデータストリームを伝送するために、１つ以上のデータ経路が用いられてもよい。したがって、話者装置１０１は、この所与のデータストリームを、単一のデータ経路を介して送信するよう構成されてもよく、この所与のデータストリームを事前に定義される拡散規則に従って複数のデータ経路内で拡散することにより複数のデータ経路を介して送信するよう構成されてもよい。また、話者装置１０１は、この所与のデータストリームを、単一のデータ経路を介していかなる時刻に送信してもよいが、データストリームを効率的に送信するために複数のデータ経路を切り替える。このような切り替えは、たとえば、メッシュ通信ネットワークにおけるロードバランシング規則に従って発生する。
【００４３】
図１Ｂは、各ノード装置１１１、１１２、１１３、１１４、１１５によって実装される転送テーブルを概略的に表す。転送テーブルは、メッシュ通信ネットワークにわたる各データ経路を表す情報を含む。転送テーブルの各行が１つのデータ経路を表す。
【００４４】
図１Ｂに示す転送テーブルは第１列１５１を含み、第１列１５１は、行ごとに、データ経路の第１エンドポイントＥＰ１のアドレスを記憶する。さらに、転送テーブルは第２列１５２を含み、第２列１５２は、行ごとに、第１エンドポイントＥＰ１がそのデータ経路にわたってノード装置のどのポートを介して到達可能(reachable)であるかを特定する。さらに、転送テーブルは第３列１５３を含み、第３列１５３は、行ごとに、関連するデータ経路の識別子を記憶する。
【００４５】
さらに、転送テーブルは、第２列１５２において指定される出力ポートに関連付けられた利用可能な資源の指標を記憶する第４列１５４を含む。
【００４６】
転送テーブルの第１列１５１、第２列１５２および第３列１５３には、リンク状態ルーティングプロトコルのネットワークディスカバリフェーズの結果として得られる値が記入される。リンク状態ルーティングプロトコルが終了すると、転送テーブルの第４列１５４は、第２列１５２において指定される出力ポートに関連付けられた資源の、事前に定義された最大値にセットされる。言い換えると、転送テーブルを構築した後、関連する各ノード装置は、第２列１５２において特定される出力ポートに関連付けられた利用可能な資源の指標で転送テーブルを拡張する。
【００４７】
出力ポートに関連付けられた資源は、そのノード装置から対応する隣接ノード装置へと向かう方向の出力ポートに接続されたリンクの利用可能なスループットであってもよい。隣接ノード装置とは、リンクによって相互接続されたノード装置である。出力ポートに関連付けられた資源は、バッファ深さ、レイテンシー、または他のＱｏＳパラメータであってもよい。これらの資源がレイテンシーに関するものである時には、それはノード装置における個別の内部処理経路（したがって個別の内部資源）を指してもよい。また、それは、どのペンディング中のメッセージまたはデータパケットが最初に送信されなければならないかを決定するために優先度レベルを用いるデータ送信スケジューラによって管理される、複数の異なる優先度レベルを指してもよい。また、それは、新たなデータストリームを受理するための伝送トラフィックシェイパー(transmission traffic shaper)の能力を指してもよい。また、それは、データ損失確率を指してもよい。
【００４８】
そのような転送テーブルを実装するノード装置のコンテキストにおいて、当該転送テーブルは「ローカル」であると言われる。
【００４９】
ノード装置によってメッセージまたはデータストリームパケットが受信された時には、そのノード装置は、受信したメッセージまたはデータストリームパケットから、データ経路識別子と、そのメッセージまたはデータストリームパケットの宛先(addressee)の識別子とを取得する。さらに、ノード装置は、そのメッセージまたはデータストリームパケットが受信された当該ノード装置の入力ポートの指標を取得する。その後、ノード装置は、取得されたデータ経路識別子が第３列１５３に含まれ、かつ宛先識別子が第１列１５１に含まれる行を発見するために、転送テーブルをパースする。ノード装置がそのような行を発見し、かつ第２列１５２に示されるポートが入力ポートと異なっている時には、ノード装置は、そのメッセージを転送するための出力ポートとして、その行の第２列１５２に示されるポートを用いる。ノード装置がそのような行を発見し、かつその行の第２列１５２に示されるポートが入力ポートと同一である時には、ノード装置は、受信したメッセージまたはデータストリームパケットを転送するための出力ポートとして、他のポートすべてを用いる。ノード装置がそのような行を発見しない時には、ノード装置は受信したメッセージまたはデータストリームパケットを破棄する。
【００５０】
図２は、ノード装置のアーキテクチャ、および／または、話者装置のアーキテクチャ、および／または、聴者装置のアーキテクチャを概略的に表す。大まかに言えば、このアーキテクチャはノードデバイスを指す。
【００５１】
図示のアーキテクチャによれば、ノード装置は、通信バス２１０によって相互接続される以下の構成要素を備える：
‐プロセッサ、マイクロプロセッサ、マイクロコントローラまたはＣＰＵ（中央処理装置）２００。
‐ＲＡＭ（ランダムアクセスメモリ）２０１。
‐ＲＯＭ（読み出し専用メモリ）２０２。
‐ＨＤＤ（ハードディスクドライブ）２０３または記憶手段に記憶された情報を読み出すよう構成された他の任意の装置。
‐隣接ノード装置と、それぞれのリンクを介して通信を可能にする通信インタフェースのセット２０４。
【００５２】
ＣＰＵ２００は、ＲＯＭ２０２から、ＳＤ（セキュアデジタル）カードのような外部メモリから、またはＨＤＤ２０３から、ＲＡＭ２０１へとロードされた命令を実行することができる。ノード装置の電源が投入された後、ＣＰＵ２００は、ＲＡＭ２０１から命令を読み出し、これらの命令を実行することができる。これらの命令は、後述のアルゴリズムの少なくとも１つの、一部のまたはすべてのステップをＣＰＵ２００に実行させる、１つのコンピュータプログラムを形成する。
【００５３】
後述の各アルゴリズムの任意のステップおよびすべてのステップは、プログラム可能な計算機（ＰＣ（パーソナルコンピュータ）、ＤＳＰ（デジタル信号プロセッサ）またはマイクロコントローラ等）による命令の組またはプログラムの実行によるソフトウェアにおいて実装されてもよい。または、そうでなければ、機械または専用の構成要素（ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定アプリケーション向け集積回路）等）によるハードウェアにおいて実装されてもよい。
【００５４】
図３は、メッシュ通信ネットワークの各ノード装置によって、ストリーム予約リクエストを処理する時に実行されるアルゴリズムを概略的に表す。このアルゴリズムは、ノード装置１１２によって実行されると考えよう。
【００５５】
ノード装置１１２が図３のアルゴリズムを実行開始する時には、各ローカル転送テーブルはリンク状態ルーティングプロトコルの結果に従って記入されている。
【００５６】
ステップＳ３０１において、ノード装置１１２はストリーム予約リクエストを受信する。ストリーム予約リクエストは、データストリームが伝送されると想定されるデータ経路上のノード装置１１２の位置に応じて、別のノード装置から受信されるか、または話者装置１０１から受信される。図６および図７に関連して後に詳述するように、ストリーム予約リクエストは、当初は(originally)話者装置１０１によって生成され送信される。ストリーム予約リクエストは、ＲＥＱ（ブーリアン値「１」）にセットされたＲＥＱ／ＡＣＫフラグを含むメッセージである。
【００５７】
続くステップＳ３０２において、ノード装置１１２は、受信したストリーム予約リクエストに、ＯＫ（ブーリアン値「１」）にセットされたＲＳＶフラグが含まれるか否かをチェックする。受信したストリーム予約リクエストにＯＫにセットされたＲＳＶフラグが含まれる時には、ステップＳ３０４が実行され、そうでなければ、受信したストリーム予約リクエストにＫＯ（ブーリアン値「０」）にセットされたＲＳＶフラグが含まれる時には、ステップＳ３０３が実行される。
【００５８】
ステップＳ３０３において、ノード装置１１２は、ストリーム予約リクエストをそのまま伝搬させる。ストリーム予約リクエストは、聴者装置１０２を宛先(destination)として特定する宛先識別子と、そのストリーム予約リクエストが伝搬しなければならないデータ経路の識別子とを含む。この宛先識別子およびデータ経路識別子により、ノード装置１１２は、そのストリーム予約リクエストがノード装置１１２のどの出力ポートを介して伝搬しなければならないかを、ローカル転送テーブル（複数可）から検索できるようになる。図１Ｂに示す転送テーブルを考えると、この出力ポートは、第１列に聴者１０２の識別子が含まれ、第３列１５３にそのストリーム予約リクエストが伝搬しなければならないデータ経路の識別子が含まれる行の、第２列１５２に示される。ステップＳ３０３は、上流のノード装置(upstream node device)がストリーム予約リクエストを拒絶した時に実行されるということに留意すべきである。ステップＳ３０３が実行されると、アルゴリズムは終了する。
【００５９】
ステップＳ３０４において、ノード装置１１２は、ストリーム予約リクエストが正当なシーケンス番号を含むか否かをチェックする。正当なシーケンス番号とは、同じデータストリームについて以前に受信したリクエストに存在するどのシーケンス番号よりも大きいシーケンス番号である。受信したストリーム予約リクエストに含まれるシーケンス番号が正当である時には、ステップＳ３０５が実行され、そうでなければ（これはストリーム予約リクエストが順序を違えて受信されたことを意味する）、ステップＳ３０６が実行される。
【００６０】
ステップＳ３０６において、ノード装置１１２は、ＲＳＶフラグをＫＯにセットすることによりストリーム予約リクエストを修正する。その後、続くステップＳ３０７にいて、ノード装置１１２は、そのストリーム予約リクエストに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約リクエストに示されるデータ経路を介してそのストリーム予約リクエストを伝搬させる。ステップＳ３０７が実行されると、アルゴリズムは終了する。
【００６１】
ステップＳ３０５において、ノード装置１１２は、受信したストリーム予約リクエストが、ヌル資源必要性(null resources need)の指標を含むか否かをチェックする。受信したストリーム予約リクエストが、ヌル資源必要性の指標を含む時には（これは、そのリクエストがストリームテアダウンに関するものであるということを意味する）、ステップＳ３０８が実行され、そうでなければ、ステップＳ３１０が実行される。
【００６２】
ステップＳ３０８において、そのデータストリームが伝搬するのに経由するノード装置１１２の出力ポートに関連付けられた資源であって、以前にそのデータストリームに対して予約されまたは割り当てられていたものが存在する場合には、ノード装置１１２はそれを解放する。その後、続くステップＳ３０９において、ノード装置１１２は、そのストリーム予約リクエストに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約リクエストに示されるデータ経路を介して、そのストリーム予約リクエストを伝搬させる。ステップＳ３０９が実行されると、アルゴリズムは終了する。
【００６３】
ステップＳ３１０において、ノード装置１１２は、そのデータストリームが伝搬するのに経由する（すでにセットアップされたデータストリームであって、資源必要性の変更があるもの）か、またはそのデータストリームが伝搬するのに経由すると想定される（セットアップされるべきデータストリーム）、ノード装置１１２の出力ポートに関連付けられた利用可能な資源が、受信したストリーム予約リクエストにおいて示される資源の要求を満たすのに十分存在するか否かをチェックする。十分な資源が存在する場合には、ステップＳ３１１が実行され、そうでなければ、ステップＳ３０６が実行される。
【００６４】
好ましくは、所与のデータストリームについてノード装置１１２が受信した各ストリーム予約リクエストは、同じデータストリームかつ同じデータ経路に対する、いかなる先行するストリーム予約リクエストをもキャンセルする。
【００６５】
任意選択で、ステップＳ３１１において、ノード装置１１２は必要があればストリーム予約リクエストを修正する。実際に、ストリーム予約リクエストは、データストリームに対する資源必要性の指標に加え、資源限度（この資源限度を超えてデータストリームを受理する必要はない）の指標を含んでもよい。そのような資源限度は、伝送能力がなくなる最小限界（この最小限界未満では、話者装置１０１から聴者装置１０２へデータストリームを伝送する能力がなくなる）であってもよい。そのような資源限度は、伝送能力がなくなる最大限界（この最大限界を超えると、話者装置１０１から聴者装置１０２へデータストリームを伝送する能力がなくなる）であってもよい。それは、考慮される資源のタイプに依存する。資源必要性の指標と資源限度の指標との差は、ノード装置に対するある種の交渉マージンを表す。ノード装置１１２が資源必要性の指標によって表される要求を満たすことができず、資源限度もストリーム予約リクエストに指定されている時には、ノード装置１１２は、より制限された資源の予約（資源必要性の指標と資源限度の指標との間）をもって、データストリームセットアップを受理すると決定してもよい。この場合には、ノード装置１１２は、当該データストリームに対するノード装置１１２の資源予約能力を表すために、資源必要性の指標を修正する。
【００６６】
続くステップＳ３１２において、ノード装置１１２は、ストリーム予約リクエストに示される通りに、そのデータストリームが伝搬するのに経由する（すでにセットアップされたデータストリームであって、資源必要性の変更があるもの）か、またはそのデータストリームが伝搬するのに経由すると想定される（セットアップされるべきデータストリーム）ノード装置１１２の出力ポートに関連付けられた資源を、そのデータストリームに対して一時的に予約する。資源予約は、資源がいまだデータストリームに実際には(effectively)割り当てられておらず、当該資源がそのデータストリームに実際に割り当てられるようにその資源予約を有効化するにはさらなる確認が必要であるという点において、一時的なものである。
【００６７】
好ましい実施形態では、ノード装置１１２は、ステップＳ３１１において、事前に定義されるタイムアウト期間をもってタイマを始動させる。ノード装置１１２がストリーム予約リクエストに対する応答(acknowledgement)を受信することなくタイマがタイムアウトした時には、ノード装置１１２は当該データストリームに対してなされた一時的予約をキャンセルする。
【００６８】
その後、続くステップＳ３１３において、ノード装置１１２は、そのストリーム予約リクエストに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約リクエストにおいて示されるデータ経路を介して、そのストリーム予約リクエストを伝搬させる。ステップＳ３１３が実行されると、アルゴリズムは終了する。
【００６９】
図４は、ストリーム予約リクエストを処理するために聴者装置１０２によって実行されるアルゴリズムを概略的に表す。
【００７０】
ステップＳ４０１において、聴者装置１０２はストリーム予約リクエストを受信する。ストリーム予約リクエストは、図６および図７に関連して後に詳述するように、当初は(originally)話者装置１０１によって生成され送信され、図３に関連してすでに詳述したように、経路上のノード装置によって処理されている。
【００７１】
続くステップＳ４０２において、聴者装置１０２は、受信したストリーム予約リクエストが、ＯＫ（ブーリアン値「１」）にセットされたＲＳＶフラグを含むか否かをチェックする。受信したストリーム予約リクエストが、ＯＫにセットされたＲＳＶフラグを含む時には、ステップＳ４０４が実行され、そうでなければ、受信したストリーム予約リクエストが、ＫＯ（ブーリアン値「０」）にセットされたＲＳＶフラグを含む時には、ステップＳ４０３が実行される。
【００７２】
ステップＳ４０３において、聴者装置１０２はストリーム予約リクエストに対するストリーム予約レスポンスを生成する。生成されたストリーム予約レスポンスは、受信したストリーム予約リクエストと同じ内容を有する（ただし、ＲＥＱ／ＡＣＫフラグがＲＥＱでなくＡＣＫ（ブーリアン値「０」）にセットされており、ストリーム予約レスポンスが話者装置１０２を宛先として特定する宛先識別子を含むという点を除く）。ストリーム予約レスポンスは、そのストリーム予約レスポンスが伝搬しなければならないデータ経路（受信したストリーム予約リクエストが辿ったデータ経路に比較しての逆経路）の識別子を含む。ＳＰＢに従う経路は双方向であるので、ＳＰＢプロトコルに従って転送テーブルが構築される時には、ストリーム予約リクエストに含まれる経路識別子と同一の経路識別子がストリーム予約レスポンスにおいて用いられる。その後、聴者装置１０２は生成したストリーム予約レスポンスを話者装置１０１に向けて送信する。ステップＳ４０３が実行されると、アルゴリズムは終了する。
【００７３】
ＫＯにセットされたＲＳＶフラグを含むストリーム予約レスポンスは、対応するストリーム予約リクエストの否定応答(negative acknowledgement)であると考えられ、ＯＫにセットされたＲＳＶフラグを含むストリーム予約レスポンスは、対応するストリーム予約リクエストの肯定応答(positive acknowledgement)であると考えられる。
【００７４】
ステップＳ４０４において、聴者装置１０２は、ストリーム予約リクエストが正当なシーケンス番号を含むか否かをチェックする。正当なシーケンス番号とは、同じデータストリームについて以前に受信したリクエストに存在するどのシーケンス番号よりも大きいシーケンス番号である。受信したストリーム予約リクエストに含まれるシーケンス番号が正当である時には、ステップＳ４０５が実行され、そうでなければ（これはストリーム予約リクエストが順序を違えて受信されたことを意味する）、ステップＳ４０６が実行される。
【００７５】
ステップＳ４０６において、聴者装置１１２は、ＲＳＶフラグをＫＯにセットすることによりストリーム予約リクエストを修正する。その後、続くステップＳ４０７にいて、聴者装置１０２は、ストリーム予約リクエストに対するストリーム予約レスポンスを生成する。ストリーム予約レスポンスは、そのストリーム予約レスポンスが伝搬しなければならないデータ経路（受信したストリーム予約リクエストが辿ったデータ経路に比較しての逆経路）の識別子を含む。その後、聴者装置１０２は生成したストリーム予約レスポンスを話者装置１０１に向けて送信する。ステップＳ４０７が実行されると、アルゴリズムは終了する。
【００７６】
ステップＳ４０５において、聴者装置１０２は、受信したストリーム予約リクエストが、ヌル資源必要性の指標を含むか否かをチェックする。受信したストリーム予約リクエストが、ヌル資源必要性の指標を含む時には（これは、そのリクエストがストリームテアダウンに関するものであるということを意味する）、ステップＳ４０８が実行され、そうでなければ、ステップＳ４１０が実行される。
【００７７】
ステップＳ４０８において、聴者装置１０２は、そのデータストリームに割り当てられた、聴者装置１０２の内部資源（もし存在する場合には）を解放する。その後、続くステップＳ４０９において、聴者装置１０２は、ストリーム予約リクエストに対するストリーム予約レスポンスを生成する。ストリーム予約レスポンスは、そのストリーム予約レスポンスが伝搬しなければならないデータ経路（受信したストリーム予約リクエストが辿ったデータ経路に比較しての逆経路）の識別子を含む。その後、聴者装置１０２は生成したストリーム予約レスポンスを話者装置１０１に向けて送信する。ステップＳ４０９が実行されると、アルゴリズムは終了する。
【００７８】
ステップＳ４１０において、聴者装置１０２は、受信したストリーム予約リクエストにおいて示される資源必要性の要求を満たすのに十分な、利用可能な聴者装置１０２の内部資源が存在するか否かをチェックする。十分な資源が存在する場合には、ステップＳ４１１が実行され、そうでなければ、ステップＳ４０６が実行される。
【００７９】
任意選択で、ステップＳ４１１において、必要があれば、聴者装置１０２はストリーム予約リクエストを修正する。実際に、ストリーム予約リクエストは、データストリームに対する資源必要性の指標に加え、資源限度（この資源限度を超えてデータストリームを受理する必要はない）の指標を含んでもよい。図３のアルゴリズムにおける各ノード装置について、聴者装置１０２は、聴者装置１０２の内部資源の制限に起因して、ストリーム予約リクエストに含まれていた資源必要性の指標を修正する必要があるかもしれない。
【００８０】
続くステップＳ４１２において、聴者装置１０２は、受信したストリーム予約リクエストが関連するデータストリームを処理するために内部資源を割り当てる。その後、続くステップＳ４１３において、聴者装置１０２はそのストリーム予約リクエストに対するストリーム予約レスポンスを生成する。ストリーム予約レスポンスは、そのストリーム予約レスポンスが伝搬しなければならないデータ経路（受信したストリーム予約リクエストが辿ったデータ経路に比較しての逆経路）の識別子を含む。その後、聴者装置１０２は生成したストリーム予約レスポンスを話者装置１０１に向けて送信する。ステップＳ４１３が実行されると、アルゴリズムは終了する。
【００８１】
図５は、ストリーム予約レスポンスを処理するために各ノード装置によって実行されるアルゴリズムを概略的に表す。このアルゴリズムはノード装置１１２によって実行されると考えよう。
【００８２】
ステップＳ５０１において、ノード装置１１２はストリーム予約レスポンスを受信する。ストリーム予約レスポンスは、データストリームが伝送されると想定されるデータ経路上のノード装置１１２の位置に応じて、別のノード装置または聴者装置１０２から受信される。図４に関連してすでに詳述したように、ストリーム予約レスポンスは、当初は聴者装置１０２によって生成され送信される。ストリーム予約レスポンスは、ＡＣＫ（ブーリアン値「０」）にセットされたＲＥＱ／ＡＣＫフラグを含むメッセージである。
【００８３】
続くステップＳ５０２において、ノード装置１１２は、受信したストリーム予約レスポンスのＲＳＶフラグがＯＫ（ブーリアン値「１」）にセットされている否かをチェックする。ＲＳＶフラグがＯＫにセットされている時には、ステップＳ５０５が実行され、そうでなければ、ＲＳＶフラグがＫＯ（ブーリアン値「０」）にセットされている時には、ステップＳ５０３が実行される。
【００８４】
ステップＳ５０３において、ノード装置１１２は、そのデータストリームに対してステップＳ３１２において予約された資源（もし存在する場合には）を解放する。その後、ステップＳ５０４において、ノード装置１１２は、ストリーム予約レスポンスをそのまま伝搬させる。ストリーム予約レスポンスは、宛先として話者装置１０１を特定する宛先識別子と、そのストリーム予約レスポンスが伝搬しなければならないデータ経路の識別子とを含む。ステップＳ５０４が実行されると、アルゴリズムは終了する。
【００８５】
ステップＳ５０５において、ノード装置１１２は、ストリーム予約リクエストが正当なシーケンス番号を含むか否かをチェックする。受信したストリーム予約リクエストに含まれるシーケンス番号が正当である時には、ステップＳ５０８が実行され、そうでなければ（これはストリーム予約レスポンス（またはそのストリーム予約レスポンスが参照するストリーム予約リクエスト）が順序を違えて受信されたことを意味する）、ステップＳ５０６が実行される。
【００８６】
ステップＳ５０６において、ノード装置１１２は、ＲＳＶフラグをＫＯにセットすることによりストリーム予約レスポンスを修正する。その後、続くステップＳ５０７にいて、ノード装置１１２は、そのストリーム予約レスポンスに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約レスポンスに示されるデータ経路を介してそのストリーム予約レスポンスを伝搬させる。ステップＳ５０７が実行されると、アルゴリズムは終了する。
【００８７】
ステップＳ５０８において、ノード装置１１２は、受信したストリーム予約リクエストが、ヌル資源必要性の指標を含むか否かをチェックする。受信したストリーム予約リクエストが、ヌル資源必要性の指標を含む時には（これは、そのリクエストがストリームテアダウンに関するものであるということを意味する）、ステップＳ５０９が実行され、そうでなければ、ステップＳ５１０が実行される。
【００８８】
ステップＳ５０９において、ノード装置１１２は、そのストリーム予約リクエストに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約リクエストに示されるデータ経路を介して、そのストリーム予約リクエストを伝搬させる。ステップＳ５０９が実行されると、アルゴリズムは終了する。一変形例では、ステップＳ３０８において資源を解放する代わりに、ノード装置１１２は、ステップＳ５０９において当該資源を解放する。すなわち、ノード装置１１２は、話者装置１０１から対応する要求を受信した時に資源を解放する代わりに、聴者装置１０２から肯定応答を受信した時に実際にその資源を解放する。
【００８９】
ステップＳ５１０において、ノード装置１１２は、ステップＳ３１２においてそのデータストリームに対して予約されていた資源を実際に割り当てる。その後、続くステップＳ５１１において、ノード装置１１２は、そのストリーム予約リクエストに含まれる宛先識別子およびデータ経路識別子を用い、そのストリーム予約リクエストに示されるデータ経路を介して、そのストリーム予約リクエストを伝搬させる。ステップＳ５１１が実行されると、アルゴリズムは終了する。ノード装置１１２は、ステップＳ３１２においてそのデータストリームに対して一時的に予約されていた資源の一部のみを実際に割り当ててもよい。実際に、ストリーム予約リクエストおよび対応するストリーム予約レスポンスは、データストリームに対する資源必要性の指標に加え、資源限度（この資源限度を超えてデータストリームを受理する必要はない）の指標を含んでもよい。この場合には、ノード装置１１２は、ステップＳ３１２において、ノード装置１１２の下流に配置されたノード装置の能力からみて、および／または聴者装置１０２の能力からみて、多すぎる資源を予約していた可能性がある。
【００９０】
図６は、ストリームセットアップ命令を処理するために話者装置１０１によって実行されるアルゴリズムを概略的に表す。
【００９１】
ステップＳ６０１において、話者装置１０１は、ストリームセットアップ命令を受信または取得する。言い換えると、話者装置１０１は、当該話者装置１０１から聴者装置１０２への新たなデータストリーム伝送をセットアップするよう命令されるか、または、当該話者装置１０１から聴者装置１０２への既存のデータストリームに割り当てられた資源を調整するよう命令される。たとえば、そのようなストリームセットアップ命令は、第１のデータ経路から第２のデータ経路へとデータストリームを切り替えるための決定の結果として得られる。この場合には、話者装置１０１は、図６のアルゴリズムを実行することによって、第２のデータ経路に必要な資源が割り当てられることを、メッシュ通信ネットワークを介して要求し、その後、図７のアルゴリズムを実行することによって、第１のデータ経路に対して以前に割り当てられていた資源が解放されることを、メッシュ通信ネットワークを介して要求する。
【００９２】
一実施形態では、話者装置１０１は、当該話者装置１０１の内部資源がそのストリームセットアップ命令の資源要求を満たせるか否かと、そのデータストリームが伝搬するのに経由する（すでにセットアップされたデータストリームであって、資源必要性の変更があるもの）か、そのデータストリームが伝搬するのに経由すると想定される（セットアップされるべきデータストリーム）、話者装置１０１の出力ポートに関連付けられた、利用可能な資源が、そのストリームセットアップ命令の資源要求を満たすのに十分存在するか否かとをチェックする。ストリームセットアップ命令の要求を満たすのに十分な資源が存在しない時には、話者装置１０１はそのストリームセットアップ命令を拒絶し、そうでなければ、話者装置１０１はそのストリームセットアップ命令に従い、当該データストリームに対して資源を割り当てる。一変形例では、話者装置１０１は当該資源を一時的にのみ予約し、その資源予約を確認しその資源を実際に当該データストリームに割り当てるための聴者装置１０２からの肯定応答の受信を待つ。
【００９３】
続くステップＳ６０２では、話者装置１０１は、すでにデータストリームがセットアップされたデータ経路またはデータストリームがセットアップされると想定されるデータ経路を介して、ストリーム予約リクエスト（ステップＳ６０１において受信したストリームセットアップ命令に対応するもの）を送信する。ストリーム予約リクエストを送信する時に、話者装置１０１は事前に定義されたタイムアウト期間をもってタイマを始動させる。
【００９４】
続くステップＳ６０３において、話者装置１０１は、ストリーム予約リクエストに応答してストリーム予約レスポンスが受信されたか否かをチェックする。話者装置１０１によってそのようなストリーム予約レスポンスが受信されていた時には、ステップＳ６０６が実行され、そうでなければ、ステップＳ６０４が実行される。
【００９５】
ステップＳ６０４において、話者装置１０１は、ステップＳ６０２で始動したタイマがタイムアウトしたか否かをチェックする。タイマがタイムアウトした時には、ステップＳ６０５が実行され、そうでなければ、ステップＳ６０３が実行される。
【００９６】
ステップＳ６０５において、話者装置１０１は、当該データストリームについてヌル資源必要性を示すストリーム予約リクエストを送信する。言い換えると、話者装置１０１は、そのデータストリームのデータ経路上の各ノード装置のうちの装置および聴者装置１０２に対し、ステップＳ６０２において送信されたストリーム予約リクエストの処理に起因して一時的に予約されまたは割り当てられた資源を解放するよう要求する。ヌル資源必要性を示すストリーム予約リクエストが各ノード装置によってどのように処理されるかの詳細については、図４のアルゴリズムを参照すべきである。ステップＳ６０５が実行されると、アルゴリズムは終了する。
【００９７】
ステップＳ６０６において、話者装置１０１は、受信したレスポンスが肯定的なものであるか否かをチェックする。すなわち、話者装置１０１は、受信したレスポンスに含まれるＲＳＶフラグがＯＫ（肯定的レスポンス）にセットされているか、またはＫＯ（否定的レスポンス）にセットされているかをチェックする。受信したレスポンスが肯定的なものである時には、ステップＳ６０７が実行され、そうでなければ、ステップＳ６０５が実行される。
【００９８】
ステップＳ６０７において、話者装置１０１は、（ステップＳ６０１においてすでに実行されていない場合には）そのデータストリームに対して実際に資源を割り当てる。その後、話者装置１０１は、ステップＳ６０２において送信されたストリーム予約リクエストにおいて示されていたデータ経路を介して、そのデータストリームの送信をアクティベートする。
【００９９】
図７は、ストリームテアダウン命令を処理するために話者装置１０１によって実行されるアルゴリズムを概略的に表す。
【０１００】
図７のアルゴリズムはステップＳ７０１において開始する。続くステップＳ７０２において、話者装置１０１は、ストリームテアダウン命令を受信または取得する。言い換えると、話者装置１０１は、当該話者装置１０１から聴者装置１０２へのデータストリーム伝送を終了する(terminate)よう命令される（たとえばあるデータ経路から別のデータ経路へとデータストリームを切り替えるコンテキストにおいて）。
【０１０１】
続くステップＳ７０３において、話者装置１０１は、関連するデータ経路を介したデータストリームの伝送をデアクティベートする。
【０１０２】
続くステップＳ７０４において、話者装置１０１は、当該データストリームに対してヌル資源必要性を示すストリーム予約リクエストを送信する。言い換えると、話者装置１０１は、そのデータストリームのデータ経路上の各ノード装置のうちの装置および聴者装置１０２に対し、当該データストリームに割り当てられた資源を解放するよう要求する。ストリーム予約リクエストを送信する時に、話者装置１０１は、事前に定義されたタイムアウト期間をもってタイマを始動させる。
【０１０３】
続くステップＳ７０５において、話者装置１０１は、ストリーム予約リクエストに応答してストリーム予約レスポンスが受信されたか否かをチェックする。話者装置１０１によってそのようなストリーム予約レスポンスが受信されていた時には、ステップＳ７０７が実行され、そうでなければ、ステップＳ７０６が実行される。
【０１０４】
ステップＳ７０６において、話者装置１０１は、ステップＳ７０４で始動したタイマがタイムアウトしたか否かをチェックする。タイマがタイムアウトした時には、ステップＳ７０４が繰り返され、そうでなければ、ステップＳ７０５が繰り返される。好ましくは、話者装置１０１は、当該データストリームを終了するためにステップＳ７０４の連続的実行(successive occurrence)においてストリーム予約リクエストを送信するための試行を、最大でＮ回実行する。Ｎは事前に定義された非ヌルの正の整数である。
【０１０５】
ステップＳ７０７において、話者装置１０１は、受信したレスポンスが肯定的なものであるか否かをチェックする。すなわち、話者装置１０１は、受信したレスポンスに含まれるＲＳＶフラグがＯＫ（肯定的レスポンス）にセットされているか、またはＫＯ（否定的レスポンス）にセットされているかをチェックする。受信したレスポンスが肯定的なものである時には、ステップＳ７０８においてアルゴリズムが終了し、そうでなければ、ステップＳ７０４が繰り返される。
【０１０６】
ここで、所与のデータストリームについて話者装置１０１がストリーム予約リクエストを送信するたびに、話者装置１０１は、当該ストリーム予約リクエストに含まれるシーケンス番号を、（好ましくは１単位だけ）インクリメントするということに留意すべきである。
【０１０７】
さらに、話者装置１０１によって送信される通りの各ストリーム予約リクエストは、ＲＳＶフラグ（デフォルトでＯＫにセットされる）と、ＲＥＱ／ＡＣＫフラグ（デフォルトでＲＥＱにセットされる）とを含む。話者装置１０１によって送信される通りの各ストリーム予約リクエストは、さらに、そのストリーム予約リクエストが適用されるデータストリームを特定するデータストリーム識別子と、そのストリーム予約リクエストの発信元（originator)として話者装置１０１を特定する（したがって、結果として得られるストリーム予約レスポンスが伝搬しなければならない宛先の装置を特定する）話者識別子とを含む。
【０１０８】
話者装置１０１によって送信される通りの各ストリーム予約リクエストは、さらに、そのストリーム予約リクエストの宛先として聴者装置１０２を特定する聴者識別子と、そのストリーム予約リクエストが伝搬しなければならないデータ経路を特定するデータ経路識別子とを含む。
【０１０９】
話者装置１０１によって送信される通りの各ストリーム予約リクエストは、さらに、そのデータストリームの伝送に対する資源必要性の指標を含む。当該指標がヌルである時には、そのストリーム予約リクエストは、関連するデータストリームをテアダウンするために用いられるということを意味する。
【０１１０】
話者装置１０１によって送信される通りの各ストリーム予約リクエストは、さらに他のパラメータ（最大資源限界および最小資源限界等）を含んでもよい。
【０１１１】
一実施形態では、聴者装置１０２は、データストリームをトランスポートするために話者装置１０１によって提案された複数のデータ経路のうちから、適切なデータ経路（複数可）を選択する役割を果たす。この場合には、話者装置は、複数のストリーム予約リクエストを、それぞれ区別されたデータ経路を介して送信する。その後、聴者装置１０２は、当該複数のストリーム予約リクエストを受信する。上述のように、ストリーム予約リクエストは、データストリームに対する資源必要性の指標に加え、資源限度（この資源限度を超えてデータストリームを受理する必要はない）の指標を含んでもよい。したがって、データ経路上のノード装置が、それぞれストリーム予約リクエストにおける資源必要性指標を修正した可能性がある。したがって、聴者装置１０２は各ストリーム予約リクエストにおける資源必要性指標に従い、最良の性能を示すデータ経路（複数可）を選択する。聴者装置１０２は、ただ１つのデータ経路のみを選択してもよい。２つ以上のデータ経路を選択することにより、話者装置１０１は、そのデータストリームについて複数のデータ経路を用いてロードバランシングを実行できるようになる。２つ以上のデータ経路を選択することにより、話者装置１０１は、そのデータストリームについてどのデータ経路（複数可）を用いるかの最終決定が行えるようになる。その後、聴者装置１０２は、選択されたデータ経路（または選択されたデータ経路のうち１つ）に対応するストリーム予約リクエストそれぞれに対し、肯定的なストリーム予約レスポンスを、話者装置１０１に向けて送信し、別のデータ経路に対応するストリーム予約リクエストそれぞれに対し、否定的なストリーム予約レスポンスを、話者装置１０１に向けて送信する。話者装置１０１は、事前に定義された数（聴者装置１０２に既知）のストリーム予約リクエストを、区別されたデータ経路のそれぞれについて送信するか、または、聴者装置１０２は、事前に定義されたタイムアウトを持つタイマを実装し、当該データストリームに対するシーケンス中の最初のストリーム予約リクエストを受信した時にこのタイマを始動させる。その後、タイマがタイムアウトした時には、聴者装置１０２は当該データストリームに対するすべてのストリーム予約リクエストが受信されたと考える。
【図１Ａ】
0006029763.tif 000002
【図１Ｂ】
0006029763.tif 000003
【図２】
0006029763.tif 000004
【図３】
0006029763.tif 000005
【図４】
0006029763.tif 000006
【図５】
0006029763.tif 000007
【図６】
0006029763.tif 000008
【図７】
0006029763.tif 000009