著录项信息
专利名称 | 一种提高端到端数据传输速率的方法及系统 |
申请号 | CN200810224416.6 | 申请日期 | 2008-10-14 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | | 公开/公告号 | |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;H;0;4;L;2;9;/;0;6;;;H;0;4;L;1;2;/;5;6查看分类表>
|
申请人 | 暂无 | 申请人地址 | 北京市海淀区颐和园路5号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京大学 | 当前权利人 | 北京大学 |
发明人 | 张进宇 |
代理机构 | 北京路浩知识产权代理有限公司 | 代理人 | 张国良 |
摘要
本发明涉及一种提高端到端数据传输速率的方法及系统。该方法的思路为利用源节点和目的节点之间的多条间接路径和直接路径;在每条路径上创建多个TCP连接,在路径选择过程中,记录所有TCP连接的耗时,关闭连接超时的TCP连接;接收方向所有建立的TCP连接发送探测数据包;中转服务器将收到的探测数据包转给发送方;发送方根据探测包到达的先后顺序决定采用哪些TCP连接并沿探测数据包走过的路径向接收方分块传递文件。该系统包括可用路径获取单元、TCP连接请求单元、可用路径优选单元、探测包发送单元、探测包中转单元及数据发送单元。本发明适用于互联网上端到端的大文件传输,可以有效解决端到端的文件传输速度的提升问题。
1.一种提高端到端数据传输速率的方法,应用于包括中转服务器的覆盖网络中,其特征在于,该方法包括步骤:
获取接收方到发送方之间的直接路径和间接路径;
在每条直接路径和每条间接路径上均发出若干个TCP连接请求;
记录所有TCP连接的耗时,关闭超过设定时间的TCP连接;
接收方通过所有建立的TCP连接向发送方发出探测数据包;
发送方在接收到探测数据包后,沿探测数据包走过的路径开始向接收方分块传递文件;
其中,所述探测数据包由本次数据传递的相关参数构成,所述相关参数包括传递文件的文件名、TCP连接超时所用的设定时间、发送方最终采用路径数目所用的设定路径数和填充数据构成;
并且,所述发送方采用异步socket,在分块传递文件过程中,针对每一直接路径或间接路径所对应的socket,所述发送方跟踪前后数据块发送成功的时间差,在保证总路径数不小于设定最小路径数的条件下,所述发送方关闭花费时间超过设定最大时间值的直接路径或间接路径。
2.如权利要求1所述的提高端到端数据传输速率的方法,其特征在于,该方法中获取接收方到发送方之间的间接路径步骤中,所获取间接路径上的中转服务器数目小于设定值。
3.如权利要求2所述的提高端到端数据传输速率的方法,其特征在于,所述设定值为
2。
4.如权利要求1或2所述的提高端到端数据传输速率的方法,其特征在于,沿探测数据包走过的路径开始向接收方分块传递文件步骤中,最终所采用的路径数目小于设定路径数。
5.如权利要求1或2所述的提高端到端数据传输速率的方法,其特征在于,发送方向接收方分块传递文件过程中,所经过的间接路径上由中转服务器将数据块转发给接收方,所述中转服务器采用异步socket,在转发数据块的过程中,若中转服务器发现本地积累的数据块超过阈值数,则停止读发送方发送过来的数据块。
6.如权利要求1或2所述的提高端到端数据传输速率的方法,其特征在于,所述分块传递文件的数据块为固定长度数据块,依次包括数据块编号、块内偏移和文件数据,接收方依据数据块编号判断最后一个数据块的出现,并依据块内偏移获取接收文件的长度。
7.如权利要求1或2所述的提高端到端数据传输速率的方法,其特征在于,每条直接路径和每条间接路径上发出的TCP连接请求的个数n均为:2≤n≤12。
8.如权利要求6所述的提高端到端数据传输速率的方法,其特征在于,所述数据块中所述数据块编号占用4个字节长度,所述块内偏移占用2个字节长度,所述文件数据占用4K字节长度。
9.一种提高端到端数据传输速率的系统,其特征在于,该系统包括:
可用路径获取单元,用于获取接收方到发送方之间的直接路径和间接路径;
TCP连接请求单元,用于在每条直接路径和每条间接路径上均发出若干个TCP连接请求;
可用路径优选单元,用于记录所有TCP连接的耗时,关闭超过设定时间的TCP连接;
探测包发送单元,由接收方通过所有建立的TCP连接向发送方发出探测数据包;所述探测数据包由本次数据传递的相关参数构成,所述相关参数包括传递文件的文件名、TCP连接超时所用的设定时间、发送方最终采用路径数目所用的设定路径数和填充数据构成;
探测包中转单元,用于在间接路径上通过中转服务器将接收的探测数据包转发到发送方;
数据发送单元,用于在发送方在接收到探测数据包后,采用异步socket沿探测数据包走过的路径开始向接收方分块传递文件;
路径优化单元,用于在分块传递文件过程中,针对每一直接路径或间接路径所对应的socket,跟踪发送方前后数据块发送成功的时间差,在保证总路径数不小于设定最小路径数的条件下,在发送方关闭花费时间超过设定最大时间值的路径。
10.如权利要求9所述的提高端到端数据传输速率的系统,其特征在于,该系统还包括最终采用路径决策单元,用于在发送方开始向接收方分块传递文件后,记录所采用的路径数,当所采用的路径数达到设定路径数时,不再采用后序接收的探测数据包走过的路径来发送数据。
一种提高端到端数据传输速率的方法及系统\n技术领域\n[0001] 本发明涉及计算机网络通信领域,具体涉及一种通过采用多路、多TCP连接来提高端到端数据传输速率的方法及系统。\n背景技术\n[0002] 计算机技术,特别是具备多媒体功能的个人计算机以及互联网的技术发展与应用普及带来了各类“数据密集型应用”,比如:视频的复制和在线播放;大规模Web数据或交易数据库的复制和检索。这类应用的用户的广泛性(包括数量和分布位置)对跨网络的大文件传输速率提出了很高的要求。\n[0003] 从网络接入技术看,虽然100M甚至1000M以太网卡使用已经非常普遍,但用户实际能够获得的传输速度一般要小于这个值。图1给出的是分布在互联网上、跨越3个自治系统的总共15个测量点两两之间的数据传输速率的分布情况,所有测量点的接入带宽均为100Mbit/秒。图中最左边的虚线描述了单个TCP(Transmission Control Protocol)连接所能够获得的传输速度。其中在单个TCP连接中,仅有两方进行彼此通信,该曲线表明:\n在总共210个测量点对中,约200对只能够获得小于20Mbit/秒的速度,占总数的95%。\n[0004] 造成这种现象的原因主要有两点:1)一次跨网络的数据传递中间可能经过多个路由器。只要其中任何一台路由器出现了拥塞,就会影响最终能够获得的端到端的传输速度;2)早期对传输控制协议TCP设计非常强调公平性,从全局看,TCP的拥塞控制策略需要保证在多个TCP连接之间公平地分配可用带宽资源,为此,TCP协议采用了比较保守的拥塞控制策略,最常用的是AIMD(Additive IncreaseMultiplicative Decrease,加法增,乘法减),即在没有发生丢包的情况下,在一个往返时延内,发送方使发送窗口增加一个单位。一旦发生了丢包,发送方使发送窗口减半。因为一次丢包事件可能是偶然产生的,并不意味着一定发生了拥塞,发送窗口减半会影响发送方向网络中注入数据包的速度,因此这样的策略在网络空闲和轻度拥塞的时候不能够充分利用下层网络基础设施提供的通讯带宽。\n[0005] 另外,当今互联网基础通讯设施是高度冗余的,任意两个节点之间往往存在有多条网络路径。与此同时,下层路由协议计算出的网络路径(简称直接路径)往往并不是最优路径。众多的参考文献和实验均表明:无论是从“RTT(Round-Trip Time)往返时延”还是从“可用带宽”两个指标衡量,在当今的互联网上,70%到80%的情况下存在着一条或者多条性能优于直接路径的间接路径。从本世纪初,围绕“覆盖网络”(Overlay Network)开展的各类研究的一个基本出发点就是要利用这些“间接路径”提高互联网通讯的可靠性和性能。覆盖网络的基本技术路线就是:在已有的IP路由基础设施之上布置多台服务器,服务器之间通过交换网络拓扑和负载信息,协同为用户提供间接路由服务。已有的围绕间接路径开展的研究往往强调:当直接路径发生故障的时候,如何从所有可用的间接路径中选出一条最优的路径替换原来的路径,这样提高的数据传输速率是有限的。\n[0006] “并行TCP(Parallel TCP)”已经被证明是一种行之有效的提高端到端数据传输速度的技术手段。并行TCP技术在发送方和接收方之间建立多个TCP连接,发送方分块传递数据,接收方重新组合数据。实验数据和理论分析均表明,在网络空闲和轻度拥塞情况下,并行TCP能够获得的传输速率随TCP连接数线性增长。并行TCP属于应用层的技术,对该技术的应用不需要修改网络层路由协议和传输层的TCP协议,但是单纯的利用并行TCP技术来提高的端到端的数据传输速率是有限的,还有待于进一步提高。\n[0007] 在数据跨网络传输领域,还有另外一类基于对等计算P2P(peer-to-peer)的数据传输技术,比如:Bittorrent,迅雷,网络蚂蚁等。这类技术所要解决的根本问题是提高大文件从一点到多点或者多点到一点的分发速度。其基本的技术路线就是利用网络中已经存在的多个或者部分的文件复本,通过文件分块传输的技术提高文件的复制速度。这类技术的一个基本的特征就是:文件的知名度越高即复本越多,复制的速度就越快。但若在文件开始复制之前,网络种不存在任何复本,该数据传输技术不能提高端到端的数据传输速度,即不能提高点到点的文本复制速度。\n发明内容\n[0008] 本发明的目的是提供一种提高端到端数据传输速率的方法,适用于互联网上端到端的大文件传输,有效解决端到端文件传输速度的提升问题。\n[0009] 为实现上述目的,本发明采用如下技术方案:\n[0010] 一种提高端到端数据传输速率的方法,应用于包括中转服务器的覆盖网络中,该方法包括步骤:\n[0011] 获取接收方到发送方之间的直接路径和间接路径;\n[0012] 在每条直接路径和每条间接路径上均发出若干个TCP连接请求;\n[0013] 记录所有TCP连接的耗时,关闭超过设定时间的TCP连接;\n[0014] 接收方通过所有建立的TCP连接向发送方发出探测数据包;\n[0015] 发送方在接收到探测数据包后,沿探测数据包走过的路径开始向接收方分块传递文件。\n[0016] 其中,该方法中获取接收方到发送方之间的间接路径步骤中,所获取间接路径上的中转服务器数目小于设定值。\n[0017] 其中,所述设定值为2。\n[0018] 其中,沿探测数据包走过的路径开始向接收方分块传递文件步骤中,最终所采用的路径数目小于设定路径数。\n[0019] 其中,所述探测数据包由本次数据传递的相关参数构成,所述相关参数包括传递文件的文件名、TCP连接超时所用的设定时间、发送方最终采用路径数目所用的设定路径数和填充数据构成。\n[0020] 其中,发送方采用异步socket,在分块传递文件过程中,针对每一直接路径或间接路径所对应的socket,发送方跟踪前后数据块发送成功的时间差,在保证总路径数不小于设定最小路径数的条件下,发送方关闭花费时间超过设定最大时间值的直接路径或间接路径。\n[0021] 其中,发送方向接收方分块传递文件过程中,所经过的间接路径上由中转服务器将数据块转发给接收方,所述中转发服务器采用异步socket,在转发数据块的过程中,若中转发服务器发现本地积累的数据块超过阈值数,则停止读发送方发送过来的数据块。\n[0022] 其中,所述数据块为固定长度数据块,依次包括数据块编号、块内偏移和文件数据,接收方依据数据块编号判断最后一个数据块的出现,并依据块内偏移获取接收文件的长度。\n[0023] 其中,每条直接路径和每条间接路径上发出的TCP连接请求的个数n均为:\n2≤n≤12。\n[0024] 其中,所述设定路径数为12,所述设定最小路径数为3。\n[0025] 其中,所述数据块中所述数据块编号占用4个字节长度,所述块内偏移占用2个字节长度,所述文件数据占用4K字节长度。\n[0026] 本发明还提供了一种提高端到端数据传输速率的系统,该系统主要包括:\n[0027] 可用路径获取单元,用于获取接收方到发送方之间的直接路径和间接路径;\n[0028] TCP连接请求单元,用于在每条直接路径和每条间接路径上均发出若干个TCP连接请求;\n[0029] 可用路径优选单元,用于记录所有TCP连接的耗时,关闭超过设定时间的TCP连接;\n[0030] 探测包发送单元,由接收方通过所有建立的TCP连接向发送方发出探测数据包;\n[0031] 探测包中转单元,用于在间接路径上通过中转服务器将接收的探测数据包转发到发送方;\n[0032] 数据发送单元,用于在发送方在接收到探测数据包后,沿探测数据包走过的路径开始向接收方分块传递文件。\n[0033] 其中,该系统还包括最终采用路径决策单元,用于在发送方开始向接收方分块传递文件后,记录所采用的路径数,当所采用的路径数达到设定路径数时,不再采用后序接收的探测数据包走过的路径来发送数据。\n[0034] 其中,该系统还包括最终采用路径优化单元,用于跟踪发送方前后数据块发送成功的时间差,在保证总路径数不小于设定最小路径数的条件下,在发送方关闭花费时间超过设定最大时间值的路径。\n[0035] 将本发明提供的提高端到端数据传输速率的方法及系统应用到互联网中,具有以下有益效果:\n[0036] 1)以“即时探测的方式”找到发送方和接收方之间性能较优的多条路径,有效地避开发生拥塞的路径;\n[0037] 2)结合并行TCP技术,在所有的TCP连接之间分块、并发地传递数据,最终达到了提高数据传输速度的目的;\n[0038] 3)数据块在socket的接收缓存区中的累积最终会导致发送方停止向该路径发送数据块,从而避免中转服务器上可能出现的缓存区无限增长;\n[0039] 4)发送方会跟踪前后数据块发送成功的时间差,对于那些花费较长的路径,在保证总路径数不小于设定最小路径数的条件下,发送方关闭该路径,避免出现较慢的路径拖累整个数据传输过程的情况。\n附图说明\n[0040] 图1为现有技术及本发明方法的传输速率曲线对比图;\n[0041] 图2为本发明实施例中所选择的路径示意图;\n[0042] 图3为本发明实施例中提高端到端数据传输速率的方法流程图。\n具体实施方式\n[0043] 本发明提出的提高端到端数据传输速率的方法及系统,结合附图和实施例说明如下。\n[0044] 本发明中的提高端到端数据传输速率的方法及系统的技术方案,是以现有技术中的以下两点为基础的:\n[0045] 1)互联网基础网络设施是高度冗余的,两台服务器之间存在多条网络路径,而由下层路由协议选择的网络路径往往不是性能最好的路径;\n[0046] 2)并行TCP技术,通过在发送方和接收方之间创建多个TCP逻辑连接,发送方分块传递数据,已经被证明是一种行之有效的提高端到端的数据传输速度的应用层技术。我们现在知道,在网络不拥塞和轻度拥塞的条件下,并行TCP能够获得的传输速度随采用的TCP连接的数目的增加而线性增长。\n[0047] 以上面两点为基础,本发明的基本技术路线就是:首先通过接收方发送探测包探测所有中间节点的方式找到存在于源点和目的节点的多条性能相对较好的间接路径,然后在所有间接路径上创建多个TCP逻辑连接。发送方利用所有TCP逻辑连接分块并行地传递数据从而提高端到端的数据传输速度。\n[0048] 实施例\n[0049] 本发明的基本技术路线是在多条网络路径上应用并发TCP技术。从网络协议栈的定位看,完全可以基于本发明的思路实现一个新的传输层协议,但考虑到实际部署和实现的难度,本实施例采用了在应用层实现该技术。\n[0050] 本发明的基本思路就是利用一个已有的覆盖网络中的服务器作为数据传输的中转服务器,首先以“即时探测的方式”找到发送方和接收方之间性能较优的多条直接路径和间接路径,然后在每条路径上分别采用并行TCP技术。发送方在所有的TCP连接之间分块、并发地传递数据以最终达到提高数据传输速度的目的。因为本发明采用“即时探测”的方式选择路径,为保证其实用性,探测的额外开销必需被控制在很低的范围。这种开销包括时延开销和消息传递开销两个方面。\n[0051] 如图3所示为本实施例提高端到端数据传输速率的方法流程图,该方法包括步骤:\n[0052] s101,获取可用路径,这里所说的可用路径是指接收方到发送方之间的直接路径及间接路径。\n[0053] 如果覆盖网络比较大,所采用的间接路径上的中转服务器有很多且有很多间接路径可用的情况下,可以限定所采用的间接路径上的中转服务器的个数,间接路径上中转服务器的个数超过或等于设定值的间接路径不被采用。\n[0054] 为叙述方便,本实施例假定,网络中存在一个中转服务器集合{N1,N2,...},如图\n2所示,发送方S需要向接收方R传递一个大文件F,定义连接任意两台发送方S和接收方R服务器的网络路径为“直接路径”。经过一台或者多台中转服务器转发的网络路径为“间接路径”。\n[0055] 本实施例中,在间接路径选择环节,所选择的为直接路径和的长度等于2的间接路径,即数据在传递的过程中最多只能够被一台中转服务器转发。这是因为:相关文献和反复实验均表明,如果存在着一条更好的间接路径,在90%的情况下,长度为2的间接最优路径能够获得和长度大于2的间接最优路径等价的性能。对间接路径最大长度的限制极大地简化了路径选择过程。\n[0056] s102,发送建立TCP连接的请求到中转服务器。\n[0057] 在发送方S向接收方R开始传递文件之前,发送方R首先通过上述获取的直接路径和间接路径上均发出多个建立TCP连接的请求。注意:发送方在每条直接路径或间接路径上发出多个TCP连接请求,具体发送多少个请求由发送方R决定,本实施例每条路径的TCP连接请求的个数是相同的,这个数目决定了在随后的文件传递过程中一条路径上并发的TCP连接数的上限,间接路径上R向所有的中转服务器发出TCP连接请求,中转服务器再向发送方发出TCP连接请求。\n[0058] s103,对可用路径进行优化。\n[0059] 具体包括步骤:s103a,发送方R记录所有TCP连接建立的耗时,判断每个TCP连接是否超过设定时间,若是,执行步骤s103b,若否,执行步骤s103c;s103b,关闭该TCP连接,不再考虑通过该路径来接收数据;s103c,继续与该TCP连接路径保持连接,将该路径加入到优化后的路径进行考虑。\n[0060] 本实施中所采用的设定时间为100ms,本发明所采用的设定时间不限于100ms,可以根据实际需要进行设定。\n[0061] 本实施例中在发送TCP连接请求后,发送方S在选择路径的时候,只是根据TCP连接请求到达的先后顺序来决定,发送方S并不区分路径,也并不区分是在和那个中转服务器建立连接,只是判断该连接建立的时间是否超时,如果超时,就不考虑该连接,但还是会考虑同一个间接路径上的其他连接,所以有可能出现的情况就是:同一个直接路径或间接路径上有的TCP连接被采用,有的没有被采用,因为网络背景流量可能影响同一个路径在不同时刻的性能。如图2所示,实箭头表示被采纳的TCP连接,虚箭头表示未被采纳的TCP连接,发送方S选择了经由中转服务器N1、N2的间接路径及接收方R和发送方S之间的直接路径。\n[0062] s104,接收方R在所有成功地建立的TCP连接上发出探测数据包;\n[0063] 该探测数据包由本次数据传递的相关参数构成,本实施例中相关参数包括传递文件的文件名、TCP连接超时所用的设定时间、发送方最终采用的路径数目所用的设定路径数和填充数据构成,本实施例中探测数据包的长度为100K,填充数据就是无用的数据,加入填充数据的目的是要让探测包有足够的长度。这样,根据探测包到达的先后顺序来判断链路的带宽更加准确,理论上,探测包越长,越能够反应链路的带宽。在探测数据包中加入相关参数的目的是:中转服务器需要为不同的发送方和接收方提供中转服务。接收方可以通过设置这些参数来控制发送方的路径选择过程。\n[0064] 间接路径上由中转服务器转发探测数据包到发送方S;中转服务器在收到任何一个探测数据包后,向发送方S发出一个TCP连接请求,然后将该长度为100K的探测数据包转发给发送方。\n[0065] s105,发送方S根据探测数据包到达的先后顺序再次进行路径优化后,选择性能好的路径分块传输文件,通过中转服务器将数据块转发给接收方R。\n[0066] 发送方S根据探测数据包到达的先后顺序判定该探测数据包走过的路径的性能:\n到达越早的包走过的路径的性能越好。具体包括步骤:s105a,一旦有探测数据包到达S,S可以立即开始对文件F的分块传递,具体是沿该探测包走过的路径传递;s105b,记录分块传递文件所采用的路径数,随着所采用路径数的增加,判断分块传递文件所采用的路径数是否达到设定路径数,若否,执行步骤s105c,若是,执行步骤s105d;s105c,按接收数据包的先后顺序继续增加所采用的路径,并返回执行步骤s105b;s105d,维持设定路径数,不再考虑采用后序探测数据包走的路径来传递文件;步骤s105e,根据最终所采用的路径,沿探测数据包走过的路径向接收方分块传递文件。\n[0067] 本实施例中,发送方S总共采用的路径数可以由接收方R配置并通过探测数据包传递给发送方S,该设定路径数一般不超过12。图2给出了以上描述的路径选择过程的示例。注意:图中所有的间接路径的长度不超过2。\n[0068] 本实施例中的接收方R、中转服务器和发送方S都采用异步套接字socket,异步socket也叫做非阻塞socket,和阻塞socket相对。对阻塞socket而言,如果程序在读取该socket的时候,还没有数据到达,程序会被阻塞,一直等到有数据到达。如果一个程序中采用了多个阻塞的socket,那么就可能出现互相影响的情况。本发明中,发送方S就需要管理多个socket。另外一种解决方式就是采用多个线程,一个线程管理一个阻塞socket,但是这样一来,线程的调度就变得非常复杂。非阻塞socket的工作方式则不同,如果程序在读取一个socket的时候还没有数据到达,读取操作立刻返回。程序采用单线程轮询的方式,一旦有socket可读或者可写就立即执行该操作。非阻塞socket特别适合于网络读取操作负载较重的应用,比如本发明面向的大文件传输。如果是CPU繁忙的多任务应用则应该采用多线程加阻塞socket的方式。采用异步socket的程序一般以单线程的方式维护多个异步socket,系统通过轮询的方式决定对那个socket进行读或写。当有数据到达socket的接收缓冲区的时候,该socket可读;当socket的发送缓冲区空闲,该socket可写。\n[0069] 发送方S通过采用了异步socket,在分块传递文件F的过程中,针对每一路径所对应的socket,发送方S会跟踪前后数据块发送成功的时间差,对于那些花费时间超过设定最大时间值的路径,为了避免出现较慢的路径拖累整个数据传输过程的情况,在保证总路径数不小于设定最小路径数3的条件下,发送方S关闭该路径,不再继续采用该路径传递数据。本实施例中最大时间值设为1s。\n[0070] 中转服务器同样采用异步socket。在转发数据块的过程中,如果中间转发服务器发现本地积累的数据块超过设定阈值数(如果上游路径性能优于下游路径就会发生这种情况),中间转发服务器会停止读发送方S发送过来的数据块,数据块在socket的接收缓从区中的累积最终会导致S停止向该路径发送数据块。从而避免中转服务器上可能出现的缓充区无限增长。\n[0071] 对接收方R而言,采用异步socket的好处就是可以运行在单线程方式下。由一个线程控制多个socket,哪个socket有数据到达就先读取该socket并立刻写入本地文件。\n[0072] 本实施例中,发送方分块传输的数据块格式介绍如下:数据块为固定长度数据块,依次包括数据块编号、块内偏移和文件数据。数据块最前面是一个4个字节的、取值范围从\n0到232-1数据块编号。数据块编号后面紧跟一个2字节的块内偏移。块内偏移的设置主要是为了能够让接收方在事先不知道待传文件长度的情况下判断最后一个数据块的出现,并依据数据块编号计算出文件的长度。本实施例中文件被划分为长度固定为4K字节的数据块,除了最后一个数据块,其他所有数据块的块内偏移都是4K,块内偏移后即为文件的实际内容。最后一个数据块如果长度不足4K,发送方则填充以上述填充数据。\n[0073] 因为本发明基于的TCP协议是面向连接的,所以数据块不需要记录路径信息,他们只需要按照事先建立的TCP连接进行传递。同样因为TCP协议是面向字节流的,中转服务器只有在接收到一个完整的数据块之后才能对该数据块进行转发。本发明采用4K作为数据块的文件数据长度是一个综合考量的结果:太短的数据块会使得被传送的数据中包含太多的数据块编号,浪费网络带宽。太长的数据块不利于发送方的通讯调度。发送方是以数据块为基本单位进行数据块的传递调度的。如果数据块太长,就有可能出现一条慢的路径花费很长的时间传递一个分配的数据块从而拖累整个文件传递的过程。\n[0074] 本发明提供的提高端到端数据传输速率的系统包括:\n[0075] 可用路径获取单元,用于获取接收方到发送方之间的直接路径和间接路径;\n[0076] TCP连接请求单元,用于在每条直接路径和每条间接路径上均发出若干个TCP连接请求;\n[0077] 可用路径优选单元,用于记录所有TCP连接的耗时,关闭超过设定时间的TCP连接;\n[0078] 探测包发送单元,由接收方通过所有建立的TCP连接向发送方发出探测数据包;\n[0079] 探测包中转单元,用于在间接路径上通过中转服务器将接收的探测数据包转发到发送方;\n[0080] 数据发送单元,用于在发送方在接收到探测数据包后,沿探测数据包走过的路径开始向接收方分块传递文件。\n[0081] 最终采用路径决策单元,用于在发送方开始向接收方分块传递文件后,记录所采用的路径数,当所采用的路径数达到设定路径数时,不再采用后序接收的探测数据包走过的路径来发送数据。\n[0082] 最终采用路径优化单元,用于跟踪发送方前后数据块发送成功的时间差,在保证总路径数不小于设定最小路径数的条件下,在发送方关闭花费时间超过设定最大时间值的路径。\n[0083] 本发明是一种应用层的数据传输技术。在发送方,接收方和中转服务器上都需要运行专门开发的应用程序。可以采用任何支持TCP协议的语言开发程序。\n[0084] 由文件接收方服务器以请求文件传递的方式发起一次路径探测。接收方服务器事先知道:所有可用的中转服务器的IP地址,发送方服务器IP地址。文件接收方在发出的探测包中也给出一些微调参数,比如:TCP连接超时时间;文件分块长度等。\n[0085] 在中转服务器上运行守护进程:接收、转发探测数据包;接收、转发文件数据包;\n监控文件数据包排队长度,如果长度超过一定值即停止读取新的数据包。\n[0086] 发送方服务器上运行守护进程:该进程接收探测数据包,选择多条可用路径;拆分文件,分块传输;在同一条路径上跟踪前后两个数据块成功传递的时间差值,关闭耗时较长的路径。\n[0087] 本发明特别适合那些在互联网上拥有为数众多的服务器的CDN运营,ISP或者大的IT公司。本发明可以被这些公司用来加快服务器之间的大文件传输速度,对数据传输速率的提升却非常明显。图1中最右边的曲线给出的是本实施例在采用12条路径的情况下对端到端文件传输速度的提升情况。在总共210对样本服务器对中,大约有30%的服务器对之间获得了大于80Mbit/秒的传输速度。多余80%的服务器对之间获得了大于30Mbit/秒的传输速度。跟图中最左边的曲线代表的直接路径相比,本发明对端端到端速度的提升是很明显的。附图一中中间的那条曲线描述的是在直接路径上应用并行TCP技术能够获得的数据传输速度。\n[0088] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
法律信息
- 2015-12-09
未缴年费专利权终止
IPC(主分类): H04L 29/08
专利号: ZL 200810224416.6
申请日: 2008.10.14
授权公告日: 2012.07.18
- 2012-07-18
- 2010-08-11
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 200810224416.6
申请日: 2008.10.14
- 2010-06-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-07-11
|
2006-12-28
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |