CCN-lite是CCN的一个轻量实现。git
网站:http://www.ccn-lite.net/github
最新源码:https://github.com/cn-uofbasel/ccn-lite/releases/tag/0.3.0网站
Ubuntu下的安装:.net
1.须要openssl的库支持:rest
sudo apt-get install libssl-dev
export CCNL_HOME="`pwd`/ccn-lite" export PATH=$PATH:"$CCNL_HOME/bin"
这里利用export设置的环境变量是临时的,一旦关机重启失效,能够利用修改profile文件永久保存该环境变量,具体方法自行百度。code
3.编译安装xml
cd $CCNL_HOME/src make clean all
CCN-lite实际运行:blog
场景:内存
场景分析:ssl
须要三台pc,分别做为client, relayA,relayB。content store存在relayB的内存中。其中relayA须要双网卡支持,分别链接client和relay
B,能够看出relayA做为路由转发。
client配置:设置静态IP,修改interfaces文件便可。假设IP为192.168.0.6
relayB配置:设置静态IP: 192.168.0.10
relayA配置:两个网口设置dhcp而不是静态IP,而后利用brctl命令创建网桥,将eth0和eth2链接在一块儿,并设置网桥的IP:192.168.0.100
relayA interfaces文件配置:
auto eth0 iface eth0 inet dhcp auto eth2 iface eth2 inet dhcp
sudo brctl addbr br0 sudo brctl addif br0 eth0 sudo brctl addif br0 eth2 sudo ifconfig br0 192.168.0.100 netmask 255.255.255.0 up
以上就是准备工做。
接下来是利用ccn命令实现数据传输:
relayB:
1.创建content store:
$CCNL_HOME/bin/ccn-lite-mkC -s ndn2013 "/ndn/test/mycontent" > $CCNL_HOME/test/ndntlv/mycontent.ndntlv
2.开启relay模式:
$CCNL_HOME/bin/ccn-lite-relay -v trace -s ndn2013 -u 9999 -x /tmp/mgmt-relay-b.sock \ -d $CCNL_HOME/test/ndntlv
relayA:
1.开启relay模式:
$CCNL_HOME/bin/ccn-lite-relay -v trace -s ndn2013 -u 9998 -x /tmp/mgmt-relay-a.sock
2.添加转发规则
FACEID=`$CCNL_HOME/bin/ccn-lite-ctrl -x /tmp/mgmt-relay-a.sock newUDPface any 192.168.0.10 9999 \ | $CCNL_HOME/bin/ccn-lite-ccnb2xml | grep FACEID | sed -e 's/^[^0-9]*\([0-9]\+\).*/\1/'`
这里的newUDPface是 要发往下一跳的IP和端口,也就是relayB的IP和端口号9999.
$CCNL_HOME/bin/ccn-lite-ctrl -x /tmp/mgmt-relay-a.sock prefixreg /ndn $FACEID ndn2013 \ | $CCNL_HOME/bin/ccn-lite-ccnb2xml
client:
1.发送interest to A
$CCNL_HOME/bin/ccn-lite-peek -s ndn2013 -u 192.168.0.100/9998 "/ndn/test/mycontent" \ | $CCNL_HOME/bin/ccn-lite-pktdump这里的-u就是A的IP和端口。与上面的相似。
以上就是本人对于CCN的场景的实现,转载请说明出处。