CN101668005A - 一种基于发送端多接入通道的数据传输加速引擎方法 - Google Patents

一种基于发送端多接入通道的数据传输加速引擎方法 Download PDF

Info

Publication number
CN101668005A
CN101668005A CN200910035491A CN200910035491A CN101668005A CN 101668005 A CN101668005 A CN 101668005A CN 200910035491 A CN200910035491 A CN 200910035491A CN 200910035491 A CN200910035491 A CN 200910035491A CN 101668005 A CN101668005 A CN 101668005A
Authority
CN
China
Prior art keywords
data
network interface
datagram
network
thread
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
Application number
CN200910035491A
Other languages
English (en)
Other versions
CN101668005B (zh
Inventor
陶军
邵碧锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN2009100354912A priority Critical patent/CN101668005B/zh
Publication of CN101668005A publication Critical patent/CN101668005A/zh
Application granted granted Critical
Publication of CN101668005B publication Critical patent/CN101668005B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于发送端多接入通道的数据传输加速引擎方法,发送端主机将数据包从应用层下来后,经过TCP复用封装,然后交付给主机操作***的TCP/IP协议栈处理,经IP层形成封装好的IP数据报传输至链路层再至物理层,再经过中间路由到达数据接收方,由接收方进行解复用,其特征在于:在IP层与链路层之间设置数据传输加速引擎,首先将IP数据报按IP报头中的标示位将待发送数据进行分组,然后将分组后的报组通过负载均衡模块检测各传输通道的流量负载情况,采用相应的流量分配算法进行预分配计算,将待传输数据流量分配到各个可用传输通道上并行传输,最后通过数据调度模块将预分配的数据报组指定到不同的网络接口设备。

Description

一种基于发送端多接入通道的数据传输加速引擎方法
技术领域
本发明申请涉及数据发送端的数据调度,尤其涉及一种基于发送端多接入通道方法的数据传输加速引擎,本发明针对可以通过多种途径接入网络的用户,有助于解决发送端***资源利用率低下,导致发送数据率低的问题,加快了发送速率,提高了网络带宽和通信质量,属于网络通信技术领域。
背景技术
传统数据传输加速方案一般都是从提高现有通信网络的带宽入手,典型的有:1)提高传输终端的处理能力;2)提高网络中间节点的数据转发能力。显然,这些方案的实现中都要设备的升级与替换,成本较高。
在多网络接口数据传输加速技术研究方面,典型的方案有:Linux操作***下使用的bonding技术,Sun公司的trunking技术,HP公司的负载均衡解决方案等。上述方案本质上都是在同一主机上安装多块网络接口,同时将多块网络接口绑定在一起,形成逻辑上的一块虚拟网络接口,在网络中作为唯一标识,而主机上的多块物理网络接口在网络上并不可见。在逻辑上,主机上欲发送的数据通过虚拟网络接口发送出去;在物理上,数据被分流到各个物理网络接口,并行发送,提高了数据发送的速率。然而,以上技术都需要在中间节点增加支持类bonding技术的交换机,如果没有交换机的配合,这些方案就无法实施,因此这些方案在提高了传输速率的同时,高成本和对类bonding交换机的依赖性成为限制其应用的重要问题。
纯软件实现的数据传输加速引擎一般运行在通用PC机上,使用普通互联网络接入和局域网接入的情况较多。由于普通网络用户在同时具有多种网络接入方式的情况下,并不会同时使用所有的网络接入方式,而仅仅是选其一种来进行数据传输。即使用户同时选择多种接入方式,也并不会增加数据发送的带宽,因为数据仍然是在其中一条通道中发送。这样就造成了对既有资源的严重浪费,影响了用户的使用体验和经济社会的效益。因此,要充分利用多种网络接入方式提供的多通道来加快数据发送速率,增加网络带宽,实现透明传输,就需要发送端的数据传输加速引擎。
发明内容
目前的很多数据加速方法普遍忽视了这样的事实:现今网络端***性能快速提高,端***网络接入手段日趋多样化,大部分端***都不再局限于一种入网方式,例如:许多终端设备(笔记本电脑、台式电脑、PDA)不仅配备有线网络接口,还有无线网络接口,蓝牙/红外接口等等。然而在进行网络数据传输时,利用的往往仅仅是其中的一个接口,例如:实现有线连接的笔记本电脑,在进行数据传输时,往往只利用了有线网络接口,而无线接口却处于闲置状态。因此,利用闲置网络接口或闲置网络接入通道,正是本发明的目的所在。
为实现上述目发明的,本发明采取的技术方案是:一种基于发送端多接入通道的数据传输加速引擎方法,发送端主机将数据包从应用层下来后,经过TCP复用封装,然后交付给主机操作***的TCP/IP协议栈处理,经IP层形成封装好的IP数据报传输至链路层再至物理层,再经过中间路由到达数据接收方,由接收方进行解复用,其特征在于:在IP层与链路层之间设置数据传输加速引擎,该加速引擎包括IP报分组模块、负载均衡模块及数据调度模块,其中负载均衡模块内含网络接口状态监测子模块;首先由IP报分组模块将IP数据报按IP报头中的标示位将待发送数据进行分组,相同标示位的数据报分在同一组,然后分组后的报组数据成为负载均衡模块的可处理单元,根据网络接口状态监测子模块实时检测各传输通道的流量负载情况,采用相应的流量分配算法对数据报组进行预分配计算,将待传输数据流量分配到各个可用传输通道上并行传输,最后通过数据调度模块将预分配的数据报组指定到不同的网络接口设备;
上述IP报分组模块、负载均衡模块和数据调度模块是通过四个线程来实现的:
IP报分组线程为一个循环处理函数,将存储器中的数据报文按照标志位进行分组,当存储器中没有数据时,该线程进入睡眠状态;
负载均衡由负载均衡算法线程和网络接口状态监测线程两个线程来实现:负载均衡算法线程一开始处于中断睡眠状态,由IP报分组线程显式地唤醒后才开始运行,负载均衡算法线程为每个网络接入通道接口分配了一个权值wi,存放在网络接口列表中,权值代表待传输的数据分组被分配到该网络接口上发送的概率:
Σ i - 1 n w i = 1 - - - ( 1 )
负载均衡算法将待发送的数据合理地分配各发送通道上去,数据在各通道上的分布由各通道的权重值wi来确定;负载均衡的网络接口状态监测线程负责监测各网络接入通道接口的状态信息,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,接口i的权值wi调整计算方法如下:
w i = b i ( 1 + u i ) ( 1 - e i ) Σ k = 1 n b k ( 1 + u k ) ( 1 - e k ) - - - ( 2 )
其中,i为网络接口序号,1≤i≤n;bi为网络接口i的接口带宽,ei为网络接口i的接口丢包率,ui为网络接口i的接口利用率;根据式(2)得到的网络接口i的权值即数据被分配到网络接入通道接口i上进行传输的概率,为下一数据分组选中相应网络接口;
通过一个定时器程序检查是否达到权值wi的调整周期,如果达到了调整周期,则按照公式(2)重新设置各接口权值,公式(2)中的各参数由网络接口状态监测线程获得,然后负载均衡算法线程按照各接口权值wi对数据报分组进行分配运算,使分配结果符合权值wi所要求的分布;负载均衡算法线程的输入为数据分配信号,输出为传输通道,网络接口状态监测线程封装了传输设备的驱动接口,通过各物理设备的驱动程序接口,获取丢包率,利用率,带宽等参数,所得数据全部存储在网络接口列表中,网络接口列表是全局数据,每个线程都可以访问;
数据调度线程的输入是负载均衡算法线程所计算出的传输通道和IP分组线程处理后的数据报组,通过调用传输设备驱动程序接口,将数据传送到网络中去。当没有数据调度时,数据调度线程可以进入睡眠状态。
数据传输加速流程是:
步骤1,首先获取发送端主机的网络接口列表,选择网络接口列表中的第一个网络接口作为默认数据发送网络接口,也就是对数据接收方来说,这是惟一可见的网络接口;
步骤2,由用户或预设置的模式给多种发送设备分别分配相应的初始权值wi,i为网络接口号,权值代表数据分配到网络发送设备上的概率;
步骤3,运行应用层程序,由应用层程序产生应用层数据,并决定所采用的传输层协议TCP/UDP;
步骤4,传输层长数据段被主机操作***TCP/IP协议栈分成多个IP数据报文,交付给数据传输加速引擎;
步骤5,将IP数据报按IP报头中的标示位进行分组,确保传输层的同一数据段作为一个整体被分配,成组之后的所有IP报头中的源IP为默认发送网络接口的IP,IP报头中的其余字段均由主机操作***的TCP/IP协议栈自行设置,数据传输加速引擎不加修改;
步骤6,将成组后的IP数据报文通过负载均衡模块进行预分配计算;
步骤7,根据式(2)得到的网络接口i的权值即数据被分配到网络接入通道接口i上进行传输的概率,为下一数据分组选中相应网络接口;负载均衡模块周期性地根据式(1)和式(2)动态调整wi,调整过程如下:负载均衡模块读取实时更新的网络接口状态的监测结果,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,重新计算并调整相应的权值wi,以便能够及时适应不断变化的网络环境;
步骤8,负载均衡模块按照权值wi将成组的IP数据报文分配到网络接口i上,分配到网络接口i的概率为wi
步骤9,更新包括网络接口列表中的信息,预分配的结果则反馈给数据调度模块;
步骤10,数据调度模块将成组后的IP数据报文分配到预分配的网络接口上,由网络接口将数据转化为能在物理传输媒介上传输的电气信号,若在数据调度模块的具体分配过程中出现错误,则触发一个传输出错中断,负载均衡模块重新分配数据报组;
步骤11,中间路由结点和交换结点将数据传输到接收方的网络接口;
步骤12,接收方网络接口将收到的电气信息还原为数据帧,存放在缓冲区中;
步骤13,接收方的主机操作***TCP/IP协议栈从缓冲区中取出数据,根据IP头字段的值将数据报进行组合;
步骤14,接收方将组合后的IP数据报中的用户数据交付给传输层,由传输层控制协议对接收到的包进行响应;
步骤15,由接收方的应用程序处理接收的应用数据。
上述技术方案中:
IP报分组是依据IP数据报头中标示位,将相同标示的数据报分到同一个组中,统一进行分配,它可以避免这样一种现象:某一数据报因为通过传输质量差的信道传输而发生丢包的时候,传输层的重传机制会要求通过其它信道正确传输的数据报重传,浪费了带宽,增加了时延。
负载均衡包括网络接口状态监测和负载均衡算法,网络接口状态监测是底层网络传输设备驱动程序的实时调用者,目的是为了获取网络状态的信息,以动态调整负载分配,监测的对象是接口带宽、丢包率和网络接口利用率,监测的信息存入网络接口列表。负载均衡算法将待发送的数据合理地分配各发送通道上去,数据在各通道上的分布由各通道的权重值wi来确定。
数据调度也是网络传输设备的驱动程序接口的调用者,它将数据报组合理地分配到传输通道上去。若数据分配任务失败,会激发中断,使负载均衡模块对数据进行重新分配。
IP报分组、负载均衡、网络接口状态监测和数据调度在具体的内部实现中是通过四个线程来实现的,这样他们可以共享全局数据并提高并行度。
IP报分组线程为一个循环处理函数,将存储器中的数据报文按照标志位进行分组,当存储器中没有数据时,该线程进入睡眠状态。
负载均衡由两个线程来实现:负载均衡算法线程和网络接口状态监测线程。负载均衡算法线程一开始处于可中断睡眠状态,由IP报分组线程显式地唤醒后才开始运行。负载均衡算法线程首先检查是否达到权值wi的调整周期,这通过一个定时器程序实现。如果达到了调整周期,则按照公式(2)重新设置各接口权值,公式(2)中的各参数由网络接口状态监测线程获得。然后负载均衡算法线程按照各接口权值wi对数据报分组进行分配运算,使分配结果符合权值wi所要求的分布。负载均衡算法线程的输入为数据分配信号,输出为传输通道。网络接口状态监测线程封装了传输设备的驱动接口,通过各物理设备的驱动程序接口,到获取丢包率,利用率,带宽等参数,所得数据全部存储在网络接口列表中,网络接口列表是全局数据,每个线程都可以访问。
数据调度线程的输入是负载均衡算法线程所计算出的传输通道和IP分组线程处理后的数据报组,通过调用传输设备驱动程序接口,将数据传送到网络中去。当没有数据调度时,数据调度线程可以进入睡眠状态。
本发明中的有关技术术语定义:
多接入通道:即多种接入网络的数据通路,代表了网络数据的多种可达性链路。在实际网络应用环境中,多接入通道需要具有多个网络接入能力的网络接口的支持,例如:一台具有多有线网络接口的主机(具有多个有线网络接口)、一台具有有线网络接口、无线网络接口或蓝牙的笔记本电脑(具有有线网络接口和无线网络接口)。
显然通过将数据合理调度,分配到多种接入通道上同时传输,可以加快数据发送速率,显著提高网络带宽。
数据传输加速:数据传输加速的基本原理就是利用闲置的网络接入通道,对数据流实施分流,将数据的串行传输变为并行传输。
负载均衡:检测各传输通道的流量负载情况,采用相应流量分配算法将待传输数据流量分配到各个可用传输通道上并行传输,以优化各网络接口的利用率,实现数据传输的加速功能。
本发明的优点及显著效果:
本发明针对具有多种接入通道的网络发送端用户在进行网络数据传输过程中,面临着传输速率不高,而与此同时,尚有多种接入通道闲置,即发送端多通道的网络资源得不到充分利用的情况下,提出了如何在发送端的多接入通道间对传输报文进行有效调度,以实现网络多接入通道同时传输数据。同时,本专利结合各接入通道的性能状况,实现各通道的负载均衡,达到了充分利用终端用户现有的网络资源,大幅提高发送速率,同时提升通信带宽和通信质量的目标。本专利所采取的改进方法对网络通信的双方都是透明的,不需要更改现有协议栈,该方法在实际测试中获得了良好的效果。
本发明综合考虑了当前的数据加速技术,将可以平滑地应用于任何可以提供多种网络接入方式的网络端***,不需要刻意增加网络接口,更不需要依赖于交换机的某种支持,充分利用现有的资源。对于使用该端***进行数据传输的用户来说,该方案是透明的,不用改动任何传输代码,即可完成数据传输发送速率提高,显著提高网络带宽。
本发明可以采用软硬结合的方式,将数据传输加速引擎集成在一块具有多块网络接口的硬件设备上,成为一个即插即用的便携式设备。在一个没有网络接入设备的终端用户主机上,只要插上带数据传输加速引擎的网络接入硬件设备,正确设置好网络接入配置(也支持自动配置),数据传输加速引擎就可以自动进行工作,这一切不仅对接收端用户是透明的,同时对发送端用户也是透明的。
本发明精髓在于通过充分利用很多网络终端设备的多种网络接入方式(在不额外添加硬件的情况下),根据相应的负载均衡策略,动态地将待发送数据分配调度到各网络接入通道接口上,将网络串行数据传输变为并行数据传输,提高发送速率和闲置网络接口的资源利用率,从而加速网络传输。
本发明的兼容性和透明性体现在:1)数据发送端,用户不需要为应用本专利中的数据传输加速引擎而修改发送流程,原数据传输软件(如FTP、HTTP浏览器、音/视频通讯软件)仍可以正常的运行,不需做任何改动;2)数据接收端,用户不会因为发送端采用了本数据传输加速引擎,而影响接收处理过程,原数据接收软件同样不需做任何改动;3)内部协议栈,本发明不会影响原有TCP/IP协议栈中IP层以上层协议,也不会影响原协议栈对数据报的处理结果,只是为封装好的数据报分配相应的网络接口进行传输。
附图说明
图1目前的网络终端用户数据传输过程全局图;
图2本发明的网络终端用户数据传输过程全局图;
图3本发明负载均衡控制的框架图;
图4数据传输加速引擎的内部工作流程图;
图5负载均衡算法的工作流程图。
具体实施方式
图1描述了目前的网络终端用户数据传输过程,数据包直接从应用层下来,经过TCP复用封装,然后交付给主机操作***的TCP/IP协议栈处理,形成封装好的IP数据报。IP层和链路层之间没有任何处理,直接交付给网络接口(链路层和物理层),转化成电气信号送往物理传输媒体。经过中间路由到达数据接收方,由接收方进行解复用。
参看图2,与图1不同的地方是在IP层和链路层之间采取了数据传输加速引擎的中间处理。首先是IP数据报经过IP报分组模块处理,成为负载均衡模块的可处理单元,由负载均衡模块对数据报组进行预分配计算。数据报调度模块将预分配的数据报组指定到不同的网络接口设备。而数据的接收方与图1的数据接收过程并无任何差异,做到了透明接收。下面,我们从协议栈实现角度,描述基于发送端多接入通道方法的数据传输加速引擎实现数据传输速率提高过程中涉及的协议栈操作流程:
1)用户通过应用软件(如FTP传输,web应用,音/视频软件)将应用数据向下传递给主机操作***的TCP/IP协议栈,在IP层加上IP报头后,将数据报向下传递给数据传输加速引擎;
2)数据传输加速引擎根据IP报头的标示位将待发送数据进行分组(相同标示位的数据报在同一组),目的是使传输层中同一个数据段中的分组得到统一调度,不会被分配到不同的传输通道传输。
3)数据传输加速引擎中的负载均衡模块(参见图3)处理被分成组的数据。负载均衡模块通过网络接口状态监测子模块获取发送端主机上的所有已接入网络的网络接口列表信息,并周期性地动态调整分配权值;再通过负载均衡算法进行数据传输通道的计算和预分配(负载均衡算法的实现和工作流程如图5所示)以实现多通道数据传输,均衡各通道利用率;
4)预分配计算完成之后,由数据调度模块将数据流分配到各个接入网络的传输设备上去,使数据调度过程对接收用户端透明。
5)由各个接入网络的传输设备将数据转化成能在通信媒介上传输的物理信息,送入网络。
数据接收端的数据处理过程与传统的数据接收过程无异(参见图2),因此接收端在进行数据接收时,无需对协议栈做任何改动。
图3是本发明负载均衡控制的框架图。本发明专利中,我们为每个网络接入通道接口分配了一个权值wi(存放在网络接口列表中),权值代表待传输的数据分组被分配到该网络接口上发送的概率:
Σ i - 1 n w i = 1 - - - ( 1 )
显然,网络接口的性能越高、信道质量越好,该接口权值越大;反之,网络接口的性能不高、信道质量差,该接口权值相应小。在安装本加速引擎后,通过预先配置,可为每个网络接口权值分配一个相应的初值(例如,可以让各接口权值相同)。在加速引擎启动投入工作后,负载均衡将会依据监测到的网络接口状况动态地调整权值。
负载均衡模块中的网络接口状态检测子模块将负责监测各网络接入通道接口的状态信息,监测结果同样会存放在网络接口列表中。接口i的权值wi调整计算方法如下:
w i = b i ( 1 + u i ) ( 1 - e i ) Σ k = 1 n b k ( 1 + u k ) ( 1 - e k ) - - - ( 2 )
其中,i(1≤i≤n)为网络接口序号,bi为网络接口i的接口带宽,ei为网络接口i的接口丢包率,ui为网络接口i的接口利用率。
根据式(2)得到的网络接口i的权值(数据被分配到网络接入通道接口i上进行传输的概率),为下一数据分组选中相应网络接口。本发明负载均衡的处理过程首先由用户或预设置的模式给多种发送设备分别分配相应的权值初始值wi,权值代表数据分配到发送设备上的概率,性能高,信道质量好的网络接口权值应该大,反之,权值应该小。考虑到用户的初始权值分配得不恰当和网络环境的突发性及不稳定性,负载均衡会周期性地调整权值wi。为此,设定了一个网络接口状态监测子模块,监测的对象是接口带宽、丢包率和网络接口利用率,监测的信息存入网络接口列表。根据式(2),一个网络接口的带宽越大,分配给它的数据的概率也就越大;一个网络接口的丢包率较高,则可以判定此接口过载或信道传输质量差,就应当减少给其分配的数据量;同时也根据各个网络接口的利用率来动态调整负载,利用率低,就可以适当增加它的数据传输量,反之,则相应地减少分配给它的数据量。负载均衡模块会根据这些实时获得的信息,周期性地调整权值,以符合实际的网络传输环境,调整的计算方法见式(1)和式(2)。调整完权值之后,按照式(1)和式(2)所计算出来的权值概率进行网络接口的分配。若在数据调度模块的具体分配过程中出现错误,将触发一个传输出错中断,使负载均衡模块重新分配数据报组。
图4是数据传输加速引擎的内部工作流程图。IP报分组模块将IP数据报按传输层数据段成组的原则进行分组。负载均衡模块对分组后的数据进行预分配。负载均衡模块会周期性地调整各网络接口的权值wi,并对成组的数据报进行预分配,预分配的结果传递给数据调度模块,由数据调度模块进行具体的数据分配。
具体的数据传输加速流程是:
首先由数据传输加速引擎获取发送端主机的网络接口列表,并负责各网络接口信息的维护。选择网络接口列表中的第一个网络接口作为默认数据发送网络接口,也就是对数据接收方来说,这是惟一可见的网络接口。由用户给多种发送设备分别分配相应的权值wi(i为网络接口号),权值代表数据分配到网络发送设备上的概率。运行应用层程序,由应用层程序产生应用层数据,并决定传输层所采用发送的连接方式。传输层长数据段被主机操作***TCP/IP协议栈分成多个IP数据报文,交付给数据传输加速引擎。将IP数据报按IP报头中的标示位进行分组,确保同一传输层的数据段作为一个整体被进行分配。成组后的IP数据报文由负载均衡模块进行预分配计算。负载均衡模块周期性地根据式(1)和式(2)动态调整wi,以便能够及时适应不断变化的网络环境。负载均衡模块按照权值wi将成组的IP数据报文分配到网络接口i上,分配到网络接口i的概率为wi。更新网络接口列表中的信息等。预分配的结果则反馈给数据调度模块。由数据调度模块将成组后的IP数据报文分配到预分配的网络接口上。由网络接口将数据转化为能在物理传输媒介上传输的电气信号。若在数据调度模块的具体分配过程中出现错误,则触发一个传输出错中断,使负载均衡模块重新为待传数据分组分配传输接口。中间路由结点和交换结点无需任何改动,将数据传输到接收方的网络接口(和传统发送方式一样)。接收方网络接口将收到的电气信息还原为数据帧,存放在缓冲区中。接收方的主机操作***TCP/IP协议栈从缓冲区中取出数据,根据IP头字段的值将数据报进行组合。接收方将组合后的IP数据报中的用户数据交付给传输层,由传输层控制协议对接收到的包进行响应。由接收方的应用程序处理接收的应用数据。
图5是负载均衡计算控制的工作流程图。首先周期性地根据网络接口状态监测子模块的监测结果(存在网络接口列表中),重新计算调整各网络接口的权值wi。然后采用新的权值wi对数据报组进行预分配。预分配成功后,则将结果反馈给数据调度模块,由调度模块负责具体的分配过程。预分配成功后,更新网络接口列表(如保存新的权值wi等),以便为下一次预分配存储数据。
下面分别对数据分组模块和整个数据引擎的实施做进一步详细说明。
实施例1:数据分组
本发明并不会因为发送主机的某些通信质量较差的信道而影响数据发送的效率。因为数据报文的分配考虑到了传输层数据的完整性,即属于同一传输层数据的IP数据报文是以一个整体为单位来进行分配的。举例来说,如果一个UDP数据段的长度为5000,MTU的大小为1500,则这个UDP数据段要被分成如下4个IP数据报:
             标识      offset     more fragment
IP数据报1    Oxfd2b    0           1
IP数据报2    Oxfd2b    1480        1
IP数据报3    Oxfd2b    2960        1
IP数据报4    Oxfd2b    4440        0
在具体实施分配的过程当中,这4个IP数据报是被分在一个组里的,他们是作为一个整体被进行分配的。设想一下,如果不是按这种方式分配,而是将分配粒度按照IP数据报进行分配,则这4个IP数据报可能被分配到不同的网络接口上。如果其中一个网络接口(比如无线接口)的通信质量比较差,容易发生数据错误和数据丢失,被分配到这个无线网络接口上的数据报就很有可能丢失或出错,那将导致其余3个IP数据报都要进行重传。最坏情况下,如果每个传输层的数据段被拆分成IP数据报文之后,其中都有一个经过丢包率或出错率高的网络接口,那么许多的传输层数据段都要被重传,网络将产生大量的重传数据,造成整体的传输效率下降和带宽浪费。因此本发明在分配IP数据报的过程中,考虑到传输层数据的完整性,有效地避免了这个问题。
本发明通过充分利用具有多网络终端设备的多种网络接入方式(在不额外添加硬件的情况下),根据相应的负载均衡策略,动态地将待发送数据分配调度到各网络接入通道接口上,将网络串行数据传输变为并行数据传输,提高发送速率和闲置网络接口的资源利用率,从而加速网络传输。本发明还可有其他多种实施方式,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明权利要求的保护范围。

Claims (2)

1、一种基于发送端多接入通道的数据传输加速引擎方法,发送端主机将数据包从应用层下来后,经过TCP复用封装,然后交付给主机操作***的TCP/IP协议栈处理,经IP层形成封装好的IP数据报传输至链路层再至物理层,再经过中间路由到达数据接收方,由接收方进行解复用,其特征在于:在IP层与链路层之间设置数据传输加速引擎,该加速引擎包括IP报分组模块、负载均衡模块及数据调度模块,其中负载均衡模块内含网络接口状态监测子模块;首先由IP报分组模块将IP数据报按IP报头中的标示位将待发送数据进行分组,相同标示位的数据报分在同一组,然后分组后的报组数据成为负载均衡模块的可处理单元,根据网络接口状态监测子模块实时检测各传输通道的流量负载情况,采用相应的流量分配算法对数据报组进行预分配计算,将待传输数据流量分配到各个可用传输通道上并行传输,最后通过数据调度模块将预分配的数据报组指定到不同的网络接口设备;
上述IP报分组模块、负载均衡模块和数据调度模块是通过四个线程来实现的:
IP报分组线程为一个循环处理函数,将存储器中的数据报文按照标志位进行分组,当存储器中没有数据时,该线程进入睡眠状态;
负载均衡由负载均衡算法线程和网络接口状态监测线程两个线程来实现:负载均衡算法线程一开始处于中断睡眠状态,由IP报分组线程显式地唤醒后才开始运行,负载均衡算法线程为每个网络接入通道接口分配了一个权值wi,存放在网络接口列表中,权值代表待传输的数据分组被分配到该网络接口上发送的概率:
Σ i - 1 n w i = 1 - - - ( 1 )
负载均衡算法将待发送的数据合理地分配各发送通道上去,数据在各通道上的分布由各通道的权重值wi来确定;负载均衡的网络接口状态监测线程负责监测各网络接入通道接口的状态信息,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,接口i的权值wi调整计算方法如下:
w i = b i ( 1 + u i ) ( 1 - e i ) Σ k = 1 n b k ( 1 + u k ) ( 1 - e k ) - - - ( 2 )
其中,i为网络接口序号,1≤i≤n;bi为网络接口i的接口带宽,ei为网络接口i的接口丢包率,ui为网络接口i的接口利用率;根据式(2)得到的网络接口i的权值即数据被分配到网络接入通道接口i上进行传输的概率,为下一数据分组选中相应网络接口;
通过一个定时器程序检查是否达到权值wi的调整周期,如果达到了调整周期,则按照公式(2)重新设置各接口权值,公式(2)中的各参数由网络接口状态监测线程获得,然后负载均衡算法线程按照各接口权值wi对数据报分组进行分配运算,使分配结果符合权值wi所要求的分布;负载均衡算法线程的输入为数据分配信号,输出为传输通道,网络接口状态监测线程封装了传输设备的驱动接口,通过各物理设备的驱动程序接口,获取丢包率,利用率,带宽等参数,所得数据全部存储在网络接口列表中,网络接口列表是全局数据,每个线程都可以访问;
数据调度线程的输入是负载均衡算法线程所计算出的传输通道和IP分组线程处理后的数据报组,通过调用传输设备驱动程序接口,将数据传送到网络中去。当没有数据调度时,数据调度线程可以进入睡眠状态。
2、根据权利要求1所述的基于发送端多接入通道的数据传输加速引擎方法,其特征在于数据传输加速流程是:
步骤1,首先获取发送端主机的网络接口列表,选择网络接口列表中的第一个网络接口作为默认数据发送网络接口,也就是对数据接收方来说,这是惟一可见的网络接口;
步骤2,由用户或预设置的模式给多种发送设备分别分配相应的初始权值wi,i为网络接口号,权值代表数据分配到网络发送设备上的概率;
步骤3,运行应用层程序,由应用层程序产生应用层数据,并决定所采用的传输层协议TCP/UDP;
步骤4,传输层长数据段被主机操作***TCP/IP协议栈分成多个IP数据报文,交付给数据传输加速引擎;
步骤5,将IP数据报按IP报头中的标示位进行分组,确保传输层的同一数据段作为一个整体被分配,成组之后的所有IP报头中的源IP为默认发送网络接口的IP,IP报头中的其余字段均由主机操作***的TCP/IP协议栈自行设置,数据传输加速引擎不加修改;
步骤6,将成组后的IP数据报文通过负载均衡模块进行预分配计算;
步骤7,根据式(2)得到的网络接口i的权值即数据被分配到网络接入通道接口i上进行传输的概率,为下一数据分组选中相应网络接口;负载均衡模块周期性地根据式(1)和式(2)动态调整wi,调整过程如下:负载均衡模块读取实时更新的网络接口状态的监测结果,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,重新计算并调整相应的权值wi,以便能够及时适应不断变化的网络环境;
步骤8,负载均衡模块按照权值wi将成组的IP数据报文分配到网络接口i上,分配到网络接口i的概率为wi
步骤9,更新包括网络接口列表中的信息,预分配的结果则反馈给数据调度模块;
步骤10,数据调度模块将成组后的IP数据报文分配到预分配的网络接口上,由网络接口将数据转化为能在物理传输媒介上传输的电气信号,若在数据调度模块的具体分配过程中出现错误,则触发一个传输出错中断,负载均衡模块重新分配数据报组;
步骤11,中间路由结点和交换结点将数据传输到接收方的网络接口;
步骤12,接收方网络接口将收到的电气信息还原为数据帧,存放在缓冲区中;
步骤13,接收方的主机操作***TCP/IP协议栈从缓冲区中取出数据,根据IP头字段的值将数据报进行组合;
步骤14,接收方将组合后的IP数据报中的用户数据交付给传输层,由传输层控制协议对接收到的包进行响应;
步骤15,由接收方的应用程序处理接收的应用数据。
CN2009100354912A 2009-09-25 2009-09-25 一种基于发送端多接入通道的数据传输加速引擎方法 Expired - Fee Related CN101668005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100354912A CN101668005B (zh) 2009-09-25 2009-09-25 一种基于发送端多接入通道的数据传输加速引擎方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100354912A CN101668005B (zh) 2009-09-25 2009-09-25 一种基于发送端多接入通道的数据传输加速引擎方法

Publications (2)

Publication Number Publication Date
CN101668005A true CN101668005A (zh) 2010-03-10
CN101668005B CN101668005B (zh) 2012-04-25

Family

ID=41804445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100354912A Expired - Fee Related CN101668005B (zh) 2009-09-25 2009-09-25 一种基于发送端多接入通道的数据传输加速引擎方法

Country Status (1)

Country Link
CN (1) CN101668005B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624769A (zh) * 2011-01-31 2012-08-01 宏碁股份有限公司 管线式网络装置及相关数据传送方法
CN102647349A (zh) * 2012-03-30 2012-08-22 汉柏科技有限公司 Ipsec实现负载分担的方法及***
WO2012151922A1 (zh) * 2011-09-20 2012-11-15 中兴通讯股份有限公司 数据转发方法及装置
CN104684107A (zh) * 2015-03-24 2015-06-03 苏州大学张家港工业技术研究院 一种移动终端的双通道混合隧道构建方法
WO2015139433A1 (zh) * 2014-03-19 2015-09-24 中兴通讯股份有限公司 静态IPSec虚接口负载均衡的方法、装置及主处理器
CN105376334A (zh) * 2015-12-14 2016-03-02 曙光信息产业(北京)有限公司 负载均衡方法及装置
CN105591960A (zh) * 2015-07-09 2016-05-18 杭州华三通信技术有限公司 调整隧道负载的方法和设备
CN105610711A (zh) * 2015-12-25 2016-05-25 珠海国芯云科技有限公司 一种动态优化数据传输的装置及方法
CN105656994A (zh) * 2014-12-31 2016-06-08 华为技术有限公司 一种业务加速方法和装置
CN105939355A (zh) * 2016-06-13 2016-09-14 乐视控股(北京)有限公司 一种数据访问方法、***及客户端和服务器
CN105959161A (zh) * 2016-07-08 2016-09-21 中国人民解放军国防科学技术大学 一种高速数据包构造和分发控制方法及设备
CN107248892A (zh) * 2017-07-20 2017-10-13 中国检验检疫科学研究院 一种安检设备的监控***
CN107786371A (zh) * 2017-10-09 2018-03-09 咪咕视讯科技有限公司 一种数据的加速方法、装置及存储介质
CN108322390A (zh) * 2017-01-18 2018-07-24 群晖科技股份有限公司 路由器及流量管理方法
CN108322773A (zh) * 2018-02-01 2018-07-24 安徽创世科技股份有限公司 一种基于多卡绑定的自适应网络带宽实时数据流传输方法
CN109428950A (zh) * 2017-08-31 2019-03-05 中国电信股份有限公司 Ip地址池自动调度方法和***
CN111429070A (zh) * 2020-04-02 2020-07-17 冯希 一种易于分类记录的仓储管理***
WO2020220160A1 (zh) * 2019-04-28 2020-11-05 天通畅达(深圳)科技有限公司 基于多个数据通道并发捆绑承载大数据量业务的传输方法及***
CN112231138A (zh) * 2019-07-15 2021-01-15 美光科技公司 用于存储器子***操作的基于硬件的状态收集器加速引擎
CN112463396A (zh) * 2021-02-03 2021-03-09 树根互联技术有限公司 压力测试数据的并行传输方法、压力测试工具及电子设备
CN114338567A (zh) * 2021-12-27 2022-04-12 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备
CN115348490A (zh) * 2022-10-18 2022-11-15 武汉长光科技有限公司 一种动态调度业务波长通道方法及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100394745C (zh) * 2006-04-14 2008-06-11 迈普(四川)通信技术有限公司 一种动态选择出口路径的方法
CN101022413B (zh) * 2007-03-26 2010-10-13 杭州华三通信技术有限公司 负载均衡方法及路由服务器

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624769B (zh) * 2011-01-31 2015-10-21 宏碁股份有限公司 管线式网络装置及相关数据传送方法
US8774193B2 (en) 2011-01-31 2014-07-08 Acer Incorporated Pipeline network device and related data transmission method
CN102624769A (zh) * 2011-01-31 2012-08-01 宏碁股份有限公司 管线式网络装置及相关数据传送方法
WO2012151922A1 (zh) * 2011-09-20 2012-11-15 中兴通讯股份有限公司 数据转发方法及装置
CN102647349A (zh) * 2012-03-30 2012-08-22 汉柏科技有限公司 Ipsec实现负载分担的方法及***
WO2015139433A1 (zh) * 2014-03-19 2015-09-24 中兴通讯股份有限公司 静态IPSec虚接口负载均衡的方法、装置及主处理器
CN105656994A (zh) * 2014-12-31 2016-06-08 华为技术有限公司 一种业务加速方法和装置
CN105656994B (zh) * 2014-12-31 2019-02-05 华为技术有限公司 一种业务加速方法和装置
CN104684107A (zh) * 2015-03-24 2015-06-03 苏州大学张家港工业技术研究院 一种移动终端的双通道混合隧道构建方法
CN105591960A (zh) * 2015-07-09 2016-05-18 杭州华三通信技术有限公司 调整隧道负载的方法和设备
CN105591960B (zh) * 2015-07-09 2019-04-12 新华三技术有限公司 调整隧道负载的方法和设备
CN105376334A (zh) * 2015-12-14 2016-03-02 曙光信息产业(北京)有限公司 负载均衡方法及装置
CN105610711A (zh) * 2015-12-25 2016-05-25 珠海国芯云科技有限公司 一种动态优化数据传输的装置及方法
CN105610711B (zh) * 2015-12-25 2019-02-12 珠海国芯云科技有限公司 一种动态优化数据传输的装置及方法
CN105939355A (zh) * 2016-06-13 2016-09-14 乐视控股(北京)有限公司 一种数据访问方法、***及客户端和服务器
CN105959161B (zh) * 2016-07-08 2019-04-26 中国人民解放军国防科学技术大学 一种高速数据包构造和分发控制方法及设备
CN105959161A (zh) * 2016-07-08 2016-09-21 中国人民解放军国防科学技术大学 一种高速数据包构造和分发控制方法及设备
CN108322390A (zh) * 2017-01-18 2018-07-24 群晖科技股份有限公司 路由器及流量管理方法
CN107248892A (zh) * 2017-07-20 2017-10-13 中国检验检疫科学研究院 一种安检设备的监控***
CN107248892B (zh) * 2017-07-20 2023-06-06 中国检验检疫科学研究院 一种安检设备的监控***
CN109428950A (zh) * 2017-08-31 2019-03-05 中国电信股份有限公司 Ip地址池自动调度方法和***
CN107786371A (zh) * 2017-10-09 2018-03-09 咪咕视讯科技有限公司 一种数据的加速方法、装置及存储介质
CN107786371B (zh) * 2017-10-09 2021-06-29 咪咕视讯科技有限公司 一种数据的加速方法、装置及存储介质
CN108322773A (zh) * 2018-02-01 2018-07-24 安徽创世科技股份有限公司 一种基于多卡绑定的自适应网络带宽实时数据流传输方法
CN108322773B (zh) * 2018-02-01 2020-05-05 安徽创世科技股份有限公司 一种基于多卡绑定的自适应网络带宽实时数据流传输方法
WO2020220160A1 (zh) * 2019-04-28 2020-11-05 天通畅达(深圳)科技有限公司 基于多个数据通道并发捆绑承载大数据量业务的传输方法及***
CN112231138A (zh) * 2019-07-15 2021-01-15 美光科技公司 用于存储器子***操作的基于硬件的状态收集器加速引擎
US12019915B2 (en) 2019-07-15 2024-06-25 Micron Technology, Inc. Hardware based status collector acceleration engine for memory sub-system operations
CN111429070A (zh) * 2020-04-02 2020-07-17 冯希 一种易于分类记录的仓储管理***
CN112463396A (zh) * 2021-02-03 2021-03-09 树根互联技术有限公司 压力测试数据的并行传输方法、压力测试工具及电子设备
CN114338567A (zh) * 2021-12-27 2022-04-12 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备
CN114338567B (zh) * 2021-12-27 2023-09-05 锐迪科创微电子(北京)有限公司 Sdio接口数据传输方法及装置、sdio接口设备
CN115348490A (zh) * 2022-10-18 2022-11-15 武汉长光科技有限公司 一种动态调度业务波长通道方法及相关装置
CN115348490B (zh) * 2022-10-18 2023-03-24 武汉长光科技有限公司 一种动态调度业务波长通道方法及相关装置

Also Published As

Publication number Publication date
CN101668005B (zh) 2012-04-25

Similar Documents

Publication Publication Date Title
CN101668005B (zh) 一种基于发送端多接入通道的数据传输加速引擎方法
CN102791037B (zh) 缓冲状态报告
RU2390956C2 (ru) Способ и устройство для мультиплексирования пакетов данных
EP2445166B1 (en) Method and device for controlling information channel flow
KR101504144B1 (ko) 다채널 패킷 송신을 위한 시스템 및 방법
CN100431362C (zh) 移动通信***中分组业务调度的方法
CN101170512B (zh) 报文业务处理方法
JP2003124980A (ja) パケット振り分け装置
CN104378308A (zh) 报文发送速率检测方法及装置
CN102577569A (zh) 使用允许令牌债务的令牌桶的无线通信的速率修整
US7826465B2 (en) Methods, systems and computer program products for dynamic communication data routing by a multi-network remote communication terminal
US20110134752A1 (en) Multilink traffic shaping
CN100359827C (zh) 利用复帧传送数据
CN115473855A (zh) 网络***、数据传输方法
CN101883047B (zh) 多网络接口设备的数据并发传输方法
CN110213170A (zh) 一种报文传输的方法及装置
CN101631074B (zh) 一种多链路报文发送方法、装置和网络设备
CN101854622A (zh) 一种高速上行分组接入终端及其数据传输方法
CN101808117B (zh) 一种通信中时间标签业务数据的构造及服务方法
CN113038530B (zh) 卫星移动通信***QoS保障的分组业务高效传输方法
CN115314442A (zh) 拥塞控制和基于Group的限速限窗装置及方法、限速限窗方法
CN101124754A (zh) 用于并行通信的***和方法
CN101383753B (zh) 从设备级联的***实现voq调度的方法
JP2002247063A (ja) パケット多重化方式
CN101431802B (zh) 数据传输方法、网络节点及网络***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120425

Termination date: 20140925

EXPY Termination of patent right or utility model