著录项信息
专利名称 | 互联网大文件的快速传输方法 |
申请号 | CN200910063376.6 | 申请日期 | 2009-07-29 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-12-30 | 公开/公告号 | CN101616077 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/56 | IPC分类号 | H;0;4;L;1;2;/;5;6;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 武汉大学 | 申请人地址 | 湖北省武汉市武昌珞珈山
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 武汉大学 | 当前权利人 | 武汉大学 |
发明人 | 艾浩军;陈文琴;李晓波;王恒 |
代理机构 | 武汉华旭知识产权事务所 | 代理人 | 周宗贵 |
摘要
本发明涉及网络通信技术领域,尤其涉及一种互联网大文件的快速传输方法。本发明在服务器与客户端通过TCP协议进行连接,通过UDP协议进行大数据文件传输,在传输过程中,采用网络流量和拥塞控制机制,自适应调整数据块大小和数据块传输间隔,实现传输过程中的吞吐量最大化,最后采取丢包重传机制对传输过程中丢失的数据包进行重传。本发明具备灵活运用TCP协议的可靠性与UDP协议的快速性,显著提高有限带宽环境下大文件传输速度的特点。
互联网大文件的快速传输方法\n技术领域\n[0001] 本发明涉及网络通信技术领域,尤其涉及一种互联网大文件的快速传输方法。\n背景技术\n[0002] 随着互联网的迅猛发展,当前网络应用中多媒体数据的传输共享需求越来越大,各种文件数据必须能够快速实现网络共享,而多媒体数据通常数据量大,尤其是随着用户对视频清晰度要求的不断提高,视频文件数据量急剧增加,使得有效的实现大文件传输服务的需求更加迫切。\n[0003] 传统的互联网文件传输服务中的数据传输在应用层有多种形式,如FTP,HTTP等,但是在传输层一般使用TCP协议,而TCP协议为一种可靠连接,为了保证零丢包付出的代价是传输效率的下降;由于网络拥塞和流量控制没有进行优化,导致丢包后加重了重传的负荷,不仅加剧了网络拥塞也降低了传输速度;基于TCP的数据传输,会给终端带来相当大的系统开销。\n[0004] 尽管目前存在一些技术对传统的FTP服务进行改善,有些集中在应用层方面,例如友好的用户界面、增加书签、命令历史记录和目录下载等;有些改进是在传输性能方面,例如Web100项目主要对TCP的性能进行优化,在传输端和接收端都增加了性能诊断功能,能在网络传输的任何时刻做出调整;而Grid FTP项目的主要目的是为高带宽的广域网上实现高效、安全和可靠的数据传输协议,是现有的FTP标准的一个子集,加入了对TCP缓冲区和TCP窗等细节上的改进。\n[0005] 然而对于互联网中快速增加的大量的多媒体数据,如何在带宽一定的情况下,合理的、有效的、最大限度的利用有限带宽提高大文件传输共享速度是当前亟待解决的问题之一。\n发明内容\n[0006] 本发明的目的是提供一种互联网大文件的快速传输方法,在现有带宽有限的互联网络环境下,充分利用网络、服务器与客户端的资源,快速传输共享大文件数据。\n[0007] 为达到上述目的,本发明采用如下的技术方案:\n[0008] 互联网大文件的快速传输方法,包括以下步骤:\n[0009] ①服务器开始提供服务后,客户端使用TCP协议与服务器进行网络连接,同时客户端将用户设置的初始参数通知服务器;\n[0010] ②计算客户端与服务器之间的往返时延RTT,探测网络状况,服务器根据往返时延RTT调整数据块大小和数据块延时,并通知客户端;\n[0011] ③服务器根据网络状况和预设参数确定文件传输相关初始设置后,建立UDP连接,随机分配UDP端口,并通知客户端,客户端随即建立UDP连接,并与服务器建立数据传输通道;\n[0012] ④数据传输过程中,采用自适应的网络流量和拥塞控制机制,保证数据块大小自适应和数据块延时自适应,实现传输过程中的吞吐量最大化;\n[0013] ⑤数据传输过程中,采用丢包重传机制对传输过程中丢失的数据包和CRC错误的数据包进行重传,直到客户端接收了待传输文件数据的全部数据包为止。\n[0014] 步骤①中所述初始参数包括Alpha、分析窗大小、初始数据块大小、是否数据块自适应调整、数据包大小和是否指定接收端口。\n[0015] 步骤④中服务器在数据传输初期,为了避免网络阻塞,采取TCP慢启动方式,并设置慢启动门限。\n[0016] 步骤④中所述数据块大小自适应,采用指数递增/递减方式或者线性递增/递减方式,所述数据块延时自适应,依赖数据接收成功率,所述数据块大小自适应和所述数据块延时自适应采用组合应用方式。\n[0017] 步骤⑤中所述丢包重传机制是在所有文件数据发送一遍之后再对丢失的数据进行丢包重传。\n[0018] 本发明具有以下优点和积极效果:\n[0019] 1)灵活运用TCP协议的可靠性与UDP协议的快速性;\n[0020] 2)能够大幅度提高有限带宽环境下大文件的传输速度。\n附图说明\n[0021] 图1是本发明提供的互联网大文件的快速传输方法的传输过程示意图。\n[0022] 图2是本发明数据分析窗示意图。\n[0023] 图3是本发明数据块大小自适应调整方法流程图。\n[0024] 图4是本发明丢包重传示意图。\n[0025] 图5是本发明重传数据包重新组装示意图。\n[0026] 其中,\n[0027] 11-服务器端文件系统、12-服务器、13-客户端、14-用户、15-客户端文件系统、\n16-TCP连接、17-UDP连接;21-数据块尺寸、22-数据包、23-数据块延时;41-丢失数据包序号。\n具体实施方式\n[0028] 下面以具体实施例结合附图对本发明作进一步说明:\n[0029] 本发明提供的互联网大文件的快速传输方法具体采用如下的技术方案,下面结合图1首先对本发明的工作机制进行详细描述。\n[0030] 服务器端文件系统11为服务器12端的文件系统,服务器端文件系统15为客户端\n13端的文件系统,客户端13提供了用户接口以方便和用户交互,服务器12和客户端13通过发出特定的控制命令建立TCP连接16,进一步在数据传输过程中建立UDP连接。\n[0031] 本发明与传统的FTP工作机制上不同,即FTP在控制命令和数据传输两个端口上都使用TCP协议进行传输,而本方法中,控制命令使用TCP协议传输,大量的文件数据使用UDP协议传输,从而大幅度提高了传输速度,减少传统方法中因使用TCP协议传输大量文件数据而产生的庞大的网络和系统资源开销。\n[0032] 本发明提供的互联网大文件的快速传输方法可以适用于Internet/LAN/WAN/WLAN等多种网络;具体实施时,只需网络遵循TCP/IP协议,可以使用TCP和UDP发送和接收数据,无需担心异构网络所造成的障碍。\n[0033] 本发明提供的互联网大文件的快速传输方法,具体采用如下步骤:\n[0034] ①服务器开始提供服务后,客户端使用TCP协议与服务器进行网络连接,同时客户端将用户设置的初始参数通知服务器;\n[0035] 客户端向服务器请求共享目录路径和该目录信息,其中包括所有文件名和文件大小。服务器收到请求后处理请求,并将相应信息发送给客户端;\n[0036] 客户端与服务器的连接采用TCP协议,在传输文件数据前,客户端将用户设置的初始参数通知服务器,这些初始参数包括Alpha、分析窗大小、初始数据块大小、是否数据块自适应调整、数据包大小和是否指定接收端口等。\n[0037] 下面对上述涉及的一些概念进行简要介绍:所谓Alpha值为用户预设数据接收率;所谓分析窗(analysis window)是指客户端接收的特定长度的一段数据,分析这些数据可以得出表征当前传输情况的各种参数值,如数据包接收率、数据块大小、数据块延时和数据包大小等;所谓数据块大小(block size)是指一次发送的数据包(packet)数量;所谓包大小(packet size)是指每次发送的字节数,不超过MTU的大小,一旦确定后,传输过程中不再变化。\n[0038] 作为本发明的一个实施例,可以作如下的取值:Alpha值可设为0.96、分析窗可设为200、初始数据块大小可设为8、包大小可设为1472、可指定接收端口为4096,数据块大小和数据块延时在传输过程中自动调整以适应网络状况变化。\n[0039] ②计算客户端与服务器之间的往返时延RTT,探测网络状况,服务器根据往返时延RTT调整数据块大小和数据块延时,并通知客户端;\n[0040] 所谓的往返时延RTT是指客户端发送计算RTT命令的同时开始计时,直到收到服务器立即产生对该命令的响应。因此,根据RTT即可了解服务器与客户端之间的大致网络状况。\n[0041] ③服务器根据网络状况和预设参数确定文件传输相关初始设置后,建立UDP连接,随机分配UDP端口,并通知客户端,客户端随即建立UDP连接,并与服务器建立数据传输通道;\n[0042] 服务器与客户端使用UDP协议进行数据传输,充分发挥UDP的快速传输优势,传输过程中若存在数据包丢失的情况,客户端将丢失数据包的编号发给服务器,但服务器并不立即对其进行重传。\n[0043] ④数据传输过程中,采用自适应的网络流量和拥塞控制机制,保证数据块大小自适应和数据块延时自适应,实现传输过程中的吞吐量最大化;\n[0044] 服务器在数据传输初期,为了避免网络阻塞,采取了TCP类似的慢启动方式,并设置了慢启动门限。由于客户端预设了分析窗大小,在分析窗内可以得出数据块大小、数据块延时的时间长短和数据包接收率,并将这些分析得出的参数反馈给服务器,服务器根据拥塞控制与流量控制机制对发送速度和发送间隔进行相应的调整,保证得到最大的吞吐量。\n[0045] 数据块大小自适应策略,可以采用指数递增/递减方式或者线性递增/递减方式,数据块延时自适应,依赖数据接收成功率;数据块大小自适应和所述数据块延时自适应这两种策略采用组合应用方式。\n[0046] 图2所示为数据分析窗示意图,当分析窗为200时,客户端每收到200个数据包后,就对这一段数据进行分析,在分析窗内可以得出数据块尺寸21大小、数据块延时的时间23长短和数据包22接收率,并将这些分析得出的参数反馈给服务器,服务器根据本发明的拥塞控制与流量控制方法对发送速度和发送间隔进行相应的调整,保证得到最大的吞吐量。\n[0047] 图3所示为数据块大小自适应调整方法流程图,其中oldRate为上一次数据包接收率;newRate为当前数据包接收率;ssthresh为慢启动门限,本发明的一个实施例可取慢启动门限为2048。数据块大小自适应调整方法描述如下:\n[0048] 如果数据包接受率(newRate)大于用户预设数据接收率Alpha,且数据块大小(blocksize)在慢启动门限(ssthresh)之下,而且当前数据包接受率(newRate)大于上一次数据包接受率(oldRate),则数据块大小依照式1指数增加(increase exponentially)。\n[0049] blocksizei=φi×blocksize0,i=1,2,... (式1)\n[0050] 其中,φ=2。\n[0051] 如果数据块大小低于慢启动门限,但是当前数据包接受率降至上一次数据包接受率之下,则数据块大小依照式2线性减少(decrease linearly)。\n[0052] blocksizei=blocksize0-λi,i=1,2,... (式2)\n[0053] 其中,λ=1。\n[0054] 如果数据块大小高于慢启动门限,同时当前数据包接受率高于上一次数据包接受率,则数据块大小依照式3线性增加(increase linearly)。\n[0055] blocksizei=blocksize0+λi,i=1,2,... (式3)\n[0056] 其中,λ=1。\n[0057] 反之当数据块大小高于慢启动门限但当前数据包接受率低于上一次数据包接受率,则数据块大小依照式2线性减少;\n[0058] 其他情况下,数据块大小依照式4指数减少(decrease exponentially)。\n[0059] blocksizei=φ-1×blocksize0,i=1,2,... (式4)\n[0060] 其中φ=2。\n[0061] 数据块延时自适应调整方法如式5、式6所示:\n[0062] (式5)\n[0063] (式6)\n[0064] 例如,由式5得,发送110个数据包,接收到100个数据包,下一次数据块延时Delayi+1为上一次延时Delayi的1.1×α倍,其中α通过公式6进行不断的平滑调整,β为0~1之间的常数,例如,设β为0.7时,α将会减小为上一次的0.94倍。\n[0065] 在某些情况下,数据块大小自适应模式和数据块延时自适应模式可相互切换。例如,如果当前是数据块大小自适应模式,而且数据块已经小到无法进一步减少,数据块大小自适应模式将自动切换为数据块延时自适应模式。\n[0066] ⑤数据传输过程中,采用丢包重传机制对传输过程中丢失的数据包和CRC错误的数据包进行重传,直到客户端接收了待传输文件数据的全部数据包为止;\n[0067] 丢包重传机制是将待传输的文件数据按照UDP协议分割成数据包大小的包,每个包都依次编号,第一次将这些包依次发送一遍,客户端在接收过程中,把传输过程中丢失的数据包和CRC错误的数据包的编号记录下来,要求服务器将这些丢失的包重新发送。如此循环,直到客户端接收了待传输文件数据的全部数据包,\n[0068] 图4所示为丢包重传示意图,当客户端发现丢包时,不需要立即要求服务器重新发送该数据包,而是将丢失数据包的序号41记录下来,当服务器将所有数据包依次发送一遍后,客户端将丢失数据包的序号41通知服务器要求重发,如此循环,如图5重传数据包重新组装示意图所示,直到客户端接收完所有数据包后,再将各数据重装到文件相应的位置。
法律信息
- 2018-08-17
未缴年费专利权终止
IPC(主分类): H04L 12/56
专利号: ZL 200910063376.6
申请日: 2009.07.29
授权公告日: 2011.10.05
- 2011-10-05
- 2010-02-24
- 2009-12-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2013-05-27 | 2013-05-27 | | |
2 | | 2013-05-27 | 2013-05-27 | | |