
1.本发明涉及数据传输技术,尤其涉及一种高效传输层多路径汇聚方法及系统。
背景技术:2.数据传输的链路汇聚技术分为局域网上应用的二层即数据链路层汇聚技术(比如ieeee802.3ad标准和linux bonding技术),以及广域网上应用的链路汇聚技术,比如新兴的mptcp标准,apple的ios系统数年前就开始率先支持mptcp标准,其实现也刚刚进入linux主干分支,正在互联网领域开始普及。
3.现有技术中,主流的传输层多路径汇聚技术考虑的是在实现多路径传输的同时,兼容现有的传输层标准协议tcp,并对上层应用的api接口维持不变。从系统的角度考察,兼容性解决了部署问题;系统的路由模块可以按用户指定策略进行多接口发送地址选路,本质上是一种静态的调度方法,并没有考虑上层应用的利益;现有的多路径管理和调度策略大多是功能性的,并非从效率优先的角度出发。
4.因此,现有技术中多路径数据传输效率较低。
技术实现要素:5.本发明实施例提供一种高效传输层多路径汇聚方法及系统,提高多路径数据传输效率。
6.本发明实施例的第一方面,提供一种高效传输层多路径汇聚方法,包括:
7.接收用户输入的各应用的注册信息,所述注册信息包括数据传输的优先级信息;
8.根据不同优先级的多个预设缓冲区,接收并存储对应所述优先级信息的应用的待传输数据;
9.建立应用的传输路径连接,实时获取各子流subflow的传输能力信息;
10.基于调度策略和所述传输能力信息,对所述预设缓冲区内的所述待传输数据进行传输。
11.可选地,在第一方面的一种可能实现方式中,接收用户输入的各应用的注册信息,包括:
12.接收用户输入的各应用与数据传输相关的数据发送量级别、实时性要求级别和用户定义级别。
13.可选地,在第一方面的一种可能实现方式中,在接收用户输入的各应用的注册信息之后,还包括:
14.生成各应用的id信息;
15.对所述id信息和所述注册信息进行关联处理。
16.可选地,在第一方面的一种可能实现方式中,基于调度策略和所述传输能力信息,对所述预设缓冲区内的所述待传输数据进行传输,包括:
17.基于实时性优先策略,优先调度实时性要求级别高的预设缓冲区内的所述待传输
flow,收集衡量其传输能力的参数及变化,结合灵活的数据传输调度策略,以数据发送效率和用户体验为出发点,提高传输层多路径传输数据的效率。
附图说明
38.图1是本发明实施例提供的一种高效传输层多路径汇聚方法的流程示意图;
39.图2本发明实施例还提供的一种高效传输层多路径汇聚系统的架构示意图;
40.图3是本发明实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
43.应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
44.应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
45.应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含a、b和c”、“包含a、b、c”是指a、b、c三者都包含,“包含a、b或c”是指包含a、b、c三者之一,“包含a、b和/或c”是指包含a、b、c三者中任1个或任2个或3个。
46.应当理解,在本发明中,“与a对应的b”、“与a相对应的b”、“a与b相对应”或者“b与a相对应”,表示b与a相关联,根据a可以确定b。根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其他信息确定b。a与b的匹配,是a与b的相似度大于或等于预设的阈值。
47.取决于语境,如在此所使用的“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。
48.下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
49.首先对本方案要用到的专有名词进行说明:
50.multipath manager:多路径管理器,负责传输层多路径tcp sub flow连接的生命周期管理;
51.multipath core:多路径核心模块,其内部又有register,controller,scheduler等子模块。
52.现有技术中,主流的传输层多路径汇聚技术考虑的是在实现多路径传输的同时,兼容现有的传输层标准协议tcp,并对上层应用的api接口维持不变,现有的多路径管理和调度策略大多是功能性的,并非从效率优先的角度出发。因此,现有技术中存在多路径汇聚系统传输效率低的问题。
53.为了解决上述问题,本方案采用的发明构思为:
54.1、要想提高数据发送效率,改善用户体验,必须差异化系统内为用户服务的需要发送数据的应用(app),本方案识别app对于数据发送的不同属性和用户要求,为后续的调度算法提供了根本依据;
55.2、动态而精细地监控每一条子流subflow,收集衡量其传输能力的参数及变化,为调度策略的贯彻落实提供实时依据,最终达到数据发送的高效负载均衡,提高数据传输效率;
56.3、在系统初始化阶段准备好有明确大小和数量要求的数据缓冲区,并划分优先级,这为整个系统的数据高效发送提供了基础设施依据;
57.4、能够适应由用户主动决定的,考虑了应用数据性质和优先级别的多路径汇聚调度策略,可以充分发挥优质带宽的传输能力,保障数据的传输效率,具体参见下文。
58.参见图1,是本发明实施例提供的一种高效传输层多路径汇聚方法的流程示意图,图1所示方法的执行主体可以是软件和/或硬件装置。本技术的执行主体可以包括但不限于以下中的至少一个:用户设备、网络设备等。其中,用户设备可以包括但不限于计算机、智能手机、个人数字助理(personal digital assistant,简称:pda)及上述提及的电子设备等。网络设备可以包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机组成的一个超级虚拟计算机。本实施例对此不做限制。包括步骤s101至步骤s104,具体如下:
59.s101,接收用户输入的各应用的注册信息,注册信息包括数据传输的优先级信息。
60.具体的,不同的应用(app),其性质、功能各不相同,发送数据的属性、数量也不相同,对带宽的大小和质量要求也就不同,本方案中用户可以从不同维度定义这些应用的相关属性,注册至系统并在需要时调整。在实际应用中,可以是注册至多路径核心模块multipath core,注册动作通过系统api进行。
61.可以理解的是,系统中的应用(app)是网络带宽的实际消费者,在并发使用网络资源时,它们之间构成竞争关系。为了更高效地传输用户数据,首先要做app数据属性分类。例如,有的app数据传输量并不大,像社交类软件,文字和语音信息为主,视频和纯数据信息相对较少,但这类应用对数据传输实时性要求很高;而像网盘、下载工具之类的app,数据传输量比较大,但实时性要求没那么高;也有像直播类app,数据量比较大,对实时性要求也比较高;还有一些app属于计算密集型,占用本地cpu资源较多,但较少发送网络数据;而金融工具类app,大多数把精力放在了数据传输安全性方面,虽然数据量不大,实际上对实时性要求很高。
62.其中,接收用户输入的各应用的注册信息,可以是接收用户输入的各应用与数据
传输相关的数据发送量级别、实时性要求级别和用户定义级别。
63.示例性的,数据发送量级别可分为大、中、小;实时性要求级别可分为,极高,高,一般;而用户定义级别体现了特定用户对于此应用发送数据时优先级的考虑,可以划分为优先、重要、一般等几个级别。如此,上面描述的某个社交类软件,三个属性(数据量、实时性、用户定义)可分别定义为小,高,重要;而网盘类的某个app可定义为大,一般,一般;某个直播app可定义为大,高,一般;某个金融工具类app可定义为小,极高,优先。某个用户喜欢玩儿的游戏app,三个属性可定义为中,极高,优先。注册步骤有效而清晰地从不同维度将app对数据传输的要求进行分类,为整个系统带宽资源的高效利用奠定基础。
64.在实际应用中,注册信息还可以包括软件名称,发布者,版本号等与app相关信息。
65.此外,本实施例在接收用户输入的各应用的注册信息之后,还可以包括生成各应用的id信息,对id信息和注册信息进行关联处理。
66.可以理解的是,本实施例可以标识每一个需要发送数据的app的身份,并为其分配唯一的id信息,即系统存储这些信息的同时为其生成全局唯一的id信息,还可以包括注册时间信息,并将其状态标识为已注册,同时用户可以在需要时更改某个app的注册信息。
67.s102,根据不同优先级的多个预设缓冲区,接收并存储对应优先级信息的应用的待传输数据。
68.具体的,本实施例提前设置有多个预设缓冲区,且多个预设缓冲区的优先级不同。需要说明的是,预设缓冲区的数量不小于系统网络接口的数量,且每个预设缓冲区的大小,不小于tcp sub flow共用的滑动窗口经验值。例如,假设multipath manager为每个应用建立n(n为网络接口数量)个tcp sub flow,则每个数据缓冲区最大可设置为n*64k经验值。
69.示例性的,预设缓冲区的优先级别可以分为高中低(和app数据实时性要求级别、用户定义级别相匹配),实时性要求高的、重要数据匹配高优先级缓冲区,调度算法将优先发送高优先级缓冲区数据。
70.其中,根据不同优先级的多个预设缓冲区,接收并存储对应优先级信息的应用的待传输数据,包括:接收应用的待传输数据,并获取对应的优先级信息;根据优先级信息,将待传输数据存储到对应优先级的预设缓冲区内。
71.需要说明的是,缓冲区的数量不小于系统网络接口的数量,本实施例的出发点是高效利用网络资源,而带宽就是来自于具体的网络接口。通常认为,数据缓冲区的读写速度,要远大于网络接口的吞吐量。可以认为数据缓冲区是为网络接口服务的,因此为每个网络接口配置一个以上的数据缓冲区并标识优先级,有利于贯彻调度策略,最大化数据传输效率。
72.在实际应用中,系统中数据缓冲区的划分,可以由register模块在系统初始化阶段,按上述原则自动进行,系统可以开放若干重要参数(如每个网络接口对应的缓冲区数量、大小)供用户指定。
73.例如,一个系统内有3个网络接口,其中一个千兆以太网口,一个百兆以太网口,还有一个4g无线网口,则可以按优先级高中低划分预设缓冲区各一个。
74.s103,建立应用的传输路径连接,实时获取各子流subflow的传输能力信息。
75.具体的,在步骤s101和步骤s102之后,app和对端建立multipath tcp sub flow连接发送数据,而每一个连接由一组tcp sub flow构成。为了提高数据传输效率,本实施例动
态而精细地监控每一条sub flow,收集衡量其传输能力的参数及变化,为调度策略的贯彻落实提供实时依据,最终达到数据发送的高效负载均衡。
76.其中,实时获取各子流subflow的传输能力信息,包括实时获取各子流subflow的rtt数值、滑动窗口大小、吞吐量、丢包值以及拥塞值(丢包率以及是否发生拥塞);根据rtt数值、滑动窗口大小、吞吐量、丢包值以及拥塞值,获取传输能力信息。
77.可以理解的是,传统的tcp协议持续地为数据传输可靠性、效率做出努力,演化出很多重传算法、拥塞控制算法,而multipath tcp的每一个sub flow都可以继承这种能力。一个快速、稳定的tcp sub flow,其rtt数值较小波动较小,滑动窗口较大且波动小,吞吐量较大,很少丢包,很少发生拥塞,这些特征和参数,就是衡量tcp sub flow提供服务能力的标准。
78.在实际应用中,可以利用controller动态监控这些参数,标识tcp sub flow,为调度策略提供依据。controller综合某个tcp sub flow的状态参数,将其状态标签化,划分为优质、健康、一般、拥塞等几个等级。每隔一段时间,controller会根据参数变化刷新sub flow的标签。而某个multipath tcp连接由一组sub flow组成,multipath manager和scheduler一起,根据其构成的这些sub flow的标签状态,依据用户定义的调度策略,从某个优先级别的数据缓冲区,按一定比例和顺序,驱动数据流向sub flow和网络接口。这个比例和顺序,总的原则是,传输能力强的sub flow优先消费数量更多的数据,在一组sub flow之间,整体上达到负载均衡的效果。值得强调的是,在这组sub flow中,路径传输能力的强弱不是固定的,是动态变化的。
79.需要说明的是,上述连接的建立,数据的发送,这些操作都可以由app通过系统api进行。在本实施例中,系统api要赋予app查询前述注册id,并在连接建立和数据发送动作中绑定app id和数据流之间对应关系的能力。作为系统api的执行者,multipath manager要在数据发送之前将这种对应关系通知controller,并由scheduler决定数据流的走向和调度策略。
80.s104,基于调度策略和传输能力信息,对预设缓冲区内的待传输数据进行传输。
81.其中,调度策略可以包括实时性优先策略,用户级别优先策略,数据平权策略。
82.具体的,本实施例可以基于实时性优先策略,优先调度实时性要求级别高的预设缓冲区内的待传输数据;基于用户级别优先策略,优先调度用户定义级别高的预设缓冲区内的待传输数据;基于数据平权策略,根据先到先得方式调度预设缓冲区内的待传输数据。
83.可以理解的是,实时性优先策略:在这种策略下,用户定义的那些对数据实时性要求高的app,其数据总是发送至高优先级缓冲区,并优先于其它缓冲区数据,得到带宽资源。值得强调的是,这并不意味着,其它对实时性要求相对低的用户数据就得不到调度,或者必然在高优先级数据全部传输完毕之后才能获得带宽资源。优先并不意味着独占。用户级别优先策略:顾名思义,这种策略下用户定义级别高的数据优先调度至高优先级缓冲区。数据平权策略:在这种策略下,数据缓冲区的优先级别失效,用户定义的app数据属性也失效,系统完全按照先到先得的原则分配带宽资源和缓冲区资源。
84.在实际应用中,在基于调度策略和传输能力信息,对预设缓冲区内的待传输数据进行传输之前,还可以包括获取用户对应用设定的至少一个调度策略。
85.需要说的是,用户可以选择几种调度策略同时生效,并且决定这些策略的生效顺
序。比如,在一种策略下,某两个app的数据区别不开优先级高低,则接着应用下一种有效策略进行比较。这样,如果用户在使用某种app之前根据其属性针对性的地调整数据发送调度策略,则当前使用的app总是能够得到最优质的系统数据发送服务。
86.本发明实施例还提供的一种高效传输层多路径汇聚系统,包括:
87.用户接口,用于接收用户输入的各应用的注册信息,注册信息包括数据传输的优先级信息;
88.缓存模块,用于不同优先级的多个预设缓冲区,接收并存储对应优先级信息的应用的待传输数据;
89.监控模块,用于建立应用的传输路径连接,实时获取各子流subflow的传输能力信息;
90.调度模块,用于基于调度策略和传输能力信息,对预设缓冲区内的待传输数据进行传输。
91.其中,用户接口包括ui接口和系统api接口;缓存模块包括register模块;监控模块包括controller模块;调度模块包括scheduler模块。
92.具体的,对本系统进行详细阐述,参见图2,ui接口是系统用户接口;api接口是应用程序app建立连接、发送数据时使用的系统接口。
93.multipath manager是多路径管理器,负责传输层多路径tcp sub flow连接的生命周期管理。
94.register模块接受用户发起的信息注册请求,标明应用身份、性质,设定应用数据属性,register还完成自动查询、注册系统网络接口的静态信息,自动划分数据缓冲区并标识其优先级等功能,根据不同优先级的多个预设缓冲区,接收并存储对应优先级信息的应用的待传输数据。其中,data block为划分优先级别的预设缓冲区,逻辑上可以认为,数据在app中产生之后,到发送至某个特定网卡进入网络之前,都暂存在预设缓冲区之中。预设缓冲区的数量不小于系统网络接口的数量,每个缓冲区的大小,不小于tcp sub flow共用的滑动窗口经验值。
95.multipath core;多路径核心模块,其内部又有register,controller,scheduler等子模块。
96.controller模块监控网络接口参数(物理、链路、地址等参数),tcp sub flow的rtt数值、滑动窗口大小、吞吐量,以及是否丢包、是否发生拥塞等动态信息,动态地标签化tcp sub flow。
97.scheduler模块根据数据缓冲区、tcp sub flow等实体的实时信息,应用用户指定的数据发送调度策略,动态维护数据流动,实现数据传输效率最大化。
98.图2所示实施例的系统对应地可用于执行图1所示方法实施例中的步骤,其实现原理和技术效果类似,此处不再赘述。
99.参见图3,是本发明实施例提供的一种电子设备的硬件结构示意图,该电子设备30包括:处理器31、存储器32和计算机程序;其中
100.存储器32,用于存储所述计算机程序,该存储器还可以是闪存(flash)。所述计算机程序例如是实现上述方法的应用程序、功能模块等。
101.处理器31,用于执行所述存储器存储的计算机程序,以实现上述方法中设备执行
的各个步骤。具体可以参见前面方法实施例中的相关描述。
102.可选地,存储器32既可以是独立的,也可以跟处理器31集成在一起。
103.当所述存储器32是独立于处理器31之外的器件时,所述设备还可以包括:
104.总线33,用于连接所述存储器32和处理器31。
105.本发明还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
106.其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。另外,该asic可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(rom)、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
107.本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
108.在上述设备的实施例中,应理解,处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
109.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。