数据包传输方法及相关装置

文档序号:1547880 发布日期:2020-01-17 浏览:17次 >En<

阅读说明:本技术 数据包传输方法及相关装置 (Data packet transmission method and related device ) 是由 江勇 祝轲轲 李清 宛考 李伟超 吴宇 于 2019-11-13 设计创作,主要内容包括:本申请提供了一种数据包传输方法,应用于网络设备,所述网络设备具有预先设置的第一缓存区域,所述第一缓存区域用于缓存数据包;该方法包括:接收到数据包后,确定所述数据包标属性方面的属性值,其中所述目标属性为与时延相关的属性;依据所述数据包的属性值,确定所述数据包在所述第一缓存区域中的发送优先级;依据所述数据包的发送优先级,将所述数据包存储至所述第一缓存区域内;其中,第一缓存区域内的数据包是按照发送优先级被依次发送出去的。另外,本申请还提供了应用在终端设备的数据包传输方法、网络设备、终端设备、存储介质以及计算机程序产品。(The application provides a data packet transmission method, which is applied to network equipment, wherein the network equipment is provided with a preset first cache region, and the first cache region is used for caching a data packet; the method comprises the following steps: after receiving a data packet, determining an attribute value in the aspect of the attribute of the data packet label, wherein the target attribute is an attribute related to time delay; determining the sending priority of the data packet in the first cache region according to the attribute value of the data packet; storing the data packet into the first cache region according to the sending priority of the data packet; and the data packets in the first buffer area are sequentially sent out according to the sending priority. In addition, the application also provides a data packet transmission method applied to the terminal equipment, the network equipment, the terminal equipment, a storage medium and a computer program product.)

数据包传输方法及相关装置

技术领域

本申请涉及通讯领域,尤其涉及数据包传输方法及相关装置。

背景技术

随着互联网的发展,网络对人们的生活的重要性日渐提高,数据中心作为网络信息传输的重要场所,其重要性不言而喻。数据中心网络是应用于数据中心内部的网络,负责数据中心内部各个服务器之间的信息交换,因此数据中心网络是数据中心的重要组成部分。优化数据中心网络的传输具有重要的意义。

数据中心网络对数据的传输一般通过交换机之间的链路进行,为保证数据中心网络传输的低时延,当前数据网络一般采用的方法为负载均衡:即将数据中心中的流量尽可能均匀的分散到不同交换机的等价多路径上,从而减小单个链路的负载,最大限度的避免丢包的产生,从而提高性能。基于负载均衡的方法可以分为中心调度和分布式调度两类方案。基于中心调度的负载均衡方案通过收集交换机与服务器全局信息做出全局最优的负载均衡决定,分布式负载均衡方案大多只依靠交换机和服务器的局部信息,但具有响应迅速,布置方便等优点,并且由于不受中心结构的限制,具有较强的扩展性,但是效果可能会不如中心化方案好。

负载均衡的方法核心在于对流量的传输路径的控制,在链路固定的情况下,无法满足部分流量低时延传输的需求。

发明内容

本申请实施例第一方面提供了一种数据包传输方法,应用于网络设备,所述网络设备具有预先设置的第一缓存区域,所述第一缓存区域用于缓存数据包;该方法包括:

接收到数据包后,确定所述数据包在目标属性方面的属性值,其中所述目标属性为与时延相关的属性;

依据所述数据包的属性值,确定所述数据包在所述第一缓存区域中的发送优先级;

依据所述数据包的发送优先级,将所述数据包存储至所述第一缓存区域内;其中,第一缓存区域内的数据包是按照发送优先级被依次发送出去的。

基于第一方面,本申请实施例还提供了第一方面的第二种实施方式:

数据包携带目标属性的属性值;所述确定所述数据包在目标属性方面的属性值,包括:

从所述数据包中,提取所述数据包携带的目标属性的属性值。

基于第一方面,本申请实施例还提供了第一方面的第三种实施方式:

目标属性包括第一目标属性以及第二目标属性,第一目标属性的优先级级别高于第二目标属性的优先级级别;对应地,所述第一缓存区域中包括与第一目标属性的预设属性值对应的第一优先级队列,且所述第一优先级队列包括与第二目标属性的预设属性值对应的第二优先级队列。

基于第一方面的第三种实施方式,本申请实施例还提供了第一方面的第四种实施方式:

依据数据包的属性值,确定所述数据包在所述第一缓存区域中的发送优先级,包括:

根据所述数据包在第一目标属性方面的第一属性值,在所述第一缓存区域的第一优先级队列中确定与所述第一属性值对应的目标第一优先级队列;

根据所述数据包在第二目标属性方面的第二属性值,在所述目标第一优先级队列包括的第二优先级队列中,确定与所述第二属性值对应的目标第二优先级队列;

将所述目标第二优先级队列的优先级确定为所述数据包在所述第一缓存区域中的发送优先级。

基于第一方面的第四种实施方式,本申请实施例还提供了第一方面的第五种实施方式:

依据数据包的发送优先级,将所述数据包存储至所述第一缓存区域内,包括:

在所述第一缓存区域内,将所述数据包存储至所述发送优先级对应的目标第二优先级队列的队尾。

基于第一方面,本申请实施例还提供了第一方面的第六种实施方式:

目标属性包括:流量类型等级和/或流量大小等级。

基于第一方面,本申请实施例还提供了第一方面的第七种实施方式:

网络设备还包括第二缓存区域;该方法还包括:

周期性获取所述第一缓存区域的存储状态;

若所述第一缓存区域的存储状态满足预设占满条件时,则将所述第一缓存区域内一部分数据包转移至所述第二缓存区域;

若所述第一缓存区域的存储状态满足预设空闲条件时,则将所述第二缓存区域内一部分数据包回放至所述第一缓存区域。

基于第一方面第七种实施方式,本申请实施例还提供了第一方面的第八种实施方式:

将第一缓存区域内一部分数据包转移至所述第二缓存区域,包括:

按照发送优先级由低到高的顺序,将所述第一缓存区域内的数据包转移至所述第二缓存区域,直至所述第一缓存区域的存储状态满足预设宽松条件或者所述第一缓存区域内不存在发送优先级低于预设优先级阈值的数据包。

基于第一方面第七种实施方式,本申请实施例还提供了第一方面的第九种实施方式:

将第二缓存区域内一部分数据包回放至所述第一缓存区域,包括:

按照转移时间由先到后的顺序,将所述第二缓存区域内的数据包回放至所述第一缓存区域,直至所述第一缓存区域的存储状态满足预设占满条件或者所述第二缓存区域内不存在数据包。

基于第一方面第七种实施方式,本申请实施例还提供了第一方面的第十种实施方式:

接收到终端设备发送的催促包后,确定所述催促包所催促的目标数据包;

若所述第二缓存区域中存在所述目标数据包,则将所述目标数据包回放至所述第一缓存区域中,并设置所述目标数据包在所述第一缓存区域中的发送优先级为最高发送优先级。

基于第一方面,本申请实施例还提供了第一方面的第十一种实施方式:

第一缓存区域包括两个子区域;其中第一子区域用于存储发送优先级达到预设优先级阈值的数据包,第二子区域用于存储发送优先级未达到预设优先级阈值的数据包。

基于第一方面第十一种实施方式,本申请实施例还提供了第一方面的第十二种实施方式:

在依据所述数据包的发送优先级,将所述数据包存储至所述第一缓存区域内之前,还包括:

依据所述数据包的发送优先级,在所述第一缓存区域的两个所述子区域中确定所述数据包归属的目标子区域;

若所述目标子区域的存储状态满足预设拥塞条件,则为所述数据包添加显式拥塞反馈标记。

本申请实施例第二方面提供了一种数据包传输方法该方法包括:

获得待发送至网络设备的数据包;

使用预先构建的神经网络分类模型,确定所述数据包在目标属性方面的属性值;其中所述属性值用于供所述网络设备依据所述数据包的属性值,确定所述数据包在所述第一缓存区域中的发送优先级并依据所述数据包的发送优先级,将所述数据包存储至所述第一缓存区域内,其中第一缓存区域内的数据包是按照数据包的发送优先级被依次发送出去的;

在所述数据包中添加所述目标属性的属性值后,向所述网络设备发送所述数据包。

基于第二方面,本申请实施例还提供了第二方面的第一种实施方式:

所述目标属性包括:流量类型等级和/或流量大小等级;相应地,所述神经网络分类模型包括:用于确定流量类型等级的第一神经分类网络模型和/或用于确定流量大小等级的第二神经网络分类模型。

基于第二方面第一种实施方式,本申请实施例还提供了第二方面的第二种实施方式:

当所述目标属性包括流量类型等级和流量大小等级时,所述第二神经网络分类模型包括多个,且不同的神经网分类模型对应不同的流量类型等级;

其中,第二神经网络分类模型中的流量阈值参数的确定方式为:

确定第二神经网络分类模型对应的目标流量类型等级;

获得与所述目标流量类型等级对应的流量累积分布图,其中所述流量累积分布图的横坐标为所述终端设备所归属的数据中心传输的数据流的流量大小,纵坐标为流量分布百分比;

计算所述目标流量类型等级对应的目标流量分布百分比;

在所述流量累积分布图中,确定所述目标流量分布百分比对应的流量大小,并将所述流量大小确定为所述第二神经网络分类模型中的流量阈值参数。

基于第二方面,本申请实施例还提供了第二方面的第三种实施方式:

神经网络分类模型是使用所述终端设备发送的数据流中的前预设数量的数据包训练完成的。

基于第二方面,本申请实施例还提供了第二方面的第四种实施方式:

向所述网络设备发送所述数据包之后,还包括:

从所述数据包的发送时间点开始计时;

若计时时长达到预设时长且未收到所述数据包的确认信息时,则向所述网络设备发送催促包;其中所述预设时长是基于所述数据包的超时重传时长设置的。

本申请实施例第三方面提供了一种网络设备该网络设备具有实现上述第一方面中网络设备的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第四方面提供了一种网络设备该网络设备具有实现上述第二方面中网络设备的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

本申请实施例第五方面提供了一种计算机存储介质,该计算机存储介质用于储存为上述网络设备或终端设备所用的计算机软件指令,其包括用于执行为网络设备或终端设备所设计的程序。

本申请实施例第六方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面第二方面中任意一项的数据包传输方法中的流程。

从以上技术方案可以看出,本申请实施例具有以下优点:在网络设备获取到数据包时,确认数据包有关发送时延的信息,并根据时延的信息对数据包进行排序,以使得数据包被发送时可以依照有关发送时延的信息进行发送,在链路固定的情况下,可以降低数据包传输过程的时延。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的数据中心的一个网络框架图;

图2为本申请实施例中网络传输方法的一个流程示意图;

图3为本申请实施例中网络传输方法另一个流程示意图;

图4为本申请实施例中网络传输方法另一个流程示意图;

图5为本申请实施例中数据包存储方式的一个示意图;

图6为本申请实施例中网络设备的一个结构示意图;

图7为本申请实施例中终端设备的一个结构示意图;

图8为本申请实施例中网络设备另一个结构示意图;

图9为本申请实施例中终端设备另一个结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请提供了一种数据包传输方法,能够在链路固定的情况下降低数据包传输过程的时延。

本申请实施例可应用于如图1所示的网络中心构架。本申请实施例中网络中心构架包括:交换机101至104,服务器201至202。

本实施例中,网络设备即视为交换机,值得注意的是网络设备可以是其他具有终端间数据传输功能的设备,具体可以为:网元、数据中枢,此处不做限定。

本实施例中,终端设备即视为服务器,值得注意的是终端设备可以使其他具有向其他设备传输数据功能的设备,如可以为:手机、个人电脑,此处不做限定。

本申请实施例中,仅以四个交换机101、102、103以及104、两个服务器201以及202为例进行说明,在实际应用中,可以有更多的服务器以及交换机。

服务器接入交换机的方式也可以有所不同,可以多个服务器接入一个交换机,也可以是一个服务器接入一个交换机。

交换机与交换机之间存在链路连接,交换机形成的网络可以是胖树网络,也可以是叶脊网络。但是在数据传输过程中,一个终端总可以通过一个或数个交换机将数据传输到另一个终端。

服务器201、202主要负责数据的采集,数据包的生成,交换机101至104负责传递服务器与服务器之间的数据,服务器与交换机之间的链路构成数据中心网络,数据中心网络是应用于数据中心内部的网络,其负责数据中心内部各个服务器之间的信息交换,同时也负责数据中心内数据的输入和输出,因此数据中心网络是数据中心的重要组成部分。

下面结合图1的网络框架,对本申请实施例中的数据包传输方法进行描述:

见图2,本申请实施例示出了应用在终端设备上的数据包传输方法一个流程,具体包括步骤201-203。

201、获得待发送至网络设备的数据包。

终端设备运行时,会产生需要与其他终端进行交互的数据,如搜索请求数据、下载请求数据,终端设备需将该数据生成数据包,并将该数据包通过网络设备发送至其他终端,该数据包中会具有发送至的地址信息。

202、确定所述数据包在目标属性方面的属性值。

终端设备使用预先构建的神经网络分类模型确定所述数据包在目标属性方面的属性值,该神经网络由目标属性不同的数据包作为训练集训练得到,具有确定数据包目标属性值的能力,目标属性为数据包中有关时延的属性,用于供网络设备依据数据包的属性值,确定数据包在第一缓存区域中的发送优先级并依据数据包的发送优先级,将数据包存储至所述第一缓存区域内,其中第一缓存区域内的数据包是按照数据包的发送优先级被依次发送出去的。该属性值决定了数据包发送的优先程度。

203、在数据包中添加目标属性的属性值,向所述网络设备发送所述数据包。

终端设备得到目标属性的属性值后,将该属性值附加到数据包中的适当位置,例如包头的DSCP字段。附加属性值后,终端设备将该附加完成的数据包发送给预定要发送给的网络设备。

见图3,本申请实施例示出了应用在网络设备上的数据包传输方法另一流程,具体包括步骤301-304。

301、接收数据包。

具有第一缓存区域的网络设备,接收终端设备所发送的数据包,网络设备用于终端设备与终端设备之间的数据交流,具有接受数据包、发送数据宝和缓存数据包的功能,网络设备具有预先设置的第一缓存区域,用于缓存接收到的数据包。

302、确定数据包在目标属性方面的属性值。

网络设备接收到终端设备发送来的数据包后,对数据包进行读取,确定该数据包中目标属性的属性值,该属性值以可读的形式附加于该数据包中,目标属性为与该数据包的时延相关的属性。

303、确定数据包在第一缓存区域的发送优先级。

网络设备根据该数据包的目标属性的属性值,确定该数据包在第一缓存区域的发送优先级。

304、将数据包存储至第一缓存区域。

依据该数据包的发送优先级,将该数据包存储至第一缓存区域中对应发送优先级的区域内,第一缓存区域内的数据包是按照发送的优先级被依次发送出去的。

见图4,本申请实施例示出了数据包传输方法的另一流程。本实施例中,网络设备即视为交换机,终端设备即视为服务器。具体地,本实施例可以包括以下步骤401-413。

401、服务器获得待发送至交换机的数据包。

服务器在运行过程中,会产生需要与其他服务器进行交互的数据,如搜索请求数据、下载请求数据,服务器需将该数据生成多个数据包,用以通过网络设备将该数据发送至其他终端,该数据包中会具有发送至的地址信息,多个数据包组成一个数据流,一条数据流表达了一个完整的信息。

402、服务器确定数据包在目标属性方面的属性值。

使用预先构建的神经网络分类模型,确定数据流在目标属性方面的属性值。确定出的属性值可以携带在每个数据包内或者通过其他方式与数据包绑定。其中目标属性具体可以包括流量类型等级、流量大小等级、数据流目的地等等。

需要说明的是,目标属性如流量类型和流量大小等是与时延相关的属性,目标属性可以反映数据包对于时延高或低的要求。例如,数据包的流量类型不同,则对时延的要求可能不同,具体例如,数据包为即时通信类型的数据包,则其对于时延要求较高;数据包为邮件通信类型的数据包,则其对于时延要求较低。同理,流量大小也可以在一定程度上反映数据包对于时延高低的要求。需要说明的是,流量类型等级也替换为超时重传(Retransmission Timeout,RTO)等级,RTO等级的确定方式与流量类型等级的确定方式相同。

其中预先构建的神经网络分类模型包括:用于预测流量类型等级的数据流类型预测网络(第一神经分类网络模型),以及用于预测流量大小等级的数据流大小预测网络(第二神经分类网络模型)。神经网络分类模型的构建与使用方法包括:

1、神经分类网络模型的构建。

数据流类型预测网络和数据流大小预测网络的构建包括:获取一定量的交换机和/或服务器的数据流作为数据集,使用该数据集作为样本集训练用于数据包分类的双向递归神经网络。其中双向递归神经网络采用门控制循环(gated recurrent unit,GRU)单元。

对于数据流类型预测网络的训练,双向递归神经网络使用了递归神经网络(recurrent neural networks,RNN)模型,因为在本实施例中,可以将数据流视为服务器之间交互的一种语言,存在一定的序列关系,使用RNN模型能更好的描述这种关系。一条数据流中的每个字节都被认为是一个单词,每个字节由8个比特组成,故可将其翻译为0-255的数字,,每个数字视为一个单词,所以数据流可以被认为是一种只有256个词汇的语言。本实施例将每条数据流的前三个数据包转化为0-255的数字,然后每4个数字一组组成了一个句子,将这些句子输入到双向递归神经网络进行训练,网络首先对每个单词进行词嵌入,然后输入网络输出每个句子的结果,然后将所有句子的结果再次输入到下一层的网络中,将下一层的输出结果通过全连接层进行逻辑回归(softmax)并输出数据流的流量类型等级的预测。

需要说明的是,第二神经网络分类模型即数据流大小预测网络具有流量阈值参数,流量阈值参数的确定方式为:确定第二神经网络分类模型对应的目标流量类型等级;获得与目标流量类型等级对应的流量累积分布图,其中流量累积分布图的横坐标为终端设备所归属的数据中心传输的数据流的流量大小,纵坐标为流量分布百分比;计算目标流量类型等级对应的目标流量分布百分比;在流量累积分布图中,确定目标流量分布百分比对应的流量大小,并将流量大小确定为第二神经网络分类模型中的流量阈值参数。

例如:用θi来表示第i个阈值,θi是一个百分数,对应累积分布函数纵轴上的值,例如当θ=0.5,其所对应的横轴的值则为当前流量类型等级中所有流量大小的中位数。假设要对该流量类型等级设置K+1个大小等级,则有K个阈值要求,设当前负载为p,求解的公式如下:

当求出各个θ后,根据流量分布则可求出各个阈值。

2、神经分类网络模型的使用。

数据流分类的双向递归神经网络可以输出数据包的流量类型。预先设置流量类型与流量类型之间的对应关系,在数据流分类的双向递归神经网络输出数据包的流量类型后,根据该对应关系确定数据包的流量类型等级。或者,数据流分类的双向递归神经网络可以直接用于确定数据包的流量类型等级,即该网络直接输出数据包的流量类型等级。

对于不同类别的数据流分别训练一个用于该种类数据流大小预测的双向递归神经网络,这是因为不同类型的数据流之间,大小的差距可能较大,如果使用同一网络对所有数据流的大小进行预测,可能导致某一类型的数据流都属于某一大小等级,无法体现它们之间的差异性。

数据流大小预测网络与数据流类型预测网络具有相似的训练方法,此处不再赘述,数据流大小的预测并非精确的预测某一数值,而是预测数据流的大小是否大于某一阈值,处于哪个区间。其输出为数据流大小所在的区间。

403、服务器发送数据包。

服务器向交换机发送具有流量类型等级标识和流量大小等级标识的数据包。

404、交换机确定数据包在目标属性方面的属性值。

交换机接收具有标识的数据包并提取流量类型等级及流量大小等级的具体数值,对其进行识别。

405、交换机确定数据包在第一缓存区域中的发送优先级。

交换机确定流量类型等级为第一优先级,流量大小等级为第二优先级,该过程确定的优先级与服务器设定的优先级相同,交换机的第一缓存区域具有与第一优先级对应的第一优先级队列,并且在每个第一优先级队列中包括有与第二优先级对应的第二优先级队列;根据该数据包的流量类型等级,确定该数据包所属的第一优先级队列,根据该数据包的流量大小等级确定,在已经确定的第一优先级队列中确定该数据包所属的第二优先级队列;将该数据包所属的第二优先级作为该数据包的发送优先级。

本步骤将数据包的发送优先级从两个因素(流量类型等级和流量大小等级)根据数据包优先级的不同确定的发送队列不同,并且将流量类型等级作为第一优先级,流量大小等级作为第一优先级之下的第二优先级,这是因为不同类型的数据包有不同的传输需求,但是在当前的交换机机制中,所有的数据流被同等的对待。因此,相较于对所有的应用设置相同的流量类型,本实施例中对不同类型的数据流设置不同的流量类型等级,不同的流量类型等级就反应了不同数据流对时延的敏感程度,将流量的类型做为最重要的分配优先级的指标,这可以进一步的确保用户体验。

对于流量大小,同样是影响流完成时间(Flow Completion Time,FCT)的一个重要因素。当一个大数据流在小数据流之前时,如果大数据流超时会导致排在其后面所有的小数据流的FCT剧增,甚至超时。因此,本实施例中将数据流的大小做为第二个考虑的因素,一个流量类型等级内可能包含一个或多个优先级队列,每一个优先级队列称为一个流量大小等级。当两条数据流具有相同的流量类型等级时,再根据数据流的大小决定它的流量大小等级,数据流越小则其优先级越高。如果一个流量类型等级中只有一个优先级队列则表示在赋予优先级时并不考虑流量大小,因为可能都是分布近似的流如搜索流量。所以根据交换机中运行的服务,管理者可以灵活调整流量类型等级和流量大小等级以得到最佳的性能,例如,搜索流量可能都是比较小的流量所以并不需要通过多个队列来优化流完成时间FCT。

需要说明的是,本实施例中,以流量类型等级作为第一优先级,流量大小做为第二优先级,在其他实施方式中也可以将流量大小作为第一优先级,流量类型等级作为第二优先级,也可以用其他等级作为第一优先级或第二优先级,例如,数据流目的地,单个数据包大小等信息具体此处不做限定。

406、交换机确定数据包归属的目标子区域。

交换机的第一缓存区域包括两个子区域;其中第一子区域用于存储不可缓存的数据包,即发送优先级达到预设优先级阈值的数据包,第二子区域用于存储可以缓存的数据包,即发送优先级未达到预设优先级阈值的数据包。该阈值为交换机内部设定,用于区分可以被缓存的数据包的存储空间与不可以被缓存的数据包存储空间,具体可以参考图5,图示不可缓存区域即为第一子区域,图示可缓存区域即为第二子区域,图示每一个大的流量类型等级(图示5中简称为类型等级)中会有几个依次排列的流大小等级即为流量大小等级。

值得注意的是,本步骤的执行条件是交换机对第一缓存区域设定有发送优先级阈值不同的两个子区域的条件下执行,可以理解的是本步骤在第一缓存区域不具有子区域设定时也可以不执行,相应的步骤407也不会执行,直接执行步骤408。本步骤的目的在于使得本方案更具可行性。

407、交换机为数据包添加显式拥塞反馈标记。

在将数据包存储至缓存区域之前,数据包会经过显示拥塞标记模块,显示拥塞标记模块根据数据包的存储优先级,分别读取数据包将要存储到的缓存子区域的状态,并根据所对应的缓存子区域状态对数据包添加显示拥塞反馈标记(ECN),子区域与子区域之间是否添加ECN的条件互不影响。对于不可缓存的数据包,添加ECN的阈值设定为带宽与往返时延(Round-Trip Time,RTT)乘积的预设比例值,对于可缓存的数据包,添加ECN的阈值设定为与缓存区域大小相等。其中预设比例值可以是根据实际情况设置的任意数值。

本步骤的目的在于,根据不同区域内的数据包属性,设置不同的添加ECN的阈值,使得对数据包的处理更精细化,进一步确保了了数据包发送的低时延。

408、交换机将数据包存储至第一缓存区域。

服务器依照数据包的优先级存储至第一缓存区域内相应的发送优先级队列并储存在该队列的队尾。

本步骤使得数据包在识别后的存储更有条理化,同时,数据包在同一队列内依次发出,避免了数据包长时间待在某一队列的可能。

409、交换机获取第一缓存区域的存储状态。

交换机不仅具有用于缓存的第一缓存区域,还有用于分担缓存任务的第二缓存区域以及缓存进出控制模块(CIODM)。

缓存进出控制模块用于周期性检测第一缓存区域的存储状态,并根据状态发出进缓存和出缓存的指令。CIODM使用Linux内核中内存管理的水压机制,水压机制有3个阈值:最小预留值,预警值和宽松值。交换机根据带宽和运行的应用种类设置最小的预警值和宽松值,当第一缓存区域中的剩余空间小于最小预留值时,则缓存进出控制模块发出进缓存命令,开始将第一缓存区域中的数据包向第二缓存区域中移动,当第一缓存区域中的剩余空间大于预警值时,则会停止移动。当剩余的空间大于宽松值时,则缓存进出控制模块发出处缓存命令,将第二缓存区域中的数据包重新发送回第一缓存区域中,直至达到第一缓存区域剩余空间小于预警值或第二缓存区域无数据包。

本步骤的目的在于,可以使得交换机的存储能力提高,进而提高了交换机的吞吐能力,第二缓存区域配合多重优先级队列和水压机制使得时延不敏感的流为时延流让路,提高了网络的吞吐量。缓解了数据中心网络低时延与高吞吐的矛盾。

交换机内的第二缓存区域可以由动态存储器(Dynamic Random Access Memory,DRAM)或固态驱动器(Solid State Drive,SSD)实现。在实际使用中,一些交换机已经配备了第二缓存区域。第一缓存区域和第二缓存区域的关系相当于Linux系统中内存和SWAP空间的关系。

除了第二缓存区域外,还可以使用另外一个交换机已有的功能,优先级丢包。当第一缓存区域剩余空间不多时,且来不及转移到第二缓存区域时,交换机会优先丢弃具有最大流量类型等级和最大流大小等级的数据包。

值得注意的是本实施例中步骤409的执行条件是交换机不仅具有用于缓存的第一缓存区域,还有用于分担缓存任务的第二缓存区域的条件下执行,可以理解的是本步骤在第一缓存区域不具有第二缓存区域也可以不执行,相应的步骤410也不会执行,直接执行步骤411或结束该流程。步骤409的执行可以在任意时间点进行,只要时机满足周期性检测第一缓存区域的存储状态时即可,相应的步骤410只在步骤409执行后且发出相应的执行指令后执行,若步骤409未执行或步骤409未发出相应地执行指令,即不执行步骤410直接执行步骤411或结束该流程。

410、交换机根据第一缓存区域状态,对第一缓存区域,第二缓存区域的数据包进行调整。

第一缓存区域的存储量达到所设定的最小预留值,则CIODM发出进缓存指令,将第二缓存子区域中的数据包按照发送优先级由低到高的顺序,向第二缓存区域发送,直到第一缓存区域达到宽松值。

第一缓存区域的存储量小于所设定的宽松值,则CIODM发出出缓存指令,将第二缓存区域中的数据包按照进入先后的顺序,向第二缓存子区域发送,直到第一缓存区域达到最小预留值或第二缓存区域内不存在数据包。

411、服务器向交换机发送催促包。

数据包被缓存后可能会长时间没有被发送,这时,服务器会向交换机发送催促包。催促包仅有一个字节的负载,用于表示所催促的数据包的信息,当服务器发送某数据包时可以开始计时,当计时时长达到预设时长后仍然未收到关于该数据包的确认信息,服务器则可以发送针对该数据包的催促包。

可以理解的是,本过程中的预设时长是基于数据包的流量类型设置的,即可以为不同流量类型的数据包设置不同的预设时长。一种具体的实现方式是,预先为不同流量类型的数据包设置不同的超时重传时长,此处的预设时长为数据包的超时重传时长的预设比例值,例如预设比例值可以是3/4,当然,预设比例值还可以是根据实际情况设置的其他数值,对此本申请不做具体限定。

本步骤的目的在于,保证数据包尽量在时延较低的情况下被发送,发送催促包以监督数据包,尽量不发生超时的情况。

需要说明的是,本步骤的执行条件在于数据包被发送后长时间没有接到回应,本步骤及步骤412、步骤413可以在数据包被发送后任意时间点执行,具体此处不做限定。

412、交换机确定催促包所催促的目标数据包。

接收到终端设备发送的催促包后,交换机确定催促包所催促的目标数据包。

若第二缓存区域中存在目标数据包,则将目标数据包回放至第一缓存区域中,并设置目标数据包在第一缓存区域中的发送优先级为最高发送优先级。

当交换机接收到催促包后,会对催促包中的信息进行读取,并查找催促包所催促的目标数据包若存在目标数据包则执行步骤413,若不存在则会将催促包转发,催促包会在接收端上一跳交换处机处被丢弃。

需要说明的是,本步骤的执行条件步骤411执行,本步骤可以在催促包被发送后任意时间点执行,具体此处不做限定。

413、交换机将目标数据包回放至第一缓存区域中,并设置目标数据包在第一缓存区域中的发送优先级为最高发送优先级。

交换机确定第二缓存区域中存在催促包所催促的目标数据包,则将这些数据包传输至第一缓存区域中最高的优先级队列,并且修改数据包的流量类型等级和数据流大小等级到最高,以使得该数据包以最快速度被传输出去。

需要说明的是,本步骤的执行条件步骤412执行,本步骤可以在催促包被发送后任意时间点执行也可以不执行,具体此处不做限定。

以上对本申请实施例中数据包传输方法进行了说明,以下对本申请实施例提供的网络设备、终端设备的结构进行描述。需要说明的是,以下设备实施例与上述方法实施例之间可以相互参照。

见图6,其示出了本申请实施例提供的网络设备的一种结构,具体包括:接收单元601、第一确定单元602、第二确定单元603以及储存单元604。

接收单元601,用于接收数据包。

第一确定单元602,用于确定数据包在目标属性方面的属性值,其中目标属性为与时延相关的属性。

第二确定单元603,用于依据数据包的属性值,确定数据包在第一缓存区域中的发送优先级。

储存单元604,用于依据数据包的发送优先级,将数据包存储至第一缓存区域。

本实施例中,网络设备中各单元以及模块所执行的流程与前述图3所示的实施例中描述的方法流程类似,此处不再赘述。

在一种实现方式中,所述数据包携带目标属性的属性值;第一确定单元602具体用于:从所述数据包中,提取所述数据包携带的目标属性的属性值。

在一种实现方式中,所述目标属性包括第一目标属性以及第二目标属性,第一目标属性的优先级级别高于第二目标属性的优先级级别;对应地,所述第一缓存区域中包括与第一目标属性的预设属性值对应的第一优先级队列,且所述第一优先级队列包括与第二目标属性的预设属性值对应的第二优先级队列。

在一种实现方式中,第二确定单元603具体用于:根据所述数据包在第一目标属性方面的第一属性值,在所述第一缓存区域的第一优先级队列中确定与所述第一属性值对应的目标第一优先级队列;根据所述数据包在第二目标属性方面的第二属性值,在所述目标第一优先级队列包括的第二优先级队列中,确定与所述第二属性值对应的目标第二优先级队列;将所述目标第二优先级队列的优先级确定为所述数据包在所述第一缓存区域中的发送优先级。

在一种实现方式中,所述目标属性包括流量类型等级和/或流量大小等级。

在一种实现方式中,网络设备还包括第二缓存区域;该网络设备还包括:数据包缓存单元。数据包缓存单元,用于周期性获取所述第一缓存区域的存储状态;若所述第一缓存区域的存储状态满足预设占满条件时,则将所述第一缓存区域内一部分数据包转移至所述第二缓存区域;若所述第一缓存区域的存储状态满足预设空闲条件时,则将所述第二缓存区域内一部分数据包回放至所述第一缓存区域。

具体地,数据包缓存单元在将所述第一缓存区域内一部分数据包转移至所述第二缓存区域时,具体用于:按照发送优先级由低到高的顺序,将所述第一缓存区域内的数据包转移至所述第二缓存区域,直至所述第一缓存区域的存储状态满足预设宽松条件或者所述第一缓存区域内不存在发送优先级低于预设优先级阈值的数据包。

具体地,数据包缓存单元在将所述第二缓存区域内一部分数据包回放至所述第一缓存区域时,具体用于:按照转移时间由先到后的顺序,将所述第二缓存区域内的数据包回放至所述第一缓存区域,直至所述第一缓存区域的存储状态满足预设占满条件或者所述第二缓存区域内不存在数据包。

在一种实现方式中,网络设备还包括:数据包回放单元。

数据包回放单元,用于接收到终端设备发送的催促包后,确定所述催促包所催促的目标数据包;若所述第二缓存区域中存在所述目标数据包,则将所述目标数据包回放至所述第一缓存区域中,并设置所述目标数据包在所述第一缓存区域中的发送优先级为最高发送优先级。

在一种实现方式中,所述第一缓存区域包括两个子区域;其中第一子区域用于存储发送优先级达到预设优先级阈值的数据包,第二子区域用于存储发送优先级未达到预设优先级阈值的数据包。

见图7,其示出了本申请实施例提供的终端设备的一种结构,具体包括:获得单元701、确定单元702、添加单元703以及发送单元704。

获得单元701,用于获得待发送至网络设备的数据包。

确定单元702,用于使用预先构建的神经网络分类模型,确定数据包在目标属性方面的属性值;其中所述属性值用于供所述网络设备依据所述数据包的属性值,确定所述数据包在所述第一缓存区域中的发送优先级并依据所述数据包的发送优先级,将所述数据包存储至所述第一缓存区域内,其中第一缓存区域内的数据包是按照数据包的发送优先级被依次发送出去的。

添加单元703,用于在数据包中添加目标属性的属性值。

发送单元704,用于向网络设备发送所述数据包。

本实施例中,终端设备中各单元以及模块所执行的流程与前述图2所示的实施例中描述的方法流程类似,此处不再赘述。

在一种实现方式中,所述目标属性包括:流量类型等级和/或流量大小等级;相应地,所述神经网络分类模型包括:用于确定流量类型等级的第一神经分类网络模型和/或用于确定流量大小等级的第二神经网络分类模型。

在一种实现方式中,所述神经网络分类模型是使用所述终端设备发送的数据流中的前预设数量的数据包训练完成的。

在一种实现方式中,第二神经网络分类模型具有流量阈值参数,该流量阈值参数的确定方式为:确定第二神经网络分类模型对应的目标流量类型等级;获得与所述目标流量类型等级对应的流量累积分布图,其中所述流量累积分布图的横坐标为所述终端设备所归属的数据中心传输的数据流的流量大小,纵坐标为流量分布百分比;计算所述目标流量类型等级对应的目标流量分布百分比;在所述流量累积分布图中,确定所述目标流量分布百分比对应的流量大小,并将所述流量大小确定为所述第二神经网络分类模型中的流量阈值参数。

在一种实现方式中,终端设备还可以包括:催促单元。催促单元,用于从所述数据包的发送时间点开始计时;若计时时长达到预设时长且未收到所述数据包的确认信息时,则向所述网络设备发送催促包;其中所述预设时长是基于所述数据包的流量类型设置的。

本实施例中,终端设备中各单元所执行的流程与前述图4所示的实施例中描述的服务器所执行的方法流程类似,此处不再赘述。

图8是本实施例提供的一种网络设备结构示意图,该服务器800可以包括一个或一个以***处理器(central processing units,CPU)801和存储器805,该存储器805中存储有一个或一个以上的应用程序或数据。

本实施例中,中央处理器801中的具体功能模块划分可以与前述图6图7中所描述的接收单元、第一确定单元、第二确定单元、第四确定单元、添加单元、存储单元、获取单元、转移单元、回放单元、第三确定单元、设置单元等单元的功能模块划分方式类似,此处不再赘述。

其中,存储器805可以是易失性存储或持久存储。存储在存储器805的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器801可以设置为与存储器805通信,在服务器800上执行存储器805中的一系列指令操作。

服务器800还可以包括一个或一个以上电源802,一个或一个以上有线或无线网络接口803,一个或一个以上输入输出接口804,和/或,一个或一个以上操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等。

该中央处理器801可以执行前述图4所示实施例中交换机所执行的操作,具体此处不再赘述。

图9是本实施例提供的一种终端设备结构示意图,该服务器900可以包括一个或一个以***处理器(central processing units,CPU)901和存储器905,该存储器905中存储有一个或一个以上的应用程序或数据。

本实施例中,中央处理器901中的具体功能模块划分可以与前述图8图9中所描述的获得单元、确定单元、添加单元、发送单元和计时单元等单元的功能模块划分方式类似,此处不再赘述。

其中,存储器905可以是易失性存储或持久存储。存储在存储器905的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器901可以设置为与存储器905通信,在服务器900上执行存储器905中的一系列指令操作。

服务器900还可以包括一个或一个以上电源902,一个或一个以上有线或无线网络接口903,一个或一个以上输入输出接口904,和/或,一个或一个以上操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等。

该中央处理器901可以执行前述图4所示实施例中交换机所执行的操作,具体此处不再赘述。

本申请实施例还提供了一种计算机存储介质,该计算机存储介质用于储存为上述网络设备或终端设备所用的计算机软件指令,其包括用于执行为网络设备或终端设备所设计的程序。

该网络设备可以如前述图3以及图4中所描述的网络设备。

该终端设备可以如前述图2以及图4中所描述的终端设备。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述图2至图4中任意一项的数据包传输方法的流程。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:频谱灵活光网络的节能方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!