CN1801806A - 一种实时环境下的零拷贝通信方法 - Google Patents
一种实时环境下的零拷贝通信方法 Download PDFInfo
- Publication number
- CN1801806A CN1801806A CNA2005100197843A CN200510019784A CN1801806A CN 1801806 A CN1801806 A CN 1801806A CN A2005100197843 A CNA2005100197843 A CN A2005100197843A CN 200510019784 A CN200510019784 A CN 200510019784A CN 1801806 A CN1801806 A CN 1801806A
- Authority
- CN
- China
- Prior art keywords
- data
- network interface
- interface card
- dma
- transmitting terminal
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实时环境下的零拷贝通信方法,步骤为:①发送端对待发送数据进行写保护;②发送端将静态***缓冲作为用户发送缓冲;③发送端判断上述待发送数据的长度Ldata是否大于k,其中k为单片包内数据的最大长度,如果大于k,进入步骤④,否则进入步骤⑤;④发送端和接收端采用握手应答方式发送和接收需要分片的待发送数据,处理完毕后通信结束;⑤发送端和接收端采用直接映射方式发送和接收数据,处理完毕后通信结束。本方法在保证实时性的基础上,对不同情况的数据包采用通信延迟最小的方案进行传递,具有实时性、较短的通信延迟和硬件要求较低的特点。
Description
技术领域
本方法属于计算机应用领域的网络通信技术,具体涉及一种实时环境下的零拷贝通信方法。
背景技术
随着集群***的出现,计算机***能够提供的处理能力大大加强,可以满足许多新的应用需求,但相对较高的通信延迟限制了集群环境下应用的发展。在用于科学计算的集群***中,节点之间的通信效率对并行计算的整体性能具有关键的影响。在不提高节点间通信性能的情况下,单处理器节点CPU的性能提高32倍,***整体性能的提高不到10倍。特别是对于那些运算量不是很大的程序而言,网络通信时间在程序运行的总时间中占了相当大的比例。因此,如何降低通信所消耗的时间是网格集群发展的重要组成部分。
网络通信处理时间主要产生在***、网络接口等各个层次的数据拷贝及数据传输上。减少数据拷贝和共享总线操作的次数,消除通信数据在存储器之间不必要的中间拷贝过程,可以有效地提高通信效率,这就是所谓的零拷贝技术。零拷贝技术是减小通信延迟的重要技术之一。
现有的零拷贝实现方法主要有如下三种。
第一种方式在发送端拷贝一次,接收端也拷贝一次。这是零拷贝最初的几种实现方式之一。不具有直接内存存取(DMA)功能或其它直接控制内存能力的网卡都是采用这种零拷贝方式。在发送端,将用户即将发送的数据通过重映射方式映射到内核的数据空间,网卡再将这些数据拷贝到网卡缓冲区,然后从缓冲区将数据发送出去。接收端先将数据接收到网卡缓冲区,然后直接对网卡缓冲区的数据进行处理,找到其对应的用户程序,然后将数据拷贝过去。其优点是:对硬件设备要求很低,并行传输时可以进行流水线操作,实现简单。其缺点是:通信中时间延迟仍然较长,不能满足实时通信***的要求。
另一种比较简单实用的零拷贝方式是:发送端不拷贝,接收端拷贝一次。这种方案也被称为单拷贝方案。本方案要求网卡具有DMA功能。发送过程基本类似上述方案,不过网卡直接将内核区的数据空间作为发送缓冲。接收端则将数据接收到主存中的DMA缓冲后通过映射机制将数据交给用户,用户按照需要将数据拷贝到相应位置。这种方案的优点是:并行传输时可以进行流水线操作,实现比较简单,通信效率优于上述的单拷贝方案。其缺点是:还是在接收端进行了一次拷贝,在传送大数据包的时候对通信延迟有着明显的影响。
还有一种主要零拷贝通信方式是远程存储访问(RMA)(RemoteMemory Access)方式。它适合于大数据包发送,其主要实现方式为远端直接内存存取(RDMA)(Remote Direct Memory Access)和直接数据放置DDP(Direct Data Placement)方式。这种方案减少了接收端的一次拷贝,而且对于数据包的大小没有要求,但是由于每次数据传送之前硬件都要进行一次信息交互,需要消耗一定的时间,增加了通信延迟,所以采用这种方案需要数据包拷贝所消耗的时间长于数据飞行的时间时才对***效率有促进作用,不适合用于小数据包的发送。有些协议通过将小数据包拼接为大数据包再发送的方式来避免RMA方式的不利之处,发挥其长处,但是在实时通信中采用这种方案会延长通信响应时间,违反实时性要求。
发明内容
本方法的目的在于提供一种实时环境下的零拷贝通信方法,该方法在实时环境下具有相对较短的时间延迟。
本方法提供的一种实时环境下的零拷贝通信方法,其步骤为:
(1)发送端对待发送数据进行写保护;
(2)发送端将静态***缓冲作为用户发送缓冲;
(3)发送端判断上述待发送数据的长度Ldata是否大于k,其中k为单片包内数据的最大长度,如果大于k,进入步骤(4),否则进入步骤(5);
(4)发送端和接收端采用握手应答方式发送和接收需要分片的待发送数据,处理完毕后通信结束;
(5)发送端和接收端采用直接映射方式发送和接收数据,处理完毕后通信结束。
本方法针对目前尚不存在实时环境下专用的零拷贝通信协议的情况,利用网卡的DMA功能实现通信时间性能优秀的零拷贝通信方式。本方法的主要思想是在保证实时性的基础上,对不同情况的数据包采用通信延迟最小的方案进行传递。与现有的零拷贝方案相比,本方法主要有如下特点:
(1)实时性。本方案能够同时处理实时数据包和非实时数据包,在两种数据包同时到达时可以保证实时数据包优先完成,保证实时通信效率和只接收实时数据包时基本一致。
(2)较短的通信延迟。现有的零拷贝方案主要有RMA方式和单拷贝方案。RMA方案在通信之间要进行一次消息交互,使收发双方了解对方与通信有关的信息。单拷贝方案中发送端数据包都按照映射方式以零拷贝方式发送出去,在接收端则采用通用的数据报协议(UDP)协议处理,还是进行了一次拷贝。综合说来,本方法与这两种方式相比在实时环境下具有更短的通信延迟。在处理不分片包的时候,本方法比起单拷贝方式节约了接收端的一次拷贝,比起RMA方式则少了消息的一次交互。在处理分片包的情况下,本方法效率基本与RMA方式一致,比起单拷贝方式节省了接收端的一次拷贝,但是多了一次信息的交互。测试表明,在一般实时通信***中,分片包一次拷贝的时间大于一次信息交互的时间。所以在处理分片包的时候,本方法在处理分片包的时候在最佳情况下与RMA方式效率一致,好于单拷贝方案。考虑到各种大小的数据包在通信中所占的比例,本方法的综合时间延迟在一般情况下比其它协议要小。
(3)硬件要求较低:比起其他的零拷贝通信协议,本方案对于硬件的基本要求较低——只对网卡的DMA功能有要求。如果硬件能够达到RDMA方式的要求,则能够进一步降低通信延迟,降低CPU占用率,但这不是硬性要求。
附图说明
图1为本方法流程示意图;
图2为图1中握手应答方式的一种具体实施方式的流程示意图;
图3为图1中直接映射方式的一种具体实施方式的流程示意图;
图4为本发明优化方案的流程示意图;
图5为图4中0/1拷贝方式的流程示意图。
具体实施方式
本方法的硬件环境要求网卡具有DMA功能,软件环境为Linux环境下的UDP/IP(数据报协议/网际协议)方式通信。本方法的原理介绍如下:
设单片包内数据的最大长度为k,则分片包的第一片中数据的最大长度为k,其它片中数据的最大长度为k+8;设总的待发送数据包的长度为Ldata,尚未发送的数据长度为Lleft,指针p指向通信套接口(socket接口)对应的内核缓冲开始地址。
下面结合附图和实例对本发明作进一步详细的说明。如图1所示,本发明方法的步骤如下:
(1)发送端对要发送的数据进行写保护,使其它程序不能对这段数据进行读以外的操作;
(2)发送端通过***调用申请一个socket接口,并从***的全局缓冲池分配一个合适大小的内核缓存块给该接口,同时为该接口初始化一个具有一定数目网络缓冲的实时网络缓冲池,定义为rtskb_pool,网络缓冲块定义为rtskb。这样,数据发送过程中需要的网络缓冲资源就直接从rtskb_pool取用而不需要动态申请,同时该网络缓冲相关的内核缓冲空间也不需要动态申请,而是直接指向该实时socket接口的内核缓存块中合适的位置;
(3)发送端判断上述待发送数据Ldata是否大于k,如果大于k,则需要分片发送。如果需要分片,进入步骤(4),否则进入步骤(5);
(4)发送端和接收端采用握手应答方式对需要分片的待发送数据进行收发处理,图2列举了一种实现方式,其步骤具体如下:
(4.1)发送端从rtskb_pool中申请一个空白网络缓冲块rtskb,在发送过程中用来存放相关数据结构。将硬件头部、IP头部、UDP头部依次装入指针p开始的内核缓冲区内,形成待发送总数据包,令Lleft=Ldata;
(4.2)发送端将要发送的数据对应的用户程序、每个分片包的大小和分片包个数这些信息放到一起,组成一个小数据包,将该数据包称为“消息”,将消息发送给接收端;
(4.3)接收端收到消息后,读取其中的数据,根据数据得知发送端要发送数据的对应用户程序;
(4.4)接收端找到对应的用户程序后,将要接收数据对应的内存空间作为网卡的DMA接收缓冲,然后向发送端发送一个数据包,称为“可以发送”的消息,在接收完这段数据前不向其它发送端发送“可以发送”消息;
(4.5)发送端收到“可以发送”的消息后通过DMA方式将从p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去。发送成功后,令Lleft=Lleft-k,同时p向后移动k个字节;
(4.6)接收端用DMA方式接收数据,即将数据用DMA方式放到内存中的DMA缓冲后,也就是放入对应的用户程序的内存空间后,接收端的DMA缓冲向后移动k字节;
(4.7)发送端再从rtskb_pool中申请一个空白rtskb块,发送端分别将硬件头部和IP头部依次装入指针p开始的内核缓冲区内;
(4.8)发送端将从p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去。发送成功后,令Lleft=Lleft-k-8,同时p向后移动k+8个字节。接收端用DMA方式接收数据,接收端的DMA缓冲向后移动k+8字节;
(4.9)如果Lleft>k+8,转步骤(4.7),否则进入步骤(4.10);
(4.10)发送端将从p开始的Lleft+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去。发送完毕后,修改用户发送缓冲标记,使待发送数据可以被改写或删除,使对应的网卡缓冲可以被重新使用;
(4.11)接收端用DMA方式接收数据包完毕,通过callback方式通知用户数据可以使用,同时网卡可以向其它发送端发送“可以发送”的消息;
其中如果网卡具有SCSI功能,能够对数据进行一部分控制操作。若网卡同时具有编程功能,则步骤(4.2)-(4.5)由发送端和接收端的网卡通过交互完成,不需要收发两端的CPU参与,整个分片包收发过程采用RDMA方式。若网卡不具备上述功能,则由收发两端的CPU完成,CPU占用率较多,通信延迟较大。
(5)发送端和接收端采用直接映射方式发送和接收数据,图3列举了一种实现方式,其具体步骤为:
(5.1)发送端从rtskb_pool中申请一个空白网络缓冲块rtskb,在发送过程中用来存放相关数据结构。将硬件头部、IP头部、UDP头部依次装入指针p开始的内核缓冲区内;
(5.2)发送端将指针p开始的长度为Ldata+36字节的数据作为网卡的DMA发送缓冲,然后网卡用DMA方式将其发送出去;
(5.3)接收端将收到的数据接收到网卡的DMA缓冲区中,对网卡接收端上锁,使其暂时不能接收新的数据包;
(5.4)接收端检查新收到的数据所对应的用户程序,如果发现接收到的单片包是放在正确的位置——即网卡接收缓冲中的空闲缓冲块中,转步骤(5.6),否则进入步骤(5.5);
(5.5)从网卡接收缓冲中分配一个rtksb结构的空闲数据包,将数据拷贝过去;
(5.6)解除网卡接收端的锁,通过callback方式通知用户,同时断开该数据包和网卡的联系,分配一个新的rtskb包交由网卡管理。
本方法兼容Linux的一般通信方式。在采用本方法的时候,在接收端,如果收到非实时数据包,则用对待不分片包的方式进行接收,然后将数据包交由Linux进行处理。
在一般的实时网络环境中,数据在收发两端传输的时间不长,所以在处理分片包的时候可以全部使用RMA方式。如果在特殊情况下,网络延迟比较大,一次消息交互耗时比较长。则RMA方式中可能出现对于较小的分片数据包一次信息交互的时间大于一次数据拷贝的时间,这样采用RMA方案反而会降低***效率。***在初始化时测试各种大小数据包的通信延迟,得到该***的延迟范围,在该范围中存在一个分界点j,当数据包大小Ldata大于j时,握手应答方案传输数据通信延迟小于接收端拷贝方案;当数据包大小Ldata小于j时接收端拷贝方案传输数据通信延迟小于握手应答方案。当j>k或j≥k时,本方法将0/1拷贝方式作为一种通信方案的补充,总体结构如图4所示,其步骤如下:
在上述步骤(4)之前,先对待发送数据包的大小Ldata进行判断,如果Ldata>j或Ldata≥j时,发送端按步骤(4.1)-(4.12)对待发送数据进行处理,否则发送端按步骤(A.1-A.9)对待发送数据进行处理:
(A.1)发送端从rtskb_pool中申请一个空白网络缓冲块rtskb,在发送过程中用来存放相关数据结构。将硬件头部、IP头部、UDP头部依次装入指针p开始的内核缓冲区内,形成待发送总数据包,令Lleft=Ldata;
(A.2)发送端将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去。发送成功后,令Lleft=Lleft-k,同时p向后移动k个字节。接收端用DMA方式接收数据后,用通用的UDP协议处理接收数据;
(A.3)发送端再从rtskb_pool中申请一个空白rtskb数据块,发送端分别将硬件头部和IP头部依次装入指针p开始的内核缓冲区内;
(A.4)发送端将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去。发送成功后令Lleft=Lleft-k-8,同时p向后移动k+8个字节。
(A.5)接收端用DMA方式接收数据后,用通用的UDP协议处理接收数据;
(A.6)如果Lleft>k+8,转步骤(A.3),否则进入步骤(A.7);
(A.7)发送端将p开始的Lleft+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去;
(A.8)发送端发送数据包完毕,修改用户发送缓冲标记,使待发送数据可以被改写或删除,使对应的网卡缓冲可以被重新使用。
(A.9)接收端接收数据包完毕,通过callback方式通知用户数据可以使用,同时网卡可以向其它发送端发送“可以发送”的消息。
实例
设背景技术中三种通信方案分别为通信方案一,通信方案二和通信方案三。由于通信方案一是在realtek8139等比较简单的百兆网卡上实现的,带宽上不能突破100M/s,所以不予测试。
利用本方案在实时网络通信协议上进行了实施,本发明使用前需要停止Linux的网卡驱动模块,然后加载本发明修改后的Rtnet模块和修改后的网卡驱动模块及RTAI实时进程调度模块。同时在Rtnet上实现背景技术中的后两种零拷贝方式。测试硬件环境为:CPU为Intel 2.0G,256M内存,IntelPro1000网卡。软件环境为:Linux 9.0操作***,RTAI3.0r4实时内核模块和RTNET-0.7.1实时网络通信模块。测试方案为:从客户端向服务器端发送数据,服务器端接收到数据后向客户端回发数据,即ping-pong测试,客户端取两次时间之差即一次循环往返之差(Round-Trip Time)作为测试时间数据。一般情况下可以认为Round-Trip Time为通信延迟的2倍。经测试,k值为1472,j值为1024,所以不采用补充方案。测试结果如下:
数据包大小(byte) | RTNET(us) | 通信方案二(us) | 通信方案三(us) | 本方法(us) |
8641282565121k2k4k8k16k20k | 510520545513557556573597644749818 | 221234232259240279327383517716827 | 315315327322327354394425532675740 | 111123135166214242306396558681774 |
可见,通信延迟小于原来的Rtnet实时调度算法和背景技术中的第二种通信方式,在数据包大小小于4k时通信延迟比RMA通信方式小得多,在数据包大小大于4k时和RMA通信方式差不多,在数据包大于8k时通信延迟略大于RMA方式。考虑各种大小的数据包在实时通信中的比例,可以认为本方法在实时环境下具有较好的通信延迟。
Claims (5)
1、一种实时环境下的零拷贝通信方法,其步骤为:
(1)发送端对待发送数据进行写保护;
(2)发送端将静态***缓冲作为用户发送缓冲;
(3)发送端判断上述待发送数据的长度Ldata是否大于k,其中k为单片包内数据的最大长度,如果大于k,进入步骤(4),否则进入步骤(5);
(4)发送端和接收端采用握手应答方式发送和接收需要分片的待发送数据,处理完毕后通信结束;
(5)发送端和接收端采用直接映射方式发送和接收数据,处理完毕后通信结束。
2、根据权利要求1所述的方法,其特征在于:进入步骤(4)之前,发送端对待发送数据包的长度Ldata进行判断,当Ldata>j或Ldata≥j时,进入步骤(4),其中j为***通信延迟分界点,否则采用0/1拷贝方式对数据进行处理,处理完毕后通信结束。
3、根据权利要求2所述的方法,其特征在于:0/1拷贝方式的步骤为:
(A.1)发送端申请一个空白网络缓冲块,将硬件头部、IP头部、UDP头部依次装入指针p开始的内核缓冲区内,形成待发送总数据包,令尚未发送的数据长度Lleft=Ldata;
(A.2)发送端将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式发送该段数据,发送成功后,令Lleft=Lleft-k,同时p向后移动k个字节,接收端采用DMA方式接收数据后,采用UDP协议处理接收数据;
(A.3)发送端再申请一个空白网络缓冲块,发送端分别将硬件头部和IP头部依次装入指针p开始的内核缓冲区内;
(A.4)发送端将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式发送该段数据,发送成功后令Lleft=Lleft-k-8,同时p向后移动k+8个字节;
(A.5)接收端用DMA方式接收数据后,采用UDP协议处理接收数据;
(A.6)如果Lleft>k+8,转步骤(A.3),否则进入步骤(A.7);
(A.7)发送端将p开始的Lleft+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去;
(A.8)发送端发送数据包完毕,修改用户发送缓冲标记;
(A.9)接收端接收数据包完毕,接收完毕后通知用户。
4、根据权利要求1、2或3所述的方法,其特征在于:步骤(4)为:
(4.1)发送端申请一个空白网络缓冲块,将硬件头部、IP头部、UDP头部依次装入指针p开始的内核缓冲区内,形成待发送总数据包,令尚未发送的数据长度为Lleft=Ldata;
(4.2)发送端将有要发送的数据对应的用户程序、每个分片包的大小和分片包个数的“消息”发送给接收端;
(4.3)接收端从接收到的“消息”中分析找到上述用户程序;
(4.4)接收端将要接收数据对应的内存空间作为网卡的DMA接收缓冲,向发送端发送“可以发送”的信息;
(4.5)发送端收到“可以发送”的信息后通过DMA方式将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式发送该段数据,发送成功后,令Lleft=Lleft-k,同时p向后移动k个字节;
(4.6)接收端用DMA方式接收数据,接收端的DMA缓冲向后移动k字节;
(4.7)发送端再申请一个空白网络缓冲块,分别将硬件头部和IP头部依次装入指针p开始的内核缓冲区内;
(4.8)发送端将p开始的k+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式发送该段数据,发送成功后,令Lleft=Lleft-k-8,同时p向后移动k+8个字节,接收端采用DMA方式接收数据,接收端的DMA缓冲向后移动k+8字节;
(4.9)如果Lleft>k+8,转步骤(4.7),否则进入步骤(4.10);
(4.10)发送端将p开始的Lleft+36个字节作为网卡的DMA缓冲,然后网卡通过DMA方式将这段数据发送出去;发送完毕后,修改用户发送缓冲标记;
(4.11)接收端用DMA方式接收数据包,接收完毕后通知用户。
5、根据权利要求1、2或3所述的方法,其特征在于:步骤(5)为:
(5.1)发送申请一个空白网络缓冲块,将硬件头部、IP头部和UDP头部依次装入指针p开始的内核缓冲区内;
(5.2)发送端将指针p开始的长度为Ldata+36字节的数据作为网卡的DMA发送缓冲,然后网卡用DMA方式发送;
(5.3)接收端将收到的数据接收到网卡的DMA缓冲区中,对网卡接收端上锁;
(5.4)接收端检查新收到的数据对应的用户程序是否存放在网卡接收缓冲中的空闲缓冲块中,如果是,转步骤(5.6),否则进入步骤(5.5);
(5.5)从网卡接收缓冲中分配一个空闲数据包,拷贝数据;
(5.6)解除网卡接收端的锁,通知用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100197843A CN100486248C (zh) | 2005-11-11 | 2005-11-11 | 一种实时环境下的零拷贝通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100197843A CN100486248C (zh) | 2005-11-11 | 2005-11-11 | 一种实时环境下的零拷贝通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801806A true CN1801806A (zh) | 2006-07-12 |
CN100486248C CN100486248C (zh) | 2009-05-06 |
Family
ID=36811564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100197843A Expired - Fee Related CN100486248C (zh) | 2005-11-11 | 2005-11-11 | 一种实时环境下的零拷贝通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100486248C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464304C (zh) * | 2006-08-29 | 2009-02-25 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作***实现零拷贝的装置和方法 |
CN102300257A (zh) * | 2011-07-21 | 2011-12-28 | 西北工业大学 | 无线自组网中基于信道预约机制的多信道多址接入方法 |
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
CN104992711A (zh) * | 2015-05-27 | 2015-10-21 | 东南大学 | 一种基于移动终端的局域网集群双工语音通信方法 |
CN107066340A (zh) * | 2017-03-27 | 2017-08-18 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546612B (zh) * | 2011-12-23 | 2015-07-08 | 华中科技大学 | 用户态下基于rdma协议的远程过程调用实现方法 |
-
2005
- 2005-11-11 CN CNB2005100197843A patent/CN100486248C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464304C (zh) * | 2006-08-29 | 2009-02-25 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作***实现零拷贝的装置和方法 |
CN102300257A (zh) * | 2011-07-21 | 2011-12-28 | 西北工业大学 | 无线自组网中基于信道预约机制的多信道多址接入方法 |
CN104753813A (zh) * | 2013-12-27 | 2015-07-01 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
CN104753813B (zh) * | 2013-12-27 | 2018-03-16 | 国家计算机网络与信息安全管理中心 | Dma传送报文的方法 |
CN104992711A (zh) * | 2015-05-27 | 2015-10-21 | 东南大学 | 一种基于移动终端的局域网集群双工语音通信方法 |
CN104992711B (zh) * | 2015-05-27 | 2018-06-15 | 东南大学 | 一种基于移动终端的局域网集群双工语音通信方法 |
CN107066340A (zh) * | 2017-03-27 | 2017-08-18 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
CN107066340B (zh) * | 2017-03-27 | 2020-05-12 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100486248C (zh) | 2009-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9176911B2 (en) | Explicit flow control for implicit memory registration | |
US11023411B2 (en) | Programmed input/output mode | |
US8392565B2 (en) | Network memory pools for packet destinations and virtual machines | |
US7571247B2 (en) | Efficient send socket call handling by a transport layer | |
KR101006260B1 (ko) | 네트워크 프로토콜 처리의 오프로드에서 메모리 관리를 지원하기 위한 장치 및 방법 | |
CN1801806A (zh) | 一种实时环境下的零拷贝通信方法 | |
CA2655555A1 (en) | Methods, systems and protocols for application to application communications | |
CN1679282A (zh) | Tcp卸载的***和方法 | |
KR20130099185A (ko) | 단일 모뎀 보드 상의 개선된 멀티-셀 지원을 위한 방법 및 시스템 | |
CN1355638A (zh) | 无线通信***及其数据处理方法 | |
CN101063963A (zh) | 数据零拷贝文件的移动方法 | |
Buonadonna et al. | Queue pair IP: a hybrid architecture for system area networks | |
US20070271401A1 (en) | Techniques to moderate interrupt transfer | |
CN112948149A (zh) | 一种远端内存共享方法、装置、电子设备及存储介质 | |
US20110280243A1 (en) | TCP/IP Offload Device | |
CN1909507A (zh) | 一种报文转发方法和*** | |
CN113127139A (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN1933451A (zh) | 板间通信方法及接口板 | |
CN1742465A (zh) | 无线/lan路由器排队方法和*** | |
CN1271833C (zh) | 无需ip重组分发分组的装置和方法 | |
CN111404986A (zh) | 数据传输处理方法、设备和存储介质 | |
CN115801770A (zh) | 一种基于全用户态quic协议的大文件传输方法 | |
CN1151635C (zh) | 一种适用于集群网络服务的基于内容的通用调度*** | |
CN1282326C (zh) | 基于智能网卡的计算机间用户级并行通信的方法 | |
US20040240388A1 (en) | System and method for dynamic assignment of timers in a network transport engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090506 Termination date: 20111111 |