一种大数据量文件的网络下载方法技术

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

【技术实现步骤摘要】
一种大数据量文件的网络下载方法
本专利技术属于计算机网络
,具体地说,本专利技术涉及一种大数据量文件的高效网络下载方法。
技术介绍
随着计算机技术的发展,数据文件的数据量不断增大,尤其是高清媒体的日益普及,使得人们经常需要下载大数据量文件。而如何在一定网络带宽环境下实现大数据量文件(如高清媒体文件,该类文件平均容量达到4G以上)高效、完整的下载并在本地并进行播放将会是个不小的难题。而目前下载中使用的较为广泛的有TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)网络协议。传输控制协议(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%左右)或是数据拥塞的环境下能够表现出较强的数据接收能力。实践证明,本专利技术的下载速度平均可达网络带宽的70%至80%。另外,本专利技术核心代码量仅占18.5KB,代码精简,高效,尤其符合嵌入式平台的代码空间要求。附图说明图1是本专利技术实现大数据量下载的程序流程图。具体实施方式下面结合附图1和具体实施方式对本专利技术作进一步详细描述:本专利技术提供的基于嵌入式平台的高清媒体网络下载方法,包括(1)双方约定应用层各个标志位,采用胖客户机模式;(2)功能模块化,采用双线程机制,其中一线程负责控制协议握手,而另一线程负责数据端口握手,两个端口采用本文档来自技高网
...

【技术保护点】
1.一种大数据量文件的网络下载方法,该方法涉及服务器和终端,服务器具有 控制线程和数据线程,终端具有控制线程和数据线程,所述大数据量文件的网络下 载方法包括下列步骤:1)服务器和终端运行控制线程进行协议信息交互,完成服务器和终端的控制端 口协议间的握手;2)步骤1)结束后,服务器和终端运行数据线程,完成服务器和终端的数据端 口的握手;3)通过数据线程在服务器和终端的数据端口之间传输数据文件;当终端所收到 数据报文的包序号与该终端进行本次网络下载的应用程序的内部计数器的计数值不 匹配时,根据二者之差选择触发重发机制或补发机制获取丢失的数据报文;且所述的补发机制为:终端接收当前数据报文,然后文件指针根据包序号进行 偏移并存储数据,内部计数器的计数值改为当前接收到的包序号,中间所跳过的包 序号作为补发包序号存入补发队列;所述终端向服务器发送补发请求,补发请求携 带补发包序号;服务器收到补发请求后并不改原文件指针位置,而是在子线程中利 用另一文件指针进行补发包的快速定位和补发;当终端收到尾包,判断当前补发队 列是否为空,如果此时补发队列为空,则通过控制端口发送下载完成请求,服务器 响应并停止传送数据,至此整个传输过程结束;如若补发队列非空则进行补发操作, 则重复进行补发队列的判断直至为空,表明数据已下载完整;4)在数据文件传输完毕后重新运行控制线程。...

【技术特征摘要】
1.一种大数据量文件的网络下载方法,该方法涉及服务器和终端,服务器具有控制线程和数据线程,终端具有控制线程和数据线程,所述大数据量文件的网络下载方法包括下列步骤:1)服务器和终端运行控制线程进行协议信息交互,完成服务器和终端的控制端口协议间的握手;2)步骤1)结束后,服务器和终端运行数据线程,完成服务器和终端的数据端口的握手;3)通过数据线程在服务器和终端的数据端口之间传输数据文件;当终端所收到数据报文的包序号与该终端进行本次网络下载的应用程序的内部计数器的计数值不匹配时,根据二者之差选择触发重发机制或补发机制获取丢失的数据报文;且所述的补发机制为:终端接收当前数据报文,然后文件指针根据包序号进行偏移并存储数据,内部计数器的计数值改为当前接收到的包序号,中间所跳过的包序号作为补发包序号存入补发队列;所述终端向服务器发送补发请求,补发请求携带补发包序号;服务器收到补发请求后并不改原文件指针位置,而是在子线程中利用另一文件指针进行补发包的快速定位和补发;当终端收到尾包,判断当前补发队列是否为空,如果此时补发队列为空,则通过控制端口发送下载完成请求,服务器响应并停止传送数据,至此整个传输过程结束;如若补发队列非空则进行补发操作,则重复进行补发队列的判断直至为空,表明数据已下载完整;4)在数据文件传输完毕后重新运行控制线程。2.根据权利要求1所述的大数据量文件的网络下载方法,其特征在于,所述步骤1)中,进行协议信息交互时,当协议信息发起端在发出协议信息后,在预先设定的时间阈值内未收到接收端对所述协议信息的回复,则所述协议信息发起端重发该协议信息。3.根据权利要求2所述的大数据量文件的网络下载方法,其特征在于,所述时间阈值为200ms。4.根据权利要求1所述的大数据量文件的网络下载方法,其特征在于,所述步骤3)中,包括下列子步骤:31)...

【专利技术属性】
技术研发人员:尹杭
申请(专利权)人:苏州华必讯信息科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1