本发明涉及通信路由或通信路径查找的技术领域,特别涉及一种面向电磁纳米网络的自适应偏转路由控制方法。
背景技术:
随着纳米技术的发展,具有更多特性的纳米传感器越来越多地被开发出来,比如被用来检测病原体的纳米生物传感器、用于活体生物检测的纳米活体传感器等,由于其尺寸的关系,相比较传统的传感器,纳米传感器拥有更高的精确度。单个纳米传感器极小的尺寸,使得其计算、存储、能量资源十分有限,故一般情况下,通过将大量纳米传感器组成网络的形式克服这些问题,并组成新的系统及应用,比如靶向药物投递系统、农业作物监控系统、食物安全控制系统等进行工作。
目前,纳米传感器之间的通信方式主要有两种,一种是分子通信,一种是电磁通信。近年来,基于石墨烯的等离子收发器和天线的应用使得基于太赫兹(terahertz,thz,0.1-10thz)通信的电磁纳米网络越来越受到研究者的青睐,另一方面,碳基电子元器件的发展也为纳米电池、纳米内存和纳米电路打开了一道新的大门,这都促进了基于电磁纳米网络的发展和使用。
过去几年,世界各地的研究者做了大量的工作,从纳米节点的设计到网络链路层的设计,克服了纳米网络中面临的各种挑战,然而,目前在网络路由层并没有太多有效的算法,对于电磁纳米网络中的路由设计,主要存在以下设计难点:
(1)有限的传输距离;一方面太赫兹频段的路径损失和分子吸收对传输的影响很大,另一方面由于纳米节点的电池容量有限、纳米节点发送的信号功率较小,因此纳米节点的传输距离十分有限,这就需要设计多跳的路由算法;
(2)极其有限的内存;纳米节点通常只能缓存很有限的数据包,当一个纳米节点的缓存区满了之后,其无法处理更多新的数据包,即导致数据包的丢失从而影响整体网络性能;
(3)纳米节点能量存在起伏性;由于纳米节点电池容量很小,因此需要通过能量捕获技术保证节点的存活时间,这会导致纳米节点的能量在不同的时间有很大的不同,而设计的路由协议需要适应这样的变化。
基于上述的纳米网络的特殊性,传统的路由协议无法应用到电磁纳米网络中。
技术实现要素:
本发明解决了现有技术中,电磁纳米网络中的路由设计存在传输距离有限、内存极其有限、纳米节点能量存在起伏性的设计难点,而导致的传统的路由协议无法应用到电磁纳米网络中的问题,提供了一种优化的面向电磁纳米网络的自适应偏转路由控制方法。
本发明所采用的技术方案是,一种面向电磁纳米网络的自适应偏转路由控制方法,所述方法包括以下步骤:
步骤1:任一纳米节点s收到或产生一个数据包需要发送到目的纳米节点;
步骤2:纳米节点s判断当前的能量是否足够用于进行当前数据包的发送及接收反馈信息,若能量不足,则等待时间t并主动捕获能量后重复步骤2,否则,进行下一步;
步骤3:纳米节点s判断当前数据包的偏转次数是否超过最大偏转次数,如果超过则丢弃数据包,否则,进行下一步;
步骤4:纳米节点s搜索路由表寻找下一跳纳米节点,若找到下一跳纳米节点则发送数据包,进行步骤7,若找不到符合要求的下一跳纳米节点或路由记录不存在,则进行下一步;
步骤5:纳米节点s搜索偏转路由表寻找下一跳纳米节点,若找到下一跳纳米节点则发送数据包,偏转次数加1,进行步骤7,若找不到符合要求的下一跳纳米节点或偏转路由记录不存在,则进行下一步;
步骤6:若纳米节点s周围不存在邻居纳米节点,则丢弃数据包,否则,选择任一邻居纳米节点作为下一跳纳米节点发送数据包,进行下一步;
步骤7:如果下一跳纳米节点完整接收到当前数据包,则由自身的信息计算得到更新信息,将更新信息写入肯定应答反馈确认帧,将肯定应答反馈确认帧发送至纳米节点s;如果下一跳纳米节点没有完整收到当前数据包,则返回纳米节点s不带更新信息的否定应答反馈确认帧;
步骤8:纳米节点s若收到肯定应答反馈确认帧,则以当前肯定应答反馈确认帧中的更新信息更新自身的路由表,进行下一步;若收到否定应答反馈确认帧或等待超时没有收到任何下一跳纳米节点的反馈信息,判断偏转次数是否超过最大偏转次数,如果超过则丢弃数据包,否则,返回步骤5;
步骤9:若当前的下一跳节点为目的纳米节点,则路由控制结束,否则,以当前的下一跳节点为新的纳米节点s,目的纳米节点不变,返回步骤2。
优选地,所述步骤4包括以下步骤:
步骤4.1:纳米节点s搜索路由表寻找下一跳纳米节点;
步骤4.2:如果存在可用的路由记录,使用能量预测算法预测当前的下一跳纳米节点是否拥有用于接收、发送一个数据包及发送反馈确认帧的能量,进行下一步;若不存在可用的路由记录,则进行步骤5;
步骤4.3:如果能量足够则向当前的下一跳纳米节点发送数据包,进行步骤7,否则,进行步骤5。
优选地,所述步骤4.2中,下一跳纳米节点的预测能量
优选地,令ep为纳米节点接收、发送一个数据包及发送反馈确认帧的能量,当e‘x≥ep时,,纳米节点s向该下一跳纳米节点发送数据包。
优选地,所述步骤5包括以下步骤:
步骤5.1:纳米节点s搜索偏转路由表寻找下一跳纳米节点;
步骤5.2:如果存在可用的偏转路由,选择未被发送过当前数据包的路径权重最小的下一跳纳米节点,使用能量预测算法预测当前的下一跳纳米节点是否拥有用于接受、发送一个数据包及发送反馈确认帧的能量,进行下一步;若不存在可用的偏转路由,则进行步骤6;
步骤5.3:如果能量足够则向当前的下一跳纳米节点发送数据包,偏转次数加1,进行步骤7,否则,进行步骤6。
优选地,所述步骤5.2中,路径权重最小的下一跳纳米节点x=argminqs(d,z),其中,d为目的纳米节点的地址,z为所有偏转纳米节点的合集,qs(d,z)为纳米节点s中不同路由的权重,权重越大表示该路由消耗的资源越多。
优选地,所述步骤7中,更新信息
优选地,所述下一跳纳米节点的偏转率
优选地,所述步骤7中,更新信息包括路径权重、跳数、纳米节点能量状态、丢包率和偏转率。
优选地,所述更新信息中的路径权重
本发明提供了一种优化的面向电磁纳米网络的自适应偏转路由控制方法,纳米节点发送数据包到目的节点时经历路由选择阶段和反馈更新阶段;在路由选择阶段,纳米节点根据路由表的信息选择下一跳纳米节点,并在路由表中的下一跳纳米节点不可达的情况下根据偏转路由表中的信息将数据包偏转给其他纳米节点,增加数据包成功传输概率,同时,纳米节点可以通过能量预测算法对下一跳纳米节点的能量状态进行预测,只有下一跳纳米节点的预测能量大于收发一个数据包并接收确认帧所需要的能量时才会转发数据包,帮助提高数据包成功传输概率;在反馈更新阶段,纳米节点从下一跳纳米节点反馈的确认帧获得信息,更新自身路由表和偏转路由表,从而达到动态适应网络负载和节点能量变化的目的,提升网络的性能。
本发明简单,可以自适应进行路由控制,避免下一跳纳米节点因为缓存和能量问题而不能接收数据包的情况发生,纳米节点通过偏转可以将数据包偏转给其他有能力接收数据包的纳米节点,降低数据包的丢包率,并且节点可以根据收到的反馈信息自适应更新自身的路由表,从而达到自适应网络负载和纳米节点能量变化的目的,有效提高纳米网络的性能。
附图说明
图1为本发明的流程图;
图2为本发明的面向电磁纳米网络的自适应路由表;
图3为本发明的面向电磁纳米网络的自适应偏转路由表;
图4为本发明的面向电磁纳米网络的肯定应答确认帧数据包帧格式;
图5为本发明的面向电磁纳米网络的否定应答确认帧数据包帧格式。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种面向电磁纳米网络的自适应偏转路由控制方法,帮助纳米节点选择更好的路由进行数据传输,从而提高纳米网络数据传输的性能。
所述方法包括以下步骤。
步骤1:任一纳米节点s收到或产生一个数据包需要发送到目的纳米节点。
步骤2:纳米节点s判断当前的能量是否足够用于进行当前数据包的发送及接收反馈信息,若能量不足,则等待时间t并主动捕获能量后重复步骤2,否则,进行下一步。
本发明中,能量不足是指,若纳米节点s的能量es小于发送当前数据包及接收反馈信息所需的能量etrans,则需要继续主动捕获能量,如通过纳米压电装置从周围环境中获取能量;能量的计算为本领域常规技术内容,本领域技术人员可以自行计算。
本发明中,时间t一般为500ms。
本发明中,一般情况下,纳米节点装备有能量捕获装置,可以从环境中捕获能量。
步骤3:纳米节点s判断当前数据包的偏转次数是否超过最大偏转次数,如果超过则丢弃数据包,否则,进行下一步。
本发明中,最大偏转次数一般为5次,本领域技术人员可以依据需求自行设置,其是指,发送节点到不一定是目的节点的下一跳节点不得偏转超过5次
步骤4:纳米节点s搜索路由表寻找下一跳纳米节点,若找到下一跳纳米节点则发送数据包,进行步骤7,若找不到符合要求的下一跳纳米节点或路由记录不存在,则进行下一步。
所述步骤4包括以下步骤:
步骤4.1:纳米节点s搜索路由表寻找下一跳纳米节点;
步骤4.2:如果存在可用的路由记录,使用能量预测算法预测当前的下一跳纳米节点是否拥有用于接收、发送一个数据包及发送反馈确认帧的能量,进行下一步;若不存在可用的路由记录,则进行步骤5;
所述步骤4.2中,下一跳纳米节点的预测能量
令ep为纳米节点接收、发送一个数据包及发送反馈确认帧的能量,当e‘x≥ep时,,纳米节点s向该下一跳纳米节点发送数据包。
步骤4.3:如果能量足够则向当前的下一跳纳米节点发送数据包,进行步骤7,否则,进行步骤5。
本发明中,当ex'<ep或路由记录不存在时,直接进行步骤5。
本发明中,路由表非预设,其会因为操作而增加、更新。
步骤5:纳米节点s搜索偏转路由表寻找下一跳纳米节点,若找到下一跳纳米节点则发送数据包,偏转次数加1,进行步骤7,若找不到符合要求的下一跳纳米节点或偏转路由记录不存在,则进行下一步。
所述步骤5包括以下步骤:
步骤5.1:纳米节点s搜索偏转路由表寻找下一跳纳米节点;
步骤5.2:如果存在可用的偏转路由,选择未被发送过当前数据包的路径权重最小的下一跳纳米节点,使用能量预测算法预测当前的下一跳纳米节点是否拥有用于接受、发送一个数据包及发送反馈确认帧的能量,进行下一步;若不存在可用的偏转路由,则进行步骤6;
所述步骤5.2中,路径权重最小的下一跳纳米节点x=argminqs(d,z),其中,d为目的纳米节点的地址,z为所有偏转纳米节点的合集,qs(d,z)为纳米节点s中不同路由的权重,权重越大表示该路由消耗的资源越多。
步骤5.3:如果能量足够则向当前的下一跳纳米节点发送数据包,偏转次数加1,进行步骤7,否则,进行步骤6。
本发明中,一般情况下,面向电磁纳米网络的自适应路由表包括目的地址、下一跳纳米节点地址、路由权重、跳数、下一跳纳米节点能量状态、下一跳纳米节点能量捕获速率、下一跳纳米节点能量消耗速率、路由更新时间、标志位、路由生存时间等信息,而偏转路由表相比路由表多一个偏转路由标记位,用以标记该条路由是否为偏转路由记录。
本发明中,路由权重代表该条路由需要消耗资源的权重,权重越大代表该条路由消耗资源越多;标志位表示此条路由记录处于可用或不可用的状态,一般来说,标志位为enable表示此条路由可用,disabled表示此条路由记录不可用;纳米节点可以利用反馈的确认帧钟的信息对路由表进行更新。
本发明中,步骤5.2的argmin函数用于获取其中的最小值。
本发明中,步骤5.2的能量预测算法与步骤4.2相同。
步骤6:若纳米节点s周围不存在邻居纳米节点,则丢弃数据包,否则,选择任一邻居纳米节点作为下一跳纳米节点发送数据包,进行下一步。
步骤7:如果下一跳纳米节点完整接收到当前数据包,则由自身的信息计算得到更新信息,将更新信息写入肯定应答反馈确认帧,将肯定应答反馈确认帧发送至纳米节点s;如果下一跳纳米节点没有完整收到当前数据包,则返回纳米节点s不带更新信息的否定应答反馈确认帧。
所述步骤7中,更新信息
所述下一跳纳米节点的偏转率
所述步骤7中,更新信息包括路径权重、跳数、纳米节点能量状态、丢包率和偏转率。
所述更新信息中的路径权重
本发明中,y表示下一跳纳米节点x选择的再下一跳纳米节点,选择方法与步骤2到步骤6一致,也就是选择纳米节点s之后的两跳,x反馈的信息是x自身的信息,后续的信息不可再获取。
本发明中,rx为步骤7中所述的更新信息。
本发明中,肯定应答反馈确认帧的帧中包括接收地址、类型、肯定应答确认帧、协议、数据包长度、更新信息、能量状态、能量捕获速率、能量消耗速率;其中,接收地址占16位表示接收该确认帧的纳米节点,类型占2位表示该确认帧的类型,肯定应答确认帧的值为“11”,表示数据包已经被完整接收到,协议占2位表示该纳米节点执行的路由协议,数据包长度占12位表示整个确认帧的长度,更新信息占16位表示计算后的用于路由更新的信息,能量状态占16位表示发送该确认帧的纳米节点的能量状态,能量捕获速率占16位表示发送该确认帧的纳米节点从环境中捕获能量的速率、能量消耗速率占16位表示发送该确认帧的纳米节点消耗能量的速率。
本发明中,否定应答反馈确认帧的帧中,数据格式与肯定应答反馈确认帧类似,但是不存在更新信息、能量状态、能量捕获速率、能量消耗速率,否定应答确认帧的值为“00”,表示数据包没有被完整接收到或者节点能量不足以帮助转发相应数据包。
本发明中,更新系数α一般设置为0.1。
步骤8:纳米节点s若收到肯定应答反馈确认帧,则以当前肯定应答反馈确认帧中的更新信息更新自身的路由表,进行下一步;若收到否定应答反馈确认帧或等待超时没有收到任何下一跳纳米节点的反馈信息,判断偏转次数是否超过最大偏转次数,如果超过则丢弃数据包,否则,返回步骤5。
步骤9:若当前的下一跳节点为目的纳米节点,则路由控制结束,否则,以当前的下一跳节点为新的纳米节点s,目的纳米节点不变,返回步骤2。
本发明中,纳米节点发送数据包到目的节点时经历路由选择阶段和反馈更新阶段;在路由选择阶段,纳米节点根据路由表的信息选择下一跳纳米节点,并在路由表中的下一跳纳米节点不可达的情况下根据偏转路由表中的信息将数据包偏转给其他纳米节点,增加数据包成功传输概率,同时,纳米节点可以通过能量预测算法对下一跳纳米节点的能量状态进行预测,只有下一跳纳米节点的预测能量大于收发一个数据包并接收确认帧所需要的能量时才会转发数据包,帮助提高数据包成功传输概率;在反馈更新阶段,纳米节点从下一跳纳米节点反馈的确认帧获得信息,更新自身路由表和偏转路由表,从而达到动态适应网络负载和节点能量变化的目的,提升网络的性能。
本发明简单,可以自适应进行路由控制,避免下一跳纳米节点因为缓存和能量问题而不能接收数据包的情况发生,纳米节点通过偏转可以将数据包偏转给其他有能力接收数据包的纳米节点,降低数据包的丢包率,并且节点可以根据收到的反馈信息自适应更新自身的路由表,从而达到自适应网络负载和纳米节点能量变化的目的,有效提高纳米网络的性能。