CN112328394B - 协议仿真中消息序列处理方法、装置及可读介质 - Google Patents

协议仿真中消息序列处理方法、装置及可读介质 Download PDF

Info

Publication number
CN112328394B
CN112328394B CN202011209072.9A CN202011209072A CN112328394B CN 112328394 B CN112328394 B CN 112328394B CN 202011209072 A CN202011209072 A CN 202011209072A CN 112328394 B CN112328394 B CN 112328394B
Authority
CN
China
Prior art keywords
target event
message sequence
callback function
determining
message
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
Application number
CN202011209072.9A
Other languages
English (en)
Other versions
CN112328394A (zh
Inventor
李占有
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Teletest Technology Co ltd
Original Assignee
Beijing Teletest Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Teletest Technology Co ltd filed Critical Beijing Teletest Technology Co ltd
Priority to CN202011209072.9A priority Critical patent/CN112328394B/zh
Publication of CN112328394A publication Critical patent/CN112328394A/zh
Application granted granted Critical
Publication of CN112328394B publication Critical patent/CN112328394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供的协议仿真中消息序列处理方法、装置及可读介质,该方法包括:获取至少两个消息序列,针对每一个所述消息序列,均执行:按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,目标事件用于表征对该消息序列的处理操作;确定与每一个目标事件相对应的回调函数,其中,预设规则中包括有目标事件与回调函数的对应关系,回调函数用于表征执行与目标事件相对应的处理操作;通过调用回调函数完成目标事件。本发明能够提高协议仿真中消息序列的处理效率。

Description

协议仿真中消息序列处理方法、装置及可读介质
技术领域
本发明涉及协议仿真技术领域,特别涉及协议仿真中消息序列处理方法、装置及可读介质。
背景技术
协议仿真通常是通过服务端和客户端两侧对序列化消息(即消息序列)的顺序构造方式实现的。
实际上,协议仿真过程中需要并发测试海量的消息序列。目前针对每一个消息序列,需要阻塞式的等待连接建立或非阻塞式的查询完成建立连接、接收报文和关闭连接的过程。在海量消息序列运行过程中,无论是阻塞式的等待还是非阻塞式的查询都会占用CPU资源,造成CPU的闲置,同时浪费大量时间,导致并发处理消息序列的数量受限,因此降低了消息序列处理的效率。
发明内容
本发明实施例提供了协议仿真中消息序列处理方法、装置及可读介质,能够提高消息序列处理的效率。
第一方面,本发明实施例提供了协议仿真中消息序列处理方法,包括:
获取至少两个消息序列;
针对每一个所述消息序列,均执行:
按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,所述目标事件用于表征对该消息序列的处理操作;
确定与每一个所述目标事件相对应的回调函数,其中,所述预设规则中包括有所述目标事件与所述回调函数的对应关系,所述回调函数用于表征执行与所述目标事件相对应的处理操作;
通过调用所述回调函数完成所述目标事件。
可选地,所述按照预设规则对该消息序列进行处理,以触发至少一个目标事件,包括:
按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中至少一个;
在确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
在确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
在确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
可选地,所述确定与每一个所述目标事件相对应的回调函数,包括:
根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
可选地,在所述通过调用所述回调函数完成所述目标事件之后,进一步包括:
调用与所述第一目标事件相对应的所述第一回调函数,并反馈第一信号,其中,所述第一信号用于表征所述第一目标事件已完成;
根据所述第一信号,将该消息序列的运行态切换为发起接收;
调用与所述第二目标事件相对应的所述第二回调函数,并反馈第二信号,其中,所述第二信号用于表征所述第二目标事件已完成;
根据所述第二信号,将该消息序列的运行态切换为发起关闭连接;
调用与所述第三目标事件相对应的所述第三回调函数,并反馈第三信号,其中,所述第三信号用于表征所述第三目标事件已完成。
可选地,在所述通过调用所述回调函数完成所述目标事件之后,进一步包括:
统计在预设时长内完成每一个所述目标事件的所述消息序列的数量,并将该数量确定为完成数量;
判断所述完成数量是否大于预设数量阈值;
若所述完成数量大于所述预设数量阈值,则确定所述协议仿真完成。
第二方面,本发明实施例还提供了协议仿真中消息序列处理装置,包括:
获取模块,用于获取至少两个消息序列;
处理模块,用于针对所述获取模块获取的每一个所述消息序列,按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,所述目标事件用于表征对该消息序列的处理操作;
确定模块,用于确定与所述处理模块触发的每一个所述目标事件相对应的回调函数,其中,所述预设规则中包括有所述目标事件与所述回调函数的对应关系,所述回调函数用于表征执行与所述目标事件相对应的处理操作;
调用模块,用于通过调用所述确定模块确定的所述回调函数完成所述目标事件。
可选地,所述处理模块包括:
获取单元,用于按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中至少一个;
第一触发单元,用于在所述获取单元确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
第二触发单元,用于在所述获取单元确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
第三触发单元,用于在所述获取单元确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
可选地,所述确定模块,包括:
第一确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
第二确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
第三确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
可选地,进一步包括:调用切换模块;
所述调用切换模块,用于执行以下操作:
调用与所述第一目标事件相对应的所述第一回调函数,并反馈第一信号,其中,所述第一信号用于表征所述第一目标事件已完成;
根据所述第一信号,将该消息序列的运行态切换为发起接收;
调用与所述第二目标事件相对应的所述第二回调函数,并反馈第二信号,其中,所述第二信号用于表征所述第二目标事件已完成;
根据所述第二信号,将该消息序列的运行态切换为发起关闭连接;
调用与所述第三目标事件相对应的所述第三回调函数,并反馈第三信号,其中,所述第三信号用于表征所述第三目标事件已完成。
可选地,进一步包括:完成判断模块;
所述完成判断模块,用于执行以下操作:
统计在预设时长内完成每一个所述目标事件的所述消息序列的数量,并将该数量确定为完成数量;
判断所述完成数量是否大于预设数量阈值;
若所述完成数量大于所述预设数量阈值,则确定所述协议仿真完成。
第三方面,本发明实施例提供了协议仿真中消息序列处理装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行上述第一方面或第一方面的任一可能的实现方式所提供的方法。
第四方面,本发明实施例提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述第一方面或第一方面的任一可能的实现方式所提供的方法。
本发明提供的协议仿真中消息序列处理方法、装置及可读介质,获取至少两个消息序列,针对每一个所述消息序列,均执行:按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,目标事件用于表征对该消息序列的处理操作;确定与每一个目标事件相对应的回调函数,其中,预设规则中包括有目标事件与回调函数的对应关系,回调函数用于表征执行与目标事件相对应的处理操作;通过调用回调函数完成目标事件。每一个消息序列在运行过程中涉及到的所有需要等待的处理操作均通过触发与该处理操作对应的事件,调用回调函数以执行与事件对应的处理操作,减少等待时间和减少CPU资源占用空间,以便于能够并发处理协议仿真更多数量的消息序列,协议仿真在相同时间内所处理的消息序列数量越多,则表示该协议仿真越高效。因此,本发明通过事件驱动实现消息序列海量并发的协议仿真过程,提高了协议仿真中消息序列的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种协议仿真中消息序列处理方法的流程图;
图2是本发明一个实施例提供的另一种协议仿真中消息序列处理方法的流程图;
图3是本发明一个实施例提供的一种协议仿真中消息序列处理装置所在设备的示意图;
图4是本发明一个实施例提供的一种协议仿真中消息序列处理装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一个实施例提供的一种协议仿真中消息序列处理方法的流程图,如图1所示,该方法可以包括以下步骤:
步骤101、获取至少两个消息序列;
步骤102、按照预设规则对每一个消息序列进行处理,以触发至少一个目标事件;
步骤103、确定与每一个目标事件相对应的回调函数;
步骤104、通过调用回调函数完成目标事件。
在本发明实施例中,通过获取至少两个消息序列,针对每一个所述消息序列,均执行:按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,目标事件用于表征对该消息序列的处理操作;确定与每一个目标事件相对应的回调函数,其中,预设规则中包括有目标事件与回调函数的对应关系,回调函数用于表征执行与目标事件相对应的处理操作;通过调用回调函数完成目标事件。每一个消息序列在运行过程中涉及到的所有需要等待的处理操作均通过触发与该处理操作对应的事件,调用回调函数以执行与事件对应的处理操作,减少等待时间和减少CPU资源占用空间,以便于能够并发处理协议仿真更多数量的消息序列,协议仿真在相同时间内所处理的消息序列数量越多,则表示该协议仿真越高效。因此,本方法通过事件驱动实现消息序列海量并发的协议仿真过程,提高了协议仿真中消息序列的处理效率。
可选地,如图1所示的一种协议仿真中消息序列处理方法,步骤102中按照预设规则对该消息序列进行处理,以触发至少一个目标事件,具体可以通过以下方式实现:
按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中至少一个;
在确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
在确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
在确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
在本发明实施例中,通过监听协议仿真中的消息序列,确定消息序列的运行态,根据消息序列的运行态,触发与运行态对应的目标事件。当消息序列的运行态为发起建立连接时,触发第一目标事件,以用于该消息序列建立连接;当消息序列的运行态为发起接收时,触发第二目标事件,以用于该消息序列接收报文;当消息序列的运行态为发起关闭连接时,触发第三目标事件,以用于该消息序列关闭连接。因此,消息序列在协议仿真过程中,根据消息序列所处的运行态,触发与运行态对应的目标事件,无需阻塞式的等待或非阻塞式的查询即可完成该目标事件,如此以减少消息序列的等待时间,以达到协议仿真中单个消息序列的高效运行。
在本发明实施例中,根据预设规则对该消息序列进行处理,可以触发一个目标事件,也可以触发多个目标事件。
可选地,如图1所示的一种协议仿真中消息序列处理方法,步骤103中确定与每一个目标事件相对应的回调函数,具体可以通过以下方式实现:
根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
在本发明实施例中,预设规则中包括目标事件与回调函数的对应关系,具体为:第一回调函数用于执行与第一目标事件对应的处理操作,第二回调函数用于执行与第二目标事件对应的处理操作,第三回调函数用于执行与第三目标事件对应的处理操作。每一个消息序列存在发起建立连接、发起接收和发起关闭连接三个运行态,而发起建立连接、发起接收和发起关闭连接的运行态分别对应建立连接、接收和关闭连接三个目标事件。针对三个目标事件,获取三个回调函数,以用于执行与每个目标事件相对应的处理操作,保证了消息序列在运行过程中消息顺序执行的连贯性,减少等待建立连接、等待接收或等待关闭连接的时间,提高了消息序列的处理效率。
在本发明实施例中,获取回调函数,可以是从预先建立的回调函数库中直接获取,也可以是根据目标事件创建相对应的回调函数。
可选地,如图1所示的一种协议仿真中消息序列处理方法,在步骤104通过回调函数完成目标事件之后,还包括:
调用与所述第一目标事件相对应的所述第一回调函数,并反馈第一信号,其中,所述第一信号用于表征所述第一目标事件已完成;
根据所述第一信号,将该消息序列的运行态切换为发起接收;
调用与所述第二目标事件相对应的所述第二回调函数,并反馈第二信号,其中,所述第二信号用于表征所述第二目标事件已完成;
根据所述第二信号,将该消息序列的运行态切换为发起关闭连接;
调用与所述第三目标事件相对应的所述第三回调函数,并反馈第三信号,其中,所述第三信号用于表征所述第三目标事件已完成。
在本发明实施例中,单个消息序列在协议仿真中消息顺序执行,即当消息序列处于发起建立连接的运行态时,触发用于建立连接的第一目标事件,调用用于执行建立连接的第一回调函数,并反馈用于表示建立连接已完成的第一信号;此时,根据第一信号,将消息序列的运行态切换为发起接收,当消息序列处于发起接收的运行态时,触发用于接收的第二目标事件,调用用于执行接收的第二回调函数,并反馈用于表示接收已完成的第二信号;此时,根据第二信号,将消息序列的运行态切换为关闭连接,当消息序列处于关闭连接的运行态时,触发用于关闭连接的第三目标事件,调用用于执行关闭连接的第三回调函数,并反馈用于表示关闭连接已完成的第三信号。当接收到第三信号时,则确定当前消息序列完成测试。如此,当消息序列顺次触发三个目标事件时,该消息序列会按顺序依次执行这三个目标事件,反馈信号的存在保证了单个消息序列顺序执行,避免了消息序列在协议仿真测试中的等待,从而减少了单个消息序列CPU资源的占用空间。
可选地,如图1所示的一种协议仿真中消息序列处理方法,在步骤104通过回调函数完成目标事件之后,还包括:
统计在预设时长内完成每一个所述目标事件的所述消息序列的数量,并将该数量确定为完成数量;
判断所述完成数量是否大于预设数量阈值;
若所述完成数量大于所述预设数量阈值,则确定所述协议仿真完成。
在本发明实施例中,通过统计预设时长内完成所有目标事件的消息序列的数量,并对比该数量与预设数量之间的关系,当该数量大于预设数量阈值时,则确定本次协议仿真完成。其中,该预设数量可以为预设时长内采用现有技术方法完成测试的消息序列的数量,也可以是对本次协议仿真能够完成消息序列的期望值。因此通过对比在预设时长内完成每一个目标事件的消息序列的数量与预设数量,可以进一步确定本次协议仿真的高效性,更直观地将本次协议仿真的结果展示给用户。
如图2所示,为了更加清楚地说明本发明的技术方案及优点,下面对本发明实施例提供的协议仿真中消息序列处理方法进行详细说明,具体包括以下步骤:
步骤201、获取至少两个消息序列。
在本步骤中,设定协议仿真的预设时长,确定所需协议仿真的消息序列的设定数量,获取设定数量的消息序列用于协议仿真。
例如,预设时长为m秒,设定数量为n万个,获取n万个消息序列用于协议仿真。
步骤202、按照预设规则确定消息序列的运行态,若确定运行态为发起建立连接时,执行步骤203;若确定运行态为发起接收时,执行步骤206;若确定运行态为关闭连接时,执行步骤209。
在本步骤中,通过监听协议仿真中的消息序列来确定消息序列的运行态。具体为:当监听到消息序列的运行态为发起建立连接时,获取发起建立连接的出参,对该出参进行解析,得到解析参数,基于解析参数构建建立连接的入参,通过事件驱动和建立连接的入参调用与建立连接相对应的功能接口socket即回调函数,以完成消息序列的建立连接。同理,当监听到消息序列的运行态为发起接收时,利用上述方式以完成消息序列的接收,当监听到消息序列的运行态为发起关闭连接时,利用上述方式以完成消息序列的关闭连接。因此,消息序列在协议仿真过程中,根据消息序列所处的运行态,触发与运行态对应的目标事件,减少消息序列的等待时间,以达到协议仿真中单个消息序列的高效运行。
步骤203、触发第一目标事件,并根据预设规则中的对应关系确定与第一目标事件相对应的第一回调函数。
在本步骤中,当消息序列的运行态为发起建立连接时,服务端向客户端发送一个带有同步序列号的标志位的数据段,向客户端请求建立连接,以用于向客户端表明通信的意图,并告知客户端使用目标序列号作为起始数据段回复。当客户端接收到服务端的请求后,客户端使用带有确认应答(Acknowledgement,ACK)和同步序列号(Syn cookie,SYN)标志位的数据段响应服务端,以用于告知服务端可以传输数据并可使用目标序列号作为起始数据段来回复。当服务端接收到客户端发来的数据段后,向客户端发送确认应答的信号,此时,服务端和客户端完成3次握手,触发协议栈建立连接的第一目标事件,并根据预设规则中第一目标事件和第一回调函数的对应关系,确定用于执行建立连接的第一回调函数。
步骤204、调用第一回调函数,并反馈第一信号。
在本步骤中,获取发起建立连接的出参,对该出参进行解析,得到解析参数,基于解析参数构建建立连接的入参,通过事件驱动和建立连接的入参调用与建立连接相对应的功能接口socket即第一回调函数,以完成消息序列的建立连接,并反馈消息序列建立连接已完成的第一信号。
步骤205、根据第一信号,将该消息序列的运行态切换成发起接收,执行步骤206。
在本步骤中,由于第一信号表示消息序列已完成建立连接,此时,按照消息序列的消息执行顺序,将该消息序列的运行态切换成发起接收,以保证消息序列的消息执行的连贯性,减少消息协议不必要的等待时间,尽可能的降低消息序列CPU资源的占用空间。
步骤206、触发第二目标事件,并根据预设规则中的对应关系确定与第二目标事件相对应的第二回调函数。
在本步骤中,当消息序列的运行态为发起接收时,触发协议栈建立连接的第二目标事件,并根据预设规则中第二目标事件和第二回调函数的对应关系,确定用于执行接收的第二回调函数。
步骤207、调用第二回调函数,并反馈第二信号。
在本步骤中,获取发起接收的出参,对该出参进行解析,得到解析参数,基于解析参数构建接收的入参,通过事件驱动和接收的入参调用与接收相对应的功能接口socket即第二回调函数,以完成消息序列的接收,并反馈消息序列接收已完成的第二信号。
步骤208、根据第二信号,将该消息序列的运行态切换成发起接收,执行步骤209。
在本步骤中,由于第二信号表示消息序列已完成接收,此时,按照消息序列的消息执行顺序,将该消息序列的运行态切换成发起关闭连接,以保证消息序列的消息执行的连贯性,减少消息协议不必要的等待时间,尽可能的降低消息序列CPU资源的占用空间。
步骤209、触发第三目标事件,并根据预设规则中的对应关系确定与第三目标事件相对应的第三回调函数。
在本步骤中,当消息序列的运行态为发起关闭连接时,服务端向客户端发送停止TCP连接的请求,将控制位FIN置于1,当客户端接收到控制位FIN为1的状态后,确认连接方向的TCP关闭连接,并将ACK置1,服务端再次向客户端提出连接反方向的TCP关闭连接请求,并将控制位FIN置1,客户端对服务端发来的请求进行确认,将ACK置1,此时,客户端和服务端完成4次握手,触发协议栈关闭连接的第三目标事件,并根据预设规则中第三目标事件和第三回调函数的对应关系,确定用于执行关闭连接的第三回调函数。
步骤210、调用第三回调函数,并反馈第三信号。
在本步骤中,获取发起关闭连接的出参,对该出参进行解析,得到解析参数,基于解析参数构建关闭连接的入参,通过事件驱动和关闭连接的入参调用与关闭连接相对应的功能接口socket即第三回调函数,以完成消息序列的关闭连接,并反馈消息序列关闭连接已完成的第三信号。
步骤211、根据第三信号,将该消息序列的运行态切换成发起关闭连接。
在本步骤中,由于第三信号表示消息序列已完成关闭连接,此时,按照消息序列的消息执行顺序,将该消息序列的运行态切换成关闭接收,以保证消息序列的消息执行的连贯性,减少消息协议不必要的等待时间,尽可能的降低消息序列CPU资源的占用空间。
步骤212、统计在预设时长内完成第三目标事件的消息序列的数量,若该数量大于预设数量阈值,则确定协议仿真高效。
在本步骤中,协议仿真高效性的判断依据可以为预设时长内完成测试的消息序列的数量达到预设数量,该预设数量可以为预设时长内采用现有技术方法完成测试的消息序列的数量。因此统计在预设时长内完成每一个目标事件的消息序列的数量,若该数量大于预设数量阈值,则确定协议仿真完成,即协议仿真高效。
例如,现有技术在预设时长m秒内消息序列能够完成的数量为a个,将a作为预设数量阈值。本发明实施例中,基于事件驱动的消息序列的协议仿真在预设时长m秒内消息序列能够完成的数量为b个,若b值大于a,则表明本发明实施例中的协议仿真是高效的。
如图3和图4所示,本发明实施例提供了协议仿真中消息序列处理装置所在的协议仿真中消息序列处理装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的协议仿真中消息序列处理装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
如图4所示,本发明实施例提供的协议仿真中消息序列处理装置,包括:
获取模块401,用于获取至少两个消息序列;
处理模块402,用于针对所述获取模块401获取的每一个所述消息序列,按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,所述目标事件用于表征对该消息序列的处理操作;
确定模块403,用于确定与所述处理模块402触发的每一个所述目标事件相对应的回调函数,其中,所述预设规则中包括有所述目标事件与所述回调函数的对应关系,所述回调函数用于表征执行与所述目标事件相对应的处理操作;
调用模块404,用于通过调用所述确定模块403确定的所述回调函数完成所述目标事件。
在本发明实施例中,获取模块401可用于执行上述方法实施例中的步骤101,处理模块402也可用于执行上述方法实施例中的步骤102,确定模块403可用于执行上述方法实施例中的步骤103,调用模块404可用于执行上述方法实施例中的步骤104。
可选地,如图4所示的协议仿真中消息序列处理装置,处理模块包括:
获取单元,用于按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中至少一个;
第一触发单元,用于在所述获取单元确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
第二触发单元,用于在所述获取单元确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
第三触发单元,用于在所述获取单元确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
可选地,如图4所示的协议仿真中消息序列处理装置,确定模块包括:
第一确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
第二确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
第三确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
可选地,在图4所示的协议仿真中消息序列处理装置的基础上,进一步包括调用切换模块;
所述调用切换模块,用于执行以下步骤:
调用与所述第一目标事件相对应的所述第一回调函数,并反馈第一信号,其中,所述第一信号用于表征所述第一目标事件已完成;
根据所述第一信号,将该消息序列的运行态切换为发起接收;
调用与所述第二目标事件相对应的所述第二回调函数,并反馈第二信号,其中,所述第二信号用于表征所述第二目标事件已完成;
根据所述第二信号,将该消息序列的运行态切换为发起关闭连接;
调用与所述第三目标事件相对应的所述第三回调函数,并反馈第三信号,其中,所述第三信号用于表征所述第三目标事件已完成。
可选地,在图4所示的协议仿真中消息序列处理装置的基础上,进一步包括完成判断模块;
所述完成判断模块,用于执行以下步骤:
统计在预设时长内完成每一个所述目标事件的所述消息序列的数量,并将该数量确定为完成数量;
判断所述完成数量是否大于预设数量阈值;
若所述完成数量大于所述预设数量阈值,则确定所述协议仿真完成。
可以理解的是,本发明实施例示意的结构并不构成对协议仿真中消息序列处理装置的具体限定。在本发明的另一些实施例中,协议仿真中消息序列处理装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块、各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了协议仿真中消息序列处理装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的协议仿真中消息序列处理方法。
本发明实施例还提供了一种计算机可读介质,存储用于使一计算机执行如本文所述的协议仿真中消息序列处理方法的指令。具体地,可以提供配有存储介质的方法或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该方法或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作方法等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
综上所述,本发明各个实施例所提供的协议仿真中消息序列处理方法及装置,至少具有如下有益效果:
1、在本发明实施例中,通过获取至少两个消息序列,针对每一个所述消息序列,均执行:按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,目标事件用于表征对该消息序列的处理操作;确定与每一个目标事件相对应的回调函数,其中,预设规则中包括有目标事件与回调函数的对应关系,回调函数用于表征执行与目标事件相对应的处理操作;通过调用回调函数完成目标事件。每一个消息序列在运行过程中涉及到的所有需要等待的处理操作均通过触发与该处理操作对应的事件,调用回调函数以执行与事件对应的处理操作,减少等待时间和减少CPU资源占用空间,以便于能够并发处理协议仿真更多数量的消息序列,协议仿真在相同时间内所处理的消息序列数量越多,则表示该协议仿真越高效。因此,本方法通过事件驱动实现消息序列海量并发的协议仿真过程,提高了协议仿真中消息序列的处理效率通过获取至少两个消息序列,针对每一个所述消息序列,均执行:按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,目标事件用于表征对该消息序列的处理操作;确定与每一个目标事件相对应的回调函数,其中,预设规则中包括有目标事件与回调函数的对应关系,回调函数用于表征执行与目标事件相对应的处理操作;通过调用回调函数完成目标事件。每一个消息序列在运行过程中涉及到的所有需要等待的处理操作均通过触发与该处理操作对应的事件,调用回调函数以执行与事件对应的处理操作,减少等待时间和减少CPU资源占用空间,以便于能够并发协议仿真更多数量的消息序列,协议仿真的消息序列数量越多,表示该协议仿真越高效。因此,本发明通过事件驱动实现消息序列海量并发的协议仿真过程,提高了协议仿真中消息序列的处理效率。
2、在本发明实施例中,通过监听协议仿真中的消息序列,确定消息序列的运行态,根据消息序列的运行态,触发与运行态对应的目标事件。当消息序列的运行态为发起建立连接时,触发第一目标事件,以用于该消息序列建立连接;当消息序列的运行态为发起接收时,触发第二目标事件,以用于该消息序列接收报文;当消息序列的运行态为发起关闭连接时,触发第三目标事件,以用于该消息序列关闭连接。因此,消息序列在协议仿真过程中,根据消息序列所处的运行态,触发与运行态对应的目标事件,无需阻塞式的等待或非阻塞式的查询即可完成该目标事件,如此以减少消息序列的等待时间,以达到协议仿真中单个消息序列的高效运行。
3、在本发明实施例中,预设规则中包括目标事件与回调函数的对应关系,具体为:第一回调函数用于执行与第一目标事件对应的处理操作,第二回调函数用于执行与第二目标事件对应的处理操作,第三回调函数用于执行与第三目标事件对应的处理操作。每一个消息序列存在发起建立连接、发起接收和发起关闭连接三个运行态,而发起建立连接、发起接收和发起关闭连接的运行态分别对应建立连接、接收和关闭连接三个目标事件。针对三个目标事件,获取三个回调函数,以用于执行与每个目标事件相对应的处理操作,保证了消息序列在运行过程中消息顺序执行的连贯性,减少等待建立连接、等待接收或等待关闭连接的时间,提高了消息序列的处理效率。
4、在本发明实施例中,单个消息序列在协议仿真中消息顺序执行,即当消息序列处于发起建立连接的运行态时,触发用于建立连接的第一目标事件,调用用于执行建立连接的第一回调函数,并反馈用于表示建立连接已完成的第一信号;此时,根据第一信号,将消息序列的运行态切换为发起接收,当消息序列处于发起接收的运行态时,触发用于接收的第二目标事件,调用用于执行接收的第二回调函数,并反馈用于表示接收已完成的第二信号;此时,根据第二信号,将消息序列的运行态切换为关闭连接,当消息序列处于关闭连接的运行态时,触发用于关闭连接的第三目标事件,调用用于执行关闭连接的第三回调函数,并反馈用于表示关闭连接已完成的第三信号。当接收到第三信号时,则确定当前消息序列完成测试。如此,当消息序列顺次触发三个目标事件时,该消息序列会按顺序依次执行这三个目标事件,反馈信号的存在保证了单个消息序列顺序执行,避免了消息序列在协议仿真测试中的等待,从而减少了单个消息序列CPU资源的占用空间。
5、在本发明实施例中,通过统计预设时长内完成所有目标事件的消息序列的数量,并对比该数量与预设数量之间的关系,当该数量大于预设数量阈值时,则确定本次协议仿真完成。其中,该预设数量可以为预设时长内采用现有技术方法完成测试的消息序列的数量,也可以是对本次协议仿真能够完成消息序列的期望值。因此通过对比在预设时长内完成每一个目标事件的消息序列的数量与预设数量,可以进一步确定本次协议仿真的高效性,更直观地将本次协议仿真的结果展示给用户。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制情况下,由语句“包括一······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.协议仿真中消息序列处理方法,其特征在于,包括:
获取至少两个消息序列;
针对每一个所述消息序列,均执行:
按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,所述目标事件用于表征对该消息序列的处理操作;
确定与每一个所述目标事件相对应的回调函数,其中,所述预设规则中包括有所述目标事件与所述回调函数的对应关系,所述回调函数用于表征执行与所述目标事件相对应的处理操作;
通过调用所述回调函数完成所述目标事件;
所述按照预设规则对该消息序列进行处理,以触发至少一个目标事件,包括:
按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中的一个;
在确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
在确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
在确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
2.根据权利要求1所述的方法,其特征在于,所述确定与每一个所述目标事件相对应的回调函数,包括:
根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
3.根据权利要求2所述的方法,其特征在于,在所述通过调用所述回调函数完成所述目标事件之后,进一步包括:
调用与所述第一目标事件相对应的所述第一回调函数,并反馈第一信号,其中,所述第一信号用于表征所述第一目标事件已完成;
根据所述第一信号,将该消息序列的运行态切换为发起接收;
调用与所述第二目标事件相对应的所述第二回调函数,并反馈第二信号,其中,所述第二信号用于表征所述第二目标事件已完成;
根据所述第二信号,将该消息序列的运行态切换为发起关闭连接;
调用与所述第三目标事件相对应的所述第三回调函数,并反馈第三信号,其中,所述第三信号用于表征所述第三目标事件已完成。
4.根据权利要求1至3中任一所述的方法,其特征在于,在所述通过调用所述回调函数完成所述目标事件之后,进一步包括:
统计在预设时长内完成每一个所述目标事件的所述消息序列的数量,并将该数量确定为完成数量;
判断所述完成数量是否大于预设数量阈值;
若所述完成数量大于所述预设数量阈值,则确定所述协议仿真完成。
5.协议仿真中消息序列处理装置,其特征在于,包括:
获取模块,用于获取至少两个消息序列;
处理模块,用于针对所述获取模块获取的每一个所述消息序列,按照预设规则对该消息序列进行处理,以触发至少一个目标事件,其中,所述目标事件用于表征对该消息序列的处理操作;
确定模块,用于确定与所述处理模块触发的每一个所述目标事件相对应的回调函数,其中,所述预设规则中包括有所述目标事件与所述回调函数的对应关系,所述回调函数用于表征执行与所述目标事件相对应的处理操作;
调用模块,用于通过调用所述确定模块确定的所述回调函数完成所述目标事件;
所述处理模块包括:
获取单元,用于按照预设规则确定该消息序列的运行态,其中,所述运行态包括发起建立连接、发起接收和发起关闭连接中的一个;
第一触发单元,用于在所述获取单元确定该消息序列的运行态为发起建立连接时,触发第一目标事件,其中,所述第一目标事件用于表征对该消息序列建立连接的处理操作;
第二触发单元,用于在所述获取单元确定该消息序列的运行态为发起接收时,触发第二目标事件,其中,所述第二目标事件用于表征接收该消息序列的处理操作;
第三触发单元,用于在所述获取单元确定该消息序列的运行态为发起关闭连接时,触发第三目标事件,其中,所述第三目标事件用于表征对该消息序列关闭连接的处理操作。
6.根据权利要求5所述的装置,其特征在于,所述确定模块,包括:
第一确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第一目标事件相对应的第一回调函数;
第二确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第二目标事件相对应的第二回调函数;
第三确定单元,用于根据所述预设规则中的所述对应关系,确定与所述第三目标事件相对应的第三回调函数。
7.协议仿真中消息序列处理装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至4中任一项所述的方法。
8.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至4中任一项所述的方法。
CN202011209072.9A 2020-11-03 2020-11-03 协议仿真中消息序列处理方法、装置及可读介质 Active CN112328394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011209072.9A CN112328394B (zh) 2020-11-03 2020-11-03 协议仿真中消息序列处理方法、装置及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011209072.9A CN112328394B (zh) 2020-11-03 2020-11-03 协议仿真中消息序列处理方法、装置及可读介质

Publications (2)

Publication Number Publication Date
CN112328394A CN112328394A (zh) 2021-02-05
CN112328394B true CN112328394B (zh) 2024-03-01

Family

ID=74322789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011209072.9A Active CN112328394B (zh) 2020-11-03 2020-11-03 协议仿真中消息序列处理方法、装置及可读介质

Country Status (1)

Country Link
CN (1) CN112328394B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777127A (zh) * 2005-12-08 2006-05-24 中国移动通信集团公司 协议一致性测试装置及测试方法
CN101510870A (zh) * 2008-04-23 2009-08-19 北京德瑞海普科技有限公司 基于脚本和模块驱动的代码级网络协议仿真验证组织方法
JP2009252113A (ja) * 2008-04-09 2009-10-29 Canon Inc 情報処理装置、その制御方法及びコンピュータプログラム
CN107888446A (zh) * 2017-10-30 2018-04-06 北京奇安信科技有限公司 一种协议健壮性测试方法及装置
CN108075945A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 一种应用测试方法及装置
CN108563493A (zh) * 2018-04-12 2018-09-21 郑州云海信息技术有限公司 一种事件驱动方法、装置、设备及可读存储介质
CN109002363A (zh) * 2018-06-21 2018-12-14 郑州云海信息技术有限公司 一种事件处理方法、装置、设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1777127A (zh) * 2005-12-08 2006-05-24 中国移动通信集团公司 协议一致性测试装置及测试方法
JP2009252113A (ja) * 2008-04-09 2009-10-29 Canon Inc 情報処理装置、その制御方法及びコンピュータプログラム
CN101510870A (zh) * 2008-04-23 2009-08-19 北京德瑞海普科技有限公司 基于脚本和模块驱动的代码级网络协议仿真验证组织方法
CN108075945A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 一种应用测试方法及装置
CN107888446A (zh) * 2017-10-30 2018-04-06 北京奇安信科技有限公司 一种协议健壮性测试方法及装置
CN108563493A (zh) * 2018-04-12 2018-09-21 郑州云海信息技术有限公司 一种事件驱动方法、装置、设备及可读存储介质
CN109002363A (zh) * 2018-06-21 2018-12-14 郑州云海信息技术有限公司 一种事件处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN112328394A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
US10521322B2 (en) Modeling and testing of interactions between components of a software system
CN112527879B (zh) 基于Kafka的实时数据抽取方法及相关设备
CN107577578B (zh) 统计nfs操作字时延的方法、装置、设备以及存储介质
CN112256542B (zh) 基于eBPF的微服务系统性能检测方法、装置和系统
CN108228444B (zh) 一种测试方法和装置
US11809882B2 (en) Interface calling method and apparatus, and computer-readable storage medium
CN108595331B (zh) 异步接口的测试方法、介质、装置和计算设备
CN110543428B (zh) 应用系统的测试方法及装置
CN111737022A (zh) 一种基于微服务的接口调用方法、系统、设备及介质
CN111221793A (zh) 数据挖掘方法、平台、计算机设备及存储介质
CN111274325B (zh) 平台自动化测试方法及系统
WO2021226781A1 (zh) 防火墙规则的更新方法、装置、服务器及存储介质
CN110750453B (zh) 基于html5的智能移动端测试方法、系统、服务器及存储介质
CN111200651A (zh) 定时调用微服务的方法、系统、设备和介质
CN115811484A (zh) 网络探测方法、设备及存储介质
CN112328394B (zh) 协议仿真中消息序列处理方法、装置及可读介质
CN113346973A (zh) 事件提示方法及装置、电子设备、计算机可读存储介质
US20180110091A1 (en) Data Transmission Method and Apparatus for Data Service
CN117478524A (zh) 一种服务器模拟测试方法、装置、设备和介质
CN109460193B (zh) 一种存储系统中io处理方法、装置及终端
US20180063005A1 (en) Non-blocking request processing method and device
CN113961194A (zh) 基于Flutter跨应用的工程构建方法、系统、终端及介质
CN108363922A (zh) 一种自动化恶意代码仿真检测方法及系统
CN113742099A (zh) 基于集合的消息消费方法、生产方法、系统及存储介质
CN113055468B (zh) 一种芯片管控方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant