CN103259699B - 测试方法、系统及客户端和服务端 - Google Patents
测试方法、系统及客户端和服务端 Download PDFInfo
- Publication number
- CN103259699B CN103259699B CN201310203941.0A CN201310203941A CN103259699B CN 103259699 B CN103259699 B CN 103259699B CN 201310203941 A CN201310203941 A CN 201310203941A CN 103259699 B CN103259699 B CN 103259699B
- Authority
- CN
- China
- Prior art keywords
- test
- connection device
- strategy
- client
- service end
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种测试方法、系统及客户端和服务端。测试方法包括:客户端通过连接设备向服务端发送预设的测试策略;客户端根据测试策略运行预设的应用程序,以产生数据流并将产生的数据流发送到待测试的深度包检测DPI系统,以使待测试的DPI系统对数据流进行识别,得到识别结果并将识别结果发送给服务端,使得服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,进而使得连接设备根据控制策略对数据流进行流控制以使预设的应用程序的运行状态发生相应变化;客户端检测预设的应用程序的实时状态并进行相应处理。本申请降低了人工测试等成本,而且自动化操作测试的方式,有效地提高了工作效率。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种测试方法和测试系统,还涉及该测试系统中的客户端和服务端。
背景技术
DPI(DeepPacketInspection,深度包检测)系统相对于SPI(ShallowPacketInspect,浅层报文分析)系统而言,除了分析IP包的L2/L3/L4的内容(包括MAC地址、IP地址、IP协议字段和TCP/UDP端口号)等,还增加了应用层分析。另外,由于SPI系统往往是通过知名端口来识别应用程序,所以容易受非法应用程序采用隐藏或假冒端口号等方式的欺骗,而深度包检测系统则可以对L7进行协议识别,通过协议识别和协议解析,能识别各种真实的应用程序及其内容,实现应用级的差别业务。
然而,随着互联网的高速发展,新的网络应用程序层出不穷,更新频繁,因此有需要保证深度包检测系统能及时地支持识别新的网络应用程序及变种,相应的,就需要对深度包检测系统进行频繁高效的测试。
但是现有技术对深度包检测系统的测试,经常需要人工在线抓取数据包,基于数据包回放进行测试验证,然后在线测试其识别能力,整个过程的人工参与高,成本高,而且效率低。而且面对复杂、变化繁多的应用程序以及应用程序的变种,人工测试覆盖面偏小。
发明内容
有鉴于此,本申请提供了一种测试方法、系统及客户端和服务端,以在线自动化测试DPI系统,提高DPI系统测试的效率、真实性和测试覆盖率。
为解决上述问题,本申请第一方面提供一种测试方法,该测试方法包括:客户端通过连接设备向服务端发送预设的测试策略;所述客户端根据所述测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由所述连接设备发送到待测试的深度包检测DPI系统,以使所述待测试的DPI系统对所述数据流进行识别,得到识别结果并将所述识别结果发送给所述服务端,使得所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,进而使得所述连接设备根据所述控制策略对所述数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化;所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理。
结合第一方面,在第一种可能的实现方式中,在所述客户端通过连接设备向服务端发送预设的测试策略之前,还包括:所述客户端通过所述连接设备向所述服务端发送开始测试指令。所述客户端根据所述测试策略运行预设的应用程序,具体包括:在获取到所述服务端返回的就绪指令时,所述客户端根据所述测试策略运行所述预设的应用程序,其中,所述就绪指令由所述服务端在接收到所述开始测试指令后,根据所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包、且在所述连接设备准备就绪后发送的。所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理,具体包括:所述客户端根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功,并根据所述测试策略判断是否继续测试。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述在获取到所述服务端返回的就绪指令时,所述客户端根据所述测试策略运行所述预设的应用程序之后,还包括:获取所述数据流的五元组信息与所述预设的应用程序进程的关系并进行记录。在根据所述测试策略判断是否继续测试之后,还包括:当判断出不需要继续测试时,所述客户端产生停止测试指令并将所述五元组信息和所述停止测试指令发送给所述服务端,以使得所述服务端通知所述连接设备和所述DPI系统停止对所述客户端的数据流的相关动作,并使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为所述客户端的样品,所述样品用于进行离线测试;所述客户端在接收所述服务端根据所述停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
结合第一方面、第一方面的第一种可能或第二种可能的实现方式,在第三种可能的实现方式中,所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理的步骤之前还包括:所述客户端通过所述连接设备接收所述服务端返回的流速信息,其中,所述流速信息是所述连接设备根据所述控制策略对所述数据流进行流控制后,通过所述连接设备计算得到;所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并通过所述连接设备向所述服务端发送所述更新的测试策略;所述客户端根据所述更新的测试策略运行所述预设的应用程序以产生新的数据流,并将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果,并将所述新的识别结果发送给所述服务端,使得所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理,包括:所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述更新的测试策略判断而得到测试结果,进而根据所述更新的测试策略进行相应处理。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述客户端根据流速信息和所述测试策略处理得到更新的测试策略,包括:所述客户端根据所述流速信息和所述测试策略在当前的测试策略上增加和/或减少子策略、或替换新的测试策略从而得到所述更新的测试策略。
为解决上述问题,本申请第二方面提供一种客户端,该客户端包括收发模块、应用处理模块和自控检测模块。所述收发模块用于通过连接设备向服务端发送预设的测试策略。所述应用处理模块用于在所述收发模块发送所述测试策略后,根据所述测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由所述连接设备发送到待测试的深度包检测DPI系统,以使所述待测试的DPI系统对所述数据流进行识别,得到识别结果并将所述识别结果发送给所述服务端,使得所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,进而使得所述连接设备根据所述控制策略对所述数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。所述自控检测模块用于在所述应用处理模块运行所述预设的应用程序后,检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试结果进行相应处理。
结合第二方面,在第一种可能的实现方式中,所述收发模块还用于在发送所述测试策略之前,通过所述连接设备向所述服务端发送开始测试指令。所述应用处理模块具体用于在所述收发模块获取到所述服务端返回的就绪指令时,根据所述测试策略运行所述预设的应用程序,其中,所述就绪指令由所述服务端在接收到所述开始测试指令后,根据所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包、且在所述连接设备准备就绪后发送的。所述自控检测模块具体用于根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功,并根据所述测试策略判断是否继续测试。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述应用处理模块还用于在运行所述预设的应用程序之后,获取所述数据流的五元组信息与所述预设的应用程序进程的关系以进行记录。所述自控检测模块,具体包括测试判断单元和测试处理单元:所述测试判断单元用于根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,并根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功、进而根据所述测试策略判断是否继续测试;所述测试处理单元用于在所述测试判断单元判断到不需要继续测试时,产生停止测试指令并通过所述收发模块将所述应用处理模块获取到的所述五元组信息和所述停止测试指令发送给所述服务端,以使得所述服务端通知所述连接设备和所述DPI系统停止对所述客户端的数据流的相关动作,并使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为所述客户端的样品,所述样品用于进行离线测试。其中,在所述收发模块接收到所述服务端根据所述停止测试指令执行相关动作后所返回的结束测试成功指令时,所述测试处理单元还用于记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
结合第二方面、第二方面的第一种可能或第二种可能的实现方式,在第三种可能的实现方式中,所述收发模块还用于通过所述连接设备接收所述服务端返回的流速信息,其中,所述流速信息是所述连接设备根据所述控制策略对所述数据流进行流控制后,通过所述连接设备计算得到。所述自控检测模块还用于根据所述收发模块接收到的所述流速信息和所述测试策略处理得到更新的测试策略,并通过所述收发模块经由所述连接设备向所述服务端发送所述更新的测试策略。所述应用处理模块还用于根据所述自控检测模块处理得到的所述更新的测试策略运行所述预设的应用程序以产生新的数据流,并将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果,并将所述新的识别结果发送给所述服务端,使得所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。所述自控检测模块,还用于检测所述预设的应用程序的实时状态并根据所述实时状态和所述更新的测试策略判断而得到测试结果,进而根据所述更新的测试策略进行相应处理。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述自控检测模块具体用于根据所述收发模块接收到的所述流速信息和所述测试策略在当前的测试策略上增加和/或减少一个子策略、或替换新的测试策略从而得到所述更新的测试策略。
为解决上述问题,本申请第三方面提供一种测试方法,该测试方法包括:服务端通过连接设备接收客户端发送的测试策略,所述测试策略用于对待测试的深度包检测DPI系统进行测试;所述服务端通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流;所述服务端将所述数据流发送到所述待测试的DPI系统进行识别以获取识别结果;所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,以使得所述连接设备根据所述控制策略对所述数据流进行流控制。
结合第三方面,在第一种可能的实现方式中,在所述服务端通过连接设备接收客户端发送的测试策略之前,还包括:所述服务端通过所述连接设备接收所述客户端发送过来的开始测试指令。所述服务端通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流,具体包括:所述服务端根据所述开始测试指令及所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包;在所述连接设备准备就绪后所述服务端产生就绪指令并将所述就绪指令通过所述连接设备发送给所述客户端;所述服务端通过所述连接设备获取所述客户端根据所述就绪指令产生的所述数据流。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备之后,还包括:所述服务端通过所述连接设备接收所述客户端发送过来的所述数据流的五元组信息和停止测试指令,其中,所述停止测试指令用于指示停止对所述待测试的DPI系统的测试;所述服务端根据所述停止测试指令通知所述待测试的DPI系统和所述连接设备停止对所述客户端的所述数据流的相关动作,并将所述五元组信息发送给所述连接设备,以使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,所述样品用于进行离线测试;所述服务端产生结束测试成功指令并通过所述连接设备发送给所述客户端,以使得所述客户端在接收到所述结束测试成功指令后,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
结合第三方面或第三方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备之后,还包括:所述服务端接收所述连接设备根据所述控制策略计算得到的所述数据流的流速信息,并将所述流速信息通过所述连接设备发送给所述客户端,以使所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并根据所述更新的测试策略运行所述预设的应用程序产生新的数据流,以及将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果并将所述新的识别结果发送给所述服务端;所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。
为解决上述问题,本申请第四方面提供一种服务端,该服务端包括收发模块、测试控制模块、DPI模块和决策处理模块。所述收发模块用于通过连接设备接收客户端发送的测试策略,所述测试策略用于对待测试的深度包检测DPI系统进行测试。所述测试控制模块用于通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流。所述DPI模块用于将所述测试控制模块获取到的所述数据流发送到所述待测试的DPI系统进行识别以获取识别结果。所述决策处理模块用于根据所述测试策略和所述识别结果产生控制策略并通过所述收发模块将所述控制策略发送给所述连接设备,以使得所述连接设备根据所述控制策略对所述数据流进行流控制。
结合第四方面,在第一种可能的实现方式中,所述收发模块还用于在通过连接设备接收客户端发送的测试策略之前,通过所述连接设备接收所述客户端发送过来的开始测试指令。所述测试控制模块具体包括识别处理单元、指令产生单元和控制单元:所述识别处理单元用于根据所述收发模块接收到的所述开始测试指令及所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包;所述指令产生单元用于在所述连接设备准备就绪后产生就绪指令并将所述就绪指令通过所述连接设备发送给所述客户端;所述控制单元用于通过所述连接设备获取所述客户端根据所述就绪指令产生的所述数据流。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述收发模块还用于在将所述控制策略发送给所述连接设备之后,通过所述连接设备接收所述客户端发送过来的所述数据流的五元组信息和停止测试指令,其中,所述停止测试指令用于指示停止对所述待测试的DPI系统的测试。所述控制单元还用于根据所述停止测试指令通知所述待测试的DPI系统和所述连接设备停止对所述客户端的所述数据流的相关动作,并通过所述收发模块将所述五元组信息发送给所述连接设备,以使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,所述样品用于进行离线测试。所述指令产生单元还用于产生结束测试成功指令并通过所述连接设备发送给所述客户端,以使得所述客户端在接收到所述结束测试成功指令后,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
结合第四方面或第四方面的第一种可能的实现方式,在第三种可能的实现方式中,所述收发模块还用于接收所述连接设备根据所述控制策略计算得到的所述数据流的流速信息,并将所述流速信息通过所述连接设备发送给所述客户端,以使所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并根据所述更新的测试策略运行所述预设的应用程序产生更新的数据流。所述DPI模块还用于将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果。所述决策处理模块还用于根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。
为解决上述问题,本申请第五方面提供一种测试系统,该测试系统包括第二方面及其第一到第四种可能中任一种可能的实现方式的客户端、第四方面及其第一到第三种可能中任一种可能的实现方式的服务端。
结合第五方面,在第一种可能的实现方式中,所述客户端为多个,所述服务端为一个,多个所述客户端通过一个或多个所述连接设备与所述服务端相连接。
本发明实施例利用客户端设置专门用于DPI系统的测试策略,并通过客户端自动运行应用程序产生数据流,而产生的数据流经由连接设备的作用发送到DPI系统进行识别测试;而服务端根据识别结果和测试策略产生控制策略并通过连接设备进行流控制,使得应用程序的运行状态发生相应变化;此时,客户端可以通过定时或不定时的检测应用程序的运行状态,譬如测试策略对该应用程序设置了放行、限流和/或阻断等操作,而该应用程序的运行状态没有发生相应的变化(如停止运行、正常运行或运行缓慢等),则可以认为DPI系统识别失败等,因此可以快速地测试DPI系统的识别能力。本发明实施例对DPI系统的自动化操作测试的方式,提高了测试效率的同时,能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,可以有效地扩大测试的覆盖面。
附图说明
图1A是实现本申请测试方法的测试系统一实施方式的部署方式示意图;
图1B是本申请测试方法第一实施方式的流程示意图;
图2是本申请测试方法第二实施方式的流程示意图;
图3是本申请测试方法第三实施方式的流程示意图;
图4是本申请测试方法第四实施方式的流程示意图;
图5是本申请客户端第一实施方式的模块框图;
图6是本申请客户端第二实施方式的模块框图;
图7是本申请测试方法第五实施方式的流程示意图;
图8是本申请测试方法第六实施方式的流程示意图;
图9是本申请测试方法第七实施方式的流程示意图;
图10是本申请测试方法第八实施方式的流程示意图;
图11是用于本申请的连接设备第一实施方式的模块框图;
图12是用于本申请的连接设备第二实施方式的模块框图;
图13是本申请测试方法第九实施方式的流程示意图;
图14是本申请测试方法第十实施方式的流程示意图;
图15是本申请测试方法第十一实施方式的流程示意图;
图16是本申请测试方法第十二实施方式的流程示意图;
图17是本申请服务端第一实施方式的模块框图;
图18是本申请服务端第二实施方式的模块框图;
图19是本申请测试系统一实施方式的模块框图,其中,测试系统包括图5所示的客户端、图11所示的连接设备以及图17所示的服务端;以及
图20是图19所示的测试系统的信息交互示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透切理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面结合附图和具体的实施方式进行说明。
请参阅图1A和图1B,图1A是实现本申请测试方法的测试系统一实施方式的部署方式示意图,图1B是本申请测试方法第一实施方式的流程示意图。需要说明的是,本实施方式测试方法可以通过图1A所示的一个或多个客户端执行,本实施方式的客户端可以为笔记本电脑、手机、台式电脑和掌上电脑中的一个或多个的任意组合。譬如本实施方式的部署方式包括:可以是多个客户端通过一个连接设备与单个服务端相连接;也可以为单个客户端通过一个连接设备与单个服务端相连接;也可以为多个客户端先与多个其他的客户端相连接,再经由连接设备与单个服务端相连接;此外,也可以是单个客户端与单个客户端连接之后再通过一个连接设备与单个服务端相连接,在本技术领域人员理解的范围内,不作限定。
本实施方式测试方法包括但不限于以下几个步骤。
步骤S100,客户端通过连接设备向服务端发送预设的测试策略。
在步骤S100中,客户端可以通过智能自动设置测试策略,也可以读取用户即时设置的测试策略,或者根据实际需要而通过有线或无线等网络下载更新专门针对DPI系统的测试策略,本实施方式不作限定。另外,客户端、连接设备以及服务端之间可以通过有线或无线的方式建立连接,在此不作细述。
值得注意的是,本实施方式测试方法可以通过设定的时间点、时间段、人工、或其他事件进行触发以开始进行测试,在此不作限定。
在本实施方式中,测试策略可以包括如表一所示,在本技术领域人员理解的情况下,不作细述,其中以应用程序A和/或B为例进行描述。
序号 | 场景 | 说明 |
1 | 应用程序A与对端正常通信 | |
2 | 限制应用程序A到某速率 | 加上限制速率的时间 |
3 | 限制应用程序A的每一条流到某速率 | 加上限制速率的时间 |
4 | 限制应用程序A的某一个或多个子应用到某速率 | 加上限制速率的时间 |
5 | 限制应用程序A的某个或多个子应用的每一条流到某速率 | 加上限制速率的时间 |
6 | 阻断应用程序A | 加上阻断应用的时间 |
7 | 阻断应用程序A的某个或多个子应用 | 加上阻断应用的时间 |
8 | 应用程序B采用序号1~7的场景和应用程序A有机组合 | 加上时间组合 |
表一
步骤S101,客户端根据测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由连接设备发送到待测试的深度包检测DPI系统,以使待测试的DPI系统对数据流进行识别,得到识别结果并将识别结果发送给服务端,使得服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,进而使得连接设备根据控制策略对数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
在步骤S101中,客户端可以通过自动化操作软件运行操作应用程序A(如QQ等),譬如具体操作聊天、发送图片、发送视频等预设的场景动作,此时将产生数据流。需要说明的是,服务端待测试的DPI系统将对应用层进行分析识别,具体通过协议识别和协议解析等,以识别数据流对应的真实的应用及其内容。
具体而言,DPI系统根据当前识别能力识别数据流,并可以记录识别结果。识别结果可以包括无法识别和可以识别,在可以识别时具体识别其L7协议名、第几包识别和/或流量等,并可以进行相关记录。
而在步骤S101中,控制策略可以相应地包括“在无法识别时,在某个时间段放行(不处理)”、“在无法识别时,在某个时间段阻断(完全限速)”、“在无法识别时,在某个时间段限流”、“在可以识别时,限制应用程序A到100kb/s速率并维持10秒”或其他根据表一所示的场景进行控制。不难理解,在进行上述控制后,应用程序的运行状态发生将相应变化,如无法正常运行、运行缓慢或仍保持正常运行等实时状态,其具体将根据控制策略中的场景进行设定。
步骤S102,客户端检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,进而根据测试策略进行相应处理。
举例而言,在步骤S102中客户端定时(具体可以以周期的形式)或不定时地检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,如判断到应用程序A并没有根据表一中的场景限制条件进行运行后所发生的相应变化,则其可以认为DPI系统识别失败,即本次测试失败。客户端进而根据测试策略进行相应处理,如识别失败,可以返回重新测试,或切换应用程序进行测试也可以更改测试策略的场景等进行测试,在此不作限定。
此外,需要说明的是,本实施方式测试方法还可以用于其他类似于DPI系统的其他网络数据流识别或决策系统的测试,在本技术领域人员理解的范围内,不一一举例描述。
本实施方式利用客户端设置测试策略,并通过客户端自动运行应用程序产生数据流,发送到DPI系统进行识别测试;而服务端根据识别结果和测试策略产生控制策略并通过连接设备进行流控制,使得应用程序的运行状态发生相应变化;此时,客户端可以通过定时或不定时的检测应用程序的运行状态,可以快速地测试DPI系统的识别能力。本实施方式对DPI系统的自动化操作测试的方式,提高了测试效率的同时,能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,因此可以有效地扩大测试的覆盖面。
请结合前面的实施方式参阅图2,图2是本申请测试方法第二实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的客户端执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S200,客户端通过连接设备向服务端发送开始测试指令和预设的测试策略。
在步骤S200中,客户端可以通过智能自动设置测试策略,也可以读取用户设置的测试策略。
需要说明的是,为了实现在线、自动化智能测试,本实施方式客户端可以通过事件触发等方式开始测试,且为了保证测试效果,客户端需产生开始测试指令发送给服务端,使连接设备和服务端都进入准备测试的状态。此外,客户端可以通过连接设备同时向服务端发送开始测试指令和预设的测试策略;客户端也可以先将开始测试指令发送给服务端再将测试策略发送给服务端;客户端也可以先将测试策略发送给服务端再将开始测试指令发送给服务端,在此不作限定。
步骤S201,在获取到服务端返回的就绪指令时,客户端根据测试策略运行预设的应用程序,其中,就绪指令由服务端在接收到开始测试指令后,根据客户端的IP地址识别客户端的身份并通知连接设备准备抓取IP地址对应的客户端的数据包、且在连接设备准备就绪后发送的。
在步骤S201中,如上所述,当连接设备及服务端准备就绪后,客户端可以开始运行预设的应用程序(如A)。此外,需要指出的是,本实施方式测试方法可以设置多个客户端,即服务端在进行测试时需要预先判断客户端的身份才能对不同的客户端进行不同的测试处理;而当服务端根据客户端的IP地址判断并识别出该客户端的身份后,连接设备在抓取该IP地址对应的客户端的数据包后将根据该客户端的身份进行记录保存以备查询或可以后续使用等,在此不作赘述。
如前所述,在步骤S201中包括DPI系统根据当前识别能力识别数据流,并记录识别结果等过程。识别结果可以包括无法识别和可以识别,在可以识别时具体识别其L7协议名、第几包识别和/或流量等,并可以进行相关记录以备记录测试过程和判断测试结果。在DPI系统进行识别并得到识别结果后,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,连接设备根据控制策略对数据流进行流控制,使得预设的应用程序的运行状态发生相应变化。其中,控制策略可以相应地包括“在无法识别时,放行(不处理)”、“在可以识别时,限制应用程序A到100kb/s速率”或其他根据表一所示的场景进行控制。不难理解,在进行上述控制后,应用程序的运行状态发生将相应变化,如无法正常运行、运行缓慢或仍保持正常运行等实时状态,其具体将根据控制策略中的场景进行设定。
步骤S202,客户端根据流控制的放行、限流和/或阻断操作判断预设的应用程序的实时状态,根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功,并根据测试策略判断是否继续测试。
本实施方式中,客户端可以周期地根据流控制的放行、限流和/或阻断操作判断预设的应用程序的实时状态,根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试以进行相应处理。如判断到应用程序A并没有根据表一中的场景限制条件进行运行后所发生的相应变化,则其可以认为DPI系统识别失败,即本次测试失败。客户端进而根据测试策略进行相应处理,如识别失败,可以返回重新测试,或切换应用程序进行测试也可以更改测试策略的场景等进行测试,在此不作限定。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大测试的覆盖面。此外,本实施方式还可以通过识别IP地址的动作,实现多个客户端同时进行在线测试的方式,提高了测试效率。
请结合前面实施方式参阅图3,图3是本申请测试方法第三实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的客户端执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S300,客户端通过连接设备向服务端发送开始测试指令和预设的测试策略。
其中,步骤S300可以参阅前面实施方式的相关描述,在此不作赘述。
步骤S301,在获取到服务端返回的就绪指令时,客户端根据测试策略运行预设的应用程序,并获取数据流的五元组信息与预设的应用程序进程的关系并进行记录。
需要说明的是,在步骤S301中,客户端可以通过操作来获取数据流的五元组信息(即源IP、目的IP、源端口、目的端口和传输层协议等)。而连接设备在抓取用户的数据包后,可以保存为cap或pcap格式的文件,同时可以以客户端+测试场景+时间戳进行命名并作相应记录,同时将数据流分发到DIP系统进行识别。
步骤S302,客户端根据流控制的放行、限流和/或阻断操作判断预设的应用程序的实时状态,根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功,并根据测试策略判断是否继续测试。
需要指出的是,本实施方式连接设备在进行流控制后,可以向客户端发出信号而使得客户端可以在流控制后才进行检测应用程序的实时状态并作进一步的判断,在本技术领域人员理解的范围内,不作限定。
步骤S303,当判断出不需要继续测试时,客户端产生停止测试指令并将五元组信息和停止测试指令发送给服务端,以使得服务端通知连接设备和DPI系统停止对客户端的数据流的相关动作,并使连接设备根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为客户端的样品,样品用于进行离线测试。
相对于现有技术而言,由于大部分测试采用离线测试,然而离线测试依赖已经抓取的样本,样本不足则失真越大,同时样本主要靠人工获取,效率低。本实施方式通过步骤S303,能够采用智能自动化的方式获取到较纯的数据包样品,能较大限度地降低失真,以备在后续需要对DPI系统进行离线测试时,采用该提纯过滤保存的样品来提高测试成功率和测试范围的覆盖面。
步骤S304,客户端在接收服务端根据停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
在步骤S304中,为了得到较好的测试效果或防止误操作所引起的误差,可以设置循环测试及其循环测试的次数,还可以在每次测试时进行场景切换,在本技术领域人员理解的范围内,不作赘述。
与前面实施方式不同之处在于,本实施方式可以获取到样品足的数据包,并可以用于后续的离线测试,从而可以对本次测试进行验证校准等,有效地保证了离线测试的覆盖面和效率。
请结合前面一个或多个实施方式参阅图4,图4是本申请测试方法第四实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的客户端执行,本实施方式测试方式包括但不限于以下几个步骤。
步骤S400,客户端通过连接设备向服务端发送预设的测试策略。
步骤S401,客户端根据测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由连接设备发送到待测试的深度包检测DPI系统,以使待测试的DPI系统对数据流进行识别,得到识别结果并将识别结果发送给服务端,使得服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,进而使得连接设备根据控制策略对数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
步骤S402,客户端通过连接设备接收服务端返回的流速信息,其中,流速信息是连接设备根据控制策略对数据流进行流控制后,通过连接设备计算得到。
本实施方式需要说明的是,现有技术中由于部分应用程序针对网络质量(网络状态的好坏)作了适应性的功能,比如当网络速度降到指定阈值时,应用程序与对端之间将采用新的传输方式(其运行状态可以发生改变也可以不发生改变)。因此,在步骤S402中,为了保证DPI系统的识别效果识别能力,本实施方式的测试策略需要根据流速信息进行相应调整;换而言之,可以视为主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力。
步骤S403,客户端根据流速信息和测试策略处理得到更新的测试策略,并通过连接设备向服务端发送更新的测试策略。
如前所述,在预设的应用程序具备变换为新的传输方式的能力时,客户端需要对原测试策略作调整,客户端具体可以根据流速信息和测试策略在当前的测试策略上增加和/或减少子策略、或替换新的测试策略从而得到更新的测试策略,在此不作限定。
在步骤S403之后,可以循环返回执行步骤S401。具体而言,客户端根据更新的测试策略运行预设的应用程序以产生新的数据流,并将新的数据流发送到待测试的DPI系统;以使待测试的DPI系统对新的数据流进行识别,得到新的识别结果,并将新的识别结果发送给服务端;使得服务端根据更新的测试策略和新的识别结果产生新的控制策略并将新的控制策略发送给连接设备,进而使得连接设备根据新的控制策略对新的数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
需要说明的是,测试策略可以设定循环测试的次数,即计算流速信息并反馈给客户端处理得到更新的测试策略的次数,使得DPI系统能够对该应用程序的大部分变种都进行识别测试,使DPI系统更加接近实际的网络环境和应用程序,从而保证测试的效率。
步骤S404,客户端检测预设的应用程序的实时状态并根据实时状态和更新的测试策略判断而得到测试结果,进而根据更新的测试策略进行相应处理。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大测试的覆盖面。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请结合前面实施方式参阅图5,图5是本申请客户端第一实施方式的模块框图,本实施方式客户端包括但不限于收发模块51、应用处理模块52和自控检测模块53。
收发模块51用于通过连接设备向服务端发送预设的测试策略。
应用处理模块52用于在收发模块51发送测试策略后,根据测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由连接设备发送到待测试的深度包检测DPI系统,以使待测试的DPI系统对数据流进行识别,得到识别结果并将识别结果发送给服务端,使得服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,进而使得连接设备根据控制策略对数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
自控检测模块53用于在应用处理模块52运行预设的应用程序后,检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,进而根据测试结果进行相应处理。
与前面实施方式相对应的是,进一步而言,收发模块51还用于在发送测试策略之前,通过连接设备向服务端发送开始测试指令,当然,也可以同时发送测试策略和开始测试指令,在此不作限定。而应用处理模块52具体用于在收发模块51获取到服务端返回的就绪指令时,根据测试策略运行预设的应用程序,其中,就绪指令由服务端在接收到开始测试指令后,根据客户端的IP地址识别客户端的身份并通知连接设备准备抓取IP地址对应的客户端的数据包、且在连接设备准备就绪后发送的。同时,自控检测模块53具体用于在应用处理模块52运行预设的应用程序且连接设备对数据流进行流控制后,根据流控制的放行、限流和/或阻断操作判断预设的应用程序的实时状态,根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功,并根据测试策略判断是否继续测试。
本实施方式客户端请参阅前面实施方式测试方法的相关描述,需要说明的是,本实施方式客户端可以包括台式电脑、平板电脑(如IPad)、掌上电脑(PDA)、笔记本电脑和智能手机,在进行测试时,也可以采用其中的两个或以上进行混搭使用,在本技术领域人员理解的范围内,不作限定。
本实施方式采用客户端对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包进行测试验证所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了效率,还可以有效地扩大测试的覆盖面。此外,本实施方式还可以通过识别IP地址的动作,实现多个客户端同时进行在线测试的方式,提高了测试效率。
请结合前面实施方式参阅图6,图6是本申请客户端第二实施方式的模块框图,本实施方式客户端包括但不限于收发模块51、应用处理模块52和自控检测模块53,自控检测模块53具体可以包括测试判断单元531和测试处理单元532。
与前面实施方式不同之处在于,应用处理模块52还用于运行预设的应用程序之后,获取数据流的五元组信息与预设的应用程序进程的关系以进行记录。测试判断单元531用于在应用处理模块52运行预设的应用程序产生数据流且连接设备对数据流进行流控制后,根据流控制的放行、限流和/或阻断操作判断预设的应用程序的实时状态,并根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功、进而根据测试策略判断是否继续测试;测试处理单元532用于在测试判断单元531判断到不需要继续测试时,产生停止测试指令并通过收发模块51将应用处理模块52获取到的五元组信息和停止测试指令发送给服务端,以使得服务端通知连接设备和DPI系统停止对客户端的数据流的相关动作,并使连接设备根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为客户端的样品,样品用于进行离线测试。
此外,在收发模块51接收到服务端根据停止测试指令执行相关动作后所返回的结束测试成功指令时,测试处理单元532具体还用于记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
现有技术由于大部分测试采用离线测试,然而离线测试依赖已经抓取的样本,样本不足则失真越大,同时样本主要靠人工获取,效率低。本实施方式能够采用智能自动化的方式获取到较纯的数据包样本,能较大限度地降低失真,以备在后续需要对DPI系统进行离线测试时,提高测试成功率和测试范围的覆盖面。
请结合图5和图6,进一步而言,收发模块51具体还可以用于通过连接设备接收服务端返回的流速信息,其中,还用于通过连接设备接收服务端返回的流速信息,其中,流速信息是连接设备根据控制策略对数据流进行流控制后,通过连接设备计算得到。具体来说,数据流由DPI系统进行识别并将识别结果发送给服务端后,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,接着连接设备根据控制策略对数据流进行流控制并计算得到数据流的流速信息。
自控检测模块53还可以用于根据收发模块51接收到的流速信息和测试策略处理得到更新的测试策略,并通过收发模块51经由连接设备向服务端发送更新的测试策略。
相应地,应用处理模块52还可以用于根据自控检测模块53处理得到的更新的测试策略运行预设的应用程序以产生新的数据流,并将新的数据流发送到待测试的DPI系统,以使待测试的DPI系统对新的数据流进行识别,得到新的识别结果,并将新的识别结果发送给服务端,使得服务端根据更新的测试策略和新的识别结果产生新的控制策略并将新的控制策略发送给连接设备,进而使得连接设备根据新的控制策略对新的数据流进行流控制以使预设的应用程序的运行状态发生相应变化。接着,自控检测模块53还用于检测预设的应用程序的实时状态并根据实时状态和更新的测试策略判断而得到测试结果,进而根据更新的测试策略进行相应处理。
举例而言,自控检测模块53具体用于根据收发模块51接收到的流速信息和测试策略进行判断处理,以在当前的测试策略上增加和/或减少一个子策略、或替换新的测试策略从而得到更新的测试策略;接着通过收发模块51经由连接设备向服务端发送更新的测试策略。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请参阅图7,图7是本申请测试方法第五实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的连接设备执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S700,连接设备接收来自客户端预设的测试策略,并将测试策略发送给服务端。
在步骤S700中,客户端、连接设备以及服务端之间可以通过有线或无线的方式建立连接,在此不作限定。如前所述,本实施方式测试方法也可以通过设定的时间点、时间段、人工、或其他中断事件进行触发以开始进行测试,其只需根据实际需要而设定即可,无需干预即可自行开始测试,而测试策略也可以自动设置或自动读取预存于数据库内的策略,在本技术领域人员理解的范围内,不作限定。
在本实施方式中,测试策略可以如表二所示,在本技术领域人员理解的情况下,不作细述,其中仅以应用程序A和/或B为例进行描述。
序号 | 场景 | 说明 |
1 | 应用程序A与对端正常通信 | |
2 | 限制应用程序A到某速率 | 加上限制速率的时间 |
3 | 限制应用程序A的每一条流到某速率 | 加上限制速率的时间 |
4 | 限制应用程序A的某一个或多个子应用到某速率 | 加上限制速率的时间 |
5 | 限制应用程序A的某个或多个子应用的每一条流到某速率 | 加上限制速率的时间 |
6 | 阻断应用程序A | 加上阻断应用的时间 |
7 | 阻断应用程序A的某个或多个子应用 | 加上阻断应用的时间 |
8 | 应用程序B采用序号1~7的场景和应用程序A有机组合 | 加上时间组合 |
表二
步骤S701,在将测试策略发送给服务端后,连接设备将来自客户端的数据流分发到服务端待测试的DPI系统以进行识别,其中,数据流由客户端根据测试策略在预设的场景运行预设的应用程序所产生。
在步骤S701中,客户端可以通过自动化操作软件运行操作应用程序A(如IE浏览器等),譬如具体操作登录网页、发送邮件等预设的场景动作,相应的产生数据流。
步骤S702,连接设备接收服务端发送过来的控制策略并根据控制策略对数据流进行流控制,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据实时状态和测试策略判断而得到测试结果,进而根据测试策略进行相应处理,其中,数据流由DPI系统进行识别并将识别结果发送给服务端,控制策略由服务端根据测试策略和识别结果所产生,数据流由连接设备根据控制策略进行流控制后使得预设的应用程序的运行状态发生相应变化。
在步骤S702中,DPI系统根据当前识别能力识别数据流,并可以记录识别结果。识别结果可以包括无法识别和可以识别,在可以识别时具体识别其L7协议名、第几包识别和/或流量等,并进行相关记录。其中,DPI系统将对应用层进行分析识别,具体通过协议识别和协议解析等,以识别数据流对应的真实的应用及其内容。
相应地,在DPI系统进行识别并得到识别结果后,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,连接设备根据控制策略对数据流进行流控制,使得预设的应用程序的运行状态发生相应变化。其中,控制策略可以相应地包括“在无法识别时,在某个时间段放行(不处理)”、“在无法识别时,在某个时间段阻断(完全限速)”、“在无法识别时,在某个时间段限流”、“在可以识别时,限制应用程序A到100kb/s速率并维持10秒”或其他根据表一所示的场景进行控制。不难理解,在进行上述控制后,应用程序的运行状态发生将相应变化,如无法正常运行、运行缓慢或仍保持正常运行等实时状态,其具体将根据控制策略中的场景进行设定。
举例而言,客户端定时或不定时地检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,如判断到应用程序A并没有根据表二中的场景限制条件进行运行后所发生的相应变化,则其可以认为DPI系统识别失败,即本次测试失败。客户端进而根据测试策略进行相应处理,如识别失败,可以返回重新测试,或切换应用程序进行测试也可以更改测试策略的场景等进行测试,在此不作限定。
本实施方式测试方法还可以用于其他类似于DPI系统的其他网络数据流识别或决策系统的测试,在本技术领域人员理解的范围内,不一一举例描述。
本实施方式利用客户端设置测试策略,并通过客户端自动运行应用程序产生数据流,发送到DPI系统进行识别测试;而服务端根据识别结果和测试策略产生控制策略并通过连接设备进行流控制,使得应用程序的运行状态发生相应变化;接着,客户端检测应用程序的运行状态,可以快速地得知DPI系统的识别能力。本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且自动化操作测试的方式,有效地提高了工作效率。本申请提高测试工作效率的同时,能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,因此可以有效地扩大测试的覆盖面。
请结合前面实施方式参阅图8,图8是本申请测试方法第六实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的连接设备执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S800,连接设备接收来自客户端预设的DPI系统的测试策略和开始测试指令,并将测试策略和开始测试指令发送给服务端。
在步骤S800中,为了实现在线、自动化智能测试,本实施方式可以通过自动或中断事件触发等方式开始测试,且为了保证测试效果,客户端同时产生开始测试指令并发送给服务端,使连接设备和服务端都进入准备测试的状态。
步骤S801,在将测试策略和开始测试指令发送给服务端后,连接设备接收服务端发送过来的准备抓取客户端对应的用户的数据包的通知,其中,服务端根据开始测试指令及客户端的IP地址判断识别出该客户端对应的身份。
在步骤S801中,连接设备接收服务端发送过来的准备抓取客户端对应的用户的数据包的通知,以作好对该用户的数据流进行抓包、分发数据流等动作,其中,连接设备无需向服务端反馈准备的信息,即服务端发送通知后即可默认连接设备已经准备就绪。另外,本实施方式测试方法可以通过一个连接设备而连接设置多个客户端,相应地,服务端在进行测试时需要预先判断客户端的身份才能对不同的客户端进行不同的测试处理;而当服务端根据对应的IP地址判断出客户端的身份后,连接设备在抓取该客户端的数据包后将根据该客户端的身份进行记录保存以备查询或可以后续使用等,在此不作赘述。其中,连接设备可以采用cap或pcap格式的文件进行保存,并以客户端+测试场景+时间戳进行命名、同时作相应记录。
步骤S802,在连接设备自身准备就绪后,连接设备对数据流进行抓包保存并将数据流分发到DPI系统进行识别,其中,服务端通知连接设备准备抓取数据包后向客户端返回就绪指令,数据流由客户端接收到就绪指令后根据测试策略在预设的场景运行预设的应用程序所产生。
步骤S802中的客户端可以通过自动化操作软件运行操作应用程序A(如IE浏览器等),譬如具体操作登录网页、发送邮件等预设的场景动作而产生数据流。
步骤S803,连接设备接收控制策略并根据控制策略对数据流进行流控制的放行、限流和/或阻断操作,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据流控制的放行、限流和/或阻断操作判断实时状态,并根据实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试进而进行相应处理。
本实施方式连接设备在进行流控制的放行、限流和/或阻断操作时,客户端根据连接设备的操作动作判断预设的应用程序的实时状态,并根据预设的应用程序的实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试以进行相应处理。如判断到应用程序A并没有根据表二中的场景限制条件进行运行后所发生的相应变化,则其可以认为DPI系统识别失败,即本次测试失败。客户端进而根据测试策略进行相应处理,如识别失败,可以返回重新测试,或切换应用程序进行测试也可以更改测试策略的场景等进行测试,在此不作限定。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大人工测试的覆盖面。本实施方式还可以通过识别IP地址的动作,实现一个连接设备同时连接多个客户端进行在线测试的方式,提高了测试效率。
请结合前面实施方式参阅图9,图9是本申请测试方法第七实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的连接设备执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S900,连接设备接收来自客户端预设的测试策略和开始测试指令,并将测试策略和开始测试指令发送给服务端。
步骤S901,在将测试策略和开始测试指令发送给服务端后,连接设备接收服务端发送过来的准备抓取客户端对应的用户的数据包的通知,其中,服务端根据开始测试指令及其相应的IP地址判断识别客户端对应的身份。
步骤S902,在连接设备自身准备就绪后,连接设备对数据流进行抓包保存并将数据流分发到DPI系统进行识别,其中,服务端通知连接设备准备抓取数据包后向客户端返回就绪指令,数据流由客户端接收到就绪指令后根据测试策略运行预设的应用程序所产生。
步骤S903,连接设备接收控制策略并根据控制策略对数据流进行流控制的放行、限流和/或阻断操作,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据流控制的放行、限流和/或阻断操作判断实时状态,并根据实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试进而进行相应处理。
步骤S904,连接设备接收客户端发送过来的数据流的五元组信息和停止测试指令,并将五元组信息和停止测试指令发送给服务端,其中,停止测试指令由客户端在判断到需要停止测试时所产生。
本实施方式需要指出的是,在步骤S904中,该数据流的五元组信息等可以由客户端可以通过操作来获取,即五元组信息的源IP、目的IP、源端口、目的端口和传输层协议等。根据数据流的五元组信息,连接设备在抓取用户的数据包后,可以保存为cap或pcap格式的文件,同时可以以客户端+测试场景+时间戳进行命名并作相应记录,同时将数据流分发到DPI系统进行识别。
步骤S905,连接设备接收服务端根据停止测试指令所发出的通知和五元组信息,以根据停止测试指令停止对用户的数据流的相关动作,并根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为用户的样品,样品用于进行离线测试。
相对于现有技术的离线测试而言,本实施方式能够采用智能自动化的方式获取到较纯的数据包样本,能较大限度地降低失真,以备在后续需要对DPI系统进行离线测试时,采用该提纯过滤保存的样品来提高测试成功率和测试范围的覆盖面。
相应地,位于服务端的DPI系统根据服务端的停止测试指令通知停止对用户的数据流的识别动作;客户端在接收服务端根据停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
本实施方式可以获取到样品足的数据包,并可以用于后续的离线测试,从而可以对本次测试进行验证校准等,同时有效地保证了离线测试的覆盖面和效率。
请结合前面实施方式参阅图10,图10是本申请测试方法第八实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的连接设备执行,本实施方式测试方式包括但不限于以下几个步骤。
步骤S010,连接设备接收来自客户端预设的测试策略,并将测试策略发送给服务端。
步骤S011,连接设备将来自客户端的数据流分发到服务端待测试的DPI系统以进行识别,其中,数据流由客户端根据测试策略在预设的场景运行预设的应用程序所产生。
步骤S012,连接设备接收服务端发送过来的控制策略并根据控制策略对数据流进行流控制。
步骤S013,连接设备根据控制策略对数据流进行流控制后,计算得到数据流的流速信息并将流速信息反馈给服务端。
本实施方式需要说明的是,现有技术中由于部分应用程序针对网络质量(网络状态的好坏)作了适应性的功能,比如当网络速度降到指定阈值时,应用程序与对端之间将采用新的传输方式(其运行状态可以发生改变也可以不发生改变)。因此,在步骤S013中,为了保证DPI系统的识别效果识别能力,本实施方式的测试策略需要根据流速信息进行相应调整;换而言之,通过流控制的作用再计算流速信息,结合新的流速信息调整测试策略,作为主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力。
步骤S014,连接设备接收服务端发出的流速信息并将流速信息发送给客户端,以使得客户端根据流速信息和测试策略处理得到更新的测试策略。其中,执行步骤S014之后,如果客户端检测到测试未成功或其他未符合测试的情况,返回执行步骤S011,否则执行前述的停止测试的动作,在本技术领域人员理解的范围内,不作系数。
需要说明的是,在步骤S014中,在预设的应用程序具备变换为新的传输方式的能力时,客户端需要对原测试策略作调整,其具体可以根据流速信息和测试策略的预设条件判断在预设的场景上增加和/或减少一个子策略、或替换新的测试策略从而得到更新的测试策略。
如前所述,在客户端根据流速信息和测试策略处理得到更新的测试策略后,客户端根据更新的测试策略在预设的场景运行预设的应用程序以产生更新的数据流,数据流由DPI系统进行识别并将识别结果发送给服务端,服务端根据更新的测试策略和识别结果产生更新的控制策略并将更新的控制策略发送给连接设备,以使得连接设备根据更新的控制策略对更新的数据流进行流控制。同时,客户端实时或不定时地检测预设的应用程序的实时状态,直至客户端根据流控制、检测到的预设的应用程序的实时状态和更新的测试策略判断到测试成功或失败后,客户端根据更新的测试策略进行相应处理。
值得注意的是,测试策略可以设定循环测试的次数,即计算流速信息并反馈给客户端处理得到更新的测试策略的次数,使得DPI系统能够对该应用程序的大部分变种都进行识别测试,使DPI系统更加接近实际的网络环境和应用程序,保证了测试的效率。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请结合前面实施方式参阅图11,图11是用于本申请的连接设备第一实施方式的模块框图,本实施方式连接设备包括但不限于中转收发模块111、流控制模块112和中转处理模块113。其中,本实施方式的连接设备可以为路由器、交换机、网桥或网络节点等,也可以为其中一种或几种的组合,在此不作限定。
在本实施方式中,中转收发模块111用于接收来自客户端预设的DPI系统的测试策略,并将测试策略发送给服务端。
中转处理模块113用于在中转收发模块111将测试策略发送给服务端后,将来自客户端的数据流分发到服务端待测试的DPI系统以进行识别,其中,数据流由客户端根据测试策略在预设的场景运行预设的应用程序所产生。
流控制模块112用于在中转收发模块111接收到服务端发送过来的控制策略后,根据控制策略对数据流进行流控制,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据实时状态和测试策略判断而得到测试结果,进而根据测试策略进行相应处理,其中,数据流由DPI系统进行识别并将识别结果发送给服务端,控制策略由服务端根据测试策略和识别结果所产生,数据流由流控制模块112根据控制策略进行流控制后使得预设的应用程序的运行状态发生相应变化。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且自动化操作测试的方式,有效地提高了工作效率。本申请提高测试工作效率的同时,能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,因此可以有效地扩大测试的覆盖面。
请结合图11参阅图12,本实施方式连接设备的中转处理模块113具体包括通知收发单元1131和抓包处理单元1132。
相对应的是,本实施方式的中转收发模块111具体可以用于接收来自客户端预设的DPI系统的测试策略和开始测试指令,并将测试策略和开始测试指令发送给服务端。通知收发单元1131可以用于在中转收发模块111将测试策略和开始测试指令发送给服务端后,接收服务端发送过来的准备抓取客户端对应的用户的数据包的通知,其中,服务端根据开始测试指令及其相应的IP地址判断客户端对应的身份。抓包处理单元1132具体可以用于在连接设备自身准备就绪后,对数据流进行抓包保存并将数据流分发到DPI系统进行识别,其中,服务端通知连接设备准备抓取数据包后向客户端返回就绪指令,数据流由客户端接收到就绪指令后根据测试策略在预设的场景运行预设的应用程序所产生。此时,流控制模块112具体可以用于在中转收发模块111接收到控制策略后,根据控制策略对数据流进行流控制的放行、限流和/或阻断操作,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据流控制的放行、限流和/或阻断操作判断实时状态,并根据实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试进而进行相应处理。
本实施方式采用连接设备配合对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大测试的覆盖面。本实施方式还可以通过识别IP地址的动作,实现一个连接设备同时连接多个客户端进行在线测试的方式,提高了测试效率。
具体而言,中转收发模块111具体还可以用于接收客户端发送过来的数据流的五元组信息和停止测试指令,并将五元组信息和停止测试指令发送给服务端,其中,停止测试指令由客户端在判断到需要停止测试时所产生。通知收发单元1131具体还可以用于接收服务端根据停止测试指令所发出的通知和五元组信息,以使得抓包处理单元1132和/或流控制模块112根据停止测试指令停止对用户的数据流的相关动作,抓包处理单元1132具体还用于根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为该客户端的样品,该样品用于进行离线测试。其中,DPI系统根据服务端的停止测试指令通知停止对用户的数据流的识别动作;客户端在接收服务端根据停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
本实施方式可以获取到样品足的数据包,并可以用于后续的离线测试,从而可以对本次测试进行验证校准等,同时有效地保证了离线测试的覆盖面和效率。
现有技术中由于部分应用程序针对网络质量(网络状态的好坏)作了适应性的功能,比如当网络速度降到指定阈值时,应用程序与对端之间将采用新的传输方式(其运行状态可以发生改变也可以不发生改变)。
因此,本实施方式的连接设备还可以用于计算数据流的流速信息,举例来说,流控制模块112具体可以用于在根据控制策略对数据流进行流控制后,计算得到数据流的流速信息并通过中转收发模块111将流速信息反馈给服务端。中转收发模块111具体可以用于接收服务端发出的流速信息并将流速信息发送给客户端,以使得客户端根据流速信息和测试策略处理得到更新的测试策略。中转收发模块111接收客户端发送过来的更新的测试策略并将更新的测试策略发送给服务端,使得中转处理模块113将来自客户端更新的数据流分发到服务端的DPI系统以进行识别。
需要配合说明的是,客户端根据更新的测试策略在预设的场景运行预设的应用程序以产生更新的数据流,数据流由DPI系统进行识别并将识别结果发送给服务端,服务端根据更新的测试策略和识别结果产生更新的控制策略并将更新的控制策略发送给中转收发模块111,以使得流控制模块112根据更新的控制策略对更新的数据流进行流控制,直至客户端根据流控制、检测到的预设的应用程序的实时状态和更新的测试策略判断到测试成功或失败后,客户端根据更新的测试策略进行相应处理。其中,客户端根据流速信息和测试策略的预设条件判断在当前的测试策略上增加和/或减少一个子策略、或替换新的测试策略从而得到更新的测试策略。
在本实施方式所提及的连接设备中,流控制模块112的控制方式包括Linux的netfilter机制和netlink机制,当然,流控制模块112也可以采用其他的流控制方式,在本技术领域人员理解的范围内,不一一介绍。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请参阅图13,图13是本申请测试方法第九实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的服务端执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S130,服务端通过连接设备接收客户端发送的测试策略,测试策略用于对待测试的深度包检测DPI系统进行测试。
其中,客户端、连接设备以及服务端之间可以通过有线或无线的方式建立连接,在此不作限定。在本实施方式中,测试策略可以包括如表三所示,在本技术领域人员理解的情况下,不作细述,其中以应用程序A和/或B为例进行描述。
序号 | 场景 | 说明 |
1 | 应用程序A与对端正常通信 | |
2 | 限制应用程序A到某速率 | 加上限制速率的时间 |
3 | 限制应用程序A的每一条流到某速率 | 加上限制速率的时间 |
4 | 限制应用程序A的某一个或多个子应用到某速率 | 加上限制速率的时间 |
5 | 限制应用程序A的某个或多个子应用的每一条流到某速率 | 加上限制速率的时间 |
6 | 阻断应用程序A | 加上阻断应用的时间 |
7 | 阻断应用程序A的某个或多个子应用 | 加上阻断应用的时间 |
8 | 应用程序B采用序号1~7的场景和应用程序A有机组合 | 加上时间组合 |
表三
步骤S131,服务端通过连接设备获取客户端根据测试策略运行预设的应用程序所产生的数据流。
在步骤S131中,客户端可以通过自动化操作软件运行操作应用程序A(如IE浏览器等),譬如具体操作登录网页、发送邮件等预设的场景动作,此时将产生相应的数据流。
步骤S132,服务端将数据流发送到待测试的DPI系统进行识别以获取识别结果。
步骤S133,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,以使得连接设备根据控制策略对数据流进行流控制。
如前所述,通过步骤S133使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据实时状态和测试策略判断而得到测试结果并根据测试策略进行相应处理,其中,连接设备根据控制策略对数据流进行流控制,使得预设的应用程序的运行状态发生相应变化。
在步骤S133中,如果DPI系统识别到数据流所包含的内容为表三中的应用程序A,则可以根据测试策略(譬如时间)来控制数据流的放行、限流及阻断等动作,其中,通过连接设备实现控制。
其中,DPI系统根据当前识别能力识别数据流,并可以记录识别结果。识别结果可以包括无法识别和可以识别,在可以识别时具体识别其L7协议名、第几包识别和/或流量等,并进行相关记录。其中,DPI系统将对应用层进行分析识别,具体通过协议识别和协议解析等,以识别数据流对应的真实的应用及其内容。
相应地,控制策略可以相应地包括“在无法识别时,在某个时间段放行(不处理)”、“在无法识别时,在某个时间段阻断(完全限速)”、“在无法识别时,在某个时间段限流”、“在可以识别时,限制应用程序A到100kb/s速率并维持10秒”或其他根据表一所示的场景进行控制。不难理解,在进行上述控制后,应用程序的运行状态发生将相应变化,如无法正常运行、运行缓慢或仍保持正常运行等实时状态,其具体将根据控制策略中的场景进行设定。
举例而言,客户端定时或不定时地检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,如判断到应用程序A并没有根据表三中的场景限制条件进行运行后所发生的相应变化,则其可以认为DPI系统识别失败,即本次测试失败。客户端进而根据测试策略进行相应处理,如识别失败,可以返回重新测试,或切换应用程序进行测试也可以更改测试策略的场景等进行测试,在此不作限定。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请自动化操作测试的方式,有效地提高了工作效率。本申请能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,因此可以有效地扩大测试的覆盖面。
请结合前面实施方式参阅图14,图14是本申请测试方法第十实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的服务端执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S140,服务端通过连接设备接收客户端发送的开始测试指令和测试策略。
在步骤S140中,为了实现在线、自动化智能测试,可以通过自动或中断事件触发等方式开始测试,且为了保证测试效果,在客户端需要同时产生开始测试指令并发送给服务端,使连接设备和服务端都进入准备测试的状态。其中,客户端可以先通过连接设备将开始测试指令发送给服务端再把测试策略发送给服务端,也可以同时将开始测试指令和测试策略发送给服务端,在此不作限定。
步骤S141,服务端根据开始测试指令及客户端的IP地址识别客户端的身份并通知连接设备准备抓取IP地址对应的客户端的数据包。
在步骤S141中,服务端向连接设备发送的准备抓取客户端对应的用户的数据包的通知,以使得连接设备作好对该用户的数据流进行抓包、分发数据流等动作,其中,连接设备无需向服务端反馈准备的信息,即服务端发送通知后即可默认连接设备已经准备就绪。另外,本实施方式测试方法可以通过一个服务端连接设置多个客户端,相应地,服务端在进行测试时需要预先判断客户端的身份才能对不同的客户端进行不同的测试处理;而当服务端根据对应的IP地址判断识别出客户端的身份后,连接设备在抓取该客户端的数据包后将根据该客户端的身份进行记录保存以备查询或可以后续使用等,在此不作赘述。
步骤S142,在连接设备准备就绪后服务端产生就绪指令并将就绪指令通过连接设备发送给客户端。
需要说明的是,服务端在通知连接设备准备之后,即可视为连接设备准备就绪,当然,也可以通过反馈的方式确认连接设备是否就绪,在本技术领域人员理解的范围内,不作限定。
步骤S143,服务端通过连接设备获取客户端根据就绪指令产生的数据流。
其中,执行步骤S143的同时,数据流由连接设备进行抓包保存。
步骤S144,服务端将数据流发送到待测试的DPI系统进行识别以获取识别结果。
步骤S145,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,以使得连接设备根据控制策略对数据流进行流控制。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大测试的覆盖面。本实施方式还可以通过识别IP地址的动作,实现一个连接设备同时连接多个客户端进行在线测试的方式,提高了测试效率。
请结合前面实施方式参阅图15,图15是本申请测试方法第十一实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的服务端执行,本实施方式测试方法包括但不限于以下几个步骤。
步骤S150,服务端通过连接设备接收客户端发送的开始测试指令和测试策略。
步骤S151,服务端根据开始测试指令及客户端的IP地址识别客户端的身份并通知连接设备准备抓取IP地址对应的客户端的数据包。
步骤S152,在连接设备准备就绪后服务端产生就绪指令并将就绪指令通过连接设备发送给客户端。
步骤S153,服务端通过连接设备获取客户端根据就绪指令产生的数据流。
步骤S154,服务端将数据流发送到待测试的DPI系统进行识别以获取识别结果。
步骤S155,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备,以使得连接设备根据控制策略对数据流进行流控制。
步骤S156,服务端通过连接设备接收客户端发送过来的数据流的五元组信息和停止测试指令,其中,停止测试指令用于指示停止对待测试的DPI系统的测试。
本实施方式需要指出的是,在步骤S156中,该数据流的五元组信息等可以由客户端可以通过操作来获取,即五元组信息的源IP、目的IP、源端口、目的端口和传输层协议等。
步骤S157,服务端根据停止测试指令通知待测试的DPI系统和连接设备停止对客户端的数据流的相关动作,并将五元组信息发送给连接设备,以使连接设备根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,样品用于进行离线测试。
相对于现有技术的离线测试而言,本实施方式能够采用智能自动化的方式获取到较纯的数据包样本,能较大限度地降低失真,以备在后续需要对DPI系统进行离线测试时,采用该提纯过滤保存的样品来提高测试成功率和测试范围的覆盖面。
在步骤S157中,服务端将五元组信息发送给连接设备后,连接设备根据数据流的五元组信息,在抓取客户端的数据包后,可以保存为cap或pcap格式的文件,同时可以以客户端+测试场景+时间戳进行命名并作相应记录,同时将数据流分发到DPI系统进行识别。
步骤S158,服务端产生结束测试成功指令并通过连接设备发送给客户端,以使得客户端在接收到结束测试成功指令后,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
相应地,位于服务端的DPI系统根据服务端的停止测试指令通知停止对用户的数据流的识别动作;客户端在接收服务端根据停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
本实施方式可以获取到样品足的数据包,并可以用于后续的离线测试,从而可以对本次测试进行验证校准等,同时有效地保证了离线测试的覆盖面和效率。
请结合前面实施方式参阅图16,图16是本申请测试方法第十二实施方式的流程示意图,其中,本实施方式测试方法可以通过图1A中的服务端执行,本实施方式测试方式包括但不限于以下几个步骤。
步骤S160,服务端通过连接设备接收客户端发送的测试策略,测试策略用于对待测试的深度包检测DPI系统进行测试。
步骤S161,服务端通过连接设备获取客户端根据测试策略运行预设的应用程序所产生的数据流。
步骤S162,服务端将数据流发送到待测试的DPI系统进行识别以获取识别结果。
步骤S163,服务端根据测试策略和识别结果产生控制策略并将控制策略发送给连接设备。
步骤S164,服务端接收连接设备根据控制策略计算得到的数据流的流速信息,并将流速信息通过连接设备发送给客户端,以使客户端根据流速信息和测试策略处理得到更新的测试策略,并根据更新的测试策略运行预设的应用程序产生新的数据流,以及将新的数据流发送到待测试的DPI系统,以使待测试的DPI系统对新的数据流进行识别,得到新的识别结果并将新的识别结果发送给服务端。
在步骤S164中,现有技术中由于部分应用程序针对网络质量(网络状态的好坏)作了适应性的功能,比如当网络速度降到指定阈值时,应用程序与对端之间将采用新的传输方式(其运行状态可以发生改变也可以不发生改变)。因此,针对上述情况,为了保证DPI系统的识别效果识别能力,本实施方式的测试策略需要根据流速信息进行相应调整;换而言之,通过连接设备流控制的作用再计算流速信息,结合新的流速信息调整测试策略,作为主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力。
步骤S165,服务端根据更新的测试策略和新的识别结果产生新的控制策略并将新的控制策略发送给连接设备,进而使得连接设备根据新的控制策略对新的数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
其中,步骤S165还包括“服务端获取客户端根据流速信息和测试策略处理得到更新的测试策略”等过程。而在步骤S165之后,需要返回步骤S161,同时,客户端根据更新的测试策略进行相应的处理,譬如前述的重新运行预设的应用程序并进行检测等过程,在循环的过程中,结束的条件可以是直至客户端在产生(更新的)数据流后检测预设的应用程序的实时状态时,根据实时状态和更新的测试策略判断而得到测试结果并根据更新的测试策略进行相应处理,其具体请参阅前面实施方式的相关描述,在此不作赘述。
举例而言,在客户端根据流速信息和测试策略处理得到更新的测试策略后,客户端根据更新的测试策略运行预设的应用程序以产生新的数据流,新的数据流由DPI系统进行识别并将新的识别结果发送给服务端,服务端根据更新的测试策略和新的识别结果产生更新的控制策略并将更新的控制策略发送给连接设备,以使得连接设备根据更新的控制策略对新的数据流进行流控制。同时,客户端实时或不定时地检测预设的应用程序的实时状态,而进行相应处理。
值得注意的是,本实施方式可以通过测试策略设定循环测试的次数,即计算流速信息并反馈给客户端处理得到更新的测试策略的次数,使得DPI系统能够对该应用程序的大部分变种都进行识别测试,使DPI系统更加接近实际的网络环境和应用程序,保证了测试的效率。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请在线自动化操作测试的方式,有效地提高了工作效率。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请结合前面实施方式参阅图17,图17是本申请服务端第一实施方式的模块框图,本实施方式服务端包括但不限于收发模块171、测试控制模块172、DPI模块173和决策处理模块174。其中,服务端可以为台式电脑、平板电脑和笔记本电脑等智能终端中的一种,在本技术领域人员理解的范围内,不作限定。
在本实施方式中,收发模块171用于通过连接设备接收客户端发送的测试策略,测试策略用于对待测试的深度包检测DPI系统进行测试。
测试控制模块172用于在收发模块171接收到测试策略后,通过连接设备获取客户端根据测试策略运行预设的应用程序所产生的数据流。
DPI模块173用于将测试控制模块172获取到的数据流发送到待测试的DPI系统进行识别以获取识别结果。
决策处理模块174用于在DPI模块173获取到识别结果后,根据测试策略和识别结果产生控制策略并通过收发模块171将控制策略发送给连接设备,以使得连接设备根据控制策略对数据流进行流控制。
本实施方式对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,有效地提高了工作效率。同时,本申请能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,因此可以有效地扩大测试的覆盖面。
请结合图17参阅图18,在其他实施方式中,测试控制模块172具体包括识别处理单元1721、指令产生单元1722和控制单元1723。
具体来说,收发模块171还用于在通过连接设备接收客户端发送的测试策略之前,通过连接设备接收客户端发送过来的开始测试指令。
识别处理单元1721用于在收发模块171接收到开始测试指令后,根据开始测试指令及客户端的IP地址识别客户端的身份并通知连接设备准备抓取IP地址对应的客户端的数据包。指令产生单元1722用于在连接设备准备就绪后产生就绪指令并将就绪指令通过连接设备发送给客户端。控制单元1723用于通过连接设备获取客户端根据就绪指令产生的数据流。
相应地,决策处理模块174具体用于在DPI模块173获取到识别结果后,根据测试策略和识别结果产生控制策略并通过收发模块171将控制策略发送给连接设备,以使得客户端在产生数据流后检测预设的应用程序的实时状态时,根据流控制的放行、限流和/或阻断操作判断实时状态,并根据实时状态和测试策略中的预设条件判断测试是否成功、是否继续测试进而进行相应处理。
另外,收发模块171具体还可以用于在将控制策略发送给连接设备之后,通过连接设备接收客户端发送过来的数据流的五元组信息和停止测试指令,其中,停止测试指令用于指示停止对待测试的DPI系统的测试。
控制单元1723具体还可以用于根据停止测试指令通知待测试的DPI系统和连接设备停止对客户端的数据流的相关动作,并通过收发模块171将五元组信息发送给连接设备,以使连接设备根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,该保存的样品用于进行离线测试。
本实施方式可以获取到样品足的数据包,并可以用于后续的离线测试,从而可以对本次测试进行验证校准等,同时有效地保证了离线测试的覆盖面和效率。
指令产生单元1722具体还可以用于在收发模块171将五元组信息发送给连接设备后,产生结束测试成功指令并通过连接设备发送给客户端,以使得客户端在接收到结束测试成功指令后,记录测试的过程、结果并根据测试策略判断是否进行循环测试和/或切换场景进行测试。
本实施方式采用连接设备配合对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大人工测试的覆盖面。本实施方式还可以通过识别IP地址的动作,实现一个连接设备同时连接多个客户端进行在线测试的方式,提高了测试效率。
现有技术中由于部分应用程序针对网络质量(网络状态的好坏)作了适应性的功能,比如当网络速度降到指定阈值时,应用程序与对端之间将采用新的传输方式(其运行状态可以发生改变也可以不发生改变)。
因此,在其他实施方式中,收发模块171具体还用于接收连接设备根据控制策略计算得到的数据流的流速信息,并将流速信息通过连接设备发送给客户端,以使客户端根据流速信息和测试策略处理得到更新的测试策略,并根据更新的测试策略运行预设的应用程序产生更新的数据流;接着,DPI模块173还用于将新的数据流发送到待测试的DPI系统,以使待测试的DPI系统对新的数据流进行识别,得到新的识别结果;相应地,决策处理模块174还用于根据更新的测试策略和新的识别结果产生新的控制策略并将新的控制策略发送给连接设备,进而使得连接设备根据新的控制策略对新的数据流进行流控制以使预设的应用程序的运行状态发生相应变化。
其中,客户端可以根据流速信息和测试策略在当前的测试策略上增加和/或减少一个子策略、或替换新的测试策略从而得到更新的测试策略。
本实施方式解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请的测试过程的基本上无需人工参与,降低了人工等成本,而且可以实现在线自动化操作测试的方式,有效地提高了工作效率,还可以有效地扩大人工测试的覆盖面。同时,本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
请结合前面实施方式参阅图19和图20,图19是本申请测试系统一实施方式的模块框图,其中,测试系统包括图5所示的客户端、图11所示的连接设备以及图17所示的服务端,图20是图19所示的测试系统的信息交互示意图。当然,在其他实施方式中,测试系统也可以为图5或图6所示的客户端、图11或图12所示的连接设备以及图17或图18所示的服务端中的有机组合使用,如采用图5所示的客户端、图12所示的连接设备以及图18所示的服务端等,在本技术领域人员理解的范围内,不作限定。
值得注意的是,客户端可以为一个、两个、三个到N个,而连接设备可以根据客户端的数目设定为一个或多个,只需实现多个客户端通过一个或多个连接设备与服务端相连接即可,另外,为了区别客户端收发模块与服务端的收发模块,本实施方式定义客户端的收发模块为第一收发模块51、而服务端的收发模块为第二收发模块171。
本实施方式通过图20简单的说明本申请的实施过程。
第一收发模块51向服务端(测试控制模块172)发送预设的DPI系统的测试策略和开始测试指令。其中,需要通过中转收发模块111和第二收发模块171的传输作用。
测试控制模块172将测试策略发送给决策处理模块174,通知连接设备准备抓取客户端的数据包,同时产生就绪指令并将就绪指令通过连接设备发送给第一收发模块51。
接着,应用处理模块52根据测试策略运行预设的应用程序以产生数据流。该数据流通过连接设备的中转处理模块113分发到DPI模块173的待测试的DPI系统,并作相应记录。
DPI模块173的DPI系统进行识别以获取识别结果,并将结果发送给决策处理模块174。决策处理模块174获取到识别结果并作记录,接着根据测试策略和识别结果产生控制策略并通过第二收发模块171将控制策略发送给中转收发模块111。
流控制模块112在中转收发模块111接收到控制策略后,根据控制策略对数据流进行流控制的放行、限流和/或阻断操作。同时,流控制模块112计算得到数据流的流速信息并通过中转收发模块111将流速信息反馈给第二收发模块171并发送给测试控制模块172。
第二收发模块171将流速信息通过连接设备发送给第一收发模块51。自控检测模块53根据第一收发模块51接收到的流速信息和测试策略处理得到更新的测试策略,并通过第一收发模块51经由连接设备向测试控制模块172发送更新的测试策略。
测试控制模块172将更新的测试策略发送给决策处理模块174,接着,应用处理模块52根据更新的测试策略运行预设的应用程序以产生新的数据流。新的数据流通过连接设备的中转处理模块113的分发到DPI模块173的待测试的DPI系统,并作相应记录。
DPI模块173的DPI系统进行识别以获取新的识别结果,并将新的识别结果发送给决策处理模块174。决策处理模块174获取到新的识别结果并作记录,接着根据(更新的)测试策略和新的识别结果产生控制策略并通过第二收发模块171将(更新的)控制策略发送给中转收发模块111。
流控制模块112在中转收发模块111接收到(更新的)控制策略后,根据(更新的)控制策略对(新的)数据流进行流控制的放行、限流和/或阻断操作。
其中,本实施方式的循环次数可根据实际需要而设定,譬如可以仅循环一次,在本技术领域人员理解的范围内,不作赘述。
自控检测模块53在应用处理模块52运行预设的应用程序产生数据流后,检测预设的应用程序的实时状态并根据实时状态和测试策略判断而得到测试结果,进而根据测试策略进行相应处理
譬如在判定到不需要继续测试时,产生停止测试指令并通过第一收发模块51将应用处理模块52获取到的五元组信息和停止测试指令发送给测试控制模块172,以通过停止测试指令使得服务端通知连接设备和DPI系统停止对用户的数据流的相关动作。譬如通知连接设备停止分发数据流和抓包等动作并作记录,通知DPI模块停止识别等相关动作并作记录,通知决策处理模块174停止生成控制策略或停止测试策略判定等相关动作,并在上述动作完成后,向客户端返回结束测试成功指令。
如前面实施方式的相关描述,本实施方式连接设备根据五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为用户的样品,所保存的样品用于进行离线测试。
在其他实施方式中,本申请的测试系统还包括前面相关实施方式所描述的工作过程、测试方法及其实现方式,在本技术领域人员理解的范围内,不作赘述。
本申请对DPI系统的测试,有效地解决了现有技术中人工在线抓取数据包,基于数据包回放进行测试验证,然后测试其识别能力所带来的问题,本申请自动化操作测试的方式,有效地提高了工作效率。同时,本申请能够更多地针对复杂、变化繁多的应用程序以及应用程序的变种进行延伸测试,可以有效地扩大测试的覆盖面。本实施方式为了保证DPI系统的识别效果识别能力,本实施方式对测试策略根据流速信息进行相应调整,通过主动诱导应用程序产生变种流量的数据流,来配合测试DPI系统的应变能力,进一步扩大了测试的覆盖面。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,管理服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (20)
1.一种测试方法,其特征在于,所述测试方法包括:
客户端通过连接设备向服务端发送预设的测试策略;
所述客户端根据所述测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由所述连接设备发送到待测试的深度包检测DPI系统,以使所述待测试的DPI系统对所述数据流进行识别,得到识别结果并将所述识别结果发送给所述服务端,使得所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,进而使得所述连接设备根据所述控制策略对所述数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化;
所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理。
2.根据权利要求1所述的测试方法,其特征在于:
在所述客户端通过连接设备向服务端发送预设的测试策略之前,还包括:
所述客户端通过所述连接设备向所述服务端发送开始测试指令;
所述客户端根据所述测试策略运行预设的应用程序,具体包括:
在获取到所述服务端返回的就绪指令时,所述客户端根据所述测试策略运行所述预设的应用程序,其中,所述就绪指令由所述服务端在接收到所述开始测试指令后,根据所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包、且在所述连接设备准备就绪后发送的;
所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理,具体包括:
所述客户端根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功,并根据所述测试策略判断是否继续测试。
3.根据权利要求2所述的测试方法,其特征在于:
在所述在获取到所述服务端返回的就绪指令时,所述客户端根据所述测试策略运行所述预设的应用程序之后,还包括:
获取所述数据流的五元组信息与所述预设的应用程序进程的关系并进行记录;
在根据所述测试策略判断是否继续测试之后,还包括:
当判断出不需要继续测试时,所述客户端产生停止测试指令并将所述五元组信息和所述停止测试指令发送给所述服务端,以使得所述服务端通知所述连接设备和所述DPI系统停止对所述客户端的数据流的相关动作,并使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为所述客户端的样品,所述样品用于进行离线测试;
所述客户端在接收所述服务端根据所述停止测试指令执行相关动作后所返回的结束测试成功指令时,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
4.根据权利要求1~3任一项所述的测试方法,其特征在于:
所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理的步骤之前还包括:
所述客户端通过所述连接设备接收所述服务端返回的流速信息,其中,所述流速信息是所述连接设备根据所述控制策略对所述数据流进行流控制后,通过所述连接设备计算得到;
所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并通过所述连接设备向所述服务端发送所述更新的测试策略;
所述客户端根据所述更新的测试策略运行所述预设的应用程序以产生新的数据流,并将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果,并将所述新的识别结果发送给所述服务端,使得所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化;
所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试策略进行相应处理,包括:
所述客户端检测所述预设的应用程序的实时状态并根据所述实时状态和所述更新的测试策略判断而得到测试结果,进而根据所述更新的测试策略进行相应处理。
5.根据权利要求4所述的测试方法,其特征在于,所述客户端根据流速信息和所述测试策略处理得到更新的测试策略,包括:
所述客户端根据所述流速信息和所述测试策略在当前的测试策略上增加或减少子策略、或替换新的测试策略从而得到所述更新的测试策略。
6.一种客户端,其特征在于,所述客户端包括:
收发模块,用于通过连接设备向服务端发送预设的测试策略;
应用处理模块,用于在所述收发模块发送所述测试策略后,根据所述测试策略运行预设的应用程序,以产生数据流并将产生的数据流经由所述连接设备发送到待测试的深度包检测DPI系统,以使所述待测试的DPI系统对所述数据流进行识别,得到识别结果并将所述识别结果发送给所述服务端,使得所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,进而使得所述连接设备根据所述控制策略对所述数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化;
自控检测模块,用于在所述应用处理模块运行所述预设的应用程序后,检测所述预设的应用程序的实时状态并根据所述实时状态和所述测试策略判断而得到测试结果,进而根据所述测试结果进行相应处理。
7.根据权利要求6所述的客户端,其特征在于:
所述收发模块,还用于在发送所述测试策略之前,通过所述连接设备向所述服务端发送开始测试指令;
所述应用处理模块,具体用于在所述收发模块获取到所述服务端返回的就绪指令时,根据所述测试策略运行所述预设的应用程序,其中,所述就绪指令由所述服务端在接收到所述开始测试指令后,根据所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包、且在所述连接设备准备就绪后发送的;
所述自控检测模块,具体用于根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功,并根据所述测试策略判断是否继续测试。
8.根据权利要求7所述的客户端,其特征在于:
所述应用处理模块,还用于在运行所述预设的应用程序之后,获取所述数据流的五元组信息与所述预设的应用程序进程的关系以进行记录;
所述自控检测模块,具体包括:
测试判断单元,用于根据所述流控制的放行、限流和/或阻断操作判断所述预设的应用程序的实时状态,并根据所述预设的应用程序的实时状态和所述测试策略中的预设条件判断测试是否成功、进而根据所述测试策略判断是否继续测试;
测试处理单元,用于在所述测试判断单元判断到不需要继续测试时,产生停止测试指令并通过所述收发模块将所述应用处理模块获取到的所述五元组信息和所述停止测试指令发送给所述服务端,以使得所述服务端通知所述连接设备和所述DPI系统停止对所述客户端的数据流的相关动作,并使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存进而作为所述客户端的样品,所述样品用于进行离线测试;
其中,在所述收发模块接收到所述服务端根据所述停止测试指令执行相关动作后所返回的结束测试成功指令时,所述测试处理单元还用于记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
9.根据权利要求6~8任一项所述的客户端,其特征在于,
所述收发模块,还用于通过所述连接设备接收所述服务端返回的流速信息,其中,所述流速信息是所述连接设备根据所述控制策略对所述数据流进行流控制后,通过所述连接设备计算得到;
所述自控检测模块,还用于根据所述收发模块接收到的所述流速信息和所述测试策略处理得到更新的测试策略,并通过所述收发模块经由所述连接设备向所述服务端发送所述更新的测试策略;
所述应用处理模块,还用于根据所述自控检测模块处理得到的所述更新的测试策略运行所述预设的应用程序以产生新的数据流,并将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果,并将所述新的识别结果发送给所述服务端,使得所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化;
所述自控检测模块,还用于检测所述预设的应用程序的实时状态并根据所述实时状态和所述更新的测试策略判断而得到测试结果,进而根据所述更新的测试策略进行相应处理。
10.根据权利要求9所述的客户端,其特征在于:
所述自控检测模块,具体用于根据所述收发模块接收到的所述流速信息和所述测试策略在当前的测试策略上增加或减少一个子策略、或替换新的测试策略从而得到所述更新的测试策略。
11.一种测试方法,其特征在于,所述测试方法包括:
服务端通过连接设备接收客户端发送的测试策略,所述测试策略用于对待测试的深度包检测DPI系统进行测试;
所述服务端通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流;
所述服务端将所述数据流发送到所述待测试的DPI系统进行识别以获取识别结果;
所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备,以使得所述连接设备根据所述控制策略对所述数据流进行流控制。
12.根据权利要求11所述的测试方法,其特征在于:
在所述服务端通过连接设备接收客户端发送的测试策略之前,还包括:
所述服务端通过所述连接设备接收所述客户端发送过来的开始测试指令;
所述服务端通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流,具体包括:
所述服务端根据所述开始测试指令及所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包;
在所述连接设备准备就绪后所述服务端产生就绪指令并将所述就绪指令通过所述连接设备发送给所述客户端;
所述服务端通过所述连接设备获取所述客户端根据所述就绪指令产生的所述数据流。
13.根据权利要求12所述的测试方法,其特征在于:
在所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备之后,还包括:
所述服务端通过所述连接设备接收所述客户端发送过来的所述数据流的五元组信息和停止测试指令,其中,所述停止测试指令用于指示停止对所述待测试的DPI系统的测试;
所述服务端根据所述停止测试指令通知所述待测试的DPI系统和所述连接设备停止对所述客户端的所述数据流的相关动作,并将所述五元组信息发送给所述连接设备,以使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,所述样品用于进行离线测试;
所述服务端产生结束测试成功指令并通过所述连接设备发送给所述客户端,以使得所述客户端在接收到所述结束测试成功指令后,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
14.根据权利要求11~12任一项所述的测试方法,其特征在于:
在所述服务端根据所述测试策略和所述识别结果产生控制策略并将所述控制策略发送给所述连接设备之后,还包括:
所述服务端接收所述连接设备根据所述控制策略计算得到的所述数据流的流速信息,并将所述流速信息通过所述连接设备发送给所述客户端,以使所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并根据所述更新的测试策略运行所述预设的应用程序产生新的数据流,以及将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果并将所述新的识别结果发送给所述服务端;
所述服务端根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。
15.一种服务端,其特征在于,所述服务端包括:
收发模块,用于通过连接设备接收客户端发送的测试策略,所述测试策略用于对待测试的深度包检测DPI系统进行测试;
测试控制模块,用于通过所述连接设备获取所述客户端根据所述测试策略运行预设的应用程序所产生的数据流;
DPI模块,用于将所述测试控制模块获取到的所述数据流发送到所述待测试的DPI系统进行识别以获取识别结果;
决策处理模块,用于根据所述测试策略和所述识别结果产生控制策略并通过所述收发模块将所述控制策略发送给所述连接设备,以使得所述连接设备根据所述控制策略对所述数据流进行流控制。
16.根据权利要求15所述的服务端,其特征在于:
所述收发模块,还用于在通过连接设备接收客户端发送的测试策略之前,通过所述连接设备接收所述客户端发送过来的开始测试指令;
所述测试控制模块具体包括:
识别处理单元,用于根据所述收发模块接收到的所述开始测试指令及所述客户端的IP地址识别所述客户端的身份并通知所述连接设备准备抓取所述IP地址对应的所述客户端的数据包;
指令产生单元,用于在所述连接设备准备就绪后产生就绪指令并将所述就绪指令通过所述连接设备发送给所述客户端;
控制单元,用于通过所述连接设备获取所述客户端根据所述就绪指令产生的所述数据流。
17.根据权利要求16所述的服务端,其特征在于:
所述收发模块,还用于在将所述控制策略发送给所述连接设备之后,通过所述连接设备接收所述客户端发送过来的所述数据流的五元组信息和停止测试指令,其中,所述停止测试指令用于指示停止对所述待测试的DPI系统的测试;
所述控制单元,还用于根据所述停止测试指令通知所述待测试的DPI系统和所述连接设备停止对所述客户端的所述数据流的相关动作,并通过所述收发模块将所述五元组信息发送给所述连接设备,以使所述连接设备根据所述五元组信息对已进行抓包保存的数据包进行提纯、过滤、以预定的规则进行命名和以预定的格式进行保存,所述样品用于进行离线测试;
所述指令产生单元,还用于产生结束测试成功指令并通过所述连接设备发送给所述客户端,以使得所述客户端在接收到所述结束测试成功指令后,记录测试的过程、结果并根据所述测试策略判断是否进行循环测试和/或切换场景进行测试。
18.根据权利要求15~16任一项所述的服务端,其特征在于:
所述收发模块,还用于接收所述连接设备根据所述控制策略计算得到的所述数据流的流速信息,并将所述流速信息通过所述连接设备发送给所述客户端,以使所述客户端根据所述流速信息和所述测试策略处理得到更新的测试策略,并根据所述更新的测试策略运行所述预设的应用程序产生更新的数据流;
所述DPI模块,还用于将所述新的数据流发送到所述待测试的DPI系统,以使所述待测试的DPI系统对所述新的数据流进行识别,得到新的识别结果;
所述决策处理模块,还用于根据所述更新的测试策略和所述新的识别结果产生新的控制策略并将所述新的控制策略发送给所述连接设备,进而使得所述连接设备根据所述新的控制策略对所述新的数据流进行流控制以使所述预设的应用程序的运行状态发生相应变化。
19.一种测试系统,其特征在于,所述测试系统包括根据权利要求6~10任一项所述的客户端和根据权利要求15~18任一项所述的服务端。
20.根据权利要求19所述的测试系统,其特征在于,所述客户端为多个,所述服务端为一个,多个所述客户端通过一个或多个所述连接设备与所述服务端相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310203941.0A CN103259699B (zh) | 2013-05-28 | 2013-05-28 | 测试方法、系统及客户端和服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310203941.0A CN103259699B (zh) | 2013-05-28 | 2013-05-28 | 测试方法、系统及客户端和服务端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103259699A CN103259699A (zh) | 2013-08-21 |
CN103259699B true CN103259699B (zh) | 2015-11-25 |
Family
ID=48963414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310203941.0A Active CN103259699B (zh) | 2013-05-28 | 2013-05-28 | 测试方法、系统及客户端和服务端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103259699B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3364601A1 (en) * | 2017-02-15 | 2018-08-22 | Siemens Aktiengesellschaft | Testing method, device and system |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518892B (zh) * | 2013-09-26 | 2018-06-05 | 中国移动通信集团公司 | 一种ott业务测试方法和装置 |
CN104468190B (zh) * | 2014-11-03 | 2018-12-25 | 青岛海信移动通信技术股份有限公司 | 一种wifi数据抓包方法、装置及智能终端 |
CN105959178B (zh) * | 2016-05-31 | 2019-06-14 | 北京网康科技有限公司 | 一种数据信息获取方法和装置 |
CN107770798A (zh) * | 2016-08-22 | 2018-03-06 | 深圳市中兴微电子技术有限公司 | 一种数据分析方法和装置 |
CN106330603A (zh) * | 2016-08-22 | 2017-01-11 | 上海国云信息科技有限公司 | 连接检测方法及系统、客户端、及dpi设备 |
CN110035056B (zh) * | 2019-02-22 | 2021-04-13 | 创新先进技术有限公司 | 一种播放设备检测方法及装置 |
CN114726763A (zh) * | 2021-01-04 | 2022-07-08 | 中国移动通信有限公司研究院 | Dpi系统的业务识别能力的检测方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321097A (zh) * | 2008-05-27 | 2008-12-10 | 南京邮电大学 | 基于净荷深度检测的腾讯网络直播业务识别方法 |
-
2013
- 2013-05-28 CN CN201310203941.0A patent/CN103259699B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321097A (zh) * | 2008-05-27 | 2008-12-10 | 南京邮电大学 | 基于净荷深度检测的腾讯网络直播业务识别方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3364601A1 (en) * | 2017-02-15 | 2018-08-22 | Siemens Aktiengesellschaft | Testing method, device and system |
Also Published As
Publication number | Publication date |
---|---|
CN103259699A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103259699B (zh) | 测试方法、系统及客户端和服务端 | |
CN106571977B (zh) | 数据传输方法和装置 | |
CN102783095B (zh) | 通信系统、通信方法、服务器设备、通信设备 | |
CN108270882A (zh) | 域名的解析方法和装置、存储介质、电子装置 | |
CN103138988B (zh) | 网络故障的定位处理方法及装置 | |
US20090013072A1 (en) | Network apparatus test system and network apparatus test method | |
CN105991600A (zh) | 身份认证方法、装置、服务器及终端 | |
CN108156024B (zh) | 一种基于分布式网站可用性探测方法、系统及存储介质 | |
CN109962827B (zh) | 设备链路检测方法、装置、设备及可读存储介质 | |
CN111953563A (zh) | 用户识别的方法、装置、设备及计算机存储介质 | |
CN105429799A (zh) | 服务器备份方法及装置 | |
CN104486361A (zh) | 建立网游连接的方法、游戏终端及系统 | |
CN107329803A (zh) | 虚拟机管理方法和装置 | |
CN106375152A (zh) | 一种c/s架构的通信异常处理方法 | |
US9800490B2 (en) | Testing by simulation using variations of real-time traffic | |
CN104468265A (zh) | 局域网终端在线状态的检测方法和装置 | |
CN114785874B (zh) | 基于多网络协议提供高可用传输通道的方法 | |
CN107748555A (zh) | 工控机远程监控和故障诊断系统 | |
CN112600703B (zh) | 网络设备远程访问故障定位方法及装置 | |
CN104376012B (zh) | 一种网页应用的掉线重连方法、装置和系统 | |
CN107707424A (zh) | 负载状态的控制方法及系统 | |
CN105763347B (zh) | 用于获取参数的方法、网络设备及系统 | |
CN105991370B (zh) | 一种udp通道探测方法及装置 | |
CN104796388A (zh) | 一种对网络设备进行扫描的方法、相关装置及系统 | |
CN111130917B (zh) | 线路测试的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |