移动终端软件故障异常检测技术解析
1. 异常检测的基础与优势
在通信系统中,异常检测是保障系统稳定运行的关键。我们的异常检测方式聚焦于用户重新连接服务的行为,通过分析有多少移动终端重新发送会话创建请求消息来检测异常。这种方式仅捕获会话创建请求消息,具有两大显著优势:
-
计算资源需求低
:仅捕获会话创建请求消息所需的计算能力较少,相比捕获所有组件(如移动终端、会话管理节点和应用服务器)发送的所有消息,具有更强的可扩展性。
-
反映用户满意度
:这种方式能直观地反映出用户在使用服务过程中的体验,若重新连接频繁,可能意味着用户满意度较低。
2. 异常检测工具
2.1 检测方法选择
异常检测工具采用流量监控方法,而非探测方法,具体对比如下:
| 检测方法 | 原理 | 优点 | 缺点 |
| — | — | — | — |
| 探测方法 | 探测工具向系统中的各个组件发送测试消息,明确指出每个组件的故障 | 能精准定位单个组件的故障 | 耗时,因为移动数据通信系统包含众多组件,如数百台服务器 |
| 流量监控方法 | 捕获数据包(消息)并立即进行分析 | 能快速检测异常,避免给系统中的服务器和网络节点增加负载 | - |
2.2 工具运行环境与性能
异常检测工具是运行在配备网络接口卡的个人计算机(PC)上的软件程序。该PC设置在无线接入网络中会话管理节点的链路处,仅用于捕获移动终端与会话管理节点之间传输的会话创建请求消息。在配备英特尔酷睿双核2.0GHz CPU和2GB内存的PC上运行的工具,每分钟可同时处理超过60,000条会话创建请求消息。因此,在商业移动数据通信系统中,只需少量的异常检测工具就能监控所有会话。
3. 异常检测算法
3.1 关键概念定义
- 会话计数 :在一个采样周期内,移动终端发送会话创建请求消息的次数。
- 重新连接次数 :除第一次请求外的后续请求视为重新连接。例如,若会话计数为2,则重新连接次数为1。
3.2 采样周期的确定
为确保采样周期内没有新的会话创建请求消息,我们收集了系统中2个月的会话创建请求消息日志,研究了每个移动终端在无故障情况下的会话间隔(即连续发送会话创建请求消息的间隔)。通过创建会话间隔的累积频率分布,发现90%的间隔超过180秒,因此确定180秒为采样周期。在180秒的采样周期内,约90%的会话创建请求消息可能不是重新连接,约10%可能是重新连接,且约90%的重新连接次数为1次(即会话计数为2)。
3.3 指标计算
定义 $v_m[n]$ 为在采样周期 $m$ 内会话计数为 $n$ 的移动终端数量。异常检测算法主要关注重新连接一次的移动终端,即使用 $v_m[2]$ 的值。“重新连接终端比率” $x_m$ 的计算公式如下:
[x_m = \frac{v_m[2]}{\sum_{i = 1}^{\infty}v_m[i]}]
3.4 异常检测步骤
为了基于 $x_m$ 进行异常检测,我们还定义了以下值:
-
指数平均值 $y_m$
:$y_m = \alpha \times x_m + (1 - \alpha) \times y_{m - 1}$
-
指数平均值的平方 $y’_m$
:$y’
m = \alpha \times x_m^2 + (1 - \alpha) \times y’
{m - 1}$
其中,$\alpha = p/t_w$,$t_w$ 为时间窗口(这里设定为一天,即86400秒),$p$ 为采样周期(180秒),所以 $\alpha$ 约为0.002。
异常检测的具体步骤如下:
1. 计算 $g_m$:$g_m = abs(x_m - y_{m - 1})$,即当前 $x_m$ 与 $y_{m - 1}$ 的指数平均值的差值。
2. 计算标准偏差 $\sigma_m$:$\sigma_m = \sqrt{(y’
m - y_m^2)}$
3. 计算阈值 $t_m$:$t_m = k \times \sigma
{m - 1}$
4. 异常判断:当 $g_m > t_m$ 时,判定为异常。
以下是异常检测的流程 mermaid 图:
graph TD
A[开始] --> B[计算 xm]
B --> C[计算 ym 和 y'm]
C --> D[计算 gm]
D --> E[计算 σm]
E --> F[计算 tm]
F --> G{gm > tm?}
G -- 是 --> H[判定为异常]
G -- 否 --> I[判定为正常]
H --> J[结束]
I --> J
4. 软件故障检测示例
4.1 阈值系数 $k$ 的确定
阈值系数 $k$ 的确定至关重要。若 $k$ 值过大,可能会遗漏一些异常;若 $k$ 值过小,则可能会误检测出许多并非由故障引起的虚假异常。我们的目标是将虚假警报的数量控制在小于0.2%,即平均每天约1次虚假警报。通过研究不同 $k$ 值下 $g_m$ 和 $t_m$ 的关系,分析6个月的日志数据,最终选择 $k = 3$,使得在约1%的总采样周期内检测到异常。
4.2 检测移动终端软件故障
我们将算法应用于6个月的会话创建请求消息日志数据。在检测过程中,发现某些采样周期的 $g_m$ 值超过了阈值 $t_m$,被判定为异常。但由于可能导致异常的组件众多,无法确定具体故障组件。在检查了会话管理节点、应用服务器以及无线接入和核心网络设备的日志后,未发现故障。此时,我们怀疑移动终端可能受到应用程序软件的漏洞影响。
具体检测步骤如下:
1. 找到可能下载了第三方供应商新发布版本的移动终端候选者。
2. 将移动终端分为两组:
-
组A
:可能下载了该版本的移动终端组。
-
组B
:其他移动终端组。
通过分析发现,在组A中检测到异常,而在组B中未检测到异常,从而确定该新版本存在漏洞。这表明按受影响的移动终端组进行监控对于快速检测异常非常重要。后续在发布修复漏洞的补丁后,再次分析发现,仅在组A中检测到异常,而整体未检测到异常,进一步验证了按组监控的有效性。
综上所述,通过聚焦用户重新连接服务的行为,结合合理的异常检测算法和分组监控策略,能够有效地检测移动终端软件故障,保障移动数据通信系统的稳定运行。
5. 相关工作对比
在通信系统中,异常检测主要有流量监控和探测两种方法,下面对这两种方法的相关工作进行详细对比。
5.1 流量监控
流量监控是一种被动的异常检测方案,通过监测消息(数据包)来发现异常,主要包括以下两种方式:
-
基于统计的监控
:管理节点通过与节点(如二层交换机和路由器)通信,收集数据包传输的统计信息。然而,管理节点与其他节点之间的通信开销不可忽视,由于系统包含众多节点(如应用服务器、会话管理节点等),这种开销会变得非常大且耗时。
-
基于数据包捕获的监控
:某些设备捕获传输的数据包并获取数据包传输统计信息。但商业移动核心网络每天会传输大量数据包(数十吉比特),这种方法存在一些缺点:需要多个捕获点来收集传输的数据包;虽然轨迹采样方法可以减少需要捕获的数据包数量,但这种采样容易遗漏异常。
相比之下,我们的工具仅捕获包含用户请求服务的会话创建请求消息(数据包),捕获的数据包数量少于所有传输的数据包,并且可以在少数(可能是一个)捕获点使用少量PC获取所有会话创建请求消息。
| 流量监控方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 基于统计的监控 | 管理节点与节点通信收集数据包传输统计信息 | - | 通信开销大,耗时 |
| 基于数据包捕获的监控 | 设备捕获传输数据包获取统计信息 | - | 需要多个捕获点,采样易遗漏异常 |
| 我们的方法 | 仅捕获会话创建请求消息 | 捕获数据包少,可在少数点获取所有消息 | - |
5.2 探测
探测是一种主动的异常检测方案,通过向设备发送探测来检查设备是否故障,主要分为以下两种:
-
内部探测
:在通信节点或应用服务器等设备中安装探测程序,检查设备是否故障。但如果服务节点不在运营商管理的网络中,这些探测程序很难安装,例如在我们的系统中,无法在第三方应用程序提供商的服务器上安装。
-
外部探测
:探测工具通过向服务器实际发送测试消息来检查设备。这种外部探测对于大规模网络来说不具有可扩展性,检查所有组件(如应用服务器、会话管理节点和移动终端)可能需要花费大量时间。
| 探测方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 内部探测 | 在设备中安装探测程序检查故障 | 能直接检查设备状态 | 安装受限 |
| 外部探测 | 向服务器发送测试消息检查设备 | - | 不适合大规模网络,耗时 |
6. 总结与展望
6.1 总结
本文介绍了一种用于检测移动终端软件故障(漏洞)的异常检测技术。该技术聚焦于用户重新连接服务的行为,通过分析移动终端重新发送会话创建请求消息的情况来检测异常。具体内容包括:
-
异常检测工具
:采用流量监控方法,运行在PC上,仅捕获会话创建请求消息,具有计算资源需求低、能快速检测异常等优点。
-
异常检测算法
:通过定义会话计数、重新连接次数等概念,确定采样周期,计算重新连接终端比率 $x_m$,并结合指数平均值、标准偏差和阈值进行异常判断。
-
软件故障检测示例
:通过分析6个月的日志数据,确定阈值系数 $k$,并通过分组监控的方式成功检测出移动终端应用程序软件的漏洞。
-
相关工作对比
:与流量监控和探测的其他方法相比,我们的方法在捕获数据包数量、可扩展性等方面具有优势。
6.2 展望
虽然我们的异常检测技术在检测移动终端软件故障方面取得了一定的成果,但仍有一些方面可以进一步改进和研究:
-
分组策略优化
:目前的分组方式是基于可能下载新版本的移动终端,但如何更准确地划分受影响的移动终端组,还需要进一步研究和优化。
-
实时检测能力提升
:虽然我们的算法能够快速检测异常,但在实时性方面还有提升空间,可以考虑采用更高效的计算方法和数据处理技术,实现更实时的异常检测。
-
多维度数据融合
:除了会话创建请求消息,还可以考虑融合其他维度的数据,如设备性能数据、用户行为数据等,以提高异常检测的准确性和可靠性。
通过不断改进和完善异常检测技术,我们可以更好地保障移动数据通信系统的稳定运行,为用户提供更优质的服务。
以下是整个异常检测流程的 mermaid 图,涵盖了数据收集、指标计算、异常判断和分组检测等环节:
graph LR
A[数据收集(会话创建请求消息日志)] --> B[确定采样周期]
B --> C[计算会话计数和重新连接次数]
C --> D[计算 vm[n] 和 xm]
D --> E[计算 ym 和 y'm]
E --> F[计算 gm]
F --> G[计算 σm]
G --> H[计算 tm]
H --> I{gm > tm?}
I -- 是 --> J[判定为异常]
I -- 否 --> K[判定为正常]
J --> L[分组检测(组A和组B)]
L --> M[确定故障组件]
K --> N[继续监控]
总之,移动终端软件故障的异常检测是一个复杂而重要的问题,需要不断探索和创新,以适应不断发展的移动数据通信系统。
超级会员免费看
4172

被折叠的 条评论
为什么被折叠?



