一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于数据包的网络传输方法、装置、设备及存储介质与流程

2022-04-25 01:41:07 来源:中国专利 TAG:


1.本发明涉及网络数据传输技术领域,具体是涉及一种基于数据包的网络传输方法、装置、设备及存储介质。


背景技术:

2.从一端(服务器)到另一端(服务器)进行数据传输(端到端网络传输)时,是以数据流的形式进行传输的,数据流依次流经一端的应用层、传输层、链路层、位于两端之间的网络设备、另一端的链路层、传输层、应用层。而数据流是以数据包的形式进行传输,数据包太大会存在以下的负面影响:
3.(1)cpu(一端和另一端的cpu)负载过高:为了接收数据包,核心态会不断发生软中断和硬中断。当网卡接收到数据时会发生硬中断,当内核处理数据包时会发生软中断,这些中断带来了巨大的cpu开销,对cpu的性能提出了极高的挑战。(2)功率消耗:功耗做为厂商的重点关注对象,是扩展当前网络结构非常主要的限制因素。在网络带来的功耗中,交换机(位于网络层)则是主要的来源。相关的测量工作已经表明每个交换机的功耗从基础功耗开始,随着数据包数量呈线性增长,直到达到满功耗。
4.由于数据包头占比较大,数据包太小也会影响流完成的时间,对于大流而言随着数据包大小的提升,流完成的时间有着显著的下降趋势。
5.其次,一端和另一端所在网络是动态变化的,在流的整个传输过程中,由于网络中具有巨量的不同应用和动态结构,并且其中的部分链路并不稳定,这会直接带来rtt(round trip time,传输往返时延)的震荡,甚至有丢包现象的发生。
6.从上述记载可知,现有技术采用固定数据包大小(1500字节)的方式进行流的传输,会影响流传输的效率。
7.综上所述,现有技术的流传输效率较低。
8.因此,现有技术还有待改进和提高。


技术实现要素:

9.为解决上述技术问题,本发明提供了一种基于数据包的网络传输方法、装置、设备及存储介质,优化了流传输效率。
10.为实现上述目的,本发明采用了以下技术方案:
11.第一方面,本发明提供一种基于数据包的网络传输方法,其中,包括:
12.获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率;
13.依据已传输的所述流所对应的特征信息,得到使所述流传输效率最高(流完成时间最短)的数据包大小,所述数据包用于承载所述流所包含的数据信息;
14.依据所述数据包大小,将待传输的所述流在所述网络中传输。
15.在一种实现方式中,所述依据已传输的所述流所对应的特征信息,得到待传输的
所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息,包括:
16.依据所述特征信息,得到所述特征信息中的传输速率特征,所述传输速率特征用于反映所述流在所述网络中的传输速率;
17.依据已传输的所述流所对应的所述传输速率特征,得到待传输的所述流所对应的数据包大小。
18.在一种实现方式中,所述依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息,包括:
19.依据所述特征信息,得到所述特征信息中的传输质量特征,所述传输质量特征用于反映所述流在所述网络中传输时的传输效率与网络状态;
20.依据已传输的所述流所对应的所述传输质量特征,得到待传输的所述流最佳的数据包大小。
21.在一种实现方式中,所述依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息,包括:
22.依据所述特征信息,得到所述特征信息中的传输速率特征和传输质量特征,所述传输速率特征用于反映所述流在所述网络中的传输速率,所述传输质量特征用于反映所述流在所述网络中传输时的数据稳定性,所述传输速率特征和所述传输质量特征共同作用用于反映所述流在所述网络中的传输效率;
23.依据已传输的所述流所对应的所述传输速率特征和所述传输质量特征,得到待传输的所述流所对应的数据包大小。
24.在一种实现方式中,所述依据所述传输速率特征和所述传输质量特征,得到待传输的所述流所对应的数据包大小,包括:
25.依据所述传输速率特征,得到所述传输速率特征中的已传输的所述流所对应的往返时延、物理时延、传输时延、拥塞窗口大小;
26.依据所述传输质量特征,得到所述传输质量特征中的已传输的所述流所对应的丢包率;
27.依据所述已传输的所述流所对应的往返时延、物理时延、传输时延、拥塞窗口大小、丢包率,得到待传输的所述流所对应的数据包大小。
28.在一种实现方式中,所述依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息,包括:
29.获取样本流在所述网络中传输时所对应的特征信息和样本流所对应的数据包大小;
30.将所述样本流在所述网络中传输时所对应的特征信息输入至预测模型中,得到所述预测模型输出的数据包大小;
31.依据所述预测模型输出的数据包大小训练所述预测模型,直至所述预测模型输出的数据包大小所对应的准确率趋向于稳定,得到训练之后的所述预测模型,所述预测模型输出的数据包大小所对应的准确率与所述样本流所对应的数据包大小所对应;
32.将已传输的所述流所对应的特征信息输入至训练之后的所述预测模型,得到训练之后的所述预测模型输出的待传输的所述流所对应的数据包大小。
33.在一种实现方式中,所述将已传输的所述流所对应的特征信息输入至训练之后的
所述预测模型,得到训练之后的所述预测模型输出的待传输的所述流所对应的数据包大小,包括:
34.依据所述训练之后的所述预测模型,得到训练之后的所述预测模型中的预测分类模型;
35.将已传输的所述流所对应的特征信息输入到训练之后的所述预测分类模型,得到训练之后的所述预测分类模型输出的待传输的所述流所对应的数据包大小,待传输的所述流所对应的数据包大小与数据包设定大小相对应,所述数据包设定大小与所述网络的特性相对应。
36.在一种实现方式中,所述数据包的设定大小包括1500字节、3000字节、4500字节、6000字节、7500字节、9000字节。
37.在一种实现方式中,所述依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息,包括:
38.依据已传输的所述流所对应的特征信息,得到特征信息中的已传输的所述流所对应的往返时延;
39.获取发送端接收到确认帧所对应的时间,所述发送端用于将所述流发送至接收端,所述发送端和所述接收端位于所述网络中,所述确认帧为所述接收端接收到所述流时向所述发送端发送的信号;
40.所述发送端接收到确认帧所对应的时间达到往返时延的设定倍数之后,开始通过预测模型计算待传输的所述流所对应的数据包大小,所述预测模型用于通过已传输的所述流所对应的特征信息得到待传输的所述流所对应的数据包大小。
41.在一种实现方式中,所述依据所述数据包大小,将待传输的所述流在所述网络中传输,包括:
42.获取交换机处的各个待传输的所述流所对应的数据包大小,所述交换机位于所述网络中,用于将所述发送端的数据传输至所述接收端;
43.计算所述交换机完成对各个所述流所对应的数据包的传输,各个所述数据包在所述交换机中的队列中的等待总时间;
44.调整所述交换机传输各个所述数据包的顺序,直至等待总时间最小,得到各个数据包所对应的传输顺序;
45.依据各个所述数据包所对应的传输顺序,将待传输的所述流在所述网络中传输。
46.在一种实现方式中,已传输的所述流与待传输的所述流在传输时间上相邻。
47.第二方面,本发明实施例还提供一种基于数据包的网络传输方法的装置,其中,所述装置包括如下组成部分:
48.信息采集模块,用于获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率;
49.数据包大小计算模块,用于依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息;
50.传输模块,用于依据所述数据包大小,将待传输的所述流在所述网络中传输。
51.第三方面,本发明实施例还提供一种终端设备,其中,所述终端设备包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的基于数据包的网络传输程序,所
述处理器执行所述基于数据包的网络传输程序时,实现上述所述的基于数据包的网络传输方法的步骤。
52.第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于数据包的网络传输程序,所述基于数据包的网络传输程序被处理器执行时,实现上述所述的基于数据包的网络传输方法的步骤。
53.有益效果:本发明根据已经在网络中传输的流所对应的数据包大小以及以该数据包大小进行流传输时所对应的特征信息去动态调整待传输的流所对应的数据包大小,使得待传输的流以调整之后的数据包大小进行传输时,能够提高待传输的流在网络中的传输效率。
附图说明
54.图1为本发明的整体流程图;
55.图2为本发明的不同初始窗口对速率的影响;
56.图3为本发明的相同初始窗口对速率的影响;
57.图4为本发明的添加了ops的预测模块和修改包大小逻辑模块;
58.图5为本发明实施例提供的终端设备的内部结构原理框图。
具体实施方式
59.以下结合实施例和说明书附图,对本发明中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.经研究发现,从一端(服务器)到另一端(服务器)进行数据传输(端到端网络传输)时,是以数据流的形式进行传输的,数据流依次流经一端的应用层、传输层、链路层、位于两端之间的网络层、另一端的链路层、传输层、应用层。而数据流是以数据包的形式进行传输,数据包太大会存在以下的负面影响:
61.cpu(一端和另一端的cpu)负载过高:为了接收数据包,核心态会不断发生软中断和硬中断。当网卡接收到数据时会发生硬中断,当内核处理数据包时会发生软中断,这些中断带来了巨大的cpu开销,对cpu的性能提出了极高的挑战。(2)功率消耗:功耗做为厂商的重点关注对象,是扩展当前网络结构非常主要的限制因素。在网络带来的功耗中,交换机(位于网络层)则是主要的来源。相关的测量工作已经表明每个交换机的功耗从基础功耗开始,随着数据包数量呈线性增长,直到达到满功耗。
62.数据包太小也会影响流完成的时间,对于大流而言随着数据包大小的提升,流完成的时间有着显著的下降趋势。
63.其次,一端和另一端所在网络是动态变化的,在流的整个传输过程中,由于网络中具有巨量的不同应用和动态结构,并且其中的部分链路并不稳定,这会直接导致rtt(数据包大小)和丢包率的震荡。
64.从上述记载可知,现有技术采用固定数据包大小的方式进行流的传输,会影响流传输的效率。
65.为解决上述技术问题,本发明提供了一种基于数据包的网络传输方法、装置、设备
及存储介质,解决了现有技术降低了流传输的效率的问题。具体实施时,首先获取已传输的流在网络中传输所对应的特征信息,然后依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,最后依据所述数据包大小,将待传输的所述流在所述网络中传输。通过调整待传输流的数据包大小,能够提高流在网络传输中的效率。
66.举例说明,发送端和接收端通过网络进行音频的传输,完成一段音频的传输就是流,在上一时刻音频是以大小为a的数据包进行传输的,在音频传输的同时采集能够反映传输效率的特征信息,如果以大小为a的数据包进行传输时所对应的特征信息反映出传输效率不好,则下一时刻再进行音频传输时,则不再以大小为a的数据包进行传输了,而是不同于a的大小为b的数据包进行传输;如果以大小为a的数据包进行传输时所对应的特征信息反映出传输效率很好,则下一时刻仍然可以再以大小为a的数据包进行传输。
67.本实施例之所以要调整数据包的大小是因为数据包的大小对传输效率、存储转发时延、对拥塞窗口增长速率、丢包和重传都有影响,通过表1可以获知数据包的大小对储存转发时延和效率有影响,通过调整数据包的大小,使得储存转发时延和效率达到最佳。
68.表1
[0069][0070]
下面分别介绍数据包的大小对传输效率、存储转发时延、对拥塞窗口增长速率、丢包和重传都有影响。
[0071]
对传输效率的影响:相比于标准帧,大帧能有效提升传输效率,因为在包头大小相同的情况下它们可以携带更多的用户数据。如表1所示,在ipv4网络下,一个1500字节的帧的有效负载仅为94.3%,而一个9000字节帧的有效负载则可以到达99%。而ipv6的普及进一步加大了这个差距,这是因为ipv6网络下数据包的包头进一步增大,有效负载降低了。这个简单的分析证明9000字节的数据相比于1500字节的帧可以取得一个约5-6%的吞吐提升。
[0072]
对存储转发时延的影响:如表1所示,随着网络带宽的快速增长,数据包的序列化时延降低到微秒级别,不同大小的数据包的序列化时延之间的差别进一步缩小。我们使用idettrans交换机测量了不同网速下数据包的储存转发时延。时延结果表明,随着端口带宽的增长,储存转发时延迅速降低,但是数据包大小的改变却对它并没有很大的影响。考虑到ipv6会消耗更多的计算资源,降低数据包的数量能更好地降低整个的处理时延。可以将整个传输时间分成四个部分进行分析:排队时延,端侧和网络侧的序列化时延,处理时延(包括储存转发时延)以及与ack处理相关的时延。通过分析得知当数据包的大小增长时,整个的传输时间将会降低。
[0073]
对拥塞窗口增长速率的影响:以reno算法为例来解释数据包大小对速率增长的影响。在reno算法中,拥塞窗口在两个阶段增长,慢增长阶段和拥塞增长阶段。tcp协议规定了发送窗口等于拥塞窗口与接收窗口中更小的值,因此最大的传输速率受限于拥塞窗口与发
送窗口。依照该规定,分析在各个阶段分析发送速率与时间的关系。
[0074]
在慢增长阶段,发送窗口主要受到拥塞窗口的限制,考虑到拥塞窗口随着时间以指数形式增长,我们可以推算出在时间t内可以发送的总数据量d
t
为:
[0075][0076]
瞬时发送速率是在很短的时间内发送的数据量与消耗的时间的比值,因此可以推导出发送速率v的表示方法:
[0077][0078]
其中e代表传输的效率,ic代表初始的拥塞窗口大小,t1代表传输一个数据包需要的时间。观察上述公式可以发现,发送速率对e成正比,但是随着时间的增长会下降。图2和图3更加直观的表明初始窗口对速率的影响。
[0079]
根据标准,初始窗口应该被设为十个数据包的大小,在这种规定下,如图2所示,9000字节的数据包比1500字节的数据包表现更好,但是从一个公平的角度出发,如图3所示,当采用相同的初始窗口时,使用1500字节的数据包反而能取得更好的效果。
[0080]
在拥塞避免阶段,数据包每个rtt只增长一个数据包的大小,即发送速率以线性的方式增长,因此使用9000字节的数据包能获得更快的增长速度。最后当拥塞窗口超过了接收窗口后,发送速率逐渐稳定,除非发生丢包,这时速率则受到传输效率的限制。
[0081]
尽管此段分析基于reno算法的机制,t1和e的影响也可以作为其他算法的参考。
[0082]
对丢包和重传的影响:排队导致的尾丢包和早期重传检测会造成网络性能的显著下降,使用不同的数据包大小,触发丢包的概率和重传的代价也不同,接下来将以相同的比特错误率进行分析:
[0083]
丢包概率:对于所有的基于选择确认(sack)的机制,同一个rtt内多个丢包被看做一个相同的拥塞信号。因此丢失一个9000字节的数据包或者6个连续的1500字节的数据包往往对丢包率有着相同的影响,不同的是大帧难以利用队列中剩余的小空间。举例而言,假设队列中仅剩8000字节的空间,一个9000字节的数据包将被丢弃,而队列中仍能容纳数个1500字节的数据包。类似地,在早期随机检测机制下,大数据包更容易超过最小和最大的阈值。
[0084]
重传:crc32算法选择的多项式已经针对1500字节的数据包进行的调优,因此它对大数据包的有效性降低了,这意味着对大包检测到错误需要更长的时间。当检测到错误之后,重传大包需要更多的资源。另外,之前的研究表明吞吐量的上限与数据包的大小成正比,与丢包率的1/2次方成反比,因此1500字节的数据包限制了吞吐量的上限。
[0085]
示例性方法
[0086]
本实施例的基于数据包的网络传输方法可应用于终端设备中,所述终端设备可为具有数据传输功能的终端产品,比如手机、电脑等。在本实施例中,如图1中所示,所述基于数据包的网络传输方法具体包括如下步骤:
[0087]
s100,获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率。
[0088]
s200,依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息。
[0089]
本实施实之所以要调整数据包大小是基于以下原因考虑:
[0090]
无论是标准帧还是大帧(帧是数据包大小的单位),都有其特定的局限性,而最佳的数据包大小(ops)可能是数据包有效范围内的任意值。通过观察实验结果,可以发现ops的一定变化规律:当网络配置固定时,随着流大小的增长,流所对应的最佳数据包大小也应增大;而当流大小固定时,网络的传播时延越大,流所对应的最佳数据包大小也应增大。另外,网络是动态变化的,即便已经分析出在某个网络场景下最合适的数据包的大小,在流的整个传输过程中,仍然不能保证最佳的数据包大小是恒定不变的,这是因为网络中具有巨量的不同应用和动态结构,并且其中的部分链路并不稳定,这会直接导致rtt和丢包率的震荡,因此持续地检测网络并且即使调整数据包的大小十分重要。
[0091]
本实施例可以只根据已传输的流所对应的传输速率这一特征信息去获取待传输的流所对应的最佳数据包大小,也可以只根据已传输的流所对应的传输质量特征去获取待传输的流所对应的最佳数据包大小,或者结合已传输的流所对应的传输速率和传输质量去获取待传输的流所对应的最佳数据包大小。其中传输质量指的是流以数据包的形式在网络中传输时数据包丢失的情况。本实施例也可以先根据已传输的流所对应的特征信息通过模型去准确预测待传输的流所对应的数据包的大小,待传输的流采用预测出来的数据包大小进行传输,能够提高传输效率(即待传输的流所对应的特征信息达到最佳)。
[0092]
当根据已传输的流所对应的传输速率这一特征信息去获取待传输的流所对应的最佳数据包大小时,步骤s200包括如下的步骤s201和s202:
[0093]
s201,依据所述特征信息,得到所述特征信息中的传输速率特征,所述传输速率特征用于反映所述流在所述网络中的传输速率。
[0094]
s202,依据已传输的所述流所对应的所述传输速率特征,得到待传输的所述流所对应的数据包大小。
[0095]
当根据已传输的流所对应的传输质量特征去获取待传输的流所对应的最佳数据包大小,步骤s200包括如下的步骤s203和s204:
[0096]
s203,依据所述特征信息,得到所述特征信息中的传输质量特征,所述传输质量特征用于反映所述流在所述网络中传输时的数据稳定性。
[0097]
s204,依据已传输的所述流所对应的所述传输质量特征,得到待传输的所述流所对应的数据包大小。
[0098]
当根据已传输的流所对应的传输速率和传输质量去获取待传输的流所对应的最佳数据包大小时,步骤s200包括如下的步骤s205、s206、s207、s208:
[0099]
s205,依据所述特征信息,得到所述特征信息中的传输速率特征和传输质量特征,所述传输速率特征用于反映所述流在所述网络中的传输速率,所述传输质量特征用于反映所述流在所述网络中传输时的数据稳定性,所述传输速率特征和所述传输质量特征共同作用用于反映所述流在所述网络中的传输效率。
[0100]
s206,依据所述传输速率特征,得到所述传输速率特征中的已传输的所述流所对
应的往返时延、物理时延、传输时延、拥塞窗口大小。
[0101]
本实施例中的往返时延为平均往返时延,往返时延即rtt,代表数据包从发出到收到确认数据包(ack)所用的时间长度,物理时延为网络中没有数据包排队时的传输时延,拥塞窗口代表发送方一个rtt可以发送的数据量大小。其中,平均往返时延体现了较长一段时间内的网络状况。传输时延为最近三个数据包的传输时延,最近三个数据包的往返时延则能体现出网络拥塞状况的变化趋势。
[0102]
本实施例还根据发送端发送的已传输的流所对应的发送速率去调整待传输的流所对应的最佳数据包大小。将使用一段时间内接收的数据包数量和时间长度的比值作为数据发送的速率。
[0103]
s207,依据所述传输质量特征,得到所述传输质量特征中的已传输的所述流所对应的丢包率。
[0104]
比如,发送端发送了十个数据包,接收端只接收到八个数据包,那么丢包率就是百分之二十。将每一次拥塞窗口的下降视为一次丢包并记录丢包次数。
[0105]
s208,依据所述已传输的所述流所对应的往返时延、物理时延、传输时延、拥塞窗口大小、丢包率,得到待传输的所述流所对应的数据包大小。
[0106]
本实施例在预测数据包大小时,还考虑剩余的字节大小,一条流在发送过程中已经发送了部分数据出去,其余未发送的数据的长度称为剩余字节大小。
[0107]
流平均往返时延、物理时延、最近三个数据包的传输时延、丢包率、发送速率、拥塞窗口、剩余的字节大小,构成了一个9
×
n的数据集,n是数据总的条数。
[0108]
当通过模型去准确预测待传输的流所对应的数据包的大小时,步骤s200包括如下的步骤s209、s2010、s2011、s2012、s2013:
[0109]
s209,获取样本流在所述网络中传输时所对应的特征信息和样本流所对应的数据包大小。
[0110]
本实施例通过如下的方法获取样本流(获取样本流即进行数据的收集):
[0111]
收集上百万条流运行的数据,流大小的分布遵循于网络搜索和数据挖掘工作负载的流大小分布。流在每一次运行的过程中都保持数据包的大小不变,在每一条流运行完成后我们收集所需要的特征(流平均往返时延、物理时延、最近三个数据包的传输时延、丢包率、发送速率、拥塞窗口、剩余的字节大小)。大小为1500字节、3000字节、4500字节、6000字节、7500字节、9000字节的数据包构成了数据包集合,从上述集合里提取数据包大小,因此对于每条流可以得到六组数据,我们将流完成时间最短的一条加入到我们的数据集当中。在此处,流完成时间用作数据筛选,但并不作为一个特征加入到数据集中。
[0112]
1500字节、3000字节、4500字节、6000字节、7500字节、9000字节都是1500的倍数,这样的选择与数年来网络协议栈,操作系统以及驱动长期以来为1500字节数据包做出的优化有一定关系,选择1500的倍数还基于如下原因:
[0113]
数据链路层的最大传输单元(mtu)在建立tcp连接的三次握手阶段就确定下来了,为了减小对协议栈的改动,选择在传输层对数据包大小进行修改。在现在,几乎所有的端侧网卡(为发送流的发送端和接收流的接收端中的网卡)和千兆交换机都支持9000字节的大数据包(不包括以太网帧头和crc校验字段),因此可以将mtu值设为最大的9000字节并且让它保持不变。在一条流的传输过程中,在mtu的范围内对数据包大小进行修改。
[0114]
尽管在9000字节范围内的所有数据包大小都是可用的,但是实验过程中发现当采用几个特定的数据包大小时,它们的表现明显比其他的选择要突出。如果将两台同样的服务器连接在一台千兆交换机上,并且在服务器上启动一条长期存在的文件传输流,每次传输都使用不同的数据包大小,数据包大小由400字节到9000字节以100字节为步长持续增长。实验结果表明吞吐量的巅峰出现在1500字节数据包的倍数处,即(1500,3000,4500,6000,7500,9000)字节。这样的结果与数年来网络协议栈,操作系统以及驱动长期以来为1500字节数据包做出的优化有一定关系。因此,最终的数据包大小也从该集合进行选择,其中每个数据包大小都能覆盖一定范围的网络场景。
[0115]
s2010,将所述样本流在所述网络中传输时所对应的特征信息输入至预测模型中,得到所述预测模型输出的数据包大小。
[0116]
本实施例的预测模型为六分类模型,即预测模型输出的结果只能是大小为1500字节、3000字节、4500字节、6000字节、7500字节、9000字节。
[0117]
许多监督学习的模型都可以用于数据包大小的预测,但xgboost(六分类模型)是一个出色的并行提升树模型,有着高精度和快速收敛的优点,它改进了损失函数,避免了过拟合,并且每一个新树的权重都使用一个固定的常数缩小,从而降低了每一棵新树对预测结果的影响。
[0118]
s2011,依据所述预测模型输出的数据包大小训练所述预测模型,直至所述预测模型输出的数据包大小所对应的准确率趋向于稳定,得到训练之后的所述预测模型,所述预测模型输出的数据包大小所对应的准确率与所述样本流所对应的数据包大小所对应。
[0119]
在训练过程中不断调整预测模型的参数,使得预测模型输出的数据包大小的准确性不断提高,直至准确性稳定在一个具体数值上,完成对预测模型的训练。
[0120]
s2012,依据所述训练之后的所述预测模型,得到训练之后的所述预测模型中的预测分类模型。
[0121]
s2013,将已传输的所述流所对应的特征信息输入到训练之后的所述预测分类模型,得到训练之后的所述预测分类模型输出的待传输的所述流所对应的数据包大小,待传输的所述流所对应的数据包大小与数据包设定大小相对应,所述数据包设定大小与所述网络的特性相对应。
[0122]
本实施例是在流达到之前就完成了流所对应的数据包大小的预测,比如一条流需要通过发送端发送至接收端,在发送端发送流之前就要完成对数据包大小的预测,这样能够降低对fct(流平均完成时间)的影响,具体原因如下:
[0123]
分析网络特征可知,越来越多的应用基于分区/聚合的工作模式。在这种模式下,流往往会以突发的形式到达,而这种突发往往会在瓶颈处带来严重的拥塞,导致往返时间剧烈的震荡。对于不能在一个数据包大小内完成的流,尤其是那些生命周期很长的流,这种震荡在整个传输过程中可能会发生数次。单独考虑每条流,随着数据的发送,剩余的字节逐渐减少,而拥塞窗口根据拥塞算法改变。这些因素都会对ops(数据包大小)的选取产生影响,对于某些特定的流,如果仅仅在流到达的时候确定它采用的数据包大小,这种调整可能并不会带来优化而且甚至可能对fct造成损害。因此要在流达到之前完成对数据包大小的预测。
[0124]
步骤s200并不是对数据包大小的预测频率越大就越好,而且要选择一个合适的频
率以降低预测所带来的计算对资源的消耗。如果预测频率不合适会带来如下的影响:
[0125]
在整个工作流程中,重要的是确定调整的频率。一方面,计算的开销应成为一个重要的考量方面。频繁的预测会消耗大量的计算资源,并且假设网络处在一个频繁震荡的状态下,即使做出调整的频率很高,也未必会带来很大的性能提升。另一方面,假设预测周期过长,预测结果很难反映很长一段时间内的网络状况。除此之外,不同的路径具有不同的往返时间,因此他们应该采取不同的测量间隔。
[0126]
实施例中确定预测频率大小之后再根据频率大小完成对数据包大小的预测,具体包括:依据已传输的所述流所对应的特征信息,得到特征信息中的已传输的所述流所对应的往返时延;获取发送端接收到确认帧所对应的时间,所述发送端用于将所述流发送至接收端,所述发送端和所述接收端位于所述网络中,所述确认帧为所述接收端接收到所述流时向所述发送端发送的信号;所述发送端接收到确认帧所对应的时间达到往返时延的设定倍数之后,开始通过预测模型计算待传输的所述流所对应的数据包大小,所述预测模型用于通过已传输的所述流所对应的特征信息得到待传输的所述流所对应的数据包大小。
[0127]
举例来讲,假设两条流a和b分别具有2ms和50ms的往返传输时间,那么50ms的预测间隔对于a来讲过长而对b来讲过短。考虑到以上几点,我们将预测间隔与平均往返时间联系起来。维护两个值:平均的往返时间(也作为一个预测特征)、上一次接收到预测值的时间。当发送端接收到一个确认帧时,他会检测距离上一次接收到预测值是否已经经过了k个平均往返时间,如果时间已经足够长,预测模块将会启动。
[0128]
s300,依据所述数据包大小,将待传输的所述流在所述网络中传输。
[0129]
步骤s300包括如下的步骤s301、s302、s303、s304:
[0130]
s301,获取交换机处的各个待传输的所述流所对应的数据包大小,所述交换机位于所述网络中,用于将所述发送端的数据传输至所述接收端。
[0131]
发送端通过交换机将流发送到接收端,在交换机的位置处会出现数据包排队的情况。因此需要建立优先机制以降低总体的排队时间。
[0132]
s302,计算所述交换机完成对各个所述流所对应的数据包的传输,各个所述数据包在所述交换机中的队列中的等待总时间。
[0133]
s303,调整所述交换机传输各个所述数据包的顺序,直至等待总时间最小,得到各个数据包所对应的传输顺序。
[0134]
s304,依据各个所述数据包所对应的传输顺序,将待传输的所述流在所述网络中传输。
[0135]
步骤s301-s304是基于如下原理根据优先机制确定传输顺序的:
[0136]
动态调整数据包大小在工作负载较轻的情况下表现很好,但是随着链路的负载增长,数据包可能会在交换机处排队,假设大包和小包顺序到达了同一个队列中,由于先进先出队列的特性,数据包只能按序发送。考虑到一个大数据包比小数据包消耗更多的排队时间,它会让小流排队时间更久,尤其是在低速网络中。因此考虑使用多优先级队列配合优先级,为不同大小的数据包分配不同的优先级。这里有两个关键的问题:如何为每个数据包分配优先级和如何为每个队列确定发送概率。另外,由于ecn机制广泛用于当前最新的设计中,本实施例还为多队列设计了相应的ecn标记机制。
[0137]
上述是确定同一个队列中的优先级机制,很实施例还确定不同队列之间的优先级
机制,包括如下过程:
[0138]
在相同的网络状态下,小流倾向于使用更小的数据包大小,这表示在网络环境不变的前提下,每条流的ops随着剩余字节数的减小而降低。并且如果延迟上涨,所有流的ops都会有上涨的趋势,但相比于大流,小流仍然拥有相对较小的ops。根据最短剩余处理时间优先原则,剩余字节数较少的流应该被分配到更高的优先级中,目前已有的基于最短剩余时间优先的工作根据数据包包头的标记和一系列预先定义的阈值为数据包分配优先级,但是考虑到动态调节数据包大小的特殊特征,本实施例以一种更简单的方式实现最短剩余时间优先。本实施例使用六个优先级分别对应集合中的六个数据包大小,比1500字节更小的数据包直接被赋予最高的优先级,该设计保证了小流被分配到最高的优先级队列,并且在流的传输过程中,它的优先级逐渐提升,符合最短剩余处理时间优先的原则。假设共有k个优先级队列,在的实验中0号队列拥有最高的优先级,本实施例为每一个优先级队列都分配一个发送概率(probablity,记为pi),希望选择一个最优的概率集合来使所有流在链路中的平均流完成时间最小。本实施例使用m/m/1优先级队列对流的到达和发送进行建模,将问题转换为有序最小方差的优化问题,并使用scipy工具来获取最优集合。
[0139]
本实施例中的ecn标记机制设计过程如下:ecn最初是对于单条队列设计的,并没有针对多队列进行设计。因此为方案中采取的多队列机制设计了一套ecn标记机制。在多队列和不同包大小的情景下,有两个显而易见的原则:一是ecn标记的数据比例不应该受到数据包大小的影响:假设两台相同带宽的服务器分别发送1500字节和3000字节的数据包,且数据包公平竞争,那么在链路上1500字节和3000字节的数据包数量占比应该为2:1。当这些数据包在交换机中排队时,当数据包超过了ecn标记的阈值,标记的比例也应该为2:1,即标记的比例并不会因数据包大小的变化而收到影响。二是ecn的到达不应该被不同的发送概率所影响,如果按照整个队列的长度来标记数据包,则被标记的数据包总是优先级较低的数据包,对于大包十分不公平,因为它们已经有了较低的发送概率,以这种方式进行标记可能会导致数据包的大量堆积甚至丢包。如果为每个队列分配相同的优先级,则在最低优先级的队列中被标记的数据包的送达可能会不及时,因为它们的发送概率较低。因此为每个队列分配不同的优先级,遵循优先级越低,阈值越低的原则,这可以有效地限制低优先级队列的队列长度,假设链路的总容量是v,α代表未被标记的数据包的比例,那么将每个队列中的阈值设为v
×
α
×
p(p为每个队列的发送概率)。
[0140]
通过本发明的技术方案得到待传输的流所对应的数据包的大小,整体过程如下:
[0141]
(1)实验配置:
[0142]
流量生成:使用了实际生产环境中观察到的特定流分布,网络搜索和数据挖掘两种流大小分布特征。流的到达时间遵循泊松分布,源-目的统一随机生成,将链路利用率保持在50%-80%之间,使用ecmp作为默认的负载均衡机制。
[0143]
基于窗口的拥塞控制算法选择:为了观察本发明的方案否能适用于各种方案,将本发明的方案与三个基于窗口的拥塞控制算法结合起来。考虑到本发明是基于reno算法的,因此将newreno作为本发明的算法之一,同时本发明还选择了cubic和dctcp算法。其中cubic是目前linux内核中默认的算法,而dctcp通过ecn标记来管理拥塞窗口,本发明采集了流在这三个算法下运行的数据。
[0144]
性能衡量指标:以预测准确度(accuracy)作为预测效果的指标,同时本发明也关
注每一次预测的时延。在网络优化层面,主要关注平均的流完成时间。
[0145]
(2)原型实现:
[0146]
在实验中发现,对tcp协议栈的主要更改则是添加了如图4所示的ops的预测模块和修改包大小逻辑模块,
[0147]
第一个模块即ops的预测模块实现在用户态,当协议栈判断距离上一次预测已经经过了足够长的时间,它将会收集预测所需的信息,并且激活预测应用。第二个模块则是ops的获取与数据包大小的修改,这个模块被实现在核心态。使用一个热拔插的核心模块来控制是否开启数据包大小的修改,它同时控制着核心态与用户态的交流。实际的操作过程中在tcp与ip层的交界处修改了mss_cache参数,首先,该值不会干预具体的拥塞算法实现,其次,系统中往往开启gso/tso(一种将数据分片推迟到网卡硬件处的技术)来降低cpu开销,而gso/tso选项将数据包分片的依据则是每个插口的mss_cache值
[0148]
综上,本发明根据已经在网络中传输的流所对应的数据包大小以及以该数据包大小进行流传输时所对应的特征信息去动态调整待传输的流所对应的数据包大小,使得待传输的流以调整之后的数据包大小进行传输时,能够提高待传输的流在网络中的传输效率。
[0149]
另外,本发明是动态调整数据包大小的,以此提高传输效率。本发明是根据数据包大小而不是流大小来区分数据包的优先级,以此减少所有数据包所对应的总体排队时间,从而提高传输速率。本发明涉及通过调整数据包的大小来降低流传输过程中的平均流完成时间,本发明采用机器学习的方式来学习不同网络环境下的最佳数据包大小,训练出梯度下降分类模型,根据预测出的结果来调节传输的数据包大小,以降低流完成时间,优化用户体验。
[0150]
示例性装置
[0151]
本实施例还提供一种基于数据包的网络传输方法的装置,所述装置包括如下组成部分:
[0152]
信息采集模块,用于获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率;
[0153]
数据包大小计算模块,用于依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息;
[0154]
传输模块,用于依据所述数据包大小,将待传输的所述流在所述网络中传输。
[0155]
基于上述实施例,本发明还提供了一种终端设备,其原理框图可以如图5所示。该终端设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端设备的处理器用于提供计算和控制能力。该终端设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于数据包的网络传输方法。该终端设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端设备的温度传感器是预先在终端设备内部设置,用于检测内部设备的运行温度。
[0156]
本领域技术人员可以理解,图5中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端设备的限定,具体的终端设备以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0157]
在一个实施例中,提供了一种终端设备,终端设备包括存储器、处理器及存储在存储器中并可在处理器上运行的基于数据包的网络传输程序,处理器执行基于数据包的网络传输程序时,实现如下操作指令:
[0158]
获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率;
[0159]
依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息;
[0160]
依据所述数据包大小,将待传输的所述流在所述网络中传输。
[0161]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0162]
综上,本发明公开了一种基于数据包的网络传输方法、装置、设备及存储介质,所述方法包括:获取已传输的流在网络中传输所对应的特征信息,所述特征信息用于反映所述流在所述网络中的传输效率;依据已传输的所述流所对应的特征信息,得到待传输的所述流所对应的数据包大小,所述数据包用于承载所述流所包含的数据信息;依据所述数据包大小,将待传输的所述流在所述网络中传输。本发明根据已经在网络中传输的流所对应的数据包大小以及以该数据包大小进行流传输时所对应的特征信息去动态调整待传输的流所对应的数据包大小,使得待传输的流以调整之后的数据包大小进行传输时,能够提高待传输的流在网络中的传输效率。
[0163]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献