一种安全的新一代物联网数据通信方法与流程

文档序号:16629689发布日期:2019-01-16 06:27阅读:177来源:国知局
一种安全的新一代物联网数据通信方法与流程
本发明涉及一种通信方法,尤其涉及的是一种安全的新一代物联网数据通信方法。
背景技术
:新一代物联网中的节点之间通信通过中间节点的转发和路由来实现,因此,实现新一代物联网需要解决的关键技术之一就是降低数据传输延迟,以便使用户能够快速获取网络服务。随着新一代物联网技术的发展,新一代物联网会成为未来网络提供服务的一种模式。目前,新一代物联网的实现模式是通过广播来实现,因此延迟和代价都比较大,降低了网络服务性能。因此,如何降低新一代物联网提供服务的延迟和代价成为近年来研究的热点问题。技术实现要素:发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种安全的新一代物联网数据通信方法。技术方案:本发明公开了一种安全的新一代物联网数据通信方法,其特征在于,所述物联网包括两个以上的路由器、两个以上的服务器和两个以上的节点;一种数据由一个名称唯一标识;节点分为消费节点和生产节点;消费节点为有权限获取一种数据的节点,例如获取电视剧视频数据;生产节点为有权限发布和更新一种数据的节点,例如发布和更新电视剧视频数据;一个生产节点被授权发布和更新一种以上类型的数据,一种类型的数据能够被两个以上的授权的生产节点发布和更新;一个类型的数据的消费节点和生产节点信息只能保存在一个授权的服务器中,一个服务器可以授权保存一种或者两个以上的类型数据的消费节点和生产节点信息;一个消费节点被授权获取一种以上类类型的数据;一种类型的数据对应一个私钥和一个公钥,公钥为标识该数据的名称,私钥为第三方认证机构发布,例如电子商务认证授权机构(ca,certificateauthority);当一个消费节点被授权获取一种类型的数据时,能够获得该类型数据的私钥和公钥,消费节点利用该类型数据的私钥加密该类型数据的公钥得到加密后的名称,加密后的名称称为隐私名称,加密算法可以采用任何非对称加密算法,例如rsa;当一个生产节点被授权发布和更新一种类型的数据时,能够获得该类型数据的私钥和公钥,生产节点利用该类型数据的私钥加密该类型数据的公钥得到该数据的隐私名称;当一个服务器被授权保存一种类型数据的消费节点和生产节点信息时,能够获得该类型数据的私钥和公钥,该服务器利用该类型数据的私钥加密该类型数据的公钥得到该数据的隐私名称;一个生产节点、消费节点和服务器分别保存一个密钥表;一个密钥表项由私钥、公钥和隐私名称构成;一个生产节点对于自己有权限发布和更新的每种类型数据执行下述操作:该生产节点创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;一个消费节点对于自己有权限获取的每种类型数据执行下述操作:该消费节点创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;如果一个服务器有权限保存一种类型数据的消费节点和生产节点的信息,则执行下述操作:该服务器创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;一个节点或者服务器配置一个接口,一个路由器配置两个以上的接口,所述接口分为上游接口和下游接口;一个上游接口与一个路由器相连,一个下游接口与一个节点或者服务器相连;一个接口由一个接口id唯一标识,一个接口id为x的接口简写为接口x;节点通过消息进行通信,一种消息由消息类型唯一标识;消息类型值如下所示:消息类型名称消息类型值服务器发布消息1消费消息2生产消息3请求消息4响应消息5推送消息6每个路由器维护一个服务器表,一个服务器表项包含接口id域、隐私名称域和生命周期域;服务器通过发送服务器发布消息来维护服务器表,一个服务器发布消息包含消息类型和隐私名称集合;服务器s1与路由器r1相连,并定期执行下述操作以维护服务器表:步骤101:开始;步骤102:服务器s1构建一个密钥名称集合参数pns1,查看密钥表项并将每个密钥表项中的隐私名称域值加入到参数pns1中,发送一个服务器发布消息,该服务器发布消息的消息类型值为1,隐私名称集合域值为参数pns1的值;步骤103:路由器r1从下游接口f1接收到该服务器发布消息后查看服务器表;针对该服务器发布消息的密钥名称集合中的每个元素e1,路由器r1执行下述操作:如果存在一个服务器表项,该服务器表项的接口id等于f1,隐私名称等于元素e1且生命周期不小于最大生命周期值m1与阈值t1之差,则执行步骤113,否则执行步骤104;最大生命周期值m1和阈值t1预先设置,且m1远大于t1,例如m1可以取值为1s,t1取值为100ms;步骤104:路由器r1判断是否存在一个服务器表项,该服务器表项的接口id等于f1且隐私名称等于元素e1,如果是则执行步骤105,否则执行步骤106;步骤105:路由器r1选择一个服务器表项,该服务器表项的接口id等于f1且隐私名称等于元素e1,将该服务器表项的生命周期设置为最大生命周期值,执行步骤107;步骤106:路由器r1创建一个服务器表项,该服务器表项的接口id等于f1,隐私名称等于元素e1,生命周期设置为最大生命周期值;步骤107:路由器r1从每个上游接口转发接收到的服务器发布消息;步骤108:路由器从上游接口f2接收到该服务器发布消息后查看服务器表;针对该服务器发布消息的密钥名称集合中的每个元素e2,该路由器执行下述操作:如果存在一个服务器表项,该服务器表项的接口id等于f2,隐私名称等于元素e2且生命周期不小于最大生命周期值m1与阈值t1之差,则执行步骤113,否则执行步骤109;步骤109:从上游接口f2接收到该服务器发布消息的路由器判断是否存在一个服务器表项,该服务器表项的接口id等于f2且隐私名称等于元素e2,如果是则执行步骤110,否则执行步骤111;步骤110:从上游接口f2接收到该服务器发布消息的路由器选择一个服务器表项,该服务器表项的接口id等于f2且隐私名称等于元素e2,将该服务器表项的生命周期设置为最大生命周期值,执行步骤112;步骤111:从上游接口f2接收到该服务器发布消息的路由器创建一个服务器表项,该服务器表项的接口id等于f2,隐私名称等于元素e2,生命周期设置为最大生命周期值;步骤112:从上游接口f2接收到该服务器发布消息的路由器从除了接口f2以外的每个上游接口转发接收到的服务器发布消息,执行步骤108;步骤113:结束。服务器通过上述过程能够建立到达自己的路由路径,由于每个路由器只处理第一个接收到的服务器发布消息,根据该服务器发布消息建立到达服务器的路由路径,因此确保了路由器到达该服务器的路径性能为最优,从而降低了数据通信代价和延迟。本发明所述方法中,一个服务器维护一个消费表,每个消费表项由接口id集合,隐私名称和生命周期构成;消费节点通过消费消息维护消费表;一个消费消息包含消息类型,接口id集合和隐私名称;消费节点cs1定期执行下述操作维护消费表:步骤201:开始;步骤202:消费节点cs1查看密钥表,针对每个密钥表项,消费节点cs1执行下述操作:消费节点cs1发送一个消费消息,该消费消息的消息类型值为2,接口id集合为空,隐私名称等于该密钥表项的隐私名称;步骤203:判断是服务器还是路由器从接口f3接收到该消费消息,如果是服务器则执行步骤205,否则执行步骤204;步骤204:路由器从接口f3接收到该消费消息后,将接口f3加入到该消费消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该消费消息的隐私名称,从该服务器表项的接口id域值所标识的接口转发该消费消息,执行步骤203;步骤205:服务器接收到该消费消息后,查看消费表,如果存在一个消费表项,该消费表项的隐私名称和接口id集合域值分别等于该消费消息的隐私名称和接口id集合域值,则将该消费表项的生命周期设置为最大值;否则,该服务器创建一个消费表项,该消费表项的隐私名称和接口id集合域值分别等于该消费消息的隐私名称和接口id集合域值,生命周期设置为最大值;步骤206:结束。消费者通过上述过程建立服务器到达自己的路由路径,由于消费者到达服务器的路由路径通过服务器表来实现,而服务器表构建了服务器到达每个路由器的最优路由路径,因此服务器到达消费者的路由路径的性能也为最优,从而降低了消费者获取数据的代价和延迟。本发明所述方法中,一个消费节点和生产节点分别保存一个数据表;每个数据表项包含隐私名称、数据域和时间戳;一个服务器维护一个生产表,每个生产表项由接口id集合、隐私名称、时间戳和生命周期构成;生产节点通过生产消息维护生产表;一个生产消息包含消息类型,接口id集合和隐私名称和时间戳;生产节点p1定期执行下述操作维护生产表:步骤301:开始;步骤302:生产节点p1查看密钥表,针对每个密钥表项,生产节点p1执行下述操作:生产节点p1选择一个数据表项,该数据表项的隐私名称等于该密钥表项的隐私名称,发送一个生产消息,该生产消息的消息类型值为3,接口id集合为空,隐私名称和时间戳分别等于该数据表项的隐私名称和时间戳;步骤303:判断是服务器还是路由器从接口x1接收到该生产消息,如果是路由器则执行步骤305,否则执行步骤304;步骤304:路由器从接口x1接收到该生产消息后,将接口x1加入到该生产消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该生产消息的隐私名称,从该服务器表项的接口id域值所标识的接口转发该生产消息,执行步骤303;步骤305:服务器接收到该生产消息后,查看生产表,如果存在一个生产表项,该生产表项的隐私名称和接口id集合域值分别等于该生产消息的隐私名称和接口id集合域值,则将该生产表项的时间戳设置为该生产消息的时间戳域值,将生命周期设置为最大值;否则,该服务器创建一个生产表项,该生产表项的隐私名称和接口id集合域值分别等于该生产消息的隐私名称和接口id集合域值,时间戳设置为该生产消息的时间戳域值,将生命周期设置为最大值;步骤306:结束。生产者通过上述过程建立服务器到达自己的路由路径,同时服务器也保存了生产者所发布或者更新数据的最新时间,这样,消费者可以从发布或者更新最新数据的生产节点获取数据,确保数据的实时性和有效性;此外,生产者到达服务器的路由路径基于服务器表来实现,由于服务器表构建了服务器到达每个路由器的最优路由路径,因此服务器到达生产者的路由路径的性能也为最优,从而降低了推送数据和获取数据的代价和延迟。本发明所述方法中,消费节点采用请求消息和响应消息获取数据,请求消息和响应消息均由消息类型,接口id集合,隐私名称和负载构成;在消费节点cs1有权限获取名称na1所标识的数据,名称na1的隐私名称为pna1的条件下,消费节点cs1通过下述过程获取名称na1所标识的数据:步骤401:开始;步骤402:消费节点cs1发送请求消息,该请求消息的消息类型值为4,接口id集合为空,隐私名称为pna1,负载为空;步骤403:判断是服务器还是路由器从接口y1接收到该请求消息,如果是服务器则执行步骤405,否则执行步骤404;步骤404:路由器从接口y1接收到该请求消息后,将接口y1加入到该请求消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该请求消息的隐私名称,通过该服务器表项的接口id域值所标识的接口转发该请求消息,执行步骤403;步骤405:服务器接收到该请求消息后,选择一个消费表项,该消费表项的隐私名称与该请求消息的隐私名称相同且时间戳为最新,该服务器构建一个接口id集合参数a1,该参数a1的值等于该请求消息的接口id集合,将该请求消息的接口id集合设置为该消费表项的接口id集合,负载设置为参数a1,发送该请求消息;步骤406:如果节点接收到该请求消息,则执行步骤410,否则执行步骤407;步骤407:如果路由器从下游接口接收到该请求消息,则执行步骤409,否则执行步骤408;步骤408:路由器从上游接口y2接收到该请求消息,将接口y2加入到该请求消息负载的参数a1中并作为最后一个元素;步骤409:接收到请求消息的路由器选择该请求消息接口id集合中最后一个元素标识的接口,从该请求消息接口id集合中删除最后一个元素,从选中的接口发送该请求消息,执行步骤406;步骤410:接收到请求消息的节点选择一个数据表项,该数据表项的隐私名称等于该请求消息的隐私名称,选择一个密钥表项,该密钥表项的隐私名称等于该请求消息的隐私名称;该节点采用该密钥表项的公钥加密该数据表项中的数据域值得到加密后的数据;该节点发送一个响应消息,该响应消息的消息类型值为5,接口id集合等于该请求消息负载中的参数a1,隐私名称等于该请求消息的隐私名称,负载为加密后的数据和该数据表项中的时间戳;步骤411:判断是节点还是路由器接收到该响应消息,如果是节点则执行步骤413,否则执行步骤412;步骤412:路由器接收到该响应消息后,选择该响应消息接口id集合中最后一个元素标识的接口,从该响应消息接口id集合中删除最后一个元素,从选中的接口发送该响应消息,执行步骤411;步骤413:节点接收到响应消息后选择一个密钥表项,该密钥表项的隐私名称等于该响应消息的隐私名称,利用该密钥表项的私钥解密该响应消息负载中加密的数据得到解密后的数据;该节点判断是否存在一个数据表项,该数据表项的隐私名称等于该响应消息的隐私名称,如果存在,该节点则将该数据表项的数据域值更新为解密后的数据,将时间戳设置为该响应消息负载中的时间戳;否则,该节点创建一个数据表项,该数据表项的隐私名称等于该响应消息的隐私名称,数据域值等于解密后的数据,时间戳设置为该响应消息负载中的时间戳;步骤414:结束。消费节点通过上述过程获取所需数据,由于数据通信利用消费表和生产表实现,而消费表建立消费节点到达服务器的最优路径,生产表建立了生产节点到达服务器的最优路径,因此消费节点可以通过最优路径从生产节点获取数据,从而有效降低了数据通信的延迟和代价;另外,服务器保存了生产者所发布或者更新数据的最新时间,这样,消费者可以从发布或者更新最新数据的生产节点获取数据,从而确保了数据的实时性和有效性,进一步降低了消费节点获取数据的代价和延迟。本发明所述方法中,生产节点采用推送消息发布和更新数据,推送消息由消息类型、接口id集合、隐私名称和负载构成;在生产节点p1有权限发布和更新名称na1所标识的数据,名称na1的隐私名称为pna1的条件下,如果生产节点p1发布或者更新了由名称na1标识的数据,则执行下述过程:步骤501:开始;步骤502:生产节点p1选择一个数据表项,该数据表项的隐私名称等于pna1,选择一个密钥表项,该密钥表项的隐私名称等于pna1;生产节点p1采用该密钥表项的公钥加密该数据表项中的数据域值得到加密后的数据;该节点发送一个推送消息,该推送消息的消息类型值为6,接口id集合等于空,隐私名称等于pna1,负载为加密后的数据和该数据表项中的时间戳;步骤503:如果服务器接收到该推送消息,则执行步骤505,否则执行步骤504;步骤504:路由器从接口z1接收到该推送消息后,将接口z1加入到该推送消息的接口id集合中并作为最后一个元素,该路由器选择一个服务器表项,该服务器表项的隐私名称等于该推送消息的隐私名称,通过该服务器表项的接口id域值所标识的接口转发该推送消息,执行步骤503;步骤505:服务器接收到该推送消息后,选择一个消费表项,该消费表项的隐私名称和接口id集合分别等于该推送消息的隐私名称和接口id集合,将该消费表项的时间戳更新为该推送消息负载中的时间戳,将生命周期设置为最大值;该服务器选择所有隐私名称域值等于该推送消息隐私名称的消费表项,针对每个选中的消费表项,该服务器执行下述操作:该服务器将该推送消息的接口id集合更新为该消费表项的接口id集合,发送该推送消息;步骤506:节点接收到该推送消息后,执行步骤508,否则执行步骤507;步骤507:路由器接收到该推送消息后,选择该推送消息接口id集合中最后一个元素标识的接口,从该推送消息接口id集合中删除最后一个元素,从选中的接口发送该推送消息,执行步骤506;步骤508:节点接收到推送消息后选择一个密钥表项,该密钥表项的隐私名称等于该推送消息的隐私名称,利用该密钥表项的私钥解密该推送消息负载中加密的数据得到解密后的数据;该节点查看是否存在一个数据表项,该数据表项的隐私名称等于该推送消息的隐私名称,如果存在,该节点则将该数据表项的数据域值更新为解密后的数据,将时间戳设置为该推送消息负载中的时间戳;否则,该节点创建一个数据表项,该数据表项的隐私名称等于该推送消息的隐私名称,数据域值等于解密后的数据,时间戳设置为该推送消息负载中的时间戳;步骤509:结束。生产节点通过上述过程将发布或者更新的数据推送给消费节点,上述数据推送过程利用生产表和消费表实现,生产表建立了生产节点到达服务器的最优路径,消费表建立了消费节点到达服务器的最优路径,因此生产节点通过最优路径将数据推送到消费节点,从而有效降低了数据推送的延迟和代价;同时,上述推送过程确保消费者能在第一时间快速获取最新发布或者更新的数据,确保了数据的实时性和有效性。有益效果:本发明提供了一种安全的新一代物联网数据通信方法,在本发明中,节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1为本发明所述的维护服务器表流程示意图。图2为本发明所述的维护消费表流程示意图。图3为本发明所述的维护生产表流程示意图。图4为本发明所述的获取数据流程示意图。图5为本发明所述的数据更新流程示意图。具体实施方式:本发明提供了一种安全的新一代物联网数据通信方法,在本发明中,节点能够快速获取数据,大幅度降低了数据通信延迟,提高了数据通信质量。本发明可应用于交通路况检控及农业工程化等诸多领域,具有广泛的应用前景。图1为本发明所述的维护服务器表流程示意图。所述物联网包括两个以上的路由器、两个以上的服务器和两个以上的节点;一种数据由一个名称唯一标识;节点分为消费节点和生产节点;消费节点为有权限获取一种数据的节点,例如获取电视剧视频数据;生产节点为有权限发布和更新一种数据的节点,例如发布和更新电视剧视频数据;一个生产节点被授权发布和更新一种以上类型的数据,一种类型的数据能够被两个以上的授权的生产节点发布和更新;一个类型的数据的消费节点和生产节点信息只能保存在一个授权的服务器中,一个服务器可以授权保存一种或者两个以上的类型数据的消费节点和生产节点信息;一个消费节点被授权获取一种以上类类型的数据;一种类型的数据对应一个私钥和一个公钥,公钥为标识该数据的名称,私钥为第三方认证机构发布,例如电子商务认证授权机构(ca,certificateauthority);当一个消费节点被授权获取一种类型的数据时,能够获得该类型数据的私钥和公钥,消费节点利用该类型数据的私钥加密该类型数据的公钥得到加密后的名称,加密后的名称称为隐私名称,加密算法可以采用任何非对称加密算法,例如rsa;当一个生产节点被授权发布和更新一种类型的数据时,能够获得该类型数据的私钥和公钥,生产节点利用该类型数据的私钥加密该类型数据的公钥得到该数据的隐私名称;当一个服务器被授权保存一种类型数据的消费节点和生产节点信息时,能够获得该类型数据的私钥和公钥,该服务器利用该类型数据的私钥加密该类型数据的公钥得到该数据的隐私名称;一个生产节点、消费节点和服务器分别保存一个密钥表;一个密钥表项由私钥、公钥和隐私名称构成;一个生产节点对于自己有权限发布和更新的每种类型数据执行下述操作:该生产节点创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;一个消费节点对于自己有权限获取的每种类型数据执行下述操作:该消费节点创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;如果一个服务器有权限保存一种类型数据的消费节点和生产节点的信息,则执行下述操作:该服务器创建一个密钥表项,该密钥表项的私钥域值为该类型数据的私钥,公钥域值为标识该类型数据的名称,隐私名称域值为该类型数据的隐私名称;一个节点或者服务器配置一个接口,一个路由器配置两个以上的接口,所述接口分为上游接口和下游接口;一个上游接口与一个路由器相连,一个下游接口与一个节点或者服务器相连;一个接口由一个接口id唯一标识,一个接口id为x的接口简写为接口x;节点通过消息进行通信,一种消息由消息类型唯一标识;消息类型值如下所示:消息类型名称消息类型值服务器发布消息1消费消息2生产消息3请求消息4响应消息5推送消息6每个路由器维护一个服务器表,一个服务器表项包含接口id域、隐私名称域和生命周期域;服务器通过发送服务器发布消息来维护服务器表,一个服务器发布消息包含消息类型和隐私名称集合;服务器s1与路由器r1相连,并定期执行下述操作以维护服务器表:步骤101:开始;步骤102:服务器s1构建一个密钥名称集合参数pns1,查看密钥表项并将每个密钥表项中的隐私名称域值加入到参数pns1中,发送一个服务器发布消息,该服务器发布消息的消息类型值为1,隐私名称集合域值为参数pns1的值;步骤103:路由器r1从下游接口f1接收到该服务器发布消息后查看服务器表;针对该服务器发布消息的密钥名称集合中的每个元素e1,路由器r1执行下述操作:如果存在一个服务器表项,该服务器表项的接口id等于f1,隐私名称等于元素e1且生命周期不小于最大生命周期值m1与阈值t1之差,则执行步骤113,否则执行步骤104;最大生命周期值m1和阈值t1预先设置,且m1远大于t1,例如m1可以取值为1s,t1取值为100ms;步骤104:路由器r1判断是否存在一个服务器表项,该服务器表项的接口id等于f1且隐私名称等于元素e1,如果是则执行步骤105,否则执行步骤106;步骤105:路由器r1选择一个服务器表项,该服务器表项的接口id等于f1且隐私名称等于元素e1,将该服务器表项的生命周期设置为最大生命周期值,执行步骤107;步骤106:路由器r1创建一个服务器表项,该服务器表项的接口id等于f1,隐私名称等于元素e1,生命周期设置为最大生命周期值;步骤107:路由器r1从每个上游接口转发接收到的服务器发布消息;步骤108:路由器从上游接口f2接收到该服务器发布消息后查看服务器表;针对该服务器发布消息的密钥名称集合中的每个元素e2,该路由器执行下述操作:如果存在一个服务器表项,该服务器表项的接口id等于f2,隐私名称等于元素e2且生命周期不小于最大生命周期值m1与阈值t1之差,则执行步骤113,否则执行步骤109;步骤109:从上游接口f2接收到该服务器发布消息的路由器判断是否存在一个服务器表项,该服务器表项的接口id等于f2且隐私名称等于元素e2,如果是则执行步骤110,否则执行步骤111;步骤110:从上游接口f2接收到该服务器发布消息的路由器选择一个服务器表项,该服务器表项的接口id等于f2且隐私名称等于元素e2,将该服务器表项的生命周期设置为最大生命周期值,执行步骤112;步骤111:从上游接口f2接收到该服务器发布消息的路由器创建一个服务器表项,该服务器表项的接口id等于f2,隐私名称等于元素e2,生命周期设置为最大生命周期值;步骤112:从上游接口f2接收到该服务器发布消息的路由器从除了接口f2以外的每个上游接口转发接收到的服务器发布消息,执行步骤108;步骤113:结束。服务器通过上述过程能够建立到达自己的路由路径,由于每个路由器只处理第一个接收到的服务器发布消息,根据该服务器发布消息建立到达服务器的路由路径,因此确保了路由器到达该服务器的路径性能为最优,从而降低了数据通信代价和延迟。图2为本发明所述的维护消费表流程示意图。一个服务器维护一个消费表,每个消费表项由接口id集合,隐私名称和生命周期构成;消费节点通过消费消息维护消费表;一个消费消息包含消息类型,接口id集合和隐私名称;消费节点cs1定期执行下述操作维护消费表:步骤201:开始;步骤202:消费节点cs1查看密钥表,针对每个密钥表项,消费节点cs1执行下述操作:消费节点cs1发送一个消费消息,该消费消息的消息类型值为2,接口id集合为空,隐私名称等于该密钥表项的隐私名称;步骤203:判断是服务器还是路由器从接口f3接收到该消费消息,如果是服务器则执行步骤205,否则执行步骤204;步骤204:路由器从接口f3接收到该消费消息后,将接口f3加入到该消费消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该消费消息的隐私名称,从该服务器表项的接口id域值所标识的接口转发该消费消息,执行步骤203;步骤205:服务器接收到该消费消息后,查看消费表,如果存在一个消费表项,该消费表项的隐私名称和接口id集合域值分别等于该消费消息的隐私名称和接口id集合域值,则将该消费表项的生命周期设置为最大值;否则,该服务器创建一个消费表项,该消费表项的隐私名称和接口id集合域值分别等于该消费消息的隐私名称和接口id集合域值,生命周期设置为最大值;步骤206:结束。消费者通过上述过程建立服务器到达自己的路由路径,由于消费者到达服务器的路由路径通过服务器表来实现,而服务器表构建了服务器到达每个路由器的最优路由路径,因此服务器到达消费者的路由路径的性能也为最优,从而降低了消费者获取数据的代价和延迟。图3为本发明所述的维护生产表流程示意图。一个消费节点和生产节点分别保存一个数据表;每个数据表项包含隐私名称、数据域和时间戳;一个服务器维护一个生产表,每个生产表项由接口id集合、隐私名称、时间戳和生命周期构成;生产节点通过生产消息维护生产表;一个生产消息包含消息类型,接口id集合和隐私名称和时间戳;生产节点p1定期执行下述操作维护消费表:步骤301:开始;步骤302:生产节点p1查看密钥表,针对每个密钥表项,生产节点p1执行下述操作:生产节点p1选择一个数据表项,该数据表项的隐私名称等于该密钥表项的隐私名称,发送一个生产消息,该生产消息的消息类型值为3,接口id集合为空,隐私名称和时间戳分别等于该数据表项的隐私名称和时间戳;步骤303:判断是服务器还是路由器从接口x1接收到该生产消息,如果是路由器则执行步骤305,否则执行步骤304;步骤304:路由器从接口x1接收到该生产消息后,将接口x1加入到该生产消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该生产消息的隐私名称,从该服务器表项的接口id域值所标识的接口转发该生产消息,执行步骤303;步骤305:服务器接收到该生产消息后,查看生产表,如果存在一个生产表项,该生产表项的隐私名称和接口id集合域值分别等于该生产消息的隐私名称和接口id集合域值,则将该生产表项的时间戳设置为该生产消息的时间戳域值,将生命周期设置为最大值;否则,该服务器创建一个生产表项,该生产表项的隐私名称和接口id集合域值分别等于该生产消息的隐私名称和接口id集合域值,时间戳设置为该生产消息的时间戳域值,将生命周期设置为最大值;步骤306:结束。生产者通过上述过程建立服务器到达自己的路由路径,同时服务器也保存了生产者所发布或者更新数据的最新时间,这样,消费者可以从发布或者更新最新数据的生产节点获取数据,确保数据的实时性和有效性;此外,生产者到达服务器的路由路径基于服务器表来实现,由于服务器表构建了服务器到达每个路由器的最优路由路径,因此服务器到达生产者的路由路径的性能也为最优,从而降低了推送数据和获取数据的代价和延迟。图4为本发明所述的获取数据流程示意图。消费节点采用请求消息和响应消息获取数据,请求消息和响应消息均由消息类型,接口id集合,隐私名称和负载构成;在消费节点cs1有权限获取名称na1所标识的数据,名称na1的隐私名称为pna1的条件下,消费节点cs1通过下述过程获取名称na1所标识的数据:步骤401:开始;步骤402:消费节点cs1发送请求消息,该请求消息的消息类型值为4,接口id集合为空,隐私名称为pna1,负载为空;步骤403:判断是服务器还是路由器从接口y1接收到该请求消息,如果是服务器则执行步骤405,否则执行步骤404;步骤404:路由器从接口y1接收到该请求消息后,将接口y1加入到该请求消息的接口id集合中并作为最后一个元素;该路由器选择一个服务器表项,该服务器表项的隐私名称等于该请求消息的隐私名称,通过该服务器表项的接口id域值所标识的接口转发该请求消息,执行步骤403;步骤405:服务器接收到该请求消息后,选择一个消费表项,该消费表项的隐私名称与该请求消息的隐私名称相同且时间戳为最新,该服务器构建一个接口id集合参数a1,该参数a1的值等于该请求消息的接口id集合,将该请求消息的接口id集合设置为该消费表项的接口id集合,负载设置为参数a1,发送该请求消息;步骤406:如果节点接收到该请求消息,则执行步骤410,否则执行步骤407;步骤407:如果路由器从下游接口接收到该请求消息,则执行步骤409,否则执行步骤408;步骤408:路由器从上游接口y2接收到该请求消息,将接口y2加入到该请求消息负载的参数a1中并作为最后一个元素;步骤409:接收到请求消息的路由器选择该请求消息接口id集合中最后一个元素标识的接口,从该请求消息接口id集合中删除最后一个元素,从选中的接口发送该请求消息,执行步骤406;步骤410:接收到请求消息的节点选择一个数据表项,该数据表项的隐私名称等于该请求消息的隐私名称,选择一个密钥表项,该密钥表项的隐私名称等于该请求消息的隐私名称;该节点采用该密钥表项的公钥加密该数据表项中的数据域值得到加密后的数据;该节点发送一个响应消息,该响应消息的消息类型值为5,接口id集合等于该请求消息负载中的参数a1,隐私名称等于该请求消息的隐私名称,负载为加密后的数据和该数据表项中的时间戳;步骤411:判断是节点还是路由器接收到该响应消息,如果是节点则执行步骤413,否则执行步骤412;步骤412:路由器接收到该响应消息后,选择该响应消息接口id集合中最后一个元素标识的接口,从该响应消息接口id集合中删除最后一个元素,从选中的接口发送该响应消息,执行步骤411;步骤413:节点接收到响应消息后选择一个密钥表项,该密钥表项的隐私名称等于该响应消息的隐私名称,利用该密钥表项的私钥解密该响应消息负载中加密的数据得到解密后的数据;该节点判断是否存在一个数据表项,该数据表项的隐私名称等于该响应消息的隐私名称,如果存在,该节点则将该数据表项的数据域值更新为解密后的数据,将时间戳设置为该响应消息负载中的时间戳;否则,该节点创建一个数据表项,该数据表项的隐私名称等于该响应消息的隐私名称,数据域值等于解密后的数据,时间戳设置为该响应消息负载中的时间戳;步骤414:结束。消费节点通过上述过程获取所需数据,由于数据通信利用消费表和生产表实现,而消费表建立消费节点到达服务器的最优路径,生产表建立了生产节点到达服务器的最优路径,因此消费节点可以通过最优路径从生产节点获取数据,从而有效降低了数据通信的延迟和代价;另外,服务器保存了生产者所发布或者更新数据的最新时间,这样,消费者可以从发布或者更新最新数据的生产节点获取数据,从而确保了数据的实时性和有效性,进一步降低了消费节点获取数据的代价和延迟。图5为本发明所述的数据更新流程示意图。生产节点采用推送消息发布和更新数据,推送消息由消息类型、接口id集合、隐私名称和负载构成;在生产节点p1有权限发布和更新名称na1所标识的数据,名称na1的隐私名称为pna1的条件下,如果生产节点p1发布或者更新了由名称na1标识的数据,则执行下述过程:步骤501:开始;步骤502:生产节点p1选择一个数据表项,该数据表项的隐私名称等于pna1,选择一个密钥表项,该密钥表项的隐私名称等于pna1;生产节点p1采用该密钥表项的公钥加密该数据表项中的数据域值得到加密后的数据;该节点发送一个推送消息,该推送消息的消息类型值为6,接口id集合等于空,隐私名称等于pna1,负载为加密后的数据和该数据表项中的时间戳;步骤503:如果服务器接收到该推送消息,则执行步骤505,否则执行步骤504;步骤504:路由器从接口z1接收到该推送消息后,将接口z1加入到该推送消息的接口id集合中并作为最后一个元素,该路由器选择一个服务器表项,该服务器表项的隐私名称等于该推送消息的隐私名称,通过该服务器表项的接口id域值所标识的接口转发该推送消息,执行步骤503;步骤505:服务器接收到该推送消息后,选择一个消费表项,该消费表项的隐私名称和接口id集合分别等于该推送消息的隐私名称和接口id集合,将该消费表项的时间戳更新为该推送消息负载中的时间戳,将生命周期设置为最大值;该服务器选择所有隐私名称域值等于该推送消息隐私名称的消费表项,针对每个选中的消费表项,该服务器执行下述操作:该服务器将该推送消息的接口id集合更新为该消费表项的接口id集合,发送该推送消息;步骤506:节点接收到该推送消息后,执行步骤508,否则执行步骤507;步骤507:路由器接收到该推送消息后,选择该推送消息接口id集合中最后一个元素标识的接口,从该推送消息接口id集合中删除最后一个元素,从选中的接口发送该推送消息,执行步骤506;步骤508:节点接收到推送消息后选择一个密钥表项,该密钥表项的隐私名称等于该推送消息的隐私名称,利用该密钥表项的私钥解密该推送消息负载中加密的数据得到解密后的数据;该节点查看是否存在一个数据表项,该数据表项的隐私名称等于该推送消息的隐私名称,如果存在,该节点则将该数据表项的数据域值更新为解密后的数据,将时间戳设置为该推送消息负载中的时间戳;否则,该节点创建一个数据表项,该数据表项的隐私名称等于该推送消息的隐私名称,数据域值等于解密后的数据,时间戳设置为该推送消息负载中的时间戳;步骤509:结束。生产节点通过上述过程将发布或者更新的数据推送给消费节点,上述数据推送过程利用生产表和消费表实现,生产表建立了生产节点到达服务器的最优路径,消费表建立了消费节点到达服务器的最优路径,因此生产节点通过最优路径将数据推送到消费节点,从而有效降低了数据推送的延迟和代价;同时,上述推送过程确保消费者能在第一时间快速获取最新发布或者更新的数据,确保了数据的实时性和有效性。实施例1基于表1的仿真参数,本实施例模拟了本发明中的一种安全的新一代物联网数据通信方法,性能分析如下:当数据传输量增加时,数据通信延迟增加,当数据传输量减少时,数据通信延迟减少,数据通信平均延迟为1205ms。表1仿真参数本发明提供了一种安全的新一代物联网数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1