在The ONE仿真器上做网络编码

本人研究方向为DTN上的网络编码,使用仿真工具是The ONE simulator,期待与您深度交流,sparkandshine@163.com

1. 为什么选择The ONE

刚开始的时候,纠结于ns2和ns3,但很快就发现,没有现成的方法可以将外部数据集导入仿真器(那时,重点研读Bubble Rap文章,其使用的数据集包括cambridge, infocom06,这些数据集没有包含节点的位置信息),而自己写个移动模型又丝毫没有头绪。后来,导师跟我提及The ONE simulator,了解过后,恰可以很好地导入不含有位置信息的外部数据集,然后就开始用The ONE了。

The ONE文档很少,有些设置项直到逻辑结果出错,查阅源代码后,才晓得为什么。举个个人经历,hoststohosts,直觉的理解是,假设有50个节点,那hosts设为0,49。但实际并非如此,hoststohosts是包括下限但不包括上限,所以50个节点的hosts应设为0,50

值得庆幸的是,The ONE的源码结构很清晰,出问题,阅读源码通常都能找到答案。

2. The ONE与网络编码

为了使网络编码在无线网络充分发挥其性能,需要充分利用无线的broadcast medium。然,The ONE高度抽象,没有MAC层,所有的节点对连接被抽象成connection对象,即只支持单播。要使节点能侦听(overhear)发送者发往其他邻居节点的消息,就必须修改The ONE源码,使其支持广播。我已经做完了这部分工作,以下是在无线双向中继网络测试的结果,详情可参考博文《The ONE使用笔记:奇葩的仿真结果(以无线双向中断网络为例)》。

3. 困惑的问题

  • 求简单的DTN场景,我之前直接在数据集infocom06, reality等做,太复杂,不好分析结果
  • DTN通常是稀疏的,COPE在DTN是不是几乎无用武之地?
  • COPE那篇论文,其他路由来比较,那些路由是工作在单播还是广播?

期待与您深度交流,sparkandshine@163.com

KATTI, Sachin, RAHUL, Hariharan, HU, Wenjun, et al. XORs in the air: practical wireless network coding. IEEE/ACM Transactions on Networking (ToN), 2008, vol. 16, no 3, p. 497-510.

Leave a Reply

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

11 thoughts on “在The ONE仿真器上做网络编码

  • Monday October 10th, 2016 at 06:51 PM
    Permalink

    前辈你好,请问在the one上网络编码可以行的通么?

    Reply
    • Monday October 10th, 2016 at 08:03 PM
      Permalink

      可以。我在上面做了一些工作,我关注的是inter-session data flows,只用到异或网络编码,如果是RLNC,需要更多编码工作。如果感兴趣我做的工作,可以查看这里,http://su.perso.enseeiht.fr/

      Reply
      • Tuesday October 11th, 2016 at 10:06 AM
        Permalink

        太感谢了,一直犹豫要不要学THEONE,行得通就好。我看有文章写THEONE不支持物理层和链路层,如果要做网络编码,应该做些什么工作?

      • Tuesday October 11th, 2016 at 08:30 PM
        Permalink

        对,MAC和物理层在The ONE被高度抽象,我选择ONE在本博文已提及。ns2/3,openet, ommet肯定比ONE强大。你想做RLNC,编码量肯定更大(如果考虑packet loss那就更麻烦了)。

        Anyway, 你如果最后决定选择ONE作为你的仿真器,建议你先在two way relay networks做简单的网络编码,以此为契机,了解ONE的运行机制,这将有助于你后续调试代码。

      • Wednesday October 12th, 2016 at 06:37 PM
        Permalink

        嗯嗯,好的。

      • Tuesday October 11th, 2016 at 10:13 AM
        Permalink

        我是想做RLNC的,不知道工作量有多大。

  • Tuesday April 5th, 2016 at 02:51 PM
    Permalink

    前辈你好,我最近在做基于社区的机会网络仿真,请问您有经典的HCMM(基于社区的机会网络模型)的源代码吗

    Reply
  • Thursday March 17th, 2016 at 08:14 PM
    Permalink

    前辈您好,我看用ONE仿真器有一段时间了,也在尝试修改源代码,使其支持广播模式,但一直没有完整的思路,不知道前辈可否指点迷津,期待您的回复,谢谢您!

    Reply
    • Friday March 18th, 2016 at 11:14 PM
      Permalink

      我的做法是这样的,假设A节点的邻居节点BCDE,

      for node in [B, C, D, E]
      startTransfer(m, node)

      Reply
  • Pingback: The ONE使用笔记:目录 | Spark & Shine