一种基于python技术的5g报文生成系统和方法
技术领域
1.本发明涉及分流设备报文生成的技术领域,尤其是涉及一种基于python技术的5g报文生成系统和方法。
背景技术:2.近年来,5g网络的建设力度与发展速度都得到了空前的放大,5g也以前所未有的态势迅速渗透到生活、工作的方方面面。而在新基建浪潮的助推下,5g网络建设更是超预期完成。
3.5g网络中的接口丰富,报文种类较多,报文结构较为复杂,目前尚无比较贴合分流设备验证需求的生成5g报文工具。
4.针对上述问题,还未提出有效的解决方案。
技术实现要素:5.有鉴于此,本发明的目的在于提供一种基于python技术的5g报文生成系统和方法,以缓解了分流设备5g报文验证和5g领域研究的效率较低的技术问题。
6.第一方面,本发明实施例提供了一种基于python技术的5g报文生成系统,包括:报文选择模块,用于根据用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;报文生成模块,用于基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;报文发送模块,用于发送所述待生成5g报文;显示模块,用于显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率。
7.进一步地,若所述待生成5g报文为5g user plane报文,则所述报文生成模块,用于基于5g user plane报文的报文关键字段值和5g user plane报文的报文表格,生成5g user plane报文,其中,所述5g user plane报文的报文关键字段包括:内层payload,内层sport,内层dport,内层ip层版本,内层协议号,内层sip(v4),内层dip(v4),内层sip(v6),内层dip(v6),gtp头,外层sport,外层dport,外层ip层版本,外层协议号,外层sip(v4),外层dip(v4),外层sip(v6),外层dip(v6)。
8.进一步地,若所述待生成5g报文为5g pfcp报文,则所述报文生成模块,用于基于5g pfcp报文的报文关键字段值和5g pfcp报文的报文表格,生成5g pfcp报文,其中,所述5g pfcp报文的报文关键字段包括:外层sip,外层dip,外层sport,外层dport,pfcp payload。
9.进一步地,若所述待生成5g报文为5g http2报文,则所述报文生成模块,用于基于5g http2报文的报文关键字段值和5g http2报文的报文表格,生成5g http2报文,其中,所
述5g http2报文的报文关键字段包括:http请求头,源端口,源ip地址,目的ip地址。
10.进一步地,若所述待生成5g报文为5g ngap报文,则所述报文生成模块,用于基于5g ngap报文的报文关键字段值和5g ngap报文的报文表格,生成5g ngap报文,其中,所述5g ngap报文的报文关键字段包括:sport,dport,ver tag,sip,dip,chunk。
11.进一步地,若所述待生成5g报文为gtp-c报文,则所述报文生成模块,用于基于gtp-c报文的报文关键字段值和gtp-c报文的报文表格,生成gtp-c报文,其中,所述gtp-c报文的报文关键字段包括:gtp-c负载,源端口,目的端口,源ip地址,目的ip地址。
12.进一步地,若所述待生成5g报文为diameter报文,则所述报文生成模块,用于基于diameter报文的报文关键字段值和diameter报文的报文表格,生成diameter报文,其中,所述diameter报文的报文关键字段包括:sport,dport,ver tag,sip,dip,chunk。
13.进一步地,所述显示模块为利用tkinter的gui工具包构建的模块。
14.第二方面,本发明实施例还提供了一种基于python技术的5g报文生成方法,包括:获取用户的操作信息,并根据所述用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;发送所述待生成5g报文;利用显示模块显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率。
15.第三方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序。
16.在本发明实施例中,提供了一种基于python技术的5g报文生成系统,包括:报文选择模块,用于根据用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;报文生成模块,用于基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;报文发送模块,用于发送所述待生成5g报文;显示模块,用于显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率,达到了为分流设备5g报文验证和5g领域研究提供支持的目的,进而解决了分流设备5g报文验证和5g领域研究的效率较低的技术问题的技术问题,从而实现了提高分流设备5g报文验证和5g领域研究的效率的技术效果。
17.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
18.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
19.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种基于python技术的5g报文生成系统的示意图;
21.图2为本发明实施例提供的生成5g user plane报文的流程图;
22.图3为本发明实施例提供的生成5g ngap报文的流程图;
23.图4为本发明实施例提供的一种基于python技术的5g报文生成方法的流程图。
具体实施方式
24.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
25.实施例一:
26.根据本发明实施例,提供了一种基于python技术的5g报文生成系统的实施例,图1是根据本发明实施例的一种基于python技术的5g报文生成系统的流程图,如图1所示,该基于python技术的5g报文生成系统包括:
27.报文选择模块10,用于根据用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;
28.报文生成模块20,用于基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;
29.报文发送模块30,用于发送所述待生成5g报文;
30.显示模块40,用于显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率。
31.需要说明的是,上述的显示模块为利用tkinter的gui工具包构建的模块。
32.在本发明实施例中,提供了一种基于python技术的5g报文生成系统,包括:报文选择模块,用于根据用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;报文生成模块,用于基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;报文发送模块,用于发送所述待生成5g报文;显示模块,用于显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率,达到了为分流设备5g报文验证和5g领域研究提供支持的目的,进而解决了分流设备5g报文验证和5g领域研究的效率较低的技术问题的技术问题,从
而实现了提高分流设备5g报文验证和5g领域研究的效率的技术效果。
33.在本发明实施例中,若所述待生成5g报文为5g user plane报文,则
34.所述报文生成模块,用于基于5g user plane报文的报文关键字段值和5g user plane报文的报文表格,生成5g user plane报文,其中,所述5g user plane报文的报文关键字段包括:内层payload,内层sport,内层dport,内层ip层版本,内层协议号,内层sip(v4),内层dip(v4),内层sip(v6),内层dip(v6),gtp头,外层sport,外层dport,外层ip层版本,外层协议号,外层sip(v4),外层dip(v4),外层sip(v6),外层dip(v6)。
35.下面将结合图2,对报文生成模块生成5g user plane报文的过程进行说明。
36.启动5g报文生成系统,选中5g user plane,在报文表格中显示5g user plane关键字段,在左侧报文界面中,点击按钮“装载默认”,报文表格中填充关键字段默认值,外层ip协议号设置为不可编辑(为确定值0x11)。
37.接着,通过5g user plane报文关键字段默认值对变量进行赋值;对外层ip层版本进行判断:ip version为4时,ip按照ip格式进行填充内容,再对外层ip层protocol进行判断,protocol为6时,tcpudp按照tcp格式进行填充内容,protocol为17时,tcpudp按照udp格式进行填充内容;ip version为6时,ip按照ipv6格式进行填充内容,再对外层ip层protocol进行判断,protocol为6时,tcpudp按照tcp格式进行填充内容,protocol为17时,tcpudp按照udp格式进行填充内容;获得外层的ip和tcpudp。
38.对内层ip层版本进行判断:ip version为4时,ip2按照ip格式进行填充内容,再对内层ip层protocol进行判断,protocol为6时,tcpudp2按照tcp格式进行填充内容,protocol为17时,tcpudp2按照udp格式进行填充内容;ip version为6时,ip2按照ipv6格式进行填充内容,再对内层ip层protocol进行判断,protocol为6时,tcpudp2按照tcp格式进行填充内容,protocol为17时,tcpudp2按照udp格式进行填充内容;获得ip2和tcpudp2。
39.按照以下顺序进行填充内容:ip/tcpudp/bytes.fromhex(user5g_gtpheader)/ip2/tcpudp2/bytes.fromhex(user5g_innerpayload)。
40.在本发明实施例中,若所述待生成5g报文为5g pfcp报文,则所述报文生成模块,用于基于5g pfcp报文的报文关键字段值和5g pfcp报文的报文表格,生成5g pfcp报文,其中,所述5g pfcp报文的报文关键字段包括:外层sip,外层dip,外层sport,外层dport,pfcp payload。
41.报文生成模块生成5g pfcp报文的流程与生成5g user plane报文的流程相似,在此不再赘述。
42.5g pfcp报文的格式如下:eth/ipv4(ipv6)/udp(源端口或者目的端口为8805)/pfcp,在关键字段表格中,pfcp payload使用十六进制标识,转换成字节串后再生成报文。
43.若所述待生成5g报文为5g http2报文,则所述报文生成模块,用于基于5g http2报文的报文关键字段值和5g http2报文的报文表格,生成5g http2报文,其中,所述5g user plane报文的报文关键字段包括:http请求头,源端口,源ip地址,目的ip地址。
44.5g http2报文格式如下:eth/ipv4(ipv6)/tcp(源端口或者目的端口为80,也可能有其他端口)/http2,在关键字段表格中,http2 payload使用十六进制标识,转换成字节串后再生成报文。http2报文包含n11/n5/n7/n8/n10/n12/n14/n15/n21/n22/n26接口数据。
45.若所述待生成5g报文为5g ngap报文,则所述报文生成模块,用于基于5g ngap报
文的报文关键字段值和5g ngap报文的报文表格,生成5g ngap报文,其中,所述5g ngap报文的报文关键字段包括:sport,dport,ver tag,sip,dip,chunk。
46.需要说明的是,chunk字段包括:chunk1_type(8b),chunk1_flags(8b),chunk1_len(16b),chunk1_tsnack(32b),chunk1_arwnd(32b),chunk1_nogab(16b),chunk1_nodtsn(16b),
47.chunk2_type(8b),chunk2_flags(8b),chunk2_len(16b),chunk2_tseq(32b),
48.chunk2_streamid(16b),chunk2_strseq(16b),chunk2_proid(32b),ngappayload。
49.下面将结合图3对报文生成模块生成5g ngap报文的过程进行说明。
50.启动5g报文生成系统,选中5g ngap报文,在报文表格中显示5g ngap关键字段;在左侧报文界面中,点击按钮“装载默认”,报文表格中填充关键字段默认值,含各数据块chunk的字段,checksum为单机发送时自动计算;通过5g ngap报文关键字段默认值对变量进行赋值。
51.计算sctp checksum。对sctp头和负载进行叠加,通过crc32算法计算得到32位的checksum值;sctp的checksum是32位的,不像tcp/udp是16位的,范围包括全部sctp包,但不包括ip头,因此不会像tcp和udp那样在ipv4下和ipv6下不同。
52.使用python实现了sctp的checksum计算,将sctp报文头和负载进行折叠,再进行crc32计算,得到32位的checksum值。该种sctp checksum计算也适用再diameter报文的生成中。按照以下顺序进行填充内容:eth/ip/sctp头(包含checksum)/数据块chunk的字段/ngap负载,得到5g ngap报文。
53.5g ngap报文的格式如下:eth/ipv4(ipv6)/sctp(源端口或者目的端口为38412)/payload,在关键字段表格中,ngap payload使用十六进制标识,转换成字节串后再生成报文;在关键字段表格中,可以修改sctp层关键字段。
54.若所述待生成5g报文为gtp-c报文,则
55.所述报文生成模块,用于基于gtp-c报文的报文关键字段值和gtp-c报文的报文表格,生成gtp-c报文,其中,所述gtp-c报文的报文关键字段包括:gtp-c负载,源端口,目的端口,源ip地址,目的ip地址。
56.报文生成模块生成gtp-c报文的流程与生成5g user plane报文的流程相似,在此不再赘述。
57.gtp-c报文的格式如下:eth/ipv4(ipv6)/udp(源端口和目的端口都为2123)/gtp头,在关键字段表格中,gtp头使用十六进制标识,转换成字节串后再生成报文。
58.若所述待生成5g报文为diameter报文,则
59.所述报文生成模块,用于基于diameter报文的报文关键字段值和diameter报文的报文表格,生成diameter报文,其中,所述diameter报文的报文关键字段包括:sport,dport,ver tag,sip,dip,chunk。
60.报文生成模块生成5g ngap报文的流程与生成5g user plane报文的流程相似,在此不再赘述。
61.diameter报文的报文格式如下:eth/ipv4(ipv6)/sctp(源端口或者目的端口为3868)/payload,在关键字段表格中,diameter payload使用十六进制标识,转换成字节串
后再生成报文;在关键字段表格中,可以修改sctp层关键字段。
62.本发明实施例基于python+scapy设计报文构造表格,基于tkinter的gui工具包的接口界面设计。实现了5g报文的编辑与生成。支持装载报文关键字段的默认值,支持用户自行修改关键字段值,支持对协议字段的合理性进行检查,支持自动计算并显示校验和。支持单次发送/多次发送,支持连续发送,连续发包时可随时停止和计算并显示发送数据包速度的功能。使用依次填充各层内容的技术,支持发送包含内层和外层network/transport层的5g user plane报文等。使用python代码实现了sctp校验码的计算,并应用到5g ngap和diameter报文的生成中。
63.本发明实施例实现了基于python技术的生成5g报文的方法和代码,提供gui界面用户报文关键字段编辑,使得生成报文更有效率。工具中包含各类5g报文生成,支持显示发送数据包速度等,是良好的5g领域研究或者分流设备验证的工具。
64.实施例二:
65.本发明实施例还提供了一种基于python技术的5g报文生成方法,上述基于python技术的5g报文生成系统用于执行该基于python技术的5g报文生成方法,以下是本发明实施例提供的基于python技术的5g报文生成方法的具体介绍。
66.如图4所示,图4为上述基于python技术的5g报文生成方法的流程图,该基于python技术的5g报文生成方法包括如下步骤:
67.步骤s102,获取用户的操作信息,并根据所述用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;
68.步骤s104,基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;
69.步骤s106,发送所述待生成5g报文;
70.步骤s108,利用显示模块显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率。
71.在本发明实施例中,通过获取用户的操作信息,并根据所述用户的操作信息,确定出待生成5g报文的报文表格,其中,所述待生成5g报文的类型包括:5g user plane报文,5g pfcp报文,5g http2报文,5g ngap报文,gtp-c报文和diameter报文,所述报文表格为基于python和scapy构建的表格;基于所述待生成5g报文的报文关键字段的字段值和所述待生成5g报文的报文表格,生成所述待生成5g报文,其中,所述报文关键字段的字段值包括:报文关键字段的用户修改字段值和/或报文关键字段的默认字段值;发送所述待生成5g报文;利用显示模块显示所述待生成5g报文和报文发送参数,其中,所述报文发送参数:报文发送数量,报文字节数量和报文发送速率,达到了为分流设备5g报文验证和5g领域研究提供支持的目的,进而解决了分流设备5g报文验证和5g领域研究的效率较低的技术问题的技术问题,从而实现了提高分流设备5g报文验证和5g领域研究的效率的技术效果。
72.实施例三:
73.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有
计算机程序,计算机程序被处理器运行时执行上述实施例一中所述方法的步骤。
74.另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
75.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
76.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
77.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
78.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
79.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。