JP2007527160A - 拡張eMFCを用いたアドホックメッシュネットワークのための高信頼メッセージ配信方法 - Google Patents
拡張eMFCを用いたアドホックメッシュネットワークのための高信頼メッセージ配信方法 Download PDFInfo
- Publication number
- JP2007527160A JP2007527160A JP2006552352A JP2006552352A JP2007527160A JP 2007527160 A JP2007527160 A JP 2007527160A JP 2006552352 A JP2006552352 A JP 2006552352A JP 2006552352 A JP2006552352 A JP 2006552352A JP 2007527160 A JP2007527160 A JP 2007527160A
- Authority
- JP
- Japan
- Prior art keywords
- multicast
- data
- node
- message
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/28—Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
- H04W40/32—Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
データ配信サービスDDSはアドホックモバイルメッシュネットワーク(12)内のノード(14)間で情報を転送する。DDSは、トラフィックを最小限にするために再送信要求を合体させる技術をはじめとして、多くの異なる新規な特徴を含んでおり、イベント指向通信の信頼性を適切なレベルにすることができ、多くのノード(14)によって使用される再送信をマルチキャストすることができ、マルチキャストトラフィックのためのその他の最適化を行うことができる。拡張マルチキャスト転送キャッシュ(eMFC)は、モバイルメッシュネットワーク(12)におけるマルチキャスト伝送をサポートしており、DDSと組み合わせて用いることができる。拡張MFCは、メッシュネットワークに特有のメッシュノード移動性、サービス品質、およびセキュリティ要求をサポートするように設計されている。これらの目的を達成するために、拡張MFCは、ユニキャストルーティングプロトコル、マルチキャストアウェアアプリケーション、および配信DDSおよびeMFCサービスによって保持されるグローバル状態から引き出す。eMFCは、eMFC固有のマルチキャストパケットヘッダを用いてこの得られたグローバル状態を配信する。
【選択図】図1
【選択図】図1
Description
本出願は、2004年2月9日に提出された米国仮特許出願60/543,352および2004年2月9日に提出された米国仮特許出願60/543,353に基づく優先権を主張するものである。
図1は、多数のホップ、リンク、ノード14等を介してノードBと通信するノードAを有する典型的なメッシュネットワーク12を示している。リンク14は、無線モデム、ネットワークルータ、スイッチ、携帯情報端末(PDA)、携帯電話、またはメッシュネットワーク12内で通信可能なその他の種類の移動処理装置を含み得るポータブルコンピュータのような有線または無線移動通信装置の任意の組み合わせとすることができる。
メッシュネットワーク12内のすべてのネットワークノード14は、インターネットプロトコル(IP)を用いて互いにメッセージを送信することにより通信を行う。それぞれのメッセージは、1以上のマルチキャストユーザデータグラムプロトコル(UDP)パケットからなる。それぞれのノード14は、同一のマルチキャストグループの一部となり得るメンバである1以上のネットワークインタフェイスを含んでいる。それぞれのノードは、メッセージのソースと一群の指定受信者の双方を特定するために用いられる対応ノードIDを有している。メッセージはマルチキャストされるため、ルーティングの詳細はアプリケーションには見えない。
固定通信の信頼性を得るためには、直接肯定応答(ACK)ベースの設計を用いた伝送制御プロトコル(TCP)が一般に使用されるが、多数のピアを有するマルチキャストシナリオにおいては、否定応答(NACK)ベースの設計がより効率的なアプローチである。すなわち、データがうまく伝送されたときには、その事実を肯定するために付加的な通信が必要とされず、受領通知がない。パケットロスが検知されると、ソースにNACKが返送され、再伝送を要求する。連続パケットの欠落や不足を検出するために連続番号が使用される。本発明はこのようなNACKベースの設計によるものである。
メッシュネットワークにおいては、異なるノード14間で所定のデータ整合性を維持する必要がある。例えば、どの装置が同一のマルチキャストグループの一部をなしているのかをすべてのノード14が把握している必要がある場合がある。これは、ノード14のすべてが同一のバージョンの異なるマルチキャストテーブルを有していることを要求する。これは、典型的には、ノード14間でデータを交換した後、データがうまく受信できなかった場合にNACK応答とともに返信を行うことにより行われる。異なるノード14間でデータ整合性を維持するためには、相当量の帯域幅と処理資源が必要となる。異なるモバイルノード間でデータ整合性を維持するための現在の技術は非効率である。
近代インターネットにおけるコンピュータは、よく知られたルーティングメカニズムに基づいて共通の言語を用いて通信を行っている。インターネットにおけるルータは、すべての既知のコンピュータへの最適経路を算出し、そのようなトラフィックを管理する入出力ユニットの役割を果たす。これらの計算の結果は、転送テーブルとして知られているものの中に格納される。この転送テーブルは、考えられる宛先のそれぞれに対して次のホップを特定するものである。次のホップは、特定の宛先アドレスに対するトラフィックの転送先にしなければならないコンピュータである。
宛先がルータに知られていないときにトラフィックの転送先としての好ましいルータとしてデフォルトルータが指定されることがしばしばある。また、ホストとして知られる、ルータではないコンピュータも転送テーブルを有している。典型的には、ホストは1つのインタフェイスによりインターネットに接続され、指定されたデフォルトルータは多くのアドレスを扱うので、従来のインターネットにおいては、ホストの転送テーブルはルータの転送テーブルよりも非常に簡単なものである傾向がある。これらの前提は、モバイルメッシュネットワークにおけるホストに対しては当てはまらない。図12および13は、ノードAがユニキャスト転送を行う場合のネットワークトポロジを示している。表1は、図12および13に示された4ノードネットワークトポロジー用のユニキャスト転送テーブルを示している。
インターネットアドレスは、インターネットプロトコルバージョン4(IPv4)で特定される32ビット整数アドレスまたはインターネットプロトコルバージョン6(IPv6)で特定される128ビットのアドレスである。www.packethop.comのような人間が読めるアドレスは、ディレクトリネームサーバ(DNS)によってその等価な整数に変換される。これらのアドレスは一般にユニキャストアドレスとして知られている。ユニキャストアドレスは、インターネット上の一意なコンピュータを特定するものである。しかしながら、インターネットアドレスの一部はマルチキャスト用に予約されている。
マルチキャストアドレスは、1つのコンピュータから一群のコンピュータに1対多の通信を行うために使用される。マルチキャストアドレスに送られたトラフィックは、1つのコンピュータに到達するのではなく、多くのコンピュータに到達する。マルチキャストを使用した適用例としては、教室での授業やビデオ会議などがある。
マルチキャストトラフィックを受信するルータは、同時にそのマルチキャストトラフィックを1以上の宛先に転送する必要がある。そのために、ルータは、マルチキャスト転送キャッシュ(MFC)として一般に知られている特定のバージョンの転送テーブルを使用する必要がある。マルチキャスト転送キャッシュの動作例が図14に示されている。ノードB、C、およびDからなるマルチキャストグループは、単一のマルチキャストアドレスGによって表される。表2はノードAのマルチキャスト転送キャッシュを示しており、表3はノードBのマルチキャスト転送キャッシュを示している。
転送テーブルまたはマルチキャスト転送キャッシュを算出するために、ルータは、まず、ルーティングプロトコルを用いて既知の宛先への経路を算出しなければならない。そのようなルーティングプロトコルはいくつか存在するが、いずれも1736年のケーニヒスベルグの橋の問題に関するオイラーの最初の研究に続く数学者によって確立された周知のグラフ理論アルゴリズムに基づいている。
これらのルーティングアルゴリズムは、リンク状態および距離ベクタアルゴリズムに大別することができる。距離ベクタアルゴリズムは、宛先への最短経路距離を通信中のルータ間で交換するものである。この最短経路距離情報に基づいて、それぞれのルータは独立してその転送テーブルを算出する。距離ベクタベースのルーティングアルゴリズムの主な例としては、Routing Information Protocol(RIP)がある。これに対して、リンク状態ルーティングプロトコルは、ネットワークのトポロジーをすべてのノードに配信するものであり、それぞれのノードは独立してその転送テーブルを算出する。リンク状態アルゴリズムの主な例としては、Open Shortest Path First(OSPF)がある。リンク状態ベースのルーティングプロトコルは、インターネットで最も広く利用されている。
ルーティングプロトコルがすべての宛先への最短経路を算出すると、ルータがその転送テーブルを更新する場合がある。通常、これらの更新は、転送テーブルの変化を生じるようにネットワークトポロジが変化するたびに起きる。同様の方法で、ルータは、マルチキャストソースおよび受信者に関する利用可能な情報に基づいてマルチキャスト転送キャッシュを更新しなければならない。マルチキャスト転送キャッシュを更新するために、ルータは、マルチキャストルーティングプロトコルを用いる。マルチキャストルーティングプロトコルは、先に算出されたユニキャストルーティングテーブルを用いてもよいし、用いなくてもよい。例えば、Protocol Independent Multicast(PIM)プロトコルは、ユニキャストルーティングプロトコルにより算出された結果を利用し、Distance Vector Distance Multicast Routing Protocol(DVMRP)は、それ自身の内部ユニキャストルーティングプロトコルを利用する。いずれの場合も、マルチキャストルーティングプロトコルは、各ルータでマルチキャスト転送キャッシュを更新する。
マルチキャスト受信者であるインターネットホストは、Internet Group Management Protocol(IGMP)を用いて隣接するルータに対して自分自身を特定する。その後、各ルータは、このマルチキャストグループ受信者メンバシップ情報をそのマルチキャストルーティングプロトコルを用いてピアルータに配信する。マルチキャストソースであるインターネットホストは、適切なマルチキャストグループアドレス宛のマルチキャストパケットを隣接するルータに送信するだけである。そして、各ルータは、そのマルチキャスト転送キャッシュに記述されているように、これらのマルチキャストパケットを転送する責任を負う。
モバイルメッシュネットワークは、モバイルアドホックネットワーク(MANET)としても知られている。例えば、モバイルメッシュネットワークは、通信ノードが常に移動する無線装置であるような緊急サービスの人員によって使用される。インターネット技術特別調査委員会(IETF)は、モバイルメッシュネットワークルーティング問題に取り組むためにMANETワークグループを設立している。
このIETFのMANET作業部会からは、アドホックルーティングプロトコルと呼ばれる、モバイルメッシュネットワークに固有の4つのユニキャストルーティングプロトコルが出てきた。Topology Dissemination Based on Reverse-Path Forwarding(TBRPF)、Link State Routing Protocol(OLSR)、Ad hoc On-Demand Distance Vector Routing(AODV)、およびDynamic Source Routing Protocol for Mobile Ad Hoc Networks(DSR)である。これらのプロトコルのうち3つは、実験的なRequest For Comment(RFC)ステータス(それぞれRFC3684、3626、3561)まで進んでいる。4つ目のアドホックプロトコルDSRは、まもなく実験的RFCにまで進むと考えられている。マルチキャストアドホックプロトコルはまだ標準化されていない。
メッシュマルチキャスト転送キャッシュ
モバイルメッシュネットワークは、従来のインターネットネットワークと多くの点において異なっている。マルチキャスト転送キャッシュとの関連性での相違点は、移動性があること、ホストとルータとの間の区別がないこと、サービス品質(QoS)の要求があること、およびセキュリティ上の要求があることである。
モバイルメッシュネットワークは、従来のインターネットネットワークと多くの点において異なっている。マルチキャスト転送キャッシュとの関連性での相違点は、移動性があること、ホストとルータとの間の区別がないこと、サービス品質(QoS)の要求があること、およびセキュリティ上の要求があることである。
ノードと呼ばれるモバイルメッシュネットワーク内のコンピュータは、常にその位置とピアノードへの接続を変える可能性がある。より一般的な有線コンピュータネットワーク内のコンピュータと異なり、メッシュノードは、場所、IPアドレス、およびピアへの接続などの属性が常に変化する可能性がある。これは、従来のインターネットプロトコルおよびネットワークの前提の多くを崩すものである。
メッシュノード移動性による2つ目の帰結は、一般に、図15に示されるような「隠れノード問題」とも呼ばれている。隠れノード問題とは、すべてのメッシュノードが同一の無線インタフェイスを通じて互いのトラフィックを聞くことができないことをいう。これは、有線インタフェイスが、接続された近隣ノードからすべてのトラフィックを聞くことができることと対照的である。従来のマルチキャスト転送キャッシュは、変化するIPアドレスや隠れノード問題が生じるインタフェイスのいずれをもサポートすることができない。例えば、図15において、ノードCにはノードAの伝送が聞こえず、このためノードCの伝送のスケジューリングが、ノードAから受信するつもりであるノードBと干渉する場合が生じる。この意味で、ノードCはノードAから隠れており、その逆も同じである。
従来のインターネットにおいては、コンピュータは、そのトポロジーに関する相対的な位置によってルータまたはホストとして見ることができる。ルータはトラフィックをピアに転送するが、ホストは転送しない。典型的なコンピュータユーザがルータを使用することはあったとして極めてまれなことである。これは、ラップトップコンピュータや携帯情報端末(PDA)、パーソナルコンピュータのようにユーザに最も多く使用されているコンピュータに適用される多くの設計上の前提に現れている。例えば、典型的には、マルチキャスト転送キャッシュは、Windows XPやCEのオペレーティングシステムのようなエンドユーザのプラットフォームにおいては利用することができない。しかしながら、モバイルメッシュネットワークにおいては、すべてのノードは、定義上、ルータであり、またホストになることもある。すなわち、それぞれのノードはトラフィックをピアに転送することができなければならない。これは、メッシュノードに関してホストとルータとの区別を曖昧にする。
モバイルメッシュネットワーク無線インタフェイスには、サービス品質(QoS)に関して、有線インタフェイス等価物よりも大きな障害物がある。結果として、モバイルメッシュネットワークのように、インターネットの一部においてQoSは重要であり続ける。しかしながら、従来のマルチキャスト転送キャッシュは、QoSをほとんどまたは全くサポートしていない。また、無線モバイルメッシュネットワークトラフィックは、従来の有線ネットワークよりも傍受されやすい。このように傍受しやすいがために、モバイルメッシュネットワークトラフィックは、トランスポートレベルにおいても、より入念に保護されていなければならない。
これら4つの理由により、従来のマルチキャスト転送キャッシュ技術はモバイルメッシュネットワークノードの要求を満たしていない。本発明は、この問題および他の同様の問題に取り組むものである。
データ配信サービス(DDS)は、アドホックモバイルメッシュネットワーク内のノード間で情報を転送する。DDSは、トラフィックを最小限にするために再送信要求を合体させる技術をはじめとして、多くの異なる新規な特徴を含んでおり、イベント指向通信の信頼性を適切なレベルにすることができ、多くのノードによって使用される再送信をマルチキャストすることができ、マルチキャストトラフィックのためのその他の最適化を行うことができる。
DDSは、通信のためにUDPデータグラムを用いる。通信は、中央認証装置や記憶装置を必要としない正にピアツーピア方式により行われ、純粋にアドホックとすることができ、中央サーバに依存することがない。通常の動作においては従来の肯定パケットの必要性もなくなる。このようなNACKベースのプロトコルは、従来のTCPのようなアプローチに比べより効率的である。
DDSは、非常に長い回復間隔に従いやすく、かなりの期間中カバレッジを失う無線ネットワーク上のノードとよくマッチし、常に変化するネットワークトポロジにもうまく作用する。また、失った無線カバレッジに対応する期間にわたって信頼性を扱うこともできる。
拡張マルチキャスト転送キャッシュ(eMFC)は、モバイルメッシュネットワークにおけるマルチキャスト伝送をサポートしている。拡張MFCは、メッシュネットワークに特有のメッシュノード移動性、サービス品質、およびセキュリティ要求をサポートするように設計されている。これらの目的を達成するために、拡張MFCは、ユニキャストルーティングプロトコル、マルチキャストアウェアアプリケーション、および配信サービスによって保持されるグローバル状態から引き出す。eMFCは、eMFC固有のマルチキャストパケットヘッダを用いてこの得られたグローバル状態を配信する。eMFCヘッダ中に含まれる情報は、各メッシュノードにおいてマルチキャストトラフィック統計を収集し取得するためにも用いられる。上位互換性を維持するために、eMFC固有のヘッダを有しないマルチキャストトラフィックもMFCによって敬意が払われる。従来のインタフェイスタイプだけではなく、ラジオインタフェイスのようなモバイルメッシュネットワーク特有のインタフェイスもサポートされる。認証および暗号化技術を用いることによりセキュリティが維持される。
本発明の上記目的、特徴、効果、およびその他の目的、特徴、効果は、添付図面を参照して説明する本発明の好ましい実施形態についての以下の詳細な説明から容易に理解できるであろう。
図2は、先に図1に示されたメッシュネットワーク12と同様のメッシュネットワーク20において動作可能な数個のノード22を示している。ノード22は、無線または有線ピアツーピアメッシュ通信を行う任意のタイプの移動装置とすることができる。例えば、無線モデム付きのパーソナルコンピュータ、携帯情報端末(PDA)、携帯電話などである。他のノード22は、有線または無線IPネットワークを通して他のノードと通信を行う無線ルータとすることができる。
移動装置22は、ネットワーク20に入ったり、ネットワーク20から出たりとアドホックに移動することができ、他のノードとのピアツーピア通信を動的に再確立することができる。それぞれのノード22A、22B、および22Cが異なるデータ項目26に対して一部またはすべてが同一のバージョンでなければならない場合がある。一例においては、データ項目26を、ノード22が他のノードと通信するために使用される所定のコンフィグレーションデータとすることができる。例えば、コンフィグレーションデータ26は、ノードプロファイル情報やビデオ設定などを含んでいてもよい。他の例においては、データ26は、同一のマルチキャストグループのメンバであるノードを特定するマルチキャストルーティングテーブルのようなマルチキャスト情報を含むことができる。
データ配信サービス
データ配信サービス(DDS)24は、異なるノード22におけるデータ26間の整合性をより効率的に維持するために使用される。ソースノード22Aは、そのローカルデータ26Aを内部的に更新した後、他のノード22Bおよび22Cにデータ変更を通知するデータメッセージ28を送出することができるノードの1つとして定義される。受信者ノード22Bおよび22Cは、ソースノード22Aによって内部的になされた変更により更新が必要となったノードとして定義される。
データ配信サービス(DDS)24は、異なるノード22におけるデータ26間の整合性をより効率的に維持するために使用される。ソースノード22Aは、そのローカルデータ26Aを内部的に更新した後、他のノード22Bおよび22Cにデータ変更を通知するデータメッセージ28を送出することができるノードの1つとして定義される。受信者ノード22Bおよび22Cは、ソースノード22Aによって内部的になされた変更により更新が必要となったノードとして定義される。
DDS24は、異なる種々の方法で使用される図3に示されるようなソースデータパケット38を送信および受信する。例えば、ソースノード22Aが他のノード22Bおよび22Cにデータ26Aの変更または現在のステータスを通知するステータスまたはデータメッセージ28をマルチキャストするためにソースデータパケット38を使用することができる。マルチキャストステータスまたはデータメッセージ28に応答して、受信者ノード22Bまたは22Cは、否定応答(NACK)メッセージ32をマルチキャストすることができる。
例えば、受信者ノード22Cは、データ26Cがデータ26A中のデータ項目のいくつかについて更新を見逃していたときにNACKメッセージ32をマルチキャストすることができる。例えば、これは、移動装置22Cが一時的にメッシュネットワーク20に接続できず、データメッセージ28を受信できないときに起こり得る。NACKメッセージ32に応答して、ソースノード22Aは、修復メッセージ30をマルチキャストすることができる。修復メッセージ30は、受信者ノード22C中のデータ26Cおよびおそらくは受信者ノード22B中のデータ26Bを、データ26Aに対する最新の修正で更新するために必要な情報を提供することができる。一例においては、修復メッセージ30を、要求されたデータ項目がもはや利用できないことを示すEXPIREDメッセージまたは変更されたデータ26A中のデータ項目を特定するCHANGEメッセージとすることができる。
一実施例におけるデータ配信サービス(DDS)24は、データ項目26間の整合性を維持するために、メッシュネットワーク20内のすべてのノードにわたってシンボリックキー(データ名)を用いる。DDS24は、信頼できる転送スキーム内に組み込むことができ、あるいは、以下に述べるように実装することができる。DDS24は、最新のデータ項目だけが要求されたときに、データが持続的に2回バッファされ、特定のデータレコードの以前の修正が再送信されることを防止する。これは、より完全な設計であり、メッシュネットワークにわたって「小さな」データベースを複製することに関連した特定の問題を解決することができる。
概念上、DDS24は、キー(データ名)を値(データ)に結合した配信ハッシュテーブルとして作用する。ノード22は、後述するDDSプロトコルを介して互いに会話し、メッシュネットワーク20全体にわたってデータ26の整合性を維持するためにマッピングされたキー−値(データ名−データ)の1つの統一ビューを用いる。データ整合性は、各ノード22におけるデータベース26を事前に複製することによって得られる。データベース26は、ノード22に内部的に格納されたオブジェクトを含むことができる。
DDS24が多数のネットワークノード22にわたって隣接するノードのグローバル修正値を検知することによってデータ26内の変化が追跡され、ローカルノードがどのデータの修正を既に有しているのかが示され、そのような2つの修正の間のデルタを記述した変化リストが要求され、欠落データの再送信が潜在的に要求される。
このようにしてDDS24は、多くのノード22に配信された一群のデータ項目26を維持している。通信が始まる前にデータ26が既に永続的に格納されているので、DDS24は、高信頼トランスポートのように伝送を別個にバッファしておく必要がない。
ソースデータパケット
図3は、図2において既に述べたようなソースデータパケット38の一例を示している。ソースデータパケット38は、DDS動作を行うために使用されるヘッダ52を含んでいる。ヘッダ52中のフィールドの一部または全部を、図2で述べたメッセージ28、30、または32を送信するために用いてもよい。ソースデータパケット38は、メッセージを送信した元のノードに特有のノードIDフィールド40を含んでいる。
図3は、図2において既に述べたようなソースデータパケット38の一例を示している。ソースデータパケット38は、DDS動作を行うために使用されるヘッダ52を含んでいる。ヘッダ52中のフィールドの一部または全部を、図2で述べたメッセージ28、30、または32を送信するために用いてもよい。ソースデータパケット38は、メッセージを送信した元のノードに特有のノードIDフィールド40を含んでいる。
各ソースデータパケット38は、パケットを送信した元のノードからのすべての伝送の中でグローバルなパケットIDフィールド42を含んでいる。パケットIDフィールド42の値は、単調増加値である。受信者ノード、パケットとしてのレコードパケットIDが受信される。また、ヘッダ52は、ソースデータパケット38を送信したノード22におけるデータ26に対する最新の修正を特定するグローバル修正フィールド44内にグローバル修正値(GRV)を含んでいる。GRVは、データ項目やなされた修正のタイプに関係なく、特定のソースノード22におけるデータ26に対してなされた最新の修正を定義するものである。例えば、ソースノード22A用のGRVは、データ26A(図2)に対してローカルになされた変更の数に対応している。したがって、データ項目Aに対する第1の修正はGRVを1だけ増やし、異なるデータ項目に対する異なる修正によりGRVが再度1だけ増える。
履歴フィールド46は、可能な再送信に対して記憶されているパケットID数を示している。GRV値および履歴フィールド46内の履歴数は、それぞれソースデータパケット38を受信しているノードにより追跡される。履歴フィールド46は、GRV44と組み合わさって、再送信可能であって、ノードIDフィールド40により特定されるノード22からのパケットIDのウィンドウを定義する。履歴ベースウィンドウの通信により、期限切れとして把握されたデータに対してピアがNACKを送信することがなくなる。うまく受信できなかったと判断されたパケットの再送信を要求するのは各受信者ノード22の任務である。
アクションフィールドは、ソースデータパケット38に関連づけられたメッセージのタイプを特定する。例えば、図6でより詳細に説明するように、STATUS、DATA、NACK、EXPIRED、CHANGE、またはRETRANSMITメッセージを送信するためにソースデータパケット38を用いてもよい。
データモデル
ソースデータパケット38にはペイロード50が含められている。ペイロード50は、データ−名前(キー)および関連データ−修正番号を含んでいる。本質的に、上述したデータ−名前は、特定のデータ項目を特定するキーである。データ−修正番号は、データ−名前により特定された特定のデータ項目に対する修正を特定する。
ソースデータパケット38にはペイロード50が含められている。ペイロード50は、データ−名前(キー)および関連データ−修正番号を含んでいる。本質的に、上述したデータ−名前は、特定のデータ項目を特定するキーである。データ−修正番号は、データ−名前により特定された特定のデータ項目に対する修正を特定する。
例えば、「プロファイル」データ項目に対する第4の修正は、ペイロード50に「プロファイル:4」というエントリを有していてもよい。「ビデオ設定」データ項目に対する第5の修正は、ペイロード50において「ビデオ設定:5」として特定され得る。また、ペイロード50は、ソースノードにより変更されるのと同様に実際に修正されたデータ(データ−値)を含んでいる。ソースデータパケット38にヘッダ52の情報の一部または全部を含めることにより、異なるノード22(図2)におけるデータ26間の整合性を維持するために付加的な制御トラフィックが必要とされない。
同期細分性はオブジェクトレベルであり、キーの値であることに留意されたい。(関係あれば)オブジェクトのすべての特性は、オブジェクトの一部であり、別個に同期されることを必要としない。それぞれのデータ−名前に対して格納されたデータ26(図2)は、自身の修正番号(データ−修正)を有しており、メッシュ全体に対して複製するときに、CHANGEメッセージは所定のデータに対する多数の変更を最小数に合体させることができる。
データプロトコル
メッシュネットワーク20(図2)内のそれぞれのノード22は、それぞれのパケットの一部としてそのグローバル修正値(GRV)を出す。上述したように、特定のオブジェクトに対する変更、またはノードにおける他のデータ項目は、それぞれのデータ項目に関連づけられた第2のデータ−修正番号を用いてより詳細に追跡することができる。
メッシュネットワーク20(図2)内のそれぞれのノード22は、それぞれのパケットの一部としてそのグローバル修正値(GRV)を出す。上述したように、特定のオブジェクトに対する変更、またはノードにおける他のデータ項目は、それぞれのデータ項目に関連づけられた第2のデータ−修正番号を用いてより詳細に追跡することができる。
受信者ノード、例えば、図2における受信者ノード22Bまたは22Cが、[GRV−履歴,データ−修正]により定義される伝送ウィンドウに「穴」を見つけたとき、NACKメッセージ32をソースノード22Aに返信し、修復を要求する(図2)。実際のNACK要求は、NACKメッセージ32を合体させるように多数の連続番号またはGRV値を含んでいてもよい。すぐにNACKメッセージ32を送信しなくてもよいが、ランダムバックオフインターバルの後に送信してもよい。このバックオフインターバルは指数関数的に分散させてもよい。修復パケットはマルチキャストされるので、特定のデータ項目を要求するノードは、いずれも他のノード22に同一のデータ項目を受信させることができる。NACKメッセージのためのランダムバックオフ伝送期間により他のノードは同様のNACK要求をせずにすみ、これにより送信しなければならないNACKの数を少なくすることができる。
さらに説明すると、図4は、データ配信サービス(DDS)24を提供するソフトウェアを操作する中央処理装置(CPU)58を含むソースノード22Aを示している。CPU58は、アンテナ61に連結されたトランシーバ60を介して無線でDDSメッセージ63を送受信する。同様に、図5は、DDS24を操作するソフトウェアを含む受信者ノード22Bまたは22Cの一方の中にあるCPU78を示している。CPU78は、アンテナ84に接続されたトランシーバ82を介して無線でDDSメッセージを送受信する。
この例におけるソースノード22Aは、3つの異なるデータ項目を含んでいる。データ項目52はプロファイルデータを含み、データ項目54はビデオ設定を含み、データ項目56はマルチキャストテーブルまたは他のタイプのコンフィグレーションデータを含んでいる。それぞれのデータ項目は、関連データ−修正番号を含んでいる。例えば、プロファイルデータ項目52は現在データ−修正=5を有しており、ビデオ設定54は現在データ−修正=4を有している。
また、ソースノード22AのCPU58は、データ項目52、54、および56のいずれかに対してなされた変更に関連づけられたグローバル修正値(GRV)62を常に得ている。図4に示された例においては、CPU58は現在データ項目52、54、および56に対して12回のGRV変更を行っている。GRV11はデータ項目54に対してなされ、GRV10および12はデータ項目52に対してなされた。また、GRVの変更62を同一のデータ項目における多数の変更によるものとすることができる。例えば、GRV10をプロファイル52の修正4によるものとし、GRV12をプロファイル52の修正5によるものとする。
説明のために、受信者ノード22Cの現在の状態を図5に示す。受信者ノード22Cは、「プロファイル」データ項目72、「ビデオ設定」データ項目74、および「マルチキャストテーブル」データ項目76を含んでいる。プロファイルデータ項目72は現在関連データ−修正番号=3を有しており、ビデオ設定データ項目74は現在データ−修正番号=4を有している。受信者ノード22Cは、GRV=9としてソースノード22Aに関連づけられた現在のグローバル修正値(GRV)79を常に得ている。例えば、ソースノード22Aから受信した最後のデータ更新は、関連GRV=9を有していた。
図6は、異なるメッシュノードにおけるDDS24によって送信され得る、異なるDDSメッセージを示している。
ステータスメッセージ
他のパケットが送信されていないときに、ソースノード22AによりSTATUSメッセージ90が定期的に送信される。一実施形態においては、変化がないことを示すためにSTATUSメッセージ90が定期的に送出される。図6に示される例においては、STATUSメッセージ90は、ソースノード22Aに対するノードID40と、ソースノード22Aに対するグローバル修正値(GRV)44とを含んでいる。アクションフィールド48は、STATUSメッセージとしてのパケットを示している。受信者ノード22Bまたは22Cが同一のノードID40に対して同一のGRV44を有している場合には、さらなるアクションは要求されない。
他のパケットが送信されていないときに、ソースノード22AによりSTATUSメッセージ90が定期的に送信される。一実施形態においては、変化がないことを示すためにSTATUSメッセージ90が定期的に送出される。図6に示される例においては、STATUSメッセージ90は、ソースノード22Aに対するノードID40と、ソースノード22Aに対するグローバル修正値(GRV)44とを含んでいる。アクションフィールド48は、STATUSメッセージとしてのパケットを示している。受信者ノード22Bまたは22Cが同一のノードID40に対して同一のGRV44を有している場合には、さらなるアクションは要求されない。
図4および5に示される例においては、ソースノード22Aにより送信されたステータスメッセージ90がGRV=12を示しており、受信者ノード22C中の対応するGRVがGRV=9である。これは、受信者ノード22CがNACKメッセージ94を送信するのを促す。
データメッセージ
ソースノード22Aがデータ項目の変更、修正、追加、削除などを行うたびにDATAメッセージ92が送信される。DATAメッセージ92は、更新する必要のある、または受信者ノード22Bおよび22Cのすべてに追加する必要のある実際のデータを有している。データ26A(図2)が変更されると、DATAメッセージ92がメッシュネットワーク20内の他のノードにマルチキャストされ、DATAメッセージ92はデータ−名前とそのデータ−修正番号を含む。この例では、DATAメッセージ92は、データ−名前=プロファイルおよびデータ−修正=5を特定し、実際に更新されたバージョン5のプロファイルデータを含んでいる。また、DATAメッセージ92は、ソースノード22Aに対する最新グローバル修正値GRV=12も含んでいる。
ソースノード22Aがデータ項目の変更、修正、追加、削除などを行うたびにDATAメッセージ92が送信される。DATAメッセージ92は、更新する必要のある、または受信者ノード22Bおよび22Cのすべてに追加する必要のある実際のデータを有している。データ26A(図2)が変更されると、DATAメッセージ92がメッシュネットワーク20内の他のノードにマルチキャストされ、DATAメッセージ92はデータ−名前とそのデータ−修正番号を含む。この例では、DATAメッセージ92は、データ−名前=プロファイルおよびデータ−修正=5を特定し、実際に更新されたバージョン5のプロファイルデータを含んでいる。また、DATAメッセージ92は、ソースノード22Aに対する最新グローバル修正値GRV=12も含んでいる。
DATAメッセージ92またはSTATUSメッセージ48の受信後、受信者ノード22Cは、DATAまたはSTATUSメッセージ92内のGRV=12を、最も新しく受信したそのノードIDに対するGRVと比較する。通常、このパケットのデータ変化に対応して、ソースノード22Aから受信したGRVを1だけ増やす必要がある。この場合、ソースノードからの最も新しいローカル修正がデータメッセージ92におけるデータで更新される。
否定応答(NACK)
それぞれの受信者ノードは、受信したパケットを常に得ており、パケットIDとその受信タイムスタンプとを、ソースごとに保持される受信パケットリストに追加する。例えば、ソースデータパケット38(図3)はソースノードIDによってインデックス化される。また、受信ノードは、他のノードに対するグローバル修正値と履歴値を格納し、GRVが変化すると、受信したパケットごとにそれらを更新する。
それぞれの受信者ノードは、受信したパケットを常に得ており、パケットIDとその受信タイムスタンプとを、ソースごとに保持される受信パケットリストに追加する。例えば、ソースデータパケット38(図3)はソースノードIDによってインデックス化される。また、受信ノードは、他のノードに対するグローバル修正値と履歴値を格納し、GRVが変化すると、受信したパケットごとにそれらを更新する。
ウィンドウ外のノードIDはリストから除かれ、その結果得られたリストは欠落パケットIDのためにスキャンされる。欠落データが検出されると、受信者ノードによりNACKメッセージ94が送信される。NACKメッセージ94を送出する前に、指数関数的に分散されたランダムな時間間隔を計算して用いることができる。これにより、多数の受信者ノードが同一の要求パケットに対して同時にNACKメッセージ94を送信しようとするNACKインプロージョンが防止される。受信者ノード22Cは、ランダムな時間間隔の後に起動するようにスケジュールし、再びGRVをチェックして、おそらく欠落したソースデータパケット38に対応するNACK94を送信する。
NACK94に応答してCHANGEメッセージ98またはEXPIREDメッセージ96がソースノード22Aから受信されると、すべての保留中のNACKが更新され、受信されたパケットがリストから削除される。また、同一の情報を要求した他のノードから受信したNACKメッセージ94もリストから削除される。伝送ウィンドウの外側にあるパケットIDも削除される。
待機中にNACKリストが空になった場合は、NACKリストが完全に削除される。NACKメッセージ94が送信されると、送信された時刻のタイムスタンプとともにNACKメッセージ94が修復要求リストに追加される。同様に、ピアにより送信された次のNACKもこのリストに追加される。
活動をしていないときには、受信者ノード22Cは起動したままですべてのノードのリストをスキャンし、欠落パケットであるが他の活動をしていなかったピアのためのNACKプロセスを再開する。これは、パケットの有効期間が切れるまで再試行される。ノードに対してトラフィックが全く検出されない場合には再試行の期間が調整される。これにより、ノードがメッシュネットワーク20から完全に消えてしまう場合にもうまく対応することができる。
受信ノード22CがDATAメッセージ92を見逃した場合、ソースノード22Aから次のDATA、STATUS、EXPIRED、またはCHANGEメッセージが受信されるまで通知されない。また、これらのメッセージのすべては、ソースノード22Aに対するグローバル修正値(GRV)を含んでいる。その点で、受信ノード22Cは、送信者ノード22Aに対するGRV62が最後に見たもの(GRV=9)よりも大きいことを示し、欠落したGRV番号を特定するNACKメッセージ94をマルチキャストする。
例えば、図4において、CPU58は、GRV=12およびソースノード22Aに対する関連ソースノードIDとともにステータスメッセージ63を送出してもよい。受信者ノード22Cは、そのソースノードIDに対する現在のGRVとしてGRV=9を有している。したがって、受信者ノード22Cは、欠落したGRV10〜12を特定する図6に示されるようなNACKメッセージ94をマルチキャストする。
CHANGE、RETRANSMITおよびEXPIREDメッセージ
ソースノード22Aは、NACKメッセージ94に応答して実際のデータを送信しない。あるいは、ソースノード22Aは、NACKメッセージ94において特定されたGRVに対するキー(データ−名前)とそれらの特定のデータ−修正番号を列挙した変更リストを送信する。その結果得られたCHANGEメッセージ98(図6)は、注目されているすべてのグローバル修正値と、これらのグローバル修正値に関連づけられたキー/値/修正のリスト9とを列挙する。例えば、図4において、ソースノード22Aは、GRV=11に対するデータ−名前=ビデオ設定:4と、GRV=12に対するデータ−名前=プロファイル:5とを含むCHANGEメッセージ98を返信してもよい。ビデオ設定およびプロファイル双方に対するデータ自体は、CHANGEメッセージ98により送信されなくてもよい。
ソースノード22Aは、NACKメッセージ94に応答して実際のデータを送信しない。あるいは、ソースノード22Aは、NACKメッセージ94において特定されたGRVに対するキー(データ−名前)とそれらの特定のデータ−修正番号を列挙した変更リストを送信する。その結果得られたCHANGEメッセージ98(図6)は、注目されているすべてのグローバル修正値と、これらのグローバル修正値に関連づけられたキー/値/修正のリスト9とを列挙する。例えば、図4において、ソースノード22Aは、GRV=11に対するデータ−名前=ビデオ設定:4と、GRV=12に対するデータ−名前=プロファイル:5とを含むCHANGEメッセージ98を返信してもよい。ビデオ設定およびプロファイル双方に対するデータ自体は、CHANGEメッセージ98により送信されなくてもよい。
他の例においては、他のノードが気づく前にデータ項目が何度も変化する場合、最も新しい1つのデータを送出して古い修復要求を満たすことができる。これは、新しいバージョンの1つのデータで更新すべき古いグローバル修正を特定するCHANGEメッセージ98により行われる。一実施例においては、古い値は保持されずに、データ項目および対応する修正番号の最も新しいバージョンのみが保持される。
例えば、図4において、GRV=10は、もはや有効ではない以前の古いバージョンのプロファイル52(データ−名前=プロファイル、データ−修正=4)に関連づけられているので、ソースノード22Aは、GRV=10に関連づけられたデータ−修正を返信しなくてもよい。
受信者ノード22Cは、扱われているすべての古いグローバル修正を示し、キー/値/修正を見て、再送信のためにどのキーを要求する必要があるのかを決定し、ソースノード22AにRETRANSMITメッセージ100(図6)を返信する。例えば、図5の受信者ノード22Cにおける「ビデオ設定」データ項目は、ソースノード22Aに関連づけられたノードIDに対してデータ−修正値=4を有している。これは、図6のCHANGEメッセージ98に示されたデータ−修正値と同一である。したがって、受信者ノード22Cは、ビデオ設定に関して再送信要求を送信しない。
図5の受信者ノード22Cにおけるプロファイルデータ項目72は、データ−修正値=3を有している。しかしながら、図6の変更メッセージ98におけるプロファイルは、データ−修正値=5を有している。このようにして、受信者ノード22Cは、現在のプロファイルデータ項目72の有効期限が切れていることを決定する。したがって、図5のCPU78は、GRV12に関連づけられたプロファイルデータを送ることをソースノード22Aに要求する図6に示されるようなRETRANSMITメッセージ100を送信する。ソースノード22Aは、図4のプロファイルデータ項目52を含む図6に示されるような他のDATAメッセージを生成することにより、RETRANSMITメッセージ100に応答する。
あるいは、図4のプロファイルデータ項目52が利用不可能である場合は、ソースノード22AがEXPIREDメッセージ96を送信してもよい。これは、データの有効期限が切れてこの交換が生じたときに、乱調状態を扱う。あるいは、EXPIREDの表示をCHANGEメッセージ98の一部にすることができる。介在メッセージのいずれかが失われた場合には、すべてのプロセスが最初からやり直される。
ソースノード22AがNACKメッセージ94(図6)を受信すると、まず、欠陥パケットIDが伝送ウィンドウの内部にあるかをチェックする。なければ、ピアがそれを求めることをやめるべきであることを示すEXPIREDメッセージ96を送信する。伝送ウィンドウの内部にあれば、元のデータ項目が取り込まれ、再送信される。ソースデータ項目は、再送信の回数に関係なく、元の有効期限が切れるまで送信済みパケットリスト内に残ったままである。最も新しい伝送の時刻を表示するためにエントリが更新される。
ソースノード22Aによりデータパケットが送出された後、短時間でNACKメッセージ94が受信された場合、送信されたデータパケットだけがNACK94が満たすという仮定の下でNACKメッセージ94を無視する場合がある。NACK94をドロップしやすい乱調状態の場合、受信者ノード22Cは、再びデータ項目を要求する。
要求した修復データと特定のデータ修正に対するグローバル修正のマッピングとを有するメッシュネットワーク20(図2)内のノードは、NACKメッセージ94に応答可能であることに留意されたい。これにより、上述したように、ソースノード22Aは要求したデータを有するノードとなり得る。ランダムバックオフ遅延は、各ノードが同時にそのように動作することを防止するために利用される。この任意的な選択は、修復を提供するノードが、他のすべてのノードに対するデータ修正マッピングへのグローバル修正を格納することを意味している。
特に単一のキーが繰り返し更新されるような場合に、DDSメッセージ交換によりデータが何回も送信されることが防止されるという点で、プロトコルは別の利点を有している。この場合においては、最も新しい値のみが伝送され、高信頼マルチキャスト伝送によりそれぞれの変更が送信され、以前の値が上書きされる。
シナリオ
図7〜11は、データ整合性操作中に起こり得る、異なるDDS受け渡しシナリオのいくつかを説明するものである。
図7〜11は、データ整合性操作中に起こり得る、異なるDDS受け渡しシナリオのいくつかを説明するものである。
エラーなし、連続受け渡し
図7は、最も簡単なケースの1つを示しており、ソースノード22Aからソースデータパケット38(図3)が送信され、送信した元の順番で順次うまく受信者ノード22Bに受信されている。それぞれのパケットNは、受信しているパケットが最も新しいことを示すグローバルバージョン番号を有しており、したがって付加的なアクションを行う必要はない。
図7は、最も簡単なケースの1つを示しており、ソースノード22Aからソースデータパケット38(図3)が送信され、送信した元の順番で順次うまく受信者ノード22Bに受信されている。それぞれのパケットNは、受信しているパケットが最も新しいことを示すグローバルバージョン番号を有しており、したがって付加的なアクションを行う必要はない。
エラーなし、受け渡し不順
図8に示される次のケースにおいては、ソースノード22Aによってソースデータパケットが送信され、受信者ノードによってうまく受信されるが、送信した元の順番は保持されていない。これにより、遅延時間Tが経過する前に「スキップされた」パケットN+1が受信されない限り、ランダム遅延Tの後にNACKメッセージ94(図6)が送信される。図8は、ランダム遅延時間Tの経過前にパケットN+1が受信者ノード22Bに受信される場合を示している。この場合においては、NACKメッセージ94が抑制される。
図8に示される次のケースにおいては、ソースノード22Aによってソースデータパケットが送信され、受信者ノードによってうまく受信されるが、送信した元の順番は保持されていない。これにより、遅延時間Tが経過する前に「スキップされた」パケットN+1が受信されない限り、ランダム遅延Tの後にNACKメッセージ94(図6)が送信される。図8は、ランダム遅延時間Tの経過前にパケットN+1が受信者ノード22Bに受信される場合を示している。この場合においては、NACKメッセージ94が抑制される。
単純修復
図9は、パケット連続番号を1つスキップし、NACKメッセージ94が出て行くようにスケジュールされるときになっても、欠落ソースデータパケットN+1がまだ受信されていない場合を示している。この場合においては、NACKメッセージ94は保留中であり、パケットN+1は時間Tの間に受信されない。したがって、受信者ノード22Bは、上述したようにソースデータパケットN+1を特定するNACKメッセージ94をソースノード22Aに送信する。その後、ソースノード22Aは、DDSプロトコル(CHANGEおよびRETRANSMITメッセージは図示せず)を通じてソースデータパケットN+1に再送信する。
図9は、パケット連続番号を1つスキップし、NACKメッセージ94が出て行くようにスケジュールされるときになっても、欠落ソースデータパケットN+1がまだ受信されていない場合を示している。この場合においては、NACKメッセージ94は保留中であり、パケットN+1は時間Tの間に受信されない。したがって、受信者ノード22Bは、上述したようにソースデータパケットN+1を特定するNACKメッセージ94をソースノード22Aに送信する。その後、ソースノード22Aは、DDSプロトコル(CHANGEおよびRETRANSMITメッセージは図示せず)を通じてソースデータパケットN+1に再送信する。
合体修復
図10は、1つのソースデータパケットよりも多くのパケットが欠落していると検出されるときの状況を示している。パケット番号、データ項目、またはGRVのセットを1つのNACKメッセージ94にカプセル化することができる。このとき、NACKメッセージ94を送信する準備ができており(すなわち、最も短いランダムバックオフインターバル)、パケットN+1およびN+2に対するすべての保留中のNACKがNACKメッセージ94に含められる。同じく、NACKとデータの再送信との間のプロトコルは示されていない。
図10は、1つのソースデータパケットよりも多くのパケットが欠落していると検出されるときの状況を示している。パケット番号、データ項目、またはGRVのセットを1つのNACKメッセージ94にカプセル化することができる。このとき、NACKメッセージ94を送信する準備ができており(すなわち、最も短いランダムバックオフインターバル)、パケットN+1およびN+2に対するすべての保留中のNACKがNACKメッセージ94に含められる。同じく、NACKとデータの再送信との間のプロトコルは示されていない。
NACK抑制
図11は、多数の受信者ノード22Bおよび22Cが欠落パケットを検出するときの状況を示している。それぞれの受信者ノード22Bおよび22Cは、潜在的にNACKメッセージ94を送信することができる。しかしながら、それぞれの受信者ノード22Bおよび22Cは、NACKメッセージ94を送信する前にランダム遅延を用いてもよい。これにより、受信者ノード22Bまたは22Cの一方が他の受信者ノードの前にNACKメッセージを送信する。
図11は、多数の受信者ノード22Bおよび22Cが欠落パケットを検出するときの状況を示している。それぞれの受信者ノード22Bおよび22Cは、潜在的にNACKメッセージ94を送信することができる。しかしながら、それぞれの受信者ノード22Bおよび22Cは、NACKメッセージ94を送信する前にランダム遅延を用いてもよい。これにより、受信者ノード22Bまたは22Cの一方が他の受信者ノードの前にNACKメッセージを送信する。
例えば、受信者ノード22Cは、ランダムな時間間隔TでNACKメッセージ94を送信するようにスケジュールされ、受信者ノード22Bは、受信者ノード22Cの後にランダムな時間間隔T+1で同一のNACKメッセージ94を送信するようにスケジュールされる。NACKメッセージ94はマルチキャストされるので、他のノードは受信者ノード22Cにより送信された最初のNACKメッセージ94を見るであろう。これにより、受信者ノード22Cから受信されたNACKメッセージ94が受信者ノード22Bにおいて欠落しているパケットIDを含んでいる限りにおいて、受信者ノード22Bは同一のNACKメッセージを送信することを抑制する。同じく、NACKとデータの再送信との間のプロトコルは示されていない。
図16を参照すると、拡張MFCシステムアーキテクチャ212は、配信マルチキャストルーティング機構であり、マルチキャスト転送キャッシュ224およびマルチキャストテーブル計算222からなっている。これらの2つのコンポーネントは、メッシュノード上で利用可能なグローバルおよびローカル状態から情報を得て、マルチキャストトラフィックを適切にルーティングする。拡張MFC212を実行するノードのすべては、モバイルメッシュネットワークと従来のインターネットプロトコル(IP)ベースのネットワークとの双方にわたるオーバーレイネットワークを生成する。
図16は、メッシュネットワーク内の拡張MFC212を操作するノード270を示している。マルチキャストアウェアアプリケーション216は、ソケットアプリケーションプログラムインタフェイス(API)コール217を用いてマルチキャストソケット220をオープンし、マルチキャストソースとして宣言し、マルチキャストデータ型(例えば、ビデオ、音声、バルクデータなど)を設定し、マルチキャストデータ242を送信し、マルチキャストデータ242を受信し、ソケット220をクローズする。これらのソケットコール217は、基礎マルチキャスト転送キャッシュ224に依存してマルチキャストトラフィック242を転送するための0以上のネットワークインタフェイス226を選択する。
マルチキャスト転送キャッシュ224は、マルチキャストテーブル計算コンポーネント222によって維持されている。マルチキャストテーブル222は、それぞれ既知のマルチキャストソースおよびグループに対するエントリをマルチキャスト転送キャッシュ224に書き込む。マルチキャストテーブル計算コンポーネント222は、モバイルメッシュネットワーク内で利用可能なグローバル状態情報からこれらのマルチキャストグループ送信者およびグループを得る。そのようなグローバル状態配信プロトコルの公知例としては、ローレンス・バークレー国立研究所(LBNL)でVan Jacobsonによりなされた研究に基づいて作られたマルチキャストセッションディレクトリsdrがある。
マルチキャストテーブル計算コンポーネント222は、基礎ユニキャストルーティングプロトコル218からネットワークトポロジーを得る。理想的には、プロトコル218は、事前型アドホックリンク状態ベースのプロトコルであるが、そうである必要はない。例えば、インターネットマルチキャストプロトコルであるDistance Vector Multicast Routing Protocol(DVMRP)やMulticast Extensions to OSPF(Open Shortest Path First)は、距離ベクタおよびリンク状態プロトコルからそれぞれトポロジー情報を得る。ブロック214内の従来の要素は、当業者によく知られており、したがって、さらなる詳細は説明しない。
ブロック213には、拡張マルチキャスト操作が示されている。マルチキャストメンバシップ情報228およびレガシーマルチキャストサポート230がマルチキャストテーブル計算222に与えられる。一例においては、マルチキャストメンバシップ情報228は、上述した分散配信サービス(DDS)を用いて配信され、すべてのメッシュノードが含んでいるグローバル状態情報である。レガシーマルチキャストサポート230は、MFC224内またはマルチキャストパケット内の既存のマルチキャストサポートに関するものである。ノードがeMFCヘッダを含んでいない場合は、パケットはレガシーマルチキャストサポート230を用いて従来のマルチキャストパケットから復帰することができる。メッシュインタフェイスサポートは特定のメッシュノード情報に関するものである。例えば、ノードが、特定のインタフェイスがメッシュインタフェイスであるかを決定し、したがって、メッシュネットワークのために必要なルーティングの決定を行ってもよい。
図17により詳細に示されている拡張MFCヘッダ250を通してメッシュネットワーク内のノードに中継される配信メンバ状態232を介して拡張MFC212が提供される。
特に重要な3つのeMFC操作は、重複パケット検出236、セキュリティ特徴サポート238、およびQoS拡張240を含んでいる。
配信マルチキャスト状態
図17および18を参照すると、拡張MFC212は、マルチキャストパケット250上で予め引き延ばされた所有パケットヘッダ251を用いてグローバル状態を維持する配信マルチキャストルーティング機構である。この配信状態は、サービス品質やリンク品質対策のような特徴を適切にサポートするために必要である。それぞれのマルチキャストパケット250は、メッシュノードを操作する拡張MFC212(図16)を通って流れるので、特定のeMFCヘッダ251を予め引き延ばすことによりマークされる。このヘッダ251には、eMFC状態をピアメッシュノード270に配信し、サービス品質(QoS)のような特徴をサポートするために必要なフィールドが含まれている。
図17および18を参照すると、拡張MFC212は、マルチキャストパケット250上で予め引き延ばされた所有パケットヘッダ251を用いてグローバル状態を維持する配信マルチキャストルーティング機構である。この配信状態は、サービス品質やリンク品質対策のような特徴を適切にサポートするために必要である。それぞれのマルチキャストパケット250は、メッシュノードを操作する拡張MFC212(図16)を通って流れるので、特定のeMFCヘッダ251を予め引き延ばすことによりマークされる。このヘッダ251には、eMFC状態をピアメッシュノード270に配信し、サービス品質(QoS)のような特徴をサポートするために必要なフィールドが含まれている。
マルチキャストパケット250は、モバイルメッシュネットワーク269(図18)を横断して流れるので、同一のeMFCヘッダ251が最終マルチキャスト宛先までの経路に沿ってそれぞれの拡張MFC212によって見られる。これは、それぞれのメッシュノード250がマルチキャストパケット250を転送する前にeMFC212と相談するからである。
例えば、図18において、第1のメッシュノード270Aを車両内に配置し、第2のメッシュノード270Bが携帯情報端末(PDA)を操作し、第3のメッシュノード270Cが無線ラップトップコンピュータを操作してもよい。マルチキャストパケット250は、ノード270Aによって送信され、eMFCヘッダ251により予め引き延ばされる。メッシュノード270B内のeMFC212は、eMFCヘッダ251の情報に従ってマルチキャストパケット250をメッシュノード270Cにルーティングする。メッシュノード270Cは、マルチキャストパケット250を受信し、おそらくeMFCヘッダ251の情報に従ってマルチキャストパケット250をルーティングし続ける。マルチキャストパケット250は、メッシュネットワーク269を通って流れ、あるモバイルメッシュネットワークノード270から他のモバイルメッシュネットワークノードに移動するので、拡張MFCパケットヘッダ251は、このマルチキャストストリームの状態をその経路に沿ってすべてのメッシュノードに配信する役割を有している。
MFCパケットヘッダ251は、メッシュノードに、従来のメッシュネットワークでは現在サポートされていない重複パケット検出236、セキュリティ特徴サポート238、QoS拡張240(図16)などのより効果的なマルチキャスト関連操作を行わせることができる。
eMFCヘッダ251の個々のフィールドは、図19においてより詳細に述べられている。バージョン番号252は、他のマルチキャストバージョンとの上位互換のために用いられる。メッシュノード送信マルチキャストパケット250はルータ識別子(ルータID)254によって識別され、ノード270が移動してインタフェイスをオンオフすると経時的に変化するまたは変化しないIPアドレスへの依存をなくすことができる。ルータID254は、モバイルメッシュネットワークの有効期間中は一定のままであり、特定のメッシュノードに関連づけられ、いずれのIPソースアドレスにも結びつけられない。したがって、ノードが同一または異なるメッシュネットワーク内の他の場所に移動しても、ルータ識別子254はメッシュノード270に対して同一のままである。
ヘッダ251は、特定のルータID254により送信されたマルチキャストストリームにおけるマルチキャストパケット番号を特定する連続番号256を含んでいる。宛先アドレス257および宛先ポート258は、上記表2および3に示されるような特定のマルチキャストグループに対するマルチキャストアドレスを特定する。トラフィックカテゴリ260は、メッシュノード270におけるQoS操作のために使用される。配信状態に加えて、eMFCヘッダ251は、マルチキャストトラフィック統計を得るためにノードで使用することもできる。これらの統計は、後述する品質サービス特徴のために使用することができる。図17に示されるオプションの暗号化値は、マルチキャストパケット250とともに使用される暗号化スキームのタイプを特定するために使用することができる。一実施例においては、eMFCヘッダ251は、IPヘッダの後であってデータペイロード264の前に位置している。
図20は、モバイルメッシュネットワーク内のノードがどのようにして同一のメッシュ内の他のノードまたはオーバーレイネットワークを介して他のモバイルメッシュネットワーク内の他のノードに直接接続されるかを示すものである。例えば、メッシュ1とメッシュ2という2つのメッシュがランデブ280を介して互いに通信する。ランデブは、トンネル281を介してメッシュ1と2を接続する周知の予め確立されたサーバである。
ランデブサーバ280自体が拡張MFC212を含んでおり、メッシュノード1および2へのメッシュノードピアとして機能する。メッシュ1およびメッシュ2上のノードは、eMFC212を用いて互いに通信することができ、あるいは、従来のマルチキャストプロトコルを介してインターネット282上の他のノードと通信することができる。このように、異なるメッシュネットワーク上または異なるメッシュおよびインターネットネットワーク上の2つのノードは、eMFCヘッダ251(図17)に含まれるeMFC情報を交換することができる。
メッシュインタフェイスサポート
拡張MFC212は、従来のインターネットネットワークインタフェイスおよびメッシュ特有のネットワークインタフェイスの双方においてマルチキャストをサポートしている。すなわち、eMFC212は、通常マルチキャストトラフィックを聞いていないマルチキャストリスナーに向いているメッシュノードインタフェイス上でマルチキャストトラフィックを繰り返すことによる隠れノード問題を有するインタフェイスをサポートしている。
拡張MFC212は、従来のインターネットネットワークインタフェイスおよびメッシュ特有のネットワークインタフェイスの双方においてマルチキャストをサポートしている。すなわち、eMFC212は、通常マルチキャストトラフィックを聞いていないマルチキャストリスナーに向いているメッシュノードインタフェイス上でマルチキャストトラフィックを繰り返すことによる隠れノード問題を有するインタフェイスをサポートしている。
図21および22を参照すると、従来のインタフェイスから送信されたマルチキャストパケット250は、そのインタフェイスに接続されたすべてのピアに到達すると考えてもよい。ハブまたはスイッチ上のイーサネットインタフェイスは、従来のインタフェイスの例である。この仮定が当たっていなくても、例えば、スイッチを通過するマルチキャスト伝送の場合、基礎システムコンポーネント、この場合においてはスイッチが補償するように設計されている。
しかしながら、メッシュインタフェイスの場合、そのような補償は存在しない。その代わりに、メッシュノードは、元のマルチキャスト伝送を聞くことができない下流ノードのためにいくつかのメッシュインタフェイス上でマルチキャストトラフィックを繰り返さなければならない。例えば、図22において、メッシュノードAは、ノードC宛のマルチキャストパケット250を送出することができる。しかしながら、ノードCが、ノードAから直接パケット250を受信できる範囲にない場合がある。このような状況においては、ノードBが、ノードAからノードCにマルチキャストパケット250を中継するルータとして動作する必要がある。しかしながら、範囲内のそれぞれのノードにマルチキャストパケット250をむやみに繰り返すことにより、すべてのノードが同一のマルチキャストパケットを放送するというブロードキャストストームが生じるおそれがある。
この問題および他の問題をなくすために、メッシュノードは、マルチキャストパケットの転送に関する決定をするときに、メッシュインタフェイス情報を考慮する。例えば、図21において、ブロック300でノードB(図22)がマルチキャストパケットを受信する場合がある。ブロック302において、ノードBは、パケット250が拡張MFCヘッダ251を有しているかを決定する。決定ブロック304におけるノードBは、受信されたメッシュインタフェイス上でパケットを繰り返さなければならないかを決定する。繰り返さなくてもよい場合には、ブロック306で従来のマルチキャストルーティングが行われる。しかしながら、決定ブロック304において、受信されたメッシュインタフェイス上でパケットを繰り返さなければならない場合には、ノードは、決定ブロック308において、メッシュインタフェイスに関連づけられた下流の受信者がいるかを決定する。いない場合には、マルチキャストパケットを繰り返す必要はなく、ブロック306において通常のマルチキャスト操作が行われる。決定ブロック308においてノードBに下流の受信者がいる場合には、ブロック310において、受信されたメッシュインタフェイス上で特定された下流ノードへのマルチキャストパケットが繰り返され、受信されたメッシュインタフェイスを聞くことはできるが、元のマルチキャストパケット(図22)は聞くことができない下流ノードに向けてトラフィックが前方に転送される。
下流ノードは、eMFCヘッダ251(図17)のマルチキャストアドレスに関連づけられたマルチキャストグループのメンバであってもよいし、そうでなくてもよい。例えば、図22において、マルチキャストパケット250は、ノードAからメッシュノードBに送信される。ノードCがマルチキャストグループ内においてマルチキャストパケット250に対して識別されない場合であっても、ノードCはノードBに対して下流の受信者になるので、ノードBはパケットをノードCに転送する。これにより、マルチキャストグループのメンバでありノードCよりも下流の他のメッシュノードが、ノードCからマルチキャストパケット250をうまく受信することが可能となる。この例においては、ノードDは、ノードBに対して指定された下流メッシュノードではない。このため、ノードCがマルチキャストパケット250をメッシュノードDに伝送することはない。これにより、マルチキャストパケットがメッシュネットワークを越えて送信される場合に通常生じるブロードキャストストームを防止することができる。
図23は、ノードBがマルチキャストパケット250をルーティングする方法をより詳細に示すものである。ブロック320において、ノードBはマルチキャストパケットを受信する。ブロック322において、ノードBは、eMFCヘッダ251のルータID254、宛先アドレス257、および宛先ポート258(図17)および配信マルチキャストルーティングテーブルに従って、マルチキャストグループのメンバを特定する。ブロック322において、eMFCヘッダ251のルータ識別子254を介してマルチキャストパケットのソースが特定される。
ブロック326において、ノードB(図22)は、ローカルルーティングテーブルに従って、マルチキャストパケット250を転送するためのノードを特定する。換言すれば、ブロック326においては、マルチキャストルーティングテーブルが、マルチキャストパケットをブロック322において特定されたソースノードからブロック322において特定された1以上のノードに転送することをノードBに要求してもよい。したがって、ブロック328において、ノードBは、図21に述べられたメッシュインタフェイス基準を満たせば、マルチキャストパケット250を特定されたノードに転送する。
従来のルーティングプロトコルは、関連下流ノードをノードに通知する。これは、例えば、図16のマルチキャストメンバシップ情報228によってなされる。そして、配信されたeMFCヘッダ251は、マルチキャストパケット250に関連づけられた特定のマルチキャストグループを特定する。
重複パケット検出
メッシュネットワーク内のノードには、重複マルチキャストパケットを受信する不具合が生じる可能性がある。メッシュノードは、移動性やインタフェイス変化をはじめとする種々の理由により、同一のマルチキャストトラフィックの多数のコピーを受信する場合がある。例えば、図24において、ノードAはマルチキャストパケット250をノードBに送出することができる。そして、ノードBは、同一のマルチキャストパケット250をノードCに放送することができる。しかしながら、マルチキャストパケット250の同一の放送はノードAで受信される。重複マルチキャストパケット250は、ノードAが同一のマルチキャストパケットに対して処理を繰り返すことを招く可能性がある。このため、重複パケット検出がモバイルメッシュネットワークの移動無線環境においては特に重要である。重複パケット250は、ノードAのeMFC212によって特定され、パケットを処理するアプリケーションに至る前に操作346において静かにドロップされる。
メッシュネットワーク内のノードには、重複マルチキャストパケットを受信する不具合が生じる可能性がある。メッシュノードは、移動性やインタフェイス変化をはじめとする種々の理由により、同一のマルチキャストトラフィックの多数のコピーを受信する場合がある。例えば、図24において、ノードAはマルチキャストパケット250をノードBに送出することができる。そして、ノードBは、同一のマルチキャストパケット250をノードCに放送することができる。しかしながら、マルチキャストパケット250の同一の放送はノードAで受信される。重複マルチキャストパケット250は、ノードAが同一のマルチキャストパケットに対して処理を繰り返すことを招く可能性がある。このため、重複パケット検出がモバイルメッシュネットワークの移動無線環境においては特に重要である。重複パケット250は、ノードAのeMFC212によって特定され、パケットを処理するアプリケーションに至る前に操作346において静かにドロップされる。
図25は、重複パケットを検出しドロップするためにeMFC212で行われる基本ロジックを示すものである。ブロック340において、ノードがマルチキャストパケットを受信する。ブロック342においては、ノードの拡張MFC212がeMFCヘッダ251(図17)中の情報を読み込む。受信されたマルチキャストパケットが同一のノードにより以前に受信されたパケットの複製であることをeMFC情報251が示している場合には、ブロック346においてパケットがドロップされる。そうでない場合には、ブロック348においてパケットが転送される。
重複マルチキャストパケットは、eMFCヘッダ251(図17)のルータID254、連続番号256、宛先アドレス257、および宛先ポート258の組み合わせを用いて検出される。これにより、重複パケット受信をより正確に決定することができる。
図26はより詳細に説明している。ブロック350において、メッシュノードがマルチキャストパケットを受信する。eMFC212は、パケットヘッダ251(図17)のルータID254をチェックする。同一のルータIDを有するパケットが処理されたことがない場合は、ブロック360においてノードが通常の方法でマルチキャストパケットを転送する。ブロック352においてノードが同一のルータIDを有する他のパケットを受信した場合は、ブロック354において、宛先アドレス257、宛先ポート258、およびパケット連続番号256の値がチェックされる。これらの値が最近伝送された他のパケットとは異なっている場合には、ブロック360においてパケットが転送される。ブロック360においてルータID、宛先アドレス、および連続番号が最近伝送された他のパケット流れと同じ場合には、パケットは重複であると判断され、ブロック358において捨てられる。
拡張MFC212は、ソースノードの各マルチキャストパケットに単調増加連続番号256でタグをつける。したがって、連続番号256は、重複マルチキャストパケットを取り除きドロップするために、ソースから受信者への経路における各ホップで使用される。マルチキャストパケットは異なる順序で到達する場合があるので、eMFC212は、各マルチキャストストリームに対して単に最大の連続番号の保持ではなく、マルチキャスト連続番号の受信をチェックすることに留意されたい。同様に、連続番号は「ひっくり返る」ことがある。最大連続番号が割り当てられ、次のパケットが最小連続番号でマークされたときに連続番号がひっくり返る。eMFC212は、連続番号のひっくり返りも補償する。
セキュリティ特徴サポート
図27においては、拡張MFC212を実行しているノード間のマルチキャストトラフィックは、隣接するノードを認証し、ホップごとにマルチキャストトラフィックを暗号化するなどのセキュリティ特徴をサポートすることによって、セキュリティが確保されている。セキュリティは、モバイルメッシュネットワークのような頻繁に変化する移動無線ネットワークにおいて特に重要である。eMFC212を用いたそれぞれの移動ノードA〜Dは、システム内で利用可能なセキュリティ特徴を利用することができる。例えば、それぞれの移動メッシュノードA〜Dは、直接接続された隣接するノードに対して自らを認証する。
図27においては、拡張MFC212を実行しているノード間のマルチキャストトラフィックは、隣接するノードを認証し、ホップごとにマルチキャストトラフィックを暗号化するなどのセキュリティ特徴をサポートすることによって、セキュリティが確保されている。セキュリティは、モバイルメッシュネットワークのような頻繁に変化する移動無線ネットワークにおいて特に重要である。eMFC212を用いたそれぞれの移動ノードA〜Dは、システム内で利用可能なセキュリティ特徴を利用することができる。例えば、それぞれの移動メッシュノードA〜Dは、直接接続された隣接するノードに対して自らを認証する。
互いに認証し証明書を交換した後、移動ノードピアは、ホップごとにマルチキャストトラフィックを暗号化する。このため、誤ってラジオレンジ366内のリスナに到達した移動ノードピアに宛てられたマルチキャストトラフィックは明文ではない。悪意のあるリスナ364は、まず、以前のホップによって送信された暗号化されたマルチキャストパケットを破らなければならない。この暗号化は、メッシュノードA〜Dとランデブ280(図20)の間で確立されたトンネルを横断して行われる。
加えて、マルチキャストパケット250のソースによって使用された暗号化スキームの特定のタイプを特定するために、eMFCヘッダ251に暗号化識別子262を任意に含めてもよい。
QoS拡張
サービス品質(QoS)の実施は、モバイルメッシュネットワークのように、帯域幅が限られ、混信の可能性がある無線環境においては特に重要である。拡張MFC212は、パケット優先順位づけ、承認制御、およびトラフィック整形などのトラフィック計測および実施手段を通じて品質サービスをサポートしている。eMFC212に気づいているアプリケーションは、アプリケーションパケットをよく知られたカテゴリにマークすることにより、これらのQoS特徴をサポートしている。レガシーアプリケーションパケットは、デフォルトでは「ベストエフォート」としてマークされている。
サービス品質(QoS)の実施は、モバイルメッシュネットワークのように、帯域幅が限られ、混信の可能性がある無線環境においては特に重要である。拡張MFC212は、パケット優先順位づけ、承認制御、およびトラフィック整形などのトラフィック計測および実施手段を通じて品質サービスをサポートしている。eMFC212に気づいているアプリケーションは、アプリケーションパケットをよく知られたカテゴリにマークすることにより、これらのQoS特徴をサポートしている。レガシーアプリケーションパケットは、デフォルトでは「ベストエフォート」としてマークされている。
さらに説明すると、図28は、それぞれマルチキャストパケット250を伝送および受信可能な多数のメッシュノード270を示している。1以上のメッシュノードは、受信したパケットに関してQoS決定をすることができる。例えば、マルチキャストパケット250をPDAノード270Bに送信する車両内にノード270Aを配置することができる。同時に、PCメッシュノード270Cおよび270Dも、マルチキャストパケット250をPDAノード270Bに送信することができる。残念なことに、PDAノード270Bは、ノード270A、270C、および270D.から受信したマルチキャストパケットのすべてを処理および転送する能力を有してない場合がある。この場合には、QoS操作370においてパケット250の一部をドロップする必要がある。あるいは、PDAノード270Bが、受信したパケット250の一部またはすべての処理順序に優先順位をつけてこれらを処理する場合がある。
eMFC212によって扱われたマルチキャストパケットは、トラフィックカテゴリ260(図17)に従って優先順位がつけられる。トラフィックカテゴリの例は図30の優先順位テーブルに示されている。eMFC伝送キューが満杯になりすぎると、トラフィックカテゴリ260によって特定されるドロップ優先順位を用いてパケットがドロップされる。例えば、ビデオフレームを構成するすべてのビデオパケットを個々に単にドロップするのではなく、一度にドロップしてもよい。また、eMFC212は、IETFにより定義された適切な分化サービスフィールドコードポイント(DSCP)ビットでマルチキャストパケットをマークすることができる。これにより、802.11iインタフェイスのようなトラフィック優先順位づけをサポートするインタフェイスによってeMFC212の下のさらなる優先順位づけが可能となる。
図29は、図28のノード270における拡張MFC212がどのようにしてQoSサービスを行うために使用されるのかをより詳細に説明するものである。ブロック380において、ノード270が異なるトラフィックカテゴリについての優先順位テーブルにより構成される。優先順位テーブルの一例は図30に示されており、上述したDDSシステムを用いて異なるノード270に配信してもよい。
ブロック382において、拡張MFC212がピアからマルチキャストトラフィックを送信および受信するとき、マルチキャストトラフィックに関してホップごとにリンク品質も測定する。これは、eMFC212を実行するそれぞれの直接接続ピアメッシュノードに対してうまく送信および受信されたマルチキャストパケットの数を追跡することによりなされる。これらの測定は、ブロック384において、eMFCヘッダ251(図17)のルータID254、宛先アドレス256、宛先ポート258、連続番号256、およびトラフィックカテゴリ260の異なる組み合わせによりなされる。マルチキャストテーブル計算コンポーネント222(図16)によって計算されたリンクコストは、リンク容量、リンク品質、および時間平均ルータとして機能しようとするノードの意欲の組み合わせである。
最終メトリックは、これらのファクターとCPUスピード、合計メモリ、およびバッテリ容量などのプラットフォーム特性との組み合わせである。リンク品質が変化するとき、リンクコストはその変化を反映し、マルチキャストテーブル計算コンポーネントはマルチキャスト転送キャッシュエントリを計算するときにより良いメトリックを有するそれらのリンクを好む。
それぞれのリンクメトリック、トラフィックカテゴリ分布、および最大リンク容量がブロック384において得られたとすると、eMFC212は、必要に応じてマルチキャストレート制限を課す。ネットワーク管理により設定されたマルチキャストパケットに対するトラフィック制限に関するポリシーがeMFC212により適用される。例えば、モバイルメッシュネットワークにおいて許容されるビデオトラフィックの量に関するサービス品質保証契約(SLA)を適用して、マルチキャスト伝送中に各ホップにおいて許されるビデオトラフィックを制限することができる。この制限を超えたビデオソースは、最初のeMFC212を越えては許されず、モバイルメッシュネットワークに過度のトラフィックをかけさせないようになっている。
例えば、ブロック386におけるeMFC212は、図17のトラフィックカテゴリ260を介してブロック386におけるビデオトラフィックを特定する。eMFC212は、ブロック384において、ルータID254および対応する連続番号256に従って、ビデオトラフィックのソースおよびそのソースから受信したビデオトラフィックの量を特定する。
その後、eMFC212は、ブロック388において、図30に示される優先順位テーブルに従って、ビデオトラフィックの処理の優先順位をつける。図30の優先順位テーブルに示されているように、最も高い優先順位は異なるタイプの低帯域幅制御トラフィックに対して与えられる場合がある。ビデオデータのような大きなデータトラフィックには低い優先順位が与えられる場合がある。eMFC212は、受信したトラフィックの量に従って、ビデオトラフィックの一部または全部の処理をドロップまたは遅らせてもよい。
その後、eMFC212は、ブロック388において、図30に示される優先順位テーブルに従って、ビデオトラフィックの処理の優先順位をつける。図30の優先順位テーブルに示されているように、最も高い優先順位は異なるタイプの低帯域幅制御トラフィックに対して与えられる場合がある。ビデオデータのような大きなデータトラフィックには低い優先順位が与えられる場合がある。eMFC212は、受信したトラフィックの量に従って、ビデオトラフィックの一部または全部の処理をドロップまたは遅らせてもよい。
他の実施例においては、宛先アドレス257および宛先ポート258によって特定されたマルチキャストグループが、異なる優先順位レベルを有していてもよい。これにより、監督者や緊急用人員などの特定のユーザからのメッセージを、他のユーザよりも高い優先度で送信することが可能となる。このように、特定のユーザのグループに異なる優先順位レベルを割り当てるために、ルータID254、宛先アドレス257、宛先ポート258、およびトラフィックカテゴリ260の組み合わせが用いられる。
eMFC212は、マルチキャストセッションの数、セッションごとのスループット、またはセッションごとのマルチキャスト参加者などのマルチキャストセッション特性を適用することができる。ブロック390において、eMFC212は、特定のソース(ルータID)、宛先アドレスおよび/またはポートから受信したパケット、または特定のトラフィックカテゴリを有するパケットのような特定のタイプのデータに対する統計を追跡することができる。この統計は、特定のタイプのトラフィックに対して受信したパケットの量およびうまく処理やドロップなどがなされたそのタイプのトラフィックの割合を特定することができる。
図31は、eMFC212を行うために用いられるメッシュノード270内部のコンポーネントを示している。中央処理装置(CPU)402は、eMFC212操作を実現するソフトウェアにアクセスする。CPU402は、トランシーバ404およびアンテナ406を介してマルチキャストパケットを送信および受信する。メモリ402は、上述したマルチキャストルーティングテーブルおよび優先順位テーブルを含んでいてもよい。
レガシーマルチキャストサポート
拡張MFC212は、eMFCヘッダ251とともに生成されたマルチキャストトラフィックおよびeMFCヘッダ251なしに生成されたマルチキャストトラフィックの双方をサポートしている。このため、eMFCは、レガシーマルチキャストアプリケーションおよびeMFCを用いて書かれたアプリケーションの双方をサポートしている。すべてのマルチキャストアプリケーションがeMFC212の特徴を利用するわけではない。その結果、レガシーマルチキャストアプリケーションのサポートがeMFCに組み込まれる。このレガシーソースおよび受信者情報を用いることで、eMFC212はマルチキャスト転送キャッシュ224(図16)を設定し、eMFC212に従ってマルチキャストソースアプリケーションからマルチキャストパケットを転送する。eMFCヘッダ251なしで受信したレガシーマルチキャストパケットは、そのマルチキャストグループに対して登録されたアプリケーションに直接渡される。
拡張MFC212は、eMFCヘッダ251とともに生成されたマルチキャストトラフィックおよびeMFCヘッダ251なしに生成されたマルチキャストトラフィックの双方をサポートしている。このため、eMFCは、レガシーマルチキャストアプリケーションおよびeMFCを用いて書かれたアプリケーションの双方をサポートしている。すべてのマルチキャストアプリケーションがeMFC212の特徴を利用するわけではない。その結果、レガシーマルチキャストアプリケーションのサポートがeMFCに組み込まれる。このレガシーソースおよび受信者情報を用いることで、eMFC212はマルチキャスト転送キャッシュ224(図16)を設定し、eMFC212に従ってマルチキャストソースアプリケーションからマルチキャストパケットを転送する。eMFCヘッダ251なしで受信したレガシーマルチキャストパケットは、そのマルチキャストグループに対して登録されたアプリケーションに直接渡される。
eMFC212をホストしているメッシュノード上で実行しているレガシーマルチキャストアプリケーションは、標準マルチキャストソケットAPIコール217(図16)を用いている。これらのコールは、eMFC212によって傍受され、示され、広く知らされる。モバイルメッシュネットワークにおいてeMFC212をホストしていないノード上で実行しているレガシーマルチキャストソースは、eMFC212を実行している隣接ノードによって検出される。そのようなマルチキャストソースの例は、ビデオマルチキャストトラフィックを送信するメッシュ内のカメラである。eMFC212を実行していないモバイルメッシュネットワークにおけるノード上で実行しているマルチキャスト受信者は、各々のマルチキャスト受信者により発行されたIGMPメッセージを介して検出される。レガシーマルチキャスト送信者および受信者情報は、グローバル状態として伝播される。レガシーマルチキャストパケットは、サービスクラスのデフォルト品質である「ベストエフォート」受け渡しのためにマークされる。
上述したシステムは、専用プロセッサシステム、マイクロコントローラ、プログラム可能論理装置、または動作の一部または全部を行うことができるマイクロプロセッサを用いることができる。上述した動作の一部をソフトウェアにより実現し、他の動作をハードウェアにより実現してもよい。
簡便のため、様々な相互接続された機能的ブロックまたは別個のソフトウェアモジュールとして上記動作を述べている。しかしながら、これは必要ではなく、これらの機能的ブロックまたはモジュールが、単一の論理装置、プログラム、または明確な境界のない動作に等価的にまとめられる場合がある。いずれにしても、機能的ブロックまたはソフトウェアモジュールまたはフレキシブルインタフェイスの特徴をそれら自身によって、あるいはハードウェアまたはソフトウェアにおける他の動作との組み合わせによって実現することができる。
本発明の原理をその好ましい実施形態について述べ示してきたが、そのような原理から逸脱することなく、本発明の構成上および詳細において改良することができることは明らかであろう。我々は、以下のクレームの精神および範囲内にあるすべての改良および変形を請求する。
Claims (21)
- ネットワーク処理装置に含まれるデータ項目に関連づけられたデータ配信サービス(DDS)メッセージを送信するプロセッサを備え、前記DDSメッセージは、前記ネットワーク処理装置における多数の異なるデータ項目に対する修正状態に関連づけられたグローバル修正値と、個々のデータ項目に対する修正状態を特定するデータ−修正番号とを特定する、ネットワーク処理装置。
- 前記プロセッサは、メッシュネットワークにわたって伝送されたマルチキャストパケットに対してマルチキャスト転送ヘッダ(MFH)を提供する拡張マルチキャスト転送プロトコルを操作し、前記MFHは、送信ノードに関連づけられたインターネットプロトコル(IP)アドレスとは関係のない送信ノード用装置識別子を含み、さらに、同一のマルチキャストグループに関連づけられたメッシュネットワーク内のノードを特定するマルチキャストグループ識別子を含む、請求項1に記載のネットワーク処理装置。
- 前記プロセッサは、STATUSメッセージを送信し、該STATUSメッセージは、該STATUSメッセージを送信しているネットワーク処理装置と、特定されたネットワーク処理装置におけるデータ項目に対する最後の修正に関連づけられたグローバル修正値とを特定するものである、請求項1に記載のネットワーク処理装置。
- 前記プロセッサは、DATAメッセージを送信し、該DATAメッセージは、
該DATAメッセージを送信しているノードと、
該DATAメッセージを送信しているノードに対するグローバル修正値と、
該DATAメッセージに含まれているデータ項目を特定するデータ−名前と、
前記データ項目に対するデータ−修正値と、
前記データ−名前により特定された実際のデータ項目と、
を特定するものである、請求項1に記載のネットワーク処理装置。 - 前記プロセッサは、うまく受信できなかったデータに対するグローバル修正値を特定する否定応答(NACK)メッセージを受信する、請求項1に記載のネットワーク処理装置。
- 前記NACKメッセージは、前記特定されたグローバル修正値に関連づけられたネットワーク処理装置を特定するものである、請求項5に記載のネットワーク処理装置。
- 前記NACKメッセージは、うまく受信できなかった同一または異なるデータ項目にそれぞれ関連づけられた多数のグローバル修正値のグループを含む、請求項5に記載のネットワーク処理装置。
- 前記プロセッサは、前記NACKメッセージにおいて特定されたグローバル修正値と、データ項目を特定するデータ−名前と、前記特定されたデータ項目に対するデータ−修正番号とを特定するCHANGEメッセージを送信する、請求項5に記載のネットワーク処理装置。
- 前記プロセッサは、再送信が要求される前記CHANGEメッセージ中のデータ−名前を特定するRETRANSMITメッセージを受信し、前記プロセッサは、該RETRANSMITメッセージに応答して、前記特定されたデータ−名前に対するデータ項目を含むDATAメッセージを送信する、請求項8に記載のネットワーク処理装置。
- 前記プロセッサは、前記NACKメッセージ中のグローバル修正値に関連づけられたデータ項目の最終バージョンに対してのみ、前記CHANGEメッセージ中のグローバル修正値および関連データ−名前を送信する、請求項8に記載のネットワーク処理装置。
- 前記プロセッサは、前記データ項目に対するタイムスタンプを保持し、期限切れのタイムスタンプを有するデータ項目に対して要求された更新に対してEXPIREDメッセージを送出する、請求項8に記載のネットワーク処理装置。
- 前記プロセッサは、前記MFH中のトラフィックカテゴリ、優先順位テーブル、装置識別子、マルチキャストグループ識別子、および連続番号に従って、前記マルチキャストパケットの優先順位づけを行う、請求項2に記載のネットワーク処理装置。
- 前記プロセッサがマルチキャストパケット処理の優先順位づけに用いる前記優先順位テーブルおよびマルチキャストルーティングテーブルは、前記DDSメッセージを用いて前記ノードに自動的に配信される、請求項12に記載のネットワーク処理装置。
- メッシュネットワーク内の隣接するノードと論理固定無線通信を行い、さらに前記メッシュネットワーク内の他のノード間でメッセージを転送するホップを提供する多数の移動ノードを備え、前記ノードは、メッシュネットワークルーティングテーブルおよびマルチキャストパケット中のメッシュベースのマルチキャストヘッダの双方に従って、異なるノード間でマルチキャストパケットを転送するメッシュマルチキャストプロトコルを提供する、アドホックメッシュネットワーク。
- 前記マルチキャストパケットを送信した特定の装置に関連づけられたマルチキャストヘッダ中に装置識別子を含み、該装置識別子は、前記メッシュネットワーク内、および前記メッシュネットワークの外部の異なる位置に前記装置が移動したときに変化しない、請求項14に記載のネットワーク。
- 前記マルチキャストヘッダ中に、同一のマルチキャストグループのメンバである前記メッシュネットワーク内のノードを特定するソースルータID、マルチキャスト宛先アドレスおよびポートアドレスを含む、請求項15に記載のネットワーク。
- 前記マルチキャストヘッダ中に、同一のノードから送信され該ノードに返信された重複マルチキャストパケットを特定するために前記装置識別子と組み合わせて用いられる連続番号を含む、請求項15に記載のネットワーク。
- 前記マルチキャストヘッダ中に、前記ノードがパケットの処理および前記メッシュネットワーク内の他のノードへの転送の優先順位づけを行うために使用されるトラフィックカテゴリを含む、請求項14に記載のネットワーク。
- 前記メッシュネットワーク内の異なるノードに自動的に配信され、前記マルチキャストパケットの処理および転送の優先順位づけを行うために、前記マルチキャストヘッダ中の装置識別子、連続番号、マルチキャストグループアドレス、および前記トラフィックカテゴリと組み合わせて用いられる優先順位テーブルおよびマルチキャストルーティングテーブルを含む、請求項18に記載のネットワーク。
- 異なるノードに位置する異なるデータ項目のグループに対する変化を追跡し、前記異なるノード上の前記データ項目のバージョンを一定に保持するためのグローバル修正値(GRV)を用いたDDSメッセージを送信および受信するデータ配信サービス(DDS)を操作するノードの少なくとも一部を含む、請求項14に記載のネットワーク。
- 前記DDSメッセージは、前記GRVに関連づけられた個々のデータ項目に対するデータ−修正値を特定し、前記マルチキャストパケットの処理および転送の優先順位づけを行うために、前記マルチキャストヘッダ中の装置識別子、連続番号、マルチキャストグループアドレス、および前記トラフィックカテゴリと組み合わせて用いられる優先順位テーブルおよびマルチキャストルーティングテーブルを前記異なるノードに配信するために用いられる、請求項20に記載のネットワーク。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54335304P | 2004-02-09 | 2004-02-09 | |
US54335204P | 2004-02-09 | 2004-02-09 | |
PCT/US2005/003985 WO2005079026A1 (en) | 2004-02-09 | 2005-02-08 | Reliable message distribution with enhanced emfc for ad hoc mesh networks |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007527160A true JP2007527160A (ja) | 2007-09-20 |
Family
ID=34864520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006552352A Pending JP2007527160A (ja) | 2004-02-09 | 2005-02-08 | 拡張eMFCを用いたアドホックメッシュネットワークのための高信頼メッセージ配信方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1714446A1 (ja) |
JP (1) | JP2007527160A (ja) |
WO (1) | WO2005079026A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008211682A (ja) * | 2007-02-27 | 2008-09-11 | Fujitsu Ltd | 受信プログラム、送信プログラム、送受信システム、および送受信方法 |
JP2012527711A (ja) * | 2009-07-24 | 2012-11-08 | インテル コーポレイション | 明示的な管理交渉を行わないQoSパケット処理 |
JP5165003B2 (ja) * | 2008-02-22 | 2013-03-21 | 株式会社オートネットワーク技術研究所 | 車載用の電子制御装置 |
JP2013183252A (ja) * | 2012-03-01 | 2013-09-12 | Nec Commun Syst Ltd | アドホックネットワークにおける通信端末、端末間情報制御方法およびシステム |
JP2014068202A (ja) * | 2012-09-26 | 2014-04-17 | Iwatsu Electric Co Ltd | 無線メッシュネットワークシステムおよび無線通信装置 |
JP2014068203A (ja) * | 2012-09-26 | 2014-04-17 | Iwatsu Electric Co Ltd | 無線メッシュネットワークシステムおよび無線通信装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7623458B2 (en) * | 2005-09-30 | 2009-11-24 | The Boeing Company | System and method for providing integrated services across cryptographic boundaries in a network |
JP4513730B2 (ja) * | 2005-11-29 | 2010-07-28 | 沖電気工業株式会社 | 無線通信装置、無線通信方法及び無線通信システム |
US8169974B2 (en) | 2007-04-13 | 2012-05-01 | Hart Communication Foundation | Suspending transmissions in a wireless network |
US8570922B2 (en) | 2007-04-13 | 2013-10-29 | Hart Communication Foundation | Efficient addressing in wireless hart protocol |
US8325627B2 (en) | 2007-04-13 | 2012-12-04 | Hart Communication Foundation | Adaptive scheduling in a wireless network |
US8230108B2 (en) | 2007-04-13 | 2012-07-24 | Hart Communication Foundation | Routing packets on a network using directed graphs |
US8356431B2 (en) | 2007-04-13 | 2013-01-22 | Hart Communication Foundation | Scheduling communication frames in a wireless network |
WO2010008867A2 (en) | 2008-06-23 | 2010-01-21 | Hart Communication Foundation | Wireless communication network analyzer |
CN101873273A (zh) * | 2010-07-08 | 2010-10-27 | 华为技术有限公司 | 路由转发方法、路由节点及无线通信网络 |
FR3119068B1 (fr) * | 2021-01-20 | 2023-11-03 | Ad Waibe | Procédé de gestion des messages de missions héliportées et dispositif pour sa mise en œuvre |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0833294A4 (en) * | 1996-03-15 | 2007-11-28 | Sony Corp | DATA TRANSMITTER, DATA TRANSMISSION METHOD, DATA RECEIVER, DATA RECEIVING METHOD, DATA TRANSFER DEVICE AND METHOD FOR DATA TRANSFER |
US6404739B1 (en) * | 1997-04-30 | 2002-06-11 | Sony Corporation | Transmitter and transmitting method, receiver and receiving method, and transceiver and transmitting/receiving method |
-
2005
- 2005-02-08 WO PCT/US2005/003985 patent/WO2005079026A1/en not_active Application Discontinuation
- 2005-02-08 EP EP05713134A patent/EP1714446A1/en not_active Withdrawn
- 2005-02-08 JP JP2006552352A patent/JP2007527160A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008211682A (ja) * | 2007-02-27 | 2008-09-11 | Fujitsu Ltd | 受信プログラム、送信プログラム、送受信システム、および送受信方法 |
JP5165003B2 (ja) * | 2008-02-22 | 2013-03-21 | 株式会社オートネットワーク技術研究所 | 車載用の電子制御装置 |
JP2012527711A (ja) * | 2009-07-24 | 2012-11-08 | インテル コーポレイション | 明示的な管理交渉を行わないQoSパケット処理 |
JP2013183252A (ja) * | 2012-03-01 | 2013-09-12 | Nec Commun Syst Ltd | アドホックネットワークにおける通信端末、端末間情報制御方法およびシステム |
JP2014068202A (ja) * | 2012-09-26 | 2014-04-17 | Iwatsu Electric Co Ltd | 無線メッシュネットワークシステムおよび無線通信装置 |
JP2014068203A (ja) * | 2012-09-26 | 2014-04-17 | Iwatsu Electric Co Ltd | 無線メッシュネットワークシステムおよび無線通信装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1714446A1 (en) | 2006-10-25 |
WO2005079026A1 (en) | 2005-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007527160A (ja) | 拡張eMFCを用いたアドホックメッシュネットワークのための高信頼メッセージ配信方法 | |
US20050175009A1 (en) | Enhanced multicast forwarding cache (eMFC) | |
US8238288B2 (en) | Duplicate detection method for ad hoc network | |
TWI430619B (zh) | 無線網路中之路徑選擇 | |
US6845091B2 (en) | Mobile ad hoc extensions for the internet | |
US7054948B2 (en) | Collaborative host masquerading system | |
US20070189290A1 (en) | Dynamic multicasting scheme for mesh networks | |
Clausen et al. | Rfc7181: The optimized link state routing protocol version 2 | |
Kunz | Multicasting in mobile ad-hoc networks: achieving high packet delivery ratios | |
Gopinath et al. | An experimental study of the cache-and-forward network architecture in multi-hop wireless scenarios | |
Clausen et al. | The lln on-demand ad hoc distance-vector routing protocol-next generation (loadng) | |
Jin et al. | MANET for Disaster Relief based on NDN | |
Baek et al. | A lightweight SCTP for partially reliable overlay video multicast service for mobile terminals | |
Braun et al. | Energy-efficient TCP operation in wireless sensor networks | |
Jawhar et al. | Towards more reliable and secure source routing in mobile ad hoc and sensor networks | |
JP2009010575A (ja) | マルチキャスト通信のための中継装置、並びに端末装置 | |
Singh et al. | A survey on TCP (transmission control protocol) and UDP (user datagram protocol) over AODV routing protocol | |
JP4951695B2 (ja) | 無線ネットワークにおける経路選択 | |
Baumung et al. | Improving delivery ratios for application layer multicast in mobile ad hoc networks | |
JP4939579B2 (ja) | 無線ネットワークにおける経路選択 | |
Reddy et al. | Ant‐inspired level‐based congestion control for wireless mesh networks | |
Sathiyajothi | Performance analysis of routing protocols for manet using NS2 simulator | |
Hong et al. | Dynamic group support in LANMAR routing ad hoc networks | |
Hari | On demand temporary route recovery for frequent link failures in adhoc networks | |
Noorani et al. | Analysis of MANET routing protocols under TCP vegas with mobility consideration |