CN111064704A - 一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 - Google Patents
一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 Download PDFInfo
- Publication number
- CN111064704A CN111064704A CN201911134336.6A CN201911134336A CN111064704A CN 111064704 A CN111064704 A CN 111064704A CN 201911134336 A CN201911134336 A CN 201911134336A CN 111064704 A CN111064704 A CN 111064704A
- Authority
- CN
- China
- Prior art keywords
- data
- neural network
- tcp
- window
- sub
- 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.)
- Granted
Links
Images
Classifications
-
- 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/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于MPTCP启动窗口自适应的数据传输方法,包括:数据采集步骤,抓取并拆解数据包,获取每一TCP子流的数据包信息;数据处理步骤,根据该数据包信息计算该每一TCP子流的特征值,并对该数据包信息和该特征值进行规范化处理,得到一组数据条目;神经网络训练步骤,将所述数据条目输入该神经网络,对该神经网络进行训练,得到所述启动窗口的设置策略;启动窗口的设置策略执行步骤,将所述启动窗口的设置策略作用到所述数据包上,并根据该TCP子流的分布情况自适应地修改该启动窗口的设置策略。
Description
技术领域
本发明涉及计算机网络传输控制领域,特别涉及一种基于长短数据流的多路径传输控制协议(Multipath Transmission Control Protocol:MPTCP)启动窗口优化方法和系统。
背景技术
目前的通信设备通常都具备多个物理网络接口以传输数据。为了实现网络的容错冗余与热插拔,这些网络接口都使用不同物理实现的网络(例如:有线、WiFi、蜂窝无线)。用户的数据流首先下发到不同的网络接口,然后通过路由路径不重合的服务提供商网络进行传输。而使用传统的传输控制协议(TCP)和互联网协议(IP)的标准,用户在设备间传输数据时只能通过单个网络接口的IP地址,即只在一对源IP地址和目地IP地址间会话。为了并行的利用多个网络接口传输数据,请求注解6824(Request for comments 6824)中首次对传统的TCP协议进行了扩展并提出MPTCP协议,以支持数据流在多条路径上的并行传输。
如图1所示,MPTCP的核心原理是在传统的TCP层上,增加了一层对用户透明的外壳。这个外壳为应用层的数据增加MPTCP所需要的信号量,以完成对端协商与数据流的并行传输。MPTCP的外壳主要包含路径管理器、数据包调度器、拥塞窗口控制器、错误回退等功能。而MPTCP默认的路径管理器包括:全路径模式、多端口模式和备份模式,全路径模式能够同时利用MPTCP宿主机的多个网络接口建立多个TCP子流传输数据;多端口模式则通过松散路由的方式对与宿主机同一个局域网的多个出口网关进行多路径传输;备份模式不同于前者,将除去初始TCP子流之外的其他新增子流设置为备份子流,只有当初始TCP子流失败的时候才从备份子流中选择一个来传输数据。由于备份模式与传统的单路径TCP传输无明显差异,其对基于长短数据流的启动窗口优化方法在现有技术中已经得到充分的研究。因此本发明仅针对全路径和多端口的路径管理器进行重新设计。当初始TCP子流与新增TCP子流全部建立完成之后,数据包调度器通过MAP表调度数据。MPTCP默认的调度器(包括:最小往返时延优先、轮询、冗余模式)。冗余模式仅使用初始子流传输数据,其他子流作为备份,无法充分发挥MPTCP高吞吐量的特性。轮询模式不考虑子流的质量,轮流的发送数据,导致质量好的子流没有得到充分的利用。最小往返时延(Minimal Round Trip Time:Min-RTT)优先模式,通过网络质量的基础表征参数RTT来选择子流并传输数据,是目前实际场景性能最好的调度器算法。虽然现有技术中已经存在理论上性能更好的调度算法,但都停留在仿真阶段。因此,本发明仅在Min-RTT数据包调度器的基础上优化MPTCP的多路径传输。在数据传输开始时,拥塞窗口控制器将根据默认的启动窗口配置设置每条子流的相同的启动窗口。此外,若某条子流出现链路拥塞时,拥塞控制算法也通过窗口控制器对拥塞窗口进行调节,以缓解链路的拥塞情况。目前的拥塞控制算法主要有EWTCP、LIA、OLIA,都证实了每个子流拥有自己的拥塞窗口时才能获得更高的性能。由于,当新建立子流的数目过多时,默认统一的窗口配置方法无法满足子流间的巨大差异,将极大的降低MPTCP的性能。正因如此,MPTCP的拥塞窗口控制算法也由统一无差异的拥塞窗口调节机制,转变为分而治之差异化的拥塞窗口调节机制。
与此同时,当前测量工作,显示TCP数据流的流量分布情况符合幂律分布,即占据TCP流总数80%的蚂蚁流,只传输总数据流量的20%,大部分TCP连接传输的数据量十分小,比如HTTP传输建立了很多TCP流,但传输的数据量却很小。占据TCP流总数20%的大象流,传输了总数据流量的80%,即大量的数据传输只发生在少量的TCP连接上,比如FTP大文件传输和视频流传输等。“在无线网络中的多路径传输协议的性能测量”(CHEN,Yung-Chih,etal.A measurement-based study of multipath tcp performance over wirelessnetworks.In:Proceedings of the 2013conference on Internet measurementconference.ACM,2013.p.455-468.)发现对于蚂蚁流,MPTCP的平均往返时延(RTT)反而高于单路径的TCP传输,平均吞吐量反而低于单路径TCP。由于当应用层数据流不总是承载大象流业务时,MPTCP现有的慢启动窗口无法长度自适应业务的变化。具体的,当应用层数据流长时间为蚂蚁流,假设MPTCP的慢启动窗口设置为10MSS(过大),每个MSS大小为1500Bytes。那么每个TCP子流要传输15KB的数据才渡过慢启动阶段,对于128KB大小的蚂蚁流,MPTCP的路径管理器在初始的TCP子流传输完128KB之后,其新增的第二条TCP子流的四次握手仍然未完成。同样的,对于大部分蚂蚁流,整个数据流在初始TCP子流已经传输结束之前,新增的TCP子流要么处于握手状态,要么未渡过慢启动状态。同时,由于蚂蚁流要传输的数据包数目少,默认的数据包调度器会根据发送窗口的数目分配数据包,导致分配到MPTCP每条TCP子流的数据包过少,当出现数据丢包的时,很可能由于无法收到3次重复的ACK进行快速恢复,而造成大量的尾部重传。当应用层数据流长时间为大象流时,MPTCP建立的多条TCP子流能够并行的利用多个网络接口传输数据从而进行吞吐量聚合,假设MPTCP的启动窗口设置为2MSS(过小),使得经过四次握手建立的新子流,需要再经过2个RTT窗口才能达到10MSS。由于每条子流无法快速提升数据发送速率,MPTCP没有快速的利用所有子流接口的传输能力,使得大象流的传输吞吐量需要等待较长的时间才能提升。因此,对于不同类型的数据流,需要对MPTCP子流的启动窗口进行长度自适应调整以满足不同大小的数据流的传输特性。
由于TCP的流量分布特性是基于大规模数据流的测量统计得出的,而对于每条子流启动窗口的调整则是离散的决策结果。因此,传统的启发式方法不能从大量历史的启动窗口配置知识中,获得新的启动窗口决策知识。“减少web的时延通过增强学习算法动态设置TCP的初始拥塞窗口”(NIE,Xiaohui,et al.Reducing web latency throughdynamically setting tcp initial window with reinforcement learning.In:2018IEEE/ACM 26th International Symposium on Quality of Service(IWQoS).IEEE,2018.p.1-10.)首创了增强学习的方法在服务器端调整单路径的TCP启动窗口,并根据不同TCP数据流的源地址的服务提供商、地理位置、IP网段等信息,来训练和调整启动窗口的大小,使得数据流平均的传输时延减少23%-29%。本发明考虑到MPTCP的多条TCP子流启动窗口是独立性,而数据流长度差异,使得对MPTCP子流统一的设置启动窗口无法发挥多条子流的优势。由于传统的TCP不像MPTCP有多条子流需要协调,而且子流的数目是随时变化的,“减少web的时延通过增强学习算法动态设置TCP的初始拥塞窗口”(NIE,Xiaohui,etal.Reducing web latency through dynamically setting tcp initial window withreinforcement learning.In:2018IEEE/ACM 26th International Symposium onQuality of Service(IWQoS).IEEE,2018.p.1-10.)中基于mulit-arm的增强学习方法,无法应对多子流的场景,由于arms数目通常是固定的,而子流的数目是动态加入和删除的。而深度增强学习使用深度神经网络作为估计值函数,能够训练和动态记忆大量子流的历史经验,并且在使用经验池和辅助的目标神经网络,通过蒙特卡洛随机采样的方式使得每条子流传输数据的相关性被打破,而且能够学习到很久以前的历史经验。通过训练深度神经网络的方法,根据不同启动窗口的子流在当前网络环境中的表现情况调整神经网络的参数,使得深度神经网络学会历史的知识,并且结合增强学习的方法,对当前子流的链路网络环境变化时,神经网络能够学习到启动窗口决策的最新的知识,从而最终对MPTCP的启动窗口进行最优的决策。
发明内容
为了解决上述技术问题,本发明目的在于提供一种基于长短数据流的多路径传输控制协议(MPTCP)的启动窗口优化方法和系统,针对业务数据流的大小和分布特性,提出基于长短数据流的多路径启动窗口优化解决方案。
具体地说,本发明公开了一种MPTCP启动窗口自适应的数据传输方法,其特征在于,包括:
数据采集步骤,抓取并拆解数据包,获取每一TCP子流的数据包信息;
数据处理步骤,根据该数据包信息计算该每一TCP子流的特征值,并对该数据包信息和该特征值进行规范化处理,得到一组数据条目;
神经网络训练步骤,将所述数据条目输入该神经网络,对该神经网络进行训练,得到所述启动窗口的设置策略;
启动窗口的设置策略执行步骤,将所述启动窗口的设置策略作用到所述数据包上,并根据该TCP子流的分布情况自适应地修改该启动窗口的设置策略,获得该启动窗口的最优设置策略。
上述数据传输方法中,所述数据包信息包括该TCP子流的四元组、发送窗口、接收窗口、时间戳;所述特征值包括该TCP子流的吞吐量T、时延L。
上述数据传输方法中,所述数据条目包括:
该每一TCP子流的状态S,该状态S包括IP前缀相同的一类服务的TCP子流的所述四元组信息;
一动作空间a,该动作空间为所述状态S的所述启动窗口;以及
一平均反馈值r,该平均反馈值r通过所述特征值定义得到。
上述数据传输方法中,所述数据采集步骤还包括:
S110,初始化一池化驱动,对CPU的核心和线程进行配置或绑定,设置一大页内存,并创建多个线程;
S120,通过该池化驱动的轮询模式驱动程序,使用零拷贝技术抓取TCP子流。
上述数据传输方法中,所述多个线程均绑定到独立的物理核,该每一线程对应着独立的免锁队列。
上述数据传输方法中,所述数据处理步骤还包括:
S210,对所述每一TCP数据流的地址进行分类,将相同服务类型的所述TCP子流的所述四元组规范化为同一种所述状态S,并对该同一种所述状态S设置相同的动作空间a,其中a为正整数;
S220,根据所述时间戳、所述发送窗口和所述接收窗口的大小变化计算所述吞吐量T与所述时延L;
S230,将所述吞吐量T与所述时延L的数值均标准化到[-1,1];
S240,根据所述吞吐量T与所述时延L以及该二者的指数加权平均参数α定义所述平均反馈值r=T*α+L*(1-α);
S250,计算所述每一TCP子流的加权平均反馈值E[∑γ*r],其中,γ∈(0,1]。
上述数据传输方法中,所述指数加权平均参数α用于区分所述吞吐量T与所述时延L对数据传输的重要性。
上述数据传输方法中,所述数据处理步骤进一步包括:
为所述数据条目建立无锁环形队列;
创建一存储缓冲区,并将该存储缓冲区封装成实际的TCP数据报文,用于存储所述数据条目。
上述数据传输方法中,所述神经网络训练步骤还包括:
S310,将包括所述状态S的所述数据条目输入所述神经网络中的一值函数神经网络,并将该数据条目存储至一经验池;
S320,训练所述值函数神经网络,并调整该值函数神经网络参数θ,得到一值函数Q(St,at,θ),该值函数为t时刻该TCP子流的状态St执行启动窗口决策at的得分;
S330,根据所述值函数的得分情况,在所述经验池中选择得分高的数据条目,输入所述神经网络中的一目标神经网络,并将所述值函数神经网络的参数θ周期性的复制到该目标神经网络进行训练,得到一目标值函数Q*(St+1,at+1);
上述数据传输方法中,所述在所述经验池中选择得分高的所述数据条目的方法包括蒙特卡洛随机采样的方法。
上述数据传输方法中,所述误差函数调整神经网络参数θ的方法包括梯度下降方法,其调整公式为:
其中,π为所述启动窗口设置策略的神经网络估计函数,vt是从所述经验池中随机采样的历史经验反馈。
上述数据传输方法中,所述TCP子流的启动窗口大小的最优设置策略通过MPTCP协议栈中的一拥塞窗口控制模块作用到所述数据包上。
为实现本发明的另一目的,本发明还提供一种利用上述任一数据调度方法的数据调度装置,该装置包括:
数据采集模块,用于抓取并拆解数据包,获取每一TCP子流的数据包信息;
数据处理模块,用于根据该数据包信息计算该每一TCP子流的特征值,并对该数据包信息和该特征值进行规范化处理,得到一组数据条目;
神经网络训练模块,用于将所述状态S、所述动作空间a、所述平均反馈值r输入该神经网络,并通过调整该值函数神经网络参数θ,自适应地得到该TCP子流的启动窗口大小的最优设置策略;
启动窗口大小设置模块,用于将所述启动窗口的设置策略作用到所述数据包上,并根据该TCP子流的分布情况自适应地修改该启动窗口的设置策略,获得该启动窗口的最优设置策略。
为实现本发明的另一目的,本发明还提供一种存储介质,用于存储一种执行权利要求1-11所述数据调度方法的计算机程序。
与现有的技术相比,本发明的优点在于能够基于历史的不同长度TCP数据流的状态与决策信息及其反馈知识和最新的TCP流的知识来训练深度增强学习的神经网络,使得神经网络最终能够自动的根据TCP子流的输入数据,作出其启动窗口的设置决策。也就是说,对于MPTCP的多条子流,深度增强学习算法能够自动识别当前的服务类型是蚂蚁流还是大象流,不同的TCP子流服务类型相同时,神经网络的输出各个TCP子流相同的启动窗口。并且根据设置窗口之后的反馈,增强学习算法长度自适应的调整决策输出,并最终收敛到最优的TCP子流的启动窗口决策。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
附图说明
图1为多路径传输协议的内核协议栈分层。
图2为本发明一实施例中的基于长短数据流的多路径传输控制协议(MPTCP)的启动窗口优化方法的流程图。
图3为TCP子流规范化后的数据条目。
图4为本发明一实施例中数据处理的具体流程图。
图5为本发明一实施例中神经网络训练学习确定启动窗口决策的具体流程图。
图6为MPTCP启动窗口优化系统的架构图。
图7为多核多线程数据包采集工具抓取和处理数据帧的流程图。
图8为深度增强学习方法的工作流程图。
具体实施方式
本发明提供了一种基于长短数据流的多路径传输控制协议(MPTCP)的启动窗口优化方法。在本发明的一个实施例中,如图2所述,该方法包括:
数据采集步骤(S100),基于多核多线程的数据包采集工具,使用零拷贝技术将数据包直接抓取到用户空间,并对数据包进行拆解,获得每条TCP子流的四元组、窗口、时间戳等信息。并根据数据包信息,测量每条TCP子流的吞吐量、时延等特征值。
数据生成步骤(S200),根据数据采集模块的输出,将每条TCP子流的四元组、启动窗口、时延、吞吐量信息进行规范化为如图3所示的数据条目,使用IPv4/IPv6地址格式,端口号由服务类型决定,同一种服务的服务端IP地址和端口号通常是相同的,因此我们将IP前缀相同的一类服务的TCP子流,当作增强学习状态空间的一种状态:S,也就是说服务的类型决定了状态的数目。对于每种状态,增强学习算法执行的动作空间为设置状态S的启动窗口,我们将动作空间称为a,且a的取值范围为正整数。执行动作空间a之后。TCP子流的性能将发生变化,主要表现在吞吐量与传输时延上,因此将测量到的实时吞吐量T,与时延L的数值标准化到[-1,1],并使用指数加权平均参数α,区分吞吐量与时延对服务的重要性,对于时延敏感性数据流,α越小越好,对于吞吐量敏感的数据流α越大越好。最终定义深度增强学习算法的反馈(Reward)如下:
rt=T*α+L*(1-α)
规范化后的这些数据信息,作为深度神经网络的输入数据,神经网络的输出动作空间,作为子流调整启动窗口的决策,并且企图寻找最优的决策,使得每条TCP子流都获得到最大的累积折扣:γ∈(0,1]下的加权平均反馈如下:
其详细步骤如图4所示,包括如下步骤:
S210,对所述每一TCP数据流的地址进行分类,将相同服务类型的所述TCP子流的所述四元组规范化为同一种所述状态S,并对该同一种所述状态S设置相同的动作空间a,其中a为正整数;
S220,根据所述时间戳、所述发送窗口和所述接收窗口的大小变化计算所述吞吐量T与所述时延L;
S230,将所述吞吐量T与所述时延L的数值均标准化为[-1,1];
S240,根据所述吞吐量T与所述时延L以及该二者的指数加权平均参数α定义所述反馈值r=T*α+L*(1-α);
深度神经网络训练步骤(S300),就是通过输入数据条目训练神经网络的过程,即对神经网络的张量参数θ进行调整,由于本发明的深度神经网络是增强学习对TCP子流的启动窗口的设置策略函数的估计,因此使用梯度下降的方法,对深度神经网络进行参数调整,其调整公式如下:
其中,π是对启动窗口决策的神经网络估计函数,vt是使用蒙特卡洛采样方法从经验池中随机采样的历史经验反馈。
其详细步骤如图5所示,包括如下步骤:
S310,将所述状态S输入一值函数神经网络,并将该状态S存储至一经验池;
S320,训练所述神经网络,并调整该神经网络参数θ,得到一值函数Q(St,at,θ),该值函数为t时刻该TCP数据流的状态St执行启动窗口决策at的得分;
S330,根据所述值函数的得分情况,在所述经验池中选择得分高的数据条目,输入所述值函数神经网络以及一目标神经网络进行训练,得到一目标值函数Q*(St+1,at+1);
S340,通过误差函数调整所述神经网络参数θ,当该神经网络参数θ不再发生变化,得到该TCP子流的启动窗口大小的最优设置策略,该误差函数为:
启动窗口的决策输出与执行步骤(S400),当训练的神经网络的参数θ不再发生变化时,深度增强学习算法到达收敛,此时对于所有TCP子流的任意状态,神经网络都能立刻输出对应的启动窗口设置决策,以使得所有TCP子流的性能达到最佳,而且对于时延敏感性应用,在训练神经网络时设置的参数α越小,降低应用的时延获得的反馈越大;对于带宽敏感性应用,设置α越大,增加应用的吞吐量获得的反馈就越大。对于神经网络输出的,最优动作集合,直接作用到用户空间的数据包上,并根据子流的分布情况长度自适应的修改每条TCP子流的启动窗口大小。
具体而言,根据本发明的一个具体实施例,如图1所示对本发明中的多路径传输协议的功能进行分层,其中物理层105根据物理接口的不同,驱动不同的物理模块对数据流进行处理;数据链路层104则对数据进行校验与差错重传等;网络层103根据IP协议的类型,给每条TCP子流分配32位或者128位的地址;而传输层102建立的多条TCP子流的启动窗口,由深度增强学习算法的输出决定,并根据数据流的不同被设置成不同的大小。其中的启动窗口的设置动作,最终由该系统MPTCP外壳101层的拥塞窗口控制器执行,而且多条TCP子流是由MPTCP外壳101层的路径管理器根据物理接口的数目来建立和管理的,而MPTCP外壳101层的数据包调度器最终也根据每条TCP子流拥塞窗口的大小调度和分配数据包到各条子流。
如图3所示的规范化后的深度增强学习模型的数据输入条目,根据传输层102层IPv4/IPv6的协议类型,201所示的源IP地址和203所示的目的IP地址的长度为32/128bits。而源IP地址202和目的端口204的端口用于区分不同的服务类型。某一时刻t不同的服务类型的TCP数据流被区分为不同的状态St,而启动窗口205的大小设置由步骤S400完成,其中所有TCP子流初始启动窗口的设置大小将随机的从动作空间a中选取。最终,206所示的每条TCP子流的平均反馈,由上述平均折扣加权反馈计算而来。
图6示出了根据本发明的一个具体实施例的,为基于长短数据流的MPTCP启动窗口优化方法的架构图。该方法的实现包含以下步骤:
(1)步骤301:内核空间中数据采集模块302的环境抽象层(Environment AbstractLayer,EAL),将自动适配物理网卡310,以进行池化驱动(Pool Mode Driver,PMD)的初始化,并对CPU的核心和线程进行配置或绑定,设置Huge Page大页内存以减少快表(Translation Look aside Buffer,TLB)的Miss。同时在CPU多核设备上,创建多个线程且每个线程绑定到独立的物理核减少线程调度的开销。每个线程对应着独立的免锁队列,降低系统开销向量指令集提升CPU流水线效率,使得数据在内核空间停留的时间最小。
(2)步骤303:在数据采集模块302的EAL抽象层完成初始化之后,网卡的数据将绕过内核空间,直接到达用户空间供用户空间的应用程序操作和使用,具体的数据抓取步骤,如图7说明:
图7示出了多核多线程工具抓取数据并将其规范化的流程图,该方法步骤如下:
步骤401:基于PMD的轮询模式驱动,使用数据帧进出应用缓冲区内存的零拷贝机制,提高发送/接受数据帧的效率,基于用户态模式的PMD驱动去除中断,避免内核态和用户态的内存拷贝减少系统开销提升I/O吞吐能力。
步骤402:对PMD驱动401抓取的TCP数据流进行分类(Flow Classification),为四元组匹配和最长前缀匹配提供优化的查找算法,将数据流的地址进行分类,相同的服务类型TCP四元组规范化为同一种状态S,并对他们设置相同的启动窗口,同时基于时间戳、发送窗口和接受窗口的大小变化计算出实时的吞吐量与时延,按照S200中的方式进行标准化。
步骤403:基于环队列(Ring Queue),对单个或多个数据的生产者,以及单个数据消费者的出入队列提供无锁机制,随时将规范化后数据的直接交付给深度神经网络306,有效的减少系统开销。
步骤404:对无锁环队列403的缓冲区(Memory Buffer,MBUF)进行管理,通过分配内存创建缓冲区,并建立MBUF对象封装成实际的TCP数据报文,供规范化的应用程序使用。
(3)步骤305:数据处理模块304将普通的TCP数据流,规范化为深度神经网络306的输入,包含状态S,动作a,反馈r。MPTCP多条TCP子流的所处的网络环境改变着子流的状态和反馈,而这些状态和反馈又成为训练深度神经网络的数据条目,如图8的深度增强学习的神经网络工作流程图说明如下:
图8示出了深度增强学习方法进行启动窗口长度自适应调整的工作流程图,该方法的更新步骤如下:
步骤501:由于MPTCP有多条TCP子流,而且每条子流使用的物理接口不同,使得子流所在的链路的网络环境也是不同的,具体体现在网络链路的丢包率、时延、吞吐量的差异,而这些差异可以使用数据处理模块304抓取的TCP数据报文体现出来,经过规范化之后的TCP数据流的在时刻t的状态St,将作为值函数神经网络的最新的TCP数据流的状态输入。而为了解决蚂蚁流的持续时间太短,导致模型来不及决策的问题,将TCP子流的历史的状态数据存储到一个经验池505,这个经验池同时也解决了前后状态的关联性,导致训练的神经网络学习不到新的知识。
步骤502:在时刻t来自环境中的数据条目输入到值函数神经网络后,通过训练神经网络并调整其参数θ,使得神经网络能够更加准确的估计出真实的值函数,此时的神经网络输出就是值函数Q(St,at,θ),值函数意味着对于当前时刻TCP数据流的状态下St,执行启动窗口决策at的得分,得分越高也意味着反馈的值越大,执行该动作的价值越高。
步骤503:由于历史的数据条目可能获取的值函数比最新的值函数的得分更高,因此存储历史条目到经验池,由于经验池占据大量的内存空间,因此根据其反馈得分情况,淘汰得分最低的条目,并且使用蒙特卡洛随机采样的方法,将经验池中的数据条目,用作训练值函数神经网络和目标神经网络的输入,目标神经网络,是值函数神经网络最优的估计,也就是说,当值函数神经网络训练了一段时间后,其对值函数的估计可能不是最优,但是为了改进,将值函数的参数θ周期性的复制到目标神经网络中,目标神经网络的参数θ-与值函数的参数θ的历史值,由于目标函数输出的总是值函数训练了一段时间后的神经网络的值函数,因此其输出的目标值函数Q*(St+1,at+1),可以看作历史最优的值和最优的决策。
步骤504:根据最新的值函数的神经网络的输出作为最新的现实值函数,而目标神经网络的输出作为历史的估计值函数,使用如下误差函数:
误差函数计算出值函数神经网络与历史的神经网络之间的差异,从而使得值函数神经网络能够总是选择最优的值函数输出的神经网络参数θ。因为对误差函数基于梯度下降的方法,使得值函数神经网络的参数θ的调整,总是根据S300中梯度下降对参数的增量公式进行调整,使得神经网络的参数总是朝着最优的方向前进。
(4)步骤307:步骤504的输出,就是深度神经网络根据TCP数据流的状态差异性,得出的TCP子流的启动窗口最佳大小设置。不同类型的TCP子流的窗口大小不同,例如对于128KB的蚂蚁流设置2MSS大小的启动窗口,使得尽可能少的TCP子流处于慢启动状态。同时,由于窗口大小意味着分配资源的多少,基于长短数据流的启动窗口调节方法,总是能够根据当前MPTCP子流的数目和子流的实际情况,分配并设置最佳的启动窗口。
(5)步骤309:窗口的设置数值最终要通过MPTCP协议栈308的MPTCP的拥塞窗口控制模块执行到每条新建立的TCP子流上,使得无论是蚂蚁流还是大象流,MPTCP的各条差异的TCP子流都能设置最佳的启动窗口。
综上所述,本发明使用深度神经网络增强学习的方法,根据MPTCP的各条TCP子流的最新的数据流的状态知识和历史的各条数据流的状态知识,对TCP子流的启动窗口进行长度自适应的设置与调整,使得MPTCP的每条TCP子流总是处于最佳的启动窗口,从而减少长期处于慢启动的TCP子流,相比传统的MPTCP启动窗口设置方法,本发明使得对于大象流的吞吐量能够提升8%-11%,使得对于蚂蚁流传输时延降低23%-30%。
以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所作的等同变化、修改与结合,均应属于本发明保护的范围。
Claims (14)
1.一种MPTCP启动窗口自适应的数据传输方法,其特征在于,包括:
数据采集步骤,抓取并拆解数据包,获取每一TCP子流的数据包信息;
数据处理步骤,根据该数据包信息计算该每一TCP子流的特征值,并对该数据包信息和该特征值进行规范化处理,得到一组数据条目;
神经网络训练步骤,将所述数据条目输入该神经网络,对该神经网络进行训练,得到所述启动窗口的设置策略;
启动窗口的设置策略执行步骤,将所述启动窗口的设置策略作用到所述数据包上,并根据该TCP子流的分布情况自适应地修改该启动窗口的设置策略,获得该启动窗口的最优设置策略。
2.根据权利要求1所述的数据传输方法,其特征在于,所述数据包信息包括该TCP子流的四元组、发送窗口、接收窗口、时间戳;所述特征值包括该TCP子流的吞吐量T、时延L。
3.根据权利要求1所述的数据传输方法,其特征在于,所述数据条目包括:
该每一TCP子流的状态S,该状态S包括IP前缀相同的一类服务的TCP子流的所述四元组信息;
一动作空间a,该动作空间为所述状态S的所述启动窗口;以及
一平均反馈值r,该平均反馈值r通过所述特征值定义得到。
4.根据权利要求1所述的数据传输方法,其特征在于,所述数据采集步骤还包括:
S110,初始化一池化驱动,对CPU的核心和线程进行配置或绑定,设置一大页内存,并创建多个线程;
S120,通过该池化驱动的轮询模式驱动程序,使用零拷贝技术抓取TCP子流。
5.根据权利要求4所述的数据传输方法,其特征在于,所述多个线程均绑定到独立的物理核,该每一线程对应独立的免锁队列。
6.根据权利要求1所述的数据传输方法,其特征在于,所述数据处理步骤还包括:
S210,对所述每一TCP数据流的地址进行分类,将相同服务类型的所述TCP子流的所述四元组规范化为同一种所述状态S,并对该同一种所述状态S设置相同的动作空间a,其中a为正整数;
S220,根据所述时间戳、所述发送窗口和所述接收窗口的大小变化计算所述吞吐量T与所述时延L;
S230,将所述吞吐量T与所述时延L的数值均标准化到[-1,1];
S240,根据所述吞吐量T与所述时延L以及该二者的指数加权平均参数α定义所述平均反馈值r=T*α+L*(1-α);
S250,计算所述每一TCP子流的加权平均反馈值E[∑γ*r],其中,γ∈(0,1]。
7.根据权利要求6所述的数据传输方法,其特征在于,所述指数加权平均参数α用于区分所述吞吐量T与所述时延L对数据传输的重要性。
8.根据权利要求1或6所述的数据传输方法,其特征在于,所述数据处理步骤进一步包括:
为所述数据条目建立无锁环形队列;
创建一存储缓冲区,并将该存储缓冲区封装成实际的TCP数据报文,用于存储所述数据条目。
9.根据权利要求1所述的数据传输方法,其特征在于,所述神经网络训练步骤还包括:
S310,将包括所述状态S的所述数据条目输入所述神经网络中的一值函数神经网络,并将该数据条目存储至一经验池;
S320,训练所述值函数神经网络,并调整该值函数神经网络的一参数θ,得到一值函数Q(St,at,θ),该值函数Q(St,at,θ)为t时刻该TCP子流的状态St执行启动窗口决策at的得分;
S330,根据所述值函数Q(St,at,θ)的得分情况,在所述经验池中选择得分高的数据条目,输入所述神经网络中的一目标神经网络,并将所述值函数神经网络的参数θ周期性的复制到该目标神经网络进行训练,得到一目标值函数Q*(St+1,at+1);
10.根据权利要求9所述的数据传输方法,其特征在于,于所述经验池中选择得分高的所述数据条目的方法包括蒙特卡洛随机采样的方法。
12.根据权利要求1所述的数据传输方法,其特征在于,该方法还包括:所述TCP子流的启动窗口的最优设置策略通过MPTCP协议栈中的一拥塞窗口控制模块作用到所述数据包上,该MPTCP协议栈中的各子流均获得启动窗口的最优设置策略。
13.一种数据调度装置,应用权利要求1-12任一所述数据调度方法,其特征在于,该装置包括:
数据采集模块,用于抓取并拆解数据包,获取每一TCP子流的数据包信息;
数据处理模块,用于根据该数据包信息计算该每一TCP子流的特征值,并对该数据包信息和该特征值进行规范化处理,得到一组数据条目;
神经网络训练模块,用于将所述数据条目输入该神经网络,对该神经网络进行训练,得到所述启动窗口的设置策略;
启动窗口大小设置模块,用于将所述启动窗口的设置策略作用到所述数据包上,并根据该TCP子流的分布情况自适应地修改该启动窗口的设置策略,获得该启动窗口的最优设置策略。
14.一种存储介质,用于存储如权利要求1-12任一所述数据调度方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911134336.6A CN111064704B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911134336.6A CN111064704B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064704A true CN111064704A (zh) | 2020-04-24 |
CN111064704B CN111064704B (zh) | 2021-02-09 |
Family
ID=70298042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911134336.6A Active CN111064704B (zh) | 2019-11-19 | 2019-11-19 | 一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064704B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746757A (zh) * | 2021-08-26 | 2021-12-03 | 中国电子科技集团公司第七研究所 | 一种基于业务类别的多链路传输智能报文调度方法 |
CN115379469A (zh) * | 2022-08-12 | 2022-11-22 | 江苏省电力试验研究院有限公司 | 一种基于机器学习的多接入异构网络mptcp子流调度方法 |
CN115883451A (zh) * | 2022-09-22 | 2023-03-31 | 中国华能集团清洁能源技术研究院有限公司 | 基于多路径评估算法的电力二次系统网络传输方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518939A (zh) * | 2013-09-30 | 2015-04-15 | 汤姆逊许可公司 | 用于连接通信网络中的主机的方法和相应中继模块 |
CN105264845A (zh) * | 2014-05-08 | 2016-01-20 | 华为技术有限公司 | 数据传输控制节点、通信系统及数据传输管理方法 |
CN105610820A (zh) * | 2015-12-28 | 2016-05-25 | 中国电子科技集团公司第五十四研究所 | 一种基于mptcp的拥塞控制方法及装置 |
US20160261722A1 (en) * | 2015-03-06 | 2016-09-08 | Apple Inc. | Robust Multipath TCP Stateless Connection Establishment |
CN107171842A (zh) * | 2017-05-22 | 2017-09-15 | 南京大学 | 基于强化学习的多路径传输协议拥塞控制方法 |
US20170302549A1 (en) * | 2016-04-14 | 2017-10-19 | At&T Intellectual Property I, L.P. | Facilitation of multipath transmission control protocols |
CN108092908A (zh) * | 2016-11-23 | 2018-05-29 | 华为技术有限公司 | 控制流量的方法和发送端设备 |
CN108632157A (zh) * | 2018-04-10 | 2018-10-09 | 中国科学技术大学 | 多径tcp协议拥塞控制方法 |
CN109565471A (zh) * | 2016-06-18 | 2019-04-02 | 科里维网络有限公司 | 使用多通道提高性能的智能自适应传输层 |
CN110278149A (zh) * | 2019-06-20 | 2019-09-24 | 南京大学 | 基于深度强化学习的多路径传输控制协议数据包调度方法 |
-
2019
- 2019-11-19 CN CN201911134336.6A patent/CN111064704B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518939A (zh) * | 2013-09-30 | 2015-04-15 | 汤姆逊许可公司 | 用于连接通信网络中的主机的方法和相应中继模块 |
CN105264845A (zh) * | 2014-05-08 | 2016-01-20 | 华为技术有限公司 | 数据传输控制节点、通信系统及数据传输管理方法 |
US20160261722A1 (en) * | 2015-03-06 | 2016-09-08 | Apple Inc. | Robust Multipath TCP Stateless Connection Establishment |
CN105610820A (zh) * | 2015-12-28 | 2016-05-25 | 中国电子科技集团公司第五十四研究所 | 一种基于mptcp的拥塞控制方法及装置 |
US20170302549A1 (en) * | 2016-04-14 | 2017-10-19 | At&T Intellectual Property I, L.P. | Facilitation of multipath transmission control protocols |
CN109565471A (zh) * | 2016-06-18 | 2019-04-02 | 科里维网络有限公司 | 使用多通道提高性能的智能自适应传输层 |
CN108092908A (zh) * | 2016-11-23 | 2018-05-29 | 华为技术有限公司 | 控制流量的方法和发送端设备 |
CN107171842A (zh) * | 2017-05-22 | 2017-09-15 | 南京大学 | 基于强化学习的多路径传输协议拥塞控制方法 |
CN108632157A (zh) * | 2018-04-10 | 2018-10-09 | 中国科学技术大学 | 多径tcp协议拥塞控制方法 |
CN110278149A (zh) * | 2019-06-20 | 2019-09-24 | 南京大学 | 基于深度强化学习的多路径传输控制协议数据包调度方法 |
Non-Patent Citations (1)
Title |
---|
刘松林: "基于机器学习的SINR预测方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113746757A (zh) * | 2021-08-26 | 2021-12-03 | 中国电子科技集团公司第七研究所 | 一种基于业务类别的多链路传输智能报文调度方法 |
CN113746757B (zh) * | 2021-08-26 | 2023-05-26 | 中国电子科技集团公司第七研究所 | 一种基于业务类别的多链路传输智能报文调度方法 |
CN115379469A (zh) * | 2022-08-12 | 2022-11-22 | 江苏省电力试验研究院有限公司 | 一种基于机器学习的多接入异构网络mptcp子流调度方法 |
CN115379469B (zh) * | 2022-08-12 | 2023-11-28 | 江苏省电力试验研究院有限公司 | 一种基于机器学习的多接入异构网络mptcp子流调度方法 |
CN115883451A (zh) * | 2022-09-22 | 2023-03-31 | 中国华能集团清洁能源技术研究院有限公司 | 基于多路径评估算法的电力二次系统网络传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111064704B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Viernickel et al. | Multipath QUIC: A deployable multipath transport protocol | |
CN111064704B (zh) | 一种基于mptcp启动窗口自适应的数据传输方法、装置和介质 | |
US8903935B2 (en) | Remote direct memory access over datagrams | |
Gu et al. | Experiences in design and implementation of a high performance transport protocol | |
US20040042458A1 (en) | System and method for handling out-of-order frames | |
EP3583755A1 (en) | Multipath transport communications | |
US8467390B2 (en) | Method and system for network stack tuning | |
Detal et al. | Multipath in the middle (box) | |
US20220311711A1 (en) | Congestion control based on network telemetry | |
Yang et al. | Loss-aware throughput estimation scheduler for multi-path TCP in heterogeneous wireless networks | |
US20220210084A1 (en) | Timestamp synchronization between host and network interface device | |
Rashti et al. | iWARP redefined: Scalable connectionless communication over high-speed Ethernet | |
CN114866477A (zh) | 一种网络设备拥塞控制机制的测试方法、系统及设备 | |
He et al. | Resilient QUIC protocol for emerging wireless networks | |
Tan et al. | DCQUIC: flexible and reliable software-defined data center transport | |
Yang et al. | Rps: range-based path selection method for concurrent multipath transfer | |
US8478877B2 (en) | Architecture-aware allocation of network buffers | |
Polishchuk et al. | Improving TCP-friendliness and Fairness for mHIP | |
Rajput et al. | NS-2-based analysis of stream control and datagram congestion control with traditional transmission control protocol | |
Ma et al. | Intelligent queue management of open vSwitch in multi-tenant data center | |
Elattar et al. | Evaluation of multipath communication protocols for reliable internet-based cyber-physical systems | |
US20230208913A1 (en) | In-order streaming in-network computation | |
Song et al. | The throughput critical condition study for reliable multipath transport | |
US20230123387A1 (en) | Window-based congestion control | |
Tahiliani et al. | Tcp congestion control in data center networks |
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 |