CN101616077B - 互联网大文件的快速传输方法 - Google Patents

互联网大文件的快速传输方法 Download PDF

Info

Publication number
CN101616077B
CN101616077B CN2009100633766A CN200910063376A CN101616077B CN 101616077 B CN101616077 B CN 101616077B CN 2009100633766 A CN2009100633766 A CN 2009100633766A CN 200910063376 A CN200910063376 A CN 200910063376A CN 101616077 B CN101616077 B CN 101616077B
Authority
CN
China
Prior art keywords
data
data block
transmission
block size
packet
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
Application number
CN2009100633766A
Other languages
English (en)
Other versions
CN101616077A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN2009100633766A priority Critical patent/CN101616077B/zh
Publication of CN101616077A publication Critical patent/CN101616077A/zh
Application granted granted Critical
Publication of CN101616077B publication Critical patent/CN101616077B/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协议进行连接,通过UDP协议进行大数据文件传输,在传输过程中,采用网络流量和拥塞控制机制,自适应调整数据块大小和数据块传输间隔,实现传输过程中的吞吐量最大化,最后采取丢包重传机制对传输过程中丢失的数据包进行重传。本发明具备灵活运用TCP协议的可靠性与UDP协议的快速性,显著提高有限带宽环境下大文件传输速度的特点。

Description

互联网大文件的快速传输方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种互联网大文件的快速传输方法。
背景技术
随着互联网的迅猛发展,当前网络应用中多媒体数据的传输共享需求越来越大,各种文件数据必须能够快速实现网络共享,而多媒体数据通常数据量大,尤其是随着用户对视频清晰度要求的不断提高,视频文件数据量急剧增加,使得有效的实现大文件传输服务的需求更加迫切。
传统的互联网文件传输服务中的数据传输在应用层有多种形式,如FTP,HTTP等,但是在传输层一般使用TCP协议,而TCP协议为一种可靠连接,为了保证零丢包付出的代价是传输效率的下降;由于网络拥塞和流量控制没有进行优化,导致丢包后加重了重传的负荷,不仅加剧了网络拥塞也降低了传输速度;基于TCP的数据传输,会给终端带来相当大的***开销。
尽管目前存在一些技术对传统的FTP服务进行改善,有些集中在应用层方面,例如友好的用户界面、增加书签、命令历史记录和目录下载等;有些改进是在传输性能方面,例如Web100项目主要对TCP的性能进行优化,在传输端和接收端都增加了性能诊断功能,能在网络传输的任何时刻做出调整;而Grid FTP项目的主要目的是为高带宽的广域网上实现高效、安全和可靠的数据传输协议,是现有的FTP标准的一个子集,加入了对TCP缓冲区和TCP窗等细节上的改进。
然而对于互联网中快速增加的大量的多媒体数据,如何在带宽一定的情况下,合理的、有效的、最大限度的利用有限带宽提高大文件传输共享速度是当前亟待解决的问题之一。
发明内容
本发明的目的是提供一种互联网大文件的快速传输方法,在现有带宽有限的互联网络环境下,充分利用网络、服务器与客户端的资源,快速传输共享大文件数据。
为达到上述目的,本发明采用如下的技术方案:
互联网大文件的快速传输方法,包括以下步骤:
①服务器开始提供服务后,客户端使用TCP协议与服务器进行网络连接,同时客户端将用户设置的初始参数通知服务器;
②计算客户端与服务器之间的往返时延RTT,探测网络状况,服务器根据往返时延RTT调整数据块大小和数据块延时,并通知客户端;
③服务器根据网络状况和预设参数确定文件传输相关初始设置后,建立UDP连接,随机分配UDP端口,并通知客户端,客户端随即建立UDP连接,并与服务器建立数据传输通道;
④数据传输过程中,采用自适应的网络流量和拥塞控制机制,保证数据块大小自适应和数据块延时自适应,实现传输过程中的吞吐量最大化;
⑤数据传输过程中,采用丢包重传机制对传输过程中丢失的数据包和CRC错误的数据包进行重传,直到客户端接收了待传输文件数据的全部数据包为止。
步骤①中所述初始参数包括Alpha、分析窗大小、初始数据块大小、是否数据块自适应调整、数据包大小和是否指定接收端口。
步骤④中服务器在数据传输初期,为了避免网络阻塞,采取TCP慢启动方式,并设置慢启动门限。
步骤④中所述数据块大小自适应,采用指数递增/递减方式或者线性递增/递减方式,所述数据块延时自适应,依赖数据接收成功率,所述数据块大小自适应和所述数据块延时自适应采用组合应用方式。
步骤⑤中所述丢包重传机制是在所有文件数据发送一遍之后再对丢失的数据进行丢包重传。
本发明具有以下优点和积极效果:
1)灵活运用TCP协议的可靠性与UDP协议的快速性;
2)能够大幅度提高有限带宽环境下大文件的传输速度。
附图说明
图1是本发明提供的互联网大文件的快速传输方法的传输过程示意图。
图2是本发明数据分析窗示意图。
图3是本发明数据块大小自适应调整方法流程图。
图4是本发明丢包重传示意图。
图5是本发明重传数据包重新组装示意图。
其中,
11-服务器端文件***、12-服务器、13-客户端、14-用户、15-客户端文件***、16-TCP连接、17-UDP连接;21-数据块尺寸、22-数据包、23-数据块延时;41-丢失数据包序号。
具体实施方式
下面以具体实施例结合附图对本发明作进一步说明:
本发明提供的互联网大文件的快速传输方法具体采用如下的技术方案,下面结合图1首先对本发明的工作机制进行详细描述。
服务器端文件***11为服务器12端的文件***,服务器端文件***15为客户端13端的文件***,客户端13提供了用户接口以方便和用户交互,服务器12和客户端13通过发出特定的控制命令建立TCP连接16,进一步在数据传输过程中建立UDP连接。
本发明与传统的FTP工作机制上不同,即FTP在控制命令和数据传输两个端口上都使用TCP协议进行传输,而本方法中,控制命令使用TCP协议传输,大量的文件数据使用UDP协议传输,从而大幅度提高了传输速度,减少传统方法中因使用TCP协议传输大量文件数据而产生的庞大的网络和***资源开销。
本发明提供的互联网大文件的快速传输方法可以适用于Internet/LAN/WAN/WLAN等多种网络;具体实施时,只需网络遵循TCP/IP协议,可以使用TCP和UDP发送和接收数据,无需担心异构网络所造成的障碍。
本发明提供的互联网大文件的快速传输方法,具体采用如下步骤:
①服务器开始提供服务后,客户端使用TCP协议与服务器进行网络连接,同时客户端将用户设置的初始参数通知服务器;
客户端向服务器请求共享目录路径和该目录信息,其中包括所有文件名和文件大小。服务器收到请求后处理请求,并将相应信息发送给客户端;
客户端与服务器的连接采用TCP协议,在传输文件数据前,客户端将用户设置的初始参数通知服务器,这些初始参数包括Alpha、分析窗大小、初始数据块大小、是否数据块自适应调整、数据包大小和是否指定接收端口等。
下面对上述涉及的一些概念进行简要介绍:所谓Alpha值为用户预设数据接收率;所谓分析窗(analysis window)是指客户端接收的特定长度的一段数据,分析这些数据可以得出表征当前传输情况的各种参数值,如数据包接收率、数据块大小、数据块延时和数据包大小等;所谓数据块大小(block size)是指一次发送的数据包(packet)数量;所谓包大小(packet size)是指每次发送的字节数,不超过MTU的大小,一旦确定后,传输过程中不再变化。
作为本发明的一个实施例,可以作如下的取值:Alpha值可设为0.96、分析窗可设为200、初始数据块大小可设为8、包大小可设为1472、可指定接收端口为4096,数据块大小和数据块延时在传输过程中自动调整以适应网络状况变化。
②计算客户端与服务器之间的往返时延RTT,探测网络状况,服务器根据往返时延RTT调整数据块大小和数据块延时,并通知客户端;
所谓的往返时延RTT是指客户端发送计算RTT命令的同时开始计时,直到收到服务器立即产生对该命令的响应。因此,根据RTT即可了解服务器与客户端之间的大致网络状况。
③服务器根据网络状况和预设参数确定文件传输相关初始设置后,建立UDP连接,随机分配UDP端口,并通知客户端,客户端随即建立UDP连接,并与服务器建立数据传输通道;
服务器与客户端使用UDP协议进行数据传输,充分发挥UDP的快速传输优势,传输过程中若存在数据包丢失的情况,客户端将丢失数据包的编号发给服务器,但服务器并不立即对其进行重传。
④数据传输过程中,采用自适应的网络流量和拥塞控制机制,保证数据块大小自适应和数据块延时自适应,实现传输过程中的吞吐量最大化;
服务器在数据传输初期,为了避免网络阻塞,采取了TCP类似的慢启动方式,并设置了慢启动门限。由于客户端预设了分析窗大小,在分析窗内可以得出数据块大小、数据块延时的时间长短和数据包接收率,并将这些分析得出的参数反馈给服务器,服务器根据拥塞控制与流量控制机制对发送速度和发送间隔进行相应的调整,保证得到最大的吞吐量。
数据块大小自适应策略,可以采用指数递增/递减方式或者线性递增/递减方式,数据块延时自适应,依赖数据接收成功率;数据块大小自适应和所述数据块延时自适应这两种策略采用组合应用方式。
图2所示为数据分析窗示意图,当分析窗为200时,客户端每收到200个数据包后,就对这一段数据进行分析,在分析窗内可以得出数据块尺寸21大小、数据块延时的时间23长短和数据包22接收率,并将这些分析得出的参数反馈给服务器,服务器根据本发明的拥塞控制与流量控制方法对发送速度和发送间隔进行相应的调整,保证得到最大的吞吐量。
图3所示为数据块大小自适应调整方法流程图,其中oldRate为上一次数据包接收率;newRate为当前数据包接收率;ssthresh为慢启动门限,本发明的一个实施例可取慢启动门限为2048。数据块大小自适应调整方法描述如下:
如果数据包接受率(newRate)大于用户预设数据接收率Alpha,且数据块大小(blocksize)在慢启动门限(ssthresh)之下,而且当前数据包接受率(newRate)大于上一次数据包接受率(oldRate),则数据块大小依照式1指数增加(increase exponentially)。
blocksizei=φi×blocksize0,i=1,2,...  (式1)
其中,φ=2。
如果数据块大小低于慢启动门限,但是当前数据包接受率降至上一次数据包接受率之下,则数据块大小依照式2线性减少(decrease linearly)。
blocksizei=blocksize0-λi,i=1,2,...   (式2)
其中,λ=1。
如果数据块大小高于慢启动门限,同时当前数据包接受率高于上一次数据包接受率,则数据块大小依照式3线性增加(increase linearly)。
blocksizei=blocksize0+λi,i=1,2,...    (式3)
其中,λ=1。
反之当数据块大小高于慢启动门限但当前数据包接受率低于上一次数据包接受率,则数据块大小依照式2线性减少;
其他情况下,数据块大小依照式4指数减少(decrease exponentially)。
blocksizei=φ-1×blocksize0,i=1,2,...     (式4)
其中φ=2。
数据块延时自适应调整方法如式5、式6所示:
Figure G2009100633766D00051
(式5)
Figure G2009100633766D00052
(式6)
例如,由式5得,发送110个数据包,接收到100个数据包,下一次数据块延时Delayi+1为上一次延时Delayi的1.1×α倍,其中α通过公式6进行不断的平滑调整,β为0~1之间的常数,例如,设β为0.7时,α将会减小为上一次的0.94倍。
在某些情况下,数据块大小自适应模式和数据块延时自适应模式可相互切换。例如,如果当前是数据块大小自适应模式,而且数据块已经小到无法进一步减少,数据块大小自适应模式将自动切换为数据块延时自适应模式。
⑤数据传输过程中,采用丢包重传机制对传输过程中丢失的数据包和CRC错误的数据包进行重传,直到客户端接收了待传输文件数据的全部数据包为止;
丢包重传机制是将待传输的文件数据按照UDP协议分割成数据包大小的包,每个包都依次编号,第一次将这些包依次发送一遍,客户端在接收过程中,把传输过程中丢失的数据包和CRC错误的数据包的编号记录下来,要求服务器将这些丢失的包重新发送。如此循环,直到客户端接收了待传输文件数据的全部数据包,
图4所示为丢包重传示意图,当客户端发现丢包时,不需要立即要求服务器重新发送该数据包,而是将丢失数据包的序号41记录下来,当服务器将所有数据包依次发送一遍后,客户端将丢失数据包的序号41通知服务器要求重发,如此循环,如图5重传数据包重新组装示意图所示,直到客户端接收完所有数据包后,再将各数据重装到文件相应的位置。

Claims (2)

1.一种互联网大文件的快速传输方法,其特征在于,包括以下步骤:
①服务器开始提供服务后,客户端使用TCP协议与服务器进行网络连接,同时客户端将用户设置的初始参数通知服务器;
②计算客户端与服务器之间的往返时延RTT,探测网络状况,服务器根据往返时延RTT调整数据块大小和数据块延时,并通知客户端;
③服务器根据网络状况和预设参数确定文件传输相关初始设置后,建立UDP连接,随机分配UDP端口,并通知客户端,客户端随即建立UDP连接,并与服务器建立数据传输通道;
④数据传输过程中,采用自适应的网络流量和拥塞控制机制,保证数据块大小自适应和数据块延时自适应,实现传输过程中的吞吐量最大化;
⑤数据传输过程中,采用丢包重传机制对传输过程中丢失的数据包和CRC错误的数据包进行重传,直到客户端接收了待传输文件数据的全部数据包为止;
步骤①中所述初始参数包括Alpha、分析窗大小、初始数据块大小、是否数据块自适应调整、数据包大小和是否指定接收端口;所述Alpha值为用户预设数据接收率;所述分析窗是指客户端接收的特定长度的一段数据,分析这些数据以得出表征当前传输情况的各种参数值;
步骤④中服务器在数据传输初期,为了避免网络阻塞,采取TCP慢启动方式,并设置慢启动门限;
如果数据包接收率newRate大于用户预设数据接收率Alpha,且数据块大小block size在慢启动门限ssthresh之下,而且当前数据包接收率newRate大于上一次数据包接收率oldRate,则数据块大小依照式1指数增加,
blocksizei=φi×blocksize0,i=1,2,...    式1
其中,φ=2;
如果数据块大小低于慢启动门限,但是当前数据包接收率降至上一次数据包接收率之下,则数据块大小依照式2线性减少,
blocksizei=blocksize0-λi,i=1,2,...    式2
其中,λ=1;
如果数据块大小高于慢启动门限,同时当前数据包接收率高于上一次数据包接收率,则数据块大小依照式3线性增加,
blocksizei=blocksize0+λi,i=1,2,...    式3
其中,λ=1;
反之当数据块大小高于慢启动门限但当前数据包接收率低于上一次数据包接收率,则数据块大小依照式2线性减少;
其他情况下,数据块大小依照式4指数减少,
blocksizei=φ-i×blocksize0,i=1,2,...    式4
其中φ=2。
2.根据权利要求1所述的互联网大文件的快速传输方法,其特征在于:
步骤⑤中所述丢包重传机制是在所有文件数据发送一遍之后再对丢失的数据进行丢包重传。
CN2009100633766A 2009-07-29 2009-07-29 互联网大文件的快速传输方法 Expired - Fee Related CN101616077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100633766A CN101616077B (zh) 2009-07-29 2009-07-29 互联网大文件的快速传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100633766A CN101616077B (zh) 2009-07-29 2009-07-29 互联网大文件的快速传输方法

Publications (2)

Publication Number Publication Date
CN101616077A CN101616077A (zh) 2009-12-30
CN101616077B true CN101616077B (zh) 2011-10-05

Family

ID=41495496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100633766A Expired - Fee Related CN101616077B (zh) 2009-07-29 2009-07-29 互联网大文件的快速传输方法

Country Status (1)

Country Link
CN (1) CN101616077B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338184A (zh) * 2013-05-27 2013-10-02 福建伊时代信息科技股份有限公司 数据发送方法及装置、数据接收装置以及数据传输***

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9667452B2 (en) * 2010-05-10 2017-05-30 Novatium Solutions (P) Limited Mechanism for integrating application data with available bandwidth estimation tools for cloud computing environments
CN102801690B (zh) 2011-05-25 2015-09-30 华为技术有限公司 流媒体的处理方法、分发服务器、客户端及***
CN102571739A (zh) * 2011-05-26 2012-07-11 中兴通讯股份有限公司 批量数据的传输方法及装置
CN102215174A (zh) * 2011-07-14 2011-10-12 丁泉龙 自适应多媒体流链路传输方法
CN102932392B (zh) * 2011-08-12 2015-07-08 上海移远通信技术有限公司 多终端***的udp下载方法
CN103813205B (zh) * 2012-11-13 2017-07-28 三星电子(中国)研发中心 在多个媒体播放设备间实现媒体同步播放控制的方法和装置
CN102938791A (zh) * 2012-11-22 2013-02-20 上海文广互动电视有限公司 3d电视内容信息发送速率自适应控制的文件传输方法
CN104125034A (zh) * 2013-04-23 2014-10-29 深圳市同洲电子股份有限公司 Udp数据包的传输方法及***
CN103546917B (zh) * 2013-11-07 2016-10-05 华为技术有限公司 数据传输方法和装置
CN103986744B (zh) * 2013-11-18 2017-02-08 四川大学 基于吞吐量的文件并行传输方法
CN105208067A (zh) * 2014-06-26 2015-12-30 格瑞菲技术有限公司 异步多源流式传输
CN105282200B (zh) * 2014-07-18 2018-12-28 中国电信股份有限公司 断点续传的方法与服务器
CN104216663A (zh) * 2014-08-27 2014-12-17 山东超越数控电子有限公司 一种提高文件写入速度的方法
CN104579582B (zh) * 2015-02-05 2017-11-17 成都金本华科技股份有限公司 一种基于通信网络的高质量语音传输方法
CN105119968A (zh) * 2015-07-15 2015-12-02 天脉聚源(北京)教育科技有限公司 一种图片传输方法及装置
CN106713393B (zh) * 2015-11-13 2020-06-02 阿里巴巴集团控股有限公司 数据的写入方法及写入装置
CN106453233A (zh) * 2016-08-10 2017-02-22 深圳市中兴物联科技股份有限公司 一种基于udp的数据传输方法及装置
CN106331184B (zh) * 2016-12-01 2020-01-31 网宿科技股份有限公司 基于互联网的大数据分发方法和分发平台
CN106790564A (zh) * 2016-12-27 2017-05-31 北京小度互娱科技有限公司 推送数据的方法及装置
CN110650111A (zh) * 2018-06-27 2020-01-03 上海赢亥信息科技有限公司 数字资产传输方法、***、终端及存储介质
CN111211878B (zh) * 2018-11-22 2023-02-07 杭州海康威视***技术有限公司 一种文件传输方法、装置、***及电子设备
CN109547454A (zh) * 2018-12-06 2019-03-29 空网科技(北京)有限公司 终端设备和数据传输方法
TWI692233B (zh) 2018-12-19 2020-04-21 財團法人工業技術研究院 基於用戶資料報協定及傳輸控制協定之協同傳輸方法及傳輸裝置
CN109451541A (zh) * 2018-12-21 2019-03-08 中国电子科技集团公司第三十研究所 一种无线网络环境下基于udp的数据传输速率自适应方法
CN111770191A (zh) * 2020-07-06 2020-10-13 中电科航空电子有限公司 一种空地高速可靠文件传输通信方法
CN112039955A (zh) * 2020-08-13 2020-12-04 上海宿龙半导体科技有限公司 一种文件数据传输方法及***
CN112019447B (zh) * 2020-08-19 2024-06-25 博锐尚格科技股份有限公司 数据流量控制方法、装置、***、电子设备、及存储介质
CN112738096A (zh) * 2020-12-29 2021-04-30 湖南博匠信息科技有限公司 一种高效可靠的数据传输方法及***
CN114500399A (zh) * 2021-12-28 2022-05-13 赛尔网络有限公司 数据传输方法、设备、介质和产品
CN116471425B (zh) * 2023-04-20 2024-02-06 四川康和圣科技有限公司 一种基于大数据分析的多媒体数据管理***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338184A (zh) * 2013-05-27 2013-10-02 福建伊时代信息科技股份有限公司 数据发送方法及装置、数据接收装置以及数据传输***
CN103338184B (zh) * 2013-05-27 2017-02-15 福建伊时代信息科技股份有限公司 数据发送方法及数据发送装置

Also Published As

Publication number Publication date
CN101616077A (zh) 2009-12-30

Similar Documents

Publication Publication Date Title
CN101616077B (zh) 互联网大文件的快速传输方法
CN102006283B (zh) 数据传输的方法和装置
KR102249741B1 (ko) 데이터 전송을 위한 방법 및 장치
CN100534069C (zh) 非对称和多并发网络的加速方法
JP2001268130A (ja) フロー制御されたネットワーク上におけるtcp接続のフローを制御するための方法および装置、相互接続機器
JP2011515032A (ja) Tcpフロー制御のための方法及び装置
WO2015142913A1 (en) Transport accelerator implementing request manager and connection manager functionality
WO2013053304A1 (zh) 一种实现tcp传输的方法及装置
CN103929370A (zh) 一种用于带宽预留网络的tcp拥塞控制方法
JP2014509483A (ja) ワイヤレスネットワークにおけるトランスミッション・コントロール・プロトコルの性能を改善する機構
WO2012129922A1 (zh) 一种报文处理方法、转发设备及***
CN1842052A (zh) 无线链路控制层的数据传输方法
US20210344603A1 (en) Managing transmission control protocol (tcp) traffic
WO2013159516A1 (zh) 无线侧tcp数据重传的方法和设备
CN1487698A (zh) 一种适合有线/无线混合网络的自适应拥塞控制方法
WO2019144802A1 (zh) 一种数据的传输方法及其相关设备
WO2014194797A2 (en) Transmission control protocol(tcp)connection control parameter in-band signaling
CN114666831A (zh) 一种基于流编码和带宽估计驱动的分组传输方法及其***
CN111092907B (zh) 基于udp协议的数据流快速传输方法、***及介质
CN102801692A (zh) 一种基于***连接的传输控制协议优化方法及***
CN104580171B (zh) Tcp协议的传输方法、装置和***
US20120278459A1 (en) Throttling bursty cpu utilization due to bursty tcp flows
CN1719801A (zh) 一种在无线网络中提高多个非接入层连接性能的方法
EP3809748A1 (en) Data transmitting method and device, and data receiving method and device
CN102546626B (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: 20111005

Termination date: 20170729

CF01 Termination of patent right due to non-payment of annual fee