JP6196564B2 - 中継装置及びその制御方法、プログラム - Google Patents

中継装置及びその制御方法、プログラム Download PDF

Info

Publication number
JP6196564B2
JP6196564B2 JP2014030771A JP2014030771A JP6196564B2 JP 6196564 B2 JP6196564 B2 JP 6196564B2 JP 2014030771 A JP2014030771 A JP 2014030771A JP 2014030771 A JP2014030771 A JP 2014030771A JP 6196564 B2 JP6196564 B2 JP 6196564B2
Authority
JP
Japan
Prior art keywords
message
interface
transfer
face
communication
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.)
Expired - Fee Related
Application number
JP2014030771A
Other languages
English (en)
Other versions
JP2015156569A (ja
JP2015156569A5 (ja
Inventor
浩平 杉山
浩平 杉山
敦士 田上
敦士 田上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2014030771A priority Critical patent/JP6196564B2/ja
Publication of JP2015156569A publication Critical patent/JP2015156569A/ja
Publication of JP2015156569A5 publication Critical patent/JP2015156569A5/ja
Application granted granted Critical
Publication of JP6196564B2 publication Critical patent/JP6196564B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Description

本発明は、コンテンツの名前に基づいて通信を行うネットワーク(以下、CCN: Content−Centric Network)のためのPublish/Subscribeシステムにおいて、ノード移動やリンク断に対応する中継技術に関するものである。
・CCN(Content-Centric Network)
CCN(非特許文献1、特許文献1)では、コンテンツを送受信するホストの場所を示すIPアドレスを用いずに、各コンテンツに対する一意な名前(ID)を用いてルーティングを行う。このため、CCNでは、エンドユーザは、コンテンツが存在する場所を意識することなく、所望のコンテンツを取得することができる。また、ネットワーク上のCCNルータは中継したコンテンツをメモリ等の記憶媒体にキャッシュする。CCNルータは、記憶媒体にキャッシュしているコンテンツに対するエンドユーザ端末からの要求パケット(Interestパケット)を受信した場合、次ホップのCCNルータにInterestパケットを転送せずに、キャッシュしているコンテンツをDataパケットとして、Interestパケットの送信元のエンドユーザ端末に返信する。これにより、CCNルータでは、同一のコンテンツに対する複数のInterestパケットを受信する場合のトラヒック量を削減することができる。
・Publish/Subscribe(Pub/Sub)システム
Pub/Subシステムでは、予約購読者(Subscriber(サブスクライバ))が所望のコンテンツを要求するための要求メッセージを登録する。これを受けて、発行者(Publisher(パブリッシャ))により、その要求メッセージに適合するコンテンツが生成されるとそのコンテンツを予約購読者が受信する。Pub/Subシステムでは、サブスクライバとパブリッシャは、通信を行うにあたり互いの情報を知る必要はない。つまり、パブリッシャは誰が予約購読しているか、どのくらい予約購読されているか、逆に、サブスクライバは、誰がコンテンツを発行しているかについて知る必要がない。また、サブスクライバとパブリッシャは同時にアクティブ(オンライン)である必要がない。
・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ルータで構成される要素に加え、以下の要素が提供される。
<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からRPCD(CDが割り当てられたコンテンツを提供するRPの名前)に変換する表
定義例 RPCD = RP_Table(CD)(記述例: /rendezvous = RP_Table(/sports))
・ST(Subscription Table):Subscribeメッセージが到着したfaceをsoft stateとして記録しておく表
定義例 oface = ST(CD) (記述例: face 1 = ST(/sports))
・Broker:COPSS内のすべてのコンテンツを格納するサーバの役割を果たすノード
COPSSにおけるsubscribe/publishの手順を図1に示す。COPSSでは、サブスクライバ(Sub)とエッジルータ(COPSSルータ)との間が、障害等での発生でオフラインになった場合、ブローカ(Broker)がサブスクライバの代わりに、所望のコンテンツをランデブーポイント(RP)を介して予約購読し、それに対するパブリシャ(Pub)からの所望のPublishメッセージを格納する。そして、サブスクライバが次にオンラインになった場合、ブローカから所望のコンテンツが届けられることになる。
特開2009−277234号公報
V. Jacobson, D. K. Smettres, J. D. Thornton, M. F. Plass, N. H. Briggs, and R. L. Braynard, "Networking named content," in Proceedings of CoNEXT2009, pp. 1-12, Dec. 2009 J. Chen, M. Arumaithurai, L. Jiao, X. Fu, and K.K. Ramakrishnan, "COPSS: An Efficient Content Oriented Publish/Subscribe System," in Proceedings of the 7th ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS), Oct. 2012
COPSSでは、パブリッシャとランデブーポイント/ブローカ間は常に接続されていることを前提としている。COPSSルータとランデブーポイント/ブローカ間に何らかの障害が発生した場合、パブリッシャは、あるPublishメッセージをランデブーポイントまで転送することができない。仮に、COPSSルータとランデブーポイント/ブローカ間のリンクが復旧されたとしても、パブリッシャがオフラインである場合、パブリッシャがオンラインになるまで、そのPublishメッセージは転送されない。
同様に、COPSSルータとランデブーポイント/ブローカ間に何らかのリンク障害が発生した場合、サブスクライバは、所望のコンテンツを受信することができない。このように、何らかのリンクの障害やパブリシャの移動等を想定した環境では、リンクの復旧までの間、および、パブリシャがオフラインである間に、当該Subscriberメッセージ/Publishメッセージを維持して、傷害の復旧後に、意図する宛先へメッセージを確実に転送できることが望ましい。
本発明は上記の課題を鑑みてなされたものであり、メッセージの到達性を確実かつ適切に維持することができる中継技術を提供することを目的とする。
本発明の一態様によると、インタフェースを介して、メッセージを中継する中継装置は、コンテンツを指定するメッセージを受信する受信手段と、前記受信手段で受信したメッセージが指定するコンテンツに基づき、当該メッセージを転送するための転送インタフェースと、代替インタフェースと、を判定する判定手段と、前記判定手段が判定した前記転送インタフェースの接続先との通信が可能であると、前記メッセージを前記転送インタフェースから送信し、前記判定手段が判定した前記転送インタフェースの接続先との通信が不能であり、かつ、前記判定手段が判定した前記代替インタフェースの接続先との通信が可能であると、前記メッセージを前記代替インタフェースから送信し、前記判定手段が判定した前記転送インタフェース及び前記代替インタフェースの接続先との通信が共に不能であると、一定時間、前記メッセージを保持する転送保存処理を行う転送手段と、前記転送インタフェース又は前記代替インタフェースから送信したメッセージが指定するコンテンツを記憶する記憶手段と、を備えており、前記転送手段は、前記受信手段で受信したメッセージが指定するコンテンツが前記記憶手段に記憶されていないと、前記転送保存処理を実行することを特徴とする
本発明によれば、メッセージの到達性を確実かつ適切に維持することができる。
COPSSにおけるメッセージの処理手順の一例を示す図である。 通信システムの構成を示す図である。 図1の通信システムを構成する各種機器のハードウェア構成を示す図である。 エッジルータ及びデータミュールの機能構成を示す図である。 エッジルータ及びデータミュールの機能構成を示す図である。 エッジルータが実行する処理手順を示すフローチャートである。 エッジルータが実行する処理手順を示すフローチャートである。 データミュールが実行する処理手順を示すフローチャートである。 データミュールが実行する処理手順を示すフローチャートである。 通信システムの具体例を説明するための図である。 論理インタフェースを説明するための図である。
以下、本発明の実施形態について図面を用いて詳細に説明する。
<システム構成>
図2は通信システムの構成を示す図である。
サブスクライバ(Sub)101は、所望のコンテンツの取得を要求するノードである。パブリッシャ(Pub)102は、サブスクライバ(Sub)101が要求したコンテンツを発行するノードである。尚、サブスクライバ(Sub)101、パブリッシャ(Pub)102は、パーソナルコンピュータ(PC)やスマートフォン等の情報処理装置によって実現される。
図2では、サブスクライバ(Sub)101、パブリッシャ(Pub)102は、携帯電話網や無線LAN等の無線ネットワークに接続可能なスマートフォンの例を示しているが、有線ネットワークに接続可能なパーソナルコンピュータでもかまわない。
本実施形態のシステムでは、サブスクライバ(Sub)101及びパブリッシャ(Pub)102の他に、エッジルータ(ER1)103及びエッジルータ(ER2)104、データミュール(DM)105、ブローカ106、ランデブーポイント(RP)107を有する。尚、図2では、ランデブーポイント(RP)107とブローカ106は、物理的に異なる端末として示されているが、両者の機能を包含する1つの端末で実現されても良い。
エッジルータ(ER1)103及びエッジルータ(ER2)104はそれぞれ、サブスクライバ(Sub)101及びパブリッシャ(Pub)102と直接接続されているルータである。データミュール(DM)105は、エッジルータ(ER1)103及びエッジルータ(ER2)104とランデブーポイント(RP)107(あるいはブローカ106を介して)との間のリンクが切断されている場合、Subscribe/Publishメッセージをランデブーポイント(RP)107まで中継し、サブスクライバ(Sub)101−ランデブーポイント(RP)107−パブリッシャ(Pub)102間を移動するノードである。
尚、本実施形態では、データミュール(DM)105は、COPSSにおけるブローカの機能を有する場合を例に挙げて説明する。また、図2の通信システムを構成する各種機器を相互に接続するネットワークは、有線ネットワーク、無線ネットワーク、及びそれらの任意の組み合わせで構成することができる。
図3は図2の通信システムを構成する各種機器のハードウェア構成を示す図である。
サブスクライバ(Sub)101、パブリッシャ(Pub)102、エッジルータ(ER1)103及びエッジルータ(ER2)104、データミュール(DM)105、ブローカ106、及びランデブーポイント(RP)107は、それぞれノードとしての情報処理装置によって実現される。この情報処理装置のハードウェア構成としては、例えば、CPU301、ROM302、RAM303、外部記憶装置304、及び通信装置305を有する。
各種機器を実現する情報処理装置では、記憶媒体(ROM302、RAM303及び外部記憶装置304)のいずれかに記憶された、以下で説明する各種機器の機能及び動作、制御、処理を実現するプログラムがCPU301により実行される。そして、各種種機器は、通信装置305を用いて、各種機器間の通信を行う。
尚、図3では、各種機器を実現する情報処理装置は、1つの通信装置305を有するとしているが、例えば、接続する機器の数に応じて、複数の通信装置を有してもよい。また、各種機器は、以下に説明する各機能を実行する専用のハードウェアを備えてもよいし、一部をハードウェアで実行し、プログラムを動作させるコンピュータでその他の部分を実行してもよい。また、以下の全機能をコンピュータとプログラムにより実行させてもよい。
<概要>
本実施形態では、分断されたネットワーク(エッジルータ(ER1)103(あるいはエッジルータ(ER2)104)−ランデブーポイント(RP)107間が直接接続されていないネットワーク)において、各ノード(例えば、エッジルータ(ER1)103/エッジルータ(ER2)104)は、受信したSubscribe/Publisherメッセージをランデブーポイント(RP)107に転送するためのインタフェースである「face」が動作(リンクアップ/リンクダウン)しているかをチェックする。
ランデブーポイント(RP)107へのfaceが動作している場合、エッジルータ(ER)103/エッジルータ(ER2)104は、そのfaceにメッセージを転送する。一方、ランデブーポイント(RP)107へのfaceが動作していない場合、エッジルータ(ER)103/エッジルータ(ER2)104は、メッセージを、ある一定時間格納する。一定時間の間に、エッジルータ(ER)103/エッジルータ(ER2)104とデータミュール(DM)105間が接続されれば(faceがリンクアップされれば)、エッジルータ(ER)103/エッジルータ(ER2)104は、そのメッセージをデータミュール(DM)105へ転送する。
同様に、データミュール(DM)105において、メッセージは一定時間格納され、ランデブーポイント(RP)107まで転送される。このように、様々な拠点を移動するデータミュール(DM)105でメッセージを中継することにより、結果的に、サブスクライバ(Sub)101、パブリッシャ(Pub)102、及びランデブーポイント(RP)107の接続性を確保する。
<機能構成>
図4及び図5は、サブスクライバ(Sub)101及びパブリッシャ(Pub)102それぞれに接続されるエッジルータ(ER1)103及び1エッジルータ(ER2)104と、データミュール(DM)105の機能構成を示す図である。
図4において、サブスクライバ(Sub)101の中継装置として機能するエッジルータ(ER1)103は、ランデブーポイント(RP)107と接続するためのインタフェースであるfaceRP401、データミュール(DM)105と接続するためのインタフェースであるfaceDM402を備える。尚、図では、faceRP401とfaceDM402とは別々のインタフェースとして示されているが、物理的に1つのインタフェースを論理的な複数のインタフェースとして使用することもできる。
また、エッジルータ(ER1)103は、サブスクライバ(Sub)107と接続するためのインタフェースであるfaceSub407を備える。更に、エッジルータ(ER1)103は、認証振分部403、STを備える転送部(ST)404、格納部405、及びFIBを備える転送部(FIB)406を備える。
認証振分部403は、転送部(FIB)404を参照して、メッセージ転送に使用するfaceのステータス情報(ON/OFF)で、サブスクライバ(Sub)107からのSubscriberメッセージを認証して、その中継先を決定する。ここで、ONは、リンクアップのステータスを示し、OFFはリンクダウンのステータスを示すものとする。また、格納部405は、認証振分部403によって決定された中継先となるランデブーポイント(RP)107あるいはデータミュール(DM)に対応するfaceのステータス情報が示すステータスがOFFである場合、Subscriberメッセージを当該faceに一時的に格納する。
図4において、データミュール(DM)105は、faceRP501、認証振分部502、転送部(ST)503、格納部504、転送部(FIB)505、faceER1506を備える。これらの内、faceRP501、認証振分部502、転送部(ST)503、格納部504、及び転送部(FIB)505はそれぞれ、エッジルータ(ER1)103のfaceRP401、認証振分部403、格納部405、及び転送部(FIB)406と同様の機能を有する。faceER1506は、エッジルータ(ER1)103と接続するためのインタフェースである。
図5において、パブリッシャ(Pub)102の中継装置として機能するエッジルータ(ER2)104は、エッジルータ(ER1)103と同様の構成を備える。エッジルータ(ER2)104において、faceRP601、faceDM602、認証振分部603、格納部605、及び転送部(FIB)606はそれぞれ、エッジルータ(ER1)103のfaceRP401、faceDM402、認証振分部403、格納部405、及び転送部(FIB)406に対応する。一方で、エッジルータ104は、パブリッシャ(Pub)102と接続するためのインタフェースであるfacePub608を備える。
図5において、データミュール(DM)105は、図4に示す構成に加えて、エッジルータ(ER2)104と接続するためのインタフェースであるfaceER2507、認証振分部509、格納部508を備える。これらの内、認証振分部509及び格納部508は、エッジルータ(ER2)104からPublishメッセージを受信する場合に動作し、その機能は、認証振分部502及び格納部504と同様である。図5では、便宜上、認証振分部502及び格納部504、認証振分部509及び格納部508とを別々に示しているが、それぞれ1つの認証振分部及び格納部として機能することも、もちろん可能である。
以下、エッジルータ(ER1)103及びエッジルータ(ER2)104におけるメッセージ処理手順について説明する。
尚、メッセージ処理手順は、エッジルータ(ER1)103及びエッジルータ(ER2)104それぞれに内蔵されるCPU301が、ROM302に記憶されているプログラムをRAM303上に読み出し、実行することで実現される。
<エッジルータ(ER1)103にSubscribeメッセージが到着した場合>
ここでは、図4において、コンテンツの名前(記憶場所)を示す名前情報であるCD(Contents Descriptor)として/sportsが割り当てられているSubscribeメッセージを受信する場合を、図6のフローチャートを用いて説明する。
S101で、CPU301は、faceSub407でSubscribeメッセージを受信する。
このSubscribeメッセージを受信すると、CPU301は、転送部(ST)404と転送部(FIB)406における処理を並列して実行する。
まず、転送部(ST)404における処理として、S102で、CPU301は、転送部(ST)404が管理するSTに、受信したSubscribeメッセージに含まれるCDと同一名のSTエントリが既に存在するか否かを判定する。同一名のSTエントリが既に存在する場合(S102でYES)、S103で、CPU301は、そのSTエントリにSubscribeメッセージを受信したface名を追加して、処理を終了する。
一方、同一名のSTエントリが存在しない場合(S102でNO)、S104で、Subscribeメッセージに含まれるCDとSubscribeメッセージを受信したface名とを対応づけた新規エントリをSTに追加して、処理を終了する。
転送部(FIB)406における処理として、S105で、CPU301は、転送部(FIB)406による転送処理を開始する。ここでは、転送部(FIB)406が管理するFIBを参照して、Subscribeメッセージの転送に使用するfaceを特定する。ここでは、rendezvous/sportsに対応するfaceとしてfaceRP401と、mule/sportsに対応するfaceとしてfaceDM402を特定する。
S106で、CPU301は、認証振分部403によってfaceRP401のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceRP401のステータスがONである場合、S107で、CPU301は、認証振分部403を介してfaceRP401にSubscribeメッセージを転送する。一方、faceRP401のステータスがOFFである場合、S108で、CPU301は、認証振分部403によってfaceDM402のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceDM402のステータスがONである場合、S109で、CPU301は、認証振分部403を介してfaceDM402にSubscribeメッセージを転送する。一方、faceDM402のステータスがOFFである場合、S110で、CPU301は、一定時間、Subscribeメッセージを格納部405へ格納する。
一定時間の経過後、S111で、CPU301は、faceDM402のステータスがONであるか否かを判定する。faceDM402のステータスがONになっている場合(S111でYES)、S112で、CPU301は、認証振分部403を介してfaceDM402にSubscribeメッセージを転送する。一方、faceDM402のステータスがONになっていない場合、S113で、CPU301は、Subscribeメッセージを破棄する。
<エッジルータ(ER2)104にPublisherメッセージが到着した場合>
ここでは、図5において、CD(Contents Descriptor)として/sportsが割り当てられているPublishメッセージを受信する場合を、図7のフローチャートを用いて説明する。
S201で、CPU301は、facePub608でPublishメッセージを受信する。
S202で、CPU301は、認証振分部603によってfaceRP601のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceRP602のステータスがONである場合、S203で、CPU301は、認証振分部603を介してfaceRP601にPublishメッセージを転送する。一方、faceRP601のステータスがOFFである場合、S204で、CPU301は、認証振分部603によってfaceDM602のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceDM602のステータスがONである場合、S205で、CPU301は、認証振分部603を介してfaceDM602にPublishメッセージを転送する。一方、faceDM602のステータスがOFFである場合、S206で、CPU301は、一定時間、Publishメッセージを格納部605へ格納する。
一定時間経過後、S207で、CPU301は、faceDM602のステータスがONであるか否かを判定する。faceDM602のステータスがONになっている場合(S207でYES)、S208で、CPU301は、認証振分部603を介してfaceDM602にPublishメッセージを転送する。一方、faceDM602のステータスがONになっていない場合、S209で、CPU301は、Publishメッセージを破棄する。
次に、データミュール(DM)105におけるメッセージ処理手順について説明する。 <データミュール(DM)105にSubscribeメッセージが到着した場合>
ここでは、図4において、CD(Contents Descriptor)として/sportsが割り当てられているSubscribeメッセージを受信する場合を、図8のフローチャートを用いて説明する。
S301で、CPU301は、faceER1506でSubscribeメッセージを受信する。
このSubscribeメッセージを受信すると、CPU301は、転送部(ST)503と転送部(FIB)505における処理を並列して実行する。
まず、転送部(ST)503における処理として、S302で、CPU301は、転送部(ST)503が管理するSTに、受信したSubscribeメッセージに含まれるCDと同一名のSTエントリが既に存在するか否かを判定する。同一名のSTエントリが既に存在する場合(S302でYES)、S303で、CPU301は、そのSTエントリにSubscribeメッセージを受信したface名を追加して、処理を終了する。
一方、同一名のSTエントリが存在しない場合(S302でNO)、S304で、Subscribeメッセージに含まれるCDとSubscribeメッセージを受信したface名とを対応づけた新規エントリをSTに追加して、処理を終了する。
転送部(FIB)505における処理として、S305で、CPU301は、転送部(FIB)505による転送処理を開始する。ここでは、転送部(FIB)505が管理するFIBを参照して、Subscribeメッセージに使用するfaceを特定する。ここでは、rendezvous/sportsに対応するfaceとしてfaceRP501を特定する。
S306で、CPU301は、認証振分部502によってfaceRP501のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceRP501のステータスがONである場合、S307で、CPU301は、認証振分部502を介してfaceRP501にSubscribeメッセージを転送する。一方、faceRP501のステータスがOFFである場合、S308で、CPU301は、一定時間、Subscribeメッセージを格納部504へ格納する。
一定時間経過後、S309で、CPU301は、faceRP501のステータスがONであるか否かを判定する。faceRP501のステータスがONになっている場合(S309でYES)、S310で、CPU301は、認証振分部502を介してfaceRP501にSubscribeメッセージを転送する。一方、faceRP501のステータスがONになっていない場合、S311で、CPU301は、Subscribeメッセージを破棄する。
<データミュール(DM)105にPublisherメッセージが到着した場合>
ここでは、図5において、CD(Contents Descriptor)として/sportsが割り当てられているPublishメッセージを受信する場合を、図9のフローチャートを用いて説明する。
このPublishメッセージを受信すると、CPU301は、転送部(ST)503と転送部(FIB)505における処理を並列して実行する。
S401で、CPU301は、facePub507でPublishメッセージを受信する。
まず、転送部(ST)503における処理として、S402で、CPU301は、転送部(ST)504が管理するSTに、受信したPublishメッセージに含まれるCDと同一名のSTエントリが既に存在するか否かを判定する。同一名のSTエントリが存在しない場合(S402でNO)、S409へ進む。一方、同一名のSTエントリが既に存在する場合(S402でYES)、S403で、CPU301は、そのSTエントリに記録されているface(例えば、faceER1506)のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
STに記録されているfaceのステータスがONである場合、S404で、CPU301は、認証振分部509を介して、STに記録されているfaceにPublishメッセージを転送する。一方、STに記録されているfaceのステータスがOFFである場合、S405で、CPU301は、一定時間、Subscribeメッセージを格納部508へ格納する。
一定時間経過後、S406で、CPU301は、STに記録されているfaceのステータスがONであるか否かを判定する。STに記録されているfaceのステータスがONになっている場合(S406でYES)、S407で、CPU301は、認証振分部509を介して、STに記録されているfaceにPublishメッセージを転送する。一方、STに記録されているfaceのステータスがONになっていない場合、S408で、CPU301は、Publishメッセージを破棄する。
転送部(FIB)505における処理として、S409で、CPU301は、転送部(FIB)505による転送処理を開始する。ここでは、転送部(FIB)505が管理するFIBを参照して、Publishメッセージに使用するfaceを特定する。ここでは、rendezvous/sportsに対応するfaceとしてfaceRP501を特定する。
S410で、CPU301は、認証振分部502によってfaceRP502のステータス情報を取得して、そのステータス情報が示すステータスを判定する。
faceRP501のステータスがONである場合、S411で、CPU301は、認証振分部502を介してfaceRP501にPublishメッセージを転送する。一方、faceRP501のステータスがOFFである場合、S412で、CPU301は、一定時間、Subscribeメッセージを格納部504へ格納する。
一定時間経過後、S413で、CPU301は、faceRP501のステータスがONであるか否かを判定する。faceRP501のステータスがONになっている場合(S413でYES)、S414で、CPU301は、認証振分部502を介してfaceRP501にPublishメッセージを転送する。一方、faceRP501のステータスがONになっていない場合、S415で、CPU301は、Publishメッセージを破棄する。
尚、図9では、転送部(ST)503において、S402で、STエントリが存在しない場合(S402でNO)、S409へ移行する構成としているが、これに限定されない。用途や目的に応じて、STエントリが存在しない場合には、そのまま受信したPublishメッセージを破棄する構成としても良い。この場合でも、転送部(FIB)505は、別途、転送部(ST)503の処理に並行して、S409以降の処理を実行することができる。
<具体例>
図10は通信システムの具体例を説明するための図である。
地震等の災害時を想定した場合、人々はそれぞれ近くの避難場所に移動している。ある夫婦(AliceとBob)が、互いに別々の拠点である避難場所1(Shelter#1)と避難場所2(Shelter#2)におり、互いの安否確認を行いたいものとする。ここで、避難場所1にはエッジルータ(ER1)103が存在し、避難場所2にはエッジルータ(ER2)104が存在し、更には、両地域の役所(Government Office)にはランデブーポイント(RP)107が存在し、災害の影響で、各拠点間のネットワークが分断されており、直接通信することができないとする。
そして、このような状況で、避難場所1と避難場所2と役所を、データミュール(DM)105を搭載する、車等の移動体で、巡回しているレスキュー隊(Rescue)がいるとする。ここで、Bobをサブスクライバ101(Aliceの安否情報を購読したいユーザ)、Aliceをパブリッシャ102(自分の安否情報を発行したいユーザ)とした場合、上記実施形態では、分断されたネットワークにおいて、図4に示す手順により、BobはAliceの安否情報を受信することができる。
上記実施形態では、従来のCOPSSアーキテクチャに、「論理インタフェース」という概念を導入している。メッセージを、サブスクライバ101/パブリッシャ102から、ランデブーポイント107/ブローカ106(ここでは、単に、ブローカと呼び、プレフィックスを、例えば、/broker)に送信するためには、エッジルータ(ER1)103及びエッジルータ(ER2)104や、データミュール(DM)105は、ランデブーポイント107/ブローカ106までの転送情報を有する必要がある。
エッジルータ(ER1)103(あるいはエッジルータ(ER2)104)とデータミュール(DM)105間、及びデータミュール(DM)105とブローカ106間の接続は、断続的に確立するため、エッジルータ(ER1)103(あるいはエッジルータ(ER2)104)とデータミュール(DM)105は、論理インタフェースの状態を管理する必要がある。
そこで、本実施形態では、図11に示すように、中継装置の転送部(FIB)で管理する情報として、中継装置が備える物理的なインタフェース(face)を、一時的に接続するノードに対する論理的なインタフェースとして機能させるための代替インタフェースを定義する。この一時的に接続するノードには、データミュール(DM)105、ブローカ106、及びランデブーポイント(RP)107がなり得る。また、この代替インタフェースは、中継装置に未使用(空き)の物理インタフェースがあれば、その物理インタフェースを代替インタフェースとして設定することができる。あるいは、本来の接続先との通信が不能である物理インタフェースを一時的に利用する論理的な論理インタフェースとして、代替インタフェースを設定することができる。
具体的には、FIBにおいて、障害発生時のような、通常使用していた接続先が使用不能(あるいは通信が不能)である場合に、その接続先に代えて一時的に接続する代替接続先と接続するための代替インタフェースを指定する指定情報と、そのfaceを使用して接続する代替接続先を特定する識別情報(例えば、プレフィックス(/rendezvous、/broker、/mule等))とを対応づけて管理する。
ここで、論理インタフェースは、代替接続先となるノードのMACアドレスやIPアドレス等の識別情報により、適切な転送先を管理する。
また、論理インタフェースは、keep−aliveメッセージ等の所定メッセージを使用することにより、論理インタフェースとして利用するfaceのステータス(リンクアップやリンクダウン)を確認し、その内容を示すステータス情報を保持することができる。このステータス情報を、更に、FIBに追加して管理しても良いし、必要の処理の際に、都度、確認するようにしても良い。例えば、図6のS106、S111等のステータス確認において、このkeep−aliveメッセージを利用することができる。
また、論理インタフェースは、リンクダウンの間、メッセージを格納するためのキュー(Txキュー)を有する。これは、例えば、格納部405/505等の各中継装置の格納部で実現される。そして、論理インタフェースがリンクアップになった時に、キューに格納されているメッセージは、FIBで記録されている論理インタフェースに対応付けられている転送先(中継装置)へ転送される。
この概念は、CCNやNDNにおけるfaceの概念との高い互換性を有する。
尚、中継装置が管理するテーブル(FIB)への論理インタフェースの設定や更新は、例えば、中継装置に接続することが可能なホスト装置(パーソナルコンピュータ等の情報処理装置)で実現することができる。格納部で一時的に保持するメッセージを保持する時間(一定時間)も、ホスト装置を介して設定することができる。
また、ホスト装置では、FIBで管理される各エントリから任意のエントリを編集(削除、変更、追加等を含む)することもできる。更には、用途や目的に応じて、各エントリ毎に異なる一定時間を設定するようにしても良い。例えば、代替接続先となるデータミュール(DM)は、その提供元によって、接続対象となる中継装置が設置される各拠点に巡回する頻度が異なるので、例えば、頻度が高いデータミュール(DM)に対する論理インタフェースに対する一定時間は短くして、頻度が低いデータミュール(DM)に対する論理インタフェースに対する一定時間は長くするようにして、中継装置の処理負担を軽減したり、リソースの有効活用を促進させることができる。
また、中継装置でメッセージを保持する格納部の容量を監視しておいて、その残容量に応じて、保持しているメッセージを一括で破棄したり、保持しているメッセージの内、最古のメッセージだけを破棄するようにしても良い。
また、通信が不能とは、インタフェースそのものに物理的な障害や故障に起因して、接続先と通信ができない場合、インタフェースそのものは正常であるが、接続先そのものの故障あるいはインタフェースと接続先との間のネットワークそのものの物理的な故障や切断に起因して、接続先と通信ができない場合の少なくとも一方を含み得る概念である。また、無線通信の場合は、通信範囲内に通信対象が存在しない場合も、通信が不能と言える。
以上説明したように、本実施形態によれば、CCNのためのPublish/Subscribeシステムにおいて、災害/緊急時等で通常利用しているネットワークが分断されるような状態が発生しても、ノード移動やリンク断に対応することができる中継装置群を利用できるようにすることで、Subscribeメッセージ/Publishメッセージが損失しないように一時的に保留することができる。また、ネットワーク復旧後には、保留しているメッセージを適切かつ確実に送信先(宛先)へ送信することができる。

Claims (7)

  1. インタフェースを介して、メッセージを中継する中継装置であって、
    コンテンツを指定するメッセージを受信する受信手段と、
    前記受信手段で受信したメッセージが指定するコンテンツに基づき、当該メッセージを転送するための転送インタフェースと、代替インタフェースと、を判定する判定手段と、
    前記判定手段が判定した前記転送インタフェース接続先との通信が可能であると、前記メッセージを前記転送インタフェースから送信し、前記判定手段が判定した前記転送インタフェースの接続先との通信が不能であり、かつ、前記判定手段が判定した前記代替インタフェースの接続先との通信が可能であると、前記メッセージを前記代替インタフェースから送信し、前記判定手段が判定した前記転送インタフェース及び前記代替インタフェースの接続先との通信が共に不能であると、一定時間、前記メッセージを保持する転送保存処理を行う転送手段
    前記転送インタフェース又は前記代替インタフェースから送信したメッセージが指定するコンテンツを記憶する記憶手段と、
    を備えており、
    前記転送手段は、前記受信手段で受信したメッセージが指定するコンテンツが前記記憶手段に記憶されていないと、前記転送保存処理を実行することを特徴とする中継装置。
  2. 前記転送手段は、前記一定時間が経過しても、前記代替インタフェースの接続先との通信が不能であると、記保持しているメッセージを破棄することを特徴とする請求項1に記載の中継装置。
  3. 前記転送手段は、前記一定時間経過するまでに、前記代替インタフェースの接続先との通信が可能になると、前記保持しているメッセージを前記代替インタフェースから送信することを特徴とする請求項1または2に記載の中継装置。
  4. 前記一定時間を設定する設定手段を更に備える
    ことを特徴とする請求項1乃至3のいずれか1項に記載の中継装置。
  5. 前記メッセージは、コンテンツの名前に基づいて通信を行うSubscribeメッセージである
    ことを特徴とする請求項1乃至のいずれか1項に記載の中継装置。
  6. インタフェースを介して、メッセージを中継する中継装置の制御方法であって、
    コンテンツを指定するメッセージを受信する受信工程と、
    前記受信工程で受信したメッセージが指定するコンテンツに基づき、当該メッセージを転送するための転送インタフェースと、代替インタフェースと、を判定する判定工程と、
    前記判定工程で判定した前記転送インタフェースの接続先との通信が可能であると、前記メッセージを前記転送インタフェースから送信し、前記判定工程で判定した前記転送インタフェースの接続先との通信が不能であり、かつ、前記判定工程で判定した前記代替インタフェースの接続先との通信が可能であると、前記メッセージを前記代替インタフェースから送信し、前記判定工程で判定した前記転送インタフェース及び前記代替インタフェースの接続先との通信が共に不能であると、一定時間、前記メッセージを保持する転送保存工程と、
    前記転送インタフェース又は前記代替インタフェースから送信したメッセージが指定するコンテンツを記憶手段に記憶する記憶工程と、
    を含み、
    前記転送保存工程は、前記受信工程で受信したメッセージが指定するコンテンツが前記記憶手段に記憶されていないときに実行されることを特徴とする中継装置の制御方法。
  7. 請求項1乃至5のいずれか1項に記載の中継装置としてコンピュータを機能させることを特徴とするプログラム。
JP2014030771A 2014-02-20 2014-02-20 中継装置及びその制御方法、プログラム Expired - Fee Related JP6196564B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014030771A JP6196564B2 (ja) 2014-02-20 2014-02-20 中継装置及びその制御方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014030771A JP6196564B2 (ja) 2014-02-20 2014-02-20 中継装置及びその制御方法、プログラム

Publications (3)

Publication Number Publication Date
JP2015156569A JP2015156569A (ja) 2015-08-27
JP2015156569A5 JP2015156569A5 (ja) 2016-09-01
JP6196564B2 true JP6196564B2 (ja) 2017-09-13

Family

ID=54775650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014030771A Expired - Fee Related JP6196564B2 (ja) 2014-02-20 2014-02-20 中継装置及びその制御方法、プログラム

Country Status (1)

Country Link
JP (1) JP6196564B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6525102B2 (ja) * 2016-02-18 2019-06-05 日本電気株式会社 通信システム、エッジサーバ、方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023498B2 (en) * 2008-05-20 2011-09-20 International Business Machines Corporation Controlling access to a destination in a data processing network
US7936667B2 (en) * 2009-01-05 2011-05-03 Cisco Technology, Inc. Building backup tunnels for fast reroute in communications networks
JP5747281B2 (ja) * 2011-10-07 2015-07-15 株式会社日立製作所 通信システム、通信方法、及び、網管理装置

Also Published As

Publication number Publication date
JP2015156569A (ja) 2015-08-27

Similar Documents

Publication Publication Date Title
TWI357242B (en) Route selection in wireless networks
CN112087495B (zh) 服务迁移方法、装置及系统
EP1130857A2 (en) Packet transportation system in mobile communications
US20140226602A1 (en) Methods and apparatuses for communicating content data to a communications terminal from a local data store
JP2019530376A (ja) IoTデバイスコネクティビティ、ディスカバリ、ネットワーキング
CN105940717B (zh) 容断/容迟/容中断网络中使用的节点设备和通信方法
EP1492375B1 (en) Multicasting of data in an IP-based mobile communications network
JP4603505B2 (ja) パケットルーティング制御プログラム、パケットルーティング制御方法及びコンピュータシステム
JP6196564B2 (ja) 中継装置及びその制御方法、プログラム
JP2011055236A (ja) 通信システム、マッピング情報通知装置、マッピング情報通知方法及びプログラム
JP5741956B2 (ja) 中継装置および中継方法
JP6301215B2 (ja) 中継装置及びその制御方法、プログラム
WO2017122336A1 (ja) サーバ装置、通信システム、および、通信プログラム
JP5601992B2 (ja) 通信システムおよびパケット処理ノード
JP3965201B1 (ja) ネットワーク通信機器および双方向リング型ネットワーク用通信プログラム。
JP2008118274A (ja) ネットワーク通信機器およびリング型ネットワーク用通信プログラム。
JP4481666B2 (ja) 通信システム、ルータ、送信端末、受信端末及び通信方法
JP5592222B2 (ja) リクエスト中継方法、リクエスト中継プログラム、および、中継装置
JP6044218B2 (ja) ネットワークスイッチ、ネットワークスイッチ制御方法、及びネットワークスイッチ制御プログラム
JP6520351B2 (ja) 中継装置、通信制御方法およびコンピュータープログラム
JP2016208084A (ja) ネットワークシステム及び制御装置
JP5997809B1 (ja) 転送装置、通信システム、転送方法及び転送プログラム
JP4862000B2 (ja) パケット転送装置およびパケット転送方法
JP2007068225A (ja) ノード装置
WO2004066569A1 (ja) 通信装置、ネットワークシステム及びリンク生成方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170818

R150 Certificate of patent or registration of utility model

Ref document number: 6196564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees