CN111817818A - Method and device for transmitting data packet - Google Patents
Method and device for transmitting data packet Download PDFInfo
- Publication number
- CN111817818A CN111817818A CN201910290555.7A CN201910290555A CN111817818A CN 111817818 A CN111817818 A CN 111817818A CN 201910290555 A CN201910290555 A CN 201910290555A CN 111817818 A CN111817818 A CN 111817818A
- Authority
- CN
- China
- Prior art keywords
- block
- data packet
- target
- layer
- queue
- 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 59
- 238000013507 mapping Methods 0.000 claims description 16
- 239000006185 dispersion Substances 0.000 abstract description 4
- 239000000872 buffer Substances 0.000 description 46
- 230000005540 biological transmission Effects 0.000 description 18
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
- H04L1/0016—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy involving special memory structures, e.g. look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
技术领域technical field
本发明涉及数据传输领域,尤其涉及一种传输数据包的方法和装置。The present invention relates to the field of data transmission, in particular to a method and device for transmitting data packets.
背景技术Background technique
在Linux操作系统中,I/O操作能使数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输。数据传输过程中CPU开销较大,数据传输能力较低。In the Linux operating system, I/O operations enable data to be transferred between a buffer in the operating system's kernel address space and a buffer defined in the application's address space. In the process of data transmission, the CPU overhead is large, and the data transmission capacity is low.
现有一种零拷贝传输数据的方法,可以包括以下两个步骤:There is a method for zero-copy data transmission, which may include the following two steps:
1)创建有效的用户级通信接口,即应用程序直接将数据从通信接口发送出去或接收进来,消除系统内核中不必要的拷贝过程;1) Create an effective user-level communication interface, that is, the application program directly sends or receives data from the communication interface, eliminating unnecessary copying processes in the system kernel;
2)路由器的入端到出端的直接数据传输,即接收的报文只经过一次存储器缓冲,而缓冲队列中的报文经过必要的控制信息处理后,直接传送到输出端口发送出去,实现报文快速转发。2) Direct data transmission from the input end to the output end of the router, that is, the received message is only buffered once in the memory, and the message in the buffer queue is directly sent to the output port after processing the necessary control information to realize the message Fast forwarding.
这种现有的零拷贝传输数据的方法通常对数据包随机存储,使得存储数据包的位置分散,在传输过程中容易出现丢包的情况。This existing zero-copy data transmission method usually randomly stores data packets, so that the locations where data packets are stored are scattered, and packet loss is prone to occur during transmission.
如何降低传输数据包的丢包率,是本申请所要解决的技术问题。How to reduce the packet loss rate of transmission data packets is the technical problem to be solved by this application.
发明内容SUMMARY OF THE INVENTION
本申请实施例的目的是提供一种传输数据包的方法和装置,用以解决传输数据包的丢包率高的问题。The purpose of the embodiments of the present application is to provide a method and apparatus for transmitting data packets, so as to solve the problem of high packet loss rate of transmitting data packets.
第一方面,提供了一种传输数据包的方法,包括:In a first aspect, a method for transmitting data packets is provided, including:
根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;At least one target block in the user layer is determined according to at least one data packet received by the network layer and a ring-shaped preset block queue in the kernel layer, wherein when the number of the determined target blocks is multiple, multiple the target block is adjacent in the preset block queue;
将所述至少一个数据包存储至所述至少一个目标区块中。The at least one data packet is stored in the at least one target block.
第二方面,一种传输数据包的装置,包括:In a second aspect, an apparatus for transmitting data packets, comprising:
确定模块,根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;The determining module determines at least one target block in the user layer according to at least one data packet received by the network layer and the annular preset block queue in the kernel layer, wherein, when the number of the determined target blocks is multiple , a plurality of the target blocks are adjacent in the preset block queue;
存储模块,将所述至少一个数据包存储至所述至少一个目标区块中。The storage module stores the at least one data packet in the at least one target block.
第三方面,提供了一种电子设备,包括处理器、存储器及存储在该存储器上并可在该处理器上运行的计算机程序,该计算机程序被该处理器执行时实现如第一方面该的方法的步骤。In a third aspect, an electronic device is provided, comprising a processor, a memory, and a computer program stored on the memory and executable on the processor, the computer program being executed by the processor to implement the method described in the first aspect steps of the method.
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面该的方法的步骤。In a fourth aspect, a computer-readable storage medium is provided, and a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the method of the first aspect are implemented.
在本申请实施例中,根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;将所述至少一个数据包存储至所述至少一个目标区块中。本发明实施例的方案,能保证存储数据包的目标区块符合预设区块队列,使存储的数据包的物理地址在逻辑上连续,避免逻辑地址分散导致的丢包问题,降低丢包概率。In the embodiment of the present application, at least one target block in the user layer is determined according to at least one data packet received by the network layer and a ring-shaped preset block queue in the kernel layer, wherein when the determined number of target blocks is When there are more than one, a plurality of the target blocks are adjacent in the preset block queue; and the at least one data packet is stored in the at least one target block. The solution of the embodiment of the present invention can ensure that the target block of the stored data packet conforms to the preset block queue, so that the physical addresses of the stored data packet are logically continuous, avoid the problem of packet loss caused by the dispersion of logical addresses, and reduce the probability of packet loss. .
附图说明Description of drawings
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:The accompanying drawings described herein are used to provide further understanding of the present invention and constitute a part of the present invention. The exemplary embodiments of the present invention and their descriptions are used to explain the present invention and do not constitute an improper limitation of the present invention. In the attached image:
图1a是本申请的一种传输数据包的方法流程示意图之一;Fig. 1a is one of the schematic flow charts of a method for transmitting data packets of the present application;
图1b是本申请的一种传输数据包的逻辑结构示意图;1b is a schematic diagram of the logical structure of a transmission data packet of the present application;
图1c是本申请的预设区块队列逻辑结构示意图;1c is a schematic diagram of the logical structure of the preset block queue of the present application;
图2是本申请的一种传输数据包的方法流程示意图之二;2 is the second schematic flow diagram of a method for transmitting a data packet of the present application;
图3是本申请的一种传输数据包的方法流程示意图之三;3 is the third schematic flow chart of a method for transmitting data packets according to the present application;
图4是本申请的一种传输数据包的方法流程示意图之四;4 is the fourth schematic flow chart of a method for transmitting data packets according to the present application;
图5是本申请的一种传输数据包的方法流程示意图之五;5 is the fifth schematic flow chart of a method for transmitting data packets according to the present application;
图6是本申请的一种传输数据包的方法流程示意图之六;6 is the sixth schematic flow chart of a method for transmitting data packets of the present application;
图7是本申请的一种传输数据包的方法流程示意图之七;7 is the seventh schematic flow chart of a method for transmitting data packets according to the present application;
图8是本申请的一种传输数据包的方法流程示意图之八;FIG. 8 is the eighth schematic flow chart of a method for transmitting data packets according to the present application;
图9是本申请的一个电子设备的结构示意图。FIG. 9 is a schematic structural diagram of an electronic device of the present application.
具体实施方式Detailed ways
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本申请中附图编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序,具体执行顺序以说明书中描述为准。The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, but not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present invention. The numbers of the drawings in this application are only used to distinguish each step in the solution, and are not used to limit the execution sequence of each step, and the specific execution sequence is subject to the description in the specification.
在现有技术中,典型的零拷贝数据传输架构包含网卡层、内核层、用户层。零拷贝方案中,用户层与网卡层直接交互,避免了内核层复制传输所需的资源开销,达到了零拷贝的目标。In the prior art, a typical zero-copy data transmission architecture includes a network card layer, a kernel layer, and a user layer. In the zero-copy scheme, the user layer interacts directly with the network card layer, which avoids the resource overhead required for replication and transmission at the kernel layer and achieves the goal of zero-copy.
由于当前高速网络环境下,数据包数量多、容量大,现有的零拷贝技术对抓到的数据包采取随机存储的方法,因此使得数据包存储的位置往往是分散的,这对入侵检测的后续工作读数据包以及分析数据包造成了不便。另外,由于数据包是分散存储的,丢包的概率往往较大,用户进程最终获取的数据包有可能是不完整的。Due to the large number of data packets and large capacity in the current high-speed network environment, the existing zero-copy technology adopts a random storage method for the captured data packets, so the storage locations of data packets are often scattered, which is very important for intrusion detection. Subsequent work reading packets and analyzing packets creates inconvenience. In addition, since the data packets are stored in a scattered manner, the probability of packet loss is often high, and the data packets finally obtained by the user process may be incomplete.
针对现有技术中存在的问题,本申请提供一种传输数据包的方法,如图1a所示,包括以下步骤:In view of the problems existing in the prior art, the present application provides a method for transmitting data packets, as shown in Figure 1a, comprising the following steps:
S11:根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;S11: Determine at least one target block in the user layer according to the at least one data packet received by the network layer and the annular preset block queue in the kernel layer, wherein, when the number of the determined target blocks is multiple, A plurality of the target blocks are adjacent in the preset block queue;
S12:将所述至少一个数据包存储至所述至少一个目标区块中。S12: Store the at least one data packet in the at least one target block.
参见图1b示出的结构,本申请提供的方案适用于包含有网络层Z、内核层Y和用户层X的传输架构。Referring to the structure shown in FIG. 1b, the solution provided in this application is suitable for a transmission architecture including a network layer Z, a kernel layer Y and a user layer X.
其中,用户层X(User)中包括至少一个缓冲区N,当用户层X包括多个缓冲区N时,每个缓冲区N的大小可以不同,多个缓冲区N的物理位置可以不连续。根据多个缓冲区N的位置、大小,可以预先将用户层X中的缓冲区N划分成多个缓冲区块,较优的,每个缓冲区块的容量相等。随后,可以为每个缓冲区块建立唯一的描述符,该描述符用以表征缓冲区块。The user layer X (User) includes at least one buffer N. When the user layer X includes multiple buffers N, the size of each buffer N may be different, and the physical locations of the multiple buffers N may be discontinuous. According to the positions and sizes of the multiple buffers N, the buffer N in the user layer X may be divided into multiple buffer blocks in advance. Preferably, the capacity of each buffer block is equal. Subsequently, a unique descriptor can be established for each buffer block, which is used to characterize the buffer block.
另外,本方案中的用户层X也可以视为应用程序的一部分,用户层X中的缓冲区N可以是与应用程序关联的可存储数据的区域。In addition, the user layer X in this solution can also be regarded as a part of the application program, and the buffer N in the user layer X can be an area associated with the application program that can store data.
内核层Y(Kernel)的功能是实现网络层与用户层X之间的数据传输。该内核层Y中预先设置有一个环形的预设区块队列M,该预设区块队列M也可以称为空闲队列。该预设区块队列M中包括多个能够表征用户层X中可以存放数据的缓冲区块的标识符,具体的,这些标识符可以是上述区块的描述符。上述预设区块队列M中的每一项均包括一个上述区块的描述符。较优的,在预设区块队列M中不会存在两个或两个以上的相同的区块描述符。The function of the kernel layer Y (Kernel) is to realize the data transmission between the network layer and the user layer X. A ring-shaped preset block queue M is preset in the kernel layer Y, and the preset block queue M may also be called an idle queue. The preset block queue M includes a plurality of identifiers that can represent buffer blocks in the user layer X that can store data. Specifically, these identifiers may be the descriptors of the above-mentioned blocks. Each item in the above-mentioned predetermined block queue M includes a descriptor of the above-mentioned block. Preferably, there will not be two or more identical block descriptors in the preset block queue M.
网络层Z(Network Information Center,NIC)中可以包含接收环(在图1b中未示出),该接收环的内容与内核层Y中的预设区块队列M同步。网络层Z根据接收环中的信息将从网络上接收的数据包O直接传输到用户层X的缓冲区中。The network layer Z (Network Information Center, NIC) may contain a receive ring (not shown in FIG. 1b ), and the content of the receive ring is synchronized with the preset block queue M in the kernel layer Y. The network layer Z directly transmits the data packet O received from the network to the buffer of the user layer X according to the information in the receiving ring.
具体的,可以根据网络层Z中接收的数据包O的容量确定目标区块的数量,当数据包的容量较大时,确定的目标区块的数量可以较多。在确定目标区块的数量之后,可以从预设区块队列M中选取上述数量的目标区块的描述符。当上述数量大于1时,从预设区块队列M中选取的描述符是相邻的。Specifically, the number of target blocks can be determined according to the capacity of the data packet O received in the network layer Z, and when the capacity of the data packet is large, the determined number of target blocks can be larger. After the number of target blocks is determined, descriptors of the above-mentioned number of target blocks can be selected from the preset block queue M. When the above-mentioned number is greater than 1, the descriptors selected from the preset block queue M are adjacent.
如图1c所示,图中示出了预设区块队列的逻辑结构示意图。该预设区块队列中包括m1、m2、m3、m4、m5、m6、m7、m8共8个与缓冲区块对应的描述符。As shown in FIG. 1c, the figure shows a schematic diagram of the logical structure of the preset block queue. The preset block queue includes m 1 , m 2 , m 3 , m 4 , m 5 , m 6 , m 7 , and m 8 , a total of 8 descriptors corresponding to the buffer blocks.
假设网络层根据接收到的数据包确定目标区块的数量是1,则基于图1c示出的预设区块队列,选取的描述符可以是m1。假设网络层根据接收到的数据包确定目标区块的数量是3,则基于图1c示出的预设区块队列,选取的描述符可以是m1、m2、m3。实际上,可以根据实际情况预先在预设区块队列中设定选取描述符的起始位置。例如,将图1c中示出的虚线框所示的m1描述符所在的位置设定为选取描述符的起始位置,则随后根据确定的目标区块的数量,从虚线框所示的位置沿预设方向选取连续的描述符。在本实施例中,预设方向可以为顺时针方向。Assuming that the network layer determines that the number of target blocks is 1 according to the received data packet, the selected descriptor may be m 1 based on the preset block queue shown in FIG. 1c . Assuming that the network layer determines that the number of target blocks is 3 according to the received data packets, then based on the preset block queue shown in FIG. 1c , the selected descriptors may be m 1 , m 2 , and m 3 . In fact, the starting position of the selection descriptor can be preset in the preset block queue according to the actual situation. For example, the position of the m 1 descriptor shown in the dashed box shown in FIG. 1c is set as the starting position of the selection descriptor, then according to the determined number of target blocks, from the position shown in the dashed box Picks consecutive descriptors along a preset direction. In this embodiment, the preset direction may be a clockwise direction.
在实际应用过程中,网络层能连续接收多个数据包。假设网络层依次接收了O1、O2、O3共三个数据包。同时,假设每个预设区块队列中的区块能存储一个数据包,则确定的目标区块的数量为三个。基于图1c示出的预设区块队列结构,选取的三个目标区块的描述符可以为m1、m2、m3。随后,网络层可以将数据包O1传输至描述符m1对应的目标区块内,将数据包O2传输至描述符m2对应的目标区块内,将数据包O3传输至描述符m3对应的目标区块内。In the actual application process, the network layer can continuously receive multiple data packets. It is assumed that the network layer receives three packets of O 1 , O 2 , and O 3 in sequence. Meanwhile, assuming that each block in the preset block queue can store one data packet, the number of target blocks determined is three. Based on the preset block queue structure shown in FIG. 1 c , the descriptors of the three selected target blocks may be m 1 , m 2 , and m 3 . Subsequently, the network layer can transmit the data packet O1 to the target block corresponding to the descriptor m1 , transmit the data packet O2 to the target block corresponding to the descriptor m2 , and transmit the data packet O3 to the descriptor within the target block corresponding to m3 .
另外,网络层也可以先接收数据包O1,并将数据包O1传输至描述符m1对应的目标区块之后再接收数据包O2。In addition, the network layer may also receive the data packet O 1 first , transmit the data packet O 1 to the target block corresponding to the descriptor m 1 , and then receive the data packet O 2 .
本申请提供的方案,在确定至少一个目标区块之后,网络层直接将数据包传输至用户层中的上述至少一个目标区块内。能保证存储数据包的目标区块符合预设区块队列,使存储的数据包的物理地址在逻辑上连续,应用程序能够基于预设区块队列确定存储数据包的物理位置,避免逻辑地址分散导致的丢包问题,降低丢包概率。相比较下,现有技术中网络层将数据包先从网络层的存储单元传输到内核的某块缓冲区,然后中断处理程序将这个内核层中的数据包推入上层的协议栈。这种传输数据的方式的缺点主要在于多次的拷贝和系统调用。本申请提供的方案中网络层根据接收环传输数据包,能根据预设区块队列中的描述符确定位于用户层的目标区块,然后直接将数据包从网络层传到用户层,数据包不再进入内核的协议栈。In the solution provided by the present application, after at least one target block is determined, the network layer directly transmits the data packet to the above-mentioned at least one target block in the user layer. It can ensure that the target block of the stored data packet conforms to the preset block queue, so that the physical address of the stored data packet is logically continuous, and the application can determine the physical location of the stored data packet based on the preset block queue to avoid logical address dispersion The resulting packet loss problem reduces the probability of packet loss. In contrast, in the prior art, the network layer first transmits the data packet from the storage unit of the network layer to a certain buffer of the kernel, and then the interrupt handler pushes the data packet in the kernel layer into the upper-layer protocol stack. The disadvantage of this way of transferring data mainly lies in multiple copies and system calls. In the solution provided by this application, the network layer transmits data packets according to the receiving ring, and can determine the target block located at the user layer according to the descriptor in the preset block queue, and then directly transmits the data packets from the network layer to the user layer. No longer enter the kernel's protocol stack.
较优的,执行以上步骤之前,需要先对用户层、内核层以及网络层执行初始化操作。基于上述实施例提供的方法,在执行上述步骤S11之前,如图2所示,本申请提供的方法还包括:Preferably, before performing the above steps, it is necessary to perform initialization operations on the user layer, the kernel layer and the network layer. Based on the method provided by the foregoing embodiment, before performing the foregoing step S11, as shown in FIG. 2, the method provided by the present application further includes:
S101:在所述用户层建立至少一个区块,生成包含所述至少一个区块和所述至少一个区块的物理地址的映射关系的区块地址映射表;S101: establish at least one block at the user layer, and generate a block address mapping table that includes the mapping relationship between the at least one block and the physical address of the at least one block;
S102:根据建立的所述至少一个区块在所述内核层中生成所述预设区块队列。S102: Generate the preset block queue in the kernel layer according to the established at least one block.
具体的,先对用户层执行初始化操作。首先,确定用户层中至少一个可以用于存储数据包的缓冲区,将至少一个缓冲区划分为多个缓冲区块(UserBuffer)。缓冲区块的大小及数量可以根据实际需求预先设定。随后,初始化用户层的地址映射表,该地址映射表的大小与缓冲区块数量相关。地址映射表包括上述缓冲区块与缓冲区块的物理地址的对应关系。Specifically, an initialization operation is performed on the user layer first. First, at least one buffer in the user layer that can be used to store data packets is determined, and the at least one buffer is divided into multiple buffer blocks (UserBuffer). The size and number of buffer blocks can be preset according to actual needs. Subsequently, the address mapping table of the user layer is initialized, and the size of the address mapping table is related to the number of buffer blocks. The address mapping table includes the above-mentioned correspondence between the buffer blocks and the physical addresses of the buffer blocks.
在初始化用户层之后,对内核层执行初始化操作。建立环形的预设区块队列(FREEQ),该队列中的每一项均对应于用户层中的一个可以存储数据的缓冲区块。具体的,定义FREEQ为空闲链表,对FREEQ进行初始化,赋值FREE[i]=i;使得FREE(i)的指针指向UserBuffer[i]。After initializing the user layer, perform initialization operations on the kernel layer. A ring-shaped preset block queue (FREEQ) is established, and each item in the queue corresponds to a buffer block in the user layer that can store data. Specifically, define FREEQ as a free linked list, initialize FREEQ, and assign FREE[i]=i; make the pointer of FREE(i) point to UserBuffer[i].
本申请提供的上述方案,能实现对用户层和内核层的初始化操作,使内核层中的预设区块队列与用户层中的区块相关联。根据内核层中的预设区块队列即可获知用户层中哪些区块可以用于存放数据,以便随后网络层将数据包存储在用户层中空闲的缓冲区块中。The above solution provided by the present application can realize the initialization operation on the user layer and the kernel layer, so that the preset block queue in the kernel layer is associated with the blocks in the user layer. According to the preset block queue in the kernel layer, it can be known which blocks in the user layer can be used to store data, so that the network layer can store the data packets in the free buffer blocks in the user layer.
基于上述实施例提供的方法,较优的,如图3所示,上述步骤S102包括:Based on the method provided by the foregoing embodiment, preferably, as shown in FIG. 3 , the foregoing step S102 includes:
S1021:生成与所述至少一个区块一一对应的描述符,所述描述符包括与所述描述符对应的区块的块符;S1021: Generate a descriptor corresponding to the at least one block one-to-one, and the descriptor includes a block symbol of the block corresponding to the descriptor;
S1022:在所述内核层中生成包含至少一个描述符的预设区块队列。S1022: Generate a preset block queue including at least one descriptor in the kernel layer.
具体的,用户层中的每一个缓冲区块对应一个块符,将每一个块符填充到与缓冲区块对应的描述符的偏移量域中。随后,将这些与缓冲区块对应的描述符环形排列编入上述预设区块队列(FREEQ)中,使预设区块队列中的每一项都对应一个用户层中可以用于存储数据的缓冲区块。Specifically, each buffer block in the user layer corresponds to a block symbol, and each block symbol is filled into the offset field of the descriptor corresponding to the buffer block. Subsequently, these descriptors corresponding to the buffer blocks are arranged in a circular arrangement into the above-mentioned preset block queue (FREEQ), so that each item in the preset block queue corresponds to a user layer that can be used to store data. buffer block.
本申请提供的上述方案能基于缓冲区块的块符生成与缓冲区块对应的描述符,使预设区块队列中的每一项都与用户层中的一个缓冲区块对应。The above solution provided by the present application can generate a descriptor corresponding to the buffer block based on the block identifier of the buffer block, so that each item in the preset block queue corresponds to a buffer block in the user layer.
基于上述实施例提供的方法,较优的,在上述步骤S102之后,如图4所示,本申请提供的方法还包括:Based on the method provided by the above embodiment, preferably, after the above step S102, as shown in FIG. 4, the method provided by the present application further includes:
S103:根据建立的所述至少一个区块在所述内核层中生成物理地址表,所述物理地址表包括每个建立的区块与所述每个建立的区块的物理地址的对应关系;S103: generate a physical address table in the kernel layer according to the established at least one block, and the physical address table includes a correspondence between the physical addresses of each established block and each established block;
S104:根据所述预设区块队列和所述物理地址表在所述网络层中生成数据域,所述数据域包含指向所述预设区块队列的指针和所述物理地址表的地址。S104: Generate a data field in the network layer according to the preset block queue and the physical address table, where the data field includes a pointer to the preset block queue and an address of the physical address table.
具体的,在初始化内核层的过程中,还可以在内核层中建立物理地址表,该物理地址表与上述预设区块队列相关联。该物理地址表中包括缓冲区块与缓冲区块物理地址的对应关系。Specifically, in the process of initializing the kernel layer, a physical address table may also be established in the kernel layer, and the physical address table is associated with the above-mentioned preset block queue. The physical address table includes the correspondence between the buffer blocks and the physical addresses of the buffer blocks.
本申请提供的上述方案,能在内核层中建立与预设区块队列相关联的物理地址表,该物理地址表包括预设区块队列中每个区块的物理地址,以便网络层根据预设区块队列和物理地址表确定可以用于存放数据的缓冲区块,并且确定缓冲区块的物理地址,进而传输接收到的数据。The above solution provided by the present application can establish a physical address table associated with the preset block queue in the kernel layer, and the physical address table includes the physical address of each block in the preset block queue, so that the network layer can use the preset block queue according to the preset block queue. Let the block queue and the physical address table determine the buffer block that can be used to store data, and determine the physical address of the buffer block, and then transmit the received data.
随后,对网络层进行初始化操作。在网络层中初始化数据域,将内核层中的预设区块队列的指针和物理地址表中的地址填充到网络层中的数据域中。使网络层能根据内核层中的预设区块队列和物理地址表确定能用于存储数据的缓冲区块及区块的物理地址。Then, initialize the network layer. The data field is initialized in the network layer, and the pointer of the preset block queue in the kernel layer and the address in the physical address table are filled into the data field in the network layer. The network layer can determine the buffer block and the physical address of the block that can be used to store data according to the preset block queue and the physical address table in the kernel layer.
基于上述实施例提供的方法,较优的,在上述步骤S12之前,如图5所示,还包括:Based on the method provided by the foregoing embodiment, preferably, before the foregoing step S12, as shown in FIG. 5, the method further includes:
S105:将所述网络层接收的至少一个数据包的大小写入所述数据域;S105: Write the size of at least one data packet received by the network layer into the data field;
其中,上述步骤S12,包括:Wherein, the above-mentioned step S12 includes:
S121:根据所述网络层的数据域,确定所述预设区块队列中的目标区块的描述符;S121: Determine the descriptor of the target block in the preset block queue according to the data field of the network layer;
S122:根据所述网络层的数据域,确定所述物理地址表中的与所述目标区块的描述符对应的物理地址;S122: Determine the physical address corresponding to the descriptor of the target block in the physical address table according to the data field of the network layer;
S123:根据所述网络层的数据域中的至少一个数据包的大小,将所述至少一个数据包存储至所述目标区块中。S123: Store the at least one data packet in the target block according to the size of the at least one data packet in the data field of the network layer.
具体的,在初始化上述用户层、内核层以及网络层之后,网络层执行捕包。待存储的数据包到达网络层之后,发出一次硬件中断,收包中断处理程序。Specifically, after initializing the user layer, the kernel layer and the network layer, the network layer performs packet capture. After the data packet to be stored reaches the network layer, a hardware interrupt is issued, and the packet receiving interrupt handler.
随后,基于网络层的数据域,确定预设区块队列中的可用的目标区块的描述符,解析该描述符得到目标区块的块号和物理地址。接着,将该目标区块的物理地址写入网络层的数据域中,基于数据包的大小对数据包进行传输。Then, based on the data field of the network layer, the descriptor of the available target block in the preset block queue is determined, and the descriptor is parsed to obtain the block number and physical address of the target block. Next, the physical address of the target block is written into the data field of the network layer, and the data packet is transmitted based on the size of the data packet.
本申请提供的方案能将网络层接收到的数据包直接传输到用户层中的缓冲区块中。在传输的过程中,网络层根据内核层中的预设区块队列和物理地址列表确定能用于存放接收到的数据包的至少一个目标区块,保证确定的目标区块能用于存放接收到的数据包,避免在传输过程中丢包或溢出等情况。The solution provided by this application can directly transmit the data packet received by the network layer to the buffer block in the user layer. During the transmission process, the network layer determines at least one target block that can be used to store the received data packets according to the preset block queue and physical address list in the kernel layer, to ensure that the determined target block can be used to store the received data packets. to avoid packet loss or overflow during transmission.
在网络层将数据包传输至用户层中的目标区块之后,用户层的应用程序可以对目标区块中存储的数据包进行解析。具体的,用户层的应用程序可以监听预设区块队列中描述符的数量,一旦预设区块队列中描述符数量变化,则表明用户层中有缓冲区块存储了新的数据。用户层的应用程序可以通过区块地址映射表中的指针找到存放数据的目标区块地址,进而对该地址的目标区块中的数据进行解析。After the network layer transmits the data packet to the target block in the user layer, the application program in the user layer can parse the data packet stored in the target block. Specifically, the application program of the user layer can monitor the number of descriptors in the preset block queue. Once the number of descriptors in the preset block queue changes, it indicates that there are buffer blocks in the user layer that store new data. The application program of the user layer can find the target block address where the data is stored through the pointer in the block address mapping table, and then parse the data in the target block of the address.
本申请提供的技术方案能将数据包从网络层直接传输至用户层,使用户层中的应用程序直接解析目标区块中的数据。在传输的过程中,数据包无需进入内核层,实现零拷贝。而且,本申请提供的方案能有效降低系统的负担,提高捕包的效率,避免丢包、溢出等情况。。基于上述实施例提供的方法,较优的,所述预设区块队列包括至少一个空闲的区块的描述符;The technical solution provided by the present application can directly transmit data packets from the network layer to the user layer, so that the application program in the user layer can directly parse the data in the target block. In the process of transmission, data packets do not need to enter the kernel layer to achieve zero copy. Moreover, the solution provided by the present application can effectively reduce the burden of the system, improve the efficiency of packet capture, and avoid situations such as packet loss and overflow. . Based on the method provided by the above embodiment, preferably, the preset block queue includes a descriptor of at least one idle block;
如图6所示,上述步骤S11,包括:As shown in Figure 6, the above step S11 includes:
S111:根据所述网络层接收的至少一个数据包确定待存储的数据包的大小;S111: Determine the size of the data packet to be stored according to at least one data packet received by the network layer;
S112:根据所述待存储的数据包的大小确定目标区块的数量;S112: determine the number of target blocks according to the size of the data packet to be stored;
S113:根据所述预设区块队列中的所述目标区块的描述符确定每个目标区块在所述用户层的物理地址。S113: Determine the physical address of each target block in the user layer according to the descriptor of the target block in the preset block queue.
在本申请提供的实施例中,网络层可以预先接收多个数据包,然后将多个数据包传输到用户层中的目标区块中。上述待存储的数据包的大小可以为网络层接收的至少一个数据包的容量的总和。In the embodiments provided in this application, the network layer may receive multiple data packets in advance, and then transmit the multiple data packets to the target block in the user layer. The size of the data packet to be stored may be the sum of the capacity of at least one data packet received by the network layer.
较优的,预先将用户层中的缓冲区划分成大小相等的若干个缓冲区块,根据划分的缓冲区块的大小和待存储的数据包的大小确定目标区块的数量。使确定的数量的目标区块的总容量大于或等于上述待存储的数据包的大小。Preferably, the buffer in the user layer is divided into several buffer blocks of equal size in advance, and the number of target blocks is determined according to the size of the divided buffer block and the size of the data packet to be stored. Make the total capacity of the determined number of target blocks greater than or equal to the size of the data packet to be stored.
从预设区块队列中取出上述数量的区块描述符,根据这些描述符确定上述数量的目标区块的物理地址,网络层根据上述目标区块的物理地址将接收的至少一个数据包传输至用户层的目标区块内。The above-mentioned number of block descriptors are taken out from the preset block queue, the physical addresses of the above-mentioned target blocks are determined according to these descriptors, and the network layer transmits at least one received data packet to the In the target block of the user layer.
通过本申请提供的技术方案,网络层能对多个数据包实现批量传输,确定的目标区块的数量适应于待存储的数据包,避免目标区块数量过少导致数据溢出或者目标区块数量过多造成资源浪费的情况。Through the technical solution provided in this application, the network layer can realize batch transmission of multiple data packets, and the determined number of target blocks is adapted to the data packets to be stored, so as to avoid data overflow or the number of target blocks caused by too few target blocks. Excessive waste of resources.
基于上述实施例提供的方法,较优的,上述步骤S12,包括:Based on the method provided by the foregoing embodiment, preferably, the foregoing step S12 includes:
当确定的目标区块的数量为多个时,根据所述每个目标区块在所述用户层的物理地址,将所述待存储的数据包按照所述预设区块队列的顺序存储至确定的多个目标区块中。When the number of determined target blocks is multiple, according to the physical address of each target block in the user layer, the data packets to be stored are stored in the order of the preset block queue to in multiple target blocks determined.
本申请实施例中,确定的目标区块的数量为多个,网络层按照预设区块队列的顺序将数据包传输至用户层的目标区块内。具体的,假设网络层接收2个数据包,第一数据包大小为17.3M,第二数据包大小为8.2M。预设每个缓存区块的容量为10M,则根据待存储区块的大小,确定目标区块的数量为3个,依次为第一目标区块、第二目标区块和第三目区块。从预设区块队列中获取3个目标区块的描述符,根据获取的描述符确定3个目标区块的物理地址。随后,将第一数据包划分为两部分,第一部分为10M,第二部分为7.3M。将第一数据包的第一部分传输至第一目标区块内,将第一数据包的第二部分传输至第二目标区块内,将第二数据包传输至第三目标区块内,从而实现对数据包传输。In the embodiment of the present application, the determined number of target blocks is multiple, and the network layer transmits the data packets to the target blocks of the user layer according to the sequence of the preset block queue. Specifically, it is assumed that the network layer receives two data packets, the size of the first data packet is 17.3M, and the size of the second data packet is 8.2M. The preset capacity of each cache block is 10M, then according to the size of the block to be stored, the number of target blocks is determined to be 3, which are the first target block, the second target block and the third target block. . Descriptors of three target blocks are obtained from the preset block queue, and physical addresses of the three target blocks are determined according to the obtained descriptors. Then, the first data packet is divided into two parts, the first part is 10M, and the second part is 7.3M. The first part of the first data packet is transferred into the first target block, the second part of the first data packet is transferred into the second target block, and the second data packet is transferred into the third target block, thereby Realize the transmission of data packets.
通过本申请提供的方案,能将网络层接收的数据包按照预设区块队列的顺序传输存储在用户层的目标区块内。便于应用程序可以根据预设区块队列确定读取目标区块的顺序,避免应用程序读取到多个不完整的数据包,提高应用程序读取数据包的效率。Through the solution provided by the present application, the data packets received by the network layer can be transmitted and stored in the target block of the user layer according to the sequence of the preset block queue. It is convenient for the application program to determine the order of reading target blocks according to the preset block queue, to avoid the application program from reading multiple incomplete data packets, and to improve the efficiency of the application program to read the data packets.
基于上述实施例提供的方法,较优的,在上述步骤S12之后,如图7所示,还包括:Based on the method provided by the above-mentioned embodiment, preferably, after the above-mentioned step S12, as shown in FIG. 7, the method further includes:
S114:将存储所述至少一个数据包的所述至少一个目标区块的物理地址写入所述用户层的区块地址映射表;S114: write the physical address of the at least one target block storing the at least one data packet into the block address mapping table of the user layer;
S115:应用程序根据所述用户层的区块地址映射表解析所述至少一个数据包。S115: The application parses the at least one data packet according to the block address mapping table of the user layer.
本实施例中,用户层中还包括区块地址映射表,该区块地址映射表包括存储了数据包的目标区块与该目标区块的物理地址的对应关系。应用程序可以根据该区块地址映射表确定已经存储了数据包的目标区块及其物理地址,以便读取该目标区块的物理地址,执行对数据包的解析。In this embodiment, the user layer further includes a block address mapping table, and the block address mapping table includes a corresponding relationship between the target block storing the data packet and the physical address of the target block. The application can determine the target block in which the data packet has been stored and its physical address according to the block address mapping table, so as to read the physical address of the target block and perform the analysis of the data packet.
基于上述实施例提供的方法,较优的,在上述步骤S12之后,如图8所示,本申请提供的方法还包括:Based on the method provided by the above embodiment, preferably, after the above step S12, as shown in FIG. 8, the method provided by the present application further includes:
S116:移除所述预设区块队列中的存储所述至少一个数据包的所述至少一个目标区块的描述符;S116: Remove the descriptor of the at least one target block storing the at least one data packet in the preset block queue;
在上述步骤S115之后,还包括:After the above step S115, it also includes:
S117:在所述预设区块队列中添加存储所述至少一个数据包的至少一个目标区块的描述符。S117: Add a descriptor for storing at least one target block of the at least one data packet to the preset block queue.
本实施例将存储了数据包的目标区块的描述符从预设区块队列中去除,使预设区块队列中的描述符表征的缓冲区块均是未存储数据的缓冲区块。当应用程序解析了目标区块中的数据包之后,将原存储了数据包的目标区块的描述符添加回预设区块队列,使目标区块队列能继续存储网络层接收到的新的数据包。In this embodiment, the descriptor of the target block in which the data packet is stored is removed from the preset block queue, so that the buffer blocks represented by the descriptors in the preset block queue are all buffer blocks that do not store data. After the application parses the data packets in the target block, it adds the descriptor of the target block that originally stored the data packet back to the preset block queue, so that the target block queue can continue to store the new data received by the network layer. data pack.
本申请提供的方案,能在目标区块存储新的数据包之后将目标区块的描述符从预设区块队列中去除,避免目标区块中存储的数据包在应用程序解析之前被新的数据覆盖。另外,在应用程序解析目标区块中的数据之后,将目标区块的描述符添加回预设区块队列中,保证预设区块队列中一直有能够存储数据的目标区块的描述符。The solution provided by this application can remove the descriptor of the target block from the preset block queue after the target block stores a new data packet, so as to avoid the data packet stored in the target block from being parsed by a new application program. Data coverage. In addition, after the application program parses the data in the target block, the descriptor of the target block is added back to the preset block queue to ensure that the preset block queue always has the descriptor of the target block capable of storing data.
为了解决现有技术中存在的上述问题,本申请还提供一种传输数据包的装置90,如图9所示,包括:In order to solve the above problems existing in the prior art, the present application also provides a
确定模块91,根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;The determining
存储模块92,将所述至少一个数据包存储至所述至少一个目标区块中。The
在本申请实施例中,根据网络层接收的至少一个数据包和内核层中的环形的预设区块队列,确定用户层中的至少一个目标区块,其中,当确定的目标区块的数量为多个时,多个所述目标区块在所述预设区块队列中相邻;将所述至少一个数据包存储至所述至少一个目标区块中。本发明实施例的方案,能保证存储数据包的目标区块符合预设区块队列,使存储的数据包的物理地址在逻辑上连续,避免逻辑地址分散导致的丢包问题,降低丢包概率。In the embodiment of the present application, at least one target block in the user layer is determined according to at least one data packet received by the network layer and a ring-shaped preset block queue in the kernel layer, wherein when the determined number of target blocks is When there are more than one, a plurality of the target blocks are adjacent in the preset block queue; and the at least one data packet is stored in the at least one target block. The solution of the embodiment of the present invention can ensure that the target block of the stored data packet conforms to the preset block queue, so that the physical addresses of the stored data packet are logically continuous, avoid the problem of packet loss caused by the dispersion of logical addresses, and reduce the probability of packet loss. .
优选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述一种图像处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。Preferably, an embodiment of the present invention further provides an electronic device, including a processor, a memory, a computer program stored in the memory and running on the processor, and the computer program implements the above-mentioned image when executed by the processor The various processes of the processing method embodiments can achieve the same technical effect, and are not repeated here to avoid repetition.
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述一种图像处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。Embodiments of the present invention further provide a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium. When the computer program is executed by a processor, each process of the above-mentioned image processing method embodiment can be achieved, and can achieve the same In order to avoid repetition, the technical effect will not be repeated here. The computer-readable storage medium is, for example, a read-only memory (Read-Only Memory, ROM for short), a random access memory (Random Access Memory, RAM for short), a magnetic disk, or an optical disk.
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。It should be noted that, herein, the terms "comprising", "comprising" or any other variation thereof are intended to encompass non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements, It also includes other elements not expressly listed or inherent to such a process, method, article or apparatus. Without further limitation, an element qualified by the phrase "comprising a..." does not preclude the presence of additional identical elements in a process, method, article or apparatus that includes the element.
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。From the description of the above embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus a necessary general hardware platform, and of course hardware can also be used, but in many cases the former is better implementation. Based on this understanding, the technical solutions of the present invention can be embodied in the form of software products in essence or the parts that make contributions to the prior art, and the computer software products are stored in a storage medium (such as ROM/RAM, magnetic disk, CD-ROM), including several instructions to make a terminal (which may be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) execute the methods described in the various embodiments of the present invention.
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。The embodiments of the present invention have been described above in conjunction with the accompanying drawings, but the present invention is not limited to the above-mentioned specific embodiments, which are merely illustrative rather than restrictive. Under the inspiration of the present invention, without departing from the spirit of the present invention and the scope protected by the claims, many forms can be made, which all belong to the protection of the present invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290555.7A CN111817818A (en) | 2019-04-11 | 2019-04-11 | Method and device for transmitting data packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910290555.7A CN111817818A (en) | 2019-04-11 | 2019-04-11 | Method and device for transmitting data packet |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111817818A true CN111817818A (en) | 2020-10-23 |
Family
ID=72843666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910290555.7A Pending CN111817818A (en) | 2019-04-11 | 2019-04-11 | Method and device for transmitting data packet |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111817818A (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101150486A (en) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | A management method for receiving network data of zero copy buffer queue |
CN101198924A (en) * | 2005-02-03 | 2008-06-11 | Level5网络有限公司 | Including descriptor queue empty events in completion events |
CN101707565A (en) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | Method and device for transmitting and receiving zero-copy network message |
CN102467473A (en) * | 2010-11-03 | 2012-05-23 | Tcl集团股份有限公司 | Method and device for transmitting data between user space and kernel |
US20170024132A1 (en) * | 2015-07-22 | 2017-01-26 | Samsung Electronics Co., Ltd. | Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same |
CN107870879A (en) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | A data migration method, an accelerator board, a host computer, and a data migration system |
-
2019
- 2019-04-11 CN CN201910290555.7A patent/CN111817818A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101198924A (en) * | 2005-02-03 | 2008-06-11 | Level5网络有限公司 | Including descriptor queue empty events in completion events |
CN101150486A (en) * | 2007-11-15 | 2008-03-26 | 曙光信息产业(北京)有限公司 | A management method for receiving network data of zero copy buffer queue |
CN101707565A (en) * | 2009-12-04 | 2010-05-12 | 曙光信息产业(北京)有限公司 | Method and device for transmitting and receiving zero-copy network message |
CN102467473A (en) * | 2010-11-03 | 2012-05-23 | Tcl集团股份有限公司 | Method and device for transmitting data between user space and kernel |
US20170024132A1 (en) * | 2015-07-22 | 2017-01-26 | Samsung Electronics Co., Ltd. | Storage device for supporting virtual machine, storage system including the storage device, and method of operating the same |
CN107870879A (en) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | A data migration method, an accelerator board, a host computer, and a data migration system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10218645B2 (en) | Low-latency processing in a network node | |
US7953915B2 (en) | Interrupt dispatching method in multi-core environment and multi-core processor | |
CN108268328B (en) | Data processing device and computer | |
US9313047B2 (en) | Handling high throughput and low latency network data packets in a traffic management device | |
US8005022B2 (en) | Host operating system bypass for packets destined for a virtual machine | |
JP3473975B2 (en) | Network system and communication method in network | |
US7836212B2 (en) | Reflecting bandwidth and priority in network attached storage I/O | |
CN107678835B (en) | Data transmission method and system | |
US7660322B2 (en) | Shared adapter | |
WO2017000593A1 (en) | Packet processing method and device | |
CN114265800B (en) | Interrupt message processing method and device, electronic equipment and readable storage medium | |
EP3563534B1 (en) | Transferring packets between virtual machines via a direct memory access device | |
US11157336B2 (en) | Technologies for extending triggered operations | |
EP3465450A1 (en) | Improving throughput in openfabrics environments | |
US9288163B2 (en) | Low-latency packet receive method for networking devices | |
US20130013755A1 (en) | Diskless pc network communication agent system | |
US11228668B2 (en) | Efficient packet processing for express data paths | |
CN111817818A (en) | Method and device for transmitting data packet | |
US10284501B2 (en) | Technologies for multi-core wireless network data transmission | |
EP3016333B1 (en) | Handling high throughput and low latency network data packets in a traffic management device | |
US11188394B2 (en) | Technologies for synchronizing triggered operations | |
CN113326151A (en) | Inter-process communication method, device, equipment, system and storage medium | |
CN118972354B (en) | Method, device, equipment, medium and program product for real-time processing of telecommunication network element | |
JP2004094931A (en) | Network system and communication method in network | |
CN117955939A (en) | Data type engine to support high performance computing |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201023 |
|
RJ01 | Rejection of invention patent application after publication |