一种下一代无线网络的数据通信方法与流程

文档序号:15849457发布日期:2018-11-07 09:37阅读:133来源:国知局
一种下一代无线网络的数据通信方法与流程
本发明涉及一种通信方法,尤其涉及的是一种下一代无线网络的数据通信方法。
背景技术
无线网络能够实现节点与节点之间的多跳无线通信。随着无线网络技术的不断发展以及各种新应用的不断涌现,迫切需要提高无线网络的数据通信性能。近年来,很多研究工作致力于无线网络数据通信方法,以便使移动节点能够快速获取网络服务。随着无线网络技术的发展,无线网络数据通信方法会成为未来提供服务的一种模式。目前,无线网络数据通信的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低无线网络提供服务的延迟和代价成为近年来研究的热点问题。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种下一代无线网络的数据通信方法。本发明通过聚合表以及单播方式实现数据通信,移动节点通过聚合表可能从中间节点以单播方式分享所请求的数据,因此降低了数据通信延迟。技术方案:本发明公开了一种下一代无线网络的数据通信方法,其特征在于,所述网络包括m个域,m为大于1的正整数,每个域覆盖的面积为长方形;第n个域的长度dn,宽度为sn,1≤n≤m,其覆盖面积为横坐标区间[xn,xn+dn]和纵坐标区间[yn,yn+sn]构成的封闭区域;一个域包括两个以上的移动节点;一种数据由一个名称唯一标识;一个名称由三部分构成,坐标、版本和名称id;移动节点通过消息获取数据,一个消息包含源mac地址、目的mac地址、最终mac地址、名称域、消息类型域和负载;消息类型如下表所示:消息类型消息值发布消息1数据请求消息2数据响应消息3邻居消息4新版本消息5每个移动节点维护一个路由表,一个路由表项包含名称域、下一跳域、距离域和目的节点域;名称域唯一指定一种类型的数据,下一跳域为到达目的节点的下一跳的mac地址,距离域为到达目的节点的跳数,目的节点域为目的节点的mac地址;在移动节点p1位于域d1中,数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),版本号为v1,名称id为nid1的条件下,移动节点p1执行下述操作建立路由表:步骤101:开始;步骤102:移动节点p1发送发布消息,该发布消息的源mac地址为移动节点p1的mac地址,目的mac地址为空,最终mac地址为移动节点p1的mac地址,名称为na1,消息类型为1,负载为参数h,参数h的初始值为0;步骤103:移动节点接收到发布消息后查看自己的坐标是否位于域d1中,如果是,则执行步骤105,否则执行步骤104;步骤104:接收到发布消息的移动节点丢弃该发布消息,执行步骤110;步骤105:接收到发布消息的移动节点将发布消息负载中的参数h递增1,并查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值不大于该发布消息中的参数h的值,则执行步骤110,否则执行步骤106;步骤106:接收到发布消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值大于该发布消息中的参数h的值,则执行步骤107,否则执行步骤108;步骤107:接收到发布消息的移动节点选择一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值大于该发布消息中的参数h的值,将该路由表项的下一跳域值更新为该发布消息中的源mac地址,将该路由表项中的距离域值更新为该发布消息中的参数h,执行步骤109;步骤108:接收到发布消息的移动节点创建一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,下一跳域值等于该发布消息中的源mac地址,距离域值等于该发布消息中的参数h;步骤109:接收到发布消息的移动节点将该发布消息的源mac地址更新为自己的mac地址,将该发布消息转发到邻居移动节点,执行步骤103;步骤110:结束。移动节点产生数据后,通过上述过程建立到达自己的最优路由表项,这样其他移动节点可以通过该路由表项来请求并获取数据。本发明所述方法中,每个移动节点维护一个聚合表,每个聚合表项包含名称域、前一跳域、距离域和源节点域;每个移动节点维护一个数据表,每个数据表项包含名称域和数据值域;数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1;移动节点m1位于域d1中,移动节点m1需要获取数据c1,首先查看路由表,如果路由表中任何一个路由表项的名称域值都不等于na1,移动节点m1则通过下述过程获取数据c1:步骤201:开始;步骤202:移动节点m1发送数据请求消息,该数据请求消息中,源mac地址为移动节点m1的mac地址,目的mac地址为空,名称为na1,消息类型为2,最终mac地址为空,负载为移动节点m1的mac地址以及参数h1,参数h1的初始值为1;步骤203:接收到数据请求消息的移动节点判断自己是否在域d1中,如果是,则执行步骤205,否则执行步骤204;步骤204:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤209;步骤205:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤206,否则执行步骤207;步骤206:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,移动节点发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的数据域值,该移动节点的mac地址以及参数h2,参数h2的初始值为0,执行步骤209;步骤207:接收到数据请求消息的移动节点将数据请求消息负载中的参数h1递增1,创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于参数h1的值,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤209,否则执行步骤208;步骤208:接收到数据请求消息的移动节点将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤203;步骤209:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤211,否则执行步骤210;步骤210:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤216;步骤211:接收到数据响应消息的移动节点将该数据响应消息中的参数h2递增1,并查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h2,则执行步骤213,否则执行步骤212;步骤212:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h2,该移动节点则将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h2的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h2,下一跳域值为该数据响应消息的源mac地址;步骤213:如果接收到数据响应消息的移动节点的mac地址等于该数据响应消息中的最终mac地址,则执行步骤215,否则执行步骤214;步骤214:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点创建一个路由表项,该路由表项的名称域值等于该聚合表项的名称域值,下一跳域值等于该聚合表项的前一跳域值,距离域值等于该聚合表项的距离域值,目的节点域值等于该聚合表项的源节点域值;该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤209;步骤215:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤216:结束。在路由表中任何一个路由表项的名称域值都不等于na1的情况下,移动节点通过上述过程仍能获取所请求的数据,移动节点通过聚合表以及数据表实现数据通信,移动节点通过数据表能够从本域内距离最近的移动节点以单播方式获取所请求的数据,因此降低了数据通信延迟;此外,移动节点通过聚合表能够从本域内的中间节点分享数据,因此进一步降低了数据通信延迟。本发明所述方法中,在数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1的条件下,移动节点m1位于域d1中,移动节点m1需要获取数据c1,首先查看路由表,如果至少存在一个名称域值等于na1的路由表项,移动节点m1则通过下述过程获取数据c1:步骤301:开始;步骤302:移动节点m1选择一个路由表项,该路由表项的名称域值等于na1,发送数据请求消息,该数据请求消息中,源mac地址为移动节点m1的mac地址,目的mac地址为该路由表项的下一跳域值,最终mac地址等于该路由表项的目的节点域值,名称为na1,消息类型为2,负载为移动节点m1的mac地址以及参数h1,参数h1的初始值为1;步骤303:接收到数据请求消息的移动节点判断自己的mac地址是否等于该数据请求消息中的目的mac地址,如果是,则执行步骤305,否则执行步骤304;步骤304:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤309;步骤305:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤306,否则执行步骤307;步骤306:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,移动节点发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的数据域值,该移动节点的mac地址以及参数h2,参数h2的初始值为0,执行步骤309;步骤307:接收到数据请求消息的移动节点将数据请求消息负载中的参数h1递增1,创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于参数h1的值,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤309,否则执行步骤308;步骤308:接收到数据请求消息的移动节点选择一个路由表项,该路由表项的名称域值等于该数据请求消息的名称且目的节点域值等于该数据请求消息的最终mac地址,将该数据请求消息的目的mac地址更新为该路由表项的下一跳,将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤303;步骤309:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤311,否则执行步骤310;步骤310:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤316;步骤311:接收到数据响应消息的移动节点将该数据响应消息中的参数h2递增1,查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h2,则执行步骤313,否则执行步骤312;步骤312:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h2,则该移动节点将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h2的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h2,下一跳域值为该数据响应消息的源mac地址;步骤313:判断接收到数据响应消息的移动节点的mac地址是否等于该数据响应消息中的最终mac地址,如果是则执行步骤315,否则执行步骤314;步骤314:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点创建一个路由表项,该路由表项的名称域值等于该聚合表项的名称域值,下一跳域值等于该聚合表项的前一跳域值,距离域值等于该聚合表项的距离域值,目的节点域值等于该聚合表项的源节点域值;该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤309;步骤315:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤316:结束。在路由表中存在一个路由表项的名称域值等于na1的情况下,移动节点通过路由表、聚合表以及数据表实现数据通信,移动节点通过路由表和数据表能够从本域内距离最近的移动节点以单播方式获取所请求的数据,因此降低了数据通信延迟;移动节点通过聚合表能够从本域内的中间节点分享数据,因此进一步降低了数据通信延迟。本发明所述方法中,每个移动节点维护一个邻居表,每个邻居表项包含坐标域,mac地址域和生命周期域;一个移动节点定期执行下述操作:步骤401:开始;步骤402:移动节点定期发布邻居消息,该邻居消息的源mac地址为该移动节点的mac地址,目的mac地址和最终mac地址为空,名称域值为空,负载为该移动节点的坐标;步骤403:邻居移动节点接收到该邻居消息后,查看邻居表;如果存在一个邻居表项,该邻居表项的mac地址域值等于该邻居消息的源mac地址,则将该邻居表项的坐标域值更新为该邻居消息负载中的坐标值,并将该邻居表项的生命周期设置为最大值;否则,该邻居移动节点创建一个邻居表项,该邻居表项的mac地址域值等于该邻居消息的源mac地址,坐标域值为该邻居消息负载中的坐标值,生命周期设置为最大值,例如100ms;步骤404:结束。如果一个邻居表项中的生命周期衰减为0,则删除该邻居表项。移动节点通过邻居表能够动态实时地维护邻居移动节点的信息从而进行正确通信。本发明所述方法中,在数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1,域d2是域d1的邻居域,移动节点m2位于域d2中的条件下,移动节点m2通过下述过程获取数据c1:步骤501:开始;步骤502:移动节点m2查看邻居表,选择一个邻居表项,该邻居表项的坐标与名称na1中的坐标距离最近,移动节点m2发送一个数据请求消息,该数据请求消息中,源mac地址为移动节点m2的mac地址,目的mac地址为选中的邻居表项的mac地址,名称为na1,消息类型为2,最终mac地址为空,负载为移动节点m2的mac地址;步骤503:接收到数据请求消息的移动节点判断自己的mac地址是否等于该数据请求消息中的目的mac地址,如果是,则执行步骤505,否则执行步骤504;步骤504:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤511;步骤505:接收到数据请求消息的移动节点判断自己是否位于域d2中,如果是,则执行步骤506,否则执行步骤507;步骤506:接收到数据请求消息的移动节点创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离等于0,源节点域值等于该数据请求消息负载中的mac地址;该移动节点选择一个邻居表项,该邻居表项的坐标与该数据请求消息名称域值中的坐标距离最近,将该数据请求消息中的目的mac地址更新为该邻居表项的坐标值,源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤503;步骤507:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤508,否则执行步骤509;步骤508:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的该数据表项的数据域值,该移动节点的mac地址以及参数h3,参数h3的初始值为0,执行步骤511;步骤509:接收到数据请求消息的移动节点创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于0,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤511,否则执行步骤510;步骤510:接收到数据请求消息的移动节点选择一个路由表项,该路由表项的名称域值等于该数据请求消息的名称且目的节点域值等于该数据请求消息的最终mac地址,将该数据请求消息的目的mac地址更新为该路由表项的下一跳,将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤503;步骤511:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤513,否则执行步骤512;步骤512:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤519;步骤513:判断接收到数据响应消息的移动节点是否位于域d1中,如果是,则执行步骤514,否则执行步骤516;步骤514:接收到数据响应消息的移动节点将该数据响应消息中的参数h3递增1,查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h3,则执行步骤516,否则执行步骤515;步骤515:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h3,则该移动节点将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h3的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h3,下一跳域值为该数据响应消息的源mac地址;步骤516:判断接收到数据响应消息的移动节点的mac地址是否等于该数据响应消息中的最终mac地址,则执行步骤518,否则执行步骤517;步骤517:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤511;步骤518:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤519:结束。移动节点通过路由表、聚合表以及数据表能够获取不同域的远程数据,移动节点通过路由表能够从其他域内距离最近的移动节点以单播方式获取所请求的数据,移动节点通过数据表能够从本域内或者其他域内距离最近的移动节点以单播方式获取数据,移动节点通过聚合表能够从本域内或者其他域的中间节点分享数据,因此降低了数据通信延迟。本发明所述方法中,在移动节点p1位于域d1中,数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),版本号为v1,名称id为nid1,移动节点p1发布数据c1后,对数据c1进行更新,更新后的数据为数据c2,数据c2由名称na2唯一标识,名称na2中,坐标为(x1,y1),版本号为v2,名称id为nid1,移动节点p1执行下述操作更新路由表:步骤601:开始;步骤602:移动节点p1发送新版本消息,该新版本消息的源mac地址为移动节点p1的mac地址,目的mac地址为空,最终mac地址为移动节点p1的mac地址,名称为na2,消息类型为5,负载为名称na1以及参数h,参数h的初始值为0;步骤603:移动节点接收到新版本消息后查看自己的坐标是否位于域d1中,如果是,则执行步骤605,否则执行步骤604;步骤604:接收到新版本消息的移动节点丢弃该新版本消息,执行步骤611;步骤605:接收到新版本消息的移动节点将新版本消息负载中的参数h递增1,并查看数据表,如果存在一个数据表项,该数据表项的名称等于该新版本消息负载中的名称,则删除该数据表项;该移动节点查看路由表,如果存在一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,则删除该路由表项;步骤606:接收到新版本消息的移动节点查看路由表,如果存在一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,目的节点域值等于该新版本消息中的最终mac地址,且距离域值不大于该新版本消息中的参数h的值,则执行步骤611,否则执行步骤607;步骤607:接收到新版本消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该新版本消息负载中的名称域值,目的节点域值等于该新版本消息的最终mac地址,且距离域值大于该新版本消息中的参数h的值,则执行步骤608,否则执行步骤609;步骤608:接收到新版本消息的移动节点选择一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,目的节点域值等于该新版本消息的最终mac地址,且距离域值大于该新版本消息中的参数h的值,将该路由表项的下一跳域值更新为该新版本消息中的源mac地址,将该路由表项中的距离域值更新为该新版本消息中的参数h,执行步骤610;步骤609:接收到新版本消息的移动节点创建一个路由表项,该路由表项的名称域值等于该新版本消息负载中的名称域值,目的节点域值等于该新版本消息的最终mac地址,下一跳域值等于该新版本消息中的源mac地址,距离域值等于该新版本消息中的参数h;步骤610:接收到新版本消息的移动节点将该新版本消息的源mac地址更新为自己的mac地址,将该新版本消息转发到邻居移动节点,执行步骤603;步骤611:结束。移动节点通过上述过程能够快速更新路由表,从而更新数据版本以及建立到达自己的路由路径,以确保移动节点能够快速正确地获取所需数据。有益效果:本发明提供了一种下一代无线网络的数据通信方法,移动节点通过本发明所提供的移动无线网络数据通信方法能够从距离最近的移动节点以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的建立路由表流程示意图。图2为本发明所述的域内数据通信流程示意图。图3为本发明所述的获取数据流程示意图。图4为本发明所述的建立邻居表流程示意图。图5为本发明所述的域间数据通信流程示意图。图6为本发明所述的更新路由表流程示意图。具体实施方式:本发明提供了一种下一代无线网络的数据通信方法,移动节点通过本发明所提供的移动无线网络数据通信方法能够从距离最近的移动节点以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。图1为本发明所述的建立路由表流程示意图。所述网络包括m个域,m为大于1的正整数,每个域覆盖的面积为长方形;第n个域的长度dn,宽度为sn,1≤n≤m,其覆盖面积为横坐标区间[xn,xn+dn]和纵坐标区间[yn,yn+sn]构成的封闭区域;一个域包括两个以上的移动节点;一种数据由一个名称唯一标识;一个名称由三部分构成,坐标、版本和名称id;移动节点通过消息获取数据,一个消息包含源mac地址、目的mac地址、最终mac地址、名称域、消息类型域和负载;消息类型如下表所示:消息类型消息值发布消息1数据请求消息2数据响应消息3邻居消息4新版本消息5每个移动节点维护一个路由表,一个路由表项包含名称域、下一跳域、距离域和目的节点域;名称域唯一指定一种类型的数据,下一跳域为到达目的节点的下一跳的mac地址,距离域为到达目的节点的跳数,目的节点域为目的节点的mac地址;在移动节点p1位于域d1中,数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),版本号为v1,名称id为nid1的条件下,移动节点p1执行下述操作建立路由表:步骤101:开始;步骤102:移动节点p1发送发布消息,该发布消息的源mac地址为移动节点p1的mac地址,目的mac地址为空,最终mac地址为移动节点p1的mac地址,名称为na1,消息类型为1,负载为参数h,参数h的初始值为0;步骤103:移动节点接收到发布消息后查看自己的坐标是否位于域d1中,如果是,则执行步骤105,否则执行步骤104;步骤104:接收到发布消息的移动节点丢弃该发布消息,执行步骤110;步骤105:接收到发布消息的移动节点将发布消息负载中的参数h递增1,并查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值不大于该发布消息中的参数h的值,则执行步骤110,否则执行步骤106;步骤106:接收到发布消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值大于该发布消息中的参数h的值,则执行步骤107,否则执行步骤108;步骤107:接收到发布消息的移动节点选择一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,且距离域值大于该发布消息中的参数h的值,将该路由表项的下一跳域值更新为该发布消息中的源mac地址,将该路由表项中的距离域值更新为该发布消息中的参数h,执行步骤109;步骤108:接收到发布消息的移动节点创建一个路由表项,该路由表项的名称域值等于该发布消息中的名称域值,目的节点域值等于该发布消息的最终mac地址,下一跳域值等于该发布消息中的源mac地址,距离域值等于该发布消息中的参数h;步骤109:接收到发布消息的移动节点将该发布消息的源mac地址更新为自己的mac地址,将该发布消息转发到邻居移动节点,执行步骤103;步骤110:结束。图2为本发明所述的域内数据通信流程示意图。每个移动节点维护一个聚合表,每个聚合表项包含名称域、前一跳域、距离域和源节点域;每个移动节点维护一个数据表,每个数据表项包含名称域和数据值域;数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1;移动节点m1位于域d1中,移动节点m1需要获取数据c1,首先查看路由表,如果路由表中任何一个路由表项的名称域值都不等于na1,移动节点m1则通过下述过程获取数据c1:步骤201:开始;步骤202:移动节点m1发送数据请求消息,该数据请求消息中,源mac地址为移动节点m1的mac地址,目的mac地址为空,名称为na1,消息类型为2,最终mac地址为空,负载为移动节点m1的mac地址以及参数h1,参数h1的初始值为1;步骤203:接收到数据请求消息的移动节点判断自己是否在域d1中,如果是,则执行步骤205,否则执行步骤204;步骤204:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤209;步骤205:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤206,否则执行步骤207;步骤206:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,移动节点发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的数据域值,该移动节点的mac地址以及参数h2,参数h2的初始值为0,执行步骤209;步骤207:接收到数据请求消息的移动节点将数据请求消息负载中的参数h1递增1,创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于参数h1的值,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤209,否则执行步骤208;步骤208:接收到数据请求消息的移动节点将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤203;步骤209:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤211,否则执行步骤210;步骤210:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤216;步骤211:接收到数据响应消息的移动节点将该数据响应消息中的参数h2递增1,并查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h2,则执行步骤213,否则执行步骤212;步骤212:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h2,该移动节点则将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h2的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h2,下一跳域值为该数据响应消息的源mac地址;步骤213:如果接收到数据响应消息的移动节点的mac地址等于该数据响应消息中的最终mac地址,则执行步骤215,否则执行步骤214;步骤214:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点创建一个路由表项,该路由表项的名称域值等于该聚合表项的名称域值,下一跳域值等于该聚合表项的前一跳域值,距离域值等于该聚合表项的距离域值,目的节点域值等于该聚合表项的源节点域值;该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤209;步骤215:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤216:结束。图3为本发明所述的获取数据流程示意图。在数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1的条件下,移动节点m1位于域d1中,移动节点m1需要获取数据c1,首先查看路由表,如果至少存在一个名称域值等于na1的路由表项,移动节点m1则通过下述过程获取数据c1:步骤301:开始;步骤302:移动节点m1选择一个路由表项,该路由表项的名称域值等于na1,发送数据请求消息,该数据请求消息中,源mac地址为移动节点m1的mac地址,目的mac地址为该路由表项的下一跳域值,最终mac地址等于该路由表项的目的节点域值,名称为na1,消息类型为2,负载为移动节点m1的mac地址以及参数h1,参数h1的初始值为1;步骤303:接收到数据请求消息的移动节点判断自己的mac地址是否等于该数据请求消息中的目的mac地址,如果是,则执行步骤305,否则执行步骤304;步骤304:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤309;步骤305:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤306,否则执行步骤307;步骤306:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,移动节点发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的数据域值,该移动节点的mac地址以及参数h2,参数h2的初始值为0,执行步骤309;步骤307:接收到数据请求消息的移动节点将数据请求消息负载中的参数h1递增1,创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于参数h1的值,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤309,否则执行步骤308;步骤308:接收到数据请求消息的移动节点选择一个路由表项,该路由表项的名称域值等于该数据请求消息的名称且目的节点域值等于该数据请求消息的最终mac地址,将该数据请求消息的目的mac地址更新为该路由表项的下一跳,将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤303;步骤309:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤311,否则执行步骤310;步骤310:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤316;步骤311:接收到数据响应消息的移动节点将该数据响应消息中的参数h2递增1,查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h2,则执行步骤313,否则执行步骤312;步骤312:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h2,则该移动节点将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h2的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h2,下一跳域值为该数据响应消息的源mac地址;步骤313:判断接收到数据响应消息的移动节点的mac地址是否等于该数据响应消息中的最终mac地址,如果是则执行步骤315,否则执行步骤314;步骤314:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点创建一个路由表项,该路由表项的名称域值等于该聚合表项的名称域值,下一跳域值等于该聚合表项的前一跳域值,距离域值等于该聚合表项的距离域值,目的节点域值等于该聚合表项的源节点域值;该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤309;步骤315:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤316:结束。图4为本发明所述的建立邻居表流程示意图。每个移动节点维护一个邻居表,每个邻居表项包含坐标域,mac地址域和生命周期域;一个移动节点定期执行下述操作:步骤401:开始;步骤402:移动节点定期发布邻居消息,该邻居消息的源mac地址为该移动节点的mac地址,目的mac地址和最终mac地址为空,名称域值为空,负载为该移动节点的坐标;步骤403:邻居移动节点接收到该邻居消息后,查看邻居表;如果存在一个邻居表项,该邻居表项的mac地址域值等于该邻居消息的源mac地址,则将该邻居表项的坐标域值更新为该邻居消息负载中的坐标值,并将该邻居表项的生命周期设置为最大值;否则,该邻居移动节点创建一个邻居表项,该邻居表项的mac地址域值等于该邻居消息的源mac地址,坐标域值为该邻居消息负载中的坐标值,生命周期设置为最大值;步骤404:结束;如果一个邻居表项中的生命周期衰减为0,则删除该邻居表项。图5为本发明所述的域间数据通信流程示意图。在数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),坐标(x1,y1)位于域d1中,版本为v1,名称id为nid1,域d2是域d1的邻居域,移动节点m2位于域d2中的条件下,移动节点m2通过下述过程获取数据c1:步骤501:开始;步骤502:移动节点m2查看邻居表,选择一个邻居表项,该邻居表项的坐标与名称na1中的坐标距离最近,移动节点m2发送一个数据请求消息,该数据请求消息中,源mac地址为移动节点m2的mac地址,目的mac地址为选中的邻居表项的mac地址,名称为na1,消息类型为2,最终mac地址为空,负载为移动节点m2的mac地址;步骤503:接收到数据请求消息的移动节点判断自己的mac地址是否等于该数据请求消息中的目的mac地址,如果是,则执行步骤505,否则执行步骤504;步骤504:接收到数据请求消息的移动节点丢弃该数据请求消息,执行步骤511;步骤505:接收到数据请求消息的移动节点判断自己是否位于域d2中,如果是,则执行步骤506,否则执行步骤507;步骤506:接收到数据请求消息的移动节点创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离等于0,源节点域值等于该数据请求消息负载中的mac地址;该移动节点选择一个邻居表项,该邻居表项的坐标与该数据请求消息名称域值中的坐标距离最近,将该数据请求消息中的目的mac地址更新为该邻居表项的坐标值,源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤503;步骤507:接收到数据请求消息的移动节点查看数据表;如果存在一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,则执行步骤508,否则执行步骤509;步骤508:接收到数据请求消息的移动节点选择一个数据表项,该数据表项的名称域值等于该数据请求消息中的名称域值,发送一个数据响应消息,该数据响应消息的源mac等于该移动节点的mac地址,目的mac地址为该数据请求消息的源mac地址,最终mac地址等于该数据请求消息负载中的mac地址,名称域值等于该数据请求消息中的名称域值,消息类型为3,负载等于该数据表项中的该数据表项的数据域值,该移动节点的mac地址以及参数h3,参数h3的初始值为0,执行步骤511;步骤509:接收到数据请求消息的移动节点创建一个聚合表项,该聚合表项的名称域值等于该数据请求消息中的名称域值,前一跳域值等于该数据请求消息中的源mac地址,距离域值等于0,源节点域值等于该数据请求消息负载中的mac地址;如果存在两个以上的名称域值等于该数据请求消息的名称的聚合表项,则执行步骤511,否则执行步骤510;步骤510:接收到数据请求消息的移动节点选择一个路由表项,该路由表项的名称域值等于该数据请求消息的名称且目的节点域值等于该数据请求消息的最终mac地址,将该数据请求消息的目的mac地址更新为该路由表项的下一跳,将该数据请求消息的源mac地址更新为自己的mac地址,发送该数据请求消息,执行步骤503;步骤511:接收到数据响应消息的移动节点查看自己的mac地址是否等于该数据响应消息中的目的mac地址,如果等于,执行步骤513,否则执行步骤512;步骤512:接收到数据响应消息的移动节点丢弃该数据响应消息,执行步骤519;步骤513:判断接收到数据响应消息的移动节点是否位于域d1中,如果是,则执行步骤514,否则执行步骤516;步骤514:接收到数据响应消息的移动节点将该数据响应消息中的参数h3递增1,查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值不大于该数据响应消息中的参数h3,则执行步骤516,否则执行步骤515;步骤515:接收到数据响应消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,且距离域值大于该数据响应消息中的参数h3,则该移动节点将该路由表项的下一跳域值更新为该数据响应消息的源mac地址,将该路由表项的距离域值更新为该数据响应消息中的参数h3的值;否则,该移动节点创建一个路由表项,该路由表项的名称域值等于该数据响应消息中的名称域值,目的节点域值等于该数据响应消息负载中的mac地址,距离域值等于该数据响应消息中的参数h3,下一跳域值为该数据响应消息的源mac地址;步骤516:判断接收到数据响应消息的移动节点的mac地址是否等于该数据响应消息中的最终mac地址,则执行步骤518,否则执行步骤517;步骤517:接收到数据响应消息的移动节点查看聚合表,选择所有名称域值等于该数据响应消息的名称域值的聚合表项,针对每个选中的聚合表项,该移动节点执行下述操作:该移动节点将该数据响应消息的目的mac地址更新为该聚合表项的前一跳域值,最终mac地址域值更新为该聚合表项的源节点域值,源mac地址域值更新为该移动节点的mac地址,发送该数据响应消息,删除该聚合表项,执行步骤511;步骤518:接收到数据响应消息的移动节点保存该数据响应消息中的数据;步骤519:结束。图6为本发明所述的更新路由表流程示意图。在移动节点p1位于域d1中,数据c1由名称na1唯一标识,名称na1中,坐标为(x1,y1),版本号为v1,名称id为nid1,移动节点p1发布数据c1后,对数据c1进行更新,更新后的数据为数据c2,数据c2由名称na2唯一标识,名称na2中,坐标为(x1,y1),版本号为v2,名称id为nid1,移动节点p1执行下述操作更新路由表:步骤601:开始;步骤602:移动节点p1发送新版本消息,该新版本消息的源mac地址为移动节点p1的mac地址,目的mac地址为空,最终mac地址为移动节点p1的mac地址,名称为na2,消息类型为5,负载为名称na1以及参数h,参数h的初始值为0;步骤603:移动节点接收到新版本消息后查看自己的坐标是否位于域d1中,如果是,则执行步骤605,否则执行步骤604;步骤604:接收到新版本消息的移动节点丢弃该新版本消息,执行步骤611;步骤605:接收到新版本消息的移动节点将新版本消息负载中的参数h递增1,并查看数据表,如果存在一个数据表项,该数据表项的名称等于该新版本消息负载中的名称,则删除该数据表项;该移动节点查看路由表,如果存在一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,则删除该路由表项;步骤606:接收到新版本消息的移动节点查看路由表,如果存在一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,目的节点域值等于该新版本消息中的最终mac地址,且距离域值不大于该新版本消息中的参数h的值,则执行步骤611,否则执行步骤607;步骤607:接收到新版本消息的移动节点查看路由表;如果存在一个路由表项,该路由表项的名称域值等于该新版本消息负载中的名称域值,目的节点域值等于该新版本消息的最终mac地址,且距离域值大于该新版本消息中的参数h的值,则执行步骤608,否则执行步骤609;步骤608:接收到新版本消息的移动节点选择一个路由表项,该路由表项的名称域值等于该新版本消息中的名称域值,目的节点域值等于该新版本消息的最终mac地址,且距离域值大于该新版本消息中的参数h的值,将该路由表项的下一跳域值更新为该新版本消息中的源mac地址,将该路由表项中的距离域值更新为该新版本消息中的参数h,执行步骤610;步骤609:接收到新版本消息的移动节点创建一个路由表项,该路由表项的名称域值等于该新版本消息负载中的名称域值,目的节点域值等于该新版本消息的最终mac地址,下一跳域值等于该新版本消息中的源mac地址,距离域值等于该新版本消息中的参数h;步骤610:接收到新版本消息的移动节点将该新版本消息的源mac地址更新为自己的mac地址,将该新版本消息转发到邻居移动节点,执行步骤603;步骤611:结束。实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种下一代无线网络的数据通信方法,性能分析如下:当移动速度增加时,网络性能下降,数据获取延迟有所增加,当移动速度降低时,网络性能增强,数据获取延迟有所降低,数据获取的平均延迟为0.97s。表1仿真参数本发明提供了一种下一代无线网络的数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1