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.根据权利要求1所述的一种下一代无线网络的数据通信方法,其特征在于,每个移动节点维护一个聚合表,每个聚合表项包含名称域、前一跳域、距离域和源节点域;
每个移动节点维护一个数据表,每个数据表项包含名称域和数据值域;
数据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.根据权利要求1所述的一种下一代无线网络的数据通信方法,其特征在于,在数据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.根据权利要求1所述的一种下一代无线网络的数据通信方法,其特征在于,每个移动节点维护一个邻居表,每个邻居表项包含坐标域,MAC地址域和生命周期域;一个移动节点定期执行下述操作:步骤401:开始;
步骤402:移动节点定期发布邻居消息,该邻居消息的源MAC地址为该移动节点的MAC地址,目的MAC地址和最终MAC地址为空,名称域值为空,负载为该移动节点的坐标;
步骤403:邻居移动节点接收到该邻居消息后,查看邻居表;如果存在一个邻居表项,该邻居表项的MAC地址域值等于该邻居消息的源MAC地址,则将该邻居表项的坐标域值更新为该邻居消息负载中的坐标值,并将该邻居表项的生命周期设置为最大值;否则,该邻居移动节点创建一个邻居表项,该邻居表项的MAC地址域值等于该邻居消息的源MAC地址,坐标域值为该邻居消息负载中的坐标值,生命周期设置为最大值;
步骤404:结束;
如果一个邻居表项中的生命周期衰减为0,则删除该邻居表项。
5.根据权利要求1所述的一种下一代无线网络的数据通信方法,其特征在于,在数据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.根据权利要求1所述的一种下一代无线网络的数据通信方法,其特征在于,在移动节点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:结束。