CN101651676B - 一种大数据量文件的网络下载方法 - Google Patents

一种大数据量文件的网络下载方法 Download PDF

Info

Publication number
CN101651676B
CN101651676B CN200910091939A CN200910091939A CN101651676B CN 101651676 B CN101651676 B CN 101651676B CN 200910091939 A CN200910091939 A CN 200910091939A CN 200910091939 A CN200910091939 A CN 200910091939A CN 101651676 B CN101651676 B CN 101651676B
Authority
CN
China
Prior art keywords
data
terminal
server
sequence number
bag sequence
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
CN200910091939A
Other languages
English (en)
Other versions
CN101651676A (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.)
Institute of Acoustics CAS
Beijing Intellix Technologies Co Ltd
Original Assignee
Institute of Acoustics CAS
Beijing Intellix Technologies Co Ltd
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 Institute of Acoustics CAS, Beijing Intellix Technologies Co Ltd filed Critical Institute of Acoustics CAS
Priority to CN200910091939A priority Critical patent/CN101651676B/zh
Publication of CN101651676A publication Critical patent/CN101651676A/zh
Application granted granted Critical
Publication of CN101651676B publication Critical patent/CN101651676B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种大数据量网络下载的方法,该方法涉及服务器和终端,所述服务器具有控制线程和数据线程,所述终端具有控制线程和数据线程,所述大数据量文件的网络下载方法包括下列步骤:1)服务器和终端运行控制线程进行协议信息交互,完成服务器和终端的控制端口协议间的握手;2)步骤1)结束后,服务器和终端运行数据线程,完成服务器和终端的数据端口的握手;3)通过数据线程在服务器和终端的数据端口之间传输数据文件;4)在数据文件传输完毕后重新运行控制线程。本发明能够高效地可靠地传输数据,特别适合于大数据量网络下载。

Description

一种大数据量文件的网络下载方法
技术领域
本发明属于计算机网络技术领域,具体地说,本发明涉及一种大数据量文件的高效网络下载方法。
背景技术
随着计算机技术的发展,数据文件的数据量不断增大,尤其是高清媒体的日益普及,使得人们经常需要下载大数据量文件。而如何在一定网络带宽环境下实现大数据量文件(如高清媒体文件,该类文件平均容量达到4G以上)高效、完整的下载并在本地并进行播放将会是个不小的难题。而目前下载中使用的较为广泛的有TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)网络协议。
传输控制协议(TCP)协议主要用于在主机间建立一个虚拟连接,以实现高可靠性的数据包交换。IP协议可以进行IP数据包的分割和组装,但是通过IP协议并不能清楚地了解到数据包是否顺利地发送给目标计算机。而TCP协议在其传输模式中,会在将数据包成功发送给目标计算机后要求发送一个确认;如果在某个时限内没有收到确认,那么TCP将重新发送数据包。另外,在传输的过程中,如果接收到无序、丢失以及被破坏的数据包,TCP还可以负责恢复,最常用的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。
TCP协议可以提供一条可靠的传输途径,所以在目前对传输数据要求较高的一些场合均以TCP协议为主,以保证数据的正确、完整性。但如果在面对大量终端与服务器实现TCP传输时,由于服务器要负责实现全部的容错机制,因此极大地增加了服务器的各种开销,这对于服务器来说将是一个很大的负担。
用户数据报协议(UDP)是TCP/IP协议组的一个组成部分。它的创立是为了向应用程序提供一条访问IP的无连接功能的途径。TCP和UDP都使用IP。UDP的设计允许应用程序创建数据报,以及将它们编址到访问应用程序或进程的端口。UDP的基本作用就是向一个IP分组增加一个应用程序进程的端口地址。
可以看出UDP较之TCP简单了很多,只要把数据发送出去而不管发送端是否成功收到数据,因此传输速度较快。但是该协议对于可能出现的丢包无容错机制,无法保证数据传输的完整性,即无法保证可靠的数据传输。
考虑到高清媒体容量大的特性,终端与服务器之间的下载就是一个大容量数据传输的过程,在这过程中不仅要考虑到数据传输的完整性还要兼顾到数据传输的速率问题,TCP虽然可靠,但自身的容错特性会造成一定程度上造成数据的重复传输,且过多的协议握手也对速率造成了一定的影响,在面对大量数据传输的时候,服务器负载较重;UDP虽然能比较有效的解决服务器负载问题,拥有较快的数据传输速度,但UDP是面对无连接的,对网络丢包未做容错处理,因此,不能提供可靠的数据传输。
发明内容
本发明的目的是提供一种在保证数据传输可靠的基础上实现大数据量文件高效率传输的网络下载方法。并且,该网络下载方法能够根据网络丢包率自动选择数据下载方式及容错机制,从而进一步保证了数据传输的高效性和正确性,满足各种不同网络丢包率的环境下的需要。
为实现上述发明目的,本发明提供了一种大数据量网络下载的方法,该方法涉及服务器和终端,所述服务器具有控制线程和数据线程,所述终端具有控制线程和数据线程,所述大数据量文件的网络下载方法包括下列步骤:
1)服务器和终端运行控制线程进行协议信息交互,完成服务器和终端的控制端口协议间的握手;
2)步骤1)结束后,服务器和终端运行数据线程,完成服务器和终端的数据端口的握手;
3)通过数据线程在服务器和终端的数据端口之间传输数据文件;
4)在数据文件传输完毕后重新运行控制线程。
采用上述方案,当握手成功,数据端口直接进行数据的下载,控制端口不再干涉,仅当当前文件传输完毕再由控制端口接管并进行下一个文件的下载流程或者进入等待用户触发状态,中间数据传递节省了不必要的握手,从而有效的改善数据传输速率。
上述技术方案中,所述步骤1)中,进行协议信息交互时,当协议信息发起端在发出协议信息后,在预先设定的时间阈值内未收到接收端对所述协议信息的回复,则所述协议信息发起端重发该协议信息。
上述技术方案中,所述时间阈值为200ms。
上述技术方案中,所述步骤3)中,还需要根据网络丢包状况自适应采取重发、补发策略,动态选择相对应的下载方式。当终端所收到数据报文的包序号与该终端进行本次网络下载的应用程序的内部计数器的计数值不匹配时,根据二者之差选择触发重发机制或补发机制获取丢失的数据报文,以保证数据传输的高效性及容错性。
进一步地,所述步骤3)包括下列子步骤:
31)服务器向终端发送数据报文;
32)所述终端接收并解析数据报文,获得所收到数据报文的包序号,并与该终端进行本次网络下载的应用程序的内部计数器做比较,如果所述包序号减去内部计数器计数值为0,则进行数据的存储;如果所述包序号减去内部计数器计数值的差值大于等于3,则进入步骤33);如果所述包序号减去内部计数器计数值的差值小于3,则进入步骤34);
33)所述终端向服务器发送重发请求,重发请求中携带重发起始包序号,所述重发起始包序号等于内部计数器的当前值,同时所述终端对接下来所收到的数据报文一律丢弃,直到所述包序号减去内部计数器计数值的差值为0,所述数据文件的指针根据当前包序号进行位置偏移;
34)所述终端接收当前数据报文,然后文件指针根据包序号进行偏移并存储数据,内部计数器值改为当前接收到的包序号,中间所跳过的包序号作为补发包序号存入补发队列;所述终端向服务器发送补发请求,补发请求携带补发包序号;
35)服务器在收到重发请求后,根据终端传递上来的所述重发起始包序号重新定位内部文件指针并从所述重发起始包序号处起重新发送数据报文;
36)服务器在收到补发请求后,内部文件继续往下顺序偏移,同时服务器在子线程中对传递上来要求补发的包号立即进行补发处理,终端如果收到小于当前计数器的包序号,判断该包序号是否与补发队列中某一补发包序号相等,如果相等,则从补发队列中删除该补发包序号。
上述技术方案中,所述步骤34)中,当补发队列中的补发包序号超过某一极值时,终端向服务器端发送降速命令以减少服务器发送数据包的频率。
上述技术方案中,所述终端每完成一定数目的数据包下载即向服务器发送一个在线接收心跳报文;如果所述服务器连续三次没有收到终端的心跳报文,则服务器停止本次下载。
与现有技术相比,本发明的优点在于:
结合TCP协议与UDP协议的长处,既具有TCP协议下数据传输的可靠性,又具备UDP协议下服务器负载轻,数据传输快的特点,特别值得说明的是终端可根据不同网络的丢包状况,自适应改变数据传输策略,具备各个网络环境下较强的适应能力,尤其是在网络丢包严重(公网环境,丢包率在20%左右)或是数据拥塞的环境下能够表现出较强的数据接收能力(详见测试图2)。实践证明,本发明的下载速度平均可达网络带宽的70%至80%。
另外,本发明核心代码量仅占18.5KB,代码精简,高效,尤其符合嵌入式平台的代码空间要求。
附图说明
图1是本发明实现大数据量下载的程序流程图。
具体实施方式:
下面结合附图1和具体实施方式对本发明作进一步详细描述:
本发明提供的基于嵌入式平台的高清媒体网络下载方法,包括(1)双方约定应用层各个标志位,采用胖客户机模式;(2)功能模块化,采用双线程机制,其中一线程负责控制协议握手,而另一线程负责数据端口握手,两个端口采用不同的容错策略,针对性强,有效提升数据传输速率;(3)双线程的运行方式模拟DMA通道策略,在控制端口成功握手后由数据端口来完全接管数据的传输直至文件传输结束;(4)根据网络丢包率自适应采取重发、补发策略,选择相对应的下载方式,保证数据传输的高效性。
双方在应用层约定各个标志位来进行协议的握手和数据的下载,为有效减轻服务器负载,采用胖客户机模式,终端负责绝大部分的操作,有效减轻服务器负载。
双方根据约定填充报文标志位并发送,接收方同样根据约定解析出数据,固定的,双方约定应用层的第3个字节来唯一确定消息的类型,同时,为方便今后消息类型的扩展,可以采用二级消息类型目录;约定第5,第6个字节为发送数据包的长度(包括包头在内),以检测数据包的完整性,如果解析出来的数据报文长度与头部Head.length长度不符,则认为所发报文不正确。
分配两个独立的线程分别进行控制端口和数据端口的操作,控制端口在成功进行握手后便由数据端口来接手数据的传输,中间无需控制端口的干涉,较TCP协议而言节省了大量的握手时间,当数据传输完成再由控制端口来接管当前操作(即由控制线程接管CPU)。
控制端口的容错采用超时机制,即当发送端在发送消息200ms后还未收到接收方的回应,便判断信息发送超时,进行重发操作。
数据端口的容错可根据网络丢包率的情况自动选择容错机制,具体如下:
(1)在接收到数据报文后,解析出包号(可以根据约定的应用层中的标志位来判断所收到的包序号),并与文件内部计数器(内部计数器指的是终端进行本次下载的应用程序为当前正在下载的文件所设置的内部计数器)相比较,如果符合,则是所要求的数据包,可进行文件的写操作,如果包号与文件计数器不符,则说明发生丢包,根据网络丢包率进行容错机制选择。
(2)当从数据报文解析出来的包号与内部文件计数器差值大于或等于3时,触发重发机制,终端丢弃已接收到的数据报文直到所需包号的到来,服务器则根据传递上来的包号重新定位文件内部指针并立即推送数据。
(3)当从数据报文解析出来的包号与内部文件计数器差值小于3时,触发补发机制,终端接受已经传递过来的数据报文,文件指针根据解析出来的包号进行偏移存储,同时终端建立补发队列,进行补发请求,服务器收到补发请求后并不改原文件发送指针位置,而是在子线程中利用另一文件指针进行补发包的快速定位和补发。与重发机制所不同的是,补发机制中,终端接收当前数据报文,同时文件指针根据包序号进行偏移并存储数据,内部计数器值改为当前接收到的包序号,这样有效的节省了数据的重复传递,提升了数据传输的效率。
终端在收到比文件计数器小的包号便会判断是否与补发队列中某一包号相符,如果相符,则说明补发成功,该包号做出队操作。进一步地,为避免网络丢包率较高可能造成的补发队列的溢出,当补发队列超过某一极值时,根据约定的补发等级,终端会采用动态调整降速策略向服务器端发送降速命令,以适应目前补发队列的长度并减少服务器发送数据包的频率。
当终端收到尾包,判断当前补发队列是否为空,如果此时补发队列为空,则通过控端口发送下载完成请求,服务器响应并停止传送数据,至此整个传输过程结束;如若补发队列非空则进行补发操作,则重复进行补发队列的判断直至为空,表明数据已下载完整。
进一步地,本实施例中还采用了数据报文智能反馈机制:当终端数据线程每收到服务器100个数据报文(每个报文1316Bytes)时,终端的控制线程则向服务器发送一个在线接收心跳报文,服务器根据接收到的心跳报文判断终端是否正常在线接收;服务器连续三次没有收到终端的心跳报文,服务器认为终端离线,立即终止此次数据下载。这种反馈机制可以有效防止某台网络终端出现故障离线时,导致的数据大量堆积在终端路由器端而造成的网络拥塞现象并且浪费服务器资源。

Claims (6)

1.一种大数据量文件的网络下载方法,该方法涉及服务器和终端,服务器具有控制线程和数据线程,终端具有控制线程和数据线程,所述大数据量文件的网络下载方法包括下列步骤:
1)服务器和终端运行控制线程进行协议信息交互,完成服务器和终端的控制端口协议间的握手;
2)步骤1)结束后,服务器和终端运行数据线程,完成服务器和终端的数据端口的握手;
3)通过数据线程在服务器和终端的数据端口之间传输数据文件;当终端所收到数据报文的包序号与该终端进行本次网络下载的应用程序的内部计数器的计数值不匹配时,根据二者之差选择触发重发机制或补发机制获取丢失的数据报文;
且所述的补发机制为:终端接收当前数据报文,然后文件指针根据包序号进行偏移并存储数据,内部计数器的计数值改为当前接收到的包序号,中间所跳过的包序号作为补发包序号存入补发队列;所述终端向服务器发送补发请求,补发请求携带补发包序号;服务器收到补发请求后并不改原文件指针位置,而是在子线程中利用另一文件指针进行补发包的快速定位和补发;当终端收到尾包,判断当前补发队列是否为空,如果此时补发队列为空,则通过控制端口发送下载完成请求,服务器响应并停止传送数据,至此整个传输过程结束;如若补发队列非空则进行补发操作,则重复进行补发队列的判断直至为空,表明数据已下载完整;
4)在数据文件传输完毕后重新运行控制线程。
2.根据权利要求1所述的大数据量文件的网络下载方法,其特征在于,所述步骤1)中,进行协议信息交互时,当协议信息发起端在发出协议信息后,在预先设定的时间阈值内未收到接收端对所述协议信息的回复,则所述协议信息发起端重发该协议信息。
3.根据权利要求2所述的大数据量文件的网络下载方法,其特征在于,所述时间阈值为200ms。
4.根据权利要求1所述的大数据量文件的网络下载方法,其特征在于,所述步骤3)中,包括下列子步骤:
31)服务器向终端发送数据报文;
32)所述终端接收并解析数据报文,获得所收到数据报文的包序号,并与该终端进行本次网络下载的应用程序的内部计数器做比较,如果所述包序号减去内部计数器计数值为0,则进行数据的存储;如果所述包序号减去内部计数器计数值的差值大于等于3,则进入步骤33);如果所述包序号减去内部计数器计数值的差值小于3,则进入步骤34);
33)所述终端向服务器发送重发请求,重发请求中携带重发起始包序号,所述重发起始包序号等于内部计数器的当前值,同时所述终端对接下来所收到的数据报文一律丢弃,直到所述包序号减去内部计数器计数值的差值为0,所述数据的文件指针根据当前包序号进行位置偏移;
34)所述终端接收当前数据报文,然后文件指针根据包序号进行偏移并存储数据,内部计数器计数值改为当前接收到的包序号,中间所跳过的包序号作为补发包序号存入补发队列;所述终端向服务器发送补发请求,补发请求携带补发包序号;
35)服务器在收到重发请求后,根据终端传递上来的所述重发起始包序号重新定位内部文件指针并从所述重发起始包序号处起重新发送数据报文;
36)服务器在收到补发请求后,内部文件继续往下顺序偏移,同时服务器在子线程中对传递上来要求补发的包号立即进行补发处理,终端如果收到小于当前计数器的包序号,判断该包序号是否与补发队列中某一补发包序号相等,如果相等,则从补发队列中删除该补发包序号。
5.根据权利要求4所述的大数据量文件的网络下载方法,其特征在于,所述步骤34)中,当补发队列中的补发包序号超过某一极值时,终端向服务器端发送降速命令以减少服务器发送数据包的频率。
6.根据权利要求1所述的大数据量文件的网络下载方法,其特征在于,所述终端每完成一定数目的数据包下载即向服务器发送一个在线接收心跳报文;如果所述服务器连续三次没有收到终端的心跳报文,则服务器停止本次下载。
CN200910091939A 2009-09-01 2009-09-01 一种大数据量文件的网络下载方法 Expired - Fee Related CN101651676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910091939A CN101651676B (zh) 2009-09-01 2009-09-01 一种大数据量文件的网络下载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910091939A CN101651676B (zh) 2009-09-01 2009-09-01 一种大数据量文件的网络下载方法

Publications (2)

Publication Number Publication Date
CN101651676A CN101651676A (zh) 2010-02-17
CN101651676B true CN101651676B (zh) 2012-10-17

Family

ID=41673785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910091939A Expired - Fee Related CN101651676B (zh) 2009-09-01 2009-09-01 一种大数据量文件的网络下载方法

Country Status (1)

Country Link
CN (1) CN101651676B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102333337A (zh) * 2011-10-11 2012-01-25 中兴通讯股份有限公司 脚本传输方法、无线网络仿真***和服务器
CN103051674A (zh) * 2012-11-23 2013-04-17 深圳市航天泰瑞捷电子有限公司 一种远程升级无线通信模块的方法、装置及手持单元
CN104539917A (zh) * 2015-02-03 2015-04-22 成都金本华科技股份有限公司 一种提高视频图像清晰度的方法
CN104581422B (zh) * 2015-02-05 2017-09-15 成都金本华科技股份有限公司 一种用于处理网络数据传输的方法和装置
CN108632929B (zh) * 2018-04-16 2021-08-17 上海识装信息科技有限公司 一种面向快速服务的大数据聚合方法
CN109729178A (zh) * 2019-02-22 2019-05-07 苏州华必讯信息科技有限公司 一种大数据量文件的网络下载方法
CN112187667B (zh) * 2020-09-16 2022-09-13 深圳希施玛数据科技有限公司 数据下载方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1855909A (zh) * 2005-02-22 2006-11-01 阿尔卡特公司 多媒体内容传递***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1855909A (zh) * 2005-02-22 2006-11-01 阿尔卡特公司 多媒体内容传递***

Also Published As

Publication number Publication date
CN101651676A (zh) 2010-02-17

Similar Documents

Publication Publication Date Title
CN101651676B (zh) 一种大数据量文件的网络下载方法
CN103036904B (zh) 一种在通信网络中使用udp协议进行数据可靠传输的方法
CN106878191B (zh) 一种数据传送方法、发送节点、接收节点及数据传送***
US7899925B2 (en) System and method for fast, reliable byte stream transport
EP3396883B1 (en) Tcp ack data transmission method and related device
US11064330B2 (en) Methods for enabling delay-awareness in the constrained application protocol (CoAP)
US8537664B2 (en) Method and system for accelerating transmission of data between network devices
AU2003281126B2 (en) System and method for reliable packet data transport in a computer network
CN108270682A (zh) 一种报文传输方法、终端、网络设备及通信***
US20020054570A1 (en) Data communication system, data communication method, and recording medium with data communication program recorded thereon
CN104753980B (zh) 数据传输方法及相关装置和通信***
CN107204834A (zh) 一种基于udt协议的高速网络可靠传输的控制方法
CN102820915B (zh) 改善tcp传输性能的卫星链路***及其使用方法
EP2228965A1 (en) Gateway and method for connecting an IP network to a sensor network
CN104093170A (zh) 基于tcp的数据传输方法和tcp代理装置
CN103986647A (zh) 报文传输方法及设备
US9118478B2 (en) Fault-tolerant data transmission system for networks with non-full-duplex or asymmetric transport
CN101212401B (zh) 面向网格的可配置数据传输方法及***
CN103685243A (zh) 一种基于udp协议的故障录波数据的传输方法
CN101505306A (zh) 一种分布式***中的节点间可靠通信方法
CN101969371A (zh) 一种基于用户数据包协议实现网络数据高速可靠传输的方法
Natarajan et al. Non-renegable selective acknowledgments (NR-SACKs) for SCTP
Wang et al. Aggressive congestion control mechanism for space systems
CN101741747B (zh) 面向udp协议的nfs流控方法
CN109729178A (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: 20121017

Termination date: 20140901

EXPY Termination of patent right or utility model