一种基于负载感知的边缘网关自适应传输协议切换方法及系统

摘要: 本发明涉及物联网边缘计算技术,尤其涉及一种基于负载感知的边缘网关自适应传输协议切换方法。背景技术:1、工业物联网的发展过程中,边缘网关始终作为传感器数据汇聚的核...
一种基于负载感知的边缘网关自适应传输协议切换方法及系统

本发明涉及物联网边缘计算技术,尤其涉及一种基于负载感知的边缘网关自适应传输协议切换方法。

背景技术:

1、工业物联网的发展过程中,边缘网关始终作为传感器数据汇聚的核心角色。随着相关技术的发展以及传感器部署数量的增加,边缘网关的技术发展面临如下问题:

2、 (1)缺少传输协议自适应能力。现有物联网网关在部署时固定选择使用tcp或udp协议的一种作为底层数据传输协议,且缺乏对负载状态的实时量化手段,导致无法在负载变化时自主调整传输策略。当负载突变时(如多台设备同时启动),无论哪种协议,现有网关均无法根据负载状态的变化自主在tcp协议和udp协议之间切换,在保障关键数据可靠性的同时通过轻量级协议降低非关键数据的传输开销。

3、 (2)控制信道失效矛盾。当网关tcp协议因过载而吞吐量崩溃时,网关与传感器节点之间的tcp连接同样处于崩溃状态。这意味着,即使网关发送了停止使用tcp协议的指令,传感器节点也无法响应,出现“需要tcp协议正常工作才能通知对方停止使用tcp协议”的矛盾。

4、(3)临界负载突变崩溃。发明人通过系统性实验发现,tcp协议在网关负载接近临界条件时,吞吐量表现出毫无征兆的类一阶相变的性能突变,具体表现为吞吐量在极小负载增量内出现断崖式下跌。这一现象表明网关存在一个明确的处理容量上限,当负载超过该上限时,系统性能将发生不可逆的急剧恶化,因此需要在负载接近该上限前完成传输协议的预防性切换。

5、 (4)缺乏异常检测手段。部署后的网关随着运行时间的推移,硬件老化、内存碎片化累积等因素导致网关实际处理能力呈现渐进式衰减趋势,但现有网关无法感知上述趋势。

6、为解决网关缺少协议自适应能力的问题,中国专利cn111585958b公开了一种物联网平台异构设备自适应接入方法。该专利基于tcp和udp协议设计了ipaas的物联网异构协议平台侧自适应解析和数据格式统一的方法,不仅提高了程序开发效率,还满足应用开发稳定的需求。在负载均衡方面,中国专利cn114710499b公开了一种基于算力路由的边缘计算网关负载均衡方法。该方法通过算力路由对边缘计算网关的负载情况进行优先级排序,同时根据数据类型确定负载均衡策略。该专利实现了网关算力的合理调度,节省了大量的算力资源。

7、以上两种专利为解决当前边缘网关中存在的问题提供了解决方案,但均未实现在资源受限的微控制器上基于边缘网关实时负载对传输层协议进行动态切换的功能。

技术实现思路

1、本发明的目的是针对背景技术中存在的问题,提出一种基于负载感知的边缘网关自适应传输协议切换方法。该发明主要解决现有技术中微控制器网关运行时异常检测手段缺失、传输协议无法自适应切换以及存在控制信道失效矛盾的问题。本发明实现了网关负载状态的实时量化感知、基于负载趋势预测的传输协议切换以及边缘端异常检测处理等功能。

2、本发明的技术方案:一种基于负载感知的边缘网关自适应传输协议切换方法,包括网关设备和多个传感器节点。所述网关设备内部包括数据接入层、负载感知与决策层和监控与持久化层。所述传感器节点为与网关设备通过wifi通信的外部设备,其固件中包括了传感器数据采集模块、传输协议切换模块、频率调节模块以及自主容灾降级模块。

3、所述数据接入层运行在双核微控制器的第一核心(core 1)上,负责数据包的接收、解析与统计。该数据接入层不运行任何与值计算相关的运算程序、趋势预测或异常检测任务,也不执行显示驱动任务,以此确保第一核心的cpu利用率和响应延迟不受闭环计算的影响。此外,数据接入层包括tcp协议服务器模块、udp协议服务器模块、pps(packetsper second,每秒数据包数)计算模块以及系统指标采集模块。

4、所述闭环计算是指以值为核心的“测量-计算-决策-执行”控制回路:数据接入层测量当前系统pps,负载感知与决策层根据当前pps计算值并做出传输协议切换决策。待传输协议切换指令执行后,传感器节点的数据发送行为发生改变,进而影响下一个测量窗口的pps,最终形成闭合的反馈控制回路。

5、所述tcp协议服务器模块负责提供可靠的数据传输通道。网关通过tcp server模式监听tcp端口,建立并维护传感器与网关之间的长连接。

6、进一步的,所述tcp协议服务器模块运行在第一核心上,基于lwip协议栈实现,支持多个传感器节点的并发tcp连接,且每个连接独立维护各自的接收缓冲区。该tcp协议服务器模块同时承担数据接收和控制指令下发两项功能。当负载感知与决策层触发传输协议切换动作时,将通过现有tcp协议通道向目标传感器节点下发传输协议切换指令。这一设计提高了控制指令下发的稳健性:即使数据传输通道切换为udp协议通道,传输协议切换指令仍通过tcp协议控制通道实现可靠传输。

7、所述udp协议服务器模块负责提供轻量化的数据传输通道。网关通过udp server模式监听udp端口,并接收传感器发送的udp数据。

8、进一步的,udp协议服务器模块运行在第一核心上,udp协议服务器模块与tcp协议服务器模块并行运行,构成双协议并行数据接收架构。由于udp协议不需要建立、维护连接,且每个数据包独立处理。因此,使用udp协议传输数据时,不会占用网关的tcp协议连接表资源,也不会触发tcp协议的拥塞控制和重传机制。经实验验证,udp协议在任何负载条件下均存在非零丢包的情况,且丢包率随负载增大渐进上升。为此,系统为保证关键数据的可靠传输,在混合模式以及保护模式下,非关键传感器节点数据将通过udp协议进行传输。

9、所述网关设备基于值在三种工作模式之间自动切换:tcp全量模式(所有数据使用tcp协议传输)、混合模式(非关键数据传输协议切换为udp协议,关键数据传输仍采用tcp协议)和保护模式(在混合模式基础上进一步降低传感器采样频率)。

10、进一步地,保护模式下的安全目标频率不采用固定值,而是由网关根据当前网络拓扑动态计算。安全目标频率的计算公式为,其中为滞回区间的下行安全值,为经tinyml容量退化检测模块校准后的当前有效处理容量,为当前在线连接数,为每连接的数据通道数。该公式保证降频后值落入安全区间,且当传感器节点数量变化或发生衰减时,安全目标频率由系统自行调整。

11、所述关键数据与非关键数据的划分在系统部署时由用户预先配置。每个传感器节点在注册连接时被标记为关键节点或非关键节点。当系统进入混合模式时,仅非关键节点接收传输协议切换指令,关键节点的tcp连接始终保持不变。

12、进一步地,当tcp协议过载导致关键数据的tcp通道也出现发送失败时,关键传感器节点通过自主容灾降级模块进入双发冗余模式:将每个数据包同时通过tcp协议和udp协议两个通道发送,由网关按序列号去重,以确保至少一个通道的数据能够到达网关。

13、进一步地,当非关键节点接收到传输协议回切指令时,尝试重新建立tcp连接。若连接建立失败,该节点按照预设的退避策略进行重试,重试期间继续使用udp协议发送数据。关键节点的tcp连接在整个过程中始终保持连接,不受传输协议切换的影响。

14、进一步地,上述传输协议切换的设计意图在于:当网关负载接近tcp协议的负载临界点时,若不采取措施,tcp协议的吞吐量将发生突变崩溃,导致所有数据通道同时出现大面积丢包的现象。通过主动将非关键数据的传输协议从tcp协议切换为udp协议,减少tcp协议连接表的资源占用的同时,降低协议栈处理负担,使值回落至安全区间,从而保护关键数据的tcp协议通道不受突变崩溃的影响。非关键数据在udp协议通道上虽然存在少量丢包,但该丢包是渐进的、可控的,远优于tcp协议相变导致的全局性吞吐量崩溃。

15、所述pps计算模块负责对tcp协议服务器模块和udp协议服务器模块各自接收到的数据包进行独立计数,记录每个测量窗口内两个通道的pps总数以及丢包总数,并按丢包数与总数据包数之比计算丢包率。

16、进一步地,pps计算模块在每个测量窗口内,对通过tcp协议和udp协议接收到的数据包分别独立计数,并对两个计数值求和得到该窗口时间内的总pps。需要说明的是,有效数据包是指通过格式校验(包含完整的节点标识、任务标识、时间戳和传感器读数字段)的数据包,格式校验失败的数据包计入丢包统计。

17、所述系统指标采集模块负责将第一核心运行时的系统指标进行采集,并打包写入共享内存结构体,以供第零核心(core 0)异步读取系统指标数据。

18、进一步地,系统指标采集模块以固定窗口时间对当前窗口时间内的pps、cpu利用率、剩余堆内存(minfreeheap,即系统运行以来堆内存空闲区域的最小值,反映内存消耗的峰值水平)、最大可分配连续内存块(maxallocblock,即当前堆内存中最大的一块连续可用空间,反映内存碎片化程度)以及丢包数等数据写入一个共享内存结构体。该共享内存结构体位于双核共享的内存区域,在第零核心的闭环任务执行期间,将周期性读取上述系统指标依次进行值计算、滑动窗口滤波、趋势预测和工作模式切换决策。

19、进一步地,上述系统信息读写过程采用完整性保护机制以保证两个核心在同一测量窗口内并发访问的系统信息的一致性。这种异步通信机制使得第一核心不需要等到第零核心的计算完成,第零核心也不需要中断第一核心的数据包接收流程,从根本上消除了监控行为对第一核心数据接收性能的干扰,是本发明中双核架构芯片的核心工作机制。

20、进一步地,系统指标采集模块是上行数据链路的终点:传感器节点发送的数据包经tcp协议服务器模块或udp协议服务器模块接收后,由pps计算模块统计,最终通过系统指标采集模块汇总写入共享内存。第零核心的值计算模块从共享内存中读取数据,完成从数据接收到负载计算的完整传递。

21、所述负载感知与决策层运行在第零核心上,是整个网关系统的决策中心。该负载感知与决策层从共享内存结构体中读取数据接入层的运行指标数据,并计算负载强度指标。进一步根据值预测负载趋势,并自动执行传输协议切换决策。负载感知与决策层包括值计算模块、滑动窗口滤波模块、趋势预测模块、模式状态机模块、tinyml容量退化检测模块和指令下发模块。

22、所述值计算模块负责计算无量纲负载强度指标。其中,为传感器节点每秒发送的数据包总数,为网关处理容量上限。

23、进一步地,通过饱和标定实验获得。

24、所述滑动窗口滤波模块负责对值进行平滑处理,通过消除瞬时抖动的方式减少模式切换决策误触发。

25、进一步地,为平衡滤波效果和响应速度,滑动窗口滤波模块取连续多个测量窗口的均值作为当前有效值。

26、所述趋势预测模块基于历史值序列预测未来30秒的值变化趋势,实现预测性传输协议切换。

27、进一步地,趋势预测模块维护一个预设长度的历史值环形缓冲区。并且以连续多个数据点为基础,通过计算线性斜率来外推未来30秒的预测值。当预测值超过临界阈值时,网关提前30秒完成传输协议切换,实现数据传输过程的预测性保护。这样设计的原因在于:tcp的相变行为是突发的,只有提前预判才能有效避免吞吐量崩溃。

28、所述模式状态机模块以平滑处理后的值和预测值为基准,在三种工作模式之间自动切换,并通过滞回区间防止乒乓效应。

29、进一步地,所述滞回区间是指模式升级的触发阈值高于模式降级的回切阈值,两个阈值之间形成一段缓冲区域。具体地,tcp全量模式升级至混合模式的触发阈值高于混合模式回切至tcp全量模式的阈值,两者之间的差值即为滞回区间宽度;混合模式升级至保护模式的触发阈值高于保护模式回切至混合模式的阈值。回切条件除值低于下行阈值外,还要求值变化斜率不大于零,即负载确实处于下降趋势而非短暂波动。这种设计使得只有当值明确越过滞回区间后,系统才执行工作模式切换,保证了工作模式的稳定性。具体阈值设定见具体实施方式。

30、进一步地,为增强抗噪声鲁棒性,模式升级需连续多个滤波窗口均超过上行阈值才执行切换,单个窗口的值毛刺不触发模式变更。该连续确认机制与滑动窗口滤波、滞回区间、斜率条件共同构成四层抗噪声防线:第一层为滑动窗口均值滤波消除瞬时抖动,第二层为连续确认消除间歇性毛刺,第三层为滞回区间消除阈值附近的反复跳变,第四层为斜率条件确保回切时负载确实处于下降趋势。

31、所述tinyml容量退化检测模块作为值模型的在线自校准机制,负责检测网关处理容量的隐性退化趋势。

32、该tinyml容量退化检测模块检测到退化时,系统将值计算中使用的值乘以衰减系数向下修正。这一设计方法使得传输协议在实际负载更低时切换,避免因退化导致的保护滞后。

33、进一步地,修正后的值回传给值计算模块并更新值计算公式分母,使后续所有值计算均反映网关当前的真实处理能力,从而形成tinyml检测与值模型之间的内部校准回路。

34、所述指令下发模块负责将模式状态机模块的决策结果转化为具体的控制指令,并通过数据接入层的tcp协议服务器模块下发至目标传感器节点。

35、进一步地,指令下发模块根据模式状态机模块的输出生成四类指令。所有指令均通过数据接入层的tcp协议服务器模块,经已建立的tcp长连接发送至目标传感器节点,保证指令传输的可靠性。传感器节点根据指令内容改变自身的数据传输协议或采样频率,进而影响下一个测量窗口的pps统计结果,形成完整的值闭环。

36、进一步地,指令下发模块还负责记录每次指令的发送时间、目标节点和执行结果,供监控与持久化层保存。

37、所述监控与持久化层运行在第零核心上,负责将网关设备的运行状态以多种形式呈现给用户,并将过程数据持久化存储以支持历史趋势分析。该层包括三个模块:本地显示模块、数据持久化模块以及远程监控模块。

38、所述本地显示模块,包括oled显示子模块和led状态指示子模块,主要用于在现场直接呈现网关运行状态。

39、所述oled显示子模块,通过oled显示屏实时显示当前值、工作模式、在线节点数、pps和丢包率等关键指标。

40、所述led状态指示子模块通过led灯珠条的颜色和动画效果直观地指示网关当前的工作模式和负载状态。

41、进一步地,led灯珠条的颜色编码与值区间对应:绿色表示tcp全量模式(<0.70),黄色表示混合模式(0.65<<0.90),红色表示保护模式(>0.90)。当发生模式切换时,led灯珠颜色根据当前值在颜色区间内渐变显示,便于现场人员直观地观察到网关运行状态。

42、所述数据持久化模块,包括littlefs数据持久化子模块和时间同步子模块,主要用于将系统运行指标持久化存储到微控制器的片内flash中,以支持系统断电重启后的数据恢复。

43、进一步地,littlefs数据持久化子模块支持通过http api拉取多日历史数据来展示数据变化趋势。此外,当存储空间不足时,该littlefs数据持久化子模块自动删除存储时间最久的记录以维持数据的循环存储。

44、进一步地,littlefs数据持久化子模块每隔预设时间间隔聚合一条包含时间戳、值、pps、cpu利用率、堆内存、丢包率和当前工作模式的记录。

45、进一步的,微控制器的flash容量支持存储系统持续运行7天产生的数据。

46、所述时间同步子模块通过浏览器websocket消息实现时间校准,用于解决微控制器没有实时时钟的问题。

47、进一步地,当浏览器通过websocket连接到网关时,将自动发送当前unix时间戳。网关固件通过计算浏览器时间与本地millis()的偏移量,为后续所有数据记录提供校准后的绝对时间戳。这一设计使得历史数据与外部事件时间线对齐。

48、所述远程监控模块,包括http服务器子模块、websocket服务器子模块、captiveportal子模块和web仪表盘子模块,主要用于通过浏览器远程查看实时状态和历史趋势。

49、所述http服务器子模块集成在网关固件中,用于托管监控仪表盘的html页面和历史数据api。

50、进一步地,监控仪表盘的html、css、javascript文件存储在微控制器的flash中。

51、进一步地,http服务器响应浏览器的页面请求和数据接口请求。

52、进一步地,数据接口以 json 格式返回实时状态数据与历史数据。

53、所述websocket服务器子模块负责主动向已连接的浏览器实时推送系统运行状态。

54、进一步地,websocket服务器子模块与http服务器子模块共享同一个端口。当浏览器建立websocket连接且网关完成值计算后,自动将最新的值、pps、工作模式、cpu利用率、剩余堆内存等指标以json格式发送至浏览器。

55、所述captive portal子模块通过dns重定向方式自动弹出监控页面。

56、进一步地,当终端设备(手机、平板、笔记本)连接网关的softap wifi网络后,网关内置的dns服务器将所有域名解析请求重定向至网关本机ip。终端设备的操作系统检测到网络需要登录时,将自动弹出浏览器窗口加载监控仪表盘页面,用户无需手动输入任何地址。此外,网关还支持局域网域名解析服务,用户可通过自定义域名方式直接访问监控页面,无需记忆网关的ip地址。

57、所述web仪表盘子模块是用户与系统交互的主要界面,提供实时数据监控和历史趋势展示两个视图。

58、进一步地,实时数据监控视图以仪表盘形式显示当前值、工作模式、各节点的在线状态以及pps、cpu利用率和堆内存。历史趋势展示视图通过从littlefs数据持久化子模块中拉取历史数据,以折线图形式展示值、pps、cpu利用率等指标的多日变化趋势,便于工程师识别渐进式性能退化。

59、进一步地,仪表盘页面完全运行在浏览器端,网关仅负责提供数据接口和静态文件,不给网关带来额外的渲染负担。

60、所述传感器节点为与网关设备通过wifi softap通信的外部设备。每个节点以微控制器为主控,通过连接不同类型的传感器实现外部环境信息采集。传感器节点的固件中包含传感器数据采集模块、传输协议切换模块、频率调节模块以及自主容灾降级模块。

61、所述传感器数据采集模块支持多种传感器类型的接入。该传感器数据采集模块按照预设的采样频率周期性地采集环境数据,并按照约定的数据包格式打包,通过tcp协议或udp协议发送至网关。

62、进一步地,每个数据包格式包含节点标识、任务标识、时间戳和传感器读数。

63、进一步地,各节点上电后自动扫描并连接网关的softap wifi网络,无需手动配置。

64、所述传输协议切换模块负责接收网关下发的传输协议切换指令,改变节点的数据传输协议。

65、进一步地,传输协议切换模块在运行时持续监听网关通过现有tcp连接下发的控制指令,且保证传输协议切换过程对应用层透明。当接收到传输协议切换指令时,传感器节点将后续数据包的传输协议从tcp协议切换为udp协议,关闭tcp协议连接并创建udp协议套接字;当接收到传输协议回切指令时,节点重新建立与网关的tcp连接并将数据传输协议切换回tcp协议。

66、所述频率调节模块负责接收网关下发的采样频率调整指令。

67、进一步地,当网关进入保护模式时,频率调节模块接收降频指令,并将传感器采样频率从当前值降至预设安全阈值,从而直接减少每秒发送的数据包数量。当网关负载恢复到安全水平后,节点接收频率恢复指令,将采样频率恢复至原始配置值。

68、所述自主容灾降级模块,用于解决tcp协议控制信道在网关过载时失效的问题。该模块不依赖网关下发的传输协议切换指令,而是由传感器节点自身监测tcp协议通道发送健康状态,在检测到tcp协议通道失效时自主触发传输协议切换。

69、进一步地,自主容灾降级模块的工作逻辑如下:传感器节点维护一个tcp协议发送连续失败计数器,每次tcp协议发送操作成功时计数器归零,失败时递增。当计数器达到预设阈值时,节点判定tcp协议通道已失效并自主触发传输协议切换,无需等待网关指令。传输协议切换策略根据节点角色分为两种:非关键节点将数据发送协议从tcp协议全部切换为udp协议;关键节点进入双发冗余模式。

70、进一步地,传输协议切换后传感器节点每隔预设的时间间隔尝试发送一个tcp协议探测包。若探测成功,说明网关已恢复正常处理能力,节点自动回切至正常发送模式。若网关恢复后主动下发传输协议回切指令,节点收到后立即退出自主传输协议切换模式。

71、所述双发冗余模式是指标记为关键角色的传感器节点在自主容灾触发后,将每个数据包同时通过tcp协议和udp协议两个通道发送。

72、进一步地,网关端的tcp协议服务器模块和udp协议服务器模块同时接收数据,对收到的数据包按包内序列号进行去重:若某个序列号的数据包已通过其中一个通道接收,则丢弃另一个通道收到的同序列号重复包。该机制保证关键数据在网关完全过载的极端条件下仍能维持交付,同时不会因双通道接收导致数据重复。

73、进一步地,数据包丢失需要tcp协议和udp协议两个通道同时丢失方才发生。由于两个通道的丢包原因相互独立(tcp协议因拥塞控制失效而丢包,udp协议因缓冲区溢出而丢包),双通道同时丢失的概率远低于单通道丢失的概率,从而显著提升关键数据在极端过载条件下的交付可靠性。

74、与现有技术相比,本发明的有益效果如下:

75、(1)实现了网关系统运行时,无需人工干预的传输协议自适应切换。网关在运行过程中,根据值自动在tcp全量模式、混合模式和保护模式之间切换,且滞回机制避免了系统工作模式在阈值附近反复跳变。

76、(2)实现了关键数据的传输可靠性。混合模式下,通过将非关键数据传输协议切换为udp协议、关键数据传输协议始终保持tcp协议的方式,在降低网关负载的同时确保关键数据零丢失。

77、(3)实现了因容量退化导致的传输协议切换滞后的自动补偿。当网关处理容量因硬件老化等因素退化时,tinyml容量退化检测模块自动将值计算中的向下修正,使模式切换在实际负载更低时即被触发。

78、(4)值测量不干扰被测对象。双核隔离架构将数据包接收与值闭环计算分别运行在不同核心上,消除了监控行为对网关处理性能的干扰。

79、(5)全嵌入式部署,无需外部依赖。监控仪表盘、历史数据存储、时间同步等程序均在网关内部运行,不依赖外部服务器或云平台。

80、(6)实现了值计算、趋势预测和异常检测等计算任务对数据接收性能的零干扰。通过在双核微控制器上将数据包接收与解析任务固定在第一核心、将上述计算任务与显示驱动等任务固定在第零核心的方式,保证了计算密集型任务不占用数据接收核心的cpu时间。这一架构同时保证了第一核心采集的pps等指标真实反映网关的数据处理能力,避免了测量行为本身干扰被测对象的问题。

81、(7)解决了tcp控制信道失效问题。传感器节点的自主容灾降级模块在检测到tcp协议通道失效后自主切换协议,无需依赖可能已经失效的tcp协议控制通道,解决了“需要tcp协议正常才能通知停止tcp协议”的矛盾。

82、(8)实现了关键数据在极端过载下的高可靠交付。关键传感器节点的双发冗余模式通过tcp协议和udp协议双通道同时发送并由网关按序列号去重,将关键数据丢失概率显著降低。