CN107302499A - 无需拷贝报文缓存的nfv协议报文收发方法 - Google Patents
无需拷贝报文缓存的nfv协议报文收发方法 Download PDFInfo
- Publication number
- CN107302499A CN107302499A CN201710499659.XA CN201710499659A CN107302499A CN 107302499 A CN107302499 A CN 107302499A CN 201710499659 A CN201710499659 A CN 201710499659A CN 107302499 A CN107302499 A CN 107302499A
- Authority
- CN
- China
- Prior art keywords
- mbuf
- rte
- address
- data
- packet buffer
- 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.)
- Granted
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种无需拷贝报文缓存的NFV协议报文收发方法,包括:(1)协议栈从内存空间中申请mbuf,并进行初始化;(2)将所述的报文存放在rte_mbuf中;(3)将mbuf中的数据指针指向rte_mbuf中的数据起始地址并赋值;(4)对报文头数据进行处理,并调整当前数据指针的地址偏移;(5)当mbuf被释放时,换算出rte_mbuf的首地址;(6)调用网卡驱动提供的库函数把该缓存释放还给内存池,在调用协议栈提供的库函数释放所述的mbuf。采用该方法,实现了二种不兼容数据缓存块之间在交互过程中的零拷贝传递;报文在模块间传递的过程中,无需额外申请空间或改变数据缓存结构来保存原始缓存地址;避免计算原始缓存到数据起始地址的偏移来正确释放该报文缓存,具有广泛的应用范围。
Description
技术领域
本发明涉及通信技术领域,尤其涉及报文转发技术领域,具体是指一种无需拷贝报文缓存的NFV协议报文收发方法。
背景技术
随着信息技术的日益发展,对协议栈处理报文的吞吐性能的要求也日益提高。在数据报文的收发及数据处理过程中,必不可少的要利用缓存即内存块来存储和传递数据。
在传统的报文处理过程中,报文放置在缓存中间或外部单独分配一块大内存块。现有技术中报文在网卡驱动中存储方式如图1所示;现有技术中报文在协议栈中存储方式如图2所示。
在不同模块间传递数据时要通过数据拷贝实现报文数据的交互,具体的,在网卡驱动收到报文后,其数据通过指针m->pkt.data来存储,需要拷贝到协议栈中分配的2048字节的缓存中,该缓存地址由m_ext.ext_buf保存。
现有技术在跨模块的报文传输中,网卡驱动的缓存结构跟用户态协议栈的缓存结构不匹配时,需要申请新缓存、将数据从老缓存中搬到新缓存中、之后在释放老缓存,这一连串的操作造成性能上的瓶颈问题。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够无需拷贝报文缓存实现NFV协议报文收发的方法。
为了实现上述目的,本发明具有如下构成:
该无需拷贝报文缓存的NFV协议报文接收方法,包括以下步骤:
(1)协议栈从内存空间中申请mbuf,并对其进行初始化;
(2)当网卡驱动接收到报文时,将所述的报文存放在rte_mbuf中;
(3)通过内存映射的方法将所述的mbuf中的数据指针指向所述的rte_mbuf中的数据起始地址,并对数据参数进行赋值;
(4)根据报文在协议栈的处理过程对报文头数据进行处理,在报文首部或当前的可用头区空间内调整当前数据指针的地址偏移;
(5)当所述的mbuf被释放时,通过所述的mbuf中数据指针所保存的地址和rte_mbuf中数据存储地址的偏移量换算出所述的rte_mbuf的首地址;
(6)调用网卡驱动提供的库函数把该缓存释放还给内存池,在调用协议栈提供的库函数释放所述的mbuf。
较佳地,所述的步骤(1)具体包括以下步骤:
(1-1)判断所述的网卡驱动的报文是否被分片,如果是,则继续步骤(1-2),否则。继续步骤(1-3);
(1-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(1-4);
(1-3)从内存空间中申请一个rte_mbuf,继续步骤(1-4);
(1-4)对所述的rte_mbuf进行初始化。
较佳地,所述的步骤(3)与所述的步骤(4)之间还包括以下步骤:
(3-1)将所述的rte_mbuf的首地址通过强制类型转换存放在2048字节簇的首地址处。
更佳地,所述的步骤(5)具体包括以下步骤:
(5-1)找到所述的mbuf中m_ext.ext_buf所指向的字节簇缓存;
(5-2)取出所述的的首地址。
还包括一种无需拷贝报文缓存的NFV协议报文发送方法,包括以下步骤:
(a)在报文走完协议栈的流程后,网卡驱动从内存池中申请rte_mbuf,并对其初始化;
(b)根据内存映射的方法将rte_mbuf中的数据指针指向mbuf中的2048字节簇的起始地址,并对数据参数进行拷贝;
(c)在数据从网卡驱动中发送之后,分别释放所述的rte_mbuf和所述的mbuf。
较佳地,所述的步骤(a)具体包括以下步骤:
(a-1)判断所述的报文是否被分片,如果是,则继续步骤(a-2),否则。继续步骤(a-3)
(a-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(a-4);
(a-3)从内存空间中申请一个rte_mbuf,继续步骤(a-4)
(a-4)对所述的rte_mbuf进行初始化。
较佳地,所述的步骤(b)与所述的步骤(c)之间还包括以下步骤:
(b-1)将所述的2048字节簇缓存块的引用计数加一。
更佳地,所述的步骤(c)具体包括以下步骤:
(c-1)将所述的字节簇缓存块的引用计数减一;
(c-2)调用网卡驱动提供的函数释放所述的rte_mbuf;
(c-3)释放所述的mbuf;
(c-4)判断所述的引用计数是否为1,如果是,则将所述的字节簇缓存释放还给内存空间,否则,将所述的引用计数减一。
采用了该发明中的无需拷贝报文缓存的NFV协议报文收发方法,通过内存地址映射,可以实现二种不兼容数据缓存块之间在交互过程中的零拷贝传递,使得包处理性能与报文长度无关成为可能;报文在模块间传递的过程中,无需额外申请空间或改变数据缓存结构来保存原始缓存地址;利用闲置数据缓存空间来保存原始缓存地址,可以避免计算原始缓存到数据起始地址的偏移来正确释放该报文缓存,极大的方便编程人员的使用,具有广泛的应用范围。
附图说明
图1为现有技术的报文在网卡驱动中存储方式的示意图。
图2为现有技术中报文在协议栈中存储方式的示意图。
图3为本发明的无需拷贝报文缓存的NFV协议报文收发方法的映射数据地址的示意图。
图4为本发明的无需拷贝报文缓存的NFV协议报文收发方法的报文从网卡驱动到协议栈的流程图。
图5为本发明的无需拷贝报文缓存的NFV协议报文发送方法的映射首地址的示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该无需拷贝报文缓存的NFV协议报文接收方法,包括以下步骤:
(1)协议栈从内存空间中申请mbuf,并对其进行初始化;
(2)当网卡驱动接收到报文时,将所述的报文存放在rte_mbuf中;
(3)通过内存映射的方法将所述的mbuf中的数据指针指向所述的rte_mbuf中的数据起始地址,并对数据参数进行赋值;
(4)根据报文在协议栈的处理过程对报文头数据进行处理,在报文首部或当前的可用头区空间内调整当前数据指针的地址偏移;
(5)当所述的mbuf被释放时,通过所述的mbuf中数据指针所保存的地址和rte_mbuf中数据存储地址的偏移量换算出所述的rte_mbuf的首地址;
(6)调用网卡驱动提供的库函数把该缓存释放还给内存池,在调用协议栈提供的库函数释放所述的mbuf。
在一种较佳的实施方式中,所述的步骤(1)具体包括以下步骤:
(1-1)判断所述的网卡驱动的报文是否被分片,如果是,则继续步骤(1-2),否则。继续步骤(1-3);
(1-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(1-4);
(1-3)从内存空间中申请一个rte_mbuf,继续步骤(1-4);
(1-4)对所述的rte_mbuf进行初始化。
在一种较佳的实施方式中,所述的步骤(3)与所述的步骤(4)之间还包括以下步骤:
(3-1)将所述的rte_mbuf的首地址通过强制类型转换存放在2048字节簇的首地址处。
在一种更佳的实施方式中,所述的步骤(5)具体包括以下步骤:
(5-1)找到所述的mbuf中m_ext.ext_buf所指向的字节簇缓存;
(5-2)取出所述的的首地址。
还包括一种无需拷贝报文缓存的NFV协议报文发送方法,包括以下步骤:
(a)在报文走完协议栈的流程后,网卡驱动从内存池中申请rte_mbuf,并对其初始化;
(b)根据内存映射的方法将rte_mbuf中的数据指针指向mbuf中的2048字节簇的起始地址,并对数据参数进行拷贝;
(c)在数据从网卡驱动中发送之后,分别释放所述的rte_mbuf和所述的mbuf。
在一种较佳的实施方式中,所述的步骤(a)具体包括以下步骤:
(a-1)判断所述的报文是否被分片,如果是,则继续步骤(a-2),否则。继续步骤(a-3)
(a-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(a-4);
(a-3)从内存空间中申请一个rte_mbuf,继续步骤(a-4)
(a-4)对所述的rte_mbuf进行初始化。
在一种较佳的实施方式中,所述的步骤(b)与所述的步骤(c)之间还包括以下步骤:
(b-1)将所述的2048字节簇缓存块的引用计数加一。
在一种更佳的实施方式中,所述的步骤(c)具体包括以下步骤:
(c-1)将所述的字节簇缓存块的引用计数减一;
(c-2)调用网卡驱动提供的函数释放所述的rte_mbuf;
(c-3)释放所述的mbuf;
(c-4)判断所述的引用计数是否为1,如果是,则将所述的字节簇缓存释放还给内存空间,否则,将所述的引用计数减一。
本发明可以分收报文跟发报文二个方面来说明:
收报文:
1、当网卡驱动接收到报文时,报文存放在rte_mbuf中,首先协议栈会从内存空间中申请一块缓存mbuf,并对其初始化;
2、采用内存映射的方法,把mbuf中的数据指针指向rte_mbuf中的数据起始地址,并把其他一些参数,比如长度等信息赋值过来;
3、根据报文在协议栈的处理过程对报文头数据的操作,在报文首部或当前的可用头区空间内调整当前数据指针的地址偏移;
4、当mbuf因为某些原因要被释放时,先通过mbuf中数据指针所保存的地址和rte_mbuf中数据存储地址的偏移量换算出rte_mbuf的首地址,再调用网卡驱动提供的库函数把该缓存释放还给内存池,最后再调用协议栈提供的库函数释放mbuf。
发报文:
1、当报文走完协议栈的流程时,网卡驱动也会从内存池中申请一块缓存,并对其初始化;
2、这里也采用内存映射的方法,把rte_mbuf中的数据指针指向mbuf中的2048字节簇的起始地址,并把其他一些参数拷贝过来;
3、等数据从网卡驱动中发出去后,再分别释放rte_mbuf跟mbuf缓存块。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一:
如图3和图4所示,包括以下步骤:
S1:先查看网卡驱动传过来的报文有没有被分片,如果被分片,那么根据rte_mbuf的个数,协议栈从内存空间中申请分配相同个数的缓存块,并对其初始化;
S2:采用内存映射的方法,把每个mbuf中的数据指针分别指向rte_mbuf中的数据起始地址,并把其他一些参数,比如长度等信息赋值过来;
S3:把rte_mbuf的首地址通过强制类型转换存放在2048字节簇的首地址处,在释放rte_mbuf时就可以不用去计算该缓存的首地址是多少;
S4:根据报文在协议栈的处理过程对报文头的操作,在报文首部或当前的可用头区空间内调整当前数据指针的地址偏移;其中,可用头区空间指的是缓存块的首地址与数据首地址之间的空间,随着数据的封装头、剥离头,可用头区会变大变小。因此可用头区空间可能比预留的头区空间大,也可能比预留的头区空间小,在报文处理过程中,数据指针还有可能不在已有头区空间偏移,而是在报文首部的位置偏移,例如,在剥头时,是偏移到报文头后的位置。
S5:当mbuf因为某些原因要被释放时,先找到mbuf中m_ext.ext_buf所指向的字节簇缓存,随后再取出步骤S3所存储的rte_mbuf的首地址,随后再调用网卡驱动所提供的库函数,把该缓存释放还给内存池,最后再调用协议栈提供的库函数释放mbuf。
实施例二:
如图5所示,包括以下步骤:
S101:先mbuf走完协议栈时,会把要发的数据扔给网卡驱动,首先也是查看报文有没有被分片,如果有,则rte_mbuf也从内存池中申请相同数量的缓存块,如果没有,则从内存池中申请一个rte_mbuf,并对其进行初始化。
S102:这里也采用内存映射的方法,把rte_mbuf的数据指针指向mbuf的字节簇数据的起始地址,并把长度等参数拷贝过来。
S103:给这块字节簇缓存块的引用计数加一,防止在删除mbuf时误删这块字节簇缓存。
S104:在调用网卡驱动的发送数据函数时,mbuf的首地址还保存在指针数组中,等网卡驱动把数据发出去,不管是否发送成功都将释放rte_mbuf跟mbuf所占用的缓存块。
S105:在释放缓存块时,先把字节簇缓存块的引用计数减一,随后调用网卡驱动提供的函数释放rte_mbuf,最后去释放mbuf,如果字节簇的引用计数为1了,那么就把字节簇缓存释放还给内存空间,否则引用计数再减一。
采用了该发明中的无需拷贝报文缓存的NFV协议报文收发方法,通过内存地址映射,可以实现二种不兼容数据缓存块之间在交互过程中的零拷贝传递,使得包处理性能与报文长度无关成为可能;报文在模块间传递的过程中,无需额外申请空间或改变数据缓存结构来保存原始缓存地址;利用闲置数据缓存空间来保存原始缓存地址,可以避免计算原始缓存到数据起始地址的偏移来正确释放该报文缓存,极大的方便编程人员的使用,具有广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (8)
1.一种无需拷贝报文缓存的NFV协议报文接收方法,其特征在于,所述的方法包括以下步骤:
(1)协议栈从内存空间中申请mbuf,并对其进行初始化;
(2)当网卡驱动接收到报文时,将所述的报文存放在rte_mbuf中;
(3)通过内存映射的方法将所述的mbuf中的数据指针指向所述的rte_mbuf中的数据起始地址,并对数据参数进行赋值;
(4)根据报文在协议栈的处理过程对报文头数据进行处理,在报文首部或当前的可用头区空间内调整当前数据指针的地址偏移;
(5)当所述的mbuf被释放时,通过所述的mbuf中数据指针所保存的地址和rte_mbuf中数据存储地址的偏移量换算出所述的rte_mbuf的首地址;
(6)调用网卡驱动提供的库函数把该缓存释放还给内存池,在调用协议栈提供的库函数释放所述的mbuf。
2.根据权利要求1所述的无需拷贝报文缓存的NFV协议报文接收方法,其特征在于,所述的步骤(1)具体包括以下步骤:
(1-1)判断所述的网卡驱动的报文是否被分片,如果是,则继续步骤(1-2),否则。继续步骤(1-3);
(1-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(1-4);
(1-3)从内存空间中申请一个rte_mbuf,继续步骤(1-4);
(1-4)对所述的rte_mbuf进行初始化。
3.根据权利要求1所述的无需拷贝报文缓存的NFV协议报文接收方法,其特征在于,所述的步骤(3)与所述的步骤(4)之间还包括以下步骤:
(3-1)将所述的rte_mbuf的首地址通过强制类型转换存放在2048字节簇的首地址处。
4.根据权利要求3所述的无需拷贝报文缓存的NFV协议报文接收方法,其特征在于,所述的步骤(5)具体包括以下步骤:
(5-1)找到所述的mbuf中m_ext.ext_buf所指向的字节簇缓存;
(5-2)取出所述的的首地址。
5.一种无需拷贝报文缓存的NFV协议报文发送方法,其特征在于,所述的方法包括以下步骤:
(a)在报文走完协议栈的流程后,网卡驱动从内存池中申请rte_mbuf,并对其初始化;
(b)根据内存映射的方法将rte_mbuf中的数据指针指向mbuf中的2048字节簇的起始地址,并对数据参数进行拷贝;
(c)在数据从网卡驱动中发送之后,分别释放所述的rte_mbuf和所述的mbuf。
6.根据权利要求5所述的无需拷贝报文缓存的NFV协议报文发送方法,其特征在于,所述的步骤(a)具体包括以下步骤:
(a-1)判断所述的报文是否被分片,如果是,则继续步骤(a-2),否则。继续步骤(a-3)
(a-2)协议栈根据rte_mbuf的个数,从内存空间中申请相同个数的mbuf,继续步骤(a-4);
(a-3)从内存空间中申请一个rte_mbuf,继续步骤(a-4)
(a-4)对所述的rte_mbuf进行初始化。
7.根据权利要求5所述的无需拷贝报文缓存的NFV协议报文发送方法,其特征在于,所述的步骤(b)与所述的步骤(c)之间还包括以下步骤:
(b-1)将所述的2048字节簇缓存块的引用计数加一。
8.根据权利要求7所述的无需拷贝报文缓存的NFV协议报文发送方法,其特征在于,所述的步骤(c)具体包括以下步骤:
(c-1)将所述的字节簇缓存块的引用计数减一;
(c-2)调用网卡驱动提供的函数释放所述的rte_mbuf;
(c-3)释放所述的mbuf;
(c-4)判断所述的引用计数是否为1,如果是,则将所述的字节簇缓存释放还给内存空间,否则,将所述的引用计数减一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710499659.XA CN107302499B (zh) | 2017-06-26 | 2017-06-26 | 无需拷贝报文缓存的nfv协议报文收发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710499659.XA CN107302499B (zh) | 2017-06-26 | 2017-06-26 | 无需拷贝报文缓存的nfv协议报文收发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107302499A true CN107302499A (zh) | 2017-10-27 |
CN107302499B CN107302499B (zh) | 2020-12-18 |
Family
ID=60135938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710499659.XA Active CN107302499B (zh) | 2017-06-26 | 2017-06-26 | 无需拷贝报文缓存的nfv协议报文收发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107302499B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951401A (zh) * | 2019-03-26 | 2019-06-28 | 北京翼辉信息技术有限公司 | 基于接收零拷贝的非丢包网卡接收数据的方法 |
CN110048963A (zh) * | 2019-04-19 | 2019-07-23 | 杭州朗和科技有限公司 | 虚拟网络中的报文传输方法、介质、装置和计算设备 |
CN110674053A (zh) * | 2019-09-30 | 2020-01-10 | 深圳忆联信息系统有限公司 | Ssd数据存储节点管理方法、装置、计算机设备及存储介质 |
CN112543154A (zh) * | 2019-09-20 | 2021-03-23 | 大唐移动通信设备有限公司 | 一种数据传输方法及装置 |
CN113127183A (zh) * | 2019-12-30 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 一种用户态协议栈中的内存分配方法和装置 |
CN113127139A (zh) * | 2019-12-31 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 一种基于数据面开发套件dpdk的内存分配方法和装置 |
CN113194266A (zh) * | 2021-04-28 | 2021-07-30 | 深圳迪乐普数码科技有限公司 | 图像序列帧实时渲染方法、装置、计算机设备及存储介质 |
CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN101340574A (zh) * | 2008-08-04 | 2009-01-07 | 中兴通讯股份有限公司 | 一种实现零拷贝发送流媒体数据的方法及系统 |
CN101873337A (zh) * | 2009-04-22 | 2010-10-27 | 电子科技大学 | 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术 |
CN102402487A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种零拷贝接收报文的方法和系统 |
US8856460B2 (en) * | 2010-09-15 | 2014-10-07 | Oracle International Corporation | System and method for zero buffer copying in a middleware environment |
-
2017
- 2017-06-26 CN CN201710499659.XA patent/CN107302499B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101267361A (zh) * | 2008-05-09 | 2008-09-17 | 武汉飞思科技有限公司 | 一种基于零拷贝技术的高速网络数据包捕获方法 |
CN101340574A (zh) * | 2008-08-04 | 2009-01-07 | 中兴通讯股份有限公司 | 一种实现零拷贝发送流媒体数据的方法及系统 |
CN101873337A (zh) * | 2009-04-22 | 2010-10-27 | 电子科技大学 | 一种基于rt8169千兆网卡和Linux操作系统的零拷贝数据捕获技术 |
US8856460B2 (en) * | 2010-09-15 | 2014-10-07 | Oracle International Corporation | System and method for zero buffer copying in a middleware environment |
CN102402487A (zh) * | 2011-11-15 | 2012-04-04 | 北京天融信科技有限公司 | 一种零拷贝接收报文的方法和系统 |
Non-Patent Citations (2)
Title |
---|
乔丽: "EI内核中Mbuf的简化研究", 《商丘师范学院学报》 * |
贾之豪等: "基于PF_MDA的移易植零拷贝捕包方法研究", 《电子设计工程》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951401A (zh) * | 2019-03-26 | 2019-06-28 | 北京翼辉信息技术有限公司 | 基于接收零拷贝的非丢包网卡接收数据的方法 |
CN109951401B (zh) * | 2019-03-26 | 2020-03-13 | 北京翼辉信息技术有限公司 | 基于接收零拷贝的非丢包网卡接收数据的方法 |
CN110048963A (zh) * | 2019-04-19 | 2019-07-23 | 杭州朗和科技有限公司 | 虚拟网络中的报文传输方法、介质、装置和计算设备 |
CN112543154B (zh) * | 2019-09-20 | 2022-07-22 | 大唐移动通信设备有限公司 | 一种数据传输方法及装置 |
CN112543154A (zh) * | 2019-09-20 | 2021-03-23 | 大唐移动通信设备有限公司 | 一种数据传输方法及装置 |
CN110674053B (zh) * | 2019-09-30 | 2021-09-14 | 深圳忆联信息系统有限公司 | Ssd数据存储节点管理方法、装置、计算机设备及存储介质 |
WO2021062981A1 (zh) * | 2019-09-30 | 2021-04-08 | 深圳忆联信息系统有限公司 | Ssd数据存储节点管理方法、装置及计算机设备 |
CN110674053A (zh) * | 2019-09-30 | 2020-01-10 | 深圳忆联信息系统有限公司 | Ssd数据存储节点管理方法、装置、计算机设备及存储介质 |
CN113127183A (zh) * | 2019-12-30 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 一种用户态协议栈中的内存分配方法和装置 |
CN113127139A (zh) * | 2019-12-31 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 一种基于数据面开发套件dpdk的内存分配方法和装置 |
CN113127139B (zh) * | 2019-12-31 | 2023-12-26 | 阿里巴巴集团控股有限公司 | 一种基于数据面开发套件dpdk的内存分配方法和装置 |
CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN113194266A (zh) * | 2021-04-28 | 2021-07-30 | 深圳迪乐普数码科技有限公司 | 图像序列帧实时渲染方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107302499B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107302499A (zh) | 无需拷贝报文缓存的nfv协议报文收发方法 | |
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US9800513B2 (en) | Mapped FIFO buffering | |
US8310934B2 (en) | Method and device for controlling information channel flow | |
EP2353017B1 (en) | Packet aggregation and fragmentation at layer-2 over a managed network | |
JP5795592B2 (ja) | 中央制御装置により制御されるデータパケットを受信し記憶する装置および方法 | |
CN103440202B (zh) | 一种基于rdma的通信方法、系统及通信设备 | |
JP5749732B2 (ja) | キューの充填レベルの更新を制御することにより帯域幅を節約しながらデータを受信し記憶するアセンブリおよび方法 | |
KR101738620B1 (ko) | 시간 스탬핑 및 중앙 제어기를 사용한 복수의 어댑터들에 의한 데이터 프레임들의 분산 처리 | |
US9264385B2 (en) | Messaging with flexible transmit ordering | |
CN102014067A (zh) | 一种报文分片发送的方法、装置和网络设备 | |
US7974190B2 (en) | Dynamic queue memory allocation with flow control | |
US20120106567A1 (en) | Mlppp occupancy based round robin | |
CN102255818B (zh) | 一种驱动接收报文的方法及装置 | |
WO2010072122A1 (zh) | 一种传输报文的方法、端口和系统 | |
CN111416778A (zh) | 用于多设备物联网的单串口网关平台 | |
CN1248465C (zh) | 网络通信中数据发送/接收缓冲区的管理方法 | |
CN106375240B (zh) | 一种多网口间以太网报文转发方法及系统 | |
CN101064697A (zh) | 一种实现异步传输模式网络服务质量控制的装置和方法 | |
CN101242354B (zh) | 一种数据传输的方法、系统及设备 | |
CN101156358B (zh) | 话单生成方法、话单传送方法、系统、设备及功能实体 | |
WO2011026508A1 (en) | Method for distributing data traffic over radio links | |
US7853739B1 (en) | Method and system for transmitting USB communication | |
CN110865891B (zh) | 一种异步消息编排方法和装置 | |
US7532644B1 (en) | Method and system for associating multiple payload buffers with multidata message |
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 |