将网络编码库Kodo安装到ns3(并附Kodo学习资料)

​​Kodo是一个随机网络编码的C++库,官方尽管给出如何结合ns3和kodo的方法(即kodo-ns3-examples),但该方法是将ns3作为Kodo的一个库。我在使用过程中,发现很不方便,比如在ns3运行得好好的,在kodo-ns3-examples目录下运行却提示“UdpClient not found”错误。再者,kodo-ns3-examples目录下的编译系统不及ns3强大。基于此,把Kodo作为一个库安装到ns3,想必是一个更好的选择。本文给出如何将Kodo库安装到ns3,并罗列一些Kodo的学习资料。

1. 将Kodo库安装到ns3

以下安装得到Nguyễn Văn Lý的帮助,感谢他!(PS:我的ns3版本是3.19)

步骤1:安装ns3和Kodo库

官方给的安装指南过于繁琐,我安装的时候,没有记录,不过这个问题通过Google很容易就解决了。

ns3安装:http://www.nsnam.org/wiki/index.php/Installation#Ubuntu.2FDebian

Kodo安装:http://kodo.readthedocs.org/en/latest/getting_started.html#download-the-kodo-source-code

步骤2:修改wscript文件

打开ns-3.19/wscript文件,找到如下代码(ns-3.19是在696行):

 696     Options.cwd_launch = bld..abspath(path)
 697     bld.create_ns3_program = types.MethodType(create_ns3_program, bld)
 698     bld.register_ns3_script = types.MethodType(register_ns3_script, bld)
 699     bld.create_suid_program = types.MethodType(create_suid_program, bld)
 700     bld.__class__.all_task_gen = property(_get_all_task_gen)
 701     bld.exclude_taskgen = types.MethodType(_exclude_taskgen, bld)
 702     bld.find_ns3_module = types.MethodType(_find_ns3_module, bld)

在以上代码的末尾添加(因为是python脚本,注意格式对齐):

   #added by Jelline for Kodo
    bld.env['INCLUDES'] += ['/home/jelline/NetworkSimulator/kodo/src',
    '/home/jelline/NetworkSimulator/kodo/bundle_dependencies/boost-e92f30/master',
    '/home/jelline/NetworkSimulator/kodo/bundle_dependencies/fifi-6ca972/master/src',
    '/home/jelline/NetworkSimulator/kodo/bundle_dependencies/sak-602ce9/master/src' ]

注:根据实际情况更改文件路径 /home/jelline/NetworkSimulator/。懂了这个,以后就可以很方便将其他库加到ns3了:-)

步骤3:重新编译ns3

回到ns-3.19目录下,运行如下命令,重新编译ns3。

CXXFLAGS="-std=c++0x" ./waf configure
./waf build

步骤4:测试

将kodo-ns3-examples/simple_udp_broadcast/main.cpp拷贝到ns-3.19/scracth目录下,并将文件后缀改成“.cc”。在ns-3.19目录运行如下命令(我把文件名改成simple_udp_broadcast_kodo.cc),看能否正常运行。kodo-ns3-examples

./waf --run scratch/simple_udp_broadcast_kodo 

得到结果如下图:

image_thumb1

2. Kodo学习资料

官方网站:没什么有价值的东西

Kodo手册: 写得相当简单,不过里面的FAQ值得一看

Kodo API文档: 编程时很有用

Kodo Github: Kodo所有相关的包都有,包括kodo-ns3-examples

Kodo Google Groups: 不是很活跃,Kodo开发人员会回复,挺有用的。

 

如果您有更好的资料,期待您与我分享。欢迎交流:Jelline@126.com

Leave a Reply

Your email address will not be published. Required fields are marked *

5 thoughts on “将网络编码库Kodo安装到ns3(并附Kodo学习资料)

  • Monday May 11th, 2015 at 06:04 PM
    Permalink

    我下载的kodo-ns3-examples里没有simple_udp_broadcast这个例子。

    Reply
  • Monday May 11th, 2015 at 06:01 PM
    Permalink

    我按照你说的方法编译没有成功哦,错误是说没有找到kodo的一些头文件

    Reply