一种嵌入式系统的网络协议栈诊断装置及诊断方法

文档序号:7686681阅读:104来源:国知局
专利名称:一种嵌入式系统的网络协议栈诊断装置及诊断方法
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种嵌入式系统的网络协议栈 诊断装置及诊断方法。
背景技术
随着科学技术的迅速发展,嵌入式系统设备大量应用于社会的各个领域, 如教育、娱乐、国防等,嵌入式系统的开发已成为目前计算机软件产业的重要 发展方向。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪, 适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统与一般的PC系统不同,其包括硬件和软件两部分,硬件部分包括处理器/微处理器、存储器及外设器件和i/o端口、图形控制器等。软件部分包括要求实时和多任务操作的OS (Operation Syestem,操作系统) 和应用程序。应用程序控制着系统的运作和行为;而操作系统控制着应用程序 与硬件部分的交互作用。嵌入式系统的研发诊断通常需要多种设备的组合,主要涉及目标机和开发 调试机,如图1所示,网关101为嵌入式系统设备,其为目标机,也就是嵌入 式系统的运行环境,而诊断计算机102则为开发调试机,所述目标机在实际嵌 入式系统的开发中可正常运行,而开发调试机用于跟踪和测试目标机的状态。 由于嵌入式系统中的硬件资源非常精简,嵌入式系统的开发不能和大型机开发 一样,安装丰富的调试工具,其只能采用串口打印,日志分析等方法去解决系 统出现的各种问题如报文丢失等。当嵌入式系统设备即目标机中的嵌入式系统 在调试过程中遇到故障时,需要在开发调试机中修改嵌入式系统的程序代码, 增进调试信息,然后重新载入嵌入式系统,以最终解决嵌入式系统出现的各种 问题,但这种方法带来了很多问题,如降低了开发效率,破坏了故障的原始环 境等,给故障的后续解决带来了很多困难。这就要求一种诊断装置,该诊断装置能够充分利用嵌入式系统的现有资源,在嵌入式系统出现故障时,能在不改 变系统环境的基础上直接定位故障问题。目前尚未存在上述诊断装置,因此现有的嵌入式系统故障诊断技术,在实 际使用上,显然存在不便与缺陷,所以有必要加以改进。发明内容针对上述的缺陷,本发明的第一目的在于提供一种嵌入式系统的网络协议 栈诊断装置,该网络协议栈诊断装置可以在保持嵌入式系统的原始环境下快速 定位嵌入式系统故障,并且提高嵌入式系统的开发效率。本发明的第二目的在于提供一种嵌入式系统的网络协议栈诊断方法,该方 法可以在保持嵌入式系统的原始环境下快速定位嵌入式系统故障,并且提高嵌 入式系统的开发效率。为了实现上述第一目的,本发明提供一种嵌入式系统的网络协议栈诊断装 置,该嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机, 所述网络协议栈诊断装置包括探测点配置模块,用于在该嵌入式系统的网络协议栈上设置若干探测点;探测点控制模块,用于在该探测点上设置相应的探测函数,所述探测函数 在报文经过的路径上配置拦截点,所述拦截点在目标机处于正常状态时关闭以 使报文穿越该拦截点,而所述拦截点在目标机处于非正常状态时打开拦截该报文;诊断配置模块,用于接收所述被拦截的报文,对相关报文和状态参数进行 配置与检査,并输出所关心的报文和状态参数。根据本发明的装置,所述探测点分别设置于该网络协议栈的驱动层、设备 层和/或网络层。根据本发明的装置,所述探测点控制模块进一步包括探测点诊断开关,用于通过PROC工具控制该拦截点的开关。根据本发明的装置,所述诊断配置模块进一步包括匹配工具模块和目标工 具模块;所述匹配工具模块,用于根据设置的匹配条件过滤报文,限制报文的 打印频率;所述目标工具模块,用于检査报文的目标IP及端口参数。根据本发明的装置,所述探测点包括网络驱动报文发送函数探测点、设备报文发送函数探测点、设备报文转发函数探测点和设备报文接收函数探测 点、网络层接收报文函数探测点、网络层转发报文函数探测点、网络层发送报 文函数探测点、传输层接收报文函数探测点和/或传输层发送报文函数探测点。 为了实现上述第二目的,本发明提供一种嵌入式系统的网络协议桟诊断方 法,该嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机, 所述方法包括.-探测点配置步骤,在该嵌入式系统的网络协议栈上设置若干探测点; 探测点控制步骤,在该探测点上设置相应的探测函数,所述探测函数在报 文经过的路径上配置拦截点,所述拦截点在目标机处于正常状态时关闭以使报文穿越该拦截点,而所述拦截点在目标机处于非正常状态时打开拦截该报文; 诊断配置步骤,接收所述被拦截的报文,对相关报文和状态参数进行配置与检査,并输出所关心的报文和状态参数。根据本发明的方法,所述探测点分别设置于该网络协议栈的驱动层、设备层和/或网络层。根据本发明的方法,所述探测点控制步骤进一步包括通过PROC工具控制 该拦截点开关的步骤。根据本发明的方法,所述诊断配置步骤进一步包括配置匹配工具模块的 步骤,用于根据设置的匹配条件过滤报文,限制报文的打印频率;配置目标工 具模块的步骤,用于检查报文的目标IP及端口参数。根据本发明的方法,所述探测点包括网络驱动报文发送函数探测点、设 备报文发送函数探测点、设备报文转发函数探测点和设备报文接收函数探测 点、网络层接收报文函数探测点、网络层转发报文函数探测点、网络层发送报 文函数探测点、传输层接收报文函数探测点和/或传输层发送报文函数探测点。根据本发明的方法,在所述诊断配置步骤中,进一步根据报文出现的流程 判断丢失报文在协议栈中的位置。本发明网络协议栈诊断装置在嵌入式系统的网络协议栈上设置若干探测 点,并在若干探测点上安装相应的探测函数以在报文经过的路径上配置拦截 点,当目标机处于非正常状态时打开拦截点以拦截报文,并对所拦截的报文进 行参数检査和状态诊断,然后输出所述报文参数配置和报文状态,借此,在保 持嵌入式系统的原始环境下快速定位嵌入式系统故障,并且提高嵌入式系统的开发效率。


图1是现有的嵌入式系统结构示意图;图2是本发明提供的应用于嵌入式系统的网络协议栈诊断装置;图3是本发明提供的网络协议栈诊断装置在网络协议栈内部的布置图;图4是本发明提供的应用于嵌入式系统的网络协议桟诊断装置工作原理图;图5是本发明提供的应用于嵌入式系统的网络协议桟诊断方法流程图; 图6是本发明优选实施例提供的应用于嵌入式系统的网络协议栈诊断方 法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。本发明的基本思想是网络协议栈诊断装置在嵌入式系统的网络协议栈上 设置若干探测点,并在若干探测点上安装相应的探测函数以在报文经过的路径 上配置拦截点,当目标机处于非正常状态时打开拦截点以拦截报文,并对所拦 截的报文进行参数检查和状态诊断,然后输出所述报文参数配置和报文状态。本发明提供的嵌入式系统的网络协议栈诊断装置200如图2和图3所示, 所述嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机,可 参见图1中的网关101和诊断计算机102,所述网络协议栈诊断装置200位于 开发调试机上,包括探测点配置模块201、探测点控制模块202和诊断配置模 块203,其中探测点配置模块201,用于在嵌入式系统的网络协议栈上设置多个探测 点。所述网络协议桟可以是但不限于TCP/IP协议、IPV6协议。在所述网络协 议栈一般包括驱动层、设备层、网络层、传输层、应用层等。本发明中,探测 点配置模块201在网络协议栈的驱动层、设备层和/或网络层上分别设置多个 探测点。作为本发明的一个优选实施方式如图3所示,所述探测点配置模块201在网络协议栈的驱动层、设备层和网络层上设置9个探测点,其中,驱动层上设置的探测点包括网络驱动报文发送函数探测点DRVJ3UTPUT;设备 层上设置的探测点包括设备(如桥)报文发送函数探测点DEV—OUTPUT、 设备(如桥)报文转发函数探测点DEV—FORWARD和设备(如桥,ATM等) 报文接收函数探测点DEV一INPUT;网络层上设置的探测点包括网络层接收 报文函数探测点PRE—ROUTING、网络层转发报文函数探测点FORWARD、 网络层发送报文函数探测点POST_ROUTING、传输层接收报文函数探测点 LOCAL—IN和传输层发送报文函数探测点LOCAL—OUT。探测点控制模块202,用于在探测点配置模块201设置的多个探测点上安 装相应的探测函数,所述探测函数在报文经过的路径上配置HOOK(拦截点), 所述HOOK在目标机处于正常状态时关闭以使报文穿越该HOOK和所述 HOOK在目标机处于非正常状态时打开以使报文进入诊断配置模块。具体而言,该探测点控制模块202包括探测函数安装及拦截点设置模块 2021、探测点诊断开关2022,其中,探测函数安装及拦截点设置模块2021,用于在探测点配置模块201设置 的多个探测点上安装相应的探测函数,所述探测函数在报文经过的路径上配置 HOOK。探测点诊断开关2022,用于在目标机处于非正常状态时在PROC工具作 用下打开HOOK以使报文进入诊断配置模块。诊断配置模块203,用于对所述进入的报文进行参数检査和状态诊断,并 输出所述报文参数配置和报文状态。该诊断配置模块203进一步包括Match(匹 配)工具模块2031、 Target(目标)工具模块2032和诊断配置工具模块2033,其中,Match工具模块2031,用于设置和存储探测点与报文流程的match条件和 设置报文打印频率。诊断配置工具模块2033根据该Match工具模块2031所设 置和存储探测点与报文流程的match条件和设置报文打印频率得到报文流程 从而诊断出所述进入的报文在网络协议栈中的位置状态,并根据Match工具模 块2031设置的报文打印频率打印所述报文参数配置和报文状态。Target工具模块2032,用于在诊断配置工具模块2033的控制下检查报文 目标IP及端口参数。图4是网络协议栈诊断装置200的工作原理图。当目标机工作正常时,HOOK关闭,由此报文直接穿越该HOOK,不影响系统效率;当目标机出现 故障,探测点诊断开关2022在PROC工具作用下打开HOOK,该HOOK拦 截经过其的报文,从而该报文通过HOOK进入诊断配置模块203,诊断配置 工具模块2033控制Match工具模块2031对报文参数进行检查,Match工具模 块2031根据其已设置好的探测点与报文流程的Match条件,得到报文的流程, 从而诊断出报文在网络协议栈中的具体状态如丢失的具体位置等,当报文流程 需要报文的目标IP及端口参数以进行路由选择工作时,诊断配置工具模块 2033控制Target工具模块2032检查所述进入的报文的目标IP及端口参数。 由于网络协议栈内部报文数量大,容易出现大量打印而系统异常的情况,此时, 诊断配置工具模块2033根据Match工具模块2031设置好的报文打印频率打印 报文参数配置和报文状态,从而实现了报文跟踪,最终得到报文丢失的真正原 因。本发明中,报文通过检査后,还可以从HOOK返回至系统。由此,保持 嵌入式系统的原始环境。本发明提供的嵌入式系统的网络协议栈诊断方法如图5所示,其所应用的 嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机,该方法 结合图2所示的网络协议栈诊断装置200进行描述,具体流程包括如下步骤S501,探测点配置步骤,探测点配置模块201在嵌入式系统的网络 协议栈上设置多个探测点。本步骤中,探测点配置模块201在嵌入式系统的网络协议栈的驱动层、设 备层和/或网络层分别设置多个探测点。步骤S502,探测点控制步骤,探测点控制模块202在该多个探测点上安 装相应的探测函数,所述探测函数在报文经过的路径上配置拦截点,所述拦截 点在目标机处于正常状态时关闭以使报文穿越该拦截点和所述拦截点在目标 机处于非正常状态时打开以使报文进入诊断配置步骤。步骤S503,诊断配置步骤,诊断配置模块203对所述进入的报文进行参 数检查和状态诊断,并输出所述报文参数配置和报文状态。图6是本发明优选实施例提供的应用于嵌入式系统的网络协议栈诊断方 法,其所应用的嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发 调试机可参见图1的网关101即目标机和诊断计算机102即开发调试机,该方法结合结合图2所示的网络协议栈诊断装置200和图3所示的诊断装置原理图进行描述,具体包括如下步骤S601,探测点配置模块201在嵌入式系统的网络协议栈上设置多个探测点。本实施例中,探测点配置模块201在嵌入式系统的网络协议栈的驱动层、 设备层和/或网络层分别设置多个探测点。参见图3,探测点配置模块201在网 络协议栈的驱动层、设备层和网络层上设置9个探测点,其中,驱动层上设置 的探测点包括网络驱动报文发送函数探测点DRV—OUTPUT;设备层上设置 的探测点包括设备(如桥)报文发送函数探测点DEV一OUTPUT、设备(如 桥)报文转发函数探测点DEV—FORWARD和设备(如桥,ATM等)报文接 收函数探测点DEV—INPUT;网络层上设置的探测点包括网络层接收报文函 数探测点PRE_ROUTING、网络层转发报文函数探测点FORWARD、网络层 发送报文函数探测点POST—ROUTING、传输层接收报文函数探测点 LOCAL—IN和传输层发送报文函数探测点LOCAL一OUT。步骤S602,探测函数安装及拦截点设置模块2021在探测点配置模块201 设置的多个探测点上安装相应的探测函数,该探测函数在报文经过的路径上配 置HOOK,所述HOOK在目标机处于正常状态时关闭,报文直接穿越该 HOOK。步骤S603,设置探测点诊断开关2022,该探测点诊断开关2022在目标机 处于非正常状态时在PROC工具作用下打开HOOK。步骤S604, Match工具模块2031在诊断配置模块203上设置探测点与报 文流程的匹配条件和设置报文打印频率。本步骤中,考虑到协议栈内部报文数量大,容易出现大量打印报文导致系 统异常,因此Match工具模块2031在诊断配置模块203上设置报文打印频率。步骤S605,嵌入式系统出现故障,探测点诊断开关2022在PROC工具作 用下打开HOOK。本实施例中,所述故障为TCP报文转发失败。步骤S606, TCP报文经过HOOK,被HOOK拦截进入诊断配置模块203。 步骤S607,诊断配置工具模块2033根据Match工具模块2031设置的探 测点与报文流程的匹配条件得到报文流程,并根据报文流程诊断出报文在网络协议栈中的丢失具体位置。若报文出现的流程为DEVjNPUT, DEV—FORWARD,则可以判断该报 文是二层转发,若该报文流程为DEV—INPUT, PRE—ROUTING, FORWARD,则可以判断该报文是三层转发,由此可以诊断出报文是丢失在协议栈的具体位 置。步骤S608,诊断配置工具模块2033控制Target工具模块2032检査所述 进入的报文的目标IP及端口参数。本发明中,所述步骤S608可省。其是根据具体报文流程来确定是否检査 所述进入的报文的目标IP及端口参数。若该报文的流程只有DEV—INPUT, PRE_ROUTING,而没有在LOCAL—IN和FORWARD上出现,则判断该报文 丢失在PRE—ROUTING和LOCAL和FORWARD之间,由于该阶段需要报文 的目标IP及端口参数进行路由选择工作,则诊断配置工具模块2033控制 Target工具模块2032检查所述进入的报文的目标IP及端口参数。步骤S609,诊断配置工具模块2033根据Match工具模块2031所设置的 报文打印频率打印报文参数配置和报文状态。通过上述步骤,可以对报文进行跟踪,从而最终得到报文丢失的真正原因。综上可知,本发明网络协议栈诊断装置在嵌入式系统的网络协议栈上设置 若干探测点,并在若干探测点上安装相应的探测函数以在报文经过的路径上配 置拦截点,当目标机处于非正常状态时打开拦截点以拦截报文,并对所拦截的 报文进行参数检查和状态诊断,然后输出所述报文参数配置和报文状态,借此, 在保持嵌入式系统的原始环境下快速定位嵌入式系统故障,并且提高嵌入式系 统的开发效率。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种嵌入式系统的网络协议栈诊断装置,该嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机,其特征在于,所述网络协议栈诊断装置包括探测点配置模块,用于在该嵌入式系统的网络协议栈上设置若干探测点;探测点控制模块,用于在该探测点上设置相应的探测函数,所述探测函数在报文经过的路径上配置拦截点,所述拦截点在目标机处于正常状态时关闭以使报文穿越该拦截点,而所述拦截点在目标机处于非正常状态时打开拦截该报文;诊断配置模块,用于接收所述被拦截的报文,对相关报文和状态参数进行配置与检查,并输出所关心的报文和状态参数。
2、 根据权利要求1所述的网络协议栈诊断装置,其特征在于,所述探测 点分别设置于该网络协议栈的驱动层、设备层和/或网络层。
3、 根据权利要求1或2所述的网络协议栈诊断装置,其特征在于,所述探测点控制模块进一步包括探测点诊断开关,用于通过PROC工具控制该拦截点的开关。
4、 根据权利要求3所述的网络协议栈诊断装置,其特征在于,所述诊断 配置模块进一步包括匹配工具模块和目标工具模块;所述匹配工具模块,用于根据设置的匹配条件过滤报文,限制报文的打印 频率;所述目标工具模块,用于检查报文的目标IP及端口参数。
5、 根据权利要求4所述的网络协议栈诊断装置,其特征在于,所述探测 点包括网络驱动报文发送函数探测点、设备报文发送函数探测点、设备报文 转发函数探测点和设备报文接收函数探测点、网络层接收报文函数探测点、网 络层转发报文函数探测点、网络层发送报文函数探测点、传输层接收报文函数 探测点和/或传输层发送报文函数探测点。
6、 一种嵌入式系统的网络协议栈诊断方法,该嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机,其特征在于,所述方法包括探测点配置步骤,在该嵌入式系统的网络协议栈上设置若干探测点;探测点控制步骤,在该探测点上设置相应的探测函数,所述探测函数在报 文经过的路径上配置拦截点,所述拦截点在目标机处于正常状态时关闭以使报 文穿越该拦截点,而所述拦截点在目标机处于非正常状态时打开拦截该报文;诊断配置步骤,接收所述被拦截的报文,对相关报文和状态参数进行配置 与检查,并输出所关心的报文和状态参数。
7、 根据权利要求6所述的网络协议栈诊断方法,其特征在于,所述探测点分别设置于该网络协议栈的驱动层、设备层和/或网络层。
8、 根据权利要求6或7所述的网络协议栈诊断方法,其特征在于,所述 探测点控制步骤进一步包括通过PROC工具控制该拦截点开关的步骤。
9、 根据权利要求8所述的网络协议栈诊断方法,其特征在于,所述诊断 配置步骤进一步包括配置匹配工具模块的步骤,用于根据设置的匹配条件过滤报文,限制报文 的打印频率;配置目标工具模块的步骤,用于检査报文的目标IP及端口参数。
10、 根据权利要求9所述的网络协议栈诊断方法,其特征在于,所述探测点包括网络驱动报文发送函数探测点、设备报文发送函数探测点、设备报文转发函数探测点和设备报文接收函数探测点、网络层接收报文函数探测点、网 络层转发报文函数探测点、网络层发送报文函数探测点、传输层接收报文函数 探测点和/或传输层发送报文函数探测点。
11、 根据权利要求6、 7或10所述的网络协议栈诊断方法,其特征在于, 在所述诊断配置步骤中,进一步根据报文出现的流程判断丢失报文在协议栈中 的位置。
全文摘要
一种嵌入式系统的网络协议栈诊断方法及装置,该嵌入式系统包括目标机和用于跟踪和测试该目标机状态的开发调试机,所述网络协议栈诊断装置包括探测点配置模块,用于在该嵌入式系统的网络协议栈上设置若干探测点;探测点控制模块,用于在该探测点上设置相应的探测函数,所述探测函数在报文经过的路径上配置拦截点,所述拦截点在目标机处于正常状态时关闭以使报文穿越该拦截点,而所述拦截点在目标机处于非正常状态时打开拦截该报文;诊断配置模块,用于接收所述被拦截的报文,对相关报文和状态参数进行配置与检查,并输出所关心的报文和状态参数。其可在保持嵌入式系统的原始环境下快速定位嵌入式系统故障,并且提高嵌入式系统的开发效率。
文档编号H04L12/26GK101222384SQ200810055870
公开日2008年7月16日 申请日期2008年1月10日 优先权日2008年1月10日
发明者伟 缪 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1