数据包调度方法、设备及可读存储介质与流程

文档序号:33620884发布日期:2023-03-25 11:42阅读:21来源:国知局
1.本技术涉及通信
技术领域
:,尤其涉及一种数据包调度方法、设备及可读存储介质。
背景技术
::2.在网络技术仿真验证平台应用中,经常会同时举行多场演练、评测等活动,这些活动在实践中会产生很多数据包,这些数据包会以数据流的形式跑在物理网络上,由于不同数据流之间相互依赖又彼此影响,因此需要对这些数据包进行有效调度,以保证各活动在运行时不受彼此影响。3.目前通常采用在应用级别对数据包进行调度,即根据ip(internetprotocol,网络互连协议)或者端口对数据包进行优先级设置,从而根据优先级进行调度,然而由于应用级别具有粒度大的特征,因此在实际应用中会发现,即使相同的ip或者相同的端口,所对应的优先级也会有不同,因此仅在应用级别对数据包进行调度的方式过于粗略,针对某些复杂场景来说,会导致数据包调度的精细度较低。技术实现要素:4.本技术的主要目的在于提供一种数据包调度方法、设备及可读存储介质,旨在解决目前数据包调度的精细度较低的技术问题。5.为实现上述目的,本技术提供一种数据包调度方法,所述数据包调度方法包括:对接收到的各数据包进行解析,获得对应的接口请求信息;基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。6.可选的,所述对接收到的各数据包进行解析,获得对应的接口请求信息的步骤包括:对各所述数据包进行过滤,得到各待调度数据包;对各所述待调度数据包进行解析,得到各所述待调度数据包对应的接口请求信息。7.可选的,所述基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率的步骤包括:获取预设优先级规则信息,根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级;依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率。8.可选的,所述根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级的步骤包括:基于各所述接口请求信息,查询预设优先级缓存表中是否存在各所述待调度数据包对应的历史优先级;若是,则将各所述历史优先级作为各所述发送优先级;若否,则将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级。9.可选的,所述将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级的步骤包括:将各所述接口请求信息与所述预设优先级规则信息中的主规则进行匹配,得到第一匹配结果;检测所述主规则是否存在对应的至少一个子规则;若是,则将各所述接口请求信息与所述子规则进行二次匹配,生成第二匹配结果,并基于所述第二匹配结果,确定各所述发送优先级;若否,则基于所述第一匹配结果,确定各所述发送优先级。10.可选的,所述依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率的步骤包括:依据各所述发送优先级,查询与各所述发送优先级对应的预设发送速率;获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的数据包发送信息;基于各所述数据包发送信息,计算各所述数据包发送信息对应的需求带宽与可用带宽的比值,将所述比值作为所述当前带宽信息;将各所述预设发送速率和各所述比值输入预设发送速率函数,输出各所述待调度数据包对应的目标发送速率。11.可选的,所述根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度的步骤包括:获取各所述待调度数据包对应的数据包大小;将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间;基于各所述发送时间,对各所述待调度数据包进行属性修改,得到对应的属性修改结果,并根据各所述属性修改结果控制调度。12.可选的,在所述获取各所述待调度数据包对应的数据包大小的步骤之后,还包括:检测各所述待调度数据包的数量是否超过预设数量阈值;若是,则在各所述待调度数据包中筛选出最新数据包并丢弃;若否,则将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间。13.此外,为实现上述目的,本技术还提供一种数据包调度装置,所述数据包调度装置包括:解析模块,用于对接收到的各数据包进行解析,获得对应的接口请求信息;发送速率计算模块,用于基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;发送时间计算模块,用于根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。14.可选的,所述解析模块还用于:对各所述数据包进行过滤,得到各待调度数据包;对各所述待调度数据包进行解析,得到各所述待调度数据包对应的接口请求信息。15.可选的,所述发送速率计算模块还用于:获取预设优先级规则信息,根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级;依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率。16.可选的,所述发送速率计算模块还用于:基于各所述接口请求信息,查询预设优先级缓存表中是否存在各所述待调度数据包对应的历史优先级;若是,则将各所述历史优先级作为各所述发送优先级;若否,则将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级。17.可选的,所述发送速率计算模块还用于:将各所述接口请求信息与所述预设优先级规则信息中的主规则进行匹配,得到第一匹配结果;检测所述主规则是否存在对应的至少一个子规则;若是,则将各所述接口请求信息与所述子规则进行二次匹配,生成第二匹配结果,并基于所述第二匹配结果,确定各所述发送优先级;若否,则基于所述第一匹配结果,确定各所述发送优先级。18.可选地,所述发送速率计算模块还用于:依据各所述发送优先级,查询与各所述发送优先级对应的预设发送速率;获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的数据包发送信息;基于各所述数据包发送信息,计算各所述数据包发送信息对应的需求带宽与可用带宽的比值,将所述比值作为所述当前带宽信息;将各所述预设发送速率和各所述比值输入预设发送速率函数,输出各所述待调度数据包对应的目标发送速率。19.可选地,所述发送时间计算模块还用于:获取各所述待调度数据包对应的数据包大小;将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间;基于各所述发送时间,对各所述待调度数据包进行属性修改,得到对应的属性修改结果,并根据各所述属性修改结果控制调度。20.可选的,所述数据包调度装置还用于:检测各所述待调度数据包的数量是否超过预设数量阈值;若是,则在各所述待调度数据包中筛选出最新数据包并丢弃;若否,则将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间。21.本技术还提供一种数据包调度设备,所述数据包调度包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据包调度程序,所述数据包调度程序被所述处理器执行时实现如上述的数据包调度方法的步骤。22.本技术还提供一种可读储存介质,所述可读存储介质上存储有数据包调度程序,所述数据包调度程序被处理器执行时实现如上述的数据包调度方法的步骤。23.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的数据包调度方法的步骤。24.本技术提供了一种数据包调度方法、设备及可读存储介质,与目前采用在应用级别对数据包进行调度的方式相比,本技术首先对接收到的各数据包进行解析,获得对应的接口请求信息;基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。本技术通过解析接收到的各数据包,得到对应的接口请求信息,从而根据接口请求信息计算数据包的发送速率,进而根据发送速率确定数据包的发送时间,并基于发送时间对数据包进行调度控制,实现了在请求接口级别对数据包进行调度的目的,相比于粒度大的应用级别来说,请求接口级别具有粒度小、灵活度高的特点,能够有效降低数据包调度的粗略度,所以,提高了数据包调度的精细度。附图说明25.图1为本技术数据包调度方法中涉及的数据包流程示意图;图2为本技术数据包调度方法中第一实施例的流程示意图;图3为本技术数据包调度方法中涉及的数据包调度系统框架示意图;图4为本技术数据包调度方法中涉及的socket_array结构表示意图;图5为本技术数据包调度方法中涉及的priority_map结构表示意图;图6为本技术数据包调度方法中涉及的优先级匹配流程图;图7为本技术数据包调度方法中涉及的树形结构示意图;图8为本技术数据包调度方法中涉及的p_info_map结构表示意图;图9为本技术数据包调度方法中涉及的edt_socket_array结构表示意图;图10为本技术数据包调度方法中涉及的速率计算流程图;图11为本技术数据包调度方法中涉及的rate_socket_map结构表示意图;图12为本技术数据包调度方法中涉及的输出处理流程图;图13为本技术数据包调度方法中涉及的装置示意图;图14为本技术数据包调度方法中涉及的硬件运行环境的设备结构示意图。26.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式27.为使本技术的上述目的、特征和优点能够更加明显易懂,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本技术保护的范围。28.在网络技术仿真验证平台应用中,经常会同时举行多场演练、评测等活动,为了使各活动之间能相互隔离,避免彼此影响,在实践中往往采用云化技术进行部署,最终呈现的部署结果为,一台物理机上会带有多个虚拟机,而每台虚拟机上会根据需要安装各类软件,这些软件在运行中会产生很多数据包,数据包流转情况如图1所示,其中,图1中的socket缓冲是一个存放收发命令的中间存储空间,qdisc(queueingdiscipline,排队规则)队列,当系统发送数据包时,需要按照配置的qdisc把数据包加入队列,vnic(virtualisednic,虚拟网络接口控制器)tx是指虚拟网络接口控制器的传输队列,vhost-net是处于内核态的后端驱动,nic(networkinterfacecontroller,网络接口控制器)tx是指网络接口控制器的传输队列,这些数据包会以数据流的形式跑在物理网络上,由于不同数据流之间相互依赖又彼此影响,同时各种数据流对活动的影响程度也会随着活动的进程而变化,因此需要对这些数据包进行有效调度,以保证各活动的运行效果。29.目前通常采用在应用级别对数据包进行调度,比如tc(trafficcontrol,流量控制)命令,即根据ip(internetprotocol,网络互连协议)或者端口对数据包进行优先级设置,从而根据优先级进行调度,然而由于应用级别具有粒度大的特征,因此在实际应用中会发现,即使相同的ip或者相同的端口,所对应的优先级也会有不同,因此单纯依靠在应用级别对数据包进行调度的方式过于粗略,无法满足某些复杂场景的需求,会导致数据包调度的精细度较低,其次,目前的方案中,数据包的调度配置需要运维人员凭其主观意识进行手动调度,无法根据当前整体带宽资源的使用情况进行调度策略的调整,从而影响整体的调度效果,导致数据包调度不够灵活。30.本技术实施例提供一种数据包调度方法,在本技术数据包调度方法的第一实施例中,参照图2,所述数据包调度方法包括:步骤s10,对接收到的各数据包进行解析,获得对应的接口请求信息;步骤s20,基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;步骤s30,根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。31.在本实施例中,需要说明的是,本实施例应用于数据包调度系统,所述数据包调度系统是一个基于优先级的数据包调度框架,具体的框架示意图可参照图3,整个框架分为内核态和用户态,内核态中的网卡和ebpfmap(extendedberkeleypacketfilter,扩展的伯克利包过滤器)是一个通用的数据结构存储不同类型的数据,提供了用户态和内核态数据交互、数据存储、多程序共享数据等功能;三个虚线方框即是数据包调度的实现过程,分为输入处理模块、速率计算模块和输出处理模块,其中,输入处理模块又包括过滤器和解析器,过滤器用于对接收到的各所述数据包进行过滤,得到需要进行调度的各所述待调度数据包;解析器则是对各所述待调度数据包进行解析处理,以获取到对应的接口请求信息,其中,所述接口请求信息是指用户请求接口的信息,可包含ip信息、端口信息和请求信息;速率计算模块包括优先级匹配器和速率计算器,优先级匹配器是根据各所述接口请求信息,在所述预设优先级规则信息中匹配出各所述待调度数据包对应的发送优先级;速率计算器用于计算各所述待调度数据包的目标发送速率;输出处理模块包括时间计算器和更新器,时间计算器则是基于各所述目标发送速率,为对应的待调度数据包计算出发送时间;更新器用于更新各所述待调度数据包的属性信息。为了使整个调度方案对应用程序无感,本实施例中还采取了绑定钩子函数的方式,钩子函数是一种消息处理机制,通过设置“钩子”,可以在接口级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息,ingresshook是指入口钩子函数,挂载到输入处理模块,用于获取各所述数据包,egresshook是指出口钩子函数,挂载到输出处理模块,用于获取完成速率计算的各所述待调度数据包。32.作为一种示例,步骤s10至步骤s30包括:当所述输入处理模块接收到各数据包时,所述过滤器会首先根据预设的过滤条件对各所述数据包进行过滤,得到需要进行调度的各所述待调度数据包后,所述过滤器会将各所述待调度数据包发送给所述解析器,所述解析器会对各所述待调度数据包的应用层协议进行详细解析,从而获得对应的接口请求信息;所述速率计算模块通过ebpfmap获取到各所述接口请求信息,所述优先级匹配器首先会根据各所述接口请求信息,对各所述待调度数据包匹配对应的发送优先级,紧接着所述速率计算器则根据各所述发送优先级和所述当前带宽信息,计算出各所述待调度数据包的目标发送速率;所述输出处理模块在接收所述速率计算模块传输的各所述目标发送速率后,其内部的时间计算器首先会基于各所述目标发送速率,计算出各所述数据包的发送时间,然后所述更新器则会根据各所述发送时间,相应更新各所述待调度数据包的时间属性,当更新成功后,系统则会根据时间属性来控制各所述数据包的调度。33.本实施例根据各所述数据包的接口请求信息,计算发送速率,从而根据发送速率计算出发送时间,进而根据发送时间来完成各所述数据包的调度,实现了在请求接口级别对数据包进行调度的目的,有效降低了数据包调度的粗略度,提高了数据包调度的精细度。34.其中,所述对各所述数据包进行解析,获得对应的接口请求信息的步骤包括:步骤s11,对各所述数据包进行过滤,得到各待调度数据包;步骤s12,对各所述待调度数据包进行解析,得到各所述待调度数据包对应的接口请求信息。35.在本实施例中,需要说明的是,本实施例中通过对接收到的所有数据包进行过滤,去掉无需调度的数据包,提高了后续进行数据包调度的效率,基于解析出的接口请求信息进行调度,从接口级别实现了数据包调度控制,能够实现更多复杂场景下的调度,提升了数据包调度的精细度。36.作为一种示例,步骤s11至步骤s12包括:基于预设过滤条件,对各所述数据包进行过滤,得到各待调度数据包,其中,所述预设过滤条件可以是ip条件、端口条件、或者其他用户自定义的过滤条件,在本实施例中默认会对经过系统的所有数据包进行调度,用户也可根据自身业务需求,通过调整所述预设过滤条件进行过滤;所述解析器在接收到各所述待调度数据包后,会进行解析处理,从而得到各所述待调度数据包对应的接口请求信息,其中,所述接口请求信息可以结构表的形式进行存储在ebpfmap中,比如图4中的socket_array结构表,表中可包括源端口、源ip、目的端口、目的ip、请求接口信息,供所述速率计算模块使用。37.其中,所述基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率的步骤包括:步骤s21,获取预设优先级规则信息,根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级;步骤s22,依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率。38.在本实施例中,需要说明的是,通过获取各所述待调度数据包的发送优先级,从而根据各所述发送优先级和所述当前带宽信息,计算出对应的目标发送速率,实现了根据当前系统内的整体带宽资源的使用情况进行实时调度的目的,使得数据包调度过程能够更加贴合实际应用场景,进一步提升了数据包调度的精细度。39.作为一种示例,步骤s21至步骤s22包括:通过ebpfmap,所述优先级匹配器获取到将各所述接口请求信息,并在预设优先级规则信息中匹配与各所述接口请求信息对应的优先级,将该优先级作为与各所述接口请求信息对应的待调整数据包的发送优先级,其中,所述预设优先级规则信息包含了接口请求信息与发送优先级的映射关系,接收所述优先级匹配器会将各所述发送优先级传输至所述速率计算器;所述速率计算器在接收到各所述发送优先级后,会查询与各所述发送优先级对应的预设发送速率,并获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的数据包发送信息,基于各所述数据包发送信息、所述当前带宽信息、各所述发送优先级,计算出各所述待调度数据包对应的目标发送速率。40.其中,所述根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级的步骤包括:步骤s211,基于各所述接口请求信息,查询预设优先级缓存表中是否存在各所述待调度数据包对应的历史优先级;步骤s212,若是,则将各所述历史优先级作为各所述发送优先级;步骤s213,若否,则将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级。41.在本实施例中,需要说明的是,为了避免同一个数据包重复匹配优先级,系统会缓存已进行匹配数据包的优先级,缓存的结构表可参照图5的priority_map结构表,表中多了一列priority,记录数据包的优先级,通过对各所述待调度数据包进行重复匹配检测,有效防止了所述优先级匹配器由于重复匹配工作而产生重复数据,从而导致后续发送速率计算的准确度降低,进而导致整个数据包调度的精细度较低,所以,提升了数据包调度的精细度。42.作为一种示例,步骤s211至步骤s213包括:可参照图6的优先级匹配流程图,所述优先级匹配器首先会根据各所述接口请求信息,在预设优先级缓存表中查询是否存在各所述待调度数据包对应的历史优先级记录;若是,则说明各所述待调度数据包之前已经匹配过优先级,则将各所述历史优先级作为各所述发送优先级传输给所述速率计算器;若否,则说明各所述待调度数据包未匹配过优先级,则在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级,并将各所述发送优先级传输至所述速率计算器。43.其中,所述将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级的步骤包括:步骤s2131,将各所述接口请求信息与所述预设优先级规则信息中的主规则进行匹配,得到第一匹配结果;步骤s2132,检测所述主规则是否存在对应的至少一个子规则;步骤s2133,若是,则将各所述接口请求信息与各所述子规则进行二次匹配,生成对应的第二匹配结果,并基于各所述第二匹配结果,确定各所述发送优先级;步骤s2134,若否,则基于所述第一匹配结果,确定各所述发送优先级。44.在本实施例中,需要说明的是,所述预设优先级规则信息中包含一个主规则和至少一个子规则,每个规则中又定义了相应的匹配条件以及相应的优先级,比如端口为1的数据包对应的优先级是2,端口为2的数据包对应的优先级是3,其中,所述预设优先级规则信息是以树形结构存在,如图7所示,所述主规则即为该树形结构的顶端节点,所述子规则即为该树形结构中的各个子节点,比如图7中的顶端节点属于一个主规则,“端口:123”则是匹配条件,其对应的优先级为2,关联的“url:a”和“url:a1”则是附带的两个子规则,“url:a”关联的“url:b”和“urlc”则属于更下位的两个子规则,用户可以自行设置具体的匹配条件以及对应的优先级。本实施例利用树形结构存储所述优先级规则信息,能够有效减少运维人员的配置成本以及匹配成本,减轻匹配工作量,使得所述优先级匹配器能够快速且准确的匹配到优先级,从而提高了后续数据包调度的效率和精准度。45.作为一种示例,步骤s2131至步骤s2134包括:进一步参照图6所示,将各所述接口请求信息与所述预设优先级规则信息中的主规则进行匹配,得到第一匹配结果,其中,所述第一匹配结果用于表征各所述接口请求信息与所述主规则的匹配度,包括匹配成功与匹配失败;检测所述主规则是否存在对应的至少一个子规则,也即检测在所述预设优先级规则信息中,所述主规则对应的节点下方是否存在子节点;若存在子规则,则按照子规则的顺序进行逐级匹配,直至所有的子规则都完成了匹配,生成第二匹配结果,其中,所述第二匹配结果用于表征各所述接口请求信息与各所述子规则的匹配度,同样包括匹配成功与匹配失败,若所述第二匹配结果为匹配成功,则返回步骤s2132,即检测是否还存在子规则,并继续进行匹配,若所述第二匹配结果为匹配失败,则将当前子规则的上一子规则对应的优先级作为所述发送优先级;若不存在子规则,则直接根据所述第一匹配结果,确定各所述发送优先级,也即若所述第一匹配结果为匹配成功,则获取所述第一匹配结果对应的主规则,以及获取该主规则对应的优先级,将该优先级作为所述发送优先级,若所述第一匹配结果为匹配失败,说明当前数据包并不满足预设优先级规则信息,需提示技术人员进行原因排查。46.例如,假设数据包a的接口请求信息为:端口为123,url为a/b时,同样参照图7,可匹配出最终数据包a的发送优先级为3,若数据包a的接口请求信息为:端口为123,url为a/c时,那么发送优先级即为1。47.其中,所述依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率的步骤包括:步骤s221,依据各所述发送优先级,查询与各所述发送优先级对应的预设发送速率;步骤s222,获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的数据包发送信息;步骤s223,基于各所述数据包发送信息,计算各所述数据包发送信息对应的需求带宽与可用带宽的比值,将所述比值作为所述当前带宽信息;步骤s224,将各所述预设发送速率和各所述比值输入预设发送速率函数,输出各所述待调度数据包对应的目标发送速率。48.在本实施例中,需要说明的是,各所述发送优先级会对应存在预设发送速率,所述预设发送速率包括预设最大发送速率和预设最小发送速率,其中,所述预设发送速率的存储格式可参照图8中的p_info_map结构表,设置预设最小发送速率的作用在于避免当前数据包被高优先级的数据包压榨,预设最大发送速率一般设置与出口带宽相等;所述数据包发送信息包括待发送数据包大小和最早发送时间,其存储格式可参照图9中的edt_socket_array结构表。本实施例通过获取各所述上一优先级的数据包发送信息,计算出需求带宽与系统内剩余的可用带宽的比值,从而基于该比值和各所述预设发送速率计算出目标发送速率,能根据数据包发送的总体情况计算不同数据包的发送速率,解决了传统方案中调度控制死板的问题,提高了数据包调度的精细度。49.作为一种示例,步骤s221至步骤s224包括:参照图10的速率计算流程图,首先所述速率计算器会依据各所述待调度数据包的发送优先级,查询对应的预设最大发送速率和预设最小发送速率;获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的待发送数据包大小;根据待发送数据包大小预估出各所述上一优先级将占用的带宽即所述需求带宽,并计算需求带宽与系统内剩余的可用带宽之间的比值,将所述比值作为所述当前带宽信息;将所述预设最大发送速率、所述预设最小发送速率和所述比值输入所述预设发送速率函数,输出各所述待调度数据包对应的目标发送速率,并将目标发送速率写入预设速率结构表中,如图11的rate_socket_map结构表,以供后续输出处理模块使用。50.作为一种示例,所述预设发送速率函数可为:rate=minrate+(maxrate-minrate)*a其中,rate表示目标发送速率,minrate表示预设最小发送速率,maxrate表示预设最大发送速率,a表示比值。51.其中,所述根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度的步骤包括:步骤s31,获取各所述待调度数据包对应的数据包大小;步骤s32,将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间;步骤s33,基于各所述发送时间,对各所述待调度数据包进行属性修改,得到对应的属性修改结果,并根据各所述属性修改结果控制调度。52.在本实施例中,需要说明的是,所述预设发送时间函数存在于时间计算器中,用于计算各所述待调度数据包的最早发送时间。本实施例中利用预设发送时间函数进行发送时间的计算,提高了计算的准确度,从而提升了数据包调度的精细度。53.作为一种示例,步骤s31至步骤s33包括:参照图12的输出处理流程图,首先调度系统会获取各所述待调度数据包对应的数据包大小,以及从图11中获取到各所述目标发送速率;将所述数据包发送信息中的最早发送时间、所述数据包大小以及各所述目标发送速率输入所述预设发送时间函数,输出各所述待调度数据包对应的发送时间;基于各所述发送时间,对各所述待调度数据包进行属性修改,得到对应的属性修改结果,并根据各所述属性修改结果控制调度。54.作为一种示例,所述预设发送时间函数可为:sendtime=lasttime+packet_length/rate其中,sendtime表示发送时间,lasttime表示最早发送时间,packet_length表示数据包大小,rate表示目标发送速率。55.其中,在所述获取各所述待调度数据包对应的数据包大小的步骤之后,还包括:步骤a10,检测各所述待调度数据包的数量是否超过预设数量阈值;步骤a20,若是,则在各所述待调度数据包中筛选出最新数据包并丢弃;步骤a30,若否,则将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间。56.在本实施例中,需要说明的是,各所述待调度数据包的所属数据流对应设置有一个预设数量阈值,所述预设数量阈值是指数据流上进行调度的数据包的上限值。通过设置预设数量阈值,能够有效避免数据量过大而导致的缓冲溢出,使得系统崩溃的现象,克服了数据包调度因系统崩溃而报错的技术缺陷,提升了数据包调度的精细度。57.作为一种示例,步骤a10至步骤a30包括:进一步参照图12的输出处理流程图,在获取各所述待调度数据包对应的数据包大小之后,系统会进一步检测各所述待调度数据包的数量是否超过所属数据流的预设数量阈值;若是,则在各所述待调度数据包中筛选出最新数据包并丢弃,其中,最新数据包是指最新进入所述数据包调度系统的数据包;若否,则将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间,以供所述更新器更新各所述待调度数据包的时间属性信息,从而完成整个数据包调度。58.本技术提供了一种数据包调度方法、设备及可读存储介质,与目前采用在应用级别对数据包进行调度的方式相比,本技术应用于数据包调度系统,所述数据包调度系统包括输入处理模块、速率计算模块和输出处理模块,首先对接收到的各数据包进行解析,获得对应的接口请求信息;基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。本技术通过过滤解析接收到的各数据包,得到对应的接口请求信息,从而根据接口请求信息计算数据包的发送速率,进而根据发送速率确定数据包的发送时间,并基于发送时间对数据包进行调度控制,实现了在请求接口级别对数据包进行调度的目的,相比于粒度大的应用级别来说,请求接口级别具有粒度小、灵活度高的特点,能够有效降低数据包调度的粗略度,所以,提高了数据包调度的精细度。59.此外,本技术实施例还提供一种数据包调度装置,如图13所示,所述数据包调度装置包括:解析模块10,用于对接收到的各数据包进行解析,获得对应的接口请求信息;发送速率计算模块20,用于基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;发送时间计算模块30,用于根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。60.可选的,所述解析模块10还用于:对各所述数据包进行过滤,得到各待调度数据包;对各所述待调度数据包进行解析,得到各所述待调度数据包对应的接口请求信息。61.可选的,所述发送速率计算模块20还用于:获取预设优先级规则信息,根据各所述接口请求信息和所述预设优先级规则信息,确定各所述待调度数据包对应的发送优先级;依据各所述发送优先级和当前带宽信息,进行速率计算,得到各所述待调度数据包对应的目标发送速率。62.可选的,所述发送速率计算模块20还用于:基于各所述接口请求信息,查询预设优先级缓存表中是否存在各所述待调度数据包对应的历史优先级;若是,则将各所述历史优先级作为各所述发送优先级;若否,则将各所述接口请求信息在所述预设优先级规则信息中进行匹配,获得各所述待调度数据包对应的发送优先级。63.可选的,所述发送速率计算模块20还用于:将各所述接口请求信息与所述预设优先级规则信息中的主规则进行匹配,得到第一匹配结果;检测所述主规则是否存在对应的至少一个子规则;若是,则将各所述接口请求信息与所述子规则进行二次匹配,生成第二匹配结果,并基于所述第二匹配结果,确定各所述发送优先级;若否,则基于所述第一匹配结果,确定各所述发送优先级。64.可选地,所述发送速率计算模块20还用于:依据各所述发送优先级,查询与各所述发送优先级对应的预设发送速率;获取各所述发送优先级所对应的上一优先级,以及获取各所述上一优先级所对应的数据包发送信息;基于各所述数据包发送信息,计算各所述数据包发送信息对应的需求带宽与可用带宽的比值,将所述比值作为所述当前带宽信息;将各所述预设发送速率和各所述比值输入预设发送速率函数,输出各所述待调度数据包对应的目标发送速率。65.可选地,所述发送时间计算模块30还用于:获取各所述待调度数据包对应的数据包大小;将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间;基于各所述发送时间,对各所述待调度数据包进行属性修改,得到对应的属性修改结果,并根据各所述属性修改结果控制调度。66.可选的,所述数据包调度装置还用于:检测各所述待调度数据包的数量是否超过预设数量阈值;若是,则在各所述待调度数据包中筛选出最新数据包并丢弃;若否,则将所述数据包发送信息、所述数据包大小以及各所述目标发送速率输入预设发送时间函数,输出各所述待调度数据包对应的发送时间。67.本技术提供的数据包调度装置,采用上述实施例中的数据包调度方法,解决目前数据包调度的精细度较低的技术问题。与现有技术相比,本技术实施例提供的数据包调度装置的有益效果与上述实施例提供的数据包调度方法的有益效果相同,且该数据包调度装置中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。68.本技术实施例提供一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例一中的数据包调度方法。69.下面参考图14,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(personaldigitalassistant,个人数字助理)、pad(portableandroiddevice,平板电脑)、pmp(portablemediaplayer,便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图14示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。70.如图14所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom,readonlymemory)中的程序或者从存储装置加载到随机访问存储器(ram,randomaccessmemory)中的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。71.通常,以下系统可以连接至i/o接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(lcd,liquidcrystaldisplay)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。72.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。73.本技术提供的电子设备,采用上述实施例中的数据包调度方法,解决了目前数据包调度的精细度较低的技术问题。与现有技术相比,本技术实施例提供的电子设备的有益效果与上述实施例提供的数据包调度方法的有益效果相同,且该电子设备中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。74.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。75.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。76.本实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的数据包调度方法。77.本技术实施例提供的计算机可读存储介质例如可以是u盘,但不限于电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。78.上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。79.上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:对接收到的各数据包进行解析,获得对应的接口请求信息;基于各所述接口请求信息,进行速率计算,得到各所述数据包的目标发送速率;根据各所述目标发送速率,确定对应的数据包的发送时间,并基于各所述发送时间来控制对应的数据包的调度。80.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。81.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。82.描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定。83.本技术提供的计算机可读存储介质,存储有用于执行上述数据包调度方法的计算机可读程序指令,解决了目前数据包调度的精细度较低的技术问题。与现有技术相比,本技术实施例提供的计算机可读存储介质的有益效果与上述实施例提供的数据包调度方法的有益效果相同,在此不做赘述。84.本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述的数据包调度方法的步骤。85.本技术提供的计算机程序产品解决了目前数据包调度的精细度较低的技术问题。与现有技术相比,本技术实施例提供的计算机程序产品的有益效果与上述实施例提供的数据包调度方法的有益效果相同,在此不做赘述。86.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本技术的专利处理范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1