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的場景的實現,轉載請說明出處。