网络设备的测试方法、 系统及装置 技术领域 本发明涉及通信网络技术领域, 特别涉及一种网络设备的测试方法、 测试系统及 测试控制装置。
背景技术 随着互联网的快速发展, 网络连接设备的使用更加普遍。 例如, 互联网企业主要是 为互联网用户提供服务。 因此, 企业网关设备通常被视为企业的对外接口。 企业网关设备上 往往承载着大量线上流量, 工作是否稳定以及性能是否达标是互联网企业关注的焦点。在 部分情况下, 会出现由于网络设备的问题导致企业线上流量的丢失, 直接造成经济损失。 从 而, 需要对企业网关设备进行测试以做出相应的处理措施。
传统的网关设备的测试大多采用线下仿真测试和简单线上流量复制回放的方法。
(1) 线下仿真测试
线下仿真测试区别于线上真实环境, 可以自行构造线下模拟环境, 在构造的环境 中使用专门的网络测试仪器来测试网络设备。但是这种仪器一般价格昂贵, 对小型企业而 言会是一项较大开销。此外, 此类测试仪器操作起来比较复杂, 投入成本较大。
(2) 简单线上流量复制回放
简单流量复制回放的方法通常采用旁路方式, 将线上流量复制到线下, 之后使用 流量回放工具进行回放。但是该方法仅复制流入被测设备前的流量, 对更真实反应被测设 备相关处理指标的流过设备后的流量几乎不关注。 其次, 该方法属于开环工作流程, 经过一 次测试后, 如果测试结果不符合要求, 则需要人工介入重新抓取线上流量, 导致测试效率较 低。
发明内容
本发明的目的旨在至少解决上述技术缺陷。
为此, 本发明的第一个目在于提供一种网络设备的测试方法, 该测试方法可以采 用自动化方式完成测试, 从而提高测试效率和测试准确度。本发明的第二个目的在于提供 一种网络设备的测试系统。本发明的第三个目的在于提供一种测试控制装置。
为实现上述目的, 本发明的第一方面的实施例提供了一种网络设备的测试方法, 包括如下步骤 : 分别从线上网络设备获取流入所述线上网络设备的流入在线流量和流出所 述线上网络设备的流出在线流量 ; 根据所述流入在线流量和所述流出在线流量建立测试流 量库 ; 根据测试流量库分别生成流入测试流量和流出测试流量 ; 以及根据所述流入测试流 量和所述流出测试流量对被测网络设备进行测试。
根据本发明实施例的网络设备的测试方法, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。
本发明第二方面的实施例提供了一种网络设备的测试系统, 包括 : 在线流量获取装置, 用于分别从线上网络设备获取流入所述线上网络设备的流入在线流量和流出所述线 上网络设备的流出在线流量 ; 测试控制装置, 用于根据所述流入在线流量和所述流出在线 流量建立测试流量库, 并根据测试流量库分别生成流入测试流量和流出测试流量 ; 以及第 一测试端和第二测试端, 所述第一测试端和第二测试端分别位于所述被测网络设备的输入 端和输出端, 所述第一测试端用于将所述流入测试流量输入所述被测网络设备, 所述第二 测试端用于接收所述被测网络设备输出的实际流量, 并将所述被测网络设备输出的实际流 量与所述流出测试流量进行比对以生成测试结果。
根据本发明实施例的网络设备的测试系统, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。
本发明第三方面的实施例提供了一种测试控制装置, 包括 : 接收模块, 用于接收流 入线上网络设备的流入在线流量和流出所述线上网络设备的流出在线流量 ; 测试流量库模 块, 用于根据所述流入在线流量和所述流出在线流量建立测试流量库 ; 以及中控调度模块, 用于根据测试流量库分别生成流入测试流量和流出测试流量。
根据本发明实施例的测试控制装置, 可以通过获取流经网络设备两侧的在线流 量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 从而可以提高测试效率 和测试准确度。
本发明附加的方面和优点将在下面的描述中部分给出, 部分将从下面的描述中变 得明显, 或通过本发明的实践了解到。 附图说明 本发明上述的和 / 或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解, 其中 :
图 1 为传统的采用网络测试仪器测试网络连接设备的示意图 ;
图 2 为传统的采用简单流量复制回放测试方法的示意图
图 3 为根据本发明实施例的网络设备测试方法的流程图 ;
图 4 为根据本发明实施例的网络设备测试方法的示意图 ;
图 5 为根据本发明实施例的流量分离过程的示意图 ;
图 6 为根据本发明实施例的会话重建过程的示意图 ;
图 7 为根据本发明实施例的中控调度的示意图
图 8 为根据本发明实施例的测试控制的流程图 ;
图 9 为根据本发明实施例的采用智能决策进行控制的流程图 ;
图 10 为根据本发明实施例的网络设备的测试系统的示意图 ;
图 11 为图 10 中的测试控制装置的示意图 ; 和
图 12 为根据本发明实施例的测试控制装置的示意图。
具体实施方式
下面详细描述本发明的实施例, 所述实施例的示例在附图中示出, 其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。 下面通过参考附图描述的实施例是示例性的, 仅用于解释本发明, 而不能解释为对本发明的限制。
参照下面的描述和附图, 将清楚本发明的实施例的这些和其他方面。在这些描述 和附图中, 具体公开了本发明的实施例中的一些特定实施方式, 来表示实施本发明的实施 例的原理的一些方式, 但是应当理解, 本发明的实施例的范围不受此限制。相反, 本发明的 实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、 修改和等同物。
下面参考图 3 至图 6 描述根据本发明实施例的网络设备的测试方法。
如图 3 所示, 本发明实施例提供的网络设备的测试方法, 包括如下步骤 :
步骤 S301, 分别从线上网络设备获取流入线上网络设备的流入在线流量和流出线 上网络设备的流出在线流量。在本发明的一个示例中, 网络设备可以为网关或路由器等网 络连接设备。
步骤 S302, 根据流入在线流量和流出在线流量建立测试流量库。
步骤 S303, 根据测试流量库分别生成流入测试流量和流出测试流量。
步骤 S304, 根据流入测试流量和流出测试流量对被测网络设备进行测试。
根据本发明实施例的网络设备的测试方法, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。 下面结合图 4 以网关为例对本发明实施例的网络设备的测试方法进行详细描述。
步骤 S401, 捕捉线上网关两侧的流量数据。 具体地, 分别捕捉流入线上网关的数据 流量和流出线上网关的数据流量, 从而获取流入线上网关的流入在线流量和流出线上网关 的流出在线流量。
在本发明的一个实施例中, 可以通过预先设置捕捉时间和流量参数选择捕捉预定 时间段内的数量流量或预定大小的数据流量。
步骤 S402, 将异常流量和正常流量进行分离。
根据预设的异常流量判断规则对流入在线流量和流出在线流量进行分析。 异常流 量判断规则中设定有对异常流量数据的特征描述。 将符合异常流量数据的特征描述的流入 在线流量或流出在线流量判断为异常流量, 否则判断为正常流量, 从而将异常流量和正常 流量进行分离。然后, 将上述分离完成的异常流量和正常流量存储到测试流量库。其中, 将 异常流量存入异常测试流量库, 且将正常流量存入背景测试流量库。
在本发明的一个实施例中, 在将分离完成的正常流量存储到背景测试流量库之 前, 执行步骤 S403, 对正常流量构造传输控制协议 TCP(Transmission Control Protocol, 传输控制协议 ) 会话, 并对 TCP 会话进行重建。
下面结合图 5 对流量分离的过程进行详细描述。
步骤 S501, 接收来自上游的数据流量。
具体地, 接收来自上游的线上网关的流入在线流量和流出在线流量。
步骤 S502, 设置异常流量判定规则。
异常流量判断规则中设置有异常流量数据的特征描述。在本发明的一个实施例 中, 根据测试配置人工地向异常测试流量库中添加异常流量。 其中, 测试人员可以根据测试 业务类型的不同自行定义异常流量判定规则, 也可以使用本领域普遍采用的判定规则。
步骤 S503, 将步骤 S501 中接收到的数据流量与异常流量判定规则进行顺序匹配。
步骤 S504, 判断数据流量特征是否符合异常流量判定规则, 如果符合, 则可以判断 该部分流量为异常流量, 执行步骤 S505, 否则可以判断该部分流量为正常流量, 执行步骤 S506。
步骤 S505, 将判断出的异常流量存入异常测试流量库。
步骤 S506, 判断该数据是否已经达到全部流量内容的尾部, 如果是, 则执行步骤 S507, 否则执行步骤 S503。
步骤 S507, 对正常流量进行 TCP 会话重建, 将缺失的报文补充完整后, 执行步骤 S508。
步骤 S508, 将正常流量保存到背景测试流量库, 作为后续测试时的流量来源。
下面参考图 6 对会话重建的过程进行描述。
步骤 S601, 接收分离后的正常流量。
步骤 S602, 根据正常流量构造传输控制协议 TCP 会话。
具体地, 根据正常流量的四元组信息, 将报文哈希 (hash) 到不同的 TCP 会话中。 其 中, 四元组信息包括源 IP 地址、 源端口、 目的 IP 地址和目的端口。
步骤 S603, 将全部报文 hash 到多个不同的 TCP 会话中, 从而形成一个 TCP 会话队 列。 步骤 S604, 从 TCP 会话队列中顺次取出一个 TCP 会话。
步骤 S605, 判断 TCP 会话的完整性。
判断是否已经到达 TCP 会话队列中的最后一个会话, 如果是, 则判断 TCP 会话是完 整的, 执行步骤 S606, 否则判断 TCP 会话是不完整的, 执行步骤 S607。
步骤 S606, 将所有重建后的会话报文存入背景测试流量库。
步骤 S607, 提取 TCP 会话中的所有报文。
步骤 S608, 判断 TCP 会话中 TCP 报文中的 TCP 首部校验和 TCP checksum 的值是否 正确。其中, TCP checksum 用于校验报文在传输过程中是否出差错。
首先, 计算 TCP 报文校验和, 然后将该 TCP 报文校验和与该报文的 checksum 字段 进行比较, 如果相等, 则表明 TCP checksum 值正确, 执行步骤 S610, 否则执行步骤 S609。
步骤 S609, 重新计算 TCP checksum 值, 并将重新计算得到的 TCP checksum 值填入 报文的 checksum 字段。
步骤 S610, 检查该 TCP 会话中 SYN(synchronize) 包的数目是否正确。
在本发明的一个实施例中, 通过判断 SYN 包序列号是否正确, 从而检查该 TCP 会 话中的 SYN 包的数目是否正确。如果 SYN 包序列号正确, 则执行步骤 S612, 否则执行步骤 S611 ;
步骤 S611, 当 SYN 包的数目不正确时, 构造 SYN 包, 从而补充相应的 SYN 包, 将缺失 的 SYN 包补充完整。
步骤 S612, 检查该 TCP 会话中数据包的数目是否正确。
在本发明的一个实施例中, 通过检查数据包的序列号是否连续, 是否紧接着 SYN 包序列号出现以及数据包结束后是否紧接着出现 FIN 包, 从而检查 TCP 会话中的数据包的 数目是否正确, 换言之, 检测是否缺少数据包。 如果同时满足数据包的序列号连续、 TCP 会话 中的数据包的数目正确且数据包结束后是否紧接着出现 FIN 包, 则可以判断数据包完整,
执行步骤 614, 否则执行步骤 S613。
步骤 S613, 构造缺失的数据包, 并将前一个数据包的内容作为构造的数据包的内 容。
在本发明的一个实施例中, 构造缺失的数据包可以理解为补充一个数据包, 其中 补充的该数据包具有缺少的序列号, 并且具有与之前一个数据包或后一个数据包相同的内 容。
步骤 S614, 检查该 TCP 会话中 FIN 包是否完整。
在本发明的实施例中, 通过检查 FIN 包的数目是否正确, 从而检测该 TCP 会话中 FIN 包是否完整。具体地, 判断首个 FIN 包的序列号之后是否紧跟着最后一个数据包, 如果 是, 则判断 FIN 包完整, 执行步骤 S604, 否则执行步骤 S615。
步骤 S615, 构造并补充缺失的 FIN 包。
在将正常流量和异常流量分别存储到背景测试流量库和正常测试流量库之后, 根 据测试流量库分别生成流入测试流量和流出测试流量, 执行步骤 S404。
步骤 S404, 根据流入测试流量和流出测试流量对被测网关进行测试。具体地, 如 图 7 所示, 分别从背景流量库和异常流量库中抽取流量数据, 作为测试中的数据来源。将报 文中源 IP 地址和目的 IP 地址相反的数据报文区分开, 从而分别形成流入测试流量和流出 测试流量, 其中, 流入测试流量作为源流量, 流出测试流量作为目的流量。 一般而言, 将发送 SYN 包的 IP 作为源 IP, 发自源 IP 的报文设置为源流量。 将流入测试流量输入到被测网络设备, 并接收被测网络设备输出的实际流量, 将 被测网络设备输出的实际流量与流出测试流量进行比对以生成测试结果。 在本发明的一个 示例中, 被测网络设备可以为被测网关。
具体地, 预先载入测试关注项, 其中测试关注项可以为性能指标和安全性能指标。 其中, 性能指标例如为丢包率、 吞吐率、 背靠背延迟或长时间压力等。安全性能指标例如为 异常 SYN 攻击阻断成功率、 异常 ICMP 攻击阻断成功率、 正常流量误阻率、 响应速度等多项测 试指标。然后对被测网关进行测试。第一测试端通过第一网卡与被测网关相连, 第二测试 端通过第二网卡与被测网关相连, 其中, 第一测试端作为发端, 第二测试端作为收端。第一 测试端将流入测试流量中的报文通过第一网卡发送给被测网关, 第二测试端接收由被测网 关通过第二网卡发送的数据报文, 从而对被测网关进行测试, 然后在测试结束后, 收集形成 测试结果。
第二测试端根据当前收到报文的序列号 N, 查看流出测试流量中是否有序列号小 于 N 的报文存在。如果存在, 则说明有报文在流经被测网络设备时发生丢包, 然后将报文序 列号、 发生时间、 丢失数量做统计记录。上述记录的数据可以用于计算丢包率指标。如果不 存在序列号小于 N 的报文, 则检查流出测试流量中是否有序列号为 N+1 的报文, 如果不存 在, 则说明被测网络设备转发来的流量属于非法报文, 第二测试端将相关测试情况记录, 用 于计算 SYN 攻击阻断成功率、 异常 ICMP 攻击阻断成功率、 正常流量误阻率等指标。如果第 二测试端检查流出测试流量中存在序列号为 N+1 的报文, 则立刻发送给被测网络设备并对 该报文做出响应, 同时记录下来收到报文的时间戳和响应报文的时间戳, 用于计算背靠背 延迟指标。
下面以 Tcpdump 为例对测试过程进行详细说明。Tcpdump 的流量回放方法基于状
态转移, 即第一测试端和第二测试端根据当前 TCP 会话所处状态, 判断当前报文是否可以 发送。 具体地, 第一测试端通过第一网卡发送序列号为 N 的报文 P1, 通过被测网络设备转发 后, 第二测试端在流出测试流量中查找 TCP 报文序列号为 N+1 且目的 IP 地址为 P1 中源地 址的报文 P2 是否存在。如果存在, 则第二测试端发送 P2 至第一测试端, 第一测试端收到该 报文后, 继续上述过程, 直至两端报文发送完毕并通告测试结果。如果 P2 不存在, 则认为发 生丢包现象。如图 8 所示, 对被测网关的测试, 包括如下步骤 :
步骤 S801, 将分发下来的流入测试流量和流出测试流量作为测试的数据来源。
步骤 S802, 从测试流量数据中依次取下一个报文, 分析报文 TCP 协议层, 获取报文 目的端口号。
步骤 S803, 判断该报文目的端口号对应的工作线程是否已经存在, 如果存在, 则执 行步骤 S805, 否则执行步骤 S804。
步骤 S804, 当端口对应的工作线程不存在时, 创建新线程, 并建立端口号到线程 ID 号的对应关系。
在本发明的一个实施例中, 可以采用字典方式存储, 并采用 (key, value) 对的方 式。其中, 端口号可以作为 key, 线程 ID 号可以作为 value, 从而可以快速通过端口号查找 对应的工作线程 ID 是否存在。
步骤 S805, 将报文交由对应的工作线程处理。 其中, 工作线程主要的工作内容为检 查 checksum 值, 并将报文通过被测网关的网卡发出。
步骤 S806, 判断该报文是否为数据流量中的最后一个报文。如果是, 则结束测试, 否则执行步骤 S802, 继续获取下一个报文进行处理。
步骤 S405, 采用智能决策对测试结果进行分析, 决定下一步测试执行计划。
获取步骤 S404 中的测试结果, 并将测试结果和预设的质量标准进行比对, 根据比 较结果调用决策库决定下一步执行内容, 从而判断是否达到该质量标准。如果测试结果达 到质量标准, 则该轮测试完毕, 并通知测试人员该测试结果。如判断未达到质量标准, 则进 一步判断原因, 并根据判断的原因生成新的时间或流量参数。
具体地, 如图 9 所示, 如果判断测试结果未达到质量标准的原因是测试数据量不 足、 数据类型缺乏或测试脚本没有执行完毕等原因, 则生成调整后的时间或流量参数, 执行 步骤 S401, 根据新的时间或流量参数重新从线上网关获取新的流入在线流量和流出在线流 量, 重新一轮测试。否则, 判断为由于被测设备原因导致没有达到质量标准, 则认为被测设 备相关测试项未通过
步骤 S406, 如果测试结果不低于质量标准要求, 则展示并通告测试结果, 如果测试 结果低于质量标准要求, 则将测试结果发送给测试人员, 并且在情况严重时向测试人员发 出报警通知。在本发明的一个实施例中, 报警通知可以采用邮件或短信等方式发送。
根据本发明实施例的网络设备的测试方法, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。
下面参考图 10 和图 11 描述根据本发明实施例的网络设备的测试系统。
如图 10 所示, 本发明实施例的网络设备的测试系统包括 : 在线流量获取装置 100、 测试控制装置 200、 第一测试端 300 和第二测试端 400, 其中, 在线流量获取装置 100 用于分别从线上网络设备获取流入线上网络设备的流入在线流量和流出线上网络设备的流出在 线流量, 测试控制装置 200 用于根据流入在线流量和流出在线流量建立测试流量库, 并根 据测试流量库分别生成流入测试流量和流出测试流量, 第一测试端 300 用于将流入测试流 量输入被测网络设备, 第二测试端 400 用于接收被测网络设备输出的实际流量, 并将被测 网络设备输出的实际流量与流出测试流量进行对比以生成测试结果。
根据本发明实施例的网络设备的测试系统, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。
在本发明的一个实施例中, 网络设备可以为网关或路由器等网络连接设备。 其中, 线上网络设备可以为线上网关, 被测网络设备可以为被测网关。
在线流量获取装置 100 捕捉线上网关两侧的流量数据。具体地, 在线流量获取装 置 100 分别捕捉流入线上网关的数据流量和流出线上网关的数据流量, 从而获取流入线上 网关的流入在线流量和流出线上网关的流出在线流量。
在本发明的一个实施例中, 在线流量获取装置 100 可以通过预先设置捕捉时间和 流量参数选择捕捉预定时间段内的数量流量或预定大小的数据流量。 在本发明的一个实施例中, 测试控制装置 200 还包括流量分离模块 210, 用于以预 设的异常流量判定规则对流入在线流量和流出在线流量进行分析, 以分别获得异常流量和 正常流量, 并分别将异常流量和正常流量存入异常测试流量库和背景测试流量库。 其中, 异 常流量判断规则中设定有对异常流量数据的特征描述。
具体地, 流量分离模块 210 根据预设的异常流量判断规则将符合异常流量数据的 特征描述的流入在线流量或流出在线流量判断为异常流量, 否则判断为正常流量, 从而将 异常流量和正常流量进行分离。然后, 流量分离模块 210 将上述分离完成的异常流量和正 常流量存储到测试流量库。其中, 测试流量库包括异常测试流量库和背景测试流量库。异 常测试流量库用于存储异常流量, 背景测试流量库用于存储正常流量。
在本发明的一个实施例中, 还可以根据测试配置人工地向异常测试流量库中添加 异常流量。 其中, 测试人员可以根据测试业务类型的不同自行定义异常流量判定规则, 也可 以使用本领域普遍采用的判定规则。
在本发明的一个实施例中, 测试控制装置 200 还包括会话重建模块 220, 用于根据 正常流量构造 TCP 会话, 并在构造的 TCP 会话的不完整时, 进一步对 TCP 会话进行补全, 并 将补全后的 TCP 会话存入所述背景测试流量库。
具体地, 会话重建模块 220 根据正常流量的四元组信息, 将报文哈希 (hash) 到不 同的 TCP 会话中, 从而形成一个 TCP 会话队列。其中, 四元组信息包括源 IP 地址、 源端口、 目的 IP 地址和目的端口。会话重建模块 220 从 TCP 会话队列中顺次取出一个 TCP 会话, 然 后判断 TCP 会话的完整性。
在本发明的一个实施例中, 会话重建模块 220 判断是否已经到达 TCP 会话队列中 的最后一个会话, 如果是, 则判断 TCP 会话是完整的, 将所有重建后的会话报文存入背景测 试流量库。否则判断 TCP 会话是不完整的, 提取 TCP 会话中的所有报文。然后, 判断 TCP 会 话中 TCP 报文中的 TCP 首部校验和 TCP checksum 的值是否正确。其中, TCP checksum 用 于校验报文在传输过程中是否出差错。
会话重建模块 220 计算 TCP 报文校验和, 然后将该 TCP 报文校验和与该报文 的 checksum 字段进行比较, 如果相等, 则表明 TCP checksum 值正确, 检查该 TCP 会话中 SYN(synchronize) 包的数目是否正确, 否则重新计算 TCP checksum 值, 并将重新计算得到 的 TCP checksum 值填入报文的 checksum 字段。
在本发明的一个实施例中, 会话重建模块 220 通过判断 SYN 包序列号是否正确, 从 而检查该 TCP 会话中的 SYN 包的数目是否正确。如果 SYN 包序列号正确, 则检查该 TCP 会 话中数据包的数目是否正确, 否则构造 SYN 包, 从而补充相应的 SYN 包, 将缺失的 SYN 包补 充完整。
在本发明的一个实施例中, 通过检查数据包的序列号是否连续, 是否紧接着 SYN 包序列号出现以及数据包结束后是否紧接着出现 FIN 包, 从而检查 TCP 会话中的数据包的 数目是否正确, 换言之, 检测是否缺少数据包。 如果同时满足数据包的序列号连续、 TCP 会话 中的数据包的数目正确且数据包结束后是否紧接着出现 FIN 包, 则可以判断数据包完整, 检查该 TCP 会话中 FIN 包是否完整。在本发明的实施例中, 通过检查 FIN 包的数目是否正 确, 从而检测该 TCP 会话中 FIN 包是否完整。具体地, 判断首个 FIN 包的序列号之后是否 紧跟着最后一个数据包, 如果是, 则判断 FIN 包完整, 否则构造并补充缺失的 FIN 包。如果 TCP 会话中的数据包不完整, 则构造缺失的数据包, 并将前一个数据包的内容作为构造的数 据包的内容。 在本发明的一个实施例中, 构造缺失的数据包可以理解为补充一个数据包, 其中 补充的该数据包具有缺少的序列号, 并且具有与之前一个数据包或后一个数据包相同的内 容。
在完成上述会话重建后, 将正常流量和异常流量分别存储到背景测试流量库和正 常测试流量库。
测试控制装置 200 分别从背景流量库和异常流量库中抽取流量数据, 作为测试中 的数据来源。 将报文中源 IP 地址和目的 IP 地址相反的数据报文区分开, 从而分别形成流入 测试流量和流出测试流量, 其中, 流入测试流量作为源流量, 流出测试流量作为目的流量。 一般而言, 将发送 SYN 包的 IP 作为源 IP, 发自源 IP 的报文设置为源流量。
第一测试端 300 通过第一网关将流入测试流量输入到被测网络设备, 第二测试端 400 通过第二网关接收被测网络设备输出的实际流量, 并将被测网络设备输出的实际流量 与流出测试流量进行比对以生成测试结果。 其中, 第一测试端作为发端, 第二测试端作为收 端。
在本发明的一个实施例中, 测试控制装置 200 还包括存储模块 230 和智能决策模 块 240, 其中, 存储模块 230 用于存储预设的质量标准, 智能决策模块 240 用于根据测试结果 与质量标准进行比对以判断是否达到质量标准, 且在未达到质量标准时, 进一步判断原因, 并根据判断的原因生成新的时间或流量参数, 并将生成的新的时间或流量参数发送至所述 在线流量获取装置。
如果智能决策模块 240 判断测试结果未达到质量标准的原因是测试数据量不足、 数据类型缺乏或测试脚本没有执行完毕等原因, 则生成调整后的时间或流量参数, 由在线 流量获取装置 210 重新捕捉流量, 重新一轮测试。否则, 判断为由于被测设备原因导致没有 达到质量标准, 则认为被测设备相关测试项未通过。
在本发明的一个实施例中, 测试控制装置 200 还包括报表 / 报警模块。如果测试 结果不低于质量标准要求, 则报表 / 报警模块展示并通告测试结果, 如果测试结果低于质 量标准要求, 则报表 / 报警模块将测试结果发送给测试人员, 并且在情况严重时向测试人 员发出报警通知。在本发明的一个实施例中, 报警通知可以采用邮件或短信等方式发送。
根据本发明实施例的网络设备的测试系统, 可以通过获取流经网络设备两侧的在 线流量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方 式完成测试, 从而提高了测试效率和测试准确度。
下面参考图 12 描述根据本发明实施例的测试控制装置。
如图 12 所示, 本发明实施例提供的测试控制装置包括接收模块 1210、 测试流量库 模块 1220 和中控调度模块 1230。其中, 接收模块 1210 用于接收流入线上网络设备的流入 在线流量和流出线上网络设备的流出在线流量, 测试流量库模块 1220 用于根据流入在线 流量和流出在线流量建立测试流量库, 中控调度模块 1230 用于根据测试流量库分别生成 流入测试流量和流出测试流量。
在本发明的一个实施例中, 测试控制装置还包括流量分离模块, 用于以预设的异 常流量判定规则对流入在线流量和流出在线流量进行分析, 以分别获得异常流量和正常流 量。 在本发明的一个实施例中, 测试流量库包括异常测试流量库和背景测试流量库, 其中异常测试流量库用于存储异常流量, 背景测试流量库用于存储正常流量。
在本发明的一个实施例中, 测试控制装置还包括会话重建模块, 用于根据正常流 量构造 TCP 会话, 并在构造的 TCP 会话的不完整时, 进一步对 TCP 会话进行补全, 并将补全 后的 TCP 会话存入背景测试流量库。
中控调度模块 1230 根据测试流量库模块 1220 中的流入在线流量和流出在线流量 分别生成流入测试流量和流出测试流量。
在本发明的一个实施例中, 测试控制装置还包括存储模块和智能决策模块, 其中, 存储模块用于存储预设的质量标准, 智能决策模块用于根据测试结果与质量标准进行比对 以判断是否达到量标准, 且在未达到质量标准时, 进一步判断原因, 并根据判断的原因生成 新的时间或流量参数, 并将生成的新的时间或流量参数发送至在线流量获取装置。
根据本发明实施例的测试控制装置, 可以通过获取流经网络设备两侧的在线流 量, 生成相应的测试流量, 从而为被测网络设备构造真实线上环境, 并且采用自动化方式完 成测试, 从而提高了测试效率和测试准确度。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为, 表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、 片段或部 分, 并且本发明的优选实施方式的范围包括另外的实现, 其中可以不按所示出或讨论的顺 序, 包括根据所涉及的功能按基本同时的方式或按相反的顺序, 来执行功能, 这应被本发明 的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和 / 或步骤, 例如, 可以被认为是 用于实现逻辑功能的可执行指令的定序列表, 可以具体实现在任何计算机可读介质中, 以 供指令执行系统、 装置或设备 ( 如基于计算机的系统、 包括处理器的系统或其他可以从指 令执行系统、 装置或设备取指令并执行指令的系统 ) 使用, 或结合这些指令执行系统、 装置
或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、 存储、 通信、 传播或传输程序以供指令执行系统、 装置或设备或结合这些指令执行系统、 装置或设备而 使用的装置。计算机可读介质的更具体的示例 ( 非穷尽性列表 ) 包括以下 : 具有一个或多 个布线的电连接部 ( 电子装置 ), 便携式计算机盘盒 ( 磁装置 ), 随机存取存储器 (RAM), 只 读存储器 (ROM), 可擦除可编辑只读存储器 (EPROM 或闪速存储器 ), 光纤装置, 以及便携式 光盘只读存储器 (CDROM)。 另外, 计算机可读介质甚至可以是可在其上打印所述程序的纸或 其他合适的介质, 因为可以例如通过对纸或其他介质进行光学扫描, 接着进行编辑、 解译或 必要时以其他合适方式进行处理来以电子方式获得所述程序, 然后将其存储在计算机存储 器中。
应当理解, 本发明的各部分可以用硬件、 软件、 固件或它们的组合来实现。在上述 实施方式中, 多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如, 如果用硬件来实现, 和在另一实施方式中一样, 可用本领域公知的下 列技术中的任一项或他们的组合来实现 : 具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路, 具有合适的组合逻辑门电路的专用集成电路, 可编程门阵列 (PGA), 现场 可编程门阵列 (FPGA) 等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步 骤是可以通过程序来指令相关的硬件完成, 所述的程序可以存储于一种计算机可读存储介 质中, 该程序在执行时, 包括方法实施例的步骤之一或其组合。
此外, 在本发明各个实施例中的各功能单元可以集成在一个处理模块中, 也可以 是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现, 也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时, 也可以存储在一个计算机 可读取存储介质中。
上述提到的存储介质可以是只读存储器, 磁盘或光盘等。
在本说明书的描述中, 参考术语 “一个实施例” 、 “一些实施例” 、 “示例” 、 “具体示 例” 、 或 “一些示例” 等的描述意指结合该实施例或示例描述的具体特征、 结构、 材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中, 对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且, 描述的具体特征、 结构、 材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例, 对于本领域的普通技术人员而言, 可以 理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、 修改、 替换 和变型, 本发明的范围由所附权利要求及其等同限定。