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?

原文地址:https://www.cnblogs.com/jcleung/p/1825601.html