一种物联网的路由通信实现方法与流程

文档序号:16513557发布日期:2019-01-05 09:29阅读:135来源:国知局
一种物联网的路由通信实现方法与流程
本发明涉及一种实现方法,尤其涉及的是一种物联网的路由通信实现方法。
背景技术
:物联网作为一种新型通信网络,能够实现设备之间的多跳无线通信。随着物联网技术的不断发展以及各种新应用的不断涌现,迫切需要物联网能够接入互联网以满足用户急剧增长的应用需求。目前的研究人员提出了物联网通过接入基于ipv6的互联网获取网络服务的模式并定义了相应的协议栈,但是由于物联网的体系结构与ipv6网络不同,现有的接入方法具有一些局限性。因此需要提出一种物联网的通信实现方法,从而降低数据丢失率,提高服务质量。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供了一种物联网的路由通信实现方法。技术方案:本发明公开了一种物联网的路由通信实现方法,所述物联网包括路由器、节点和一个服务器;一个路由器配置一个下游接口和两个以上的上游接口,下游接口与节点链接,上游接口与服务器或者路由器链接;服务器配置一个接口,该接口与一个路由器的上游接口连接,该路由器称为主路由器;节点配置一个接口或者两个接口;配置两个接口的节点称为骨干节点,这两个接口分别为上游接口和下游接口,上游接口与路由器的上游接口相连,下游接口与路由器的下游接口或者节点相连;每个接口由硬件id唯一标识,该硬件id能够为该接口的mac地址;如果一个接口的硬件id为x,则该接口简写为接口x;每个路由器的坐标具有唯一性,节点通过电子地图获取每个路由器的坐标;电子地图为预先设置,标注每个路由器的坐标,节点在使用前可以配置电子地图从而获取每个路由器的坐标;节点通过消息进行通信,每个消息由一个消息类型唯一标识,消息类型如下所示:消息类型值消息名称1服务器消息2发布消息3邻居消息4信标消息5上传消息6更新消息7请求消息8响应消息服务器消息包含消息类型域;主路由器维护一个服务器表,一个服务器表项包含硬件id域和生命周期域;服务器s1定期执行下述操作维护服务器表:步骤101:开始;步骤102:服务器s1发送服务器消息,该服务器消息的消息类型值为1;步骤103:主路由器从接口f1接收到该服务器消息后查看服务器表,如果存在一个服务器表项,则执行步骤104,否则执行步骤105;步骤104:主服务器删除服务器表中的服务器表项;步骤105:主服务器创建一个服务器表项,该服务器表项的硬件id域值等于f1,生命周域值设置为最大值,例如500ms;步骤106:结束。服务器通过上述过程建立主路由器到达自己的路由,该路由通过服务器表来实现,而服务器表中只包含一个服务器表项且服务器表项由生命周期来确保该服务器表项的实时性,因此能够确保主路由器到达服务器的路由路径的正确性和有效性。本发明所述方法中,路由器维护一个转发表,一个转发表项包含坐标域、硬件id、类型、距离和生命周期域;类型值包括1和0;如果一个转发表项的类型值为1,则表明该转发表项为到达主路由器的转发表项;如果一个转发表项的类型值为1,则表明该转发表项为到达除了主路由器以为的路由器或者骨干节点的转发表项;发布消息包含消息类型、坐标、距离和类型域;路由器ar1或者骨干节点b1通过下述过程维护转发表:步骤201:开始;步骤202:路由器ar1或者骨干节点b1从每个上游接口发送一个发布消息,该发布消息的消息类型值为2,坐标为路由器ar1或者骨干节点b1的坐标,距离域值为0;如果路由器ar1发送发布消息且路由器ar1为主路由器,则设置类型域值为1,否则设置类型域值为0;步骤203:如果服务器或者骨干节点接收到发布消息,则执行步骤209,否则执行步骤204;步骤204:路由器从上游接口x1接收到发布消息后,将该发布消息的距离域值递增1,并查看转发表,如果存在一个转发表项,该转发表项的坐标等于该发布消息的坐标且距离域值小于该发布消息的距离域值,则执行步骤209,否则执行步骤205;步骤205:从上游接口x1接收到发布消息的路由器查看转发表,如果存在一个转发表项,该转发表项的坐标等于该发布消息的坐标,则执行步骤206,否则执行步骤207;步骤206:从上游接口x1接收到发布消息的路由器选择一个转发表项,该转发表项的坐标等于该发布消息的坐标,将该转发表项的硬件id域值设置为x1,将坐标域值、距离域值和类型域值分别更新为发布消息的坐标域值、距离域值和类型域值,将生命周期设置为最大值,执行步骤208;步骤207:从上游接口x1接收到发布消息的路由器创建一个转发表项,该转发表项的坐标等于该发布消息的坐标,将该转发表项的硬件id域值设置为x1,坐标域值、距离域值和类型域值分别等于该发布消息的坐标域值、距离域值和类型域值,将生命周期设置为最大值;步骤208:从上游接口x1接收到发布消息的路由器从除了接口x1以外的每个上游接口发送该发布消息,执行步骤203;步骤209:结束。路由器通过上述过程建立自己到达其余每个路由器或者骨干节点的路由,该路由通过转发表来实现,一个转发表项通过类型域值来标识主路由器从而能够建立到达主服务器的路由路径,通过距离域值来确保到达每个路由器或者骨干节点的路由路径为最优,通过生命周期来确保到达每个路由器或者骨干节点的路由路径的实时性,因此能够确保到达每个路由器或者骨干节点的路由路径的正确性和高效性。本发明所述方法中,每个节点维护一个邻居表,每个邻居表项包含硬件id、坐标域和生命周期域;一个邻居消息包含消息类型、硬件id、坐标域;路由器或者骨干节点定期执行下述操作建立邻居表:步骤301:开始;步骤302:路由器或者骨干节点从下游接口发送一个邻居消息,该邻居消息的消息类型值为3,硬件id为该下游接口的硬件id,坐标为该路由器或者骨干节点的坐标;步骤303:节点接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,则将该邻居表项的坐标域值更新为该邻居消息的坐标域值,生命周期设置为最大值;否则,该节点创建一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,坐标域值等于该邻居消息的坐标域值,生命周期设置为最大值;步骤304:结束。本发明所述方法中,如果节点v1不是骨干节点,则定期执行下述操作建立邻居表:步骤401:开始;步骤402:节点v1发送一个邻居消息,该邻居消息的消息类型值为3,硬件id为发送该邻居消息的接口的硬件id,坐标为该节点的坐标;步骤403:邻居节点接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,则将该邻居表项的坐标域值更新为该邻居消息的坐标域值,生命周期设置为最大值;否则,该邻居节点创建一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,坐标域值等于该邻居消息的坐标域值,生命周期设置为最大值;步骤404:结束。节点通过上述过程建立自己的邻居表,该邻居表中包含邻居节点的坐标,从而节点能够选择最优的邻居节点实现到达目的节点的路由路径,降低路由延迟,邻居表项通过生命周期来确保获取每个邻居节点的实时坐标从而实现高效通信和路由。本发明所述方法中,节点保存一个关联表,一个关联表项包含硬件id、坐标和生命周期域;信标消息包含消息类型、坐标和硬件id;路由器ar1或者骨干节点b1定期执行下述操作维护关联表:步骤501:开始;步骤502:路由器ar1或者骨干节点b1从下游接口发送一个信标消息,该信标消息的消息类型值为4,坐标为路由器ar1或者骨干节点b1的坐标,硬件id为路由器ar1或者骨干节点b1的下游接口的硬件id;步骤503:如果路由器或者骨干节点接收到该信标消息,则执行步骤509,否则执行步骤504;步骤504:节点接收到信标消息后,查看关联表,如果存在一个关联表项,该关联表项的硬件id等于该信标消息的硬件id且该关联表项的生命周期大于阈值t1,则执行步骤509,否则执行步骤505;说明取值范围和不同取值的作用;阈值预先定义,阈值越大,关联表更新频率越高,阈值越小,关联表更新频率越低,阈值t1一般设置为生命周期最大值的90%;步骤505:接收到信标消息的节点查看关联表,如果存在一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,则执行步骤506,否则执行步骤507;步骤506:接收到信标消息的节点选择一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,将该关联表项的坐标更新为该信标消息的坐标,将生命周期设置为最大值,执行步骤508;步骤507:接收到信标消息的节点创建一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,坐标等于该信标消息的坐标,生命周期设置为最大值;步骤508:接收到信标消息的节点转发该信标消息,执行步骤503;步骤509:结束。节点通过上述过程建立自己的关联表以获取可达的路由器或者骨干节点的坐标,这样,节点可以通过距离最近的路由器或者骨干节点实现与其他节点的通信,以降低路由通信延迟,关联表项通过生命周期来确保获取每个可达的路由器或者骨干节点的实时坐标从而确保路由的高效性和正确性。本发明所述方法中,服务器s1维护一个设备表,一个设备表项由下游硬件id、坐标和生命周期构成;服务器s1与主路由器mar1相连;上传消息包含消息类型、下游硬件id和坐标域;路由器ar1定期执行下述操作维护设备表:步骤601:开始;步骤602:路由器ar1选择类型域值为1的转发表项,构建一个上传消息,该上传消息的消息类型值为5,下游硬件id等于路由器ar1的下游接口的硬件id,坐标等于路由器ar1的坐标;路由器ar1从该转发表项的硬件id所标识的上游接口转发该上传消息;步骤603:如果主路由器mar1接收到该上传消息,执行步骤605,否则执行步骤604;步骤604:接收到上传消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的上游接口转发该上传消息,执行步骤603;步骤605:主路由器mar1接收到上传消息后,查看设备表;如果存在一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,则将该设备表项的坐标更新为该上传消息的坐标域值,将生命周期设置为最大值;否则主路由器mar1创建一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,坐标等于该上传消息的坐标域值,将生命周期设置为最大值;步骤606:结束。路由器通过上述过程建立自己的设备表项,这样,服务器可以根据该设备表项的坐标来选择到达目的节点的最近路由器以实现高效通信,降低路由通信延迟,设备表项通过生命周期来确保每个路由器的实时坐标以及该路由器处于正常工作状态,从而确保了通信的高效性和正确性。本发明所述方法中,骨干节点b1定期执行下述操作维护设备表:步骤701:开始;步骤702:骨干节点b1从上游接口发送一个上传消息,该上传消息的消息类型值为5,下游硬件id等于骨干节点b1的下游接口的硬件id,坐标等于骨干节点b1的坐标;步骤703:如果主路由器mar1接收到该上传消息,执行步骤705,否则执行步骤704;步骤704:接收到上传消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的上游接口转发该上传消息,执行步骤703;步骤705:主路由器mar1接收到上传消息后,查看设备表,如果存在一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,则将该设备表项的坐标更新为该上传消息的坐标域值,将生命周期设置为最大值;否则,主路由器mar1创建一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,坐标等于该上传消息的坐标域值,将生命周期设置为最大值;步骤706:结束。骨干节点通过上述过程建立自己的设备表项,这样,服务器可以根据该设备表项的坐标来选择到达目的节点的最近骨干节点以减少路由路径的长度,降低路由代价和延迟,设备表项通过生命周期来确保骨干节点坐标的实时性和有效性,从而确保了路由通信的高效性和正确性。本发明所述方法中,服务器s1维护一个节点表,一个节点表项包含硬件id域、硬件id集合域、坐标域和生命周期域;更新消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;如果节点v1不是骨干节点,则定期执行下述操作更新节点表:步骤801:开始;步骤802:节点v1选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,节点v1选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,节点v1发送一个更新消息,该更新消息的消息类型值为6,源硬件id和源坐标分别等于节点v1的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为硬件id集合,该硬件id集合等于节点v1的所有关联表项的硬件id域值的并集;步骤803:如果路由器或者骨干节点接收到该更新消息且该路由器或者骨干节点的下游接口的硬件id等于该更新消息的最终硬件id,则执行步骤806,否则执行步骤804;步骤804:接收到该更新消息的节点查看自己的硬件id是否等于该更新消息的目的硬件id,如果是,则执行步骤805,否则执行步骤810;步骤805:接收到该更新消息的节点选择一个邻居表项,该邻居表项的坐标域值与该更新消息的最终坐标域值距离最近,将该更新消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该更新消息,执行步骤803;步骤806:如果是骨干节点接收到该更新消息,则从上游接口转发该更新消息;否则路由器接收到更新消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该更新消息;步骤807:如果主路由器mar1接收到该更新消息,则执行步骤809,否则执行步骤808;步骤808:接收到该更新消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该更新消息,执行步骤807;步骤809:主路由器mar1接收到更新消息后,查看节点表;如果存在一个节点表项,该节点表项的硬件id等于该更新消息的硬件id,则将该节点表项的坐标更新为该更新消息的坐标域值,将该节点表项的硬件id集合更新为该更新消息负载中的硬件id集合,将生命周期设置为最大值;否则,主路由器mar1创建一个节点表项,该节点表项的硬件id等于该更新消息的硬件id,坐标等于该更新消息的坐标域值,硬件id集合等于该更新消息负载中的硬件id集合,将生命周期设置为最大值;步骤810:结束。节点通过上述过程建立自己的节点表项,这样,服务器可以根据该节点表项的硬件id集合域值来获取与该节点可达的路由器或者骨干节点的硬件id,通过该节点表项的坐标来选择距离该节点最近的可达路由器或者骨干节点,从而减少路由路径的长度,降低路由代价和延迟,节点表项通过生命周期来确保节点坐标的实时性和有效性,从而确保了路由通信的高效性和正确性。本发明所述方法中,服务器s1与主路由器mar1相连;请求消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;响应消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;如果节点v1和节点v2不是骨干节点,则节点v1通过下述过程实现与节点v2的通信:步骤901:开始;步骤902:节点v1选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,发送一个请求消息,该请求消息的消息类型值为7,源硬件id和源坐标分别等于节点v1的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为节点v2的硬件id;步骤903:如果路由器或者骨干节点接收到该请求消息且该路由器或者骨干节点的下游接口的硬件id等于该请求消息的最终硬件id,则执行步骤906,否则执行步骤904;步骤904:接收到该请求消息的节点查看自己的硬件id是否等于该请求消息的目的硬件id,如果是,则执行步骤905,否则执行步骤906;步骤905:接收到该请求消息的节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息,执行步骤903;步骤906:如果是骨干节点接收到该请求消息,则从上游接口转发该请求消息;否则路由器接收到请求消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该请求消息;步骤907:如果主路由器mar1接收到该请求消息,则执行步骤909,否则执行步骤908;步骤908:接收到该请求消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该请求消息,执行步骤907;步骤909:主路由器mar1接收到请求消息后,查看节点表,选择一个节点表项,该节点表项的硬件id等于该请求消息负载中的硬件id,选择所有下游硬件id包含在该节点表项的硬件id集合中的设备表项,从这些设备表项中,主路由器mar1选择一个设备表项,该设备表项的坐标与该节点表项的坐标距离最近,将该请求消息的目的硬件id和目的坐标更新为该设备表项的下游硬件id和坐标,将最终硬件id和最终坐标更新为该节点表项的硬件id和坐标;主路由器mar1选择一个转发表项,该转发表项的坐标等于该请求消息的目的坐标,从该转发表项的硬件id所标识的接口转发该请求消息;步骤910:如果路由器或者骨干节点接收到该请求消息且该路由器或者骨干节点的下游接口的硬件id等于该请求消息的目的硬件id,则执行步骤912,否则执行步骤911;步骤911:接收到该请求消息的路由器选择一个转发表项,该转发表项的坐标等于该请求消息的目的坐标,从该转发表项的硬件id所标识的接口转发该请求消息,执行步骤910;步骤912:接收到该请求消息的路由器或者骨干节点从下游接口转发该请求消息;接收到请求消息的节点查看邻居表,选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息;步骤913:如果节点v2接收到该请求消息,则执行步骤916,否则执行步骤914;步骤914:其他节点接收到请求消息后查看自己的硬件id是否等于该请求消息的目的硬件id,如果等于,则执行步骤915,否则执行步骤916;步骤915:接收到请求消息的节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息,执行步骤913;步骤916:节点v2接收到请求消息后选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,节点v2选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,节点v2发送一个响应消息,该响应消息的消息类型值为8,源硬件id和源坐标分别等于节点v2的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为请求消息源硬件id和响应数据;步骤917:如果路由器或者骨干节点接收到该响应消息且该路由器或者骨干节点的下游接口的硬件id等于该响应消息的最终硬件id,则执行步骤920,否则执行步骤918;步骤918:接收到该响应消息的节点查看自己的硬件id是否等于该响应消息的目的硬件id,如果是,则执行步骤919,否则执行步骤920;步骤919:接收到该响应消息的节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息,执行步骤917;步骤920:如果是骨干节点接收到该响应消息,则从上游接口转发该响应消息;否则路由器接收到响应消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该响应消息;步骤921:如果主路由器mar1接收到该响应消息,则执行步骤923,否则执行步骤922;步骤922:接收到该响应消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该响应消息,执行步骤921;步骤923:主路由器mar1接收到响应消息后,查看节点表,选择一个节点表项,该节点表项的硬件id等于该响应消息负载中的硬件id,选择所有下游硬件id包含在该节点表项的硬件id集合中的设备表项,从这些设备表项中,主路由器mar1选择一个设备表项,该设备表项的坐标与该节点表项的坐标距离最近,将该响应消息的目的硬件id和目的坐标更新为该设备表项的下游硬件id和坐标,将最终硬件id和最终坐标更新为该节点表项的硬件id和坐标;主路由器mar1选择一个转发表项,该转发表项的坐标等于该响应消息的目的坐标,从该转发表项的硬件id所标识的接口转发该响应消息;步骤924:如果路由器或者骨干节点接收到该响应消息且该路由器或者骨干节点的下游接口的硬件id等于该响应消息的目的硬件id,则执行步骤926,否则执行步骤925;步骤925:接收到该响应消息的路由器选择一个转发表项,该转发表项的坐标等于该响应消息的目的坐标,从该转发表项的硬件id所标识的接口转发该响应消息,执行步骤924;步骤926:接收到该响应消息的路由器或者骨干节点从下游接口转发该响应消息;接收到响应消息的节点查看邻居表,选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息;步骤927:如果节点v1接收到该响应消息,则执行步骤930,否则执行步骤928;步骤928:其他节点接收到响应消息后查看自己的硬件id是否等于该响应消息的目的硬件id,如果等于,则执行步骤929,否则执行步骤930;步骤929:接收到响应消息的节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息,执行步骤927;步骤930:节点v1接收到响应消息后,保存该响应消息负载中的响应数据;步骤931:结束。节点v1通过上述过程能够建立与节点v2的路由并实现通信;节点v1通过节点表来查询目标节点的当前坐标,通过设备表获取距离目标节点距离最近的路由器或者骨干节点从而降低与目标节点的路径长度,降低通信延迟和代价;上述过程通过邻居节点选择最优下一跳节点从而降低节点与距离最近的路由器或者骨干节点之间的路由长度,降低路由代价和延迟,提高数据通信性能。有益效果:本发明提供了一种物联网的路由通信实现方法,所述节点通过本发明所提供的路由通信实现方法可快速获取网络服务,同时保持通信的连续性,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的维护服务器表流程示意图。图2为本发明所述的维护转发表流程示意图。图3为本发明所述的建立邻居表流程示意图。图4为本发明所述的维护邻居表流程示意图。图5为本发明所述的维护关联表流程示意图。图6为本发明所述的建立设备表流程示意图。图7为本发明所述的维护设备表流程示意图。图8为本发明所述的更新节点表流程示意图。图9为本发明所述的通信流程示意图。具体实施方式:本发明提供了一种物联网的路由通信实现方法,所述节点通过本发明所提供的路由通信实现方法可快速获取网络服务,同时保持通信的连续性,缩短路由延迟,降低数据包丢失率,提高服务质量,本发明可应用于道路路况监测、车辆管理等领域,具有广泛的应用前景。图1为本发明所述的维护服务器表流程示意图。所述物联网包括路由器、节点和一个服务器;一个路由器配置一个下游接口和两个以上的上游接口,下游接口与节点链接,上游接口与服务器或者路由器链接;服务器配置一个接口,该接口与一个路由器的上游接口连接,该路由器称为主路由器;节点配置一个接口或者两个接口;配置两个接口的节点称为骨干节点,这两个接口分别为上游接口和下游接口,上游接口与路由器的上游接口相连,下游接口与路由器的下游接口或者节点相连;每个接口由硬件id唯一标识,该硬件id能够为该接口的mac地址;如果一个接口的硬件id为x,则该接口简写为接口x;每个路由器的坐标具有唯一性,节点通过电子地图获取每个路由器的坐标;电子地图为预先设置,标注每个路由器的坐标,节点在使用前可以配置电子地图从而获取每个路由器的坐标;节点通过消息进行通信,每个消息由一个消息类型唯一标识,消息类型如下所示:消息类型值消息名称1服务器消息2发布消息3邻居消息4信标消息5上传消息6更新消息7请求消息8响应消息服务器消息包含消息类型域;主路由器维护一个服务器表,一个服务器表项包含硬件id域和生命周期域;服务器s1定期执行下述操作维护服务器表:步骤101:开始;步骤102:服务器s1发送服务器消息,该服务器消息的消息类型值为1;步骤103:主路由器从接口f1接收到该服务器消息后查看服务器表,如果存在一个服务器表项,则执行步骤104,否则执行步骤105;步骤104:主服务器删除服务器表中的服务器表项;步骤105:主服务器创建一个服务器表项,该服务器表项的硬件id域值等于f1,生命周域值设置为最大值,例如500ms;步骤106:结束。服务器通过上述过程建立主路由器到达自己的路由,该路由通过服务器表来实现,而服务器表中只包含一个服务器表项且服务器表项由生命周期来确保该服务器表项的实时性,因此能够确保主路由器到达服务器的路由路径的正确性和有效性。图2为本发明所述的维护转发表流程示意图。路由器维护一个转发表,一个转发表项包含坐标域、硬件id、类型、距离和生命周期域;类型值包括1和0;如果一个转发表项的类型值为1,则表明该转发表项为到达主路由器的转发表项;如果一个转发表项的类型值为1,则表明该转发表项为到达除了主路由器以为的路由器或者骨干节点的转发表项;发布消息包含消息类型、坐标、距离和类型域;路由器ar1或者骨干节点b1通过下述过程维护转发表:步骤201:开始;步骤202:路由器ar1或者骨干节点b1从每个上游接口发送一个发布消息,该发布消息的消息类型值为2,坐标为路由器ar1或者骨干节点b1的坐标,距离域值为0;如果路由器ar1发送发布消息且路由器ar1为主路由器,则设置类型域值为1,否则设置类型域值为0;步骤203:如果服务器或者骨干节点接收到发布消息,则执行步骤209,否则执行步骤204;步骤204:路由器从上游接口x1接收到发布消息后,将该发布消息的距离域值递增1,并查看转发表,如果存在一个转发表项,该转发表项的坐标等于该发布消息的坐标且距离域值小于该发布消息的距离域值,则执行步骤209,否则执行步骤205;步骤205:从上游接口x1接收到发布消息的路由器查看转发表,如果存在一个转发表项,该转发表项的坐标等于该发布消息的坐标,则执行步骤206,否则执行步骤207;步骤206:从上游接口x1接收到发布消息的路由器选择一个转发表项,该转发表项的坐标等于该发布消息的坐标,将该转发表项的硬件id域值设置为x1,将坐标域值、距离域值和类型域值分别更新为发布消息的坐标域值、距离域值和类型域值,将生命周期设置为最大值,执行步骤208;步骤207:从上游接口x1接收到发布消息的路由器创建一个转发表项,该转发表项的坐标等于该发布消息的坐标,将该转发表项的硬件id域值设置为x1,坐标域值、距离域值和类型域值分别等于该发布消息的坐标域值、距离域值和类型域值,将生命周期设置为最大值;步骤208:从上游接口x1接收到发布消息的路由器从除了接口x1以外的每个上游接口发送该发布消息,执行步骤203;步骤209:结束。路由器通过上述过程建立自己到达其余每个路由器或者骨干节点的路由,该路由通过转发表来实现,一个转发表项通过类型域值来标识主路由器从而能够建立到达主服务器的路由路径,通过距离域值来确保到达每个路由器或者骨干节点的路由路径为最优,通过生命周期来确保到达每个路由器或者骨干节点的路由路径的实时性,因此能够确保到达每个路由器或者骨干节点的路由路径的正确性和高效性。图3为本发明所述的建立邻居表流程示意图。每个节点维护一个邻居表,每个邻居表项包含硬件id、坐标域和生命周期域;一个邻居消息包含消息类型、硬件id、坐标域;路由器或者骨干节点定期执行下述操作建立邻居表:步骤301:开始;步骤302:路由器或者骨干节点从下游接口发送一个邻居消息,该邻居消息的消息类型值为3,硬件id为该下游接口的硬件id,坐标为该路由器或者骨干节点的坐标;步骤303:节点接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,则将该邻居表项的坐标域值更新为该邻居消息的坐标域值,生命周期设置为最大值;否则,该节点创建一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,坐标域值等于该邻居消息的坐标域值,生命周期设置为最大值;步骤304:结束。图4为本发明所述的维护邻居表流程示意图。如果节点v1不是骨干节点,则定期执行下述操作建立邻居表:步骤401:开始;步骤402:节点v1发送一个邻居消息,该邻居消息的消息类型值为3,硬件id为发送该邻居消息的接口的硬件id,坐标为该节点的坐标;步骤403:邻居节点接收到该邻居消息后查看邻居表,如果存在一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,则将该邻居表项的坐标域值更新为该邻居消息的坐标域值,生命周期设置为最大值;否则,该邻居节点创建一个邻居表项,该邻居表项的硬件id等于该邻居消息中的硬件id,坐标域值等于该邻居消息的坐标域值,生命周期设置为最大值;步骤404:结束。节点通过上述过程建立自己的邻居表,该邻居表中包含邻居节点的坐标,从而节点能够选择最优的邻居节点实现到达目的节点的路由路径,降低路由延迟,邻居表项通过生命周期来确保获取每个邻居节点的实时坐标从而实现高效通信和路由。图5为本发明所述的维护关联表流程示意图。节点保存一个关联表,一个关联表项包含硬件id、坐标和生命周期域;信标消息包含消息类型、坐标和硬件id;路由器ar1或者骨干节点b1定期执行下述操作维护关联表:步骤501:开始;步骤502:路由器ar1或者骨干节点b1从下游接口发送一个信标消息,该信标消息的消息类型值为4,坐标为路由器ar1或者骨干节点b1的坐标,硬件id为路由器ar1或者骨干节点b1的下游接口的硬件id;步骤503:如果路由器或者骨干节点接收到该信标消息,则执行步骤509,否则执行步骤504;步骤504:节点接收到信标消息后,查看关联表,如果存在一个关联表项,该关联表项的硬件id等于该信标消息的硬件id且该关联表项的生命周期大于阈值t1,则执行步骤509,否则执行步骤505;说明取值范围和不同取值的作用;阈值预先定义,阈值越大,关联表更新频率越高,阈值越小,关联表更新频率越低,阈值t1一般设置为生命周期最大值的90%;步骤505:接收到信标消息的节点查看关联表,如果存在一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,则执行步骤506,否则执行步骤507;步骤506:接收到信标消息的节点选择一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,将该关联表项的坐标更新为该信标消息的坐标,将生命周期设置为最大值,执行步骤508;步骤507:接收到信标消息的节点创建一个关联表项,该关联表项的硬件id等于该信标消息的硬件id,坐标等于该信标消息的坐标,生命周期设置为最大值;步骤508:接收到信标消息的节点转发该信标消息,执行步骤503;步骤509:结束。节点通过上述过程建立自己的关联表以获取可达的路由器或者骨干节点的坐标,这样,节点可以通过距离最近的路由器或者骨干节点实现与其他节点的通信,以降低路由通信延迟,关联表项通过生命周期来确保获取每个可达的路由器或者骨干节点的实时坐标从而确保路由的高效性和正确性。图6为本发明所述的建立设备表流程示意图。服务器s1维护一个设备表,一个设备表项由下游硬件id、坐标和生命周期构成;服务器s1与主路由器mar1相连;上传消息包含消息类型、下游硬件id和坐标域;路由器ar1定期执行下述操作维护设备表:步骤601:开始;步骤602:路由器ar1选择类型域值为1的转发表项,构建一个上传消息,该上传消息的消息类型值为5,下游硬件id等于路由器ar1的下游接口的硬件id,坐标等于路由器ar1的坐标;路由器ar1从该转发表项的硬件id所标识的上游接口转发该上传消息;步骤603:如果主路由器mar1接收到该上传消息,执行步骤605,否则执行步骤604;步骤604:接收到上传消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的上游接口转发该上传消息,执行步骤603;步骤605:主路由器mar1接收到上传消息后,查看设备表;如果存在一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,则将该设备表项的坐标更新为该上传消息的坐标域值,将生命周期设置为最大值;否则主路由器mar1创建一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,坐标等于该上传消息的坐标域值,将生命周期设置为最大值;步骤606:结束。路由器通过上述过程建立自己的设备表项,这样,服务器可以根据该设备表项的坐标来选择到达目的节点的最近路由器以实现高效通信,降低路由通信延迟,设备表项通过生命周期来确保每个路由器的实时坐标以及该路由器处于正常工作状态,从而确保了通信的高效性和正确性。图7为本发明所述的维护设备表流程示意图。骨干节点b1定期执行下述操作维护设备表:步骤701:开始;步骤702:骨干节点b1从上游接口发送一个上传消息,该上传消息的消息类型值为5,下游硬件id等于骨干节点b1的下游接口的硬件id,坐标等于骨干节点b1的坐标;步骤703:如果主路由器mar1接收到该上传消息,执行步骤705,否则执行步骤704;步骤704:接收到上传消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的上游接口转发该上传消息,执行步骤703;步骤705:主路由器mar1接收到上传消息后,查看设备表,如果存在一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,则将该设备表项的坐标更新为该上传消息的坐标域值,将生命周期设置为最大值;否则,主路由器mar1创建一个设备表项,该设备表项的下游硬件id等于该上传消息的下游硬件id,坐标等于该上传消息的坐标域值,将生命周期设置为最大值;步骤706:结束。骨干节点通过上述过程建立自己的设备表项,这样,服务器可以根据该设备表项的坐标来选择到达目的节点的最近骨干节点以减少路由路径的长度,降低路由代价和延迟,设备表项通过生命周期来确保骨干节点坐标的实时性和有效性,从而确保了路由通信的高效性和正确性。图8为本发明所述的更新节点表流程示意图。服务器s1维护一个节点表,一个节点表项包含硬件id域、硬件id集合域、坐标域和生命周期域;更新消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;如果节点v1不是骨干节点,则定期执行下述操作更新节点表:步骤801:开始;步骤802:节点v1选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,节点v1选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,节点v1发送一个更新消息,该更新消息的消息类型值为6,源硬件id和源坐标分别等于节点v1的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为硬件id集合,该硬件id集合等于节点v1的所有关联表项的硬件id域值的并集;步骤803:如果路由器或者骨干节点接收到该更新消息且该路由器或者骨干节点的下游接口的硬件id等于该更新消息的最终硬件id,则执行步骤806,否则执行步骤804;步骤804:接收到该更新消息的节点查看自己的硬件id是否等于该更新消息的目的硬件id,如果是,则执行步骤805,否则执行步骤810;步骤805:接收到该更新消息的节点选择一个邻居表项,该邻居表项的坐标域值与该更新消息的最终坐标域值距离最近,将该更新消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该更新消息,执行步骤803;步骤806:如果是骨干节点接收到该更新消息,则从上游接口转发该更新消息;否则路由器接收到更新消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该更新消息;步骤807:如果主路由器mar1接收到该更新消息,则执行步骤809,否则执行步骤808;步骤808:接收到该更新消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该更新消息,执行步骤807;步骤809:主路由器mar1接收到更新消息后,查看节点表;如果存在一个节点表项,该节点表项的硬件id等于该更新消息的硬件id,则将该节点表项的坐标更新为该更新消息的坐标域值,将该节点表项的硬件id集合更新为该更新消息负载中的硬件id集合,将生命周期设置为最大值;否则,主路由器mar1创建一个节点表项,该节点表项的硬件id等于该更新消息的硬件id,坐标等于该更新消息的坐标域值,硬件id集合等于该更新消息负载中的硬件id集合,将生命周期设置为最大值;步骤810:结束。节点通过上述过程建立自己的节点表项,这样,服务器可以根据该节点表项的硬件id集合域值来获取与该节点可达的路由器或者骨干节点的硬件id,通过该节点表项的坐标来选择距离该节点最近的可达路由器或者骨干节点,从而减少路由路径的长度,降低路由代价和延迟,节点表项通过生命周期来确保节点坐标的实时性和有效性,从而确保了路由通信的高效性和正确性。图9为本发明所述的通信流程示意图。服务器s1与主路由器mar1相连;请求消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;响应消息包含消息类型、源硬件id和源坐标、目的硬件id和目的坐标、最终硬件id和最终坐标,以及负载;如果节点v1和节点v2不是骨干节点,则节点v1通过下述过程实现与节点v2的通信:步骤901:开始;步骤902:节点v1选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,发送一个请求消息,该请求消息的消息类型值为7,源硬件id和源坐标分别等于节点v1的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为节点v2的硬件id;步骤903:如果路由器或者骨干节点接收到该请求消息且该路由器或者骨干节点的下游接口的硬件id等于该请求消息的最终硬件id,则执行步骤906,否则执行步骤904;步骤904:接收到该请求消息的节点查看自己的硬件id是否等于该请求消息的目的硬件id,如果是,则执行步骤905,否则执行步骤906;步骤905:接收到该请求消息的节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息,执行步骤903;步骤906:如果是骨干节点接收到该请求消息,则从上游接口转发该请求消息;否则路由器接收到请求消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该请求消息;步骤907:如果主路由器mar1接收到该请求消息,则执行步骤909,否则执行步骤908;步骤908:接收到该请求消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该请求消息,执行步骤907;步骤909:主路由器mar1接收到请求消息后,查看节点表,选择一个节点表项,该节点表项的硬件id等于该请求消息负载中的硬件id,选择所有下游硬件id包含在该节点表项的硬件id集合中的设备表项,从这些设备表项中,主路由器mar1选择一个设备表项,该设备表项的坐标与该节点表项的坐标距离最近,将该请求消息的目的硬件id和目的坐标更新为该设备表项的下游硬件id和坐标,将最终硬件id和最终坐标更新为该节点表项的硬件id和坐标;主路由器mar1选择一个转发表项,该转发表项的坐标等于该请求消息的目的坐标,从该转发表项的硬件id所标识的接口转发该请求消息;步骤910:如果路由器或者骨干节点接收到该请求消息且该路由器或者骨干节点的下游接口的硬件id等于该请求消息的目的硬件id,则执行步骤912,否则执行步骤911;步骤911:接收到该请求消息的路由器选择一个转发表项,该转发表项的坐标等于该请求消息的目的坐标,从该转发表项的硬件id所标识的接口转发该请求消息,执行步骤910;步骤912:接收到该请求消息的路由器或者骨干节点从下游接口转发该请求消息;接收到请求消息的节点查看邻居表,选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息;步骤913:如果节点v2接收到该请求消息,则执行步骤916,否则执行步骤914;步骤914:其他节点接收到请求消息后查看自己的硬件id是否等于该请求消息的目的硬件id,如果等于,则执行步骤915,否则执行步骤916;步骤915:接收到请求消息的节点选择一个邻居表项,该邻居表项的坐标域值与该请求消息的最终坐标域值距离最近,将该请求消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该请求消息,执行步骤913;步骤916:节点v2接收到请求消息后选择一个关联表项,该关联表项的坐标域值与自己的坐标距离最近,节点v2选择一个邻居表项,该邻居表项的坐标域值与该关联表项的坐标域值距离最近,节点v2发送一个响应消息,该响应消息的消息类型值为8,源硬件id和源坐标分别等于节点v2的硬件id和坐标,目的硬件id和目的坐标分别等于该邻居表项的硬件id和坐标,最终硬件id和最终坐标等于该关联表项的硬件id和坐标,负载为请求消息源硬件id和响应数据;步骤917:如果路由器或者骨干节点接收到该响应消息且该路由器或者骨干节点的下游接口的硬件id等于该响应消息的最终硬件id,则执行步骤920,否则执行步骤918;步骤918:接收到该响应消息的节点查看自己的硬件id是否等于该响应消息的目的硬件id,如果是,则执行步骤919,否则执行步骤920;步骤919:接收到该响应消息的节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息,执行步骤917;步骤920:如果是骨干节点接收到该响应消息,则从上游接口转发该响应消息;否则路由器接收到响应消息后选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该响应消息;步骤921:如果主路由器mar1接收到该响应消息,则执行步骤923,否则执行步骤922;步骤922:接收到该响应消息的路由器选择类型域值为1的转发表项,从该转发表项的硬件id所标识的接口转发该响应消息,执行步骤921;步骤923:主路由器mar1接收到响应消息后,查看节点表,选择一个节点表项,该节点表项的硬件id等于该响应消息负载中的硬件id,选择所有下游硬件id包含在该节点表项的硬件id集合中的设备表项,从这些设备表项中,主路由器mar1选择一个设备表项,该设备表项的坐标与该节点表项的坐标距离最近,将该响应消息的目的硬件id和目的坐标更新为该设备表项的下游硬件id和坐标,将最终硬件id和最终坐标更新为该节点表项的硬件id和坐标;主路由器mar1选择一个转发表项,该转发表项的坐标等于该响应消息的目的坐标,从该转发表项的硬件id所标识的接口转发该响应消息;步骤924:如果路由器或者骨干节点接收到该响应消息且该路由器或者骨干节点的下游接口的硬件id等于该响应消息的目的硬件id,则执行步骤926,否则执行步骤925;步骤925:接收到该响应消息的路由器选择一个转发表项,该转发表项的坐标等于该响应消息的目的坐标,从该转发表项的硬件id所标识的接口转发该响应消息,执行步骤924;步骤926:接收到该响应消息的路由器或者骨干节点从下游接口转发该响应消息;接收到响应消息的节点查看邻居表,选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息;步骤927:如果节点v1接收到该响应消息,则执行步骤930,否则执行步骤928;步骤928:其他节点接收到响应消息后查看自己的硬件id是否等于该响应消息的目的硬件id,如果等于,则执行步骤929,否则执行步骤930;步骤929:接收到响应消息的节点选择一个邻居表项,该邻居表项的坐标域值与该响应消息的最终坐标域值距离最近,将该响应消息的目的硬件id和目的坐标分别更新为该邻居表项的硬件id和坐标,转发该响应消息,执行步骤927;步骤930:节点v1接收到响应消息后,保存该响应消息负载中的响应数据;步骤931:结束。节点v1通过上述过程能够建立与节点v2的路由并实现通信;节点v1通过节点表来查询目标节点的当前坐标,通过设备表获取距离目标节点距离最近的路由器或者骨干节点从而降低与目标节点的路径长度,降低通信延迟和代价;上述过程通过邻居节点选择最优下一跳节点从而降低节点与距离最近的路由器或者骨干节点之间的路由长度,降低路由代价和延迟,提高数据通信性能。实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种物联网的路由通信实现方法,性能分析如下:当数据传输量增加时,数据通信延迟增加,当数据传输量减少时,数据通信延迟降低,节点的平均数据通信延迟为107ms。表1仿真参数本发明提供了一种物联网的路由通信实现方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1