CN101668005B - 一种基于发送端多接入通道的数据传输加速引擎方法 - Google Patents
一种基于发送端多接入通道的数据传输加速引擎方法 Download PDFInfo
- Publication number
- CN101668005B CN101668005B CN2009100354912A CN200910035491A CN101668005B CN 101668005 B CN101668005 B CN 101668005B CN 2009100354912 A CN2009100354912 A CN 2009100354912A CN 200910035491 A CN200910035491 A CN 200910035491A CN 101668005 B CN101668005 B CN 101668005B
- Authority
- CN
- China
- Prior art keywords
- data
- network interface
- thread
- datagram
- network
- 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.)
- Expired - Fee Related
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,存放在网络接口列表中,权值代表待传输的数据分组被分配到该网络接口上发送的概率:
负载均衡算法将待发送的数据合理地分配各发送通道上去,数据在各通道上的分布由各通道的权重值wi来确定;负载均衡的网络接口状态监测线程负责监测各网络接入通道接口的状态信息,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,接口i的权值wi调整计算方法如下:
其中,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的权值wi调整计算方法如下:
其中,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报分组模块由IP报分组线程来实现,IP报分组线程为一个循环处理函数,将存储器中的数据报文按照标志位进行分组,当存储器中没有数据时,该线程进入睡眠状态;
负载均衡模块由负载均衡算法线程和网络接口状态监测线程两个线程来实现:负载均衡算法线程一开始处于中断睡眠状态,由IP报分组线程显式地唤醒后才开始运行,负载均衡算法线程为每个网络接入通道接口分配了一个权值wi,存放在网络接口列表中,权值代表待传输的数据分组被分配到该网络接口上发送的概率:
负载均衡算法线程将待发送的数据合理地分配到各发送通道上去,数据在各通道上的分布由各通道的权值wi来确定;负载均衡模块的网络接口状态监测线程负责监测各网络接入通道接口的状态信息,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,接口i的权值wi调整计算方法如下:
其中,i为网络接口序号,1≤i≤n,n为整数,n=1,2,3...;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,由接收方的应用程序处理接收的应用数据。
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 CN101668005A (zh) | 2010-03-10 |
CN101668005B true 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) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI423129B (zh) * | 2011-01-31 | 2014-01-11 | Acer Inc | 管線式網路裝置及相關資料傳送方法 |
CN103024806B (zh) * | 2011-09-20 | 2017-12-12 | 中兴通讯股份有限公司 | 数据转发方法及装置 |
CN102647349A (zh) * | 2012-03-30 | 2012-08-22 | 汉柏科技有限公司 | Ipsec实现负载分担的方法及系统 |
CN104935522B (zh) * | 2014-03-19 | 2019-08-27 | 南京中兴新软件有限责任公司 | 静态IPSec虚接口负载均衡的方法、装置及主处理器 |
CN105656994B (zh) * | 2014-12-31 | 2019-02-05 | 华为技术有限公司 | 一种业务加速方法和装置 |
CN104684107A (zh) * | 2015-03-24 | 2015-06-03 | 苏州大学张家港工业技术研究院 | 一种移动终端的双通道混合隧道构建方法 |
CN105591960B (zh) * | 2015-07-09 | 2019-04-12 | 新华三技术有限公司 | 调整隧道负载的方法和设备 |
CN105376334A (zh) * | 2015-12-14 | 2016-03-02 | 曙光信息产业(北京)有限公司 | 负载均衡方法及装置 |
CN105610711B (zh) * | 2015-12-25 | 2019-02-12 | 珠海国芯云科技有限公司 | 一种动态优化数据传输的装置及方法 |
CN105939355A (zh) * | 2016-06-13 | 2016-09-14 | 乐视控股(北京)有限公司 | 一种数据访问方法、系统及客户端和服务器 |
CN105959161B (zh) * | 2016-07-08 | 2019-04-26 | 中国人民解放军国防科学技术大学 | 一种高速数据包构造和分发控制方法及设备 |
CN108322390B (zh) * | 2017-01-18 | 2021-03-09 | 群晖科技股份有限公司 | 路由器及流量管理方法 |
CN107248892B (zh) * | 2017-07-20 | 2023-06-06 | 中国检验检疫科学研究院 | 一种安检设备的监控系统 |
CN109428950B (zh) * | 2017-08-31 | 2021-11-02 | 中国电信股份有限公司 | Ip地址池自动调度方法和系统 |
CN107786371B (zh) * | 2017-10-09 | 2021-06-29 | 咪咕视讯科技有限公司 | 一种数据的加速方法、装置及存储介质 |
CN108322773B (zh) * | 2018-02-01 | 2020-05-05 | 安徽创世科技股份有限公司 | 一种基于多卡绑定的自适应网络带宽实时数据流传输方法 |
WO2020220160A1 (zh) * | 2019-04-28 | 2020-11-05 | 天通畅达(深圳)科技有限公司 | 基于多个数据通道并发捆绑承载大数据量业务的传输方法及系统 |
US11288013B2 (en) | 2019-07-15 | 2022-03-29 | Micron Technology, Inc. | Hardware based status collector acceleration engine for memory sub-system operations |
CN111429070A (zh) * | 2020-04-02 | 2020-07-17 | 冯希 | 一种易于分类记录的仓储管理系统 |
CN112463396B (zh) * | 2021-02-03 | 2021-05-07 | 树根互联技术有限公司 | 压力测试数据的并行传输方法、压力测试工具及电子设备 |
CN114338567B (zh) * | 2021-12-27 | 2023-09-05 | 锐迪科创微电子(北京)有限公司 | Sdio接口数据传输方法及装置、sdio接口设备 |
CN115348490B (zh) * | 2022-10-18 | 2023-03-24 | 武汉长光科技有限公司 | 一种动态调度业务波长通道方法及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829197A (zh) * | 2006-04-14 | 2006-09-06 | 迈普(四川)通信技术有限公司 | 一种动态选择出口路径的方法 |
CN101022413A (zh) * | 2007-03-26 | 2007-08-22 | 杭州华为三康技术有限公司 | 负载均衡方法及路由服务器 |
-
2009
- 2009-09-25 CN CN2009100354912A patent/CN101668005B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829197A (zh) * | 2006-04-14 | 2006-09-06 | 迈普(四川)通信技术有限公司 | 一种动态选择出口路径的方法 |
CN101022413A (zh) * | 2007-03-26 | 2007-08-22 | 杭州华为三康技术有限公司 | 负载均衡方法及路由服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN101668005A (zh) | 2010-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101668005B (zh) | 一种基于发送端多接入通道的数据传输加速引擎方法 | |
CN102791037B (zh) | 缓冲状态报告 | |
EP1374458B1 (en) | Method and apparatus for implementing a mac coprocessor in a communications system | |
RU2390956C2 (ru) | Способ и устройство для мультиплексирования пакетов данных | |
US8310934B2 (en) | Method and device for controlling information channel flow | |
KR101504144B1 (ko) | 다채널 패킷 송신을 위한 시스템 및 방법 | |
CN101170512B (zh) | 报文业务处理方法 | |
CN101120571A (zh) | 用于无线tcp连接的最优化的方法和系统 | |
CN102577569A (zh) | 使用允许令牌债务的令牌桶的无线通信的速率修整 | |
JP2003124980A (ja) | パケット振り分け装置 | |
US20110134752A1 (en) | Multilink traffic shaping | |
EP1104141A2 (en) | System for generating composite packets | |
CN100531215C (zh) | 一种多台网络设备链路聚集的实现方法 | |
JP4535655B2 (ja) | データ送信方法及びシステム | |
CN115473855A (zh) | 网络系统、数据传输方法 | |
CN101883047B (zh) | 多网络接口设备的数据并发传输方法 | |
CN110213170A (zh) | 一种报文传输的方法及装置 | |
CN101808117B (zh) | 一种通信中时间标签业务数据的构造及服务方法 | |
CN101631074B (zh) | 一种多链路报文发送方法、装置和网络设备 | |
JP2012039198A (ja) | データ圧縮転送システム、伝送装置及びそれらに用いるデータ圧縮転送方法 | |
CN115190537B (zh) | 一种无线链路动态选择方法及系统 | |
CN101163101B (zh) | 有基于分组长度和cpu耗时的负载控制机构的分组处理装置 | |
CN113038530B (zh) | 卫星移动通信系统QoS保障的分组业务高效传输方法 | |
CN101124754A (zh) | 用于并行通信的系统和方法 | |
CN101383753B (zh) | 从设备级联的系统实现voq调度的方法 |
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 |