CN115225565B - 数据包收发配置、收取、发送方法及装置、电子设备 - Google Patents
数据包收发配置、收取、发送方法及装置、电子设备 Download PDFInfo
- Publication number
- CN115225565B CN115225565B CN202210877725.3A CN202210877725A CN115225565B CN 115225565 B CN115225565 B CN 115225565B CN 202210877725 A CN202210877725 A CN 202210877725A CN 115225565 B CN115225565 B CN 115225565B
- Authority
- CN
- China
- Prior art keywords
- packet
- receiving
- sending
- channel
- memory resource
- 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 64
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种数据包收发配置、收取、发送方法及装置、电子设备。该方法包括:先获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;再从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;然后将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
Description
技术领域
本申请实施例涉及网络数据收发技术领域,尤其涉及一种数据包收发配置、收取、发送方法及装置、电子设备。
背景技术
随着互联网的发展,作为操作系统的组成部分,网络的性能对操作系统的整体竞争优势起到了越来越重要的作用。
目前,操作系统中的网络驱动往往无法充分发挥硬件的性能。例如,1GB的网卡在操作系统上进行吞吐量测试的时候,通常只能达到700MB~900MB。可见,现有的网络驱动对硬件资源利用不充分,尚有不少可优化空间。
如何将操作系统的网络吞吐量提升到接近硬件规格,从而提升操作系统的网络性能,是当前亟需解决的问题。
发明内容
本申请实施例提供一种数据包收发配置、收取、发送方法及装置、电子设备,以解决将操作系统的网络吞吐量提升到接近硬件规格的问题。
第一方面,本申请实施例提供了一种数据包收发配置方法,所述方法包括:
获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
第二方面,一种数据包收取方法,所述方法包括:
在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;
基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;
获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。
第三方面,一种数据包发送方法,所述方法包括:
在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;
基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;
获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
第四方面,本申请实施例还提供了一种数据包收发配置装置,该数据包收发配置装置包括:
获取模块,用于获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
划分模块,用于从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
第一链接模块,用于将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
第二链接模块,用于将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
第五方面,本申请实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请任一实施例提供的数据包收发配置方法或收取、发送方法。
第六方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本申请任一实施例提供的数据包收发配置方法或收取、发送方法。
本申请实施例的技术方案,先获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;再从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送,相较于现有技术,本申请在网络驱动收发包函数中实现一种新的内存分配机制,有利于在网络驱动后更加高效的收发数据包,提升网络驱动一次收发的数据量,从而实现将操作系统的网络吞吐量提升到接近硬件规格的目的,进而达到提升操作系统的网络性能的效果。
附图说明
图1为本申请实施例一提供的一种数据包收发配置方法的流程示意图;
图2是本申请实施例二提供的一种数据包收取方法的流程示意图;
图3是本申请实施例三提供的一种数据包发送方法的流程示意图;
图4为本申请实施例四提供的一种数据包收发配置装置的结构示意图;
图5为本申请实施例五提供的一种数据包收取装置的结构示意图;
图6为本申请实施例六提供的一种数据包发送装置的结构示意图;
图7为本申请实施例七提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的数据包收发配置方法的流程示意图,本实施例可适用于数据包收发配置的场景。该方法可以由数据包收发配置装置来执行,该装置可采用硬件和/或软件的方式实现,并一般可以集成在具有数据运算能力的计算机等电子设备中,具体包括如下步骤:
步骤101、获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小。
需要说明的是,收包通道和发包通道是用于传输数据包的通道。以有128个通道的芯片为例,收发包通道能达到的最大数量为128,也可以说该芯片所有的收发包通道数量为128。每条收发包通道都可以单独完成接收数据包或发送数据包。因此,为了提升网络驱动一次收发的数据量,需要根据所有的收包通道数量和发包通道数量确定所需的内存资源大小。
在本步骤中,所述获取收包内存资源需求量和发包内存资源需求量,可以先获取收发包硬件资源的收包通道数量和发包通道数量;然后根据所述收包通道数量确定收包内存资源需求量,以及根据所述发包通道数量确定发包内存资源需求量。
需要说明的是,由于收发包通道数量与芯片规格有关,因此需要先确定收包通道数量和发包通道数量,然后才能准确的根据通道数量确定内存资源需求量。
步骤102、从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源。
在本步骤中,收包内存资源和发包内存资源指的是用于暂存接收到的和即将发送出的数据包的数组。可以使用函数Nic_Alloc_RX_Buffers()分配出收包数组rx_ring->buffer_info[i].dma,使用函数Nic_Alloc_TX_Buffers()函数分配出发包数组tx_ring->buffer_info[i].dma。在上述步骤中,已经获得了内存资源需求量和发包内存资源需求量,因此可以根据内存资源需求量和发包内存资源需求量的大小从内存中划分出相应的空间用于放置收包数组和发包数组。
步骤103、将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中。
在本步骤中,所述将所述收包内存资源与各收包通道进行链接,可以是在所述收包内存资源设置环形收包数组,并将所述环形收包数组中的元素分别与各收包通道进行链接。
需要说明的是,在收包数组rx_ring->buffer_info[i].dma中,i表示数组的元素,可以为1,2,3,4……,表示第i个元素。数组中的每个元素都是一个收包通道所需的资源。由于此时数据包在收包通道中,将收包内存资源与各收包通道链接,就是将数组中的各个元素与通道对应链接,便于网络驱动后数组从收包通道处收取数据包。
步骤104、将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
在本步骤中,将所述发包内存资源与各发包通道进行链接,可以是在所述收包内存资源设置环形发包数组,并将所述环形发包数组中的元素分别与各发包通道进行链接。
需要说明的是,此时数据包暂存在发包数组tx_ring->buffer_info[i].dma中,其中,i可以为1,2,3,4……,表示数组的第i个元素。发包数组中的每个元素都对应一个发包通道。将发包内存资源与各发包通道链接就是将数组中的各个元素与通道对应链接,以便在网络驱动后对应的发送数据包。
本实施例中,先获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;再从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送,相较于现有技术,本申请在网络驱动收发包函数中实现一种新的内存分配机制,有利于在网络驱动后更加高效的收发数据包,提升网络驱动一次收发的数据量,从而实现将操作系统的网络吞吐量提升到接近硬件规格的目的,进而达到提升操作系统的网络性能的效果。
实施例二
图2是本申请实施例二提供的一种数据包收取方法的流程示意图。
如图2所示,本实施例提供的一种数据包收取方法可以包括:
步骤201、在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包。
需要说明的是,寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。收包描述符x_desc=E1000_RX_DESC(*rx_ring,i)在寄存器中,其中,i可以用1,2,3,4……替代,表示第i个收包描述符。一个收包描述符与一个收包通道相对应。通过收包描述符的状态位可以判断收包通道中是否存在数据包。
步骤202、基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道。
在本步骤中,可以先获取预设收包状态位,并与每个收包通道的收包描述符分别进行与操作,得到每个收包通道各自对应的判定值。然后对于任一收包通道,若所述收包通道对应的判定值为预设值,则确定所述收包通道为存在数据包的目标收包通道。
具体的,先读取每个收包通道对应的收包描述符rx_desc=E1000_RX_DESC(*rx_ring,i),得到状态位rx_desc->status,将状态位和收包描述符进行与操作,得到每个收包通道各自对应的判定值,若判定值为预设值,则该收包通道存在数据包。目标收包通道为存在数据包的收包通道。
步骤203、获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。
在本步骤中,环形收包数组地址可以用于确定环形收包数组的存储位置。环形收包数组中的每一个元素都可以对应存储一个收包通道中的数据包。数组中的各个元素与通道对应链接后,可以将目标收包通道中的数据包存储到对应的元素中。一个收包通道完成收包后对应的状态位发生改变。
本实施例中,在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。相较于现有技术,本申请提升了网络驱动一次收取数据包的数据量,实现了将操作系统的网络吞吐量提升到接近硬件规格的目的,达到了提升操作系统的网络性能的效果。
实施例三
图3是本申请实施例三提供的一种数据包发送方法的流程示意图。
如图3所示,本实施例提供的一种数据包发送方法可以包括:
步骤301、在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包。
具体的,发包描述符tx_desc=E1000_TX_DESC(*tx_ring,i)在寄存器中,其中,i可以为1,2,3,4……,表示第i个发包描述符。一个收包描述符与一个收包通道相对应。通过发包描述符的状态位可以判断发包通道中是否存在数据包。
步骤302、基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道。
在本步骤中,可以先读取每个发包通道对应的发包描述符tx_desc=E1000_TX_DESC(*tx_ring,i),得到状态位tx_desc->status,状态位和发包描述符进行与操作,得到每个发包通道各自对应的判定值,若判定值为预设值,则该发包通道不存在数据包。目标发包通道为不存在数据包的发包通道。
步骤303、获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
在本步骤中,环形发包数组地址可以用于确定环形发包数组的存储位置。环形发包数组中每一个元素存储的数据包都可以对应发送到一个发包通道中。数组中的各个元素与通道对应链接后,将元素中暂存的数据包添加到对应的目标发包通道中从而完成发送。一个发包通道完成发包后对应的状态位发生改变。
本实施例中,在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。相较于现有技术,本申请提升了网络驱动一次发送数据包的数据量,实现了将操作系统的网络吞吐量提升到接近硬件规格的目的,达到了提升操作系统的网络性能的效果。
实施例四
图4为本申请实施例四提供的一种数据包收发配置装置的结构示意图。本申请实施例所提供的数据包收发配置装置可执行本申请任意实施例所提供数据包收发配置方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图4所示,数据包收发配置装置具体包括:获取模块401、划分模块402、第一链接模块403、第二链接模块404。
其中,获取模块401,用于获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
划分模块402,用于从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
第一链接模块403,用于将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
第二链接模块404,用于将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
在上述实施例的基础上,可选的,所述获取模块401还可以包括:
内存资源需求量获取单元,用于获取收包硬件资源的收包通道数量和发包通道数量;根据所述收包通道数量确定收包内存资源需求量,以及根据所述发包通道数量确定发包内存资源需求量。
在上述实施例的基础上,可选的,所述第一链接模块403还可以包括:
第一链接单元,用于在所述收包内存资源设置环形收包数组,并将所述环形收包数组中的元素分别与各收包通道进行链接。
在上述实施例的基础上,可选的,所述第二链接模块404还可以包括:
第二链接单元,用于在所述收包内存资源设置环形发包数组,并将所述环形发包数组中的元素分别与各发包通道进行链接。
本实施例中,先获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;再从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送,相较于现有技术,本申请在网络驱动收发包函数中实现一种新的内存分配机制,有利于在网络驱动后更加高效的收发数据包,提升网络驱动一次收发的数据量,从而实现将操作系统的网络吞吐量提升到接近硬件规格的目的,进而达到提升操作系统的网络性能的效果。
实施例五
图5为本申请实施例五提供的一种数据包收取装置的结构示意图。本申请实施例所提供的数据包收取装置可执行本申请任意实施例所提供的数据包收取方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图5所示,数据包收取装置具体包括:读取模块501、确定模块502、存储模块503。
其中,读取模块501,用于在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包。
确定模块502,用于基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道。
存储模块503,用于获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。
本实施例中,在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。相较于现有技术,本申请提升了网络驱动一次收取数据包的数据量,实现了将操作系统的网络吞吐量提升到接近硬件规格的目的,达到了提升操作系统的网络性能的效果。
实施例六
图6为本申请实施例六提供的一种数据包发送装置的结构示意图。本申请实施例所提供的数据包发送装置可执行本申请任意实施例所提供的数据包发送方法,具备执行方法相应的功能模块和有益效果。该装置可采用软件和/或硬件的方式实现,如图6所示,数据包发送装置具体包括:读取模块601、确定模块602、添加模块603。
其中,读取模块601,用于在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包。
确定模块602,用于基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道。
添加模块603,用于获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
本实施例中,在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。相较于现有技术,本申请提升了网络驱动一次发送数据包的数据量,实现了将操作系统的网络吞吐量提升到接近硬件规格的目的,达到了提升操作系统的网络性能的效果。
实施例七
图7为本申请实施例七提供的一种电子设备的结构示意图,如图7所示,该电子设备包括处理器710、存储器720、输入装置730和输出装置740;电子设备中处理器710的数量可以是一个或多个,图7中以一个处理器710为例;电子设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器720作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据包收发配置方法或数据包收取、发送方法对应的程序指令/模块(例如,数据包收发配置装置中的获取模块401、划分模块402、第一链接模块403、第二链接模块404或数据包收取、发送装置中的第一读取模块501、第二读取模块502、第一确定模块503、第二确定模块504、存储模块505、添加模块506)。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的数据包收发配置方法:
获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
或数据包收取、发送方法:
在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;
基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;
获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。
在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;
基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;
获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器720可进一步包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例八
本申请实施例八还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种数据包收发配置方法,该方法包括:
获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送。
一种数据包收取方法,该方法包括:
在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;
基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;
获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中。
一种数据包发送方法,该方法包括:
在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;
基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;
获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本申请任意实施例所提供的数据包收发配置方法或数据包收取及发送方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (8)
1.一种数据包收发配置方法,其特征在于,所述方法包括:
获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送;
所述方法还包括:
在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;
基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;
获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中;
和,在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述发包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;
基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;
获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
2.根据权利要求1所述的方法,其特征在于,所述获取收包内存资源需求量和发包内存资源需求量,包括:
获取收发包硬件资源的收包通道数量和发包通道数量;
根据所述收包通道数量确定收包内存资源需求量,以及根据所述发包通道数量确定发包内存资源需求量。
3.根据权利要求1所述的方法,其特征在于,所述将所述收包内存资源与各收包通道进行链接,包括:
在所述收包内存资源设置环形收包数组,并将所述环形收包数组中的元素分别与各收包通道进行链接。
4.根据权利要求1所述的方法,其特征在于,将所述发包内存资源与各发包通道进行链接,包括:
在所述收包内存资源设置环形发包数组,并将所述环形发包数组中的元素分别与各发包通道进行链接。
5.根据权利要求1所述的方法,其特征在于,所述基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道,包括:
获取预设收包状态位,并与每个收包通道的收包描述符分别进行与操作,得到每个收包通道各自对应的判定值;
对于任一收包通道,若所述收包通道对应的判定值为预设值,则确定所述收包通道为存在数据包的目标收包通道。
6.一种数据包收发配置装置,其特征在于,所述装置包括:
获取模块,用于获取收包内存资源需求量和发包内存资源需求量,所述收包内存资源需求量为所有收包通道数量所需的内存资源大小,所述发包内存资源需求量为所有发包通道数量所需的内存资源大小;
划分模块,用于从内存中划分出所述收包内存资源需求量对应的收包内存资源,以及所述发包内存资源需求量对应的发包内存资源;
第一链接模块,用于将所述收包内存资源与各收包通道进行链接,以便于收取数据包时将所有收包通道中的数据包都收取到所述收包内存资源中;
第二链接模块,用于将所述发包内存资源与各发包通道进行链接,以便于发送数据包时将所述发包内存资源中的数据包分别填入到每个所述发包通道中进行发送;
所述装置还包括:读取模块、确定模块、存储模块、添加模块;
所述读取模块,用于在需要收取数据包的情况下,读取预设寄存器中的收包描述符,每个所述收包描述符对应一个收包通道,用于指示对应的所述收包通道中是否存在数据包;还用于在需要发送数据包的情况下,读取预设寄存器中的发包描述符,每个所述收包描述符对应一个发包通道,用于指示对应的所述发包通道中是否存在数据包;
所述确定模块,用于基于所述收包描述符,从所有收包通道中确定出存在数据包的目标收包通道;还用于基于所述发包描述符,从所有发包通道中确定出不存在数据包的目标发包通道;
所述存储模块,用于获取预先为所述目标收包通道分配的环形收包数组地址,并将各所述目标收包通道中的数据包存储到所述环形收包数组地址对应的环形收包数组中;所述添加模块,用于获取预先为所述目标发包通道分配的环形发包数组地址,并将所述环形收包数组地址对应的环形收包数组中的数据包添加到各所述目标发包通道中进行发送。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的数据包收发配置方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的数据包收发配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210877725.3A CN115225565B (zh) | 2022-07-25 | 2022-07-25 | 数据包收发配置、收取、发送方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210877725.3A CN115225565B (zh) | 2022-07-25 | 2022-07-25 | 数据包收发配置、收取、发送方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225565A CN115225565A (zh) | 2022-10-21 |
CN115225565B true CN115225565B (zh) | 2023-12-15 |
Family
ID=83614249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210877725.3A Active CN115225565B (zh) | 2022-07-25 | 2022-07-25 | 数据包收发配置、收取、发送方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225565B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003333056A (ja) * | 2002-05-13 | 2003-11-21 | Canon Inc | 通信ネットワーク及びそこで用いるノード装置及びそこで用いる伝送制御方法 |
AU2002313444A1 (en) * | 2002-07-17 | 2004-02-02 | Wuhan Fiberhome Networks Co., Ltd. | Multiple service ring with capabilities of transmitting and switching data, video and voice |
EP2595344A2 (en) * | 2011-11-17 | 2013-05-22 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for detecting connectivity in a multi-protocol label switching ring network |
CN104636085A (zh) * | 2015-01-27 | 2015-05-20 | 北京理工大学 | 一种片上网络消息缓冲区的存储管理模块 |
CN107153576A (zh) * | 2017-04-10 | 2017-09-12 | 广东欧珀移动通信有限公司 | 一种内存资源的分配方法及终端设备 |
CN109117270A (zh) * | 2018-08-01 | 2019-01-01 | 湖北微源卓越科技有限公司 | 提高网络数据包处理效率的方法 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN110990114A (zh) * | 2019-11-08 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种虚拟机资源分配方法、装置、设备及可读存储介质 |
CN111338779A (zh) * | 2020-02-27 | 2020-06-26 | 深圳华锐金融技术股份有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN111930290A (zh) * | 2020-09-18 | 2020-11-13 | 阿里云计算有限公司 | 资源部署方法及装置 |
CN112463391A (zh) * | 2020-12-08 | 2021-03-09 | Oppo广东移动通信有限公司 | 内存控制方法、内存控制装置、存储介质与电子设备 |
CN112511460A (zh) * | 2020-12-29 | 2021-03-16 | 安徽皖通邮电股份有限公司 | 单收发通道多核网络通讯设备的无锁共享报文转发方法 |
CN113535395A (zh) * | 2021-07-14 | 2021-10-22 | 西安电子科技大学 | 网络存储业务的描述符队列和内存优化方法、系统及应用 |
CN113992608A (zh) * | 2021-10-25 | 2022-01-28 | 北京科东电力控制系统有限责任公司 | 一种网络收发包路径优化方法、装置及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3859369B2 (ja) * | 1998-09-18 | 2006-12-20 | 株式会社東芝 | メッセージ中継装置及び方法 |
US8542693B2 (en) * | 2007-08-01 | 2013-09-24 | Texas Instruments Incorporated | Managing free packet descriptors in packet-based communications |
-
2022
- 2022-07-25 CN CN202210877725.3A patent/CN115225565B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003333056A (ja) * | 2002-05-13 | 2003-11-21 | Canon Inc | 通信ネットワーク及びそこで用いるノード装置及びそこで用いる伝送制御方法 |
AU2002313444A1 (en) * | 2002-07-17 | 2004-02-02 | Wuhan Fiberhome Networks Co., Ltd. | Multiple service ring with capabilities of transmitting and switching data, video and voice |
EP2595344A2 (en) * | 2011-11-17 | 2013-05-22 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for detecting connectivity in a multi-protocol label switching ring network |
CN104636085A (zh) * | 2015-01-27 | 2015-05-20 | 北京理工大学 | 一种片上网络消息缓冲区的存储管理模块 |
CN107153576A (zh) * | 2017-04-10 | 2017-09-12 | 广东欧珀移动通信有限公司 | 一种内存资源的分配方法及终端设备 |
CN110209490A (zh) * | 2018-04-27 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及相关设备 |
CN109117270A (zh) * | 2018-08-01 | 2019-01-01 | 湖北微源卓越科技有限公司 | 提高网络数据包处理效率的方法 |
CN110990114A (zh) * | 2019-11-08 | 2020-04-10 | 浪潮电子信息产业股份有限公司 | 一种虚拟机资源分配方法、装置、设备及可读存储介质 |
CN111338779A (zh) * | 2020-02-27 | 2020-06-26 | 深圳华锐金融技术股份有限公司 | 资源分配方法、装置、计算机设备和存储介质 |
CN111930290A (zh) * | 2020-09-18 | 2020-11-13 | 阿里云计算有限公司 | 资源部署方法及装置 |
CN112463391A (zh) * | 2020-12-08 | 2021-03-09 | Oppo广东移动通信有限公司 | 内存控制方法、内存控制装置、存储介质与电子设备 |
CN112511460A (zh) * | 2020-12-29 | 2021-03-16 | 安徽皖通邮电股份有限公司 | 单收发通道多核网络通讯设备的无锁共享报文转发方法 |
CN113535395A (zh) * | 2021-07-14 | 2021-10-22 | 西安电子科技大学 | 网络存储业务的描述符队列和内存优化方法、系统及应用 |
CN113992608A (zh) * | 2021-10-25 | 2022-01-28 | 北京科东电力控制系统有限责任公司 | 一种网络收发包路径优化方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
《Resource Allocation and Power Control in Cooperative Small Cell Networks With Backhaul Constraint》;Jonggyu Jang;《IEEE》;全文 * |
《压缩可编程控制器内存需求量的一种算法》;白德媛;《计算机研究与发展》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115225565A (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951388B (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
CN108268328B (zh) | 数据处理装置及计算机 | |
US7940788B2 (en) | System for transmitting data within a network between nodes of the network and flow control process for transmitting the data | |
CN111163018B (zh) | 网络设备及其降低传输时延的方法 | |
RU2742100C1 (ru) | Способ передачи данных, оконечное устройство и сетевое устройство | |
CN111190854B (zh) | 通信数据处理方法、装置、设备、系统和存储介质 | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN105786736A (zh) | 一种多芯片级联的方法、芯片和装置 | |
CN115827682B (zh) | 一种数据库查询加速引擎装置、方法及存储介质 | |
CN113553137B (zh) | 一种nfv架构下基于dpdk的接入能力网元高速数据处理方法 | |
CN118509399A (zh) | 一种报文处理方法、装置、电子设备及存储介质 | |
CN115225565B (zh) | 数据包收发配置、收取、发送方法及装置、电子设备 | |
US10095643B2 (en) | Direct memory access control device for at least one computing unit having a working memory | |
CN117539807A (zh) | 一种数据传输方法、相关设备及存储介质 | |
CN112291259A (zh) | 一种协议转换方法、网关、设备及可读存储介质 | |
EP4383066A1 (en) | Data transmission method and apparatus, and data transmission device and storage medium | |
CN114125936B (zh) | 一种资源调度方法、装置和存储介质 | |
CN113835888B (zh) | CPU动态分配提升WiFi性能的方法、WiFi通讯设备及存储介质 | |
CN113316230B (zh) | 一种发送数据任务调度方法、装置、电子设备及存储介质 | |
CN112702313B (zh) | 高速udp数据发送系统及方法 | |
CN114079675B (zh) | 报文处理方法、装置、终端设备及移动宽带上网设备 | |
CN111240908B (zh) | 处理器接口的验证方法、验证系统、电子设备及存储介质 | |
US20230300657A1 (en) | Sensing measurement report frame format | |
US20200280533A1 (en) | Information transmission method, resource allocation method, terminal device, and network device | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 |
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 |