机会网络ONE平台中的ProphetRouter路由详解

来源:互联网 发布:java经典程序 源代码 编辑:程序博客网 时间:2024/05/17 04:15

关于ONE仿真平台,许多资料并不详细,代码也没有中文注释,容易造成误解,本人正在研究使用中,将一些内容做一下说明,方便记录和学习,也希望能提供给别人参考,大家一起交流。

ProphetRouter路由也是继承的ActiveRouter这个路由基类。前面几个参数

P_INIT是预设的节点间的相遇概率,DEFAULT_BETA求消息传输链路概率时使用的一个常数值,GAMMA是概率值的时间衰减参数。secondsInTimeUnit是概率值的时间衰减周期,lastAgeUpdate是概率值最近的更新时间。

前两个函数是ProphetRouter的构造函数,继承自ActiveRouter类,同时将ActiveRouter中没有的节点属性初始化。initPreds初始化概率值的存储表,changedConnection()是节点间连接建立时的动作,获取相遇节点的ID,并且更新节点间的相遇概率,和传输概率,比如A遇到了节点B,首先更新AB之间的相遇概率,B节点中有关于B到C的传输概率,此时更新A遇到C的传输概率,前者是updateDeliveryPredFor()方法实现,后者是updateTransitivePreds()方法实现。getPredFor()负责获取当前节点的概率值,获取之前有ageDeliveryPreds()保证获得的是最新更新或是随时间衰减过的概率值。update()函数中tryOtherMessages()是按照节点缓存中建立连接的消息传输概率发送消息,比如节点连接多个节点,比较节点与携带消息节点的概率,谁的概率大,将消息优先转发给谁,其中比较节点间的传输概率由函数Comparator <Tuple<Message, Connection>>实现。getRoutingInfo()是返回节点的路由信息,为节点增加相应的传输概率存储空间。

0 0
原创粉丝点击