一种基于层次结构的网络数据通信方法与流程

文档序号:17532325发布日期:2019-04-29 13:37阅读:244来源:国知局
本发明涉及一种方法,尤其涉及的是一种基于层次结构的网络数据通信方法。
背景技术
:通过网络获取数据已经成为人类生活中不可缺少的一部分,因此降低数据通信延迟尤为重要。近年来,很多研究工作致力于网络的数据通信工作,以便使人们能够快速获取网络服务。随着数据通信技术的发展,网络服务质量会得到进一步的提高。目前,数据通信延迟和代价都比较大,降低了网络服务性能。因此,如何降低数据通信的延迟和代价成为近年来研究的热点问题。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于层次结构的网络数据通信方法,通过以数据为中心的方式来实现数据通信,从而降低数据通信的延迟和代价,有效提高网络服务性能。技术方案:本发明公开了一种基于层次结构的网络数据通信方法,其特征在于,所述网络由骨干网络和数据域构成;各个数据域之间的通信通过路由骨干网来实现;一个数据域包括两个以上的子域,一个子域包括以下设备:一个数据路由器、两个以上的接入节点、两个以上的服务器以及两个以上的移动节点;移动节点通过与自己关联的接入节点实现与其他设备的通信;服务器能够保存和提供本地数据,移动节点能够产生和获取数据;在一个数据域中,一个数据路由器作为主数据路由器,该主数据路由器用于将自己所在的数据域连接到骨干网从而实现与其他数据域的通信;主数据路由器所在的子域成为主子域;一种数据由一个数据名称唯一标识,数据名称由域前缀、子域前缀、数据ID和部分ID构成;一个数据域由域前缀唯一标识,一个子域由子域前缀唯一标识,一种类型的数据由一个数据ID唯一标识,部分ID指明一种类型数据的一个具体部分;主子域的子域前缀成为主子域前缀;例如,数据名称cslg/cs/video/v1中,cslg为域前缀,cs为子域前缀,数据ID为video,即视频,部分ID为v1,即指明具体为哪个视频;数据通信通过域路由表,子域路由表和数据路由表来实现;域路由表用于实现各个数据域之间的路由和数据通信,子域路由表用于实现一个数据域内的子域之间的路由和数据通信,数据路由表用于实现一个子域内的数据路由器和数据路由器之间的数据通信;域路由表由主数据路由器保存和维护,每个表项包含域前缀域和接口域,接口域值为接口集合;子域路由表由一个数据路由器或者接入节点保存和维护,每个表项包含子域前缀域和接口域,接口域值为接口集合;数据路由表由一个数据路由器保存和维护,每个表项包含数据ID域和接口域,接口域值为接口集合;一个消息由三个部分构成,第一部分为消息类型域,第二部分为数据名称域,第三部分为负载域,消息类型域的定义如下表所示:。上述体系结构实现了以数据为中心的层次体系结构,从而提高了数据通信质量。本发明所述方法中,在数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,主数据路由器MCR4位于子域SND4中,由子域前缀SDP4唯一标识,主数据路由器MCR4负责维护数据域ND1的域路由表和子域SND4的子域路由表的情况下,主数据路由器MCR4启动后执行下述过程以建立域路由表或者子域路由表:步骤101:开始;步骤102:主数据路由器MCR4从每个与主数据路由器、数据路由器或者接入节点相连的接口发送一条域前缀发布消息,该消息负载为域前缀DP1和子域前缀SDP4;步骤103:一个设备从自己的接口f收到域前缀发布消息,接口f与发送或者转发域前缀发布消息的设备相连,判断自己是否为主数据路由器,如果是,则执行步骤104,否则执行步骤105;步骤104:主数据路由器查看域路由表,如果不存在域前缀值为DP1的表项,则创建一个新表项,该表项的域前缀值为DP1,接口域为接口f,如果存在域前缀值为DP1的表项,则将接口f加入到接口域;主数据路由器创建或者更新域前缀值为DP1的表项后,从每个与主数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的域前缀发布消息,执行步骤108;步骤105:从接口f收到发布消息的设备判断自己是否为数据路由器,如果是,则执行步骤106,否则执行步骤107;步骤106:数据路由器查看子域路由表,如果不存在子域前缀值为SDP4的表项,则创建一个新表项,该表项的域前缀值为SDP4,接口域为接口f,如果存在子域前缀值为SDP4的表项,则将接口f加入到接口域;数据路由器创建或者更新域前缀值为SDP4的表项后,保存域前缀DP1,同时将子域前缀值SDP4标记为主子域前缀,然后从每个与数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息,执行步骤108;步骤107:接入节点查看子域路由表,如果不存在子域前缀值为SDP4的表项,则创建一个新表项,该表项的域前缀值为SDP4,接口域为接口f,如果存在域前缀值为SDP4的表项,则将接口f加入到接口域;接入节点创建或者更新域前缀值为SDP4的表项后,从每个与接入节点相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息;步骤108:判断是否满足下述所有三个条件,如果是,执行步骤109,否则执行步骤103:条件1:数据域ND1中的所有数据路由器都在子域路由表中建立或者更新了子域前缀为SDP4的表项;条件2:子域SND4中的所有接入节点都在子域路由表中建立或者更新了子域前缀为SDP4的表项;条件3:网络中所有主数据路由器都在域路由表中建立或者更新了域前缀为DP1的表项;步骤109:结束。上述过程能够有效建立域路由表或者子域路由表,从而提高数据通信效率。本发明所述方法中,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1,数据路由器CR1启动后执行下述过程建立域路由表或者子域路由表:步骤201:开始;步骤202:数据路由器CR1从每个与主数据路由器、数据路由器或者接入节点相连的接口发送一条子域前缀发布消息,该消息负载为子域前缀SDP1;步骤203:一个设备从自己的接口f1收到子域前缀发布消息,接口f1与发送或者转发子域前缀发布消息的设备相连,查看子域路由表,如果存在子域前缀值为SDP1的表项,则将接口f1加入到接口域,否则创建一个新表项,该表项的域前缀值为SDP1,接口域为接口f1;步骤204:接收到子域前缀发布消息的设备判断自己是否为主数据路由器,如果是,则执行步骤205,否则执行步骤206;步骤205:主数据路由器从每个与数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的子域前缀发布消息,执行步骤209;步骤206:接收到子域前缀发布消息的设备判断自己是否为数据路由器,如果是,则执行步骤207,否则执行步骤208;步骤207:数据路由器从每个与主数据路由器或者数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的子域前缀发布消息,执行步骤209;步骤208:接入节点从每个与接入节点相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息;步骤209:判断是否满足下述所有两个条件,如果是执行步骤210,否则执行步骤203:条件1:数据域ND1中的主数据路由器和所有数据路由器都在子域路由表中建立或者更新了子域前缀为SDP1的表项;条件2:子域SND1中的所有接入节点都在子域路由表中建立或者更新了子域前缀为SDP4的表项;步骤210:结束。上述过程能够有效建立域路由表或者子域路由表,从而提高数据通信效率。本发明所述方法中,服务器S1位于子域SND1,子域SND1由子域前缀SDP1唯一标识,子域SND1的数据路由器为CR1,服务器S1启动后执行下述过程建立数据路由表:步骤301:开始;步骤302:服务器S1从与数据路由器CR1相连的接口发送一条数据ID发布消息,该数据ID发布消息负载为服务器S1能够保存和提供的所有数据的数据ID集合;步骤303:数据路由器CR1从接口f2收到数据ID发布消息后,查看数据路由表,对于数据ID消息负载中的每个数据ID执行下述操作:如果不存在数据ID域值为该数据ID的表项,数据路由器CR1则创建一个新表项,该表项的数据ID域值为该数据ID,接口域为接口f2,如果存在数据ID域值为该数据ID的表项,则将接口f2加入到该表项的接口域;步骤304:结束。上述过程能够有效建立数据路由表从而提高数据通信效率。本发明所述方法中,在数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1的情况下,移动节点M2产生数据C1后执行下述过程完成数据C1的发布操作:步骤401:开始;步骤402:移动节点M2向与自己关联的接入节点AP2发送一条数据发布消息,该数据发布消息的数据名称域为N1,负载为数据C1;步骤403:接收到数据发布消息的设备判断自己是否为主数据路由器,如果是,则执行步骤404,否则执行步骤405;步骤404:如果接收到数据发布消息的主数据路由器是主数据路由器MCR4,则查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;如果接收到数据发布消息的主数据路由器不是主数据路由器,则查询域路由表中域前缀值为DP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;步骤405:接收到数据发布消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤410,否则执行步骤406;步骤406:接收到数据发布消息的设备判断自己是否为接入节点,如果是,则执行步骤408,否则执行步骤407;步骤407:如果接收到数据发布消息的数据路由器位于数据域ND1内,则查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;如果接收到数据发布消息的数据路由器不位于数据域ND1内,则查询子域路由表中子域前缀值为主子域前缀值的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;步骤408:接收到数据发布消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,从该表项对应的接口域中的一个接口发送该数据发布消息;步骤409:判断是否数据路由器CR1收到数据发布消息,如果是执行步骤410,否则执行步骤403;步骤410:数据路由器CR1收到数据发布消息后,查询数据路由表中数据ID值为CID1的表项,并从该表项接口域中的每个接口发送该数据发布消息;步骤411:服务器收到数据发布消息后,保存数据发布消息中的数据C1;步骤412:结束。上述过程能够实现数据的快速发布从而使得其他节点能够快速获取该数据。本发明所述方法中,每个主数据路由器、数据路由器和接入节点维护一个请求表,请求表的一个表项由数据名称域和接口域构成;数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1;如果移动节点M1位于数据域ND1中,那么执行下述过程获取数据C1:步骤501:开始;步骤502:移动节点M1向与自己关联的接入节点AP1发送一条数据请求消息,该数据请求消息的数据名称域为N1,负载为空;步骤503:设备从自己的接口f3收到数据请求消息,接口f3与发送或者转发数据请求消息的设备相连,然后查看请求表,如果请求表中存在数据名称为N1的表项,则执行步骤504,否则执行步骤505;步骤504:接收到数据请求消息的设备将接口f3加入到数据名称为N1的表项的接口域中,然后执行步骤513;步骤505:接收到数据请求消息的设备在请求表中创建一个表项,该表项的数据名称域为N1,接口域为f3;步骤506:接收到数据请求消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤511,否则执行步骤507;步骤507:接收到数据请求消息的设备判断自己是否为数据路由器或者主数据路由器,如果是,执行步骤508,否则执行步骤509;步骤508:接收到数据请求消息的数据路由器或者主数据路由器查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据请求消息,执行步骤510;步骤509:接收到数据请求消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,并从该表项对应的接口域中的一个接口发送该数据请求消息;步骤510:执行步骤503;步骤511:数据路由器CR1查询数据路由表中数据ID域值为CID1的表项,并从该表项中接口域中的一个接口发送该数据请求消息;步骤512:服务器收到数据请求消息后,向数据路由器CR1返回一个数据响应消息,消息名称为N1,负载为C1;步骤513:判断接收到数据响应消息的设备是否为接入节点AP2,如果是,则执行步骤516,否则执行步骤514;步骤514:接收到数据响应消息的设备查看请求表中数据名称为N1的表项,从该表项接口域中的每个接口发送数据响应消息,并在数据表中删除数据名称为N1的表项;步骤515:重复步骤513至514直到接入节点AP2收到数据响应消息;步骤516:接入节点AP2将数据响应消息转发给移动节点M2,移动节点M2获取了数据C1;步骤517:结束。通过上述过程,节点能够层次体系结构快速获取数据从而提高了数据通信质量。本发明所述方法中,数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1;移动节点位于数据域ND5,数据域ND5由域前缀DP5唯一标识,数据域ND5中的主数据路由器为MCR5,主数据路由器MCR5所在的子域为SND5,由子域前缀SDP5唯一标识,执行下述过程获取数据C1:步骤601:开始;步骤602:移动节点M5向与自己关联的接入节点AP5发送一条数据请求消息,该数据请求消息的数据名称域为N1,负载为空;步骤603:设备从自己的接口f5收到数据请求消息,接口f5与发送或者转发数据请求消息的设备相连,然后查看请求表,如果请求表中存在数据名称为N1的表项,则执行步骤604,否则执行步骤605;步骤604:接收到数据请求消息的设备将接口f5加入到数据名称为N1的表项的接口域中,执行步骤615;步骤605:接收到数据请求消息的设备在请求表中创建一个表项,该表项的数据名称域为N1,接口域为接口f5;步骤606:接收到数据请求消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤613,否则执行步骤607;步骤607:接收到数据请求消息的设备判断自己是否为主数据路由器,如果是,执行步骤608,否则执行步骤609;步骤608:如果接收到数据请求消息的主数据路由器为MCR4,则查询子域路由表中子域前缀值为SDP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;如果接收到数据请求消息的主数据路由器不是MCR4,则查询域路由表中域前缀值为DP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;步骤609:接收到数据请求消息的设备判断自己是否为数据路由器,如果是执行步骤610,否则执行步骤611;步骤610:如果接收到数据请求消息的数据路由器位于数据域ND1内,则查询子域路由表中子域前缀值为SDP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;如果接收到数据请求消息的数据路由器位于数据域ND5内,则查询子域路由表中子域前缀值为SDP5的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;步骤611:接收到数据请求消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,从该表项对应的接口域中的一个接口发送该数据请求消息,执行步骤612;步骤612:执行步骤603;步骤613:数据路由器CR1查询数据路由表中数据ID域值为CID1的表项,从该表项中接口域中的一个接口发送该数据请求消息;步骤614:服务器收到数据请求消息后,向数据路由器CR1返回一个数据响应消息,消息名称为N1,负载为C1;步骤615:接收到数据响应消息的设备是否为接入节点AP5,如果是,则执行步骤516,否则执行步骤616;步骤616:接收到数据响应消息的设备查看请求表中数据名称为N1的表项,从该表项接口域中的每个接口发送数据响应消息,在数据表中删除数据名称为N1的表项;步骤617:重复步骤615至616直到接入节点AP5收到数据响应消息;步骤618:接入节点AP5将数据响应消息转发给移动节点M5,移动节点M5获取了数据C1;步骤619:结束。通过上述过程,节点能够利用层次体系结构快速获取数据从而提高了数据通信质量有益效果:本发明提供了一种基于层次结构的网络数据通信方法,节点通过本发明所提供的网络数据通信方法能够快速地以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取以及等领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的网络体系结构示意图。图2为本发明所述的主数据路由器建立域路由表流程示意图。图3为本发明所述的数据路由器建立域路由表流程示意图。图4为本发明所述的建立数据路由表流程示意图。图5为本发明所述的数据发布流程示意图。图6为本发明所述的域内获取数据的流程示意图。图7为本发明所述的域间获取数据的流程示意图。具体实施方式:本发明提供了一种基于层次结构的网络数据通信方法,节点通过本发明所提供的网络数据通信方法能够快速地以单播方式获取服务数据,缩短了获取服务数据的延迟和代价,提高了服务质量,本发明可应用于大数据获取以及等领域,具有广泛的应用前景。图1为本发明所述的网络体系结构示意图。所述网络由骨干网络1和数据域2构成;各个数据域2之间的通信通过路由骨干网1来实现;一个数据域2包括两个以上的子域3,一个子域包括以下设备:一个数据路由器4、两个以上的接入节点5、两个以上的服务器6以及两个以上的移动节点7;移动节点7通过与自己关联的接入节点5实现与其他设备的通信;服务器6能够保存和提供本地数据,移动节点7能够产生和获取数据;在一个数据域2中,一个数据路由器1作为主数据路由器,该主数据路由器用于将自己所在的数据域2连接到骨干网1从而实现与其他数据域的通信;主数据路由器所在的子域3成为主子域。图2为本发明所述的主数据路由器建立域路由表流程示意图。一种数据由一个数据名称唯一标识,数据名称由域前缀、子域前缀、数据ID和部分ID构成;一个数据域由域前缀唯一标识,一个子域由子域前缀唯一标识,一种类型的数据由一个数据ID唯一标识,部分ID指明一种类型数据的一个具体部分;主子域的子域前缀成为主子域前缀;例如,数据名称cslg/cs/video/v1中,cslg为域前缀,cs为子域前缀,数据ID为video,即视频,部分ID为v1,即指明具体为哪个视频;数据通信通过域路由表,子域路由表和数据路由表来实现;域路由表用于实现各个数据域之间的路由和数据通信,子域路由表用于实现一个数据域内的子域之间的路由和数据通信,数据路由表用于实现一个子域内的数据路由器和数据路由器之间的数据通信;域路由表由主数据路由器保存和维护,每个表项包含域前缀域和接口域,接口域值为接口集合;子域路由表由一个数据路由器或者接入节点保存和维护,每个表项包含子域前缀域和接口域,接口域值为接口集合;数据路由表由一个数据路由器保存和维护,每个表项包含数据ID域和接口域,接口域值为接口集合;一个消息由三个部分构成,第一部分为消息类型域,第二部分为数据名称域,第三部分为负载域,消息类型域的定义如下表所示:消息类型域值消息类型1域前缀发布消息2子域前缀发布消息3数据ID发布消息4数据发布消息5数据请求消息6数据响应消息上述体系结构实现了以数据为中心的层次体系结构,从而提高了数据通信质量;在数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,主数据路由器MCR4位于子域SND4中,由子域前缀SDP4唯一标识,主数据路由器MCR4负责维护数据域ND1的域路由表和子域SND4的子域路由表的情况下,主数据路由器MCR4启动后执行下述过程以建立域路由表或者子域路由表,如图2所示,包括:步骤101:开始;步骤102:主数据路由器MCR4从每个与主数据路由器、数据路由器或者接入节点相连的接口发送一条域前缀发布消息,该消息负载为域前缀DP1和子域前缀SDP4;步骤103:一个设备从自己的接口f收到域前缀发布消息,接口f与发送或者转发域前缀发布消息的设备相连,判断自己是否为主数据路由器,如果是,则执行步骤104,否则执行步骤105;步骤104:主数据路由器查看域路由表,如果不存在域前缀值为DP1的表项,则创建一个新表项,该表项的域前缀值为DP1,接口域为接口f,如果存在域前缀值为DP1的表项,则将接口f加入到接口域;主数据路由器创建或者更新域前缀值为DP1的表项后,从每个与主数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的域前缀发布消息,执行步骤108;步骤105:从接口f收到发布消息的设备判断自己是否为数据路由器,如果是,则执行步骤106,否则执行步骤107;步骤106:数据路由器查看子域路由表,如果不存在子域前缀值为SDP4的表项,则创建一个新表项,该表项的域前缀值为SDP4,接口域为接口f,如果存在子域前缀值为SDP4的表项,则将接口f加入到接口域;数据路由器创建或者更新域前缀值为SDP4的表项后,保存域前缀DP1,同时将子域前缀值SDP4标记为主子域前缀,然后从每个与数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息,执行步骤108;步骤107:接入节点查看子域路由表,如果不存在子域前缀值为SDP4的表项,则创建一个新表项,该表项的域前缀值为SDP4,接口域为接口f,如果存在域前缀值为SDP4的表项,则将接口f加入到接口域;接入节点创建或者更新域前缀值为SDP4的表项后,从每个与接入节点相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息;步骤108:判断是否满足下述所有三个条件,如果是,执行步骤109,否则执行步骤103:条件1:数据域ND1中的所有数据路由器都在子域路由表中建立或者更新了子域前缀为SDP4的表项;条件2:子域SND4中的所有接入节点都在子域路由表中建立或者更新了子域前缀为SDP4的表项;条件3:网络中所有主数据路由器都在域路由表中建立或者更新了域前缀为DP1的表项;步骤109:结束。上述过程能够有效建立域路由表或者子域路由表,从而提高数据通信效率。图3为本发明所述的数据路由器建立域路由表流程示意图。子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1,数据路由器CR1启动后执行下述过程建立域路由表或者子域路由表:步骤201:开始;步骤202:数据路由器CR1从每个与主数据路由器、数据路由器或者接入节点相连的接口发送一条子域前缀发布消息,该消息负载为子域前缀SDP1;步骤203:一个设备从自己的接口f1收到子域前缀发布消息,接口f1与发送或者转发子域前缀发布消息的设备相连,查看子域路由表,如果存在子域前缀值为SDP1的表项,则将接口f1加入到接口域,否则创建一个新表项,该表项的域前缀值为SDP1,接口域为接口f1;步骤204:接收到子域前缀发布消息的设备判断自己是否为主数据路由器,如果是,则执行步骤205,否则执行步骤206;步骤205:主数据路由器从每个与数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的子域前缀发布消息,执行步骤209;步骤206:接收到子域前缀发布消息的设备判断自己是否为数据路由器,如果是,则执行步骤207,否则执行步骤208;步骤207:数据路由器从每个与主数据路由器或者数据路由器相连的接口(不包含接收到发布消息的接口)发送接收到的子域前缀发布消息,执行步骤209;步骤208:接入节点从每个与接入节点相连的接口(不包含接收到发布消息的接口)发送接收到的发布消息;步骤209:判断是否满足下述所有两个条件,如果是执行步骤210,否则执行步骤203:条件1:数据域ND1中的主数据路由器和所有数据路由器都在子域路由表中建立或者更新了子域前缀为SDP1的表项;条件2:子域SND1中的所有接入节点都在子域路由表中建立或者更新了子域前缀为SDP4的表项;步骤210:结束。上述过程能够有效建立域路由表或者子域路由表,从而提高数据通信效率。图4为本发明所述的建立数据路由表流程示意图。服务器S1位于子域SND1,子域SND1由子域前缀SDP1唯一标识,子域SND1的数据路由器为CR1,服务器S1启动后执行下述过程建立数据路由表:步骤301:开始;步骤302:服务器S1从与数据路由器CR1相连的接口发送一条数据ID发布消息,该数据ID发布消息负载为服务器S1能够保存和提供的所有数据的数据ID集合;步骤303:数据路由器CR1从接口f2收到数据ID发布消息后,接口f2为与服务器S1相连的接口,数据路由器CR1查看数据路由表,对于数据ID消息负载中的每个数据ID执行下述操作:如果不存在数据ID域值为该数据ID的表项,数据路由器CR1则创建一个新表项,该表项的数据ID域值为该数据ID,接口域为接口f2,如果存在数据ID域值为该数据ID的表项,则将接口f2加入到该表项的接口域;步骤304:结束。上述过程能够有效建立数据路由表从而提高数据通信效率。图5为本发明所述的数据发布流程示意图。在数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1的情况下,移动节点M2产生数据C1后执行下述过程完成数据C1的发布操作:步骤401:开始;步骤402:移动节点M2向与自己关联的接入节点AP2发送一条数据发布消息,该数据发布消息的数据名称域为N1,负载为数据C1;步骤403:接收到数据发布消息的设备判断自己是否为主数据路由器,如果是,则执行步骤404,否则执行步骤405;步骤404:如果接收到数据发布消息的主数据路由器是主数据路由器,则查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;如果接收到数据发布消息的主数据路由器不是主数据路由器,则查询域路由表中域前缀值为DP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;步骤405:接收到数据发布消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤410,否则执行步骤406;步骤406:接收到数据发布消息的设备判断自己是否为接入节点,如果是,则执行步骤408,否则执行步骤407;步骤407:如果接收到数据发布消息的数据路由器位于数据域ND1内,则查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;如果接收到数据发布消息的数据路由器不位于数据域ND1内,则查询子域路由表中子域前缀值为主子域前缀值的表项,并从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤409;步骤408:接收到数据发布消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,从该表项对应的接口域中的一个接口发送该数据发布消息;步骤409:判断是否数据路由器CR1收到数据发布消息,如果是执行步骤410,否则执行步骤403;步骤410:数据路由器CR1收到数据发布消息后,查询数据路由表中数据ID值为CID1的表项,并从该表项接口域中的每个接口发送该数据发布消息;步骤411:服务器收到数据发布消息后,保存数据发布消息中的数据C1;步骤412:结束。上述过程能够实现数据的快速发布从而使得其他节点能够快速获取该数据。图6为本发明所述的域内获取数据的流程示意图。每个主数据路由器、数据路由器和接入节点维护一个请求表,请求表的一个表项由数据名称域和接口域构成;数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1;如果移动节点M1位于数据域ND1中,那么执行下述过程获取数据C1:步骤501:开始;步骤502:移动节点M1向与自己关联的接入节点AP1发送一条数据请求消息,该数据请求消息的数据名称域为N1,负载为空;步骤503:设备从自己的接口f3收到数据请求消息,接口f3与发送或者转发数据请求消息的设备相连,然后查看请求表,如果请求表中存在数据名称为N1的表项,则执行步骤504,否则执行步骤505;步骤504:接收到数据请求消息的设备将接口f3加入到数据名称为N1的表项的接口域中,然后执行步骤513;步骤505:接收到数据请求消息的设备在请求表中创建一个表项,该表项的数据名称域为N1,接口域为f3;步骤506:接收到数据请求消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤511,否则执行步骤507;步骤507:接收到数据请求消息的设备判断自己是否为数据路由器或者主数据路由器,如果是,执行步骤508,否则执行步骤509;步骤508:接收到数据请求消息的数据路由器或者主数据路由器查询子域路由表中子域前缀值为SDP1的表项,并从该表项对应的接口域中的一个接口发送该数据请求消息,执行步骤510;步骤509:接收到数据请求消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,并从该表项对应的接口域中的一个接口发送该数据请求消息;步骤510:执行步骤503;步骤511:数据路由器CR1查询数据路由表中数据ID域值为CID1的表项,并从该表项中接口域中的一个接口发送该数据请求消息;步骤512:服务器收到数据请求消息后,向数据路由器CR1返回一个数据响应消息,消息名称为N1,负载为C1;步骤513:判断接收到数据响应消息的设备是否为接入节点AP2,如果是,则执行步骤516,否则执行步骤514;步骤514:接收到数据响应消息的设备查看请求表中数据名称为N1的表项,从该表项接口域中的每个接口发送数据响应消息,并在数据表中删除数据名称为N1的表项;步骤515:重复步骤513至514直到接入节点AP2收到数据响应消息;步骤516:接入节点AP2将数据响应消息转发给移动节点M2,移动节点M2获取了数据C1;步骤517:结束。通过上述过程,节点即使移动也能够获取数据从而提高了数据通信质量。图7为本发明所述的域间获取数据的流程示意图。数据C1由数据名称N1唯一标识,数据名称N1的域前缀为DP1,子域前缀为SDP1,数据ID为CID1,数据域ND1由域前缀DP1唯一标识,数据域ND1中的主数据路由器为MCR4,子域SND1位于数据域ND1中,由子域前缀SDP1唯一标识,子域SND1中的数据路由器为CR1;移动节点位于数据域ND5,数据域ND5由域前缀DP5唯一标识,数据域ND5中的主数据路由器为MCR5,主数据路由器MCR5所在的子域为SND5,由子域前缀SDP5唯一标识,执行下述过程获取数据C1:步骤601:开始;步骤602:移动节点M5向与自己关联的接入节点AP5发送一条数据请求消息,该数据请求消息的数据名称域为N1,负载为空;步骤603:设备从自己的接口f5收到数据请求消息,接口f5与发送或者转发数据请求消息的设备相连,然后查看请求表,如果请求表中存在数据名称为N1的表项,则执行步骤604,否则执行步骤605;步骤604:接收到数据请求消息的设备将接口f5加入到数据名称为N1的表项的接口域中,执行步骤615;步骤605:接收到数据请求消息的设备在请求表中创建一个表项,该表项的数据名称域为N1,接口域为接口f5;步骤606:接收到数据请求消息的设备判断自己是否为数据路由器CR1,如果是,则执行步骤613,否则执行步骤607;步骤607:接收到数据请求消息的设备判断自己是否为主数据路由器,如果是,执行步骤608,否则执行步骤609;步骤608:如果接收到数据请求消息的主数据路由器为MCR4,则查询子域路由表中子域前缀值为SDP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;如果接收到数据请求消息的主数据路由器不是MCR4,则查询域路由表中域前缀值为DP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;步骤609:接收到数据请求消息的设备判断自己是否为数据路由器,如果是执行步骤610,否则执行步骤611;步骤610:如果接收到数据请求消息的数据路由器位于数据域ND1内,则查询子域路由表中子域前缀值为SDP1的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;如果接收到数据请求消息的数据路由器位于数据域ND5内,则查询子域路由表中子域前缀值为SDP5的表项,从该表项对应的接口域中的一个接口发送该数据发布消息,执行步骤612;步骤611:接收到数据请求消息的接入节点查询子域路由表,选择子域前缀值为所在子域的子域前缀的表项,从该表项对应的接口域中的一个接口发送该数据请求消息,执行步骤612;步骤612:执行步骤603;步骤613:数据路由器CR1查询数据路由表中数据ID域值为CID1的表项,从该表项中接口域中的一个接口发送该数据请求消息;步骤614:服务器收到数据请求消息后,向数据路由器CR1返回一个数据响应消息,消息名称为N1,负载为C1;步骤615:接收到数据响应消息的设备是否为接入节点AP5,如果是,则执行步骤516,否则执行步骤616;步骤616:接收到数据响应消息的设备查看请求表中数据名称为N1的表项,从该表项接口域中的每个接口发送数据响应消息,在数据表中删除数据名称为N1的表项;步骤617:重复步骤615至616直到接入节点AP5收到数据响应消息;步骤618:接入节点AP5将数据响应消息转发给移动节点M5,移动节点M5获取了数据C1;步骤619:结束。通过上述过程,节点即使移动也能够获取数据从而提高了数据通信质量实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种基于层次结构的网络数据通信方法,性能分析如下:当发布数据的种类越多时,每种数据的平均发布时间越短;当同一个时间段内请求数据的节点越多时,每个节点获取数据的延迟和代价越短。每种数据的平均发布延迟为90ms,平均代价为86,数据平均获取延迟为85ms,平均代价为65。表1仿真参数本发明提供了一种基于层次结构的网络数据通信方法的实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1