CN106776031B - 一种数据发送方法及装置 - Google Patents
一种数据发送方法及装置 Download PDFInfo
- Publication number
- CN106776031B CN106776031B CN201611193286.5A CN201611193286A CN106776031B CN 106776031 B CN106776031 B CN 106776031B CN 201611193286 A CN201611193286 A CN 201611193286A CN 106776031 B CN106776031 B CN 106776031B
- Authority
- CN
- China
- Prior art keywords
- connection
- priority
- layer
- task
- network device
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例涉及计算机技术领域,尤其涉及一种数据发送方法及装置,用于根据数据的帧级特性合理分配资源。本发明实施例中,确定用于发送第一任务的帧数据的第一连接;根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;网络设备驱动层根据第一连接的连接优先级调整发送队列;根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。网络设备驱动层根据连接优先级调整发送队列,网络协议栈根据与连接优先级相对应的任务调度方式和任务优先级对帧数据进行分批处理,从而可以根据帧数据的特性合理分配资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据发送方法及装置。
背景技术
操作系统可以设置某个任务的调度方法和优先级,之后,此任务执行的所有阶段都按照设置的调度方法和优先级运行,任务无法感知处理对象的特性,无法动态适应;在传输数据时,设置某个连接的优先级,以得到更好的传输资源调度和分配,但是连接无法感知传输数据的帧级特性,因此也无法最佳适用媒体帧数据的传输。
现有的技术方案通过操作系统设置任务的调度方式和优先级,再针对某个具体的连接设置优先级等参数,这两个设置互相独立,各自起效,因此无法保证连接进行媒体帧传输所特别需要的计算资源、带宽资源的合理分配;例如,当下载和实时任务并存的时候,实时任务就算拥有足够的任务优先级,也有可能出现硬件的发送队列里排满下载数据,实时数据无法立刻抢占硬件发送资源的情况,实时任务的数据必须等硬件发送队列里的下载数据发送完毕后才会被发送,从而造成实时任务时延。
综上所述,现有技术方案中无法根据数据的帧级特性合理分配资源。
发明内容
本发明提供一种数据发送方法及装置,用以解决现有技术中存在的无法根据数据的帧级特性合理分配资源的问题。
本发明实施例提供一种数据发送方法,包括:
确定用于发送第一任务的帧数据的第一连接;
获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;
将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;
根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。
可选地,确定用于发送第一任务的帧数据的第一连接之前,还包括:
建立多个连接;
根据预先设定的连接优先级策略,为每个连接配置该连接的连接优先级。
可选地,将第一连接的连接优先级发送至网络设备驱动层,包括:
将第一连接的连接优先级和帧数据的大小依次发送至软中断层和网络设备驱动层;
获取软中断层确定的帧数据的分批数,分批数是根据网络设备驱动层反馈的调度耗时和网络协议栈反馈的处理耗时确定的。
可选地,包括:
分批报文将被分别发送至网络设备驱动层的发送队列中,包括:
软中断层和网络设备驱动层为每种连接优先级设置发送队列;
根据第一连接的连接优先级,将分批后的帧数据发送至软中断层中第一连接的连接优先级对应的发送队列,并由软中断层将帧数据发送至网络设备驱动层中第一连接的连接优先级对应的发送队列,以使网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
可选地,将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序,包括:
将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层判断第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;
若第一连接的连接优先级高于第二连接的连接优先级,则网络设备驱动层缩短通过第二连接接收的数据的发送时间,以便尽快处理通过第一连接接收的数据。
本发明实施例提供一种数据发送装置,包括:
选择模块,用于确定用于发送第一任务的帧数据的第一连接;
设置模块,用于获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;
发送模块,用于将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;
调用模块,用于根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。
可选地,还包括:
建立模块,用于建立多个连接,并根据预先设定的连接优先级策略,为每个连接配置该连接的连接优先级。
可选地,包括:
发送模块,具体用于将第一连接的连接优先级和帧数据的大小依次发送至软中断层和网络设备驱动层;
调用模块,还用于获取软中断层确定的帧数据的分批数,分批数是根据网络设备驱动层反馈的调度耗时和网络协议栈反馈的处理耗时确定的。
可选地,包括:
软中断层和网络设备驱动层为每种连接优先级设置发送队列;
发送模块,具体用于根据第一连接的连接优先级,将分批后的帧数据发送至软中断层中第一连接的连接优先级对应的发送队列,并由软中断层将帧数据发送至网络设备驱动层中第一连接的连接优先级对应的发送队列,以使网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
可选地,包括:
发送模块,还用于将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层判断第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;
若第一连接的连接优先级高于第二连接的连接优先级,则网络设备驱动层缩短通过第二连接接收的数据的发送时间,以便尽快处理通过第一连接接收的数据。
本发明实施例提供一种数据发送方法及装置,包括:确定用于发送第一任务的帧数据的第一连接;获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。根据上述方法,在对帧数据处理过程中,会获取其任务所用的连接的优先级;根据连接优先级设置任务的调度方式和任务优先级,从而确保连接优先级与任务优先级的相适宜;且网络设备驱动层会根据连接优先级调整发送队列,网络协议栈会根据任务的任务调度方式和任务优先级对帧数据进行分批处理,从而可以根据帧数据的特性合理分配资源并提高了软件层与硬件层的并行化处理。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据发送方法流程示意图;
图2为本发明实施例提供的一种任务与连接的关系对照图;
图3为本发明实施例提供的一种软中断层与网络设备驱动层中发送队列与连接优先级的对应方式;
图4为本发明实施例提供的一种完整数据发送流程示意图;
图5为本发明实施例提供的一种数据发送装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性示出了本发明实施例提供的一种数据发送方法流程示意图,如图1所示,包括以下步骤:
步骤S101:确定用于发送第一任务的帧数据的第一连接;
步骤S102:获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;
步骤S103:将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;
步骤S104:根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。
在上述实施例中,操作系统中以任务的方式处理数据,每个任务以连接的方式传输数据。图2示例性示出了本发明实施例提供的一种任务与连接的关系对照图。如图2所示,一个任务会对应多个连接,一个连接会对应多个任务。在本发明实施例中,根据系统处理的业务类型预先设定好各连接的类型及对应的连接优先级。在发送帧数据时,首先确定帧数据对应的连接优先级,具体实施中,可根据实际业务具体对应关系来从各连接中确定该帧数据对应的连接。根据帧数据的连接优先级重置任务的任务调度方式和任务优先级,以使网络设备驱动层与网络协议栈尽可能的并行化,同时网络设备驱动层根据连接优先级调整发送队列中已有数据的发送次序,以便在帧数据层面抢占资源。
上述实施例中,操作系统对每个任务预先设置了任务的任务调度方式和任务优先级,在任务处理的帧数据不同时,会根据每个帧数据对应的连接优先级重置任务的任务调度方式和任务优先级;在帧数据处理完之后,将恢复任务的任务调度方式和任务优先级,以便根据任务的下一个帧数据对应的连接优先级进行针对性处理。
可选的,根据预先设定的连接优先级策略,建立多个连接并为每个连接配置该连接的连接优先级。根据每个系统会处理的业务类型,确定该系统中对应的连接的类型,并根据各业务类型之间的优先级关系设置连接优先级。例如在监控系统中,常见的业务类型有实时播放、回放和下载,故可针对三种业务类型设定三种连接优先级,可选的为了兼顾现有系统对连接优先级的设置,保存了默认级别的连接优先级。如表一所示,连接优先级分为四种:A、B、Default和C,在A、B、C三种连接优先级下又有进一步的细分。连接优先级由两部分组成,包括优先级种类及某种类内的分级,例如ConnPriority-A(0~N),“ConnPriority-A”是优先级种类,它包含的“0~N”是该种类内的分级,这两部分有机组成连接优先级。
表一
对于连接优先级A(ConnPriority-A),它适用于实时(Live)媒体数据传输应用业务,既要让单帧数据最快得到发送,又要让单帧数据无间断发送,并且必须让软件和硬件对数据的处理最优并行进行;连接优先级A内部再按0~N分级,数字0相对优先级最低,数字N相对优先级最高,适应多个实时流并发的应用场景;对于连接优先级B(ConnPriority-B),它适用于在线回放(Playback)媒体数据传输应用业务,回放的优先级低于实时业务,但是回放时也需要稳定无间断发送帧数据;连接优先级B内部再按0~M分级,数字0相对优先级最低,数字M相对优先级最高,适应多个回放流并发的应用场景;对于默认(Default),即与现存系统一样;对于连接优先级C(ConnPriority-C),它适用于在线下载(Download)媒体数据传输应用业务,下载时尽量利用系统剩余的软件资源和硬件资源,让下载的速率最佳,同时又不影响其它任何业务,尤其是实时和回放业务,因为实时和回放业务受影响时会引起画面卡顿等不良用户体验,此外,下载业务也不能影响系统里的其它会引起核心业务抖动的任务;连接优先级C内部再按0~P分级,数字0相对优先级最低,数字P相对优先级最高,适应多个下载流并发的应用场景。
可选的,预先设定好连接优先级对应的任务调度方式和任务优先级,以上述表一的实施例为例,表二为本发明实施例提供的一种在Linux环境下连接优先级与任务调度方式和任务优先级的对应方式,如表二所示,不同连接优先级对应着不同的任务调度方式和任务优先级。如,优先级为A的连接对应的任务调度方式为SCHED_FIFO,即若传输帧数据的连接的优先级为A20,则帧数据对应的任务调度方式为SCHED_FIFO,任务优先级为21。可选地,根据具体使用环境改变表一中的配置,如增加或减少优先级的分类,调整连接优先级对应的任务调度方式和任务优先级等。表二仅为一种具体实现方式,从表二可以看出,在连接优先级高时,设置的任务的任务调度方式和任务优先级也比较高效。
表二
可选的,将第一连接的连接优先级和帧数据的大小依次发送至软中断层和网络设备驱动层;获取软中断层确定的帧数据的分批数,分批数是根据网络设备驱动层反馈的调度耗时和网络协议栈反馈的处理耗时确定的。为防止大量数据同时发送到网络设备驱动层而引起系统故障,设置软中断层;软中断层可存储从网络协议栈发送的数据,并根据网络设备驱动层的需求将数据发送给网络设备驱动层。为了确保网络设备驱动层对应的硬件层对数据的处理与网络协议栈对应的软件层的数据处理的同步,防止硬件处理过快而软件层需发送的数据尚未处理完等问题,由软中断层确定帧数据的分批数,最大化实现两者之间的并行化。分批数的确定根据网络设备驱动层反馈的调度耗时和所述网络协议栈反馈的处理耗时,具体实现可有多种方式,在具体实施中,也可结合历史经验对数据进行调整。由于此分批发送报文数是根据网络协议栈处理耗时和网络设备驱动层的调度耗时结果计算获得的,使得当帧数据根据此分批发送报文数进行分批后,一批报文在网络设备驱动层发送完毕的同时,其下一批报文也刚好完成网络协议栈的处理过程,可以立即被网络设备驱动层发送,即实现了网络协议栈处理与硬件发送之间的并行化。
可选的,分批报文将被分别发送至网络设备驱动层的发送队列中,包括:软中断层和网络设备驱动层为每种连接优先级设置发送队列;根据第一连接的连接优先级,将分批后的帧数据发送至软中断层中第一连接的连接优先级对应的发送队列,并由软中断层将帧数据发送至网络设备驱动层中第一连接的连接优先级对应的发送队列,以使网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
图3为本发明实施例提供的一种软中断层与网络设备驱动层中发送队列与连接优先级的对应方式示意图,图3仅示出了连接优先级A在软中断层和网络设备驱动层中对应的发送队列,如图3所示,连接优先级A中又按0~N分级,其中,在连接优先级A的内部分级中,N优先级最高,0优先级最低。在软中断层和网络设备驱动层中,分别包含与连接优先级A对应的A级发送队列,在A级发送队列中也有0~N个分级,其中,发送队列中的0与连接优先级的N级分级相对应,其优先级最高,发送队列中的N与连接优先级中的0级分级相对应,其优先级最低。在具体调度过程中,分批发送的报文被根据第一连接的连接优先级设置,投递到发送软中断层相应的队列,唤醒发送软中断,例如,第一连接的优先级为AN,则通过第一连接发送的帧数据在软中断层的队列为A0,将被软中断层最先发送至网络设备驱动层中的A0队列,而在网络设备驱动层中,此数据也将被最快发送出去。每批报文进入软中断发送层的队列不一样,根据第一连接的连接优先级设置;可选地,在软中断层和网络设备驱动层都有独立队列,以适应存在多核处理器及多网络设备绑定的物理环境
可选的,网络设备驱动层在根据连接优先级进行发送队列调整时,包括:将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层判断第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;若第一连接的连接优先级高于所述第二连接的连接优先级,则网络设备驱动层缩短通过第二连接接收的数据的发送时间,以便尽快处理通过所述第一连接接收的数据。网络设备驱动层缩短通过所述第二连接接收的数据的发送时间,可以是停止对第二连接的连接优先级对应的发送队列的数据调度,剪短硬件发送列表中正在发送数据的长度,减小硬件中断生成间隔等方式尽快结束目前的发送。若此时网络设备驱动层并未正在发送数据,则网络设备驱动层按发送列表对应的优先级,从高至低,依次处理各级发送队列中的数据。可选地,在网络设备驱动层调整发送队列的同时,软中断层也会根据连接优先级调整发送队列,以改变数据发送至网络设备驱动层的顺序。通过调整发送队列,将优先级高的连接传送的数据抢占现有资源,可以使得高优先级的连接发送的数据能被尽快发送从而减少了高优先级数据的等待时间,即实现了根据数据的帧级特性合理分配资源的功能。
以帧数据FrameW为例,图4示例性示出了本发明实施例提供的一种完整数据发送流程示意图,如图4所示,包括以下步骤:
S401:确定使用连接SocketX发送帧数据FrameW;
S402:读取SocketX的连接优先级,并根据SocketX的连接优先级设定任务调度方式和任务优先级;
S403:将SocketX的连接优先级设置及FrameW大小通知到软中断层及网络设备驱动层,同时获得分批发送报文数;软中断层和网络设备驱动层同时调整自身发送队列;
S404:调用SocketX的网络协议栈处理FrameW,参考分批发送报文数进行分批处理;
S405:把分批发送的报文,根据SocketX的连接优先级设置,投递到软中断层相应的队列,唤醒软中断层;软中断层根据发送队列的优先级顺序依次将数据发送至网络设备驱动层中的相应优先级的发送队列以使网络设备驱动层根据发送队列的优先级顺序依次处理报文数据;
S406:判断FrameW的所有报文数据是否都已处理完成,若是,则执行步骤S407,若否,则返回步骤S404;
S407:恢复初始的任务调度方式和优先级;
S408:完成使用SocketX发送数据。
可选地,本发明实施例提供了一种高连接优先级抢占低连接优先级资源的情形。以连接Socket1和连接Socket2为例,Socket1用于处理实时流,最高优先级,最低时延,不允许打断,其连接优先级为ConnPriority-A(98);Socket2用于处理下载流,最低优先级,系统完成其它业务处理的剩余资源处理此业务,其连接优先级为ConnPriority-C(19),Socket2在系统空闲的时候,已经从磁盘读取大量数据,推送到软中断层和网络设备驱动层,软中断层和网络硬件设备发送队列里全部是此连接的待发送数据。当开始发送实时数据FrameW到Socket1时,会获取Socket1的连接优先级设置并将任务调度方式变成SCHED_FIFO(99),在处理FrameW的时候,就能够获得全部CPU计算资源,包括阻止从磁盘读取下载数据的任务运行,确保FrameW被处理时候的不会被任何其它任务打断;将发送FrameW到Socket1的信息通知到发送软中断层和网络设备驱动层,这两层得知此情况,会及时掐断正在处理的队列,为新来的数据腾出处理资源,实现处理和硬件资源的抢占,保证FrameW的发送实时性;
本发明实施例提供一种数据发送方法,包括:确定用于发送第一任务的帧数据的第一连接;获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。根据上述方法,在对帧数据处理过程中,会获取其任务所用的连接的优先级;根据连接优先级设置任务的调度方式和任务优先级,从而确保连接优先级与任务优先级的相适宜;且网络设备驱动层会根据连接优先级调整发送队列,网络协议栈会根据任务的任务调度方式和任务优先级对帧数据进行分批处理,从而可以根据帧数据的特性合理分配资源并提高了软件层与硬件层的并行化处理。
基于相同的技术构思,本发明实施例还提供一种数据发送装置。图5示例性示出了本发明实施例提供的一种数据发送装置,如图5所示,本发明实施例包括:选择模块501,设置模块502,发送模块503,调用模块504,其中:
选择模块501,用于确定用于发送第一任务的帧数据的第一连接;
设置模块502,用于获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;
发送模块503,用于将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;
调用模块504,用于根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。
可选地,还包括:
建立模块505,用于建立多个连接,并根据预先设定的连接优先级策略,为每个连接配置该连接的连接优先级。
可选地,发送模块503,具体用于将第一连接的连接优先级和帧数据的大小依次发送至软中断层和网络设备驱动层;
调用模块504,还用于获取软中断层确定的帧数据的分批数,分批数是根据网络设备驱动层反馈的调度耗时和网络协议栈反馈的处理耗时确定的。
可选地,包括:
软中断层和网络设备驱动层为每种连接优先级设置发送队列;
发送模块503,具体用于根据第一连接的连接优先级,将分批后的帧数据发送至软中断层中第一连接的连接优先级对应的发送队列,并由软中断层将帧数据发送至网络设备驱动层中第一连接的连接优先级对应的发送队列,以使网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
可选地,包括:
发送模块503,还用于将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层判断第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;
若第一连接的连接优先级高于第二连接的连接优先级,则网络设备驱动层缩短通过第二连接接收的数据的发送时间,以便尽快处理通过第一连接接收的数据。
综上所述,本发明实施例提供一种数据发送方法及装置,包括:确定用于发送第一任务的帧数据的第一连接;获取第一连接的连接优先级,并根据第一连接的连接优先级设置第一任务的任务调度方式和任务优先级;将第一连接的连接优先级发送至网络设备驱动层,以使网络设备驱动层根据第一连接的连接优先级调整发送队列中已有数据的发送次序;根据第一任务的任务调度方式和任务优先级,调用网络协议栈对帧数据进行分批处理从而获取分批报文,分批报文将被分别发送至网络设备驱动层的发送队列中。根据上述方法,在对帧数据处理过程中,会获取其任务所用的连接的优先级;根据连接优先级设置任务的调度方式和任务优先级,从而确保连接优先级与任务优先级的相适宜;且网络设备驱动层会根据连接优先级调整发送队列,网络协议栈会根据任务的任务调度方式和任务优先级对帧数据进行分批处理,从而可以根据帧数据的特性合理分配资源并提高了软件层与硬件层的并行化处理。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种数据发送方法,其特征在于,包括:
确定用于发送第一任务的帧数据的第一连接;
获取所述第一连接的连接优先级,并根据所述第一连接的连接优先级设置所述第一任务的任务调度方式和任务优先级;
将所述第一连接的连接优先级发送至网络设备驱动层,以使所述网络设备驱动层根据所述第一连接的连接优先级调整发送队列中已有数据的发送次序;
将所述第一连接的连接优先级和所述帧数据的大小发送至软中断层,获取所述软中断层确定的所述帧数据的分批数,所述分批数是根据所述网络设备驱动层反馈的调度耗时和所述网络协议栈反馈的处理耗时确定的;根据所述第一任务的任务调度方式和任务优先级,调用网络协议栈按照所述软中断层确定的所述帧数据的分批数,对所述帧数据进行分批处理从而获取分批报文,所述分批报文将被分别发送至所述软中断层,由所述软中断层发送至所述网络设备驱动层的发送队列中。
2.如权利要求1所述的方法,其特征在于,确定用于发送第一任务的帧数据的第一连接之前,还包括:
建立多个连接;
根据预先设定的连接优先级策略,为每个连接配置该连接的连接优先级。
3.如权利要求1所述的方法,其特征在于,包括:
所述分批报文将被分别发送至所述软中断层,由所述软中断层发送至所述网络设备驱动层的发送队列中,包括:
所述软中断层和所述网络设备驱动层为每种连接优先级设置发送队列;
根据所述第一连接的连接优先级,将分批后的帧数据发送至所述软中断层中所述第一连接的连接优先级对应的发送队列,并由所述软中断层将帧数据发送至所述网络设备驱动层中所述第一连接的连接优先级对应的发送队列,以使所述网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
4.如权利要求1至3任一项所述的方法,其特征在于,将所述第一连接的连接优先级发送至所述网络设备驱动层,以使所述网络设备驱动层根据所述第一连接的连接优先级调整发送队列中已有数据的发送次序,包括:
将所述第一连接的连接优先级发送至所述网络设备驱动层,以使所述网络设备驱动层判断所述第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;
若所述第一连接的连接优先级高于所述第二连接的连接优先级,则所述网络设备驱动层缩短通过所述第二连接接收的数据的发送时间,以便尽快处理通过所述第一连接接收的数据。
5.一种数据发送装置,其特征在于,包括:
选择模块,用于确定用于发送第一任务的帧数据的第一连接;
设置模块,用于获取所述第一连接的连接优先级,并根据所述第一连接的连接优先级设置所述第一任务的任务调度方式和任务优先级;
发送模块,用于将所述第一连接的连接优先级发送至网络设备驱动层,以使所述网络设备驱动层根据所述第一连接的连接优先级调整发送队列中已有数据的发送次序;还用于将所述第一连接的连接优先级和所述帧数据的大小发送至软中断层;
调用模块,用于根据所述第一任务的任务调度方式和任务优先级,调用网络协议栈按照所述软中断层确定的所述帧数据的分批数,对所述帧数据进行分批处理从而获取分批报文,所述分批报文将被分别发送至所述软中断层,由所述软中断层发送至所述网络设备驱动层的发送队列中,还用于获取所述软中断层确定的所述帧数据的分批数,所述分批数是根据所述网络设备驱动层反馈的调度耗时和所述网络协议栈反馈的处理耗时确定的。
6.如权利要求5所述的装置,其特征在于,还包括:
建立模块,用于建立多个连接,并根据预先设定的连接优先级策略,为每个连接配置该连接的连接优先级。
7.如权利要求5所述的装置,其特征在于,包括:
所述软中断层和所述网络设备驱动层为每种连接优先级设置发送队列;
所述发送模块,具体用于根据所述第一连接的连接优先级,将分批后的帧数据发送至所述软中断层中所述第一连接的连接优先级对应的发送队列,并由所述软中断层将帧数据发送至所述网络设备驱动层中所述第一连接的连接优先级对应的发送队列,以使所述网络设备驱动层根据连接优先级从各发送队列获取发送的数据。
8.如权利要求5至7任一项所述的装置,其特征在于,包括:
发送模块,还用于将所述第一连接的连接优先级发送至所述网络设备驱动层,以使所述网络设备驱动层判断所述第一连接的连接优先级是否高于正在处理的数据的第二连接的连接优先级;
若所述第一连接的连接优先级高于所述第二连接的连接优先级,则所述网络设备驱动层缩短通过所述第二连接接收的数据的发送时间,以便尽快处理通过所述第一连接接收的数据。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611193286.5A CN106776031B (zh) | 2016-12-21 | 2016-12-21 | 一种数据发送方法及装置 |
EP17878642.2A EP3535956B1 (en) | 2016-12-09 | 2017-11-29 | Methods and systems for data transmission |
PCT/CN2017/113597 WO2018103565A1 (en) | 2016-12-09 | 2017-11-29 | Methods and systems for data transmission |
US16/433,154 US11012366B2 (en) | 2016-12-09 | 2019-06-06 | Methods and systems for data transmission |
US17/233,426 US11570120B2 (en) | 2016-12-09 | 2021-04-16 | Methods and systems for data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611193286.5A CN106776031B (zh) | 2016-12-21 | 2016-12-21 | 一种数据发送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776031A CN106776031A (zh) | 2017-05-31 |
CN106776031B true CN106776031B (zh) | 2019-11-15 |
Family
ID=58893865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611193286.5A Active CN106776031B (zh) | 2016-12-09 | 2016-12-21 | 一种数据发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776031B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784418B (zh) * | 2019-10-24 | 2022-06-24 | 烽火通信科技股份有限公司 | 一种基于时延约束的数据发送方法及系统 |
CN113965481B (zh) * | 2021-10-11 | 2024-06-07 | 山东星维九州安全技术有限公司 | 一种网络资产探测多任务调度优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583901C (zh) * | 2007-01-08 | 2010-01-20 | 清华大学 | 宽带无线接入网媒体接入控制层服务质量保证方法 |
CN101690047A (zh) * | 2007-07-13 | 2010-03-31 | 国际商业机器公司 | 网络端点系统中的服务质量增强 |
CN101262651B (zh) * | 2008-04-18 | 2011-06-01 | 中国科学院计算技术研究所 | 宽带无线城域网络中基站的下行数据调度方法和系统 |
WO2012000365A1 (zh) * | 2010-06-28 | 2012-01-05 | 中兴通讯股份有限公司 | 一种优先级仲裁方法及装置 |
CN103457883A (zh) * | 2012-05-29 | 2013-12-18 | 美国博通公司 | Docsis 上行流突发效率最大化并支持巨型帧 |
-
2016
- 2016-12-21 CN CN201611193286.5A patent/CN106776031B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100583901C (zh) * | 2007-01-08 | 2010-01-20 | 清华大学 | 宽带无线接入网媒体接入控制层服务质量保证方法 |
CN101690047A (zh) * | 2007-07-13 | 2010-03-31 | 国际商业机器公司 | 网络端点系统中的服务质量增强 |
CN101262651B (zh) * | 2008-04-18 | 2011-06-01 | 中国科学院计算技术研究所 | 宽带无线城域网络中基站的下行数据调度方法和系统 |
WO2012000365A1 (zh) * | 2010-06-28 | 2012-01-05 | 中兴通讯股份有限公司 | 一种优先级仲裁方法及装置 |
CN103457883A (zh) * | 2012-05-29 | 2013-12-18 | 美国博通公司 | Docsis 上行流突发效率最大化并支持巨型帧 |
Also Published As
Publication number | Publication date |
---|---|
CN106776031A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3669494B1 (en) | Dynamic allocation of edge computing resources in edge computing centers | |
CN108762896B (zh) | 一种基于Hadoop集群任务调度方法及计算机设备 | |
CN101359295B (zh) | 一种批量任务调度分配方法及系统 | |
CN107291547B (zh) | 一种任务调度处理方法、装置及系统 | |
US20110145461A1 (en) | Method and device for balancing interrupt load of multicore processor | |
CN112162865A (zh) | 服务器的调度方法、装置和服务器 | |
US20020165754A1 (en) | Method for quality of service controllable real-time scheduling | |
CN102307230B (zh) | 业务传输方法和装置 | |
CN113051019A (zh) | 流程任务执行管控方法、装置以及设备 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
CN104063279A (zh) | 任务调度方法、装置和终端 | |
CN105975351A (zh) | 一种用户行为消息上报方法和装置 | |
US10142997B2 (en) | Method and apparatus for adjusting physical resource, and controller | |
CN109947552A (zh) | 基于进程与线程调度的边缘控制器动态任务调度方法 | |
CN109040178A (zh) | 配置信息发送方法及装置 | |
CN110851252A (zh) | 一种基于tsn架构的规约转换设备和规约转换方法 | |
CN106776031B (zh) | 一种数据发送方法及装置 | |
JP2013125548A (ja) | 仮想マシン割り当てシステム及びその使用方法 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN110764887A (zh) | 任务重调度方法、系统及相关设备、装置 | |
Rodriguez et al. | VNF modeling towards the Cloud-RAN implementation | |
CN104038358B (zh) | 一种内容调度方法及内容调度装置 | |
CN108512761B (zh) | 文件传输调度方法、管理平台、请求平台以及存储介质 | |
US10877800B2 (en) | Method, apparatus and computer-readable medium for application scheduling | |
CN114726860B (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 |