CCNx是ICN中的CCN提案的一种实现。主要运行在Linux的一些发行版上,比如Ubuntu,Debian,Macos。
在2014年前后,CCNx的官方网站为:http://www.ccnx.org
但目前,CCNx项目已经交给Linux基金会,作为其子项目运行,项目名称也由CCNx改为Cicn。
官方网站为:https://wiki.fd.io/view/Cicn
cicn在CCNx的基础上,添加了对Linux基金会另一个子项目:VPP网络框架的支持。
项目将把重点放在CCNx 1.0规范作为参考实现上,但是将通过跟进IRTF聚合组中所做的工作来演进。虽然项目主要关注VPP网络框架的支持,但基于socket的转发器将用于支持端到端的测试,以支持那些不支持VPP的终端设备。此外,对于VPP转发器,首先将使用IPv4封装传输CCNx 1.0包。这种封装将成为VPP插件的主要关注点,而基于套接字的转发器也可以支持以太网封装。
概括一下,该项目主要包括如下功能插件:
1.VPP 转发器插件
2.基于socket的转发器
3.消费者/生产者的API
4.一些支持库
5.CCN应用程序的示例,包括但不限于HTTP ABR视频传输(播放器和服务器)的端到端示例
6.适合于协助开发和测试的工具
项目源码由几个不同的子项目源码组合而成:
1.cicn-plugin:VPP forwarder:https://github.com/FDio/cicn/blob/cicn-plugin/master/README.md
2.socket-based forwarder:https://github.com/FDio/cicn/blob/sb-forwarder/master/README.md,包含了路由转发策略
3.libicnet:socket接口API,https://github.com/FDio/cicn/tree/libicnet/master
4.libparc:PARC c语言库:https://github.com/FDio/cicn/blob/cframework/master/libparc/README.md
5.longbow:https://github.com/FDio/cicn/blob/cframework/master/longbow/README.md
6.ccnx-common:CCNx common 库:https://github.com/FDio/cicn/blob/ccnxlibs/master/libccnx-common/README.md
7.ccnx-portal:CCNx API:https://github.com/FDio/cicn/blob/ccnxlibs/master/libccnx-portal/README.md
8.Libccnx-transport-rta:https://github.com/FDio/cicn/blob/ccnxlibs/master/libccnx-transport-rta/README.md
9.http-server:http服务器,用于CCN的应用程序:https://wiki.fd.io/view/Http-server
10.Viper: video player for CCN:https://wiki.fd.io/view/Viper
11.Vicn:vICN是一个数据模型驱动的管理系统,还为大规模ICN部署提供无线信道(WiFi和LTE)的编排服务和仿真。https://wiki.fd.io/view/Vicn
如何管理这些不同的子项目
建议在不同的工作空间中克隆每个子项目分支,以避免容易出错的操作。
git clone -b cicn-plugin/master https://gerrit.fd.io/r/cicn cicn-plugin;
git clone -b sb-forwarder/master https://gerrit.fd.io/r/cicn sb-forwarder;
git clone -b libicnet/master https://gerrit.fd.io/r/cicn libicnet;
git clone -b cframework/master https://gerrit.fd.io/r/cicn cframework;
git clone -b ccnxlibs/master https://gerrit.fd.io/r/cicn ccnxlibs;
git clone -b http-server/master https://gerrit.fd.io/r/cicn http-server;
git clone -b viper/master https://gerrit.fd.io/r/cicn viper;
git clone -b vicn/master https://gerrit.fd.io/r/cicn vicn;
git clone -b android-sdk/master https://gerrit.fd.io/r/cicn android-sdk;
此外,CICN提供Ubuntu16.04和Centos 7的二进制应用程序,直接下载运行即可:
code source repositories https://git.fd.io/cicn apt repository: Ubuntu 16.04LTS https://nexus.fd.io/content/repositories/fd.io.master.ubuntu.xenial.main/ yum repository: CentOS 7 https://nexus.fd.io/content/repositories/fd.io.master.centos7/
关于CCNx的操作命令,可以参考该笔记: