CN112948235B - 数据包生成方法、装置及电子设备 - Google Patents
数据包生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112948235B CN112948235B CN202110116777.4A CN202110116777A CN112948235B CN 112948235 B CN112948235 B CN 112948235B CN 202110116777 A CN202110116777 A CN 202110116777A CN 112948235 B CN112948235 B CN 112948235B
- Authority
- CN
- China
- Prior art keywords
- protocol
- layer
- data
- target
- data packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004891 communication Methods 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 44
- 238000012856 packing Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 19
- 238000004806 packaging method and process Methods 0.000 claims description 12
- 239000010410 layer Substances 0.000 description 144
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 238000012795 verification Methods 0.000 description 8
- 239000002356 single layer Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种数据包生成方法、装置及电子设备,属于通信技术领域,能够解决如何生成满足需求的数据包的问题。该方法包括:获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据;基于该目标数据,生成目标数据包。
Description
技术领域
本申请属于通信技术领域,具体涉及一种数据包生成方法、装置及电子设备。
背景技术
随着芯片规模发展的越来越大,需要用户在电子设备的前端验证中,不断地提高测试验证芯片的完整性。电子设备的芯片,通常会涉及到多种层级的网络协议,例如物理层、链路层、网络层和传输层等。
目前,很多验证环境和测试用例都是基于C语言开发的。在实际的测试验证过程中,对于多种层级的网络协议,由于测试工具可能仅支持生成单一协议、且固定长度、固定数据的数据包,因此测试工具可能无法生成满足需求的数据包,以进行芯片的测试验证。如此,如何生成满足需求的数据包成为一个亟待解决的问题。
发明内容
本申请实施例的目的是提供一种数据包生成方法、装置及电子设备,能够解决如何生成满足需求的数据包的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种数据包生成方法,该方法包括:获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据;基于该目标数据,生成目标数据包。
第二方面,本申请实施例提供了一种数据包生成装置,该数据包生成装置包括获取模块和处理模块。获取模块,用于获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;并根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据。处理模块,用于基于获取模块获取的该目标数据,生成目标数据包。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如上述第一方面中的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,该可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述第一方面中的方法的步骤。
第五方面,本申请实施例提供了一种芯片,该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现如上述第一方面中的方法。
在本申请实施例中,可以获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据;基于该目标数据,生成目标数据包。通过该方案,可以获取用户根据实际需求输入的包括类型信息的配置信息,由于该类型信息由M层协议的协议头组成,因此可以根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据,从而基于该目标数据,可以生成单层协议对应的数据组成的数据包;或生成由多层协议对应的数据组成的组合数据包。如此,可以满足需求生成多样化的数据包。
附图说明
图1为本申请实施例提供的一种数据包生成方法的示意图;
图2为本申请实施例提供的一种数据包打包方法的示意图;
图3为本申请实施例提供的一种数据包解包方法的示意图之一;
图4为本申请实施例提供的一种多层协议随机化方法的示意图之一;
图5为本申请实施例提供的一种多层协议随机化方法的示意图之二;
图6为本申请实施例提供的一种数据包解包方法的示意图之二;
图7为本申请实施例提供的数据包生成装置的结构示意图;
图8为本申请实施例提供的电子设备的结构示意图;
图9为本申请实施例提供的电子设备的硬件示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个类型是指两个或者两个以上的类型等。
下面对本申请实施例中涉及的一些术语/名词进行解释说明。
ethernet,ETH:一种以太网络接口,是当今现有局域网采用的最通用的通信协议标准。在本申请实施例中,生成的目标数据包为ethernet数据包。
internet protocol,IP:一种网络之间互连的协议,即为网络层协议。例如,在本申请实施例中,IP协议具体可以包括第四版互联网协议IPV4、第六版互联网协议IPV6。
transmission control protocol,TCP:是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transport layer)通信协议,也称为传输控制协议。
user datagram protocol,UDP:是开放式系统互联参考模型(open systeminterconnection,OSI)中一种无连接的传输层协议,也是用户数据报协议。在简化的计算机网络OSI模型中,TCP完成第四层传输层所指定的功能,UDP是同一层内另一个重要的传输协议。
本申请实施例提供一种数据包生成方法、装置及电子设备,可以获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据;基于该目标数据,生成目标数据包。通过该方案,可以获取用户根据实际需求输入的包括类型信息的配置信息,由于该类型信息由M层协议的协议头组成,因此可以根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据,从而基于该目标数据,可以生成单层协议对应的数据组成的数据包;或生成由多层协议对应的数据组成的组合数据包。如此,可以满足需求生成多样化的数据包。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的数据包生成方法、装置及电子设备进行详细地说明。
需要说明的是,本申请实施例,主要利用在以编程语言(systemverilog,SV语言)类库为主体的通用验证方法学(universal verification methodology,UVM)验证平台的sequence_item以及相关内嵌函数,完成多层协议数据包的自动化生成。具体可以参照现有的uvm_sequence_item等相关技术。
示例性的,uvm_sequence_item提供了一些基础函数,比如打包pack函数,解包unpack函数,比对compare函数,复制copy函数,随机化randomize函数等。但是由于这些函数不满足生成多层协议数据包。需要我们重载这些函数,并根据各层级协议对应的字段做额外的处理。例如,开发人员可以局域UVM框架重新定义打包do_pac、解包do_unpack、比对do_compare等这些函数。
如图1所示,本申请实施例提供一种数据包生成方法,该方法包括下述S101至S103。
S101、数据包生成装置获取配置信息。
其中,上述配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数。
需要说明的是,对比不同网络设备的测试需求,由于不同网络设备配的网络协议不同,因此需要的数据包类型也不同,从而上述配置信息包括的类型信息即可以为待生成目标数据包的头部信息,也可以作为目标数据包的名称。
可选地,上述配置信息可以为用户自定义配置的数据包的类型信息,或为电子设备出厂设置的数据包的类型信息。具体可以根据实际情况确定,本申请实施例对此不作限定。例如,在数据包的类型字段中配置待生成目标数据包的类型信息。当然,在实际使用过程中,如果当前配置的目标数据包的类型信息不满足需求时,那么用户可以对配置信息包括的目标数据包的类型信息进行修改。
可选地,在配置信息可以为用户自定义配置的数据包的类型信息之前,上述S101之前,本申请实施例提供的数据包生成方法还可以包括:输入配置信息,该配置信息包括类型信息。
可选地,通常意义下,以七层模型为例,上述M层协议可以包括数据链路层、网络层、传输层等。其中,数据链路层对应物理寻址信息(即二层协议信息),网络层对应逻辑寻址信息(即三层协议信息)和传输层对应传输控制信息(即四层协议信息)。即M层协议可以包括二层协议、三层协议和四层协议。
具体地,数据链路层由底层网络定义协议;网络层的协议有ICMP、IGMP和IP(例如IPV4、IPV6);传输层的协议有TCP和UDP。
相应地,由于目标数据包的类型信息由该目标数据包对应的M层协议的协议头组成,因此该类型信息可以包括以太网头、网络层协议的协议头和传输层协议的协议头等。
例如,若目标数据包的类型信息为ETH_IPV4_TCP,则数据包为ETH_IPV4_TCP数据包;若目标数据包的类型信息为ETH_IPV6_UDP,则数据包为ETH_IPV6_UDP数据包。
可选地,在本申请实施例中,在配置信息包括目标数据包的类型信息的情况下,如果用户配置待生成的数据包为一个类型,那么获取的配置信息可以包括一个类型的数据包的类型信息;如果用户配置待生成的数据包为多个类型,那么获取的配置信息可以包括多个类型的数据包的类型信息。具体可以根据实际情况确定,本申请实施例对此不作限定。
S102、数据包生成装置根据类型信息,从预配置的数据模板中获取M层协议对应的目标数据。
可选地,上述预配置的数据模板可以为用户预先配置好的,该预配置的数据模板中可以包括M层协议中每层协议对应的数据模版。
具体地,在目标数据包的类型信息由该目标数据包对应的M层协议的协议头组成的情况下,由于每一种协议头都继承自uvm_sequence_item,因此每个协议头都具有uvm_sequence_item的属性和方法。例如,将ip协议头定义为ip_seq_item;将tcp协议头定义为tcp_seq_item等。
接着,在配置待生成的ethernet数据包之后,可以先根据用户配置的类型信息,实例化该类型信息对应的M层协议的每个协议的数据,然后将每个协议的数据组合以得到多层协议组合的数据包。例如,实例化ip_seq_item的数据,或实例化tcp_seq_item的数据。
可以理解的是,由于可以获取目标数据包的类型信息,因此可以通过S101和S102对M层协议中每层协议实例化,从而可以从预配置的数据模板中获取M层协议对应的目标数据。
S103、数据包生成装置基于该目标数据,生成目标数据包。
可以理解的是,由于目标数据包为由M层协议对应的数据组合得到的数,因此当M=1时,该目标数据包为单层协议的数据包;当M>1时,该目标数据包为多层协议组合的数据包。
可选地,在M大于1的情况下,上述S103具体可以通过下述S103A实现。
S103A、数据包生成装置按照M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
需要说明的是,由于根据协议规定,网络协议中包括二层协议、三层协议和四层协议等,因此对于M层协议中的每层协议存在协议层级的先后顺序,从而在对目标数据打包时,需要按照M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包,即该目标数据包为多层协议组合的数据包。
示例性的,将目标数据逐层打包时,如图2所示,依次具体包括:打包源地址和目标地址字段;打包用户自定义的头字段;打包长度、类型字段;打包数据;打包校验码。
可以理解的是,按照M层协议的协议层级顺序,将目标数据逐层打包,使得生成的目标数据包更加符合各层协议规定。
示例性的,假设目标数据包的类型信息为ETH_IPV4_TCP。如果用户想要使用目标数据包测试验证网络设备,那么用户可以输入需要的配置信息。数据包生成装置获取配置信息,该配置信息包括待生成目标数据包的类型信息ETH_IPV4_TCP,即该类型信息ETH_IPV4_TCP,由以太网层的协议头ETH、网络层的协议头IPV4和传输层的协议头TCP组成。首先,数据包生成装置可以根据该类型信息,从预配置的数据模板中获取以太网层协议、网络层IPV4协议和传输层TCP协议对应的目标数据。然后,数据包生成装置基于该目标数据,生成以太网层协议、网络层IPV4协议和传输层TCP协议组合的数据包(即目标数据包)。
可选地,在生成数据包之后,在发送数据包的过程中,需要按照不同协议层级对数据包进行解包。如图3所示,具体步骤包括:解包以太网头部字段;解包数据荷字段;基于以太网头部字段中的类型字段,调用IP的解包函数;从有效载荷中提取IP数据荷;基于IP协议头字段中协议类型字段,调用TCP解包函数;解包校验码字段。
本申请实施例提供一种数据包生成方法,可以获取用户根据实际需求输入的包括类型信息的配置信息,由于该类型信息由M层协议的协议头组成,因此可以根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据,从而基于该目标数据,可以生成单层协议对应的数据组成的数据包;或生成由多层协议对应的数据组成的组合数据包。如此,可以满足需求生成多样化的数据包。
可选地,在上述S103A之前,本申请实施例提供的数据包生成方法还可以包括S104;相应地,S103A也可以通过下述S103A1实现。
S104、数据包生成装置确定与M层协议中每层协议对应的打包函数。
可选地,上述打包函数可以为用户预先配置的或为电子设备出厂配置的。由于不同层协议的格式、长度等信息存在区别,因此用户可以根据不同层协议的规定,对不同层协议配置相应的一些函数,即不同层协议对应的函数可能不同。例如打包pack函数、解包unpack函数、插入insert函数,求和check_sum函数,计算校验码calu_crc函数,随机化post_randomize函数等。
S103A1、数据包生成装置根据该打包函数,按照该M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
可选地,因为协议种类众多,并且各种协议之间可能还有相互关系,所以随机化的约束设置和相关的配置变量的设置也是很重要。
示例性的,如图4所示,针对不同层级协议的随机化,具体步骤包括:打包Ipv4字节、计算Ipv4字段校验总和,得到头部字段长度;在数据荷中插入IP协议头;打包TCP字节、将TCP字段的数据插入数据荷;计算TCP字段校验总和。
本申请实施例提供的数据包生成方法,由于可以确定与M层协议中每层协议对应的打包函数,因此根据该打包函数,按照该M层协议的协议层级顺序,将目标数据逐层打包,使得生成的目标数据包更加符合各层协议规定。
可选地,配置信息还可以包括长度信息,该长度信息指示的数据包字节长度的取值范围为第一区间。相应地,上述S103具体可以通过下述S103B实现。
S103B、数据包生成装置基于目标数据和长度信息,生成数据包字节长度位于第一区间的目标数据包。
可选地,上述长度信息可以为用户预先自定义配置的,或为电子设备出厂设置的。具体可以根据实际情况确定,本申请实施例对此不作限定。当然,在实际使用过程中,如果当前配置的待生成目标数据包的长度信息不满足需求,那么用户可以对配置信息包括的长度信息进行修改。
示例性的,假设用数据包的长度字段表示长度信息。用户可以在配置信息中用于指示数据包的长度字段packet_len设置64byte-1518byte(即第一区间),从而可以随机生成字节长度位于64byte-1518byte之间的目标数据包。
本申请实施例提供的数据包生成方法,在配置信息还包括长度信息的情况下,用户可以根据实际需求配置待生成目标数据包的长度信息,从而基于目标数据和该长度信息,可以生成满足字节长度需求的目标数据包,也提高了生成数据包的效率。
可选地,配置信息还可以包括数量信息,该数量信息指示的数据包数量的取值范围为第二区间。相应地,上述S103具体可以通过下述S103C实现。
S103C、数据包生成装置基于目标数据和数量信息,生成N个目标数据包。
其中,N为位于第二区间的正整数。
可选地,上述数量信息可以为用户预先自定义配置的,或为电子设备出厂设置的。具体可以根据实际情况确定,本申请实施例对此不作限定。当然,在实际使用过程中,如果当前配置的待生成目标数据包的数量信息不满足需求,那么用户可以对配置信息包括的数量信息进行修改。
示例性的,假设用数据包的数量字段表示数量信息。用户可以在配置信息中用于指示数据包的数量字段packet_num设置0-100(即第二区间),从而可以随机生成50个目标数据包。
本申请实施例提供的数据包生成方法,在配置信息还包括数量信息的情况下,用户可以根据实际需求配置待生成目标数据包的数量信息,从而基于目标数据和该数量信息,可以生成满足数量需求的目标数据包,也避免了资源浪费。
可选地,如果现有网络协议进行协议扩展,那么可以根据需求插入其他的协议。示例性的,在上述S101之前,本申请实施例提供的数据包生成方法还可以包括S105至S107。
S105、数据包生成装置对待添加至预配置的数据模板的目标协议进行实例化,得到该目标协议的数据。
可选地,上述目标协议为新增加的协议,且该目标协议为根据协议规定增加的。当然,开发人员可以先提前创建目标协议的数据模版。
示例性,假设目标协议的协议头为add_header。在uvm开发框架下,可以创建add_header这个协议头的sequence_item。
S106、数据包生成装置对该目标协议的数据打包。
可选地,对目标协议的数据打包也是通过打包函数进行打包,且该打包函数为用户提前根据该目标协议配置的打包函数。具体地可以参照上述实施例中对数据打包的描述,本申请实施例对此不再赘述。
S107、数据包生成装置按照目标长度,将打包后的该目标协议的数据,插入该预配置的数据模板中。
其中,上述目标长度为打包后的目标协议的数据的数据长度,也可称为字节长度。
示例性的,以目标协议的协议头为add_header为例。如果想要在IP层和TCP层之间加入一个协议头,那么执行下述3个步骤:
(1)创建add_header这个协议的sequence_item。
(2)实例化add_header_sequence_item。
(3)插入这个add_header。
A、打包the add_header协议层数据:pack the add_header。
B、获取the add_header协议层打包后的数据和数据长度:get the add_headerdata and length。
C、将the add_header协议层打包后的数据插入数据荷中:insert the add_header data to payload data。
示例性的,如图5所示,针对扩展的不同层协议的随机化,具体步骤包括:打包Ipv4字节、计算Ipv4字段校验总和,得到头部字段长度;在数据荷中插入IP协议头;打包add_header字段字节、得到add_header字段长度,在数据荷中插入add_header协议头;打包TCP字节、在数据荷中插入TCP字段的数据;计算TCP字段校验总和。
可选地,在扩展协议下生成数据包之后,在发送数据包的过程中,需要按照不同协议层级对数据包进行解包。如图6所示,具体步骤包括:解包以太网头部字段;解包数据荷字段;基于以太网头部字段中的类型字段,调用IP的解包函数;从有效载荷中提取IP数据荷;基于IP协议头字段中协议类型字段,调用add_header的解包函数;从有效载荷中提取add_header字段的数据荷;基于add_header协议头字段中协议类型字段,调用TCP的解包函数;解包校验码字段。
需要说明的是,上述执行实施例中的S105至S107,可以得到协议扩展后的预配置的数据模板,从而再执行上述实施例中的S101至S103,得到协议层级扩展后的多层级协议组合的数据包。
本申请实施例提供的数据包生成方法,由于可以对待添加至预配置数据模板的目标协议进行实例化,得到该目标协议的数据,因此按照打包后的该目标协议的数据的数据长度,将打包后的该目标协议的数据,插入该预配置的数据模板中,从而在扩展协议的情况下,生成复杂程度更高地多层协议组合的数据包。
需要说明的是,本申请实施例提供的数据包生成方法,执行主体可以为数据包生成装置,或者该数据包生成装置中的用于执行数据包生成方法的控制模块。本申请实施例中以数据包生成装置执行数据包生成方法为例,说明本申请实施例提供的数据包生成装置。
如图7所示,本申请实施例提供一种数据包生成装置200,该数据包生成装置包括获取模块201和处理模块202。获取模块201,可以用于获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数。获取模块201,还可以用于根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据。处理模块202,可以用于基于获取模块201获取的该目标数据,生成目标数据包。
可选地,M大于1。处理模块202,可以具体用于按照M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
可选地,数据包生成装置还可以包括确定模块203。确定模块203,可以用于确定与M层协议中每层协议对应的打包函数。处理模块202,可以具体用于根据该打包函数,按照该M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
可选地,配置信息还可以包括长度信息,该长度信息指示的数据包字节长度的取值范围为第一区间。处理模块202,可以具体用于基于目标数据和该长度信息,生成数据包字节长度位于该第一区间的目标数据包。
可选地,配置信息还可以包括数量信息,该数量信息指示的数据包数量的取值范围为第二区间。处理模块202,可以具体用于基于目标数据和该数量信息,生成N个目标数据包,N为位于该第二区间的正整数。
可选地,获取模块201,还可以用于对待添加至预配置的数据模板的目标协议进行实例化,得到该目标协议的数据。处理模块202,还可以用于对获取模块201获取的该目标协议的数据打包;并按照目标长度,将打包后的该目标协议的数据,插入该预配置的数据模板中,该目标长度为打包后的该目标协议的数据的数据长度。
本申请实施例提供一种数据包生成装置,可以获取用户根据实际需求输入的包括类型信息的配置信息,由于该类型信息由M层协议的协议头组成,因此可以根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据,从而基于该目标数据,该数据包生成装置可以生成单层协议对应的数据组成的数据包;或生成由多层协议对应的数据组成的组合数据包。如此,可以满足需求生成多样化的数据包。
本申请实施例中的数据包生成装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(networkattached storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据包生成装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据包生成装置能够实现图1至图6的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图8所示,本申请实施例还提供一种电子设备300,包括处理器301,存储器302,存储在存储器302上并可在处理器301上运行的程序或指令,该程序或指令被处理器301执行时实现上述数据包生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要注意的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图9为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、以及处理器410等部件。
本领域技术人员可以理解,电子设备400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图9中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器410,用于获取配置信息,该配置信息包括类型信息,该类型信息由M层协议的协议头组成,M为大于或等于1的整数;并根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据;以及基于该目标数据,生成目标数据包。
可选地,M大于1。处理器410,具体用于按照M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
可选地,处理器410,具体用于确定与M层协议中每层协议对应的打包函数;并根据该打包函数,按照该M层协议的协议层级顺序,将目标数据逐层打包,以生成目标数据包。
可选地,配置信息还可以包括长度信息,该长度信息指示的数据包字节长度的取值范围为第一区间。处理器410,具体用于基于目标数据和该长度信息,生成数据包字节长度位于该第一区间的目标数据包。
可选地,配置信息还可以包括数量信息,该数量信息指示的数据包数量的取值范围为第二区间。处理器410,具体用于基于目标数据和该数量信息,生成N个目标数据包,N为位于该第二区间的正整数。
可选地,处理器410,还用于对待添加至预配置的数据模板的目标协议进行实例化,得到该目标协议的数据;并对该目标协议的数据打包;以及按照目标长度,将打包后的该目标协议的数据,插入该预配置的数据模板中,该目标长度为打包后的该目标协议的数据的数据长度。
本申请实施例提供一种电子设备,可以获取用户根据实际需求输入的包括类型信息的配置信息,由于该类型信息由M层协议的协议头组成,因此可以根据该类型信息,从预配置的数据模板中获取该M层协议对应的目标数据,从而基于该目标数据,电子设备可以生成单层协议对应的数据组成的数据包;或生成由多层协议对应的数据组成的组合数据包。如此,可以满足需求生成多样化的数据包。
应理解的是,本申请实施例中,输入单元404可以包括图形处理器(graphicsprocessing unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元406可包括显示面板4061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板4061。用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。存储器409可用于存储软件程序以及各种数据,包括但不限于应用程序和操作系统。处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
本申请实施例还提供一种可读存储介质,该可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据包生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-only memory,ROM)、随机存取存储器(randomaccess memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述数据包生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例中的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (15)
1.一种数据包生成方法,其特征在于,所述方法包括:
获取用户输入的配置信息,所述配置信息包括待生成目标数据包的类型信息,所述类型信息由M层协议的协议头组成,M为大于1的整数;
根据所述类型信息,从预配置的数据模板中获取所述M层协议对应的目标数据;
基于所述目标数据,生成目标数据包;
所述根据所述类型信息,从预配置的数据模板中获取所述M层协议对应的目标数据,包括:
根据所述类型信息,实例化所述M层协议中每层协议的数据,以从预配置的数据模板中获取所述M层协议对应的目标数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标数据,生成目标数据包,包括:
按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成目标数据包。
3.根据权利要求2所述的方法,其特征在于,所述按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成所述目标数据包之前,所述方法还包括:
确定与所述M层协议中每层协议对应的打包函数;
所述按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成目标数据包,包括:
根据所述打包函数,按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成目标数据包。
4.根据权利要求1所述的方法,其特征在于,所述配置信息还包括长度信息,所述长度信息指示的数据包字节长度的取值范围为第一区间;
所述基于所述目标数据,生成目标数据包,包括:
基于所述目标数据和所述长度信息,生成数据包字节长度位于所述第一区间的目标数据包。
5.根据权利要求1所述的方法,其特征在于,所述配置信息还包括数量信息,所述数量信息指示的数据包数量的取值范围为第二区间;
所述基于所述目标数据,生成目标数据包,包括:
基于所述目标数据和所述数量信息,生成N个目标数据包,N为位于所述第二区间的正整数。
6.根据权利要求1所述的方法,其特征在于,所述获取用户输入的配置信息之前,所述方法还包括:
对待添加至所述预配置的数据模板的目标协议进行实例化,得到所述目标协议的数据;
对所述目标协议的数据打包;
按照目标长度,将打包后的所述目标协议的数据,插入所述预配置的数据模板中,所述目标长度为打包后的所述目标协议的数据的数据长度。
7.一种数据包生成装置,其特征在于,所述数据包生成装置包括获取模块和处理模块;
所述获取模块,用于获取用户输入的配置信息,所述配置信息包括待生成目标数据包的类型信息,所述类型信息由M层协议的协议头组成,M为大于1的整数;
所述获取模块,还用于根据所述类型信息,从预配置的数据模板中获取所述M层协议对应的目标数据;
所述处理模块,用于基于所述获取模块获取的所述目标数据,生成目标数据包;
所述获取模块,具体用于根据所述类型信息,实例化所述M层协议中每层协议的数据,以从预配置的数据模板中获取所述M层协议对应的目标数据。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,具体用于按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成目标数据包。
9.根据权利要求8所述的装置,其特征在于,所述数据包生成装置还包括确定模块;
所述确定模块,用于确定与所述M层协议中每层协议对应的打包函数;
所述处理模块,具体用于根据所述打包函数,按照所述M层协议的协议层级顺序,将所述目标数据逐层打包,以生成目标数据包。
10.根据权利要求7所述的装置,其特征在于,所述配置信息还包括长度信息,所述长度信息指示的数据包字节长度的取值范围为第一区间;
所述处理模块,具体用于基于所述目标数据和所述长度信息,生成数据包字节长度位于所述第一区间的目标数据包。
11.根据权利要求7所述的装置,其特征在于,所述配置信息还包括数量信息,所述数量信息指示的数据包数量的取值范围为第二区间;
所述处理模块,具体用于基于所述目标数据和所述数量信息,生成N个目标数据包,N为位于所述第二区间的正整数。
12.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于对待添加至所述预配置的数据模板的目标协议进行实例化,得到所述目标协议的数据;
所述处理模块,还用于对所述获取模块获取的所述目标协议的数据打包;并按照目标长度,将打包后的所述目标协议的数据,插入所述预配置的数据模板中,所述目标长度为打包后的所述目标协议的数据的数据长度。
13.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-6中任一项所述的数据包生成方法的步骤。
14.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-6中任一项所述的数据包生成方法的步骤。
15.一种芯片,其特征在于,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如权利要求1-6中任一项所述的数据包生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110116777.4A CN112948235B (zh) | 2021-01-28 | 2021-01-28 | 数据包生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110116777.4A CN112948235B (zh) | 2021-01-28 | 2021-01-28 | 数据包生成方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112948235A CN112948235A (zh) | 2021-06-11 |
CN112948235B true CN112948235B (zh) | 2024-03-22 |
Family
ID=76238542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110116777.4A Active CN112948235B (zh) | 2021-01-28 | 2021-01-28 | 数据包生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112948235B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387883A (zh) * | 2008-10-09 | 2009-03-18 | 上海交通大学 | 天文望远镜控制系统中采集与传输大量数据的方法 |
CN106412067A (zh) * | 2016-09-30 | 2017-02-15 | 广东电网有限责任公司电力科学研究院 | 基于工控协议模糊测试的数据分层生成方法 |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信系统协议解析方法、协议库管理方法及协议库 |
CN108965300A (zh) * | 2018-07-21 | 2018-12-07 | 中国人民解放军战略支援部队信息工程大学 | 一种数据包生成方法、装置及计算机可读存储介质 |
CN111917603A (zh) * | 2020-07-22 | 2020-11-10 | 广州虎牙信息科技有限公司 | 客户端测试方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046720B2 (en) * | 2002-12-10 | 2011-10-25 | Ixia | Graphical system and method for editing multi-layer data packets |
-
2021
- 2021-01-28 CN CN202110116777.4A patent/CN112948235B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101387883A (zh) * | 2008-10-09 | 2009-03-18 | 上海交通大学 | 天文望远镜控制系统中采集与传输大量数据的方法 |
CN106412067A (zh) * | 2016-09-30 | 2017-02-15 | 广东电网有限责任公司电力科学研究院 | 基于工控协议模糊测试的数据分层生成方法 |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信系统协议解析方法、协议库管理方法及协议库 |
CN108965300A (zh) * | 2018-07-21 | 2018-12-07 | 中国人民解放军战略支援部队信息工程大学 | 一种数据包生成方法、装置及计算机可读存储介质 |
CN111917603A (zh) * | 2020-07-22 | 2020-11-10 | 广州虎牙信息科技有限公司 | 客户端测试方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112948235A (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102424056B1 (ko) | Netconf 기반의 네트워크 시스템 명령어를 yang 언어로 모델링하는 방법 및 장치 | |
EP2033089B1 (en) | Method and system for rapidly developing and deploying sensor-enabled software applications | |
CN107291458A (zh) | 一种Web应用的插件化构建方法、系统及服务器 | |
US8438577B2 (en) | Method and system for extending scripting languages | |
CN110049059A (zh) | 一种外网设备与内网设备间通信方法及相关装置 | |
Durmaz et al. | Modelling contiki-based IoT systems | |
Zhao et al. | The architecture design of streaming media applications for Android OS | |
CN112948235B (zh) | 数据包生成方法、装置及电子设备 | |
CN109032693A (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
CN106940714A (zh) | 一种数据处理方法、装置及电子设备 | |
CN109388388A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
Barbeau et al. | A protocol stack development tool using generative programming | |
CN111405007A (zh) | Tcp会话管理方法、装置、存储介质及电子设备 | |
WO2022257829A1 (zh) | 数据网络上行调度方法、装置及电子设备 | |
CN108304230A (zh) | 调整应用属性的实现方法、装置及可读存储介质 | |
CN115604070A (zh) | 基于mctp协议的消息传输方法、装置、设备及介质 | |
CN112910910B (zh) | Opcda协议报文处理方法、装置、设备以及存储介质 | |
CN113904946A (zh) | 通信仿真中断控制方法及系统 | |
Chandra et al. | Packet types | |
EP1715413A1 (en) | Method and system for extending scripting languages | |
Kirsche et al. | A 6LoWPAN model for OMNeT++ poster abstract | |
RU2385532C2 (ru) | Устройство беспроводной связи | |
Virtanen | A framework for rapid design and evaluation of protocol processors | |
US20100146519A1 (en) | Sca system and method for operation waveform application thereof | |
Chanda | Network Programming with Rust: Build fast and resilient network servers and clients by leveraging Rust's memory-safety and concurrency features |
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 |