CN114205115B - 一种数据包处理优化方法、装置、设备及介质 - Google Patents
一种数据包处理优化方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114205115B CN114205115B CN202111338438.7A CN202111338438A CN114205115B CN 114205115 B CN114205115 B CN 114205115B CN 202111338438 A CN202111338438 A CN 202111338438A CN 114205115 B CN114205115 B CN 114205115B
- Authority
- CN
- China
- Prior art keywords
- data packet
- memory
- data
- storage module
- bit width
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000005457 optimization Methods 0.000 title claims abstract description 13
- 238000006243 chemical reaction Methods 0.000 claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000004148 unit process Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 15
- 238000013507 mapping Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000005291 magnetic effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/164—Implementing security features at a particular protocol layer at the network layer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种数据包处理优化方法,运行于可编程逻辑器件中,包括:获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中;其中,第一位宽转换用于将网络层数据传输的位宽转换为内存接口数据传输的位宽;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,本发明还提出了一种数据包处理优化装置、设备及介质,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,提高了数据包处理的安全性以及可靠性。
Description
技术领域
本发明涉及数据包处理领域,尤其是涉及一种数据包处理优化方法、装置、设备及介质。
背景技术
随着网络建设的不断加快,网络带宽也不断增加,信息通信方式也朝着数据量大、实时性高、传输速度快等方面不断发展。当模拟信号转换成数字信号,由于数字信号的数量很大导致传输就需要更宽的带宽。现如今普遍使用嵌入式系统作为高速数据的处理方式,嵌入式系统通过软件程序与硬件电路结合使用的方式,具备占用面积小、成本低的优点。
目前采用现场可编程逻辑门列阵(FieldProgrammable Gate Array,FPGA)实现网络协议栈,成为了当前研究的热点。使用FPGA有着可定制、可重构和大并发的优点。首先,FPGA的并行结构不受指令周期的影响,可进一步提高终端对数据传输的处理能力。同时用户可以利用FPGA可编程的优点,在资源允许范围内,自己设计实现逻辑电路,FPGA内部逻辑可根据需求改变,相比于固定的ASIC模块(Application Specific Integrated Circuit,即专用集成电路)减少了开发成本。
相比较于TCP(Transmission Control Protocol,传输控制协议)协议,UDP(UserDatagram Protocol,用户数据包协议)协议作为一种快速高效的面向无连接的协议,目前在要求网络速度的领域有着广阔的应用。例如时通信领域(例如QQ聊天对数据准确性和丢包要求比较低,但速度必须快);在线视频(为了保证视频连续,但是花了一两个图像帧,人们往往可以接收);实时监控(需要保证目标的实时动态,对于偶尔的图像模糊,不影响对目标的监控)。
但在传统的PC(personal computer,个人计算机)机上,受限于CPU(centralprocessing unit,中央处理器)的串行结构和指令周期的影响,UDP的性能不能得到全部的发挥;而且在使用FPGA实现UDP协议栈的过程中,由于UDP是面向无连接的协议,很有可能导致在复杂的网络环境中会收到恶意或无用的数据包,这会给接收端来带很大的数据处理压力,需要识别这些恶意或无用的数据包,不利于提高数据包处理安全性以及可靠性。
发明内容
本发明为了解决现有技术中存在的问题,创新提出了一种数据包处理优化方法、装置、设备及介质,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,有效地提高了数据包处理的安全性以及可靠性。
本发明第一方面提供了一种数据包处理优化方法,运行于可编程逻辑器件中,包括:
获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中;其中,第一位宽转换用于将网络层数据传输的位宽转换为内存接口数据传输的位宽;
根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理。
可选地,五元组信息包括协议类型、源IP地址、目的IP地址,源端口、目的端口。
可选地,将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中具体包括:
将获取的网络层中的数据包进行第一位宽转换;
在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;
根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中。
进一步地,根据第二存储模块存储的地址数据,将第一存储模块存储的数据包的数据写入内存中之前还包括:
将待写入内存的写控制信号与用户逻辑模块中第一存储模块、第二存储模块分别建立关联关系。
可选地,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理具体包括:
如果访问控制列表与数据包解析获取的五元组信息的规则匹配未成功,将获取的数据包进行丢弃;
如果访问控制列表与数据包解析获取的五元组信息的匹配成功,将获取的数据包进行转发或封装。
进一步地,将获取的数据包进行转发或封装之前,还包括:
读取存储至内存中的数据包。
进一步地,读取存储至内存中的数据包具体包括:
在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;
根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;
将第三存储模块中待读取的数据包中的数据进行第二位宽转换,其中,第二位宽转换用于将内存接口数据传输的位宽转换为网络层数据传输的位宽。
本发明第二方面提供了一种数据包处理优化装置,运行于可编程逻辑器件中,包括:
获取及匹配单元,获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
转换及存储单元,将获取的网络层中的数据包进行位宽转换后,并将转换后的数据包存储至内存中;
处理单元,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理。
本发明第三方面提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如本发明第一方面所述的一种数据包处理优化方法的步骤。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的一种数据包处理优化方法的步骤。
本发明采用的技术方案包括以下技术效果:
1、本发明技术方案中,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,使得数据在进行UDP协议通信时,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,在安全性上也有进一步的提升,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,提高了数据包处理的安全性以及可靠性。
2、本发明技术方案中将获取的网络层中的数据包进行第一位宽转换,使得通过网络层获取的数据包能够写入到单独添加到FPGA内部的内存中,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM(RandomAccess Memory,随机存储器)存储,由于内存资源的不足可能造成的网络拥塞。
3、本发明技术方案中通过在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中,将数据包中的数据和数据包的存储地址形成一一映射,既可同时缓存多个当前已转换的数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
4、本发明技术方案中,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;将第三存储模块中待读取的数据包中的数据进行第二位宽转换,将数据包中的数据和数据包的存储地址形成一一映射,既可同时读取多个当前已转换的数据包,而且将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
应当理解的是以上的一般描述以及后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方案中实施例一方法的流程示意图(一);
图2为本发明方案中实施例一方法中步骤S2的流程示意图(一);
图3为本发明方案中实施例一方法中步骤S2的流程示意图(二);
图4为本发明方案中实施例一方法的流程示意图(二);
图5为本发明方案中针对实施例一方法流程示意图(二)中数据包的处理流程示意图;
图6为本发明方案中针对实施例一方法中数据包缓存至内存的示意图;
图7为本发明方案中实施例一方法中步骤S3的流程示意图(一);
图8为本发明方案中实施例一方法中步骤S3的流程示意图(二);
图9为本发明方案中实施例一方法中步骤S32的流程示意图;
图10为本发明方案中实施例二装置的结构示意图;
图11为本发明方案中实施例三设备的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例一
如图1所示,本发明提供了一种数据包处理优化方法,运行于可编程逻辑器件中,包括:
S1,获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
S2,将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中;其中,第一位宽转换用于将网络层数据传输的位宽转换为内存接口数据传输的位宽;
S3,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理。
其中,在步骤S1中,针对可编程逻辑器件(FPGA)通过网络层获取的数据包进行解析,用于解析数据包的内容。对于不同协议类型构成的数据包,携带不同的头部信息(包头信息)不同,数据包的长度和格式也都有差异,所以需要预置不同协议解析规则,解析不同协议类型的数据包,具体地,首先可以根据数据包的协议类型,调用对应协议解析规则或解析函数对数据包进行解析,得到包头的详细信息。
从解析后数据包中的包头信息提取五元组所需要的关键字内容,五元组预设的关键字信息支持定期或不定期更新操作(新增、修改、删除等);五元组信息包括协议类型、源IP地址、目的IP地址,源端口、目的端口。访问控制列表(ACL,Access Control List)根据存储缓存的对应信息,对数据包提取的五元组进行规则匹配。其中,ACL会事先设置通信所需要的协议类型、IP地址、端口等具体的五元组信息。
如图2所示,步骤S2具体包括:
S21,将获取的网络层中的数据包进行第一位宽转换;
S23,在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;
S25,根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中。
进一步地,如图3所示,步骤S2中,在步骤S25之前还包括:
S24,将待写入内存的写控制信号与用户逻辑模块中第一存储模块、第二存储模块分别建立关联关系。
需要说明的是,如图4-图5所示,步骤S1与步骤S2可以是并行进行,也可以是如图1所示,按照顺序先后进行,本发明在此不做限制。优选地,可以是并行进行,以提高数据包处理的效率。
其中,在步骤S21-S25中,将获取的网络层中的数据包进行第一位宽转换主要是因为:由于内存接口的内存位宽为256bit,而MAC层(网络层)传输的位宽为8bit,因此需要对写入内存的数据进行第一位宽转换,即将MAC层(网络层)传输的位宽为8bit(1字节)转换为内存接口的内存位宽为256bit(32字节)。本发明技术方案中内存单独添加至FPGA内部,可以采用DDR3 SDRAM(synchronous dynamic random-access memory,同步动态随机存取内存),用于代替原有的FPGA内部的RAM,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM存储,由于内存资源的不足可能造成的网络拥塞。
为了简化内存操作,提高读写效率,如图6所示对FPGA的内存接口进行了进一步的封装。
在FPGA的用户逻辑模块(USER FPGA)内部,定义了2组FIFO(先进先出数据缓存器)模块,即第一存储模块(DDR_wr_data FIFO)、第二存储模块(DDR_wr_addr FIFO),分别用来存储写内存的数据和地址。然后将写控制信号等与第一存储模块(DDR_wr_data FIFO)、第二存储模块(DDR_wr_addrFIFO)的写信号进行关联。这样,通过这2组FIFO中存数据和地址,便有FPGA状态机控制自动读取并仲裁,完成内存的写操作。
其中,写控制信号包括但不限于app_addr(数据写入地址)、app_cmd(第一存储模块、第二存储模块与内存通信的操作命令)、app_en(数据写入使能)、app_wdf_data(数据写入状态)、app_wdf_end(数据写入结束)、app_wdf_wren(数据开始写入)。
具体地,在步骤S22中,第一存储模块用于存储当前转换后的数据包中待写入内存的数据,当前转换的数据包可以是一个,也可以是多个(数据包同时缓存);第二存储模块存储转换后的多个数据包对应在待写入内存的地址数据,地址数据对应的数据包数量可以是多个,具体根据第二存储模块的存储空间确定。
由于需要根据地址完成内存数据的写入,并将数据和地址形成一一映射,地址列表的大小将直接影响内存读写数据的空间。为了存储更多的数据,设置写内存地址的FIFO深度为8192bit,即第二存储模块中的FIFO深度为8192bit,这样既可同时缓存多个数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
如图7所示,步骤S3具体包括:
S31,判断访问控制列表与数据包解析获取的五元组信息的规则匹配是否成功,如果判断结果为是,则执行步骤S33;如果判断结果为否,则执行步骤S35;
S33,将获取的数据包进行转发或封装;
S35,将获取的数据包进行丢弃(不再转发至接收端);
进一步地,如图8所示,在步骤S33之前,还包括:
S32,读取存储至内存中的数据包。
如图9所示,步骤S32具体包括:
S321,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;
S322,根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;
S323,将第三存储模块中待读取的数据包中的数据进行第二位宽转换,其中,第二位宽转换用于将内存接口数据传输的位宽转换为网络层数据传输的位宽。
其中,在步骤S321-S323中,将第三存储模块中待读取的数据包中的数据进行第二位宽转换主要是因为:由于内存接口的内存位宽为256bit,而MAC层(网络层)传输的位宽为8bit,因此将第三存储模块中待读取的数据包中的数据进行第二位宽转换,即将内存接口的内存位宽为256bit(32字节)转换为MAC层(网络层)传输的位宽为8bit(1字节)。
为了简化内存操作,提高读写效率,如图6所示对FPGA的内存接口进行了进一步的封装。
在FPGA的用户逻辑模块(USER FPGA)内部,再次定义了2组FIFO(先进先出数据缓存器)模块,即第三存储模块(DDR_rd_data FIFO)、第四存储模块(DDR_rd_addrFIFO),分别用来存储读取内存的数据和地址。然后将读控制信号等与第三存储模块(DDR_rd_dataFIFO)、第四存储模块(DDR_rd_addrFIFO)的写信号进行关联。这样,通过这2组FIFO中存数据和地址,便有FPGA中的状态机控制自动读取并仲裁,完成内存的读操作。
其中,读控制信号包括但不限于app_rdy(准备读取)、app_rd_data(数据读取状态)、app_rd_data-end(数据读取结束)、app_rd_data_valid(数据读取有效)、app_wdf_rdy(数据开始读取)。
具体地,在步骤S321中,第三存储模块用于存储内存中当前待读取数据包的数据,当前待读取的数据包可以是一个,也可以是多个(数据包同时读取);第四存储模块用于存储待读取数据包对应在内存中的地址数据,地址数据对应的数据包数量可以是多个,具体根据第四存储模块的存储空间确定。
由于需要根据地址完成内存数据的读取,并将数据和地址形成一一映射,地址列表的大小将直接影响内存读数据的空间。为了读取更多的数据,设置读内存地址的FIFO深度为8192bit,即第四存储模块中的FIFO深度为8192bit,这样既可同时读取多个数据包。
进一步地,第一存储模块与第三存储模块(或第四存储模块)之间均互相独立,第二存储模块与第三存储模块(或第四存储模块)之间也互相独立,将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
本发明技术方案中,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,使得数据在进行UDP协议通信时,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,在安全性上也有进一步的提升,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,提高了数据包处理的安全性以及可靠性。
本发明技术方案中将获取的网络层中的数据包进行第一位宽转换,使得通过网络层获取的数据包能够写入到单独添加到FPGA内部的内存中,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM(Random Access Memory,随机存储器)存储,由于内存资源的不足可能造成的网络拥塞。
本发明技术方案中通过在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中,将数据包中的数据和数据包的存储地址形成一一映射,既可同时缓存多个当前已转换的数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
本发明技术方案中,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;将第三存储模块中待读取的数据包中的数据进行第二位宽转换,将数据包中的数据和数据包的存储地址形成一一映射,既可同时读取多个当前已转换的数据包,而且将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
实施例二
如图10所示,本发明技术方案还提供了一种数据包处理优化装置,运行于可编程逻辑器件中,包括:
获取及匹配单元101,获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
转换及存储单元102,将获取的网络层中的数据包进行位宽转换后,并将转换后的数据包存储至内存中;
处理单元103,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理。
本发明技术方案中,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,使得数据在进行UDP协议通信时,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,在安全性上也有进一步的提升,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,提高了数据包处理的安全性以及可靠性。
本发明技术方案中将获取的网络层中的数据包进行第一位宽转换,使得通过网络层获取的数据包能够写入到单独添加到FPGA内部的内存中,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM(Random Access Memory,随机存储器)存储,由于内存资源的不足可能造成的网络拥塞。
本发明技术方案中通过在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中,将数据包中的数据和数据包的存储地址形成一一映射,既可同时缓存多个当前已转换的数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
本发明技术方案中,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;将第三存储模块中待读取的数据包中的数据进行第二位宽转换,将数据包中的数据和数据包的存储地址形成一一映射,既可同时读取多个当前已转换的数据包,而且将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
实施例三
如图11所示,本发明技术方案还提供了一种电子设备,包括:存储器201,用于存储计算机程序;处理器202,用于执行所述计算机程序时实现如实施例一中的一种数据包处理优化方法的步骤。
本申请实施例中的存储器201用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。可以理解,存储器201可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous StaticRandom Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous DynamicRandom Access Memory)、增强型同步动态随机存取存储器(ESDRAM,EnhancedSynchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器201旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器202中,或者由处理器202实现。处理器202可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器202可以是通用处理器、DSP(Digital Signal Processing,即指能够实现数字信号处理技术的芯片),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器202可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器201,处理器202读取存储器201中的程序,结合其硬件完成前述方法的步骤。处理器202执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本发明技术方案中,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,使得数据在进行UDP协议通信时,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,在安全性上也有进一步的提升,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,提高了数据包处理的安全性以及可靠性。
本发明技术方案中将获取的网络层中的数据包进行第一位宽转换,使得通过网络层获取的数据包能够写入到单独添加到FPGA内部的内存中,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM(Random Access Memory,随机存储器)存储,由于内存资源的不足可能造成的网络拥塞。
本发明技术方案中通过在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中,将数据包中的数据和数据包的存储地址形成一一映射,既可同时缓存多个当前已转换的数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
本发明技术方案中,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;将第三存储模块中待读取的数据包中的数据进行第二位宽转换,将数据包中的数据和数据包的存储地址形成一一映射,既可同时读取多个当前已转换的数据包,而且将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
实施例四
本发明技术方案还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一中的一种数据包处理优化方法的步骤。
例如包括存储计算机程序的存储器201,上述计算机程序可由处理器202执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明技术方案中,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理,使得数据在进行UDP协议通信时,能够减少恶意数据包对整个通信环境造成的影响,在保证通信的及时性同时,在安全性上也有进一步的提升,有效解决由于现有技术造成利用FPGA处理数据包安全性以及可靠性不高的问题,提高了数据包处理的安全性以及可靠性。
本发明技术方案中将获取的网络层中的数据包进行第一位宽转换,使得通过网络层获取的数据包能够写入到单独添加到FPGA内部的内存中,防止了在大量数据同时到来的情况下,如果使用FPGA内部的RAM(Random Access Memory,随机存储器)存储,由于内存资源的不足可能造成的网络拥塞。
本发明技术方案中通过在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中,将数据包中的数据和数据包的存储地址形成一一映射,既可同时缓存多个当前已转换的数据包,可有效的防止因数据包处理速度不同导致的数据拥塞。
本发明技术方案中,在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;将第三存储模块中待读取的数据包中的数据进行第二位宽转换,将数据包中的数据和数据包的存储地址形成一一映射,既可同时读取多个当前已转换的数据包,而且将内存的读写逻辑独立开来,二者互不影响,提高了内存操作的效率。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (7)
1.一种数据包处理优化方法,其特征是,运行于可编程逻辑器件中,包括:
获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中;其中,第一位宽转换用于将网络层数据传输的位宽转换为内存接口数据传输的位宽;将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中具体包括:
将获取的网络层中的数据包进行第一位宽转换;
在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;
根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中;
根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理;其中,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理具体包括:
如果访问控制列表与数据包解析获取的五元组信息的匹配成功,读取存储至内存中的数据包,将获取的数据包进行转发或封装;其中,读取存储至内存中的数据包具体包括:
在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;
根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;
将第三存储模块中待读取的数据包中的数据进行第二位宽转换,其中,第二位宽转换用于将内存接口数据传输的位宽转换为网络层数据传输的位宽。
2.根据权利要求1所述的一种数据包处理优化方法,其特征是,五元组信息包括协议类型、源IP地址、目的IP地址,源端口、目的端口。
3.根据权利要求1所述的一种数据包处理优化方法,其特征是,根据第二存储模块存储的地址数据,将第一存储模块存储的数据包的数据写入内存中之前还包括:
将待写入内存的写控制信号与用户逻辑模块中第一存储模块、第二存储模块分别建立关联关系。
4.根据权利要求1所述的一种数据包处理优化方法,其特征是,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理具体还包括:
如果访问控制列表与数据包解析获取的五元组信息的规则匹配未成功,将获取的数据包进行丢弃。
5.一种数据包处理优化装置,其特征是,运行于可编程逻辑器件中,包括:
获取及匹配单元,获取网络层中的数据包,根据预先设置的访问控制列表对数据包解析获取的五元组信息进行规则匹配;
转换及存储单元,将获取的网络层中的数据包进行位宽转换后,并将转换后的数据包存储至内存中;其中,第一位宽转换用于将网络层数据传输的位宽转换为内存接口数据传输的位宽;将获取的网络层中的数据包进行第一位宽转换后,并将转换后的数据包存储至内存中具体包括:
将获取的网络层中的数据包进行第一位宽转换;
在用户逻辑模块中定义第一存储模块以及第二存储模块,所述第一存储模块用于存储当前转换后的数据包中待写入内存的数据,第二存储模块用于存储转换后的多个数据包对应在待写入内存的地址数据;
根据第二存储模块存储的地址数据,将第一存储模块存储的当前数据包的数据写入内存中;
处理单元,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理;其中,根据访问控制列表与数据包解析获取的五元组信息的规则匹配结果,将存储至内存中的数据包进行处理具体包括:
如果访问控制列表与数据包解析获取的五元组信息的匹配成功,读取存储至内存中的数据包,将获取的数据包进行转发或封装;其中,读取存储至内存中的数据包具体包括:
在用户逻辑模块中定义第三存储模块以及第四存储模块,所述第三存储模块用于存储内存中当前待读取数据包的数据,第四存储模块用于存储待读取数据包对应在内存中的地址数据;
根据第四存储模块存储的地址数据,将内存中当前待读取数据包的数据读取至第三存储模块;
将第三存储模块中待读取的数据包中的数据进行第二位宽转换,其中,第二位宽转换用于将内存接口数据传输的位宽转换为网络层数据传输的位宽。
6.一种电子设备,其特征是,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的一种数据包处理优化方法的步骤。
7.一种计算机可读存储介质,其特征是,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的一种数据包处理优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111338438.7A CN114205115B (zh) | 2021-11-12 | 2021-11-12 | 一种数据包处理优化方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111338438.7A CN114205115B (zh) | 2021-11-12 | 2021-11-12 | 一种数据包处理优化方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114205115A CN114205115A (zh) | 2022-03-18 |
CN114205115B true CN114205115B (zh) | 2023-07-14 |
Family
ID=80647489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111338438.7A Active CN114205115B (zh) | 2021-11-12 | 2021-11-12 | 一种数据包处理优化方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114205115B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114649011B (zh) * | 2022-03-31 | 2024-03-08 | 西安紫光国芯半导体有限公司 | 一种存储器的数据传输装置、数据传输方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939324A (zh) * | 2016-01-11 | 2016-09-14 | 杭州迪普科技有限公司 | 转发报文的方法及装置 |
CN111782140A (zh) * | 2020-06-18 | 2020-10-16 | 杭州安恒信息技术股份有限公司 | 网络数据包存储方法、装置、计算机设备和存储介质 |
CN112333020A (zh) * | 2020-11-03 | 2021-02-05 | 广东电网有限责任公司 | 一种基于五元组的网络安全监测及数据报文解析系统 |
WO2021104393A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市中兴微电子技术有限公司 | 多规则流分类的实现方法、设备和存储介质 |
-
2021
- 2021-11-12 CN CN202111338438.7A patent/CN114205115B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939324A (zh) * | 2016-01-11 | 2016-09-14 | 杭州迪普科技有限公司 | 转发报文的方法及装置 |
WO2021104393A1 (zh) * | 2019-11-27 | 2021-06-03 | 深圳市中兴微电子技术有限公司 | 多规则流分类的实现方法、设备和存储介质 |
CN111782140A (zh) * | 2020-06-18 | 2020-10-16 | 杭州安恒信息技术股份有限公司 | 网络数据包存储方法、装置、计算机设备和存储介质 |
CN112333020A (zh) * | 2020-11-03 | 2021-02-05 | 广东电网有限责任公司 | 一种基于五元组的网络安全监测及数据报文解析系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114205115A (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10230824B2 (en) | Packet classification using memory pointer information | |
WO2012071951A1 (zh) | 用于通用协议解析的参数获取和通用协议解析方法及装置 | |
WO2024067336A1 (zh) | 报文处理方法、可编程网卡设备、物理服务器及存储介质 | |
CN108600053B (zh) | 一种基于零拷贝技术的无线网络数据包捕获方法 | |
US9398117B2 (en) | Protocol data unit interface | |
CN102395958B (zh) | 一种数据包的并发处理方法及设备 | |
CN109564502B (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
CN107682311B (zh) | 一种硬件实现的多链接tcp数据重组系统 | |
US20120163392A1 (en) | Packet processing apparatus and method | |
CN114205115B (zh) | 一种数据包处理优化方法、装置、设备及介质 | |
CN111159709A (zh) | 一种文件类型识别方法、装置、设备及存储介质 | |
US9961147B2 (en) | Communication apparatus, information processor, communication method, and computer-readable storage medium | |
CN113179216B (zh) | 一种寄存器的远程配置方法、计算机设备及存储介质 | |
CN104065588A (zh) | 一种数据包调度和缓存的装置及方法 | |
CN106681659A (zh) | 数据压缩的方法及装置 | |
CN114422617A (zh) | 一种报文处理方法、系统及计算机可读存储介质 | |
CN113422669B (zh) | 数据传输方法、装置和系统、电子设备以及存储介质 | |
CN111143250B (zh) | 一种基于axi-st接口访问fpga存储单元的方法、设备及介质 | |
US20120041998A1 (en) | Network Interface for Accelerating XML Processing | |
CN115297082B (zh) | 基于FPGA、eBPF协同的ARP协议处理方法及系统 | |
CN115878512A (zh) | 一种内存映射方法、系统、设备及存储介质 | |
CN110445730A (zh) | 基于WinPcap的网络数据实时采集存储方法和装置 | |
CN115495406A (zh) | 一种基于PCIe的报文传输方法、装置、设备及存储介质 | |
CN102571535B (zh) | 一种数据延迟装置、方法及通信系统 | |
TWI806623B (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 |