节点的版本升级方法、装置和系统的制作方法_3

文档序号:9455694阅读:来源:国知局
升级指令用于指示i个待升级的邻居节点执行升级,2彡i〈N_2,且版本升级指令中可以携带有升级文件,也可以不携带有升级文件。
[0137]可选地,i为固定值,或者,i为第二节点的邻居节点的总个数的预设倍数,该预设倍数小于I。
[0138]比如,以i为固定值5为例,第二节点可以先从与自己编号相同的各个邻居节点中选择5个待升级的邻居节点。若编号相同的各个邻居节点中待升级的邻居节点的个数不足5个,则第二节点可以从与自己编号相邻的各个邻居节点中选择剩余的个数。而若选择得到的个数仍然不足5个,则第二节点即可发送版本升级指令至选择得到的各个邻居节点,本实施例对此并不做限定。通过采用上述方式来选择待升级的邻居节点,节省了第二节点在升级各个邻居节点时所需耗用的资源。
[0139]而若第二节点的判定结果为不发送版本升级指令,则第二节点可以判断自身升级可能有误,此时,为了保证第二节点的正常运行,第二节点可以恢复至升级前的版本,并在预定时间段内拒绝升级。并且,为了避免升级有误的第二节点触发邻居节点进行升级,进而导致邻居节点也升级出错,第二节点可以结束流程。
[0140]需要说明的是,图3A只是示出了 i个待升级的邻居节点中的第一节点,而并未示出其它待升级的邻居节点。并且,本实施例也只是以接收第二节点发送的版本升级指令的第一节点同时接收到第二节点发送的邻居确认请求来举例说明。可选的,第一节点还可以只接收到版本升级指令,而并未接收到邻居确认请求,也即第二节点在发送邻居确认请求至j个邻居节点时,并未选择第一节点,本实施例对此并不做限定。
[0141]步骤309,第一节点接收第二节点发送的版本升级指令。
[0142]步骤310,第一节点根据版本升级指令获取升级文件。
[0143]可选的,本步骤可以包括:
[0144](I)、若版本升级指令中携带有升级文件,则第一节点可以读取版本升级指令中携带的升级文件。
[0145](2)、若版本升级指令中未携带有升级文件,则第一节点发送文件获取请求至第二节点,接收第二节点反馈的升级文件,文件获取请求用于请求获取升级文件。
[0146]步骤311,第一节点根据升级文件执行版本升级。
[0147]在第一节点升级完成之后,第一节点可以向j个邻居节点发送邻居确认请求,进而对其邻居节点继续升级,本实施例对此并不做限定。并且,原有的已升级的第二节点可以周期性的循环执行步骤301-步骤311,本实施例在此不再赘述。
[0148]综上所述,本实施例提供的节点的版本升级方法,通过接收N个节点中已升级的邻居节点发送的版本升级指令,根据版本升级指令执行版本升级,并在升级完毕后,向i个待升级的邻居节点继续发送版本升级指令,进而通过逐点传播的方式升级N个节点中的各个节点。解决了现有技术中需要耗用中心节点的大量资源的问题。达到了可以降低单个节点所需耗用的资源的效果。另外,通过逐点传播的方式来升级N个节点中的各个节点,也避免了现有技术中中心节点批量升级各个下属节点时升级可靠性和稳定性较差的问题;达到了可以保证升级的可靠性以及稳定性的效果。
[0149]第二节点在发送版本升级指令至i个待升级的邻居节点之前,第二节点先通过j个邻居节点来判断自身是否升级成功,进而只有在升级成功也即判断得到可以发送版本升级指令时才会发送该版本升级指令;避免了由于第二节点升级失败,进而导致第二节点传染其i个邻居节点执行升级后,i个邻居节点可能也会升级失败,整个网络系统出现瘫痪的问题;保证了节点升级的可靠性和稳定性。
[0150]本实施例通过使用已升级的节点来逐步升级其对应的邻居节点,使得在某个节点因为自身故障而无法触发邻居节点进行升级,或者因为自身升级失败而导致邻居节点拒绝升级时,该节点的邻居节点最终也会被该邻居节点的其它邻居节点触发升级,也即N个节点中最终只会出现少量的节点未升级成功,而其它节点均能正常升级;避免了现有技术中在中心节点出现故障时,其它所有下属均不能升级,整个网络系统瘫痪的问题,达到了可以降低故障节点对网络系统的影响,保证了网络系统的稳定性的效果。实际实现时,为了保证各个节点均能成功升级,设计人员可以设置一个用于监控网络系统中的各个节点的监控设备,在监控设备监控到某个节点升级失败之后,监控设备可以通知维护人员对该节点进行故障排查,进而最终使得该节点成功升级,本实施例对此并不做限定。
[0151]基于上述实施例,需要补充说明的第一点时,请参考图3B,在步骤305之前,第一节点还可以执行如下步骤:
[0152]步骤312,第一节点检测第二节点是否为可信任节点。
[0153]网络系统中的各个网络节点可以预设身份验证规则。也即当第一节点需要验证第二节点是否为可信任节点时,第一节点可以根据该预设身份验证规则进行验证。
[0154]比如,预设规则为节点按照预设加密算法对预设字段进行加密,其它节点按照预设解密算法进行解密;则当其它节点能够正确解密时,其它节点即可确定对该节点为可信任节点;反之,则确定该节点不是可信任节点。可选的,为了提高验证的准确率,各个网络节点可以约定只有在解密得到的内容中包含预设内容时才能确定对方为可信任节点,本实施例对此并不做限定。
[0155]当然,第一节点还可以通过其他方式来对第二节点进行验证,本实施例对此并不做限定。
[0156]步骤305,若是可信任节点,则第一节点执行根据邻居确认请求检测第二节点是否升级成功的操作。
[0157]而若不是可信任节点,则第一节点将第二节点标识为虚假节点,虚假节点被禁止发送请求。
[0158]当第一节点的判定结果为第二节点不是可信任的节点时,说明该第二节点可能是不法分子设置的虚假节点。此时,为了保证节点升级的安全,并且防止该虚假节点重复发送邻居确认请求至各个邻居节点时导致浪费各个邻居节点的处理资源的问题,第一节点可以将该第二节点标识为虚假节点。可选的,由于一段时间之后,该第二节点可能会被设计人员正常使用,所以第一节点可以将第二节点标识为在预定时间段内是虚假节点,本实施例对此并不做限定。
[0159]通过在第二节点为可信任节点时,执行根据邻居确认请求检测第二节点是否升级成功,避免了第二节点不是可信任节点时,第一节点执行后续无效操作时需要耗用第一节点的处理资源的问题。同时,这也避免了虚假节点对网络系统带来的危害,保证了网络系统的安全。
[0160]需要补充说明的第二点是,仍然结合图3B,在步骤310之前,第一节点还可以执行如下步骤:
[0161]步骤313,第一节点检测第二节点是否为可信任节点。
[0162]本步骤与上述步骤312类似,本实施例在此不再赘述。
[0163]步骤310,若是可信任节点,则第一节点执行根据版本升级指令获取升级文件的操作。
[0164]而若不是可信任节点,则将第二节点标识为虚假节点,虚假节点被禁止发送请求。
[0165]与上述实施例类似的是,为了保证节点升级的安全,并且防止该虚假节点重复发送版本升级指令至各个邻居节点进而导致浪费各个邻居节点的处理资源的问题,第一节点可以将该第二节点标识为虚假节点。可选的,由于一段时间之后,该第二节点可能会被设计人员正常使用,所以第一节点可以将第二节点标识为在预定时间段内是虚假节点,本实施例对此并不做限定。
[0166]通过在升级之前,检测第二节点是否为可信任节点,进而只有在第二节点是可信任节点时,第一节点才会获取升级文件并根据升级文件进行升级,保证了节点升级的安全。同时,这也避免了不法分子通过虚假节点攻击网络系统,进而导致网络系统瘫痪的问题。
[0167]此外,第二节点发送的版本升级指令中不携带有升级文件,而只有在第一节点判定第二节点为可信任节点之后,第一节点再从第二节点中获取升级文件;避免了当第二节点不是可信任节点时,第二节点发送携带有升级文件的版本升级指令至第一节点之后,第一节点并不会使用该升级文件,也即第二节点耗费了一定的传输资源来传输无效信息的问题,达到了可以节省第二节点的传输资源的效果。
[0168]最后,需要说明的是,若第二节点进行邻居确认时选择的j个邻居节点与传染升级时选择的i个邻居节点是相同的节点,则为了节省第一节点的处理资源,第一节点可以只执行步骤312或者步骤313中的一个步骤,本实施例对此并不做限定。
[0169]需要补充说明的第三点是,仍然结合图3B,在步骤310之前,第一节点还可以执行如下步骤:
[0170]步骤314,第一节点检测自身是否满足升级条件。
[0171]升级条件可以包括:第一节点的剩余存储空间达到预设大小,预设大小大于或等于升级文件所对应的大小;和/或,第一节点能正常运行。当然,升级条件还可以包括条件,本实施例对此并不做限定。
[0172]步骤310,若满足升级条件,则第一节点执行根据版本升级指令获取升级文件的操作。
[0173]而若不满足升级条件,则此时流程结束。
[0174]通过在第一节点满足升级条件时,才会获取升级文件进而进行升级,避免了对第一节点升级错误的问题。达到了可以提高节点升级的可靠性和稳定性的效果。
[0175]需要补充说明的第四点是,结合图3B,在步骤303之前,第二节点还可以执行如下步骤:
[0176]步骤315,检测升级后自身是否存在异常。
[0177]在第二节点升级之后,第二节点可以检测升级后是否存在异常。可选地,本步骤可以包括:检测升级后的第二节点是否能兼容旧版本的功能;检测升级后的第二节点是否能完成正常通信,以及,检测升级后的第二节点是否能正常启动。
[0178]以第二节点检测升级后的第二节点是否能兼容旧版本的功能为例,第二节点在升级后,第二节点可以复位,并以新版本启动。此后,第二节点加载旧版本的配置文件,检测升级后的第二节点是否能兼容原有配置。
[0179]当然,本实施例只是以第二节点通过上述方法检测升级后是否存在异常为例,可选地,第二节点还可以通过其他检测方式进行检测,本实施例对此并不做限定。
[0180]步骤303,若不存在异常,则执行向j个邻居节点发送邻居确认请求的操作。
[0181]如果第二节点的检测结果为不存在异常,则第二节点可以初步判断自身升级成功。此时,为了进一步判断,第二节点可以执行向j个邻居节点发送邻居确认请求的操作。
[0182]而若第二节点的检测结果为存在异常,则此时结束。
[0183]通过在升级之后初步判断自身是否升级成功,进而只有在判断结果为升级成功时,才会想j个邻居节点发送邻居确认请求,避免了第二节点升级失败时向j个邻居节点发送邻居确认请求之后浪费邻居节点的资源的问题。
[0184]需要补充说明的第五点是,上述各个实施例中关于第一节点侧的步骤可以单独实现成为第一节点侧的节点升级方法,关于第二节点侧的步骤可以单独实现成为第二节点侧的节点升级方法。
[0185]以网络系统中节点A为已升级的节点,节点A向邻居节点B和邻居节点C发送升级确认请求和版本升级指令来举例说明,请参考图4,该节点的版本升级方法包括:
[0186]步骤401,节点A检测升级后是否存在异常。
[0187]步骤402,若节点A的检测结果为不存在异常,则节点A向j个邻居节点发送升级确认请求。
[0188]步骤403,节点B接收节点A发送的升级确认请求,检测节点A是否为可信任节点。
[0189]步骤404,若节点B检测得到节点A是可信任节点,则节点B启动功能测试检测节点A是否升级成功。
[0190]步骤405,节点B反馈检测结果至节点A。
[0191]步骤406,节点A接收检测结果,根据接收到的j个邻居节点发送的检测结果判定是否发送版本升级指令。
[0192]步骤407
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1