【国等の委託研究の成果に係る記載事項】(出願人による申告)平成26年度、独立行政法人情報通信研究機構「新世代ネットワークの実現に向けた欧州との連携による共同研究開発 課題ウ コンテンツ指向ネットワーキングによる省エネルギーコンテンツ配信の研究開発」、産業技術協力法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
前記記憶手段は、更に、前記テーブルにおいて、前記受信手段で受信したメッセージを転送するための接続先の代替接続先を特定する識別情報と、前記代替接続先と接続するために使用する代替インタフェースを指定する指定情報とを対応付けて管理し、
前記受信手段で受信したメッセージを転送するための接続先との通信が不能である場合に、前記メッセージに含まれるコンテンツを識別する名前情報に基づいて、前記テーブルから、該メッセージに対する前記代替インタフェースを特定する特定手段を更に備える
ことを特徴とする請求項1乃至6のいずれか1項に記載の中継装置。
【背景技術】
【0002】
・CCN(Content-Centric Network)
CCN(非特許文献1、特許文献1)では、コンテンツを送受信するホストの場所を示すIPアドレスを用いずに、各コンテンツに対する一意な名前(ID)を用いてルーティングを行う。このため、CCNでは、エンドユーザは、コンテンツが存在する場所を意識することなく、所望のコンテンツを取得することができる。また、ネットワーク上のCCNルータは中継したコンテンツをメモリ等の記憶媒体にキャッシュする。CCNルータは、記憶媒体にキャッシュしているコンテンツに対するエンドユーザ端末からの要求パケット(Interestパケット)を受信した場合、次ホップのCCNルータにInterestパケットを転送せずに、キャッシュしているコンテンツをDataパケットとして、Interestパケットの送信元のエンドユーザ端末に返信する。これにより、CCNルータでは、同一のコンテンツに対する複数のInterestパケットを受信する場合のトラヒック量を削減することができる。
【0003】
・Publish/Subscribe(Pub/Sub)システム
Pub/Subシステムでは、予約購読者(Subscriber(サブスクライバ))が所望のコンテンツを要求するための要求メッセージを登録する。これを受けて、発行者(Publisher(パブリッシャ))により、その要求メッセージに適合するコンテンツが生成されるとそのコンテンツを予約購読者が受信する。Pub/Subシステムでは、サブスクライバとパブリッシャは、通信を行うにあたり互いの情報を知る必要はない。つまり、パブリッシャは誰が予約購読しているか、どのくらい予約購読されているか、逆に、サブスクライバは、誰がコンテンツを発行しているかについて知る必要がない。また、サブスクライバとパブリッシャは同時にアクティブ(オンライン)である必要がない。
【0004】
・COPSS(Content-Oriented Pub/Sub System)
COPSS(非特許文献2)では、CCNのためのコンテンツ指向のPub/Subシステムを提案している。パブリッシャが提供するコンテンツには、Content Descriptor(CD)と呼ばれる名前が割り当てられる(例:/sports/football/Japan)。各コンテンツに、複数のCDを割り当てることができ、また、複数のコンテンツ(/sports、/sports/football/、/sports/football/Japan)を1つのCD(/sports)で識別することができる。サブスクライバの要求メッセージ(Subscribeメッセージ)は、Rendezvous Point(RP(ランデブーポイント))と呼ばれるノードに登録される。そして、Subscribeメッセージに適合するコンテンツがパブリッシャにより発行されると、コンテンツは、ランデブーポイントまで転送され、そのコンテンツはPublishメッセージとして、ランデブーポイントからサブスクライバに届けられる。COPSSルータでは、CCNルータで構成される要素に加え、以下の要素が提供される。
【0005】
<CCNルータの構成要素>
・Face:インタフェース
・FIB(Forwarding Information Base):Interestパケットを名前でルーティングするための経路表
定義例 oface = FIB_Table(Name)
・PIT(Pending Interest Table):Interestパケットが到着したfaceを一時的にsoft stateとして記録しておく表
同じ名前に対するInterestパケットが、複数のfaceから到着した場合、それらのすべてのfaceをPITのエントリとして記録する
到着したDataパケットは、それらのfaceに転送され、PITのエントリは消去される
CS(Content Store):経由したDataパケットを記録しておくためのキャッシュ
<COPSSルータの構成要素>
・RP Table:CDからRP
CD(CDが割り当てられたコンテンツを提供するRPの名前)に変換する表
定義例 RP
CD = RP_Table(CD)(記述例: /rendezvous = RP_Table(/sports))
・ST(Subscription Table):Subscribeメッセージが到着したfaceをsoft stateとして記録しておく表
定義例 oface = ST(CD) (記述例: face 1 = ST(/sports))
・Broker:COPSS内のすべてのコンテンツを格納するサーバの役割を果たすノード(クラウド)
非特許文献3では、データミュールと呼ばれる特別なルータを具備する端末(例えば、消防車、救急車、パトロールカー等の緊急車両に搭載される車載端末)を利用するシステムが提案されている。これは、ネットワークを介して複数の拠点間で情報通信を行っている環境において、災害等でそのネットワークが分断された場合には、データミュールが各拠点を巡回して情報を吸い上げ、配信することにより、情報の到達性を維持するシステムである。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【0017】
<システム構成>
図1は通信システムの構成を示す図である。
【0018】
サブスクライバ(Sub)101は、所望のコンテンツの取得を要求するノードである。パブリッシャ(Pub)102は、サブスクライバ(Sub)101が要求したコンテンツを発行するノードである。尚、サブスクライバ(Sub)101、パブリッシャ(Pub)102は、パーソナルコンピュータ(PC)やスマートフォン等の情報処理装置によって実現される。
【0019】
図1では、サブスクライバ(Sub)101、パブリッシャ(Pub)102は、携帯電話網や無線LAN等の無線ネットワークに接続可能なスマートフォンの例を示しているが、有線ネットワークに接続可能なパーソナルコンピュータでもかまわない。
【0020】
本実施形態のシステムでは、サブスクライバ(Sub)101及びパブリッシャ(Pub)102の他に、エッジルータ(ER)103、104及び106、データミュール(DM)105、プライマリランデブーポイント(RP)107a、及びセカンダリランデブーポイント(RP)107bを有する。尚、
図1におけるエッジルータ(ER)は、例えば、ICN(Information Centric Networking)ルータによって実現される。
【0021】
エッジルータ103及びエッジルータ104はそれぞれ、サブスクライバ(Sub)101及びパブリッシャ(Pub)102と直接接続されるルータである。データミュール(DM)105は、サブスクライバ(Sub)101−プライマリランデブーポイント(RP)107a−パブリッシャ(Pub)102間を移動するノード(移動中継装置)である。データミュール(DM)105は、エッジルータ103及びエッジルータ104と、プライマリランデブーポイント(RP)107a(エッジルータ106を介して)との間のリンクが切断されている場合、Subscribe/Publishメッセージをプライマリランデブーポイント(RP)107aまで中継することができる。
【0022】
尚、本実施形態では、データミュール(DM)105は、COPSSにおけるブローカの機能を有していても良い。また、
図1の通信システムを構成する各種機器を相互に接続するネットワークは、有線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせで構成することができる。
【0023】
図2は
図1の通信システムを構成する各種機器のハードウェア構成を示す図である。
【0024】
サブスクライバ(Sub)101、パブリッシャ(Pub)102、エッジルータ103、104及び106、データミュール(DM)105、及びプライマリランデブーポイント(RP)107a及びセカンダリランデブーポイント(RP)107aは、それぞれノードとしての情報処理装置によって実現される。この情報処理装置のハードウェア構成としては、例えば、CPU301、ROM302、RAM303、外部記憶装置304、及び通信装置305を有する。
【0025】
各種機器を実現する情報処理装置では、記憶媒体(ROM302、RAM303及び外部記憶装置304)のいずれかに記憶された、以下で説明する各種機器の機能及び動作、制御、処理を実現するプログラムがCPU301により実行される。そして、各種種機器は、通信装置305を用いて、各種機器間の通信を行う。
【0026】
尚、
図2では、各種機器を実現する情報処理装置は、1つの通信装置305を有するとしているが、例えば、接続する機器の数に応じて、複数の通信装置を有してもよい。また、各種機器は、以下に説明する各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、以下の全機能をコンピュータとプログラムにより実行させてもよい。また、通信装置305では、必要に応じて、各種操作及び情報の表示を実現するための操作部及び表示部を有していても良い。
【0027】
<機能構成>
図3及び
図4は、サブスクライバ(Sub)101及びパブリッシャ(Pub)102それぞれに接続されるエッジルータ(ER)103及び1エッジルータ(ER)104と、データミュール(DM)105の機能構成を示す図である。
【0028】
図3において、サブスクライバ(Sub)101の中継装置として機能するエッジルータ(ER)103は、ランデブーポイント(RP)107と接続するためのインタフェースであるface
RP401、データミュール(DM)105と接続するためのインタフェースであるface
DM402を備える。尚、図では、face
RP401とface
DM402とは別々のインタフェースとして示されているが、物理的に1つのインタフェースを論理的な複数のインタフェースとして使用することもできる。
【0029】
また、エッジルータ(ER)103は、サブスクライバ(Sub)107と接続するためのインタフェースであるface
Sub407を備える。更に、エッジルータ(ER)103は、論理ネットワーク管理部410(認証振分部403及び格納部405を含む)、転送部(ST)404、及び転送部(FIB)406を備える。
【0030】
認証振分部403は、転送部(FIB)404を参照して、メッセージ転送に使用するfaceのステータス情報(ON/OFF)で、サブスクライバ(Sub)107からのSubscriberメッセージを認証して、その中継先を決定する。ここで、ONは、リンクアップのステータスを示し、OFFはリンクダウンのステータスを示すものとする。また、格納部405は、認証振分部403によって決定された中継先となるランデブーポイント(RP)107あるいはデータミュール(DM)105に対応するfaceのステータス情報が示すステータスがOFFである場合、Subscriberメッセージを当該faceに一時的に格納する。
【0031】
図3において、データミュール(DM)105は、face
RP501、論理ネットワーク管理部510a(認証振分部502及び格納部504を含む)、転送部(ST)503、転送部(FIB)505、及びface
ER1506を備える。これらの内、face
RP501、論理ネットワーク管理部510a(認証振分部502及び格納部504を含む)、転送部(ST)503、及び転送部(FIB)505はそれぞれ、エッジルータ(ER)103のface
RP401、論理ネットワーク管理部410(認証振分部403及び格納部405を含む)、転送部(ST)404(ST)及び転送部(FIB)406と同様の機能を有する。face
ER1506は、エッジルータ(ER)103と接続するためのインタフェースである。
【0032】
図4において、パブリッシャ(Pub)102の中継装置として機能するエッジルータ(ER)104は、エッジルータ(ER)103と同様の構成を備える。エッジルータ(ER)104において、face
RP601、face
DM602、論理ネットワーク管理部610(認証振分部603及び格納部605を含む)、及び転送部(FIB)606はそれぞれ、エッジルータ(ER)103のface
RP401、face
DM402、論理ネットワーク管理部410(認証振分部403及び格納部405を含む)、及び転送部(FIB)406に対応する。一方で、エッジルータ(ER)104は、パブリッシャ(Pub)102と接続するためのインタフェースであるface
Pub608を備える。
【0033】
図4において、データミュール(DM)105は、
図3に示す構成に加えて、エッジルータ(ER)104と接続するためのインタフェースであるface
ER2507、論理ネットワーク管理部510b(認証振分部509及び格納部508を含む)を備える。これらの内、論理ネットワーク管理部510b(認証振分部509及び格納部508を含む)は、エッジルータ(ER)104からPublishメッセージを受信する場合に動作し、その機能は、論理ネットワーク管理部510a(認証振分部502及び格納部504を含む)と同様である。
図4では、便宜上、論理ネットワーク管理部510a(認証振分部502及び格納部504を含む)、論理ネットワーク管理部510b(認証振分部509及び格納部508を含む)とを別々に示しているが、それぞれ1つの論理ネットワーク管理部(認証振分部及び格納部を含む)として機能することも、もちろん可能である。
【0034】
<論理ネットワーク管理部>
本実施形態では、サブスクライバ(Sub)101(あるいはパブリッシャ(Pub)102)が自身の本来の拠点から新しい拠点へ移動することで、その接続先をエッジルータ(ER)104からエッジルータ(ER)103へ移動した場合の処理について説明する。
【0035】
この場合、サブスクライバ(Sub)101は、移動した接続先のエッジルータから通信を実現するために、そのエッジルータに対して、転送部(ST)で管理するSTの内容を更新するためのSub−Updateメッセージ(もしくは、新たなSubscribeメッセージ)を送信する。エッジルータの論理ネットワーク管理部は、受信するメッセージの内容を解析し、受信したメッセージがSub−Updateメッセージである場合には、それに対応するSTのエントリを更新する。また、受信したメッセージが新たなSubscribeメッセージである場合には、それに対応するエントリをSTに追記する。
【0036】
このような更新(あるいは追記)を実行した場合には、論理ネットワーク管理部は、自身の接続先となる中継装置(データミュール、エッジルータ、あるいはランデブーポイント等)に対して、STのエントリの更新(あるいは追記)を実行するためのメッセージを発行する。
【0037】
以上の処理を、各中継装置が連携してSTのエントリの更新(あるいは追記)を順次実行することで、サブスクライバ(Sub)101の接続先が移動した場合でも、その移動先でサブスクライバ(Sub)101が確実にコンテンツを取得できるようにする。
【0038】
また、本実施形態では、ランデブーポイントの故障等の障害対策のために、ランデブーポイント(RP)を冗長化している。例えば、
図1に示す例では、プライマリランデブーポイント(RP)107aとセカンダリランデブーポイント(RP)107bを設置しておき、どちらか一方が故障した場合には、他方に切り替えて処理を実行できるようにしている。
【0039】
この2つのランデブーポイント(RP)を利用可能とするために、各中継装置の論理ネットワーク管理部は、この2つのランデブーポイント(RP)までの経路を1つの論理インタフェースで統合管理する。この論理インタフェースを論理ネットワーク管理部で実現することにより、2つのランデブーポイント(RP)との接続を(論理的に)シームレスに切り替えることができる。この構成により、パブリッシャ(Pub)102の接続先が移動した場合でも、その移動先でパブリッシャ(Pub)102が確実にコンテンツを発行できるようにする。尚、
図1では、2つのランデブーポイント(RP)で冗長化する構成としているが、少なくとも2台以上のランデブーポイント(RP)で冗長化するようにしても良い。
【0040】
ここで、中継装置(エッジルータ、データミュール、ランデブーポイント)の各論理ネットワーク管理部で実現される論理インタフェースの具体例を
図5を用いて説明する。尚、
図5では、
図1〜
図3で示す構成において、論理インタフェースに関わる構成要素を抜き出したものとなっている。
【0041】
メッセージを、サブスクライバ101/パブリッシャ102から、ランデブーポイントに送信するためには、エッジルータ(ER)103及びエッジルータ(ER)104やデータミュール(DM)105は、ランデブーポイント(RP)107a/ランデブーポイント(RP)107bまでの転送情報を有する必要がある。
【0042】
エッジルータ(ER)103(あるいはエッジルータ(ER)104)とデータミュール(DM)105間、及びデータミュール(DM)105とランデブーポイント(RP)107a/ランデブーポイント(RP)107b間の接続は、断続的に確立するため、エッジルータ(ER)103(あるいはエッジルータ(ER)104)とデータミュール(DM)105は、論理インタフェースの状態を管理する必要がある。
【0043】
そこで、本実施形態では、
図5に示すように、中継装置の転送部(FIB/ST)で管理する情報として、中継装置が備える物理的なインタフェース(face)を、一時的に接続するノードに対する論理的なインタフェースとして機能させるための代替インタフェースを定義する。この一時的に接続するノードには、データミュール(DM)105、ランデブーポイント(RP)107a/ランデブーポイント(RP)107bがなり得る。また、この代替インタフェースは、中継装置に未使用(空き)の物理インタフェースがあれば、その物理インタフェースを代替インタフェースとして設定することができる。あるいは、本来の接続先との通信が不能である物理インタフェースを一時的に利用する論理的な論理インタフェースとして、代替インタフェースを設定することができる。
【0044】
具体的には、FIB/STにおいて、障害発生時のような、通常使用していた接続先が使用不能(あるいは通信が不能)である場合に、その接続先に代えて一時的に接続する代替接続先と接続するための代替インタフェース(face)を指定する指定情報と、そのfaceを使用して接続する代替接続先を特定する識別情報(例えば、プレフィックス(/rendezvous、/mule等))とを対応づけて管理する。ここで、論理インタフェースは、代替接続先となるノードのMACアドレスやIPアドレス等の識別情報により、適切な転送先を管理する。
【0045】
尚、FIB/STでは、代替インタフェースに対する指定情報及び識別情報に加えて、通常使用時における接続先と接続するためのインタフェースを指定する指定情報と、そのインタフェースを使用して接続する接続先を特定する識別情報とを対応づけて管理していることは言うまでもない。
【0046】
また、論理インタフェースは、keep−aliveメッセージ等の所定メッセージを使用することにより、論理インタフェースとして利用するfaceのステータス(リンクアップやリンクダウン)を確認し、その内容を示すステータス情報を保持することができる。このステータス情報を、更に、FIB/STに追加して管理しても良いし、必要の処理の際に、都度、確認するようにしても良い。
【0047】
また、論理インタフェースは、リンクダウンの間、メッセージを格納するためのキュー(Txキュー)を有する。これは、例えば、格納部405/505等の各中継装置の格納部で実現される。そして、論理インタフェースがリンクアップになった時に、キューに格納されているメッセージは、FIB/STで記録されている論理インタフェースに対応付けられている転送先(中継装置)へ転送される。
【0048】
ここで、ランデブーポイントと直接接続することがあるデータミュール(DM)105においては、論理ネットワーク管理部510aで実現する論理インタフェースでは、
図6に示すように、その接続先として、プライマリランデブーポイント(RP)107a及びセカンダリランデブーポイント(RP)107bが割り当てられることになる。これにより、どちらか一方のランデブーポイントが故障した場合には、他方のランデブーポイントに切り替えて処理を実行できる。ここで、プライマリランデブーポイント(RP)107a及びセカンダリランデブーポイント(RP)107bは、自身で管理するコンテンツ等の情報が互いに同一となるように定期的に同期を図っている。
【0049】
尚、中継装置が管理するテーブル(FIB/ST)への論理インタフェースの設定や更新は、例えば、中継装置に接続することが可能なホスト装置(パーソナルコンピュータ等の情報処理装置)で実現することができる。格納部で一時的に保持するメッセージを保持する時間(一定時間)も、ホスト装置を介して設定することができる。
【0050】
また、ホスト装置では、FIB/STで管理される各エントリから任意のエントリを編集(削除、変更、追加等を含む)することもできる。更には、用途や目的に応じて、エントリ毎に異なる一定時間を設定するようにしても良い。例えば、代替接続先となるデータミュール(DM)は、その提供元によって、接続対象となる中継装置が設置される各拠点に巡回する頻度が異なるので、例えば、頻度が高いデータミュール(DM)に対する論理インタフェースに対する一定時間は短くして、頻度が低いデータミュール(DM)に対する論理インタフェースに対する一定時間は長くするようにして、中継装置の処理負担を軽減したり、リソースの有効活用を促進させることができる。
【0051】
また、中継装置でメッセージを保持する格納部の容量を監視しておいて、その残容量に応じて、保持しているメッセージを一括で破棄したり、保持しているメッセージの内、最古のメッセージだけを破棄するようにしても良い。
【0052】
また、通信が不能とは、インタフェースそのものに物理的な障害や故障に起因して、接続先と通信ができない場合、インタフェースそのものは正常であるが、接続先そのものの故障あるいはインタフェースと接続先との間のネットワークそのものの物理的な故障や切断に起因して、接続先と通信ができない場合の少なくとも一方を含み得る概念である。また、無線通信の場合は、通信範囲内に通信対象が存在しない場合も、通信が不能と言える。
【0053】
<中継装置のメッセージ処理手順>
以下、中継装置(エッジルータ(ER)103、エッジルータ(ER)104あるいはデータミュール(DM)105)におけるメッセージ処理手順について説明する。尚、メッセージ処理手順は、エッジルータ(ER)103、エッジルータ(ER)104及びデータミュール(DM)105それぞれに内蔵されるCPU301が、ROM302に記憶されているプログラムをRAM303上に読み出し、実行することで実現される。
【0054】
ここでは、中継装置が、サブスクライバ(Sub)101からSub−Updateメッセージ、新規Subscribeメッセージ、登録済Subscribeメッセージの3種類のいずれかを受信する場合を説明する。特に、普段利用する中継装置がある拠点から別の中継装置がある拠点へ移動した場合には、サブスクライバ(Sub)101は、Sub−Updateメッセージあるいは新規Subscribeメッセージを送信することになる。あるいは、サブスクライバ(Sub)101として機能するノード自体が故障等で使用不能となり、以降、代替ノードで中継装置へ接続する場合にも、サブスクライバ(Sub)101は、Sub−Updateメッセージあるいは新規Subscribeメッセージを送信することになる。
【0055】
ここで、Sub−Updateメッセージ、新規Subscirbeメッセージ及び登録済Subscribeメッセージはいずれも、コンテンツの名前(記憶場所)を示す名前情報であるCD(Contents Descriptor)(例えば、/sports)が割り当てられている。また、これらの3種類のメッセージを識別可能とするためのフラグが各メッセージに付与されている。中継装置の論理ネットワーク管理部は、このフラグによって、受信したメッセージの種類を判定することができる。
【0056】
ここで、Sub−Updateメッセージは、既存のSTエントリを更新するためのメッセージである。新規Subscirbeメッセージは、新規にコンテンツの予約購読を行うためのメッセージである。登録済Subscribeメッセージは、過去にコンテンツンの予約購読を行うことで既にそれに対応するSTエントリが存在し、再度、そのコンテンツを取得するためのメッセージである。
【0057】
以下、具体例として、中継装置として、
図4のエッジルータ(ER)103でメッセージを受信する場合を、
図7のフローチャートを用いて説明する。
【0058】
S101で、CPU301は、論理ネットワーク管理部410によって、face
Sub407で、サブスクライバ(Sub)101からメッセージを受信し、その受信したメッセージに含まれるフラグに基づいて、そのメッセージの種類を判定する。
【0059】
判定の結果、メッセージが新規Subscirbeメッセージである場合、S102で、CPU301は、論理ネットワーク管理部410によって、転送部(ST)404が管理するSTに、その新規Subscribeメッセージに含まれるCDと同一名のSTエントリが既に存在するか否かを判定する。同一名のSTエントリが既に存在する場合(S102でYES)、S103で、CPU301は、そのSTエントリに新規Subscribeメッセージを受信したface名を追加して、処理を終了する。
【0060】
一方、同一名のSTエントリが存在しない場合(S102でNO)、S104で、新規Subscribeメッセージに含まれるCDと新規Subscribeメッセージを受信したface名とを対応づけた新規エントリをSTに追加して、処理を終了する。
【0061】
判定の結果、メッセージがSub−Updateメッセージである場合、S109で、CPU301は、論理ネットワーク管理部410によって、転送部(ST)404が管理するSTの内、Sub−Updateメッセージで指定されるSTエントリのface名を、新規Subscribeメッセージを受信したface名に置換(更新)して、処理を終了する。尚、Sub−Updateメッセージで指定されるSTエントリが、転送部(ST)404が管理するSTに存在しない場合は、何もせず処理を終了する。
【0062】
判定の結果、メッセージが登録済Subscribeメッセージである場合、S105で、CPU301は、論理ネットワーク管理部410によって、転送部(FIB)406による転送処理を開始する。ここでは、転送部(FIB)406が管理するFIBを参照して、Subscribeメッセージの転送に使用するfaceを特定する。ここでは、例えば、rendezvous/sportsに対応するfaceとしてface
RP401と、mule/sportsに対応するfaceとしてface
DM402を特定する。
【0063】
S106で、CPU301は、論理ネットワーク管理部410によって、登録済Subscribeメッセージ、転送部(FIB)406が管理するFIBに、その登録済Subscribeメッセージに含まれるCDと同一名のFIBエントリが既に存在するか否かを判定する。同一名のFIBエントリが存在する場合(S106でYES)、S107で、CPU301は、そのFIBエントリで指定される転送先にその登録済Subscribeメッセージを転送する。また、この際、STの内容が更新(削除あるいは追加を含む)されている場合には、その更新内容を含む登録済Subscribeメッセージを転送する。これにより、転送先の中継装置では、受信した登録済SubscribeメッセージにSTの更新内容が含まれている場合には、その更新内容に従って、自身のSTを更新する。
【0064】
一方、同一名のFIBエントリが存在しない場合(S106でYES)、S107で、CPU301は、その登録済Subscribeメッセージを破棄する。
【0065】
図7では、エッジルータ(ER)103でメッセージを受信する場合を例に挙げて説明しているが、エッジルータ(ER)104やデータミュール(DM)105等の中継装置においても同様の処理を実現することができる。
【0066】
また、中継装置に対するメッセージの送受信は、例えば、拠点を移動するノードに対して提供されるGUI(グラフィックユーザインタフェース)によって生成されるサービス専用画面(例えば、メッセンジャーやメーラー等のデータ送受信アプリケーションによって生成される)によって行う。このサービス専用画面では、Subscribeメッセージ、Sub−Updateメッセージ、Publishメッセージ、DeSubscribeメッセージ(サブスクライバの登録状態を解除するためのメッセージ)、DePublishメッセージ(パブリッシャの登録状態を解除するためのメッセージ)等の各種メッセージを送信するための各種コントロールが構成されている。
【0067】
また、このサービス専用画面は、中継装置で動作する専用プログラムによって生成して、ノードに提供されても良いし、ノード自身に実装される専用プログラムによって生成されても良い。
【0068】
また、
図7では、Sub−Updateメッセージを受信した場合に、更新対象の指定された既存のSTエントリを更新する構成としているが、これに限定されない。例えば、新規Subscirbeメッセージを受信した場合でも、その新規Subscirbeメッセージに含まれるCDに対応するSTエントリが既に存在する場合には、そのSTエントリのface名を、新規Subscribeメッセージを受信したface名に置換(更新)しても良い。
【0069】
また、
図7では、中継装置が受信するメッセージに応じて、その中継装置がSTエントリを更新する構成としているが、これに限定されない。例えば、所定時間毎(例えば、1時間毎)に、中継装置が自身に接続し得るノードを探索するポーリングを実行して、更新すべきSTエントリの有無を判定するようにしても良い。また、中継装置がデータミュール(DM)105である場合には、各拠点を巡回するための経路計画に沿って、各拠点の進入/退出時等の特定のイベントが発生する毎に、ポーリングを行うようにしても良い。
【0070】
また、
図7では、中継装置が、サブスクライバ(Sub)101から受信するメッセージに応じてSTエントリを更新(追加)する構成としているが、これに限定されない。同様の仕組みを、パブリッシャ(Pub)102から受信するメッセージに応じて、STエントリを更新(追加)することができる。この場合、新規Subscirbeメッセージ及び登録済Subscribeメッセージに対して、新規Publishメッセージ及び登録済Publishメッセージが使用されることになる。これらのメッセージにも、自身を識別可能とするためのフラグが同様に付与されている。これにより、中継装置は、パブリッシャ(Pub)102の移動に応じて、パブリッシャ(Pub)102は、例えば、パブリッシャ(Pub)102からプライマリランデブーポイント(RP)107aまでの経路を転送部(FIB)606を介してPublishメッセージを転送する。その後、プライマリランデブーポイント(RP)107aからサブスクライバ(Sub)101までの経路を、転送部(ST)404を介してPublishメッセージを転送することになる。
【0071】
以上説明したように、本実施形態によれば、CCNのためのPublish/Subscribeシステムにおいて、災害/緊急時等で通常利用しているネットワークが分断されるような状態が発生しても、ノード移動やリンク断に対応することができる。
【0072】
また、中継装置で管理する中継情報(ST)を必要に応じて更新することで、中継装置の記憶資源を有効活用し、また、中継装置における中継情報を利用する処理の負荷を軽減し、中継装置間の通信トラフィックを軽減することができる。