HTML5 Webook
102/116
CeforeCCNはIP通信が持つ問題点を根本から修正するため、ネットワークを白紙から設計しようという「クリーンスレート」な試みから生まれた技術であり、それゆえに基礎研究としてのアルゴリズム設計やプロトコル設計だけでなく、それを評価するための実装・実証も1から行わなければならなかった。このため、CCN研究に追従する形でいくつかのCCNの参照実装が開発・公開された。ここでは、代表的な参照実装としてCCNx [9]、NFD(Named-Data Networking Forward-ing Daemon)[10]、CICN(Community ICN)[11]を説明する(詳細は各ホームページ及び文献[12]を参照のこと)。世界で最初に公開されたCCNの参照実装は、米国PARC Inc.が2009年に公開したCCNx [9]である。当時はバージョン0系列として概念実証を目的として公開されたため、パフォーマンスや通信の効率性などは全く考慮されていなかったが、CCNが実際にインターネット上でも動くということを証明したという点で高く評価された。2014年には標準化団体のIETFの姉妹組織であるIRTFにて、CCNx-1.0のパケットフォーマット [13] が発表され、同時に、これに沿った実装としてCCNx-1.0が開発された。しかし、CCNxバージョン0系列と1系列にはメッセージの互換性がなく、また、CCNx-1.0が開発当初はオープンソースでなかったため、ユーザーにとっては利便性に乏しく、最終的には、CCNxの開発は中断されることになる(しかしその後、コードとライセンスは以下で説明するCICNに移管される)。次に公開された参照実装は、2014年に米国Named-Data Networking(NDN)プロジェクトが開発したNDN Platform [10]である。NDN PlatformはNDN Forwarding Daemon (NFD)と呼ばれるソフトウェアルーターと、通信用の各種アプリケーションやライブラリを含むソフトウェア基盤である。NDNはCCN同様、ICNの一実装であり、CCNと概念も通信方式もほぼ同等であるが、NDNとCCNではパケットフォーマットが異なるため、これらに相互互換性はない。2017年には、Cisco Systems, Inc. がPARCの保有していたCCN関連の知的所有権を買収し、上記のCCNx-1.0実装はFD.IOというプロジェクト内のCommunity ICN(CICN)[11]と呼ばれる実装に併合された。CICNは2つの実装形態で開発が継続されており、1つはFD.IOコミュニティーが公開するVector Packet Processing(VPP)フレームワークを利用したプラグインとして、もう1つはVPPに非依存のソケットベースのパケットフォワーダーとして公開されている。CCNは新しいネットワークアーキテクチャとして様々な可能性を秘めており、技術の適用先や導入先も多岐にわたる。このため、IoTなどのセンサーネットワーク環境への適用においては、センサーノード上で稼働するための軽量かつ省電力な実装が求められ、バックボーンなどの基幹ネットワークへの適用においては、非常に高速なデータ転送を行うルーター若しくは高速キャッシュ処理が可能なルーター実装が求められる。しかし既存の参照実装は、高速化を目指すことでハードウェア要件が高くなる、あるいは動作環境に制約を与えてしまうなどの問題や、逆に軽量化を求め過ぎて通信性能を向上させられないなどの問題があった。また、特定の用途に特化させないために汎用性を求めた結果、実装が複雑になり、機能拡張が困難になり、秒進分歩の技術を開発・評価する目的に適さないなどの問題も見られた。急速な発展を続けるCCN研究に対し、我々はその研究促進と社会展開を促す参照実装の重要性を認識し、さらに上記で述べたような適用範囲に対する依存性を軽減するため、軽量かつ拡張性の高いCCN通信用ソフトウェア・プラットホーム、「Cefore」[1]を開発し、2017年にオープンソースとして一般公開した。ソースコードは改変も自由に行え、商用においても利用可能なライセンスとなっている。Ceforeの特徴は基本機能と拡張機能のソフトウェア分離にある。基本機能である軽量なデータ転送(フォワーディング)デーモンcefnetdと、ネットワーク内キャッシュをつかさどるContent Store (CS) デーモンcsmgrd、そして各種ツール群で構成されている。cefnetdはCCNx-1.0メッセージを転送するために必要最低限の機能のみを有する。具体的には、コンテンツ所有者(publisherと呼ぶ)若しくはキャッシュルーターへの通信経路表に相当する「Forwarding Information Base(FIB)」と、コンテンツ名と下流のデータ転送先インターフェースの対応表である「Pending Interest Table(PIT)」の2種類を持ち、CCNx-1.0メッセージパケットを転送する。cefnetdはLinux系OSやmacOSに加え、Androidの上で稼働する。また、センサーノードとして用いられるRaspberry Piのように計算資源の乏しい環境でも動作する軽量性も併せ持つ。cefnetdは汎用性が高く、機能拡張性にも優れており、通常は、ユーザーはcefnetdやcsmgrd本体のプログラムを改変することなく、独自に開発したい機能やアルゴリズムはcefnetdあるいはcsmgrdのプラグインライブラリーとして、若しくはこれらと連携する外部(デーモン)598 情報通信研究機構研究報告 Vol. 64 No. 2 (2018)6 ネットワークの効率的な資源配分を目指す研究開発
元のページ
../index.html#102