一种数据传输方法和装置与流程

文档序号:18465859发布日期:2019-08-17 02:27阅读:183来源:国知局
一种数据传输方法和装置与流程
本发明涉及视联网
技术领域
,特别是涉及一种数据传输方法和一种数据传输装置。
背景技术
:随着视联网业务范围的扩展以及技术的日益成熟,市场对视联网数据传输的稳定性与安全性也提出了更高的要求。视联网盘为视联网内的存储服务系统,包括服务端和客户端,服务端负责接收并存储客户端上传的相关文件,现有的文件上传、存储方案遵循单一的文件传输协议,无法自适应视联网环境的不确定性,在网络较差的情况下对数据流量消耗较大,可靠性差、稳定性低、速度慢。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据传输方法和相应的一种数据传输装置。为了解决上述问题,本发明实施例公开了一种数据传输方法,所述方法应用于视联网中的网盘服务端,所述方法可以包括:在接收并存储网盘客户端上传的数据过程中,根据接收到的数据包,实时检测数据接收过程中的丢包率;根据所述丢包率,向所述网盘客户端发送与所述丢包率相匹配的数据传输方式;接收并存储所述网盘客户端根据所述数据传输方式对当前传输方式调整后上传的数据。本发明实施例还公开了一种数据传输装置,所述装置应用于视联网中的网盘服务端,所述装置可以包括:丢包率获取模块,用于在接收并存储网盘客户端上传的数据过程中,根据接收到的数据包,实时检测数据接收过程中的丢包率;数据传输模块,用于根据所述丢包率,向所述网盘客户端发送与所述丢包率相匹配的数据传输方式;数据存储模块,用于接收并存储所述网盘客户端根据所述数据传输方式对当前传输方式调整后上传的数据。本发明实施例包括以下优点:本发明实施例提供了一种数据传输方法,能够根据当前网络状况,自适应的调整文件上传、存储的方案,在能够保证数据完整到达服务端并被安全存储的情况下,更大程度上的节省数据流量,优化数据传输速度。附图说明图1是本发明的一种视联网的组网示意图;图2是本发明的一种节点服务器的硬件结构示意图;图3是本发明的一种接入交换机的硬件结构示意图;图4是本发明的一种以太网协转网关的硬件结构示意图;图5是本发明的一种数据传输方法实施例的步骤流程图;图6是本发明的第二种数据传输方法实施例的步骤流程图;图7是本发明的第三种数据传输方法实施例的步骤流程图;图8是本发明的一种数据传输装置实施例的结构框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、vod点播、电视邮件、个性录制(pvr)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:视联网所应用的部分技术如下所述:网络技术(networktechnology)视联网的网络技术创新改良了传统以太网(ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组包交换(packetswitching)或网络电路交换(circuitswitching),视联网技术采用packetswitching满足streaming需求。视联网技术具备分组交换的灵活、简单和低价,同时具备电路交换的品质和安全保证,实现了全网交换式虚拟电路,以及数据格式的无缝连接。交换技术(switchingtechnology)视联网采用以太网的异步和包交换两个优点,在全兼容的前提下消除了以太网缺陷,具备全网端到端无缝连接,直通用户终端,直接承载ip数据包。用户数据在全网范围内不需任何格式转换。视联网是以太网的更高级形态,是一个实时交换平台,能够实现目前互联网无法实现的全网大规模高清视频实时传输,将众多网络视频应用推向高清化、统一化。服务器技术(servertechnology)视联网和统一视频平台上的服务器技术不同于传统意义上的服务器,它的流媒体传输是建立在面向连接的基础上,其数据处理能力与流量、通讯时间无关,单个网络层就能够包含信令及数据传输。对于语音和视频业务来说,视联网和统一视频平台流媒体处理的复杂度比数据处理简单许多,效率比传统服务器大大提高了百倍以上。储存器技术(storagetechnology)统一视频平台的超高速储存器技术为了适应超大容量和超大流量的媒体内容而采用了最先进的实时操作系统,将服务器指令中的节目信息映射到具体的硬盘空间,媒体内容不再经过服务器,瞬间直接送达到用户终端,用户等待一般时间小于0.2秒。最优化的扇区分布大大减少了硬盘磁头寻道的机械运动,资源消耗仅占同等级ip互联网的20%,但产生大于传统硬盘阵列3倍的并发流量,综合效率提升10倍以上。网络安全技术(networksecuritytechnology)视联网的结构性设计通过每次服务单独许可制、设备与用户数据完全隔离等方式从结构上彻底根除了困扰互联网的网络安全问题,一般不需要杀毒程序、防火墙,杜绝了黑客与病毒的攻击,为用户提供结构性的无忧安全网络。服务创新技术(serviceinnovationtechnology)统一视频平台将业务与传输融合在一起,不论是单个用户、私网用户还是一个网络的总合,都不过是一次自动连接。用户终端、机顶盒或pc直接连到统一视频平台,获得丰富多彩的各种形态的多媒体视频服务。统一视频平台采用“菜谱式”配表模式来替代传统的复杂应用编程,可以使用非常少的代码即可实现复杂的应用,实现“无限量”的新业务创新。视联网的组网如下所述:视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。如图1所示,视联网分为接入网和城域网两部分。接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。视联网设备分类1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。各接入网设备的具体硬件结构为:节点服务器:如图2所示,主要包括网络接口模块201、交换引擎模块202、cpu模块203、磁盘阵列模块204;其中,网络接口模块201,cpu模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;cpu模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。接入交换机:如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和cpu模块304;其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(da)、源地址(sa)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;cpu模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。码率控制模块208是由cpu模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。cpu模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。以太网协转网关:如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、cpu模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和mac添加模块409、mac删除模块410。其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网macda、以太网macsa、以太网lengthorframetype、视联网目地地址da、视联网源地址sa、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由mac删除模块410减去macda、macsa、lengthorframetype(2byte),并进入相应的接收缓存,否则丢弃;下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址da获知对应的终端的以太网macda,添加终端的以太网macda、以太网协转网关的macsa、以太网lengthorframetype,并发送。以太网协转网关中其他模块的功能与接入交换机类似。终端:主要包括网络接口模块、业务处理模块和cpu模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、cpu模块;编码板主要包括网络接口模块、视音频编码引擎模块、cpu模块;存储器主要包括网络接口模块、cpu模块和磁盘阵列模块。1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和cpu模块;城域服务器主要包括网络接口模块、交换引擎模块和cpu模块构成。2、视联网数据包定义2.1接入网数据包定义接入网的数据包主要包括以下几部分:目的地址(da)、源地址(sa)、保留字节、payload(pdu)、crc。如下表所示,接入网的数据包主要包括以下几部分:dasareservedpayloadcrc其中:目的地址(da)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址;源地址(sa)也是由8个字节(byte)组成,定义与目的地址(da)相同;保留字节由2个字节组成;payload部分根据不同的数据报的类型有不同的长度,如果是各种协议包的话是64个字节,如果是单组播数据包话是32+1024=1056个字节,当然并不仅仅限于以上2种;crc有4个字节组成,其计算方法遵循标准的以太网crc算法。2.2城域网数据包定义城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。本说明书中标签的定义和mpls(multi-protocollabelswitch,多协议标签交换)的标签的定义类似,假设设备a和设备b之间有两个连接,那么数据包从设备a到设备b就有2个标签,数据包从设备b到设备a也有2个标签。标签分入标签、出标签,假设数据包进入设备a的标签(入标签)是0x0000,这个数据包离开设备a时的标签(出标签)可能就变成了0x0001。城域网的入网流程是集中控制下的入网过程,也就意味着城域网的地址分配、标签分配都是由城域服务器主导的,节点交换机、节点服务器都是被动的执行而已,这一点与mpls的标签分配是不同的,mpls的标签分配是交换机、服务器互相协商的结果。如下表所示,城域网的数据包主要包括以下几部分:dasareserved标签payloadcrc即目的地址(da)、源地址(sa)、保留字节(reserved)、标签、payload(pdu)、crc。其中,标签的格式可以参考如下定义:标签是32bit,其中高16bit保留,只用低16bit,它的位置是在数据包的保留字节和payload之间。基于视联网的上述特性,提出了本发明实施例的核心构思之一,遵循视联网的协议,由网盘服务端检测网络实时丢包率,并根据丢包率提示网盘服务端调整数据传输方式,同时调整自身数据存储方式。本发明实施例中,通过对网络状况的自适应调节,能够保证数据传输的稳定、高效。参照图5,示出了本发明的一种数据传输方法实施例的步骤流程图,该方法应用于视联网中的网盘服务端,具体可以包括如下步骤:步骤501,在接收并存储网盘客户端上传的数据过程中,根据接收到的数据包,实时检测数据接收过程中的丢包率。本发明实施例中,在数据传输过程中由于网络状况的变化可能会出现数据丢包的现象,即数据包无法从发送端到达接收端。丢包的原因有可能是多方面的,包括信号衰减、通道阻塞或损坏数据包被拒绝通过等等。丢包率为发送端发送的数据包以及接收端接收到的数据包的比例,可以用于描述网络中数据传输的稳定性,本领域技术人员也可以通过其他参数来描述网络状况,本发明对此不做具体限制。本发明实施例中,视联网网盘为视联网的存储服务系统,用户可以通过网盘客户端向网盘服务端上传数据,或者从网盘服务端向网盘客户端下载数据,从而进行数据的管理和分享等。网盘客户端在向网盘服务端上传数据时,需要根据视联网协议将数据进行分包封装,数据在传输的过程中有时需要进行多步转发,转发数据包的服务器会为数据包添加特殊标识,如包序号等,网盘服务端可根据包序号确认丢失的数据包个数,从而计算当前网络的丢包率。也可以由网盘客户端在发送数据前分包封装时则对数据包标识包序号,这样能够使网盘服务端更加计算的丢包率更加准确,避免数据包在到达转发服务器之前就丢失而影响丢包率的统计情况。步骤502,根据所述丢包率,向所述网盘客户端发送与所述丢包率相匹配的数据传输方式。本发明实施例中,当网盘服务端计算出当前网络的丢包率后,可以确定与所述丢包率相匹配的数据传输方式,并且将所述数据传输方式告知网盘客户端,这样网盘客户端就可以适时地调整数据上传的方式,从而保证数据传输方式对网络状况良好的适应。如果本领域技术人员使用了其他参数作为反映网络状况的标准,那么此时,就应根据该参数对应备选的数据传输方式,本发明对此不做具体限制。如图6所示,可选地,所述步骤502中,所述丢包率处于第一预设区间,所述数据传输方式包括:顺序传输方式。本发明实施例中,对于丢包率可以以区间的形式进行区分,以在一定程度范围内反应网络状况,将第一预设区间设置为丢包率较低的区间如(0,10%],当丢包率处于第一预设区间内时,可以认为丢包率较低,网络状况良好,此时可以采用顺序传输方式。一般来说,只有最理想状况下,丢包率才可能为零,在实际网络中几乎不可能达到这一数值,因此在第一预设区间中去掉了丢包率为零的取值,但本发明实施例并不排除丢包率为零的情况,当网络中丢包率为零时,也采用顺序传输方式。其中,具体地,步骤5021,所述顺序传输方式,可以包括:在接收所述网盘客户端对所有数据包按照顺序依次进行上传的过程中,向所述网盘客户端反馈丢包信息,以及接收所述网盘客户端根据所述丢包信息重新发送的丢失的数据包。本发明实施例中,当网盘客户端接收到网盘服务端采用顺序传输方式的指令时,则开始顺序传输,即将待传输的数据分包封装后将数据包按照次序顺序发送,而此时,网盘服务端接收次序发送的数据包。当发生丢包现象时,网盘服务端一边接收新的数据包,一边确认丢失的数据包的信息并反馈给网盘客户端,网盘客户端根据丢失数据包的信息,一边发送剩余的数据包,一边重新发送丢失的数据包,直到网盘服务端接收到所有的数据包,并返回确认接收所有数据包的信息至网盘客户端。如,网盘服务端计算此时网络中丢包率为6%,则确认传输方式为顺序传输方式,网盘客户端将数据分包封装为100个数据包,按顺序发送,网盘服务端在接收数据包时,发现序号23的数据包后收到的是序号25的数据包,因此,确认序号24的数据包丢失,在接收序号26的数据包的同时,返回序号24的数据包丢失的信息。此时,网盘客户端一边发送序号26及以后的数据包,一边重新发送序号24的数据包,网盘服务端继续接收网盘客户端发送的序号26及以后的数据包,并接收网盘客户端根据丢包信息重新发送的序号24的数据包。当网盘服务端确认100个数据包全部接收时,返回确认信息至网盘客户端。所述丢包率处于第二预设区间,所述数据传输方式包括:分组传输方式。本发明实施例中,第二预设区间设置为丢包率较高的区间,如(10%,60%],当丢包率处于第二预设区间内时,可以认为丢包率较高,网络状况较差,此时可以采用分组传输方式。其中,具体地,步骤5022,所述分组传输方式,包括:在接收所述网盘客户端分组上传的当前分组数据包的过程中,向所述网盘客户端反馈当前分组的丢包信息,在接收到所述网盘客户端根据所述当前分组的丢包信息重新发送的当前分组内丢失的数据包之后,向所述网盘客户端发送确认消息,以通知所述网盘客户端发送下一组数据包。本发明实施例中,当网盘客户端接收到网盘服务端采用分组传输方式的指令时,网盘客户端将待传输的数据分包封装后,将数据包分组进行传输,首先将发送一组数据包,网盘服务端一边接收当前分组的数据包,一边确认当前分组内数据包的丢包信息,并将本组内的数据包的丢包信息返回给网盘客户端,视联网网盘客户端一边发送当前分组内剩余的数据包,一边根据丢包信息重新发送丢失的数据包,当网盘服务端接收当前分组内所有的数据包时,向网盘客户端返回当前分组数据包接收完毕的信息,并接收网盘客户端发送的下一组数据包,至所有的数据包接收完毕。如,网盘服务端计算当前网络丢包率为30%,因此确认传输方式为分组传输方式,网盘客户端将待传输的数据分包封装为100个数据包,并将100个数据包分为5组,每组20个数据包。网盘客户端发送第一组数据包,网盘服务端接收第一组数据包时,发现序号6的数据包后为序号8的数据包,确认序号7的数据包丢失,网盘服务端一边继续接收序号9的数据包,一边向网盘客户端返回序号7的数据包丢失的信息。此时,网盘客户端一边继续发送第一组内序号9及以后的数据包,一边根据丢包信息重新发送序号7的数据包,网盘服务端一边接收网盘客户端继续发送第一组内序号9及以后的数据包,一边接收重新发送的序号7的数据包,至确认第一组的数据包接收完毕后,继续接收网盘客户端发送的第二组数据包,至100个数据包接收完毕。本发明实施例中,数据包分组的组数以及每组数据包的个数与丢包率的大小有关,当丢包率在第二预设区间内越靠近右端点时,每组内数据包的个数越少,对应的数据包分组的组数也越多。如,当网盘服务端确认当前网络丢包率为50%时,将100个数据包分为10组,每组中10个数据包,通过分组传输的方式进行数据传输。所述丢包率处于第三预设区间,所述数据传输方式包括:单包传输方式。本发明实施例中,第三预设区间设置为丢包率高的区间,如[60%,100%),当丢包率处于第三预设区间内时,可以认为丢包率高,网络状况差,此时可以采用单包传输方式。实际应用中,丢包率达到100%时可以认为网络完全瘫痪,数据传输无法进行,此时应该进行网络维修工作,因此将100%从区间中去除。其中,具体地,步骤5023,所述单包传输方式,可以包括:在接收所述网盘客户端单包上传的当前数据包的过程中,向所述网盘客户端反馈所述当前数据包的丢包信息,在接收到所述网盘客户端根据所述当前数据包的丢包信息重新发送的丢失的当前数据包之后,向所述网盘客户端发送确认消息,以通知所述网盘客户端发送下一个数据包。本发明实施例中,当网盘客户端接收到网盘服务端采用单包传输方式的指令时,网盘客户端将待传输的数据分包封装后,首先发送单个数据包,网盘服务端在接收到单个数据包后,向网盘客户端返回单个数据包接收成功的信息,根据单个数据包接收成功的信息,网盘客户端再发送下一个单个数据包,当网盘服务端在预设时间内未接收到单个数据包时,则向网盘客户端返回单个数据包丢失的信息,当接收到网盘客户端根据丢包信息重新发送的单个数据包后,返回单个数据包接收成功的信息,网盘客户端根据单个数据包接收成功的信息继续发送下一个单个数据包,至所有的数据包接收完毕。如,网盘服务端计算当前网络丢包率为90%,因此确认传输方式为单包方式,网盘客户端将待传输的数据分包封装为100个数据包,并发送序号1的数据包,网盘服务端成功接收序号1的数据包后,向网盘客户端返回序号1的数据包接收成功的信息,网盘客户端根据该信息发送序号为2的数据包,在预设响应时间内,网盘服务端未接收到序号为2的数据包,向网盘客户端返回序号为2的数据包丢失的信息,并接收网盘客户端根据该信息重新发送的序号为2的数据包,接受成功后向网盘客户端回复序号为2的数据包接收成功的信息,并接收网盘客户端根据该信息发送的序号为3的数据包,至100个数据包接收完毕。本发明实施例中上述具体的预设区间宽度与端点仅用于举例,本领域技术人员可以理解,根据具体的网络状况,可以设置其他的预设区间宽度及端点,只要能够对应的反应网络状况以供网盘服务端确认数据传输方式即可。可选地,本发明实施例中,由于数据的大小也会影响数据传输的效率,过大的数据无法一次性全部传输,通过对大数据进行分块分别传输可以减轻一次传输的压力,以免出现数据大规模损坏、数据包丢失、信道拥堵等现象,在此基础上,上述数据传输方式还可以包括:可选地,如图7所示,步骤502还可以包括,步骤5024,若所述网盘客户端上传的数据大于预设阈值,且所述丢包率处于第一预设区间或第二预设区间,则通过多线程接收分块处理后的所述数据;其中,所述多线程的线程个数根据所述数据的分块个数以及丢包率设置。本发明实施例中,网盘客户端在发送数据前需要确定数据的大小是否达到预设阈值,如果数据的大小未达到预设阈值,则将数据直接进行分包封装进行发送,然后再根据网盘服务端返回的数据传输方式进行相应调整,当数据的大小达到预设阈值时,则对数据进行分块,在数据传输的过程中,将每一分块的数据当做原始数据进行发送,网盘服务端在接收到一分块数据的所有数据包后将数据包中的数据提取出来获得分块数据,在获得所有的分块数据后即可重组分块获得完整的数据。本发明实施例中,数据分块是在网盘客户端发送数据之前,根据数据大小对数据进行分块的,而调整数据传输方式依据的是数据传输过程中产生的丢包率,因此,数据分块的数量、各数据分块的大小与网络状况,即本发明实施例中的丢包率无关,仅与数据大小、网络吞吐量等因素有关。本领域技术人员可根据具体情况自行设置数据大小的预设阈值以及达到不同预设阈值的数据分块大小及数量等,本发明对此不做具体限制。本发明实施例中,当数据大小达到预设阈值时,网盘客户端在发送数据前可以将数据进行分块,在数据传输过程中,当网盘服务端根据接收到的数据包的包序号计算出当前网络的丢包率处于第一预设区间,网络状况良好,此时在返回数据传输方式为顺序传输方式的同时可以返回对数据分块进行多线程传输的信息,即多个数据分块多线程同时传输。当网盘服务端根据接收到的数据包的包序号计算出当前网络的丢包率处于第二预设区间,网络状况较差,此时在返回数据传输方式为分组传输方式的同时也可以返回对数据分块进行多线程传输的信息,但多线程的个数可以少于网络状况良好时的个数。本发明实施例中,多线程发送的线程个数也可以另外设置丢包率区间进行限定。另外,出于减轻数据传输压力的目的,一般数据越大其分块就越多,在进行多线程传输时需要的线程个数也越多,具体地,可由本领域技术人员自行设置。如,网盘客户端默认数据大小的预设阈值为100m,确定当前待传输数据的大小为200m达到预设阈值,对待传输数据进行分块为50m、50m、50m、50m的数据分块,当网络中丢包率处于第一预设区间时,将数据分块多线程进行传输,由于此时网络中状况良好,因此可以通过四个线程同时发送四个数据分块,在每个线程中通过顺序传输方式传输各自的分块,网盘服务端通过多线程分别接收各自数据分块的数据包,并从数据包中提取出各分块的数据进行整合,获得完整的数据。当网络中丢包率处于第二预设区间时,由于网络状况较差,因此可以通过两个线程顺序传输数据分块,在两个数据分块接收成功后再传输另两个数据分块,网盘服务端在接收所有的数据分块后进行整合,获得完整的数据。或,步骤5025,若所述网盘客户端上传的数据大于预设阈值,且所述丢包率处于第三预设区间,则通过单线程接收分块处理后的所述数据。本发明实施例中,在数据传输过程中,当网盘服务端根据接收到的数据包的包序号计算出当前网络的丢包率处于第三预设区间,网络状况差,此时在返回数据传输方式为单包传输方式的同时可以返回对数据分块进行单线程传输的信息,即一次仅传输一个数据分块,对当前数据分块进行分包封装,再进行单包传输,在获得当前数据分块所有的数据包后,获得当前数据分块,继续接收下一个数据分块的单个数据包,至获得所有的数据分块,整合数据分块获得以获得完整数据。如,上述例子中,当网络中丢包率处于第三预设区间时,将数据分块单线程进行传输,当前传输第一个50m的数据分块,将其分包封装为5个10m的数据包,并进行单包传输,当网盘服务端5个10m数据包接收完后,从数据包中获得50m的当前数据分块,然后再接收网盘客户端单包传输的下一个数据分块的数据包,至4个50m的数据分块接收完毕,整合获得200m的数据。本发明实施例中,当数据的大小未达到预设阈值时,网盘客户端对数据直接进行分包封装,并根据数据传输方式单线程发送,另外,决定数据传输线程的丢包率也可独立设置,而不与数据传输方式的区间完全重合,当获得某一丢包率时,可以先查看其在多线程个数区间中的位置,再查看其在数据传输方式区间中的位置,最终确定数据发送、接收、存储的方式,而且,多线程的个数可以由网盘服务端确认,也可以由网盘客户端确认,本发明对此不做具体限制。步骤503,接收并存储所述网盘客户端根据所述数据传输方式对当前传输方式调整后上传的数据。可选地,如图6所示,所述步骤503包括:步骤5031,根据所述网盘客户端调整后的数据传输方式,调整数据存储方式,以使调整后的数据存储方式与所述调整后的数据传输方式相匹配。步骤5032,根据所述调整后的数据存储方式,对接收的来自所述网盘客户端的数据进行存储。本发明实施例中,根据数据传输方式的不同,网盘服务端存储数据的方式也不同,当数据传输方式为顺序传输方式时,网盘服务端对数据包进行顺序接收、提取并直接存储数据,当数据数据传输方式为分组顺序传输方式时,网盘服务端对数据包进行分组接收、提取并直接存储,当数据传输方式为单包传输方式时,网盘服务端对数据进行单包接收、提取并直接存储,当数据包大小达到预设阈值,网络状况良好或较差,进行多线程分块传输时,网盘服务端对数据分块的数据包进行多线程接收、分块提取、整合并存储,网络情况差,进行单线程多块传输时,网盘服务端对数据分块的数据包进行单线程顺序接收、分块提取、整合并存储,获得数据。在本发明实施例提供了一种数据传输方法,能够根据当前网络状况,自适应的调整文件上传、存储的方案,在能够保证数据完整到达服务端并被安全存储的情况下,更大程度上的节省数据流量,优化数据传输速度。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图8,示出了本发明的一种数据传输装置实施例的结构框图,该装置应用于视联网中的网盘服务端,具体可以包括如下模块:丢包率获取模块601,用于在接收并存储网盘客户端上传的数据过程中,根据接收到的数据包,实时检测数据接收过程中的丢包率。数据传输模块602,用于根据所述丢包率,向所述网盘客户端发送与所述丢包率相匹配的数据传输方式。可选地,所述丢包率处于第一预设区间,所述数据传输模块602包括:顺序传输子模块。可选地,所述顺序传输子模块用于在接收所述网盘客户端对所有数据包按照顺序依次进行上传的过程中,向所述网盘客户端反馈丢包信息,以及接收所述网盘客户端根据所述丢包信息重新发送的丢失的数据包。可选地,所述丢包率处于第二预设区间,所述数据传输模块602包括:分组传输子模块。可选地,所述分组传输子模块,用于在接收所述网盘客户端分组上传的当前分组数据包的过程中,向所述网盘客户端反馈当前分组的丢包信息,在接收所述网盘客户端根据所述当前分组的丢包信息重新发送的当前分组内丢失的数据包之后,向所述网盘客户端发送确认消息,以通知所述网盘客户端发送下一组数据包。可选地,所述丢包率处于第三预设区间,所述数据传输模块602包括:单包传输子模块。可选地,所述单包传输子模块,用于在接收所述网盘客户端单包上传的当前数据包的过程中,向所述网盘客户端反馈所述当前数据包的丢包信息,在接收到所述网盘客户端根据所述当前数据包的丢包信息重新发送的丢失的当前数据包之后,向所述网盘客户端发送确认消息,以通知所述网盘客户端发送下一个数据包。可选地,所述数据传输模块602,还包括:多线程传输子模块,用于若所述网盘客户端上传的数据大于预设阈值,且所述丢包率处于第一预设区间或第二预设区间,则通过多线程接收分块处理后的所述数据;其中,所述多线程的线程个数根据所述数据的分块个数以及丢包率设置。或,单线程传输子模块,用于若所述网盘客户端上传的数据大于预设阈值,且所述丢包率处于第三预设区间,则通过单线程接收分块处理后的所述数据。数据存储模块603,用于接收并存储所述网盘客户端根据所述数据传输方式对当前传输方式调整后上传的数据。可选地,所述数据存储模块603,包括:数据存储方式调整子模块,用于根据所述网盘客户端调整后的数据传输方式,调整数据存储方式,以使调整后的数据存储方式与所述调整后的数据传输方式相匹配。数据存储子模块,用于根据所述调整后的数据存储方式,对接收的来自所述网盘客户端的数据进行存储。在本发明实施例提供了一种数据传输方法,能够根据当前网络状况,自适应的调整文件上传、存储的方案,在能够保证数据完整到达服务端并被安全存储的情况下,更大程度上的节省数据流量,优化数据传输速度。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种数据传输方法和一种数据传输装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1