CN108156172A - 一种高速接收tcp数据的方法 - Google Patents
一种高速接收tcp数据的方法 Download PDFInfo
- Publication number
- CN108156172A CN108156172A CN201810019064.4A CN201810019064A CN108156172A CN 108156172 A CN108156172 A CN 108156172A CN 201810019064 A CN201810019064 A CN 201810019064A CN 108156172 A CN108156172 A CN 108156172A
- Authority
- CN
- China
- Prior art keywords
- caching
- data
- predistribution
- socket
- user
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种高速接收TCP数据的方法,包括:在操作系统内核协议栈的TCP层和套接字层之间引入套接字适配层;套接字适配层代表应用程序所在的进程上下文在内部预先分配一定数量的用户态接收缓存,并将上述内部预分配缓存的物理地址映射给网卡芯片;将数据DMA到内部预分配缓存中,被数据填满的内部预分配缓存从网卡芯片解除DMA映射;应用程序调用套接字的recv方法时传入一个由应用程序维护的用户态接收缓存,用以读取接收到的数据,实现了降低主机CPU的负载,对应用程序具有较高的透明性,具有普遍适用性的技术效果。
Description
技术领域
本发明涉及数据传输领域,具体地,涉及一种高速接收TCP数据的方法。
背景技术
随着高速以太网技术的不断发展,1Gb、10Gb以太网已广泛普及,40Gb、100Gb以太网也已开始逐步商用推广,但另一方面,各种主机CPU的处理速率增长却逐渐放缓,远远慢于以太网速率的增长。这使得在处理高速以太网数据时,主机CPU越来越成为整个系统的性能瓶颈。
TCP/IP作为当今互联网应用的核心承载协议,应用极为广泛。传统的系统实现中,TCP/IP协议栈都由运行在主机CPU上的操作系统软件实现,当以太网速率达到10Gb甚至更高量级时,主机CPU的负载会非常重。为适应高速以太网的发展,出现了TCP卸载(TCPOffload Engine,简称TOE)技术。TOE技术将TCP/IP协议栈处理转移到专门的硬件处理网卡芯片上,这种新型的网卡除了兼具普通以太网卡的功能外,还具有了TCP/IP协议栈的处理功能。
TOE技术主要通过中断聚合减少硬件中断的频率、卸载TCP/IP协议栈的处理工作和避免操作系统内核态和用户态之间的拷贝(零拷贝,即整个数据收发流程中无任何内存拷贝)操作三个措施来降低主机CPU的负担,提升系统的网络性能。
要实现零拷贝方式接收、读取数据,需要通过一定的手段将用户态接收缓存的物理地址直接映射给网卡芯片,由网卡芯片直接将数据DMA到用户态接收缓存。这对于数据发送过程比较容易实现,但对于数据接收过程来说却比较复杂,原因在于,数据的接收读取过程通常是一个异步过程,可分为两个并行的处理过程:
1、数据接收过程:网卡驱动程序处理网卡的接收中断,通过DMA将数据从网卡芯片搬移到内核缓存中。这个过程运行于内核态、中断上下文中。
2、数据读取过程:用户态应用程序采用套接字(socket)的recv方法,从内核的接收缓存中把数据拷贝到应用程序提供的用户态缓存中。这个过程运行于应用程序的进程上下文中。
在“数据读取过程”中产生了一次从内核态缓存到用户态缓存的拷贝,当数据量较大时,这会消耗相当部分的主机CPU资源。同时,由于“数据接收过程”和“数据读取过程”是两个异步的过程,无法在每一次“数据读取过程”执行之前知道应用程序提供的用户态缓存的大小,而且很可能“数据读取过程”相对于“数据接收过程”会有一定的滞后,所以很难像数据发送过程那样直接将用户态的接收缓存映射给网卡芯片用以DMA数据,避免内存拷贝操作。
由于为了解决接收零拷贝的问题,现有的TOE技术通常不得不要求用户态应用程序进行相应的修改,例如:使用特殊的接口而不再使用套接字接口编程,采用同步的方式接收数据或者预先分配、提供专门的固定缓存进行映射等方法。这都会导致整个数据接收过程对应用程序不透明。应用程序无法使用通用的套接字接口编程,并需要针对TOE接收过程进行专门修改,降低了应用程序的通用性和可移植性。
发明内容
本发明提供了一种高速接收TCP数据的方法,解决了现有的TCP数据接收方法存在的不足,实现了降低主机CPU的负载,对应用程序具有较高的透明性,具有普遍适用性的技术效果。
传统的接收数据方式中操作系统内核协议栈的传输层协议(TCP、UDP等)之上是套接字(socket)层,socket层用于封装并向应用程序提供基于POSIX标准的套接字编程API。
现代的计算机大都采用直接内存存取(DMA)方式进行主机CPU和外部设备之间的数据传输,数据由专门的DMA控制器直接操作通过PCI-E总线传输,不需要主机CPU参与,实现高速的数据交换。运行于主机CPU上的驱动程序负责分配和维护主机内存中的一块环形内核接收缓存区,并映射给网卡芯片,为DMA的接收数据提供存放目的地。
随后,应用程序通过套接字接口recv()读取环形内核接收缓存区中的接收数据,即产生了一次内存拷贝。
其中,socket adapter为套接字适配层;DMA为Direct Memory Access,即直接内存存取。
本发明要解决的问题采用以下技术方案来实现:
(1)本发明在操作系统内核协议栈的TCP层和套接字(socket)层之间,引入一个套接字适配层(socket adapter)。socket adapter实现TCP卸载的策略分路处理,即:哪些TCP连接需要由网卡芯片卸载、哪些TCP连接仍然通过操作系统内核协议栈处理。由socketadapter完成对被卸载的TCP连接的套接字接口调用的接管。
(2)当应用程序调用套接字的connect/accept方法建立TCP连接时,根据事先配置的门限值,socket adapter代表应用程序所在的进程上下文在内部预先分配一定数量的用户态接收缓存(简称:内部预分配缓存),并将这些内部预分配缓存的物理地址映射给网卡芯片。
(3)在数据接收过程中,当网卡接收到数据时,将数据DMA到“内部预分配缓存”中,被数据填满的“内部预分配缓存”从网卡芯片解除DMA映射。如果预先分配的内部接收缓存不足以容纳网卡本次接收到的所有数据,那么在常规手段接收数据的环形缓存中再临时分配一块内核缓存(简称:临时内核缓存),以容纳这部分数据。
(4)应用程序调用套接字的recv方法时传入一个由应用程序维护的用户态接收缓存(简称:用户接收缓存),用以读取接收到的数据。根据用以读取数据的缓存来源,可分为两种情况:
a:存放待读取数据的是“内部预分配缓存”:修改“用户接收缓存”逻辑地址和物理地址的映射关系,将“用户接收缓存”的逻辑地址指向存放待读取数据的“内部预分配缓存”的物理地址,然后socket adapter代表应用程序所在的进程上下文重新分配一块“内部预分配缓存”,将其物理地址映射给网卡芯片。
b:存放待读取数据的是“临时内核缓存”:通过拷贝的方式将数据拷贝到“用户接收缓存”中。拷贝完成后,socket adapter代表应用程序所在的进程上下文按照这次拷贝数据的大小新分配一块“内部预分配缓存”,这样可供用于零拷贝接收的“内部预分配缓存”动态扩大,以避免将来接收数据时会有部分的拷贝。
(5)本方法具有能使“内部预分配缓存”自动扩大的特性,即使在方案点(2)中不事先预先分配一定数量的“内部预分配缓存”,也能通过反复执行方案点(3)和方案点(4)将“内部预分配缓存”的大小扩大到一个相对稳定的值,这时整个接收流水线上的各个环节:网卡、DMA引擎、socket adapter和应用程序的处理速率基本平衡,整个系统的网络性能达到一个相对稳定的状态。
本发明主要提供一种通用的方法,对本发明之上的用户态应用程序提供透明、通用的套接字标准接口;在本发明内部,实现从网卡芯片直接DMA到用户态接收缓存的零拷贝接收。
本发明不指定必需支持TOE技术的网卡芯片,只要求网卡芯片具有能通过软件动态地配置DMA映射地址的功能,而这个功能是网卡芯片所应具有的基本功能,因此本发明具有普遍适用性。
本方法通过在socket和内核协议栈之间引入一个套接字适配层(socketadapter)实现对应用程序套接字接口编程调用的接管。采用改变接收缓存的逻辑地址和物理地址之间映射关系的方式,避免以内存中的数据拷贝方式读取数据。用于零拷贝接收所需的接收缓存容量根据需要动态增长,最终达到一种稳定状态的自适应方法。本方法采用改变接收缓存的逻辑地址和物理地址之间映射关系的方式,替代传统的内存缓存间拷贝的方法。本方法采用自适应增长的方式,逐步扩大用于零拷贝接收所需的接收缓存容量,最终达到绝大部分情况下都能通过零拷贝读取接收数据的平衡状态的方法。
本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:
1、降低主机CPU的负载:通过避免从内核态到用户态缓存的拷贝,降低了主机CPU的负载,在传输大量数据等对性能要求较高的场合,改善效果明显。
2、对应用程序的透明性:应用程序采用标准的套接字编程,不用考虑下层使用的是否是TOE技术网卡芯片,提高了应用程序的通用性和可移植性,减少了应用程序的开发工作量。
3、通过交换接收缓存的地址映射关系避免了内存拷贝的方法,比较简单,可很容易地与各种TOE网卡芯片驱动程序配合,实现零拷贝数据接收。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定;
图1是传统网络数据接收层次的结构示意图;
图2是引入socket adapter网络数据接收层次的结构示意图;
图3是本方法的操作流程示意图。
具体实施方式
本发明提供了一种高速接收TCP数据的方法,解决了现有的TCP数据接收方法存在的不足,实现了降低主机CPU的负载,对应用程序具有较高的透明性,具有普遍适用性的技术效果。
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面结合附图和在Linux操作系统的具体实例对本发明进行详细说明。
(1)引入socket adapter,接管用户态应用程序的套接字编程接口。引入socketadapter前后的Linux操作系统协议栈层次结构如图1-2所示。
(2)建立TCP连接时,socket adapter在套接字的connect(对应主动建立连接)和accept(被动建立连接)方法中,分配一定数量的“内部预分配缓存”,配置网卡芯片的DMA寄存器将“内部预分配缓存”的物理地址映射给网卡芯片,例如,可将默认可设置为每块“内部预分配缓存”为64KB大小,一共设置4块。在建立TCP连接、配置网卡芯片的TCP连接状态参数信息时,还可设置启用零拷贝方式接收的门限大小,只有当网卡芯片接收大块数据时才启用零拷贝方式。步骤(2)为可选操作,即使不预先分配缓存,在后面的多次读取操作后,通过自动地增长也会分配一定数量的“内部预分配缓存”。
(3)建立TCP连接后,网卡接收到来自TCP连接对端的TCP报文。网卡芯片处理在这一时间段内接收到的TCP报文,将完成TCP/IP处理、剥去TCP/IP首部的载荷数据(假定共计320KB)DMA到“内部预分配缓存”中,DMA完成所有本次接收数据或者填充满“内部预分配缓存”后,解除存放数据的“内部预分配缓存”向网卡芯片的DMA映射,通知网卡芯片更新TCP接收窗口,并产生中断通知主机CPU。由于这时的“内部预分配缓存”总大小只有64KB*4=256KB,所以最多只能有256KB数据通过DMA存入“内部预分配缓存”中,另外再分配320KB-256KB=64KB的“临时内核缓存”,用以容纳多出来的64KB数据。此时,320KB的接收数据均已存放于主机的内存中。
需要说明的是,内核协议栈的设计通常都会在各层之间以传递缓存地址的方式传递报文数据,避免各层之间的拷贝,因此这里的网卡芯片即使不具有TCP卸载功能,也能通过内核协议栈完成TCP协议的处理,将处理完成的数据存放于“内部预分配缓存”中。
(4)应用程序调用套接字的recv方法,请求将接收到的数据读取到指定的“用户接收缓存”中。这里根据传入的“用户接收缓存”大小,分四种情况讨论:
1:传入的“用户接收缓存”大小为128KB,小于“内部预分配缓存”中的数据量256KB。
修改“用户接收缓存”逻辑地址对应的物理地址映射关系,让其指向“内部预分配缓存”中存放这128KB数据的部分区域对应的物理地址。“内部预分配缓存”中此时还有128KB数据尚未读取,保持不变。之后,socket adapter代表应用程序所在的进程新分配128KB+64KB=192KB的“内部预分配缓存”,并映射给网卡芯片,用以填补消耗掉的这部分“内部预分配缓存”,并避免将来再次接收数据时需要分配“临时内核缓存”。这样,“内部预分配缓存”的总量扩大到了320KB。用户程序的套接字recv方法调用返回。
2:传入的“用户接收缓存”大小为288KB,大于“内部预分配缓存”中的数据量256KB,但小于总的接收字节数320KB。
修改“用户接收缓存”逻辑地址前256KB部分区域对应的物理地址映射关系,让其指向整个“内部预分配缓存”对应的物理地址,接下来将存放在“临时内核缓存”中的32KB数据拷贝到“用户接收缓存”的最后32KB部分区域中。之后,socket adapter代表应用程序所在的进程新分配256KB+64KB=320KB的“内部预分配缓存”,并映射给网卡芯片,用以填补消耗掉的“内部预分配缓存”,并避免将来再次接收数据时需要分配“临时内核缓存”。这样,“内部预分配缓存”的总量扩大到了320KB。用户程序的套接字recv方法调用返回。在这种情况中,需要进行一次32KB的拷贝操作。
另外,在应用程序下次调用套接字recv方法读取数据时,也需要通过拷贝将存储在“临时内核缓存”中的剩余的32KB数据读取到“用户接收缓存”中。
3:传入的“用户接收缓存”大小为360KB,大于总的接收字节数320KB,应用程序允许套接字recv方法不用填满“用户接收缓存”即返回。
修改“用户接收缓存”逻辑地址前256KB部分区域对应的物理地址映射关系,让其指向整个“内部预分配缓存”对应的物理地址,接下来将存放在“临时内核缓存”中的64KB数据拷贝到“用户接收缓存”中,“用户接收缓存”最后剩余的40KB区域保持不变。之后,socketadapter代表应用程序所在的进程新分配360KB的“内部预分配缓存”,并映射给网卡芯片,用以填补消耗掉的“内部预分配缓存”,并避免将来再次接收数据时需要分配“临时内核缓存”。这样,“内部预分配缓存”的总量扩大到了360KB。用户程序的套接字recv方法调用返回。在这种情况中,需要进行一次64KB的拷贝操作。
4:传入的“用户接收缓存”大小为360KB,大于总的接收字节数320KB,应用程序要求套接字recv方法必须填满“用户接收缓存”后才能返回。
修改“用户接收缓存”逻辑地址前256KB部分区域对应的物理地址映射关系,让其指向整个“内部预分配缓存”对应的物理地址,接下来将存放在“临时内核缓存”中的64KB数据拷贝到“用户接收缓存”中。由于这时“用户接收缓存”还可以容纳40KB数据,因此将套接字recv方法挂起等待。待网卡芯片收到新的40KB数据后,临时分配40KB的“临时内核缓存”用以容纳这40KB数据,再将这40KB数据从“临时内核缓存”拷贝到“用户接收缓存”中。之后,socket adapter代表应用程序所在的进程新分配360KB的“内部预分配缓存”,并映射给网卡芯片,用以填补消耗掉的“内部预分配缓存”,并避免将来再次接收数据时需要分配“临时内核缓存”。这样,“内部预分配缓存”的总量扩大到了360KB。用户程序的套接字recv方法调用返回。在这种情况中,需要进行一次64KB+40KB=104KB的拷贝操作。
(5)反复执行步骤(3)和步骤(4),当“数据接收过程”的速率快于“数据读取过程”时,刚开始由于“内部预分配缓存”不够会导致通过拷贝的方式从“临时内核缓存”中读取数据,这会促使“内部预分配缓存”的总量自适应地扩大,当“内部预分配缓存”的总量扩大到总能满足网卡芯片DMA数据的需求时,也就不会再触发“临时内核缓存”的分配,整个接收过程不再有拷贝操作。同时,由于“数据读取过程”慢于“数据接收过程”也会引起TCP接收窗口减小,迫使发送端降低发送速率,不会导致“内部预分配缓存”的总量无上限地扩大;当“数据接收过程”的速率慢于“数据读取过程”时,随着“内部预分配缓存”的总量自适应地扩大,当“内部预分配缓存”的总量足够容纳每次网卡芯片DMA的数据量时,也就不会再触发“内部预分配缓存”的总量扩大。
步骤(3)、步骤(4)和步骤(5)的操作如图3所示。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (3)
1.一种高速接收TCP数据的方法,其特征在于,所述方法包括:
步骤1:在操作系统内核协议栈的TCP层和套接字层之间引入套接字适配层,套接字适配层用于对决定具体的TCP连接由网卡芯片卸载或通过操作系统内核协议栈处理;
步骤2:当应用程序调用套接字的connect/accept方法建立TCP连接时,根据事先配置的门限值,套接字适配层代表应用程序所在的进程上下文在内部预先分配一定数量的用户态接收缓存,即内部预分配缓存,并将上述内部预分配缓存的物理地址映射给网卡芯片;
步骤3:在数据接收过程中,当网卡接收到数据时,将数据DMA到内部预分配缓存中,被数据填满的内部预分配缓存从网卡芯片解除DMA映射;若预先分配的内部接收缓存不足以容纳网卡本次接收到的所有数据,则在接收数据的环形缓存中临时分配一块内核缓存以容纳这部分未被容纳的数据,临时分配一块内核缓存即临时内核缓存;
步骤4:应用程序调用套接字的recv方法时传入一个由应用程序维护的用户态接收缓存,用以读取接收到的数据,由应用程序维护的用户态接收缓存即用户接收缓存。
2.根据权利要求1所述的高速接收TCP数据的方法,其特征在于,步骤4根据用以读取数据的缓存来源,分为两种情况:
a:存放待读取数据的是内部预分配缓存时:修改用户接收缓存逻辑地址和物理地址的映射关系,将用户接收缓存的逻辑地址指向存放待读取数据的内部预分配缓存的物理地址,然后socket adapter代表应用程序所在的进程上下文重新分配一块内部预分配缓存,将其物理地址映射给网卡芯片;
b:存放待读取数据的是临时内核缓存时:通过拷贝的方式将数据拷贝到用户接收缓存中。拷贝完成后,套接字适配层代表应用程序所在的进程上下文按照这次拷贝数据的大小新分配一块内部预分配缓存。
3.根据权利要求1所述的高速接收TCP数据的方法,其特征在于,套接字适配层还用于完成对被卸载的TCP连接的套接字接口调用的接管。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810019064.4A CN108156172B (zh) | 2018-01-09 | 2018-01-09 | 一种高速接收tcp数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810019064.4A CN108156172B (zh) | 2018-01-09 | 2018-01-09 | 一种高速接收tcp数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108156172A true CN108156172A (zh) | 2018-06-12 |
CN108156172B CN108156172B (zh) | 2020-03-17 |
Family
ID=62460987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810019064.4A Active CN108156172B (zh) | 2018-01-09 | 2018-01-09 | 一种高速接收tcp数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108156172B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855610A (zh) * | 2019-09-30 | 2020-02-28 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置及存储介质 |
CN111586040A (zh) * | 2020-05-06 | 2020-08-25 | 北京中科海讯数字科技股份有限公司 | 高性能网络数据接收方法及其系统 |
WO2020187186A1 (zh) * | 2019-03-15 | 2020-09-24 | 华为技术有限公司 | 数据处理方法、装置及设备 |
CN111970128A (zh) * | 2020-10-21 | 2020-11-20 | 中国电力科学研究院有限公司 | 一种高速套接字接收方法及系统 |
CN113098955A (zh) * | 2021-03-30 | 2021-07-09 | 山东英信计算机技术有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
CN113810370A (zh) * | 2021-08-04 | 2021-12-17 | 方一信息科技(上海)有限公司 | 一种基于Socket对接TOE驱动的TCP加速方法 |
WO2023003603A1 (en) * | 2021-07-23 | 2023-01-26 | Intel Corporation | Cache allocation system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
US20170126575A1 (en) * | 2013-01-23 | 2017-05-04 | A10 Networks, Inc. | Reducing Buffer Usage for TCP Proxy Session Based on Delayed Acknowledgement |
-
2018
- 2018-01-09 CN CN201810019064.4A patent/CN108156172B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170126575A1 (en) * | 2013-01-23 | 2017-05-04 | A10 Networks, Inc. | Reducing Buffer Usage for TCP Proxy Session Based on Delayed Acknowledgement |
CN103581181A (zh) * | 2013-10-28 | 2014-02-12 | 清华大学 | 数据包捕获、处理和发送方法及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020187186A1 (zh) * | 2019-03-15 | 2020-09-24 | 华为技术有限公司 | 数据处理方法、装置及设备 |
US11647104B2 (en) | 2019-03-15 | 2023-05-09 | Huawei Technologies Co., Ltd. | Data processing method and apparatus, and device |
CN110855610A (zh) * | 2019-09-30 | 2020-02-28 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置及存储介质 |
CN110855610B (zh) * | 2019-09-30 | 2022-12-13 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置及存储介质 |
CN111586040A (zh) * | 2020-05-06 | 2020-08-25 | 北京中科海讯数字科技股份有限公司 | 高性能网络数据接收方法及其系统 |
CN111586040B (zh) * | 2020-05-06 | 2021-02-09 | 北京中科海讯数字科技股份有限公司 | 高性能网络数据接收方法及其系统 |
CN111970128A (zh) * | 2020-10-21 | 2020-11-20 | 中国电力科学研究院有限公司 | 一种高速套接字接收方法及系统 |
CN111970128B (zh) * | 2020-10-21 | 2021-02-02 | 中国电力科学研究院有限公司 | 一种高速套接字接收方法及系统 |
CN113098955A (zh) * | 2021-03-30 | 2021-07-09 | 山东英信计算机技术有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
WO2023003603A1 (en) * | 2021-07-23 | 2023-01-26 | Intel Corporation | Cache allocation system |
CN113810370A (zh) * | 2021-08-04 | 2021-12-17 | 方一信息科技(上海)有限公司 | 一种基于Socket对接TOE驱动的TCP加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108156172B (zh) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108156172A (zh) | 一种高速接收tcp数据的方法 | |
US7478390B2 (en) | Task queue management of virtual devices using a plurality of processors | |
US8549521B2 (en) | Virtual devices using a plurality of processors | |
US7689783B2 (en) | System and method for sharing memory by heterogeneous processors | |
US7921151B2 (en) | Managing a plurality of processors as devices | |
US7571440B2 (en) | System and method for emulating network communications between partitions of a computer system | |
US7748006B2 (en) | Loading software on a plurality of processors | |
US20070288701A1 (en) | System and Method for Using a Plurality of Heterogeneous Processors in a Common Computer System | |
JP6757808B2 (ja) | インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法 | |
CN116886751A (zh) | 一种异构设备的高速通信方法、装置和异构通信系统 | |
WO2005036313A2 (en) | Queue register configuration structure | |
EP4440080A1 (en) | Network node configuration and access request processing method and apparatus | |
EP1145128B1 (en) | A memory address translation system and method for a memory having multiple storage units | |
CN114610660A (zh) | 控制接口数据的方法、装置及系统 | |
KR20150048028A (ko) | 데이터 전송 관리 방법 | |
WO2004086240A1 (en) | Data processing system with a dma controller for storing the descriptor of the active channel | |
US9104637B2 (en) | System and method for managing host bus adaptor (HBA) over infiniband (IB) using a single external memory interface | |
US20240356886A1 (en) | Network Node Configuration Method and Apparatus, and Access Request Processing Method and Apparatus | |
KR20000065846A (ko) | 오퍼레이팅 시스템에서 커널과 사용자 사이의 제로-카피 방법 | |
CN118349502A (zh) | 一种基于FPGA的virtio高效pipeline数据传输设计方法 | |
CN117873921A (zh) | 一种基于远程直接内存访问的队列页表管理方法及装置 | |
CN117170854A (zh) | 一种内存访问方法及相关设备 | |
CN115344192A (zh) | 一种数据处理方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |