ndn挖坑记(二)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Enterprise_/article/details/103130585

文章目录

如何使用ndnSIM运行自己的仿真实验

基本要点

仿真场景可以在NS-3目录下的scratch/ or src/ndnSIM/examples两个文件夹中编写,或者选择一个独立的库来编写仿真仿真场景。

如果直接在上面编写,有个不好的地方就是编译速度慢和代码可能难以区分是自己写的还是模拟器自带的,所以官网上推荐是使用独立的库来编写自己的仿真场景。

话虽如此,当我使用独立库调用可视化模块的时候既不报错也不显示就有点懵逼了,所以最后我还是将代码放在ndnSIM/ns-3/scratch下了。

具体而言,将自己的文件保存为.cc放入其中即可。

从 https://ndnsim.net/current/examples.html 官网例子中可以看到如果需要建立一个仿真场景,需要做的事情有主要下面几个:

  1. 设置链路状态(包括链路之间的连接)
  2. 定义拓扑结构
  3. 设置CS
  4. 在节点上安装ndnSIM的网络堆栈
  5. 安装consumer和producer
  6. 设置FIB
  7. 设置前向转发策略
  8. 运行仿真场景

开始动手

设置一个和 教程ndn-grid.cpp一样的例子

10Mbps links/10ms delays
3x3拓扑结构
一个consumer,一个producer
FIB使用GlobalRoutingHelper进行设置
前向转发策略使用bestRoute

运行
./waf configure -d optimized
./waf

结果如下

BUG记录

记录一下使用第三方库时出现的错误,出现在运行阶段

 File "/ndnSIM/scenario/.waf-2.0.14-a8a9afc5d151494252697f8fa4ba3fbc/waflib/Scripting.py", line 119, in waf_entry_point
    run_commands()
  File "/ndnSIM/scenario/.waf-2.0.14-a8a9afc5d151494252697f8fa4ba3fbc/waflib/Scripting.py", line 181, in run_commands
    run_command('shutdown')
  File "/ndnSIM/scenario/.waf-2.0.14-a8a9afc5d151494252697f8fa4ba3fbc/waflib/Scripting.py", line 170, in run_command
    ctx.execute()
  File "/ndnSIM/scenario/.waf-2.0.14-a8a9afc5d151494252697f8fa4ba3fbc/waflib/Context.py", line 85, in execute
    self.recurse([os.path.dirname(g_module.root_path)])
  File "/ndnSIM/scenario/.waf-2.0.14-a8a9afc5d151494252697f8fa4ba3fbc/waflib/Context.py", line 126, in recurse
    user_function(self)
  File "/ndnSIM/scenario/wscript", line 114, in shutdown
    return subprocess.call (argv)
  File "/usr/lib/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception

解决方法,修改目录下的wscript下的subprocess.cal中的参数,改为subprocess.call (argv,shell=True)因为默认模式下的subprocess.call不支持使用shell运行命令行。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ndn挖坑记(一)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Enterprise_
  • ndn挖坑记(一)

    NDN是命名数据网络的缩写,简单来是说以数据命名取代IP 的主体地位,数据名称取代了IP 作为网络中的唯一标识在网络层的数据请求、路由、转发以上层应用直接关心的...

    Enterprise_
  • 博弈论笔记--01--五个入门结论

    如同博弈论的其他例证,囚徒困境假定每个参与者(即“囚徒”)都是利己(绝对理性)的,即都寻求最大自身利益,而不关心另一参与者的利益。参与者某一策略所得利益,如果在...

    Enterprise_
  • Python3运行时查看线程信息

    kongxx
  • Python Requests:prox

    推荐阅读:https://blog.csdn.net/wangzuxi/article/details/40377467  

    py3study
  • No module named RequireDebugFalse

    python@ubuntu118:~/pythonwork/mysite$ python manage.py runserver Traceback...

    闵开慧
  • 捕获异常然后再抛出另一个异常的正确姿势

    不知道大家有没有注意到这样抛出异常的方式有一个很严重的问题,那就是 在重新抛出另一个异常的时候,捕获的上一个异常的 traceback 信息丢失了(python...

    py3study
  • 利用PyCINRAD处理、显示天气雷达基数据

    使用基于Python的PyCINRAD来处理、显示天气雷达基数据,只做简单推介,根据自己需要来选用。版本迭代,建议使用最新版本的PyCINRAD,以及与之相匹配...

    zhangqibot
  • Python安全运维实战:针对几种特定隐藏方式的Webshell查杀

    作者:北门喂猫 来源: http://www.freebuf.com/articles/web/131350.html Webshell一直都是...

    小小科
  • python 判断txt每行内容中是否包含子串并重新写入保存的实例

    假设需要批量处理多个txt文件,然后将包含子串的内容写入一个txt文件中,这里假设我的子串为”_9″和“_10”

    砸漏

扫码关注云+社区

领取腾讯云代金券