CN104717189A - 网络数据包的发送方法及装置 - Google Patents
网络数据包的发送方法及装置 Download PDFInfo
- Publication number
- CN104717189A CN104717189A CN201310690336.0A CN201310690336A CN104717189A CN 104717189 A CN104717189 A CN 104717189A CN 201310690336 A CN201310690336 A CN 201310690336A CN 104717189 A CN104717189 A CN 104717189A
- Authority
- CN
- China
- Prior art keywords
- network packet
- kernel spacing
- multiple little
- packet
- large network
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- 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]
-
- 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/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络数据包的发送方法及装置。其中,该方法包括:Linux操作系统的内核空间接收用户进程发送的大的网络数据包,其中,大的网络数据包的大小大于或等于内核空间能够发送的网络数据包的大小;内核空间将大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于内核空间能够发送的网络数据包的大小;内核空间利用内核空间的定时器发送多个小的网络数据包。通过本发明,达到了降低系统CPU的消耗、提高整个发包的性能的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种网络数据包的发送方法及装置。
背景技术
在基于Linux操作系统的流媒体服务器应用中,需要将大量的流媒体文件传递到IP网络上。流媒体报文传输需要很高的平稳性,需要很高的时间精度。现有传输方式下,对于每一路音频流,都需要使用网络套接字,用户进程将音频文件打包成RTP(Real-time TransportProtocol,实时传送协议)数据包后,调用UDP(User Datagram Protocol,用户数据包协议)数据包发送接口,将数据包发送出去。
UDP数据包的定时发送是通过用户态的定时器实现,由于用户态的线程较多,以及复杂的业务流程,用户态定时器的高精度很难实现。数据包之间的时间间隔抖动较大,严重影响了流媒体报文的DF参数。
而且,用户进程每发送一个音频数据包,就需要使用一次发送系统调用,每次系统调用需要先从用户态切换到内核态,系统调用返回后,再从内核态切换到用户态。在流媒体服务器负荷较重的情况下,会触发大量的数据拷贝和上下文切换操作,极大地消耗系统的CPU资源,降低系统的处理能力。可以参照图1,图1是根据相关技术的流媒体文件传递流程示意图。
由此可见,由于用户态的定时调用无法达到较高的时间进度,同时业务线程之间的调用切换也会影响到定时器的精度,每个数据包调用一次系统调用发送会导致频繁的系统调用,从而极大地消耗CPU资源,导致降低了整个系统性能和整个流媒体服务质量。
针对相关技术中流媒体文件传递方法容易降低整个系统性能和整个流媒体服务质量的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种网络数据包的发送方法及装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种网络数据包的发送方法,包括:Linux操作系统的内核空间接收用户进程发送的大的网络数据包,其中,大的网络数据包的大小大于或等于内核空间能够发送的网络数据包的大小;内核空间将大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于内核空间能够发送的网络数据包的大小;内核空间利用内核空间的定时器发送多个小的网络数据包。
优选地,Linux操作系统的内核空间接收用户进程发送的大的网络数据包包括:内核空间的协议栈接收大的网络数据包,并向内核空间的网卡驱动层发送大的网络数据包;内核空间将大的网络数据包拆分成多个小的网络数据包包括:网卡驱动层将大的网络数据包拆分成多个小的网络数据包;内核空间利用内核空间的定时器发送多个小的网络数据包包括:网卡驱动层利用定时器发送多个小的网络数据包。
优选地,在Linux操作系统的内核空间接收用户进程发送的大的网络数据包之前,还包括:设置内核空间,以使内核空间能够接收大的网络数据包。
优选地,在内核空间的协议栈接收大的网络数据包之前,还包括:设置协议栈层,以使协议栈层接收大的网络数据包并向网卡驱动层发送接收到的大的网络数据包。
优选地,设置协议栈层包括:打开Linux操作系统的UFO/GSO功能,通过UFO/GSO功能使得协议栈层接收网络数据包并向网卡驱动层发送接收到的数据包。
优选地,网卡驱动层将大的网络数据包拆分成多个小的网络数据包包括:网卡驱动层根据大的网络数据包中的IP选项头携带的时间信息,将大的网络数据包拆分成多个小的网络数据包,其中,时间信息包括:预定时间间隔和包发送时间。
优选地,网卡驱动层利用定时器发送多个小的网络数据包包括:网卡驱动层将多个小的网络数据包分别挂接到包发送时间的时间槽中;网卡驱动层每间隔一个预定时间间隔,按照挂接到时间槽中的顺序发送多个小的网络数据包。
优选地,在内核空间将网络数据包拆分成多个小的网络数据包之前,包括:申请预定数量的套接字缓存SKB用于存储多个小的网络数据包。
优选地,在系统的CPU为多核CPU的情况下,包括:为多核CPU的每个内核分配一个percpu变量和一个专用队列。
优选地,定时器为高精度定时器。
根据本发明的另一方面,提供了一种网络数据包的发送装置,位于Linux操作系统的内核空间,包括:接收模块,用于接收用户进程发送的大的网络数据包,其中,大的网络数据包的大小大于或等于内核空间能够发送的网络数据包的大小;拆分模块,用于将大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于内核空间能够发送的网络数据包的大小;发送模块,用于利用内核空间的定时器发送多个小的网络数据包。
通过本发明,采用Linux操作系统的内核空间将从用户进程接收到的大的网络数据包分成多个小的网络数据包,并利用内核空间的定时器发送多个小的网络数据包的方式,解决了相关技术中流媒体文件传递方法容易降低整个系统性能和整个流媒体服务质量的问题,可以大大降低系统调用的次数,进而达到了降低系统CPU的消耗、提高整个发包的性能的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的流媒体文件传递流程示意图;
图2是根据本发明实施例的网络数据包的发送方法流程图;
图3是根据本发明实施例的网络数据包的发送装置的结构框图;
图4是根据本发明优选实施例的数据包的组织和处理流程示意图;
图5是根据本发明优选实施例的高精度时间槽位的实现流程示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例涉及计算机应用领域的网络通信领域,主要提供一种网络数据包的发送方法及装置。当然,在实际应用中,该方法同样可以适用于类似的计算机应用领域。
本发明实施例提供了一种网络数据包的发送方法。图2是根据本发明实施例的网络数据包的发送方法流程图,如图2所示,该方法主要包括以下步骤(步骤S202-步骤S206):
步骤S202,Linux操作系统的内核空间接收用户进程发送的大的网络数据包,其中,大的网络数据包的大小大于或等于内核空间能够发送的网络数据包的大小;
步骤S204,内核空间将大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于内核空间能够发送的网络数据包的大小;
步骤S206,内核空间利用内核空间的定时器发送多个小的网络数据包。
通过上述各个步骤,Linux操作系统的内核空间可以将从用户进程接收到的大的网络数据包分成多个小的网络数据包,并利用内核空间的定时器发送多个小的网络数据包,可以大大降低系统调用的次数,进而降低系统CPU的消耗,提高了整个发包的性能。
在本实施例中,步骤S202可以通过这样的方式实现:内核空间的协议栈接收大的网络数据包,并向内核空间的网卡驱动层发送大的网络数据包;步骤S204可以通过这样的方式实现:网卡驱动层将大的网络数据包拆分成多个小的网络数据包;步骤S206可以通过这样的方式实现:网卡驱动层利用定时器发送多个小的网络数据包。
在本实施例的一个优选实施方式中,在内核空间的协议栈接收大的网络数据包之前,还可以先设置协议栈层,以使协议栈层接收大的网络数据包并向网卡驱动层发送接收到的大的网络数据包。具体地,设置协议栈层可以以这样的方式实现:打开Linux操作系统的UFO/GSO功能,通过UFO/GSO功能使得协议栈层接收网络数据包并向网卡驱动层发送接收到的数据包。
在本实施例的一个优选实施方式中,网卡驱动层将大的网络数据包拆分成多个小的网络数据包包括:网卡驱动层根据大的网络数据包中的IP选项头携带的时间信息,将大的网络数据包拆分成多个小的网络数据包,其中,时间信息包括:预定时间间隔和包发送时间。
优选地,网卡驱动层利用定时器发送多个小的网络数据包包括:网卡驱动层将多个小的网络数据包分别挂接到包发送时间的时间槽中;网卡驱动层每间隔一个预定时间间隔,按照挂接到时间槽中的顺序发送多个小的网络数据包。
在本实施例中,在执行步骤S202之前,还可以设置内核空间,以使内核空间能够接收大的网络数据包。
在本实施例中,在执行步骤S204之前,还可以申请预定数量的套接字缓存SKB用于存储多个小的网络数据包。
在本实施例中,在系统的CPU为多核CPU的情况下,可以为多核CPU的每个内核分配一个percpu变量和一个专用队列。
在本实施例中,定时器为高精度定时器,当然,高精度定时器的选择仅仅是作为一个较佳的实施方式,在实际应用中,内核空间的定时器还可以是精度较低的定时器
本发明实施例还提供了一种网络数据包的发送装置,位于Linux操作系统的内核空间,用于实现上述网络数据包的发送方法。图3是根据本发明实施例的网络数据包的发送装置的结构框图,如图3所示,该装置主要包括:接收模块10、拆分模块20及发送模块30。其中:
接收模块10,用于接收用户进程发送的大的网络数据包,其中,大的网络数据包的大小大于或等于内核空间能够发送的网络数据包的大小;拆分模块20,用于将大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于内核空间能够发送的网络数据包的大小;发送模块30,用于利用内核空间的定时器发送多个小的网络数据包。
采用上述实施例提供的网络数据包的发送方法及装置,解决了相关技术中流媒体文件传递方法容易降低整个系统性能和整个流媒体服务质量的问题,可以大大降低系统调用的次数,进而达到了降低系统CPU的消耗、提高整个发包的性能的效果。
下面结合图4和图5以及优选实施例对上述实施例提供的网络数据包的发送方法及装置进行详细的描述和说明。
本优选实施例主要提供了一种基于网口驱动层处理的实现高性能高精度定时发送多路数据包的方法,通过本优选实施例,可以在使用Linux现有协议栈的情况下,尽量减少系统调用引起的CPU消耗,从而提高系统的处理能力,而且,也能够实现高精度定时发送,有效地提升流媒体的DF性能。
首选,对该基于网口驱动层处理的实现高性能发送数据包的方法进行以下综合介绍,图4是根据本发明优选实施例的数据包的组织和处理流程示意图,如图4所示,其实现过程主要包括以下步骤:
1、网口支持UFO或者GSO特性的情况下,打开网口的UFO/GSO功能,让系统支持发送大数据包,同时能够将大数据包分割成普通大小的流媒体报文。进一步,可以通过以下几个步骤实现:
(1)驱动模块加载的时候,申请足够多的SKB(Socket Buffer,套接字缓存)缓存,用于存放后续从大包拆分后的小包,后续使用不需要不停的申请是否SKB,只需简单的更改引用计数,减少了申请释放SKB带来的CPU消耗。
(2)将驱动层的发包接口更换成自定义的接口,用于将大数据包拆分成小数据包,用于实际的对外发送。
(3)根据IP选项头带的信息,将数据包按照要求拆分成预期的小包,并将小数据包挂接到相应的发送时间槽位队列中,时间槽在B部分描述。
(4)调用原有的驱动发包接口发送拆分后的小包,从而将普通的时间间隔均匀的数据包发送出去。
2、支持高精度定时发包,在使用系统调用发送一个大包的时候,在IP选项头中告知包的发送时间以及小包之间的间隔,就可以将各个小包按照0.1ms的精度(可设置)发送出去。进一步,可以通过以下几个步骤实现:
(1)高精度定时发送采用内核高精度定时器进行定时,理论上可以达到1ns,但是CPU的消耗比较大。根据应用需要,基本上进行1ms定时就可以满足要求;
(2)在智能发送接口的定时队列设计上,根据SKB的发送时间戳,放到对应时间点的发送队列上。定时队列采用时间槽的设计方式,以1ms为精度,设计1024个槽位,分别用于存放预期在未来1.024s内将要发送的数据包。
在该方法的实现过程中,通过内核高精度定时器hrtimer,可以完成定时发送队列SKB数据包的收集工作,通过内核高优先级hitasklet,可以完成同一时间点SKB数据包的发送工作。
采用percpu变量,在多核CPU中为每个CPU核分配各自需要使用的变量和结构,同时利用网卡的多队列特性,为每个核分配一个专用的队列。多核间基本上进行无锁编程,最大限度减少开销和发包冲突。采用rwlock或者rculock尽量减少必要锁的调用开销。
其中,利用了网卡的UFO特性,使得可以发送一个大包,并在协议栈部分不会被分包,这样在网络驱动层对大数据包进行拆封,可以满足用户需要的发包格式要求,又大大降低了系统调用的次数,有效的降低了系统CPU的消耗。
其中,利用了内核的高精度定时器,加上时间槽位的设计思路,有效的提供了高精度的定时发送功能,同时高效的时间槽位的发包策略降低了CPU调度的花销,有效提高CPU性能。
本优选实施例中,服务器的软硬件包括用户进程空间、Linux内核空间和硬件设备(包括网卡)。在硬件设备与用户进程之间是Linux内核空间,在该内核空间内的网卡驱动程序之前使用本分包发动处理模块,用户态使用标准协议栈发送数据,无需对用户态的接口进行大的整动,只需要通过setsocktopt接口对IP选项头进行设置,从而通知网络驱动层这个数据包需要分包,以及安什么样的格式来分包。IP选项头的参数数据结构如下。
参数说明如下:
本优选实施例的实施的硬件环境要求有网卡,软件环境为网络功能正常的Linux内核。为了实现高性能发送数据包的功能,在原有网络驱动接口基础上,增加对大包进行分包处理的过程。
图5是根据本发明优选实施例的高精度时间槽位的实现流程示意图,如图5所示,该流程主要包括:
首先将原有网口驱动的发包接口跟换成我们的处理接口,对需要分包的数据进行分包,不需要的走原始流程,然后将分包后的数据包按照发送时间挂接到相应的时间槽位上,使用1ms高进度定时器(可以通过参数调整)来从相应的时间槽位上获取发包队列,使用网络驱动层的原始接口进行发包,整个过程在内核态实现,不需要不停的进行用户态和内核态的切换,有效降低的系统调用的开销。
在拆包过程中,给每个常规数据包使用的SKB结构体预先分配,使用和释放过程中只需要增加或者减少引用计数。拆包过程中,只进行数据包头部信息的拷贝,载荷部分直接通过page结构引用即可。拆包完成后,给每个SKB数据包打上预期发送时间戳。通过这样的方式,可以有效降低频繁申请释放SKB所使用的系统消耗。
本优选实施例中,采用percpu变量,在多核CPU中为每个CPU核分配各自需要使用的变量和结构,同时利用网卡的多队列特性,为每个核分配一个专用的队列。多核间基本上进行无锁编程,最大限度减少开销和发包冲突。采用rwlock或者rculock尽量减少必要锁的调用开销。
需要说明的是,上述各个模块是可以通过硬件来实现的。例如:一种处理器,包括上述各个模块,或者,上述各个模块分别位于一个处理器中。
在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。
在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于:光盘、软盘、硬盘、可擦写存储器等。
从以上的描述中,可以看出,本发明实现了如下技术效果:由于充分适应了流媒体发包的需求,在网口驱动层实现大包转小包、高精度定时发送的功能,有效的提高了整个发包的性能。其主要利用了原有的Linux网络协议栈,数据包的处理跟定时发送利用内核模块机制实现,内核模块的加载和卸载都不会影响Linux内核原有的网络协议栈。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种网络数据包的发送方法,其特征在于,包括:
Linux操作系统的内核空间接收用户进程发送的大的网络数据包,其中,所述大的网络数据包的大小大于或等于所述内核空间能够发送的网络数据包的大小;
所述内核空间将所述大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于所述内核空间能够发送的网络数据包的大小;
所述内核空间利用所述内核空间的定时器发送所述多个小的网络数据包。
2.根据权利要求1所述的方法,其特征在于,
Linux操作系统的内核空间接收用户进程发送的大的网络数据包包括:所述内核空间的协议栈接收所述大的网络数据包,并向所述内核空间的网卡驱动层发送所述大的网络数据包;
所述内核空间将所述大的网络数据包拆分成多个小的网络数据包包括:所述网卡驱动层将所述大的网络数据包拆分成所述多个小的网络数据包;
所述内核空间利用所述内核空间的定时器发送所述多个小的网络数据包包括:所述网卡驱动层利用所述定时器发送所述多个小的网络数据包。
3.根据权利要求1所述的方法,其特征在于,在Linux操作系统的内核空间接收用户进程发送的大的网络数据包之前,还包括:
设置所述内核空间,以使所述内核空间能够接收所述大的网络数据包。
4.根据权利要求2所述的方法,其特征在于,在所述内核空间的协议栈接收所述大的网络数据包之前,还包括:
设置所述协议栈层,以使所述协议栈层接收所述大的网络数据包并向所述网卡驱动层发送接收到的所述大的网络数据包。
5.根据权利要求4所述的方法,其特征在于,设置所述协议栈层包括:打开所述Linux操作系统的UFO/GSO功能,通过所述UFO/GSO功能使得所述协议栈层接收所述网络数据包并向所述网卡驱动层发送接收到的数据包。
6.根据权利要求2所述的方法,其特征在于,所述网卡驱动层将所述大的网络数据包拆分成所述多个小的网络数据包包括:
所述网卡驱动层根据所述大的网络数据包中的IP选项头携带的时间信息,将所述大的网络数据包拆分成所述多个小的网络数据包,其中,所述时间信息包括:所述预定时间间隔和包发送时间。
7.根据权利要求2所述的方法,其特征在于,所述网卡驱动层利用所述定时器发送所述多个小的网络数据包包括:
所述网卡驱动层将所述多个小的网络数据包分别挂接到所述包发送时间的时间槽中;
所述网卡驱动层每间隔一个所述预定时间间隔,按照挂接到所述时间槽中的顺序发送所述多个小的网络数据包。
8.根据权利要求1至7中任一项所述的方法,其特征在于,在所述内核空间将所述网络数据包拆分成多个小的网络数据包之前,包括:
申请预定数量的套接字缓存SKB用于存储所述多个小的网络数据包。
9.根据权利要求8所述的方法,其特征在于,在系统的CPU为多核CPU的情况下,包括:
为所述多核CPU的每个内核分配一个percpu变量和一个专用队列。
10.根据权利要求1所述的方法,其特征在于,所述定时器为高精度定时器。
11.一种网络数据包的发送装置,其特征在于,位于Linux操作系统的内核空间,包括:
接收模块,用于接收用户进程发送的大的网络数据包,其中,所述大的网络数据包的大小大于或等于所述内核空间能够发送的网络数据包的大小;
拆分模块,用于将所述大的网络数据包拆分成多个小的网络数据包,其中,每个小的网络数据包的大小小于或等于所述内核空间能够发送的网络数据包的大小;
发送模块,用于利用所述内核空间的定时器发送所述多个小的网络数据包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310690336.0A CN104717189A (zh) | 2013-12-16 | 2013-12-16 | 网络数据包的发送方法及装置 |
PCT/CN2014/078562 WO2014180397A1 (zh) | 2013-12-16 | 2014-05-27 | 网络数据包的发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310690336.0A CN104717189A (zh) | 2013-12-16 | 2013-12-16 | 网络数据包的发送方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104717189A true CN104717189A (zh) | 2015-06-17 |
Family
ID=51866777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310690336.0A Pending CN104717189A (zh) | 2013-12-16 | 2013-12-16 | 网络数据包的发送方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104717189A (zh) |
WO (1) | WO2014180397A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245271A (zh) * | 2015-10-27 | 2016-01-13 | 航天恒星科技有限公司 | 卫星通信网络加速装置以及方法 |
CN106230661A (zh) * | 2016-08-01 | 2016-12-14 | 北京大学 | 网络数据延迟控制方法 |
CN109218302A (zh) * | 2018-09-07 | 2019-01-15 | 视联动力信息技术股份有限公司 | 一种发送视联网数据包的方法和装置 |
CN109697034A (zh) * | 2018-12-19 | 2019-04-30 | 北京字节跳动网络技术有限公司 | 一种数据写入方法、装置、电子设备及存储介质 |
CN111447046A (zh) * | 2020-03-26 | 2020-07-24 | 广州市百果园信息技术有限公司 | 业务数据传输方法、装置、设备和存储介质 |
CN111698274A (zh) * | 2019-03-15 | 2020-09-22 | 华为技术有限公司 | 数据处理方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468400A (zh) * | 2015-08-03 | 2016-04-06 | 汉柏科技有限公司 | 一种基于linux用户态调用定时器的方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001766A2 (en) * | 2001-06-22 | 2003-01-03 | Inktomi Corporation | Efficient data transmissions based on a policy |
US20030152036A1 (en) * | 2002-02-14 | 2003-08-14 | International Business Machines Corporation | Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101340574A (zh) * | 2008-08-04 | 2009-01-07 | 中兴通讯股份有限公司 | 一种实现零拷贝发送流媒体数据的方法及系统 |
CN101447925A (zh) * | 2008-12-17 | 2009-06-03 | 中兴通讯股份有限公司 | 一种发送多路数据包的方法及系统 |
CN102156662A (zh) * | 2011-02-14 | 2011-08-17 | 大唐移动通信设备有限公司 | 一种数据处理方法和设备 |
CN102714612A (zh) * | 2010-01-19 | 2012-10-03 | 西门子公司 | 以太网网络实时性的提高 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200826571A (en) * | 2006-12-08 | 2008-06-16 | Univ Nat Chiao Tung | Identification and management system and method applicable to a point-to-point gateway |
CN100558089C (zh) * | 2007-06-08 | 2009-11-04 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
CN101873640B (zh) * | 2010-05-27 | 2013-04-24 | 华为终端有限公司 | 流量处理方法、装置和移动终端 |
CN102325136A (zh) * | 2011-09-08 | 2012-01-18 | 中兴通讯股份有限公司 | 一种实现准实时发送媒体数据的方法 |
CN102710501B (zh) * | 2012-05-14 | 2015-10-28 | 深圳市共进电子股份有限公司 | 一种移动终端及其在隧道通信模式下的带宽动态调整方法 |
-
2013
- 2013-12-16 CN CN201310690336.0A patent/CN104717189A/zh active Pending
-
2014
- 2014-05-27 WO PCT/CN2014/078562 patent/WO2014180397A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001766A2 (en) * | 2001-06-22 | 2003-01-03 | Inktomi Corporation | Efficient data transmissions based on a policy |
US20030152036A1 (en) * | 2002-02-14 | 2003-08-14 | International Business Machines Corporation | Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections |
CN101135980A (zh) * | 2006-08-29 | 2008-03-05 | 飞塔信息科技(北京)有限公司 | 一种基于Linux操作系统实现零拷贝的装置和方法 |
CN101340574A (zh) * | 2008-08-04 | 2009-01-07 | 中兴通讯股份有限公司 | 一种实现零拷贝发送流媒体数据的方法及系统 |
CN101447925A (zh) * | 2008-12-17 | 2009-06-03 | 中兴通讯股份有限公司 | 一种发送多路数据包的方法及系统 |
CN102714612A (zh) * | 2010-01-19 | 2012-10-03 | 西门子公司 | 以太网网络实时性的提高 |
CN102156662A (zh) * | 2011-02-14 | 2011-08-17 | 大唐移动通信设备有限公司 | 一种数据处理方法和设备 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245271A (zh) * | 2015-10-27 | 2016-01-13 | 航天恒星科技有限公司 | 卫星通信网络加速装置以及方法 |
CN105245271B (zh) * | 2015-10-27 | 2019-12-13 | 航天恒星科技有限公司 | 卫星通信网络加速装置以及方法 |
CN106230661A (zh) * | 2016-08-01 | 2016-12-14 | 北京大学 | 网络数据延迟控制方法 |
CN106230661B (zh) * | 2016-08-01 | 2019-05-14 | 北京大学 | 网络数据延迟控制方法 |
CN109218302A (zh) * | 2018-09-07 | 2019-01-15 | 视联动力信息技术股份有限公司 | 一种发送视联网数据包的方法和装置 |
CN109697034A (zh) * | 2018-12-19 | 2019-04-30 | 北京字节跳动网络技术有限公司 | 一种数据写入方法、装置、电子设备及存储介质 |
CN109697034B (zh) * | 2018-12-19 | 2022-04-29 | 北京字节跳动网络技术有限公司 | 一种数据写入方法、装置、电子设备及存储介质 |
CN111698274A (zh) * | 2019-03-15 | 2020-09-22 | 华为技术有限公司 | 数据处理方法及装置 |
CN111698274B (zh) * | 2019-03-15 | 2021-11-19 | 华为技术有限公司 | 数据处理方法及装置 |
US11397627B2 (en) | 2019-03-15 | 2022-07-26 | Huawei Technologies Co., Ltd. | System call batching for network I/O |
US11809925B2 (en) | 2019-03-15 | 2023-11-07 | Huawei Technologies Co., Ltd. | Data processing method and apparatus |
CN111447046A (zh) * | 2020-03-26 | 2020-07-24 | 广州市百果园信息技术有限公司 | 业务数据传输方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2014180397A1 (zh) | 2014-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104717189A (zh) | 网络数据包的发送方法及装置 | |
CN101340574B (zh) | 一种实现零拷贝发送流媒体数据的方法及系统 | |
CN107623646B (zh) | 数据流传输方法、发送设备及接收设备 | |
EP2312807B1 (en) | Method and system for enabling zero-copy transmission of streaming media data | |
EP2755363B1 (en) | Data-fast-distribution method and device | |
KR102410422B1 (ko) | 네트워크에서의 분산 프로세싱 | |
CN109768939A (zh) | 一种支持优先级的标签化网络栈方法和系统 | |
CN103945456A (zh) | 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法 | |
US20040213243A1 (en) | Transmission components for processing VLAN tag and priority packets supported by using single chip's buffer structure | |
CN107659515A (zh) | 报文处理方法、装置、报文处理芯片及服务器 | |
US9538545B2 (en) | Mapping data traffic throughout protocol layers based on priority information | |
US11347567B2 (en) | Methods and apparatus for multiplexing data flows via a single data structure | |
CN112953967A (zh) | 网络协议卸载装置和数据传输系统 | |
CN101374154A (zh) | 一种远程过程调用请求的处理方法和装置 | |
CN103997500A (zh) | 一种轻量级实时tcp/ip协议栈的实现方法 | |
US11570120B2 (en) | Methods and systems for data transmission | |
KR20220128989A (ko) | 가상화된 케이블 데이터 평면 애플리케이션을 위해 유연한 확장 및 동적 자원 할당을 통한 자동화된 수명 주기 관리 | |
CN113127139B (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN108541361A (zh) | 用于多信道网络中的仲裁和自适应功率循环的方法 | |
CN104102494A (zh) | 无线通信基站空口数据cipher加速方法 | |
CN100428670C (zh) | 流媒体服务器用户层通信方法 | |
EP2304575A1 (en) | Method and device to perform direct memory access | |
US11811581B2 (en) | IPDR communication system for virtualized core sources | |
CN103746935A (zh) | 一种基于应用层协议的带宽合并中间件系统 | |
CN118200253A (zh) | 面向rdma ud传输的可靠通信方法、电子设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150617 |