技术简介:
本专利针对船舶自识别系统中传统AODV路由协议导致的广播开销大、时隙冲突多的问题,提出基于位置信息的路由优化方法。通过建立邻居列表动态维护网络拓扑,结合消息最大传播距离参数过滤冗余转发节点,有效降低RREQ广播次数;同时在路由表中引入存活状态机制,提升路由更新效率,减少链路层时隙占用,从而降低信息传输冲突率,优化船舶自组网通信性能。
关键词:AODV协议优化,船舶自组网
一种船舶自识别系统中基于aodv路由协议的消息中继方法
技术领域:
1.本发明涉及船舶自动识别技术,特别涉及船舶自识别系统中aodv路由技术。
背景技术:
:2.船舶自动识别系统(automaticidentificationsystem,ais)是一种用于海上通信、识别与监控的助航系统,由甚高频(veryhighfrequency,vhf)收发机、全球定位系统(globalpositioningsystem,gps)设备、船载显示以及各种传感器组成。船舶之间无需基础设施的管理与控制即可通过ais系统动态地获取vhf信道上其他船舶的编号、位置、航向和航速等各类航行信息,同时,每隔一段时间在vhf信道上预约时隙并自主播报自身的航行信息,保证视距通信范围内船与船之间的可见性,减少碰撞事故的发生,进而确保海上航行的安全。作为雷达监测系统的辅助甚至代替系统,ais具有技术上的优越性与经济性,目前已形成完备的国际标准(itu-rm.1371-5),在船舶安全设备市场具有广泛的应用前景。3.随着航海通信业务的发展,海上自组网诞生了低速率的数据业务的路由需求。然而ais只能单向广播,不具备中继转发功能,其国际标准在网络层亦未考虑路由协议的实现,这限制了船舶节点之间跨视距通信业务的发展。目前已有的甚高频数据交换系统(vhfdataexchangesystem,vdes),基于ais系统引入特殊应用报文和宽带vhf数据交换功能,集成多种数据转发功能,但该方案需借助卫星设备和低轨卫星链路,适用于天地一体化网络场景,经济成本高昂,实现难度大。也有采用贪婪转发的方法实现船与岸站、船与船之间数据的中继转发功能,但船舶源节点需通过征询模式向岸站获取目的船舶的位置才能实现基于ais的点对点无线(ais-basedadhocroutingprotocol,aar)路由,只适用近海范围并有基础设施支持的场景。4.经过多年的研究,大量的自组织网络路由协议方案相继被提出。依据不同的标准,自组织网络路由协议有不同的分类方式。针对船舶自动识别系统自组织网络路由问题,按照路由建立的方式不同,可分为后应式路由协议、先应式路由协议。后应式路由协议又称为按需路由协议,不需要维护网络拓扑和当前路由信息,当源节点需要发送分组时,被动地搜索从源节点到目的节点的路由。后应式路由协议能够减小控制报文的开销。5.目前在ais窄带网络中应用路由协议存在的问题:6.(1)与mac层时分多址接入(timedivisionmultipleaccess,tdma)技术不兼容;7.(2)随着海域上船舶数目的增加,控制报文的广播数量增加会增加数据链路层的时隙冲突率,影响船舶的航行安全。技术实现要素:8.本发明所要解决的技术问题是,针对船舶自动识别ais系统的中继转发功能需求,提出了一种基于无线自组网按需平面距离向量路由协议aodv(adhocon-demanddistancevectorrouting)的路由方法。9.本发明为解决上述技术问题所采用的技术方案是,一种船舶自识别系统中基于aodv路由协议的消息中继方法,包括:10.1)邻居列表建立与维护11.s11、各船舶节点周期性广播消息,消息中包括当前时刻的位置坐标和发送消息时间戳;12.s12、各船舶节点接收并提取消息中的信息建立与更新本地的邻居列表nt;邻居列表nt包括邻居节点id、邻居节点位置坐标、是否可用的状态、最后更新时间以及到达跳数;当超过预设时间t未收到邻居节点的消息,则将该邻居节点从路由表里面删除;13.s13、各个船舶节点进入路由等待状态,如未收到路由请求报文rreq,则循环s11、s12,如收到rreq则进入步骤2);rreq包括消息id、跳数计数、源节点id、源节点位置坐标、目的节点id、时间戳、路由参数、上一跳节点id以及下一跳节点id;所述路由参数包括消息最大传播距离;14.2)rreq处理过程15.船舶节点接收到路由请求rreq,若其路由表rt中存在到目的节点的路由表项,则直接返回路由回复rrep报文;若其路由表rt中不存在到目的节点的路由表项但目的节点在nt中,直接将rreq发送到目的节点而不进行广播;若rt中不存在到目的节点的路由表项且目的节点不在nt中,则准备进入步骤s41-s48的rreq处理;rt包括目的节点id、下一跳节点id、更新时间以及存活状态;16.rreq转发处理:17.s21、船舶节点将rreq存储到缓存区待处理;18.s22、判断是否为重复的rreq,如是则忽视该rreq,否则进入s23;19.s23、读取并记录rreq的源节点id与路由参数;20.s24、判断rt中是否存在到源节点的反向路由表项,若不存在,则进入步骤s25,若存在则进入步骤s26;21.s25、新建反向路由,在rt中建立到源节点的反向路由表项;22.s26、更新反向路由,依据rreq中时间戳判断路由路径是否在有效时间内从而更新rreq中是否可用的状态;23.s27、读取rreq的目的节点id,船舶节点自己为目的节点或rt中存在到目的节点的正向路由时,则该船舶节点向目的节点单播路由回复rrep;当船舶节点自己不是目的节点以及rt中不存在到目的节点的正向路由,则进入步骤s28;rrep包括消息id、跳数计数、源节点id、源节点位置坐标、目的节点id、时间戳、上一跳节点id、下一跳节点id以及备用部分。24.s28、船舶节点判断通过nt中的邻居节点位置坐标以及rreq中的路由参数的消息最大传播距离,判断是否存在距源节点距离大于消息最大传播距离的邻居节点,如存在则向大于消息最大传播距离的邻居节点转发rreq,否则不转发rreq;25.3)船舶节点接收到rrep后,进入rrep处理过程:26.s31、船舶节点将rrep存储到缓存区待处理;判rt中是否存在到目的节点的正向路由,若不存在,则进入步骤s32,若存在则进入步骤s33;如自己为目的节点则进入步骤s34;27.s32、在rt中建立到目的节点的正向路由表项,进入步骤34;28.s33、在rt中到目的节点的正向路由表项,到rreq中目的节点的路由表表项被创建或者更新后,存活状态被标记为活跃,下一跳节点id设定为rrep中的上一跳节点,跳数设置为rrep中的跳数加1,更新时间设置为生存时间加上rrep消息中的时间戳的时段,最后判断更新时间与当前时间的差值是否在生存时间内,如否则将存活状态标记为无效,如是则保持当前的存活状态标记后进入步骤s35;29.s34、建立到目的节点的正向路由表项,不再进行报文转发;30.s35、更新消息rrep中的跳数为当前跳数加1,之后根据之前已经建立好的反向路由转发rrep到下一跳节点。31.本发明在ais系统的基础上,本发明提出的一种基于无线自组网按需平面距离向量路由aodv和船舶自动识别系统ais相结合的路由算法,利用位置报告的信息来优化传统aodv算法,主要优化包括:(1)在不影响ais系统原生功能的基础上,将路由功能设计为可选择的功能模块,利用gps信息降低了路由发现过程中的广播报文数量,减少了系统广播冗余;(2)自适应的路由重建策略,实现更快的路由重建,保证路由稳定;(3)适配itu-rm.1371.-5标准的ais系统,兼容mac层协议。32.本发明通过在网络层增加aodv路由组件,利用aodv协议的按需路由策略实现了路由功能需求的模块化。在不影响船舶自识别功能的基础上拓展了网络功能,最大限度地降低了路由数据转发的报文开销对链路层时隙冲突的影响。基于位置信息辅助的路由广播优化,降低了传统aodv协议中路由请求的广播报文数量。在保证系统路由可用的同时,减少了无用转发,减少了了链路层时隙占用,从而减少了信息传输的冲突率。在路由协议上提出了邻居列表建立与维护、路由请求rreq、路由回复rrep三个通信过程,并在通信过程中建立与维护路由表。33.本发明的有益效果是,提供有效的失效链路销毁与快速更新方法,更加适应时变特征明显的空间网络拓扑,同时采用分布式自组织路由,为路由表的建立与维护更新提供有效手段,并利用位置信息辅助路由维护,降低了资源浪费情况。附图说明34.图1为本发明总流程图;35.图2为本发明步骤s5的流程图;36.图3为本发明步骤s7的流程图;37.图4为本发明邻居列表nt格式;38.图5为本发明路由请求rreq格式;39.图6为本发明aodv路由表rt;40.图7为本发明路由回复rrep格式;41.图8为船舶ais自组网系统架构;42.图9为转发rreq的场景示意图。具体实施方式43.实施例在ais网络层增加了后验式路由协议,利用aodv协议的按需路由策略实现了路由功能需求的模块化的方法。在不影响船舶自识别功能的基础上拓展了网络功能,最大限度地降低了路由数据转发的报文开销对链路层时隙冲突的影响。44.针对ais系统链路层报文格式的特点,实施例为aodv设计了适配于该系统的各类报文格式与路由表格式,包括ais位置消息、aodv路由请求rreq、aodv路由回复rrep的消息消息编号、各参数的比特占用。利用位置信息设计了aodv邻居列表、反向路由表、全局节点列表的格式规范。45.设置预设时间t与生存时间,预设时间t用于邻居节点间建立邻居列表的参考时段长度,生存时间用于判断路由生存状态所用的参考时段长度;46.这种基于按需平面距离向量路由的ais系统中继转发方法实现在网络层,其具体操作步骤如图1所示:47.1)邻居列表建立与维护48.s1、各船舶节点周期性广播消息。根据ais系统的要求,消息中包括当前时刻的位置坐标和发送消息时间戳等信息。49.s2、各船舶节点接收其他节点的位置消息广播,并提取其中的信息建立邻居列表nt(neighbourtable),在列表中更新邻居状态,包括经纬度、更新时间、跳数、可用性。当没有收到邻节点的路由信息的时间间隔超过t,则可以认为此邻居路由节点发送故障或者本节点已经不在此邻居节点的信号辐射范围,则将该邻居节点从路由表里面删除。邻居列表nt如图4所示,包括邻居节点身份标识nodeid、邻居节点经度longitude、邻居节点纬度latitude、是否可用的状态usability、最后更新时间updatetime以及到达跳数hop。50.s3、各个船舶节点进入路由等待standby状态,如果未收到路由请求报文rreq(routerrequest),则循环s1、s2,收到则进入步骤2)。51.2)rreq过程52.s4、船舶节点接收到路由请求rreq后,若存在到目的节点的路由表rt(routertable),即,路由表中目的节点的id与rreq中下一跳节点id相同,则根据表中信息直接返回路由回复rrep(routerreply)报文。53.s5、船舶节点收到rreq,若不存在路由且目的节点不在邻居列表中,则进入rreq处理流程,如图2所示:54.s51、接收rreq消息并存储到缓存区待处理。详细路由请求报文格式见图5,包括5字节的消息idmessage_id、2字节的跳数计数hop_count、20字节的源节点idsource_id、28字节的源节点经度longitude、27字节的源节点纬度latitude、20字节的目的节点iddest_id、22字节的时间戳time_stamp、22字节的路由参数max_dis、20字节的上一跳节点idprevious_hop、20字节的下一跳节点idnext_hop以及6字节的备用部分spare。路由参数max_dis中包含了消息的最大传播距离;经度与纬度即为位置坐标。55.s52、判断是否为重复的路由请求,由于无线网络的全向广播,若为已收到的或自己为源地址的路由请求,则忽视该消息,否则进入s53。56.s53、依据消息包含的信息,读取并记录rreq的source_id,max_dis等数据。57.s54、判断是否存在到源节点的反向路由,即rt中是否下一跳节点id与源节点id相同,如有就说明rt存在反向路由,若不存在,则进入步骤s55,若存在则进入步骤s56;58.s55、新建反向路由,根据路由请求的源、目的节点,建立到源节点的反向路由表项,将上一跳节点作为到源节点的下一跳。59.s56、更新反向路由,依据时间戳判断消息的及时性,更新最新的可用路由信息。在rreq广播过程中,各个收到的节点会更新到源节点的反向路由,即更新rt中下一跳节点id与源节点id相同的表项中的相关信息。路由表的格式如图6,包含目的节点destination的id、下一跳节点nexthop的id、更新时间timeupdate、存活状态livestate。表中记录的每个路由路径都有有效时间的限制,依据ais监测的邻居点的生存情况与节点移动速度,决定livestate,即是否可用。有效时间根据最后更新时间加上设定时间段得到。s57、当自己为目的节点或存在到目的节点的路由时,单播路由回复rrep。60.s58、广播rreq。在该过程中存在max_dis的判断与更新过程,目的是减少rreq广播的报文数量,抑制广播洪范。如图9所示。源节点a发起路由请求rreq,会在报文中写入max_dis1,它的所有邻居收到后会计算各自的邻居与a的距离,若有大于max_dis1的,则会转发该请求,并在报文中更新。图9中只有b的邻居c与a的距离有大于max_dis1(图9中的①),而a的其余邻居没有邻居。因此只有b会转发a的请求至c,a的其他邻居在收到请求后不会转发,同时b会将它的邻居c与a的距离max_dis2(图9中的②)更新到报文头中,c再转发至d。这样就减少了无意义的广播(除b外的其它邻居的转发不能让新节点收到)。在图9的场景下,rreq广播报文量较aodv降低了42.9%。根据网络拓扑的不同,该策略的优化效果有差异,一般而言,对于节点数越多,船舶分布越密集的场景,降低的广播报文数量越多。通过位置信息辅助,利用船舶自识别系统的gps定位减少了了基于平面距离矢量路由过程中路由请求转发的报文数量。优化后aodv路由协议不仅增强了其开销小的优点,且在ais系统的支持下能更快初始化与重建,保证稳定性。61.s6、单播rreq。当接收到路由请求,目的节点为邻居节点但不存在路由表时,直接将rreq发送到目的节点而不进行广播。62.3)rrep过程63.s7、各船舶节点接收到路由回复rrep后,进入rrep处理处理流程,如图3所示:64.s71、接收rrep消息并存储到缓存区待处理。rrep的报文格式如图7所示,包括5字节的消息idmessage_id、2字节的跳数计数hop_count、20字节的源节点idsource_id、28字节的源节点经度longitude、27字节的源节点纬度latitude、20字节的目的节点iddest_id、22字节的时间戳time_stamp、20字节的上一跳节点idprevious_hop、20字节的下一跳节点idnext_hop以及28字节的备用部分spare。判断本地是否存在到目的节点的正向路由,若不存在,则进入步骤s72,若存在则进入步骤s73;65.s72、建立新正向路由。rrep的发送存在两种情况,一种是由目的节点发送,一种由路径上的存在路由的节点发送。无论哪种,rrep都是点对点的发送。rrep作用是建立到目的节点的正向路由。66.s73、更新正向路由。到rreq目的节点的路由表表项(rt中有目的id与rreq目的节点id相同的表项)被创建或者更新后,该livestate会被标记为活跃路由,下一跳nexthop设定为收到rrep的上一跳节点,跳数设置为rrep中的跳数加一,过期时间设置为生存时间加上rrep消息中的time_stamp时间字段。路由表中会记录最后的更新时间timeupdate,然后判断timeupdate与现在时间的差值是否小于生存时间,超过则该路由无效。67.s74、添加正向路由信息。接收到rrep且自己为目的节点时,直接添加正向路由信息,不再进行报文转发。68.s75、消息中跳数加1。对要转发的rrep信息中的跳数加一,为最大转发数ttl提供依据。69.s76、转发rrep。rrep消息会根据之前已经建立好的反向路由发送到下一个节点,至此整个接收和转发rrep的过程结束。70.s8、超时等待。设立从发送rreq到接收rrep的最大等待时间,超时则直接结束当前的路由流程。在时间阈值内,则正向路由更新后,后续rreq源节点可以通过每一个中间节点的正向路由与目的节点进行数据传输。最大等待时间使得中继过程能在长时间无响应后结束。如图8所示,为实现基于aodv路由协议中继方法的船舶ais自组网系统架构示例如下:71.应用层根据应用需要生成不同的消息,并处理下层递交的消息。72.在网络层,消息优先级管理为不同消息指配优先级;处理器负责调度网络层的不同任务和计算资源;位置信息管理包括局部船舶位置存储表、全局船舶位置信息存储表以及这些存储表的维护与管理逻辑指令,其根据新的位置消息完成局部与全局存储表的维护,回应aodv路由模块的位置信息请求;laodv路由包括rrep(routerreply)和rreq(routerrequest)两个子功能,其向位置信息管理模块请求路由位置消息,并根据请求结果计算路由请求是否转发,同时完成数据消息中下一跳节点等子段的更新。73.在数据链路层,时隙图管理与维护模块接收并更新其他船舶的时隙占用信息,同时向处理器传递时隙信息;处理器负责调度数据链路层的计算资源,根据不同消息需求完成本船舶节点时隙预约任务,处理到达的报文等;队列管理与维护模块根据优先级的不同将消息缓存到不同队列中,同时向处理器请求发送时隙,根据返回的时隙结果等待出队传输;sotdma和itdma模块将时隙预约等信息写入自身的位置报文的通信状态字段;ratdma模块负责传输需要转发的位置报文和其他数据消息;fatdma模块负责处理基站的消息传输;信道接入管理模块为不同的tdma提供信道选择与接入。74.物理层由vhf接收机和vhf发射机组成,使用自由空间传播的电波传播模型,调制方式为gmsk。当前第1页12