CN116319592A - 一种报文分配方法、装置、设备及存储介质 - Google Patents
一种报文分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116319592A CN116319592A CN202310360870.9A CN202310360870A CN116319592A CN 116319592 A CN116319592 A CN 116319592A CN 202310360870 A CN202310360870 A CN 202310360870A CN 116319592 A CN116319592 A CN 116319592A
- Authority
- CN
- China
- Prior art keywords
- data frame
- network data
- server
- memory
- network
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001133 acceleration Effects 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Abstract
本申请公开了一种报文分配方法、装置、设备及存储介质,应用于FPGA,涉及硬件加速技术领域,包括:轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;若是,则基于网络数据帧的IP地址分配具有相应服务器编号的第一目标服务器;判断第一目标服务器的网卡剩余内存是否小于网络数据帧的内存占用;若否,则将网络数据帧发送至所述第一目标服务器,若是,则将网络数据帧存储至本地内存队列,并在轮询到第一目标服务器的网卡剩余内存大于网络数据帧的内存占用时,将本地内存队列中的网络数据帧发送至第一目标服务器。这样一来,可以通过FPGA直接将数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。
Description
技术领域
本发明涉及硬件加速技术领域,特别涉及一种报文分配方法、装置、设备及存储介质。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列),广泛应用于通信系统中,许多功能模块通常都需要大量的滤波运算,而这些滤波函数往往需要大量的乘和累加操作。而通过FPGA来实现分布式的算术结构,就可以有效地实现这些乘和累加操作。
现有技术中,在高并发场景下,服务器的网络端口往往需要承受很大的压力,传统的微服务架构尝试从软件层面解决问题,引入了软件层面的网关用于分发流量,但这加剧了硬件设备的压力,同时无法解决网卡内存被堆满的情况。
发明内容
有鉴于此,本发明的目的在于提供一种报文分配方法、装置、设备及存储介质,可以通过FPGA直接将接收到的数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。其具体方案如下:
第一方面,本申请公开了一种报文分配方法,应用于FPGA,包括:
轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;
若接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;
判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;
若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
可选的,所述轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧,包括:
在FPGA芯片启动后,轮询每个服务器的网卡内存占用;
利用预设记录列表记录基于所述网卡内存占用确定的每个服务器当前的网卡剩余内存,并判断是否接收到网络数据帧。
可选的,所述基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器之前,还可以包括:
判断当前所述本地内存队列中是否存在未完成分配的网络数据帧;
若存在,则确定与所述未完成分配的网络数据帧对应的第二目标服务器,并判断当前所述第二目标服务器的网卡剩余内存是否小于所述未完成分配的网络数据帧的内存占用;
若不小于,则将所述未完成分配的网络数据帧发送至所述第二目标服务器。
可选的,所述报文分配方法,还可以包括:
利用所述预设记录列表记录所述网络数据帧的分配状态。
可选的,所述轮询每个服务器的网卡内存占用,并判断是否接收到网络数据帧之前,还可以包括:
确定服务器数量,并基于所述服务器数量为每台服务器创建相应的服务器编号。
可选的,所述基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器,包括:
确定所述网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,以得到与所述网络数据帧对应的目标编码;
基于所述目标编码对所述服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数;
将服务器编号与所述余数相一致的服务器作为第一目标服务器,并为所述网络数据帧分配所述第一目标服务器。
可选的,所述报文分配方法,还可以包括:
判断所述网络数据帧是否为经过拆包的数据帧;
若是,则在获取到与所述网络数据帧对应的同属一个数据包的其他数据帧后,将所述其他数据帧发送至所述第一目标服务器。
第二方面,本申请公开了一种报文分配装置,包括:
数据帧接收判断模块,用于轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;
服务器分配模块,用于如果接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;
内存判断模块,用于判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;
数据帧处理模块,用于如果否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如前述的报文分配方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如前述的报文分配方法。
本申请中,首先轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;若接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。由此可见,通过本申请中所述报文分配方法,可以在FPGA芯片启动后且接收到网络数据帧后,基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的服务器,并在所述服务器网卡的剩余内存大于所述网络数据帧内存占用时直接将所述网络数据帧发送至所述服务器。这样一来,可以通过FPGA直接将接收到的数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种报文分配方法流程图;
图2为本申请提供的一种高并发场景下网络数据帧分配时序图;
图3为本申请提供的一种具体的报文分配方法流程图;
图4为本申请提供的一种报文分配装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,在高并发场景下,服务器的网络端口往往需要承受很大的压力,传统的微服务架构尝试从软件层面解决问题,引入了软件层面的网关用于分发流量,但这加剧了硬件设备的压力,同时无法解决网卡内存被堆满的情况。
为了克服上述技术问题,本申请提供了一种报文分配方法、装置、设备及存储介质,可以在FPGA芯片启动后且接收到网络数据帧后,基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的服务器,并在所述服务器网卡的剩余内存大于所述网络数据帧内存占用时直接将所述网络数据帧发送至所述服务器。这样一来,可以通过FPGA直接将接收到的数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。
参见图1所示,本发明实施例公开了一种报文分配方法,应用于FPGA,包括:
步骤S11、轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧。
本实施例中,在FPGA芯片启动后,首先需要轮询与所述FPGA芯片对接的每个服务器的网卡剩余内存,并将轮循到的每个服务器的网卡内存占情况记录在预设的纪录列表中,然后判断是否接收到网络数据帧。
需要进行说明的是,轮询每个服务器的网卡内存占用,并判断是否接收到网络数据帧之前,还包括:确定服务器数量,并基于所述服务器数量为每台服务器创建相应的服务器编号。也即,在轮询每个服务器的网卡剩余内存之前,需要先基于与FPGA芯片对接的服务器数量,为每台服务器进行编号,例如,与FPGA芯片对接的服务器数量有5台,则将服务器从0至4进行编号,并为每台服务器赋予相应的服务器编号。
步骤S12、如果接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器。
本实施例中,如果FPGA芯片接收到网络数据帧,则需要确定接收到的网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,然后利用转换后得到的无符号32位整数与服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数。并将与所述余数一致的服务器编号的服务器作为接收所述网络数据帧的第一目标服务器。
需要进行说明的是,基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器之前,还包括:判断当前所述本地内存队列中是否存在未完成分配的网络数据帧;若存在,则确定与所述未完成分配的网络数据帧对应的第二目标服务器,并判断当前所述第二目标服务器的网卡剩余内存是否小于所述未完成分配的网络数据帧的内存占用;若不小于,则将所述未完成分配的网络数据帧发送至所述第二目标服务器。也即,在FPGA芯片启动并轮询了服务器网卡的占用情况后,需要判断FPGA内存队列中是否存在还没有被发送到服务器的网络数据帧,如果存在,则需要确定与所述未完成分配的网络数据帧对应的第二目标服务器的网卡内存是否足够接收所述未完成分配的网络数据帧。如果所述第二目标服务器的网卡内存不小于所述未完成分配的网络数据帧的内存占用,则直接将所述未完成分配的网络数据帧发送至所述第二目标服务器,如果小于所述未完成分配的网络数据帧的内存占用,则继续将所述未完成分配的网络数据帧保存至FPGA的内存队列,并在轮循到所述第二目标服务器的网卡内存不小于所述未完成分配的网络数据帧的内存占用后,将所述未完成分配的网络数据帧发送至所述第二目标服务器。
步骤S13、判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用。
本实施例中,在接收到网络数据帧后需要确定所述网络数据帧的内存占用,并确定接收所述网络数据帧的第一目标服务器的网卡剩余内存大小,并比较所述第一目标服务器的网卡剩余内存大小是否小于所述网络数据帧的内存占用,以便通过比较结果确定,所述第一目标服务器是否可以接收所述网络数据帧。
步骤S14、若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
本实施例中,如图2所示,为高并发场景下网络数据帧的分配时序图,其中如果所述第一目标服务器的网卡剩余内存不小于所述网络数据帧的内存占用,则可以直接将所述网络数据帧发送至所述第一目标服务器,如果所述第一目标服务器的网卡剩余内存小于所述网络数据帧的内存占用,则表征所述第一目标服务器的网卡剩余内存不够接收所述网络数据帧,则需要将所述网络数据帧存储至FPGA的内存队列中,并且在FPGA轮循到第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
需要进行说明的是,所述报文分配方法,还包括:判断所述网络数据帧是否为经过拆包的数据帧;若是,则在获取到与所述网络数据帧对应的同属一个数据包的其他数据帧后,将所述其他数据帧发送至所述第一目标服务器。也即,如果FPGA接收到的网络数据帧是经过TPC(Transmission Control Protocol,传输控制协议)拆包的数据帧,则需要在确定接收所述网络数据帧的服务器之后,通过服务器编号对服务器进行锁定,并在接收同属一个数据包的其他数据帧后,将所述其他数据帧发送至同一服务器编号的服务器。这样一来,可以通过服务器编号保证同意客户端发送的报文请求总是被同一台服务器处理,以便同一服务器可以拿到同一客户端发送的所有数据包,以完成数据粘包,有效提高了本申请所述报文分配方法的可靠性。
由此可见,本实施例中首先轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;若接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。由此可见,通过本申请中所述报文分配方法,可以在FPGA芯片启动后且接收到网络数据帧后,基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的服务器,并在所述服务器网卡的剩余内存大于所述网络数据帧内存占用时直接将所述网络数据帧发送至所述服务器。这样一来,可以通过FPGA直接将接收到的数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。
基于前述实施例可知,本申请中需要基于网络数据帧的IP地址,为所述网络数据帧分配相应的服务器,为此本实施例对如何为网络数据帧分配相应的服务器进行了详细的说明,参见图3所示,本发明实施例公开了一种报文分配方法,应用于FPGA,包括:
步骤S21、轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧。
步骤S22、如果接收到所述网络数据帧,则确定所述网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,以得到与所述网络数据帧对应的目标编码。
本实施例中,如果FPGA芯片在启动后,接收到新的网络数据帧,则需要首先确定所述网络数据帧的IP地址,以便对所述网络数据帧的IP地址进行转换,转换为无符号32位整数。例如:接收到新的网络数据帧,且所述网络数据帧对应的点分十进制的客户端IP为63.74.28.1,则将所述客户端IP转换成无符号32位整数,则表示为1049445616。在得到所述网络数据帧的IP地址对应的无符号32位整数之后,将所述无符号32位整数确定为与所述网络数据帧对应的目标编码。
步骤S23、基于所述目标编码对所述服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数。
本实施例中,在得到与接收到的网络数据帧对应的目标编码之后,需要基于所述目标编码对服务器数量对应的数值进行取余数处理,其中分子为所述目标编码,分母为服务器数量对应的数值。例如,如前述实施例所示,得到的目标编码为1049445616,且与FPGA对接的服务器数量为5台,则进行取余数处理后得到的余数为1,则利用服务器编号为1的服务器接收与所述目标编码对应的网络数据帧。
步骤S24、将服务器编号与所述余数相一致的服务器作为第一目标服务器,并为所述网络数据帧分配所述第一目标服务器。
本实施例中,如前述实施例所示,与FPGA对接的服务器有5台,且依次按照0至4为每台服务器进行编号,并且进行取余数处理后得到的余数为1,则需要利用服务器编号为1的服务器接收与目标编码对应的网络数据帧,也即将服务器编号为1的服务器作为第一目标服务器。这样一来,如果网络数据帧为经过拆包的数据帧,可以基于相同服务器编号的服务器接收所述网络数据帧的后续数据,实现对拆包数据的持续接收,以便完成数据粘包,有效提高了本申请中所述报文分配方法的可靠性。
步骤S25、判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用。
步骤S26、若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
需要进行说明的是,关于步骤S21、步骤S25、步骤S26更加具体的描述可以参考前述实施例,在此不再进行赘述。
由此可见,本实施例中在接收到所述网络数据帧后,需要确定所述网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,以得到与所述网络数据帧对应的目标编码,然后基于所述目标编码对所述服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数,最后将服务器编号与所述余数相一致的服务器作为第一目标服务器,并为所述网络数据帧分配所述第一目标服务器。这样一来,可以通过网络数据帧的IP地址,直接为所述网络数据帧分配相应的接收服务器,避免通过中间网卡进行处理,有效缓解了网络负担。
参见图4所示,本发明实施例公开了一种报文分配装置,应用于FPGA,包括:
数据帧接收判断模块11,用于轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;
服务器分配模块12,用于如果接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;
内存判断模块13,用于判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;
数据帧处理模块14,用于如果否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
本申请中,首先轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;若接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。由此可见,通过本申请中所述报文分配方法,可以在FPGA芯片启动后且接收到网络数据帧后,基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的服务器,并在所述服务器网卡的剩余内存大于所述网络数据帧内存占用时直接将所述网络数据帧发送至所述服务器。这样一来,可以通过FPGA直接将接收到的数据帧报文发送至服务器,避免通过中间网卡分发报文,减轻高并发场景下的网络负担,提高处理效率。
在一些实施例中,所述数据帧接收判断模块11,具体可以包括:
网卡轮询单元,用于在FPGA芯片启动后,轮询每个服务器的网卡内存占用;
数据帧接收判断单元,用于利用预设记录列表记录基于所述网卡内存占用确定的每个服务器当前的网卡剩余内存,并判断是否接收到网络数据帧。
在一些实施例中,所述报文分配装置,还可以包括:
数据帧分配判断模块,用于判断当前所述本地内存队列中是否存在未完成分配的网络数据帧;
内存对比模块,用于如果存在,则确定与所述未完成分配的网络数据帧对应的第二目标服务器,并判断当前所述第二目标服务器的网卡剩余内存是否小于所述未完成分配的网络数据帧的内存占用;
第一数据帧发送模块,用于如果不小于,则将所述未完成分配的网络数据帧发送至所述第二目标服务器。
在一些实施例中,所述报文分配装置,还可以包括:
分配状态记录模块,用于利用所述预设记录列表记录所述网络数据帧的分配状态。
在一些实施例中,所述报文分配装置,还可以包括:
编号创建模块,用于确定服务器数量,并基于所述服务器数量为每台服务器创建相应的服务器编号。
在一些实施例中,所述服务器分配模块12,具体可以包括:
地址转换单元,用于确定所述网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,以得到与所述网络数据帧对应的目标编码;
数据处理单元,用于基于所述目标编码对所述服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数;
服务器分配单元,用于将服务器编号与所述余数相一致的服务器作为第一目标服务器,并为所述网络数据帧分配所述第一目标服务器。
在一些实施例中,所述报文分配装置,还可以包括:
拆包数据帧判断模块,用于判断所述网络数据帧是否为经过拆包的数据帧;
第二数据帧发送模块,用于如果是,则在获取到与所述网络数据帧对应的同属一个数据包的其他数据帧后,将所述其他数据帧发送至所述第一目标服务器。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的报文分配方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的报文分配方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的报文分配方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种报文分配方法,其特征在于,应用于FPGA,包括:
轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;
若接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;
判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;
若否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
2.根据权利要求1所述的报文分配方法,其特征在于,所述轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧,包括:
在FPGA芯片启动后,轮询每个服务器的网卡内存占用;
利用预设记录列表记录基于所述网卡内存占用确定的每个服务器当前的网卡剩余内存,并判断是否接收到网络数据帧。
3.根据权利要求2所述的报文分配方法,其特征在于,所述基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器之前,还包括:
判断当前所述本地内存队列中是否存在未完成分配的网络数据帧;
若存在,则确定与所述未完成分配的网络数据帧对应的第二目标服务器,并判断当前所述第二目标服务器的网卡剩余内存是否小于所述未完成分配的网络数据帧的内存占用;
若不小于,则将所述未完成分配的网络数据帧发送至所述第二目标服务器。
4.根据权利要求2所述的报文分配方法,其特征在于,还包括:
利用所述预设记录列表记录所述网络数据帧的分配状态。
5.根据权利要求1所述的报文分配方法,其特征在于,所述轮询每个服务器的网卡内存占用,并判断是否接收到网络数据帧之前,还包括:
确定服务器数量,并基于所述服务器数量为每台服务器创建相应的服务器编号。
6.根据权利要求5所述的报文分配方法,其特征在于,所述基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器,包括:
确定所述网络数据帧的IP地址,并将所述网络数据帧的IP地址转换为无符号32位整数,以得到与所述网络数据帧对应的目标编码;
基于所述目标编码对所述服务器数量对应的数值进行取余数处理,以得到与所述网络数据帧对应的余数;
将服务器编号与所述余数相一致的服务器作为第一目标服务器,并为所述网络数据帧分配所述第一目标服务器。
7.根据权利要求1至6任一项所述的报文分配方法,其特征在于,还包括:
判断所述网络数据帧是否为经过拆包的数据帧;
若是,则在获取到与所述网络数据帧对应的同属一个数据包的其他数据帧后,将所述其他数据帧发送至所述第一目标服务器。
8.一种报文分配装置,其特征在于,应用于FPGA,包括:
数据帧接收判断模块,用于轮询每个服务器的网卡剩余内存,并判断是否接收到网络数据帧;
服务器分配模块,用于如果接收到所述网络数据帧,则基于所述网络数据帧的IP地址为所述网络数据帧分配具有相应服务器编号的第一目标服务器;
内存判断模块,用于判断所述第一目标服务器的网卡剩余内存是否小于所述网络数据帧的内存占用;
数据帧处理模块,用于如果否,则将所述网络数据帧发送至所述第一目标服务器,若是,则将所述网络数据帧存储至本地内存队列,并在轮询到所述第一目标服务器的网卡剩余内存大于所述网络数据帧的内存占用时,将所述本地内存队列中的所述网络数据帧发送至所述第一目标服务器。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的报文分配方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的报文分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310360870.9A CN116319592A (zh) | 2023-03-31 | 2023-03-31 | 一种报文分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310360870.9A CN116319592A (zh) | 2023-03-31 | 2023-03-31 | 一种报文分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116319592A true CN116319592A (zh) | 2023-06-23 |
Family
ID=86781506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310360870.9A Pending CN116319592A (zh) | 2023-03-31 | 2023-03-31 | 一种报文分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116319592A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117295118A (zh) * | 2023-10-08 | 2023-12-26 | 广州市玄武无线科技股份有限公司 | 一种稳定性强且短信数据缓冲及流量控制的方法 |
-
2023
- 2023-03-31 CN CN202310360870.9A patent/CN116319592A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117295118A (zh) * | 2023-10-08 | 2023-12-26 | 广州市玄武无线科技股份有限公司 | 一种稳定性强且短信数据缓冲及流量控制的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107241281B (zh) | 一种数据处理方法及其装置 | |
CN110839084B (zh) | 会话管理方法、装置、设备和介质 | |
CN110958281B (zh) | 基于物联网的数据传输方法及通信装置 | |
CN111212085B (zh) | 物联网平台同步调用的方法、物联网系统和网络设备 | |
CN112261094B (zh) | 一种报文处理方法及代理服务器 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN116319592A (zh) | 一种报文分配方法、装置、设备及存储介质 | |
CN102763373A (zh) | 基于远程访问使用本地网络装置的服务的方法和设备 | |
CN111737022A (zh) | 一种基于微服务的接口调用方法、系统、设备及介质 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN111506443A (zh) | 服务调用方法、装置、设备和存储介质 | |
CN114095571A (zh) | 数据处理方法、数据服务总线、终端和存储介质 | |
CN108388475B (zh) | 一种基于终端类型配置api资源的方法及系统 | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
CN106850871B (zh) | 一种单物理网卡多vlan的dhcp服务器实现方法 | |
CN105490956A (zh) | 一种网络请求处理方法及装置 | |
CN112104565B (zh) | 一种实现报文转发的方法、系统及设备 | |
CN102035670B (zh) | 具有多个网络接口的通信设备和控制通信设备的方法 | |
CN110891033A (zh) | 网络资源处理方法、装置、网关、控制器及存储介质 | |
CN114490071A (zh) | 一种基于云游戏的资源调度方法、装置、设备及介质 | |
CN113271228A (zh) | 带宽资源调度方法、装置、设备及计算机可读存储介质 | |
CN113760482A (zh) | 一种任务处理方法、装置和系统 | |
CN111901689A (zh) | 流媒体数据的传输方法、装置、终端设备和存储介质 | |
CN110943897A (zh) | PPPoE数据报文传输方法、装置、设备及存储介质 | |
CN110311952B (zh) | 一种http限速方法和装置 |
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 |