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

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


图1目前的网络终端用户数据传输过程全局图;图2本发明的网络终端用户数据传输过程全局图; 图3本发明负载均衡控制的框架图; 图4数据传输加速引擎的内部工作流程图; 图5负载均衡算法的工作流程图。
具体实施例方式
图l描述了目前的网络终端用户数据传输过程,数据包直接从应用层下来,经过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是本发明负载均衡控制的框架图。本发明专利中,我们为每个网络接入通道接口 分配了一个权值A (存放在网络接口列表中),权值代表待传输的数据分组被分配到该网 络接口上发送的概率<formula>formula see original document page 11</formula> (1)
显然,网络接口的性能越高、信道质量越好,该接口权值越大;反之,网络接口的性 能不高、信道质量差,该接口权值相应小。在安装本加速引擎后,通过预先配置,可为每 个网络接口权值分配一个相应的初值(例如,可以让各接口权值相同)。在加速引擎启动 投入工作后,负载均衡将会依据监测到的网络接口状况动态地调整权值。
负载均衡模块中的网络接口状态检测子模块将负责监测各网络接入通道接口的状态 信息,监测结果同样会存放在网络接口列表中。接口 /的权值w,调整计算方法如下
其中,/ (1S"")为网络接口序号,6,.为网络接口 Z的接口带宽,e,为网络接口 / 的接口丢包率,",为网络接口/的接口利用率。
根据式(2)得到的网络接口 ;的权值(数据被分配到网络接入通道接口 /上进行传 输的概率),为下一数据分组选中相应网络接口。本发明负载均衡的处理过程首先由用户 或预设置的模式给多种发送设备分别分配相应的权值初始值w,,权值代表数据分配到发 送设备上的概率,性能高,信道质量好的网络接口权值应该大,反之,权值应该小。考虑 到用户的初始权值分配得不恰当和网络环境的突发性及不稳定性,负载均衡会周期性地调 整权值w,。为此,设定了一个网络接口状态监测子模块,监测的对象是接口带宽、丢包 率和网络接口利用率,监测的信息存入网络接口列表。根据式(2), 一个网络接口的带宽 越大,分配给它的数据的概率也就越大; 一个网络接口的丢包率较高,则可以判定此接口 过载或信道传输质量差,就应当减少给其分配的数据量;同时也根据各个网络接口的利用 率来动态调整负载,利用率低,就可以适当增加它的数据传输量,反之,则相应地减少分 配给它的数据量。负载均衡模块会根据这些实时获得的信息,周期性地调整权值,以符合 实际的网络传输环境,调整的计算方法见式(1)和式(2)。调整完权值之后,按照式(1) 和式(2)所计算出来的权值概率进行网络接口的分配。若在数据调度模块的具体分配过 程中出现错误,将触发一个传输出错中断,使负载均衡模块重新分配数据报组。
图4是数据传输加速引擎的内部工作流程图。IP报分组模块将IP数据报按传输层数 据段成组的原则进行分组。负载均衡模块对分组后的数据进行预分配。负载均衡模块会周 期性地调整各网络接口的权值^,并对成组的数据报进行预分配,预分配的结果传递给 数据调度模块,由数据调度模块进行具体的数据分配。
具体的数据传输加速流程是
首先由数据传输加速引擎获取发送端主机的网络接口列表,并负责各网络接口信息的 维护。选择网络接口列表中的第一个网络接口作为默认数据发送网络接口,也就是对数据接收方来说,这是惟一可见的网络接口。由用户给多种发送设备分别分配相应的权值^ (i为网络接口号),权值代表数据分配到网络发送设备上的概率。运行应用层程序,由应用层程序产生应用层数据,并决定传输层所采用发送的连接方式。传输层长数据段被主机操作系统TCP/IP协议栈分成多个IP数据报文,交付给数据传输加速引擎。将IP数据报按
IP报头中的标示位进行分组,确保同一传输层的数据段作为一个整体被进行分配。成组后的IP数据报文由负载均衡模块进行预分配计算。负载均衡模块周期性地根据式(1)和
式(2)动态调整w,,以便能够及时适应不断变化的网络环境。负载均衡模块按照权值w,将成组的IP数据报文分配到网络接口 z'上,分配到网络接口 /的概率为w,。更新网络接口列表中的信息等。预分配的结果则反馈给数据调度模块。由数据调度模块将成组后的IP数据报文分配到预分配的网络接口上。由网络接口将数据转化为能在物理传输媒介上传输的电气信号。若在数据调度模块的具体分配过程中出现错误,则触发一个传输出错中断,使负载均衡模块重新为待传数据分组分配传输接口。中间路由结点和交换结点无需任何改动,将数据传输到接收方的网络接口 (和传统发送方式一样)。接收方网络接口将收到的电气信息还原为数据帧,存放在缓冲区中。接收方的主机操作系统TCP/IP协议栈从缓冲区中取出数据,根据IP头字段的值将数据报进行组合。接收方将组合后的IP数据报中的用户数据交付给传输层,由传输层控制协议对接收到的包进行响应。由接收方的应用程序处理接收的应用数据。
图5是负载均衡计算控制的工作流程图。首先周期性地根据网络接口状态监测子模块的监测结果(存在网络接口列表中),重新计算调整各网络接口的权值^。然后采用新的权值w,对数据报组进行预分配。预分配成功后,则将结果反馈给数据调度模块,由调度模块负责具体的分配过程。预分配成功后,更新网络接口列表(如保存新的权值M;,等),以便为下一次预分配存储数据。
下面分别对数据分组模块和整个数据引擎的实施做进一步详细说明。
实施例1:数据分组
本发明并不会因为发送主机的某些通信质量较差的信道而影响数据发送的效率。因为数据报文的分配考虑到了传输层数据的完整性,即属于同一传输层数据的IP数据报文是以一个整体为单位来进行分配的。举例来说,如果一个UDP数据段的长度为5000,MTU的大小为1500,则这个UDP数据段要被分成如下4个IP数据报
标识offsetmore fragment
IP数据报1Oxfd2b01
IP数据报2Oxfd2b14801
IP数据报3Oxfd2b29601
IP数据报4Oxfd2b44400
在具体实施分配的过程当中,这4个IP数据报是被分在一个组里的,个整体被进行分配的。设想一下,如果不是按这种方式分配,而是将分配粒度按照IP数据报进行分配,则这4个IP数据报可能被分配到不同的网络接口上。如果其中一个网络接口 (比如无线接口)的通信质量比较差,容易发生数据错误和数据丢失,被分配到这个无线网络接口上的数据报就很有可能丢失或出错,那将导致其余3个IP数据报都要进行重传。最坏情况下,如果每个传输层的数据段被拆分成IP数据报文之后,其中都有一个经过丢包率或出错率高的网络接口,那么许多的传输层数据段都要被重传,网络将产生大量的重传数据,造成整体的传输效率下降和带宽浪费。因此本发明在分配IP数据报的过程中,考虑到传输层数据的完整性,有效地避免了这个问题。
本发明通过充分利用具有多网络终端设备的多种网络接入方式(在不额外添加硬件的情况下),根据相应的负载均衡策略,动态地将待发送数据分配调度到各网络接入通道接口上,将网络串行数据传输变为并行数据传输,提高发送速率和闲置网络接口的资源利用率,从而加速网络传输。本发明还可有其他多种实施方式,在不背离本发明精祌及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明权利要求的保护范围。
权利要求
1、一种基于发送端多接入通道的数据传输加速引擎方法,发送端主机将数据包从应用层下来后,经过TCP复用封装,然后交付给主机操作系统的TCP/IP协议栈处理,经IP层形成封装好的IP数据报传输至链路层再至物理层,再经过中间路由到达数据接收方,由接收方进行解复用,其特征在于在IP层与链路层之间设置数据传输加速引擎,该加速引擎包括IP报分组模块、负载均衡模块及数据调度模块,其中负载均衡模块内含网络接口状态监测子模块;首先由IP报分组模块将IP数据报按IP报头中的标示位将待发送数据进行分组,相同标示位的数据报分在同一组,然后分组后的报组数据成为负载均衡模块的可处理单元,根据网络接口状态监测子模块实时检测各传输通道的流量负载情况,采用相应的流量分配算法对数据报组进行预分配计算,将待传输数据流量分配到各个可用传输通道上并行传输,最后通过数据调度模块将预分配的数据报组指定到不同的网络接口设备;上述IP报分组模块、负载均衡模块和数据调度模块是通过四个线程来实现的IP报分组线程为一个循环处理函数,将存储器中的数据报文按照标志位进行分组,当存储器中没有数据时,该线程进入睡眠状态;负载均衡由负载均衡算法线程和网络接口状态监测线程两个线程来实现负载均衡算法线程一开始处于中断睡眠状态,由IP报分组线程显式地唤醒后才开始运行,负载均衡算法线程为每个网络接入通道接口分配了一个权值wi,存放在网络接口列表中,权值代表待传输的数据分组被分配到该网络接口上发送的概率<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>i</mi><mo>-</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><msub> <mi>w</mi> <mi>i</mi></msub><mo>=</mo><mn>1</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>负载均衡算法将待发送的数据合理地分配各发送通道上去,数据在各通道上的分布由各通道的权重值wi来确定;负载均衡的网络接口状态监测线程负责监测各网络接入通道接口的状态信息,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里,接口i的权值wi调整计算方法如下<maths id="math0002" num="0002" ><math><![CDATA[ <mrow><msub> <mi>w</mi> <mi>i</mi></msub><mo>=</mo><mfrac> <mrow><msub> <mi>b</mi> <mi>i</mi></msub><mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub><mi>u</mi><mi>i</mi> </msub> <mo>)</mo></mrow><mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub><mi>e</mi><mi>i</mi> </msub> <mo>)</mo></mrow> </mrow> <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>k</mi><mo>=</mo><mn>1</mn> </mrow> <mi>n</mi></munderover><msub> <mi>b</mi> <mi>k</mi></msub><mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <msub><mi>u</mi><mi>k</mi> </msub> <mo>)</mo></mrow><mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub><mi>e</mi><mi>k</mi> </msub> <mo>)</mo></mrow> </mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo></mrow> </mrow>]]></math></maths>其中,i为网络接口序号,1≤i≤n;bi为网络接口i的接口带宽,ei为网络接口i的接口丢包率,ui为网络接口i的接口利用率;根据式(2)得到的网络接口i的权值即数据被分配到网络接入通道接口i上进行传输的概率,为下一数据分组选中相应网络接口;通过一个定时器程序检查是否达到权值wi的调整周期,如果达到了调整周期,则按照公式(2)重新设置各接口权值,公式(2)中的各参数由网络接口状态监测线程获得,然后负载均衡算法线程按照各接口权值wi对数据报分组进行分配运算,使分配结果符合权值wi所要求的分布;负载均衡算法线程的输入为数据分配信号,输出为传输通道,网络接口状态监测线程封装了传输设备的驱动接口,通过各物理设备的驱动程序接口,获取丢包率,利用率,带宽等参数,所得数据全部存储在网络接口列表中,网络接口列表是全局数据,每个线程都可以访问;数据调度线程的输入是负载均衡算法线程所计算出的传输通道和IP分组线程处理后的数据报组,通过调用传输设备驱动程序接口,将数据传送到网络中去。当没有数据调度时,数据调度线程可以进入睡眠状态。
2、根据权利要求1所述的基于发送端多接入通道的数据传输加速引擎方法,其特征 在于数据传输加速流程是步骤l,首先获取发送端主机的网络接口列表,选择网络接口列表中的第一个网络接 口作为默认数据发送网络接口,也就是对数据接收方来说,这是惟一可见的网络接口;步骤2,由用户或预设置的模式给多种发送设备分别分配相应的初始权值w,, i为网 络接口号,权值代表数据分配到网络发送设备上的概率;步骤3,运行应用层程序,由应用层程序产生应用层数据,并决定所采用的传输层协 议TCP/UDP;步骤4,传输层长数据段被主机操作系统TCP/IP协议栈分成多个IP数据报文,交付给数据传输加速引擎;步骤5,将IP数据报按IP报头中的标示位进行分组,确保传输层的同一数据段作为 一个整体被分配,成组之后的所有IP报头中的源IP为默认发送网络接口的IP, IP报头 中的其余字段均由主机操作系统的TCP/IP协议栈自行设置,数据传输加速引擎不加修改; 步骤6,将成组后的IP数据报文通过负载均衡模块进行预分配计算; 步骤7,根据式(2)得到的网络接口 !'的权值即数据被分配到网络接入通道接口 i 上进行传输的概率,为下一数据分组选中相应网络接口 ;负载均衡模块周期性地根据式(1 ) 和式(2)动态调整w,.,调整过程如下负载均衡模块读取实时更新的网络接口状态的监 测结果,包括网络接口带宽、丢包率、网络接口利用率,监测结果存储在网络接口列表里, 重新计算并调整相应的权值w,,以便能够及时适应不断变化的网络环境;步骤8,负载均衡模块按照权值w,将成组的IP数据报文分配到网络接口 /上,分配 到网络接口z'的概率为w,.;步骤9,更新包括网络接口列表中的信息,预分配的结果则反馈给数据调度模块; 步骤IO,数据调度模块将成组后的IP数据报文分配到预分配的网络接口上,由网络 接口将数据转化为能在物理传输媒介上传输的电气信号,若在数据调度模块的具体分配过 程中出现错误,则触发一个传输出错中断,负载均衡模块重新分配数据报组; 步骤11,中间路由结点和交换结点将数据传输到接收方的网络接口; 步骤12,接收方网络接口将收到的电气信息还原为数据帧,存放在缓冲区中;步骤13,接收方的主机操作系统TCP/IP协议栈从缓冲区中取出数据,根据IP头字 段的值将数据报进行组合;步骤14,接收方将组合后的IP数据报中的用户数据交付给传输层,由传输层控制协 议对接收到的包进行响应;步骤15,由接收方的应用程序处理接收的应用数据。
全文摘要
一种基于发送端多接入通道的数据传输加速引擎方法,发送端主机将数据包从应用层下来后,经过TCP复用封装,然后交付给主机操作系统的TCP/IP协议栈处理,经IP层形成封装好的IP数据报传输至链路层再至物理层,再经过中间路由到达数据接收方,由接收方进行解复用,其特征在于在IP层与链路层之间设置数据传输加速引擎,首先将IP数据报按IP报头中的标示位将待发送数据进行分组,然后将分组后的报组通过负载均衡模块检测各传输通道的流量负载情况,采用相应的流量分配算法进行预分配计算,将待传输数据流量分配到各个可用传输通道上并行传输,最后通过数据调度模块将预分配的数据报组指定到不同的网络接口设备。
文档编号H04L29/06GK101668005SQ20091003549
公开日2010年3月10日 申请日期2009年9月25日 优先权日2009年9月25日
发明者邵碧锐, 军 陶 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1