zoukankan      html  css  js  c++  java
  • NECTAR:A DTN Routing Protocol Based on Neighborhood Contact History

        本文是SAC2009会议上的一篇录用论文。通过节点间的历史联系信息来创建邻居索引从而决定最合适的消息转发路径。基于Dartmouth College 实际网络场景的仿真表明,NECTAR与传染路由及PROPHET路由相比,能够传输更多的消息并且消耗更少的网络资源。

        NECTAR路由算法总体上可以分为以下三个步骤:1,NI(Neighborhood Index)计算;2,消息调试策略;3,消息丢弃策略。

        当节点i与节点j初次相遇时,到彼此的NI值都设为1。在i与j保持联系期间,NI值与联系计数器(Contact Counter)都保持线性增长。然后节点 i 与节点 j 都更新到其他不在通信范围内的节点的NI值。假设对于相同的目的节点 d ,节点 j 有更好的NI值,则i到目的节点的 NI 值通过以下方法进行计算:

    image

         如果节点i已经存在一条到节点d的路径,而节点j有着更好的NI值,则N(i,d)以一种加权的方式进行更新,以减轻新信息的影响,并防止非法信息的干扰。

    image

       消息调度策略决定消息存储缓冲区中消息的传输优先级。当节点i与节点j建立联系时,节点i优先发送目的节点是j的节点,反之亦然。在进行了这一步骤后,节点更新彼此的NI,然后发送下一跳节点是对方的消息。

        为了防止接收到对同一消息的重复拷贝,在传输完一条消息后,节点在另外一个存储位置存储该消息的头部,保存时间为ttl_deleted个时间单元。[疑问:具体有何用?]

        NECTAR可以以传染路由的方式进行操作。如果节点TTL与最大TTL值之差小于某一阈值MinEpidemicLevel,则消息会被传输给其所有的邻居。

        为了防止缓冲区的拥塞,当MinEpidemicLevel < (a – TTL) < MaxEpidemicLevel时,节点仅在缓冲区占用率低于某一阈值时才接收此消息。可以针对不同优先级的消息设定不同的MinEpidemicLevel & MaxEpidemicLevel的值。

        消息丢弃策略主要考虑两个因素:消息的拷贝数目及从接收到消息为止所经过的时间。消息丢弃策略偏向于保留最近接收的消息及转发次数较少的消息。所以拥有较高的Mage的消息将被优先丢弃:

    image 

    消息包的结构:

    image

    My Questions:

    1,In the Message Scheduling Algorithm, the author mentioned that after delivering a message to its destination, nodes maintain the headers’ message for ttl_deleted time slot in a different storage area to avoid receiving redundant copies of the same messages.

    What is headers’ message? Is that messages’ headers?

  • 相关阅读:
    ssh无密码登录设置方法以及出现问题 ECDSA host key 和IP地址对应的key不同的解决
    asp.net core 3 Swagger 添加 Authorization [Bearer token]
    asp.net core3 发布到IIS
    asp.net core 3.1 使用log4net
    asp.net core 3 跨域
    解决'vue' 不是内部或外部命令,也不是可运行的程序 或批处理文件的方法
    ReSharper 安装没有提示功能
    Python3 安装MySQL驱动
    win10 安装 Python 和 pip 详解
    Win10下 80端口被system(pid=4)占用的解决方法
  • 原文地址:https://www.cnblogs.com/jcleung/p/1825601.html
Copyright © 2011-2022 走看看