首页> 中国专利> 一种提升单台边缘服务器iot设备接入数的方法及系统

一种提升单台边缘服务器iot设备接入数的方法及系统

摘要

本发明公开了一种提升单台边缘服务器iot设备接入数的方法,包括以下步骤:S1、预设边缘服务器注册规则,根据所述边缘服务器注册规则对边缘服务器进行识别,如果识别成功,则进行边缘服务器首次注册,如果识别失败,则进入步骤S2;S2、判断网络状况,如果网络状况稳定,则对边缘服务器进行再次注册,如果网络状态不稳定,则等待网络状态稳定后对边缘服务器进行再次注册;S3、通过UDP进行心跳保活;S4、反向触发iot设备并连接iot设备到插件中心以获取插件中心数据。本发明还公开了一种提升单台边缘服务器iot设备接入数的系统,包括边缘服务器单元、网络单元、心跳保活单元和数据获取单元。

著录项

  • 公开/公告号CN112437144A

    专利类型发明专利

  • 公开/公告日2021-03-02

    原文格式PDF

  • 申请/专利权人 成都渊数科技有限责任公司;

    申请/专利号CN202011281228.4

  • 发明设计人 张立然;卓建辉;赖锐斌;

    申请日2020-11-16

  • 分类号H04L29/08(20060101);H04L29/06(20060101);

  • 代理机构51242 成都环泰专利代理事务所(特殊普通合伙);

  • 代理人李斌;李辉

  • 地址 610000 四川省成都市中国(四川)自由贸易试验区成都高新区天府三街219号2栋腾讯大厦B座8、9、10、14、17楼

  • 入库时间 2023-06-19 10:03:37

说明书

技术领域

本发明涉及iot设备领域,特别是涉及一种提升单台边缘服务器iot设备接入数的方法及系统。

背景技术

远程控制时效要求较低的iot设备和实时接收iot设备推送的消息,如果建立一条连接和边缘服务器保持通信。如果单纯使用tcp保持连接,会存在以下问题:1、iot设备功耗高,维持tcp长连接会消耗大量内置电池电量;2、一台设备一个tcp连接和服务器保持通信,单台边缘服务器的带机数的方法很少。

发明内容

针对上述问题,本发明提供一种提升单台边缘服务器iot设备接入数的方法及系统,可以优化iot设备和服务器保持连接的功耗,也可以提升单台边缘服务器带机数。

为解决上述技术问题,本发明提供了一种提升单台边缘服务器iot设备接入数的方法,包括以下步骤:

S1、预设边缘服务器注册规则,根据所述边缘服务器注册规则对边缘服务器进行识别,如果识别成功,则进行边缘服务器首次注册,如果识别失败,则进入步骤S2;

S2、判断网络状况,如果网络状况稳定,则对边缘服务器进行再次注册,如果网络状态不稳定,则等待网络状态稳定后对边缘服务器进行再次注册;

S3、通过UDP进行心跳保活;

S4、反向触发iot设备并连接iot设备到插件中心以获取插件中心数据。

上述技术方案的工作原理如下:通过识别规则,对边缘服务器进行首次注册,当首次注册失败后,iot设备向边缘服务器进行再次的安全验证并注册,只有通过安全验证后,再次注册才能成功,通过UDP进行心跳保活,在心跳保活过程中使用了TCP,但TCP仅用于有消息时建立和传输数据,数据传输完成后即关闭,因此保证了设备的低功耗,UDP为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法,用于接收和发送心跳保活的消息,最后数据储存在插件中心中,反向触发iot设备连接到插件中心来获取数据,本技术方案提升了接入数量的同时还兼顾了设备的低功耗。

在进一步的技术方案中,步骤S1中边缘注册规则包括:

判断边缘服务器是否进行响应或者返回至预设值,如果是则循环选择DNS解析结果中的所有服务器IP地址并进行重试,重试间隔为60秒;

如果重试5次都失败,终端应随机静默10到60个重试间隔后重新解析边缘服务器的DNS并重复上述注册及重试过程;

如果连续3次解析DNS周期中的注册及重试均失败,IOT设备应重新向分发边缘服务器进行注册。

在本技术方案中,iot设备向边缘服务器首次注册时,预设返回字节,如0、-1和challengecode,当返回预设的0时,边缘服务器同时返回chanllengecode,用于下一步去验证iot设备,如果没有收到边缘服务器的响应或者边缘服务器返回预设的-1时,应该循环选择DNS解析结果中的所有服务器IP地址进行重试,重试间隔为60秒,如果重试5次都失败,那么终端应该随机静默10到60个重试间隔后重新解析边缘服务器的DNS并且重复上述注册及重试的过程,如果连续三次解析DNS周期中的注册及重试全部失败了,iot设备应该重新向分发边缘服务器进行注册。

在进一步的技术方案中,步骤S2中判断网络状况包括:

判断边缘服务器是否响应,预设响应时间为10秒,终端应用相同服务器端口重试,预设第一次重试间隔为60秒,并重发三次,如果三次重试还未收到回复,则判断网络状态不好。

在本技术方案中,当步骤S1成功时,得到ChallengeCode,将它与设备ID拼接后,计算ID值,边缘服务器通过步骤S1中的地址在数据库中找到该设备的设备ID,用相同的方法计算ID值后进行比对,如果相同,则认证成功,然后判断ID值是否与边缘服务器先前保存该iot设备的ID相同,如果相同则返回预设值,将预设值设定为2,同时携带心跳服务器地址参数,如果为空,则心跳服务器同注册服务器地址参数一样,当边缘服务器发现iot设备的ID不存在或者不相同时,边缘服务器保存新的ID,并返回预设值,将预设值设为3,同时携带心跳服务器地址参数,同样的,如果为空,则心跳服务器同注册服务器地址参数一样,不匹配返回预设值,将预设值设定为-2,返回-2后,静默150分钟,再重新进行iot设备向边缘服务器注册,预设相应时间为10秒,如果边缘服务器在这10秒没有响应,终端应用相同服务器端口重试,第一次,重试间隔为60秒,重发3次;如果3次重试仍然没有收到回复。则重新进行iot设备向边缘服务器注册。

在进一步的技术方案中,步骤S2中等待网络状态稳定后对边缘服务器进行再次注册包括:

预设更新参数字段并上报为边缘服务器,边缘服务器对所述参数字段进行兼容性处理;

如果边缘服务器没有收到所述参数字段,边缘服务器进行刷新,并判断网络状态仍未稳定;

如果边缘服务器收到所述参数字段,边缘服务器不用刷新,且判断网络状态稳定并对边缘服务器进行再次注册。

在本技术方案中,预设返回信息字段,如果返回信息中有预设字段,则需要用新心跳间隔进行工作;iot设备应更新该参数,并上报给边缘服务器;边缘服务器应对其进行兼容性处理,如果边缘服务器收到这个字段,边缘服务器应刷新该值,如果没有收到,边缘服务器不用刷新。

在进一步的技术方案中,步骤S3中通过UDP进行心跳保活包括:

预设心跳保活时间间隔,所述心跳保活时间间隔为60秒,心跳保活每隔60秒报告一次;

预设重试时间间隔,所述重试时间间隔为30秒;

如果边缘服务器未收到心跳保活报告,则开始重试,如果经过三次重试时间间隔仍未收到回复,则返回iot设备向边缘服务器进行注册。

在本技术方案中,预设首次心跳标志FLAG,当iot设备注册完成后,第一次向边缘服务器发送心跳消息时,预设该标志为1;如果边缘服务器返回消息中的结果为预设值0时,iot设备以后向边缘服务器发送心跳消息中,该标志为月设置0;当FLAG为1时,消息中应携带预设的IPAddr字段;当FLAG为0时,消息中不应携带IPAddr字段;每60秒报告一次:如果30秒内没有收到回复,即开始重试,重试间隔为30秒;重试间隔为30秒是因为30秒是重试间隔的一半,减少重试时间的原因是可能一次偶然的掉包造成中间设备的老化;如果3次重试仍然没有收到回复,则回到iot设备向边缘服务器注册,收到回复时,保持正边缘服务器,若返回预设值-3,需要iot设备重新向边缘服务器注册,即回到iot设备向边缘服务器注册,如果返回信息中有预设的Interval,则需要用新心跳间隔进行工作。

在进一步的技术方案中,步骤S4中反向触发iot设备并连接iot设备到插件中心以获取插件中心数据包括:

如果iot设备正在处理反向触发连接流程,在收到反向触发连接后,应该等待处理完成反向触发连接流程后再进行反向触发连接;

如果iot设备已经连接到插件中心,收到了反向触发连接,当消息中的域名和端口号和iot设备保存的相同时,才进行忽略处理,否则就需要主动断开当前和插件中心的连接,重新进行新的插件中心的注册和连接。

在本技术方案中,反向触发iot设备,iot设备用上一次向边缘服务器发送的DevRND值拼接设备ID,并计算出一个MD5值,与请求中的Key进行比较,iot设备应遵循以下策略:iot设备收到请求后,应首先判断key是否与前一次相同,如果相同则是边缘服务器重传报文,回复当前的DevRND和结果码;否则,用当前DevRND值拼接设备ID,并计算出MD5值,与请求中的Key进行比较,如果相同,将iot设备连接指定的插件中心服务器,协议见插件中心协议。并且iot设备回应结果为预设值0和下一次使用的DevRND。边缘服务器接收到新的DevRND后,返回1。若没有收到结果,iot设备应重试三次,超时间为5秒。如果仍然失败,回到iot设备向边缘服务器注册;如果不相同,iot设备应返回预设值-1,应重新开始iot设备向边缘服务器注册;如果边缘服务器回应-1,iot设备应重新开始iot设备向边缘服务器注册;如果iot设备正在处理反向触发连接流程,iot设备再次收到,边缘服务器的反向触发连接,应该为边缘服务器的消息重传,应等到处理完成反向触发流程后,再按照上述策略处理该消息。如果iot设备已经连接到插件中心,收到了反向触发连接,当消息中的域名和端口号和IOT设备保存的相同时,才进行忽略处理,否则就需要主动断开当前和插件中心的连接,重新进行新的插件中心的注册、连接。当边缘服务器在处理反向触发连接流程过程中再次收到反向触发要求时,边缘服务器应过滤掉本次反向触发请求。该消息建议边缘服务器和iot设备交互时,采用重发机制,使得边缘服务器重发反向触发消息到iot设备,iot设备如果收到多个反向触发消息,且Key相同,应依次返给边缘服务器结果消息,同时返给同一个"DevRND"边缘服务器如果收到多个结果值后,且DevRND为同一个时,应依次反馈给iot设备,iot设备收到其中一个后,DevRND生效。

本发明还提供了一种提升单台边缘服务器iot设备接入数的系统,包括:边缘服务器单元、网络单元、心跳保活单元和数据获取单元,其中:

边缘服务器单元,用于预设边缘服务器注册规则,根据所述边缘服务器注册规则对边缘服务器进行识别,如果识别成功,则进行边缘服务器首次注册,如果识别失败,则进入网络单元;

网络单元,用于判断网络状况,如果网络状况稳定,则对边缘服务器进行再次注册,如果网络状态不稳定,则等待网络状态稳定后对边缘服务器进行再次注册;

心跳保活单元,用于通过UDP进行心跳保活;

数据获取单元,用于反向触发iot设备并连接iot设备到插件中心以获取插件中心数据。

本发明的有益效果是:

1、优化iot设备和服务器保持连接的功耗;

2、提升单台边缘服务器带机数。

附图说明

图1是本发明实施例所述一种提升单台边缘服务器iot设备接入数的方法的流程图;

图2是本发明实施例所述一种提升单台边缘服务器iot设备接入数的系统的结构示意图。

附图标记说明:

10、边缘服务器单元;11、网络单元;12、心跳保活单元;13、数据获取单元。

具体实施方式

下面结合附图对本发明的实施例作进一步说明。

实施例:

如图1所示,一种提升单台边缘服务器iot设备接入数的方法,包括以下步骤:

S1、预设边缘服务器注册规则,根据所述边缘服务器注册规则对边缘服务器进行识别,如果识别成功,则进行边缘服务器首次注册,如果识别失败,则进入步骤S2;

S2、判断网络状况,如果网络状况稳定,则对边缘服务器进行再次注册,如果网络状态不稳定,则等待网络状态稳定后对边缘服务器进行再次注册;

S3、通过UDP进行心跳保活;

S4、反向触发iot设备并连接iot设备到插件中心以获取插件中心数据。

上述实施例的工作原理如下:通过识别规则,对边缘服务器进行首次注册,当首次注册失败后,iot设备向边缘服务器进行再次的安全验证并注册,只有通过安全验证后,再次注册才能成功,通过UDP进行心跳保活,在心跳保活过程中使用了TCP,但TCP仅用于有消息时建立和传输数据,数据传输完成后即关闭,因此保证了设备的低功耗,UDP为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法,用于接收和发送心跳保活的消息,最后数据储存在插件中心中,反向触发iot设备连接到插件中心来获取数据,本技术方案提升了接入数量的同时还兼顾了设备的低功耗。

在另外一个实施例中,步骤S1中边缘注册规则包括:

判断边缘服务器是否进行响应或者返回至预设值,如果是则循环选择DNS解析结果中的所有服务器IP地址并进行重试,重试间隔为60秒;

如果重试5次都失败,终端应随机静默10到60个重试间隔后重新解析边缘服务器的DNS并重复上述注册及重试过程;

如果连续3次解析DNS周期中的注册及重试均失败,IOT设备应重新向分发边缘服务器进行注册。

在本实施例中,iot设备向边缘服务器首次注册时,预设返回字节,如0、-1和challengecode,当返回预设的0时,边缘服务器同时返回chanllengecode,用于下一步去验证iot设备,如果没有收到边缘服务器的响应或者边缘服务器返回预设的-1时,应该循环选择DNS解析结果中的所有服务器IP地址进行重试,重试间隔为60秒,如果重试5次都失败,那么终端应该随机静默10到60个重试间隔后重新解析边缘服务器的DNS并且重复上述注册及重试的过程,如果连续三次解析DNS周期中的注册及重试全部失败了,iot设备应该重新向分发边缘服务器进行注册。

在另外一个实施例中,步骤S2中判断网络状况包括:

判断边缘服务器是否响应,预设响应时间为10秒,终端应用相同服务器端口重试,预设第一次重试间隔为60秒,并重发三次,如果三次重试还未收到回复,则判断网络状态不好。

在本实施例中,当步骤S1成功时,得到ChallengeCode,将它与设备ID拼接后,计算ID值,边缘服务器通过步骤S1中的地址在数据库中找到该设备的设备ID,用相同的方法计算ID值后进行比对,如果相同,则认证成功,然后判断ID值是否与边缘服务器先前保存该iot设备的ID相同,如果相同则返回预设值,将预设值设定为2,同时携带心跳服务器地址参数,如果为空,则心跳服务器同注册服务器地址参数一样,当边缘服务器发现iot设备的ID不存在或者不相同时,边缘服务器保存新的ID,并返回预设值,将预设值设为3,同时携带心跳服务器地址参数,同样的,如果为空,则心跳服务器同注册服务器地址参数一样,不匹配返回预设值,将预设值设定为-2,返回-2后,静默150分钟,再重新进行iot设备向边缘服务器注册,预设相应时间为10秒,如果边缘服务器在这10秒没有响应,终端应用相同服务器端口重试,第一次,重试间隔为60秒,重发3次;如果3次重试仍然没有收到回复。则重新进行iot设备向边缘服务器注册。

在另外一个实施例中,步骤S2中等待网络状态稳定后对边缘服务器进行再次注册包括:

预设更新参数字段并上报为边缘服务器,边缘服务器对所述参数字段进行兼容性处理;

如果边缘服务器没有收到所述参数字段,边缘服务器进行刷新,并判断网络状态仍未稳定;

如果边缘服务器收到所述参数字段,边缘服务器不用刷新,且判断网络状态稳定并对边缘服务器进行再次注册。

在本实施例中,预设返回信息字段,如果返回信息中有预设字段,则需要用新心跳间隔进行工作;iot设备应更新该参数,并上报给边缘服务器;边缘服务器应对其进行兼容性处理,如果边缘服务器收到这个字段,边缘服务器应刷新该值,如果没有收到,边缘服务器不用刷新。

在另外一个实施例中,步骤S3中通过UDP进行心跳保活包括:

预设心跳保活时间间隔,所述心跳保活时间间隔为60秒,心跳保活每隔60秒报告一次;

预设重试时间间隔,所述重试时间间隔为30秒;

如果边缘服务器未收到心跳保活报告,则开始重试,如果经过三次重试时间间隔仍未收到回复,则返回iot设备向边缘服务器进行注册。

在本实施例中,预设首次心跳标志FLAG,当iot设备注册完成后,第一次向边缘服务器发送心跳消息时,预设该标志为1;如果边缘服务器返回消息中的结果为预设值0时,iot设备以后向边缘服务器发送心跳消息中,该标志为月设置0;当FLAG为1时,消息中应携带预设的IPAddr字段;当FLAG为0时,消息中不应携带IPAddr字段;每60秒报告一次:如果30秒内没有收到回复,即开始重试,重试间隔为30秒;重试间隔为30秒是因为30秒是重试间隔的一半,减少重试时间的原因是可能一次偶然的掉包造成中间设备的老化;如果3次重试仍然没有收到回复,则回到iot设备向边缘服务器注册,收到回复时,保持正边缘服务器,若返回预设值-3,需要iot设备重新向边缘服务器注册,即回到iot设备向边缘服务器注册,如果返回信息中有预设的Interval,则需要用新心跳间隔进行工作。

本实施例中的UDP用于传输心跳保活信息,确认设备是否在心跳保活,如果服务器没有收到UDP,会标识没有数据传输给iot设备,进行继续休眠,如果服务器收到UDP,那么TCP与服务器连接起来。

在另外一个实施例中,步骤S4中反向触发iot设备并连接iot设备到插件中心以获取插件中心数据包括:

如果iot设备正在处理反向触发连接流程,在收到反向触发连接后,应该等待处理完成反向触发连接流程后再进行反向触发连接;

如果iot设备已经连接到插件中心,收到了反向触发连接,当消息中的域名和端口号和iot设备保存的相同时,才进行忽略处理,否则就需要主动断开当前和插件中心的连接,重新进行新的插件中心的注册和连接。

在本实施例中,反向触发iot设备,iot设备用上一次向边缘服务器发送的DevRND值拼接设备ID,并计算出一个MD5值,与请求中的Key进行比较,iot设备应遵循以下策略:iot设备收到请求后,应首先判断key是否与前一次相同,如果相同则是边缘服务器重传报文,回复当前的DevRND和结果码;否则,用当前DevRND值拼接设备ID,并计算出MD5值,与请求中的Key进行比较,如果相同,将iot设备连接指定的插件中心服务器,协议见插件中心协议。并且iot设备回应结果为预设值0和下一次使用的DevRND。边缘服务器接收到新的DevRND后,返回1。若没有收到结果,iot设备应重试三次,超时间为5秒。如果仍然失败,回到iot设备向边缘服务器注册;如果不相同,iot设备应返回预设值-1,应重新开始iot设备向边缘服务器注册;如果边缘服务器回应-1,iot设备应重新开始iot设备向边缘服务器注册;如果iot设备正在处理反向触发连接流程,iot设备再次收到,边缘服务器的反向触发连接,应该为边缘服务器的消息重传,应等到处理完成反向触发流程后,再按照上述策略处理该消息。如果iot设备已经连接到插件中心,收到了反向触发连接,当消息中的域名和端口号和IOT设备保存的相同时,才进行忽略处理,否则就需要主动断开当前和插件中心的连接,重新进行新的插件中心的注册、连接。当边缘服务器在处理反向触发连接流程过程中再次收到反向触发要求时,边缘服务器应过滤掉本次反向触发请求。该消息建议边缘服务器和iot设备交互时,采用重发机制,使得边缘服务器重发反向触发消息到iot设备,iot设备如果收到多个反向触发消息,且Key相同,应依次返给边缘服务器结果消息,同时返给同一个"DevRND"边缘服务器如果收到多个结果值后,且DevRND为同一个时,应依次反馈给iot设备,iot设备收到其中一个后,DevRND生效。

在另外一个实施例中,如图2所示,本实施例公开了一种提升单台边缘服务器iot设备接入数的系统,包括:边缘服务器单元、网络单元、心跳保活单元和数据获取单元,其中:

边缘服务器单元,用于预设边缘服务器注册规则,根据所述边缘服务器注册规则对边缘服务器进行识别,如果识别成功,则进行边缘服务器首次注册,如果识别失败,则进入网络单元;

网络单元,用于判断网络状况,如果网络状况稳定,则对边缘服务器进行再次注册,如果网络状态不稳定,则等待网络状态稳定后对边缘服务器进行再次注册;

心跳保活单元,用于通过UDP进行心跳保活;

数据获取单元,用于反向触发iot设备并连接iot设备到插件中心以获取插件中心数据。

以上实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号