一种数据包的下载方法和系统与流程

文档序号:18250643发布日期:2019-07-24 09:42阅读:166来源:国知局
一种数据包的下载方法和系统与流程
本发明涉及视联网
技术领域
,特别是涉及一种数据包的下载方法和一种数据包的下载系统。
背景技术
:视联网是一种基于以太网硬件的用于高速传输高清视频及专用协议的专用网络,视联网是互联网的更高级形态,是一个实时网络。目前,视联网终端在下载数据包时,若出现数据包中的某一个或某几个子数据包丢包的情况,视联网终端无法接收并保存该一个或几个子数据包,则视联网终端将已保存的子数据包全部删除,重新下载整个数据包。当视联网终端重复下载几次数据包均无法保存完整的数据包时,则数据包下载失败。由于存在部分子数据包未接收并保存的情况,视联网终端便删除已保存的子数据包,重新下载整个数据包,浪费了已保存的子数据包,数据包下载成功率和效率比较低。技术实现要素:鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据包的下载方法和相应的一种数据包的下载系统。为了解决上述问题,本发明实施例公开了一种数据包的下载方法,所述方法应用于视联网中,所述视联网包括:录播服务器、视联网节点服务器和至少一个视联网终端,所述视联网节点服务器分别与所述录播服务器和所述视联网终端通信,所述方法包括:所述视联网终端接收所述视联网节点服务器循环发送的数据包,所述数据包包括依次排序的多个子数据包,所述数据包由所述录播服务器循环发送至所述视联网节点服务器;所述视联网终端将接收到的每个所述子数据包存储至预先分配的对应的内存位置处;所述视联网终端若未接收到所述数据包中的一个或多个所述子数据包,则保留已存储的所述子数据包,以及,未接收到的所述一个或多个所述子数据包对应的所述内存位置,直至所述视联网终端接收到所述一个或多个所述子数据包,并将所述一个或多个所述子数据包存储至对应的所述内存位置为止。可选地,在所述视联网终端接收所述视联网节点服务器循环发送的数据包的步骤之前,所述方法还包括:所述视联网终端向所述视联网节点服务器发送长度获取指令,所述视联网节点服务器用于根据所述长度获取指令,向所述视联网终端返回所述数据包的长度信息,以及,所述数据包中各所述子数据包的长度信息;所述视联网终端根据所述数据包的长度信息和各所述子数据包的长度信息分配各所述子数据包对应的所述内存位置。可选地,所述方法还包括:所述视联网终端若接收到所述数据包中的每个所述子数据包,则向所述视联网节点服务器发送下载停止请求,所述视联网节点服务器用于根据所述下载停止请求生成下载停止指令,并向所述视联网终端返回所述下载停止指令;所述视联网终端根据所述下载停止指令,停止接收来自所述视联网节点服务器的所述数据包,并向所述视联网节点服务器发送下载停止通知信息。可选地,所述视联网节点服务器还用于在接收到全部所述视联网终端发送的所述下载停止通知信息之后,向所述录播服务器发送循环停止指令,所述录播服务器用于根据所述循环停止指令停止循环发送所述数据包,并向所述视联网节点服务器发送循环停止通知信息。可选地,所述子数据包包括音视频数据。本发明实施例还公开了一种数据包的下载系统,所述系统应用于视联网中,所述视联网包括:录播服务器、视联网节点服务器和至少一个视联网终端,所述视联网节点服务器分别与所述录播服务器和所述视联网终端通信,所述视联网终端包括:接收模块,用于接收所述视联网节点服务器循环发送的数据包,所述数据包包括依次排序的多个子数据包,所述数据包由所述录播服务器循环发送至所述视联网节点服务器;存储模块,用于将接收到的每个所述子数据包存储至预先分配的对应的内存位置处;保留模块,用于若所述接收模块未接收到所述数据包中的一个或多个所述子数据包,则保留已存储的所述子数据包,以及,未接收到的所述一个或多个所述子数据包对应的所述内存位置;所述存储模块,还用于在所述接收模块接收到所述一个或多个所述子数据包时,将所述一个或多个所述子数据包存储至保留的对应的所述内存位置处。可选地,所述视联网终端还包括:指令发送模块,用于在所述接收模块接收所述视联网节点服务器循环发送的数据包之前,向所述视联网节点服务器发送长度获取指令,所述视联网节点服务器用于根据所述长度获取指令,向所述视联网终端返回所述数据包的长度信息,以及,所述数据包中各所述子数据包的长度信息;内存分配模块,用于根据所述数据包的长度信息和各所述子数据包的长度信息分配各所述子数据包对应的所述内存位置。可选地,所述视联网终端还包括:请求发送模块,用于若所述接收模块接收到所述数据包中的每个所述子数据包,则向所述视联网节点服务器发送下载停止请求,所述视联网节点服务器用于根据所述下载停止请求生成下载停止指令,并向所述视联网终端返回所述下载停止指令;下载停止模块,用于根据所述下载停止指令,停止接收来自所述视联网节点服务器的所述数据包,并向所述视联网节点服务器发送下载停止通知信息。可选地,所述视联网节点服务器还用于在接收到全部所述视联网终端发送的所述下载停止通知信息之后,向所述录播服务器发送循环停止指令,所述录播服务器用于根据所述循环停止指令停止循环发送所述数据包,并向所述视联网节点服务器发送循环停止通知信息。可选地,所述子数据包包括音视频数据。本发明实施例包括以下优点:本发明实施例应用于视联网中,视联网可以包括录播服务器、视联网节点服务器和至少一个视联网终端,其中,视联网节点服务器可以分别与录播服务器和视联网终端通信。录播服务器中可以预先存储一个或多个数据包,而且,录播服务器可以循环发送数据包至视联网节点服务器。本发明实施例中,视联网节点服务器将从录播服务器接收到的数据包,循环发送至视联网终端。该数据包可以包括依次排序的多个子数据包。视联网终端可以将接收到的每个子数据包存储至预先分配的对应的内存位置处。如果视联网终端未接收到某一个或某几个子数据包,则保留已存储的子数据包,以及,未接收到的该一个或该几个子数据包对应的内存位置。当视联网节点服务器再次发送数据包至视联网终端时,视联网终端可以将上一次或上几次未接收到的子数据包存储至保留的对应的内存位置。本发明实施例应用视联网的特性,视联网节点服务器接收到录播服务器循环发送的数据包,将数据包再次循环发送至视联网终端。视联网终端将接收到的数据包中的子数据包存储至预先分配的对应的内存位置处。针对未接收到的子数据包,视联网终端可以保留与未接收到的子数据包对应的内存位置,待之后接收到该子数据包之后,将该子数据包存储至保留的内存位置处。本发明实施例在视联网终端未接收到一个或多个子数据包时,保留已存储的子数据包,并保留未接收到的一个或多个子数据包对应的内存位置。在再次接收到数据包时,若接收到之前未接收到的一个或多个子数据包,则将之前未接收到的一个或多个子数据包存储至保留的内存位置处。本发明实施例提高了数据包的下载成功率和效率。附图说明图1是本发明的一种视联网的组网示意图;图2是本发明的一种节点服务器的硬件结构示意图;图3是本发明的一种接入交换机的硬件结构示意图;图4是本发明的一种以太网协转网关的硬件结构示意图;图5是本发明的一种数据包的下载方法实施例的步骤流程图;图6是本发明的一种基于视联网的下载功能实现方法的原理示例图;图7是本发明的一种基于视联网的下载功能实现方法的流程示意图;图8是本发明的一种数据包的下载系统实施例中视联网终端的结构框图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。为使本领域技术人员更好地理解本发明实施例,以下对视联网进行介绍:视联网所应用的部分技术如下所述:网络技术(NetworkTechnology)视联网的网络技术创新改良了传统以太网(Ethernet),以面对网络上潜在的巨大视频流量。不同于单纯的网络分组交换(PacketSwitching)或网络电路交换(CircuitSwitching),视联网技术采用网络分组交换满足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城域网部分的设备主要可以分为3类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。2、视联网数据包定义2.1接入网数据包定义接入网的数据包主要包括以下几部分:目的地址(DA)、源地址(SA)、保留字节、payload(PDU)、CRC。如下表所示,接入网的数据包主要包括以下几部分:DASAReservedPayloadCRC目的地址(DA)由8个字节(byte)组成,第一个字节表示数据包的类型(例如各种协议包、组播数据包、单播数据包等),最多有256种可能,第二字节到第六字节为城域网地址,第七、第八字节为接入网地址。源地址(SA)也是由8个字节(byte)组成,定义与目的地址(DA)相同。保留字节由2个字节组成。payload部分根据不同的数据报的类型有不同的长度,如果数据报的类型是各种协议包,则payload部分的长度是64个字节,如果数据报的类型是单组播数据包,则payload部分的长度是32+1024=1056个字节,当然并不仅仅限于以上2种。CRC有4个字节组成,其计算方法遵循标准的以太网CRC算法。2.2城域网数据包定义城域网的拓扑是图型,两个设备之间可能有2种、甚至2种以上的连接,即节点交换机和节点服务器、节点交换机和节点交换机、节点交换机和节点服务器之间都可能超过2种连接。但是,城域网设备的城域网地址却是唯一的,为了精确描述城域网设备之间的连接关系,在本发明实施例中引入参数:标签,来唯一描述一个城域网设备。本说明书中标签的定义和多协议标签交换(Multi-ProtocolLabelSwitch,MPLS)的标签的定义类似,假设设备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,视联网终端接收视联网节点服务器循环发送的数据包。本发明实施例中,视联网节点服务器循环发送至视联网终端的数据包,可以来自于录播服务器。录播服务器可以预先存储数据包,该数据包可以来源于其他设备。在实际应用中,该数据包可以为音视频数据,本发明实施例对数据包的内容等不作具体限制。数据包中可以包括多个子数据包,各子数据包在数据包中按照顺序进行排列。例如,数据包Data01包括子数据包d01、d02、d03和d04。其中,子数据包d01为数据包Data01的第一个子数据包,子数据包d02为数据包Data01的第二个子数据包,子数据包d03为数据包Data01的第三个子数据包,子数据包d04为数据包Data01的第四个子数据包。在实际应用中,录播服务器在发送数据包Data01至视联网节点服务器时,可以在第1秒内先发送子数据包d01,在第2秒内发送子数据包d02,在第3秒内发送子数据包d03,在第4秒内发送子数据包d04。即录播服务器每秒发送一个子数据包,直至数据包Data01一次发送过程完毕。然后,录播服务器可以按照上述发送方式再次发送一次或多次数据包Data01至视联网节点服务器。视联网节点服务器接收到数据包Data01之后,也可以按照录播服务器发送数据包Data01的方式发送数据包Data01至视联网终端。在具体实现中,视联网终端可以为机顶盒(SetTopBox,STB)、个人计算机、移动终端等等,本发明实施例对视联网终端的类型、配置、操作系统等不作具体限制。在视联网节点服务器向视联网终端发送数据包时,可以按照针对视联网终端配置的下行通信链路发送数据包。本实际应用中,视联网为具有集中控制功能的网络,包括主控服务器和下级网络设备,该下级网络设备包括终端,视联网的核心构思之一在于,通过由主控服务器通知交换设备针对当次服务的下行通信链路配表,然后基于该配置的表进行数据包的传送。即,视联网中的通信方法包括:主控服务器配置当次服务的下行通信链路。将源终端发送的当次服务的数据包,按照下行通信链路传送至目标终端(如视联网终端)。在本发明实施例中,配置当次服务的下行通信链路包括:通知当次服务的下行通信链路所涉及的交换设备配表。进一步而言,按照下行通信链路传送包括:查询所配置的表,交换设备对所接收的数据包通过相应端口进行传送。在具体实现中,服务包括单播通信服务和组播通信服务。即无论是组播通信还是单播通信,都可以采用上述配表—用表的核心构思实现视联网中的通信。如前所述,视联网包括接入网部分,在接入网中,该主控服务器为节点服务器,下级网络设备包括接入交换机和终端。对于接入网中的单播通信服务而言,主控服务器配置当次服务的下行通信链路的步骤可以包括以下步骤:子步骤S11,主控服务器依据源终端发起的服务请求协议包,获取当次服务的下行通信链路信息,下行通信链路信息包括,参与当次服务的主控服务器和接入交换机的下行通信端口信息。子步骤S12,主控服务器依据下行通信端口信息,在其内部的数据包地址表中设置当次服务的数据包所导向的下行端口;并依据接入交换机的下行通信端口信息,向相应的接入交换机发送端口配置命令。子步骤S13,接入交换机依据端口配置命令在其内部的数据包地址表中,设置当次服务的数据包所导向的下行端口。对于接入网中的组播通信服务(如视频会议)而言,主控服务器获取当次服务的下行通信链路信息的步骤可以包括以下子步骤:子步骤S21,主控服务器获得目标终端发起的申请组播通信服务的服务请求协议包,服务请求协议包中包括服务类型信息、服务内容信息和目标终端的接入网地址;其中,服务内容信息中包括服务号码。子步骤S22,主控服务器依据服务号码在预置的内容-地址映射表中,提取源终端的接入网地址。子步骤S23,主控服务器获取源终端对应的组播地址,并分配给目标终端;以及,依据服务类型信息、源终端和目标终端的接入网地址,获取当次组播服务的通信链路信息。步骤502,视联网终端将接收到的每个子数据包存储至预先分配的对应的内存位置处。本发明实施例中,视联网终端接收到的每个子数据包,均有其对应的内存位置,该内存位置可以为视联网终端预先分配的内存位置。例如,视联网终端接收到数据包Data01中的子数据包d01,则可以将子数据包d01存储至预先为子数据包d01分配的内存位置w01处,视联网终端接收到数据包Data01中的子数据包d02,则可以将子数据包d02存储至预先为子数据包d02分配的内存位置w02处。需要说明的是,由于子数据包d01和d02在数据包Data01中是相邻的两个子数据包,因此,内存位置w01和w02也可以为地址相邻的两个内存位置。在本发明的一种优选实施例中,视联网终端可以预先为接收到的数据包分配内存位置,具体地,视联网终端可以预先为接收到的数据包中的各子数据包分配对应的内存位置。在实际应用中,视联网终端可以向视联网节点服务器发送长度获取指令,该长度获取指令的作用可以是获取待接收到的数据包的长度信息,进一步地,获取待接收到的数据包中各子数据包的长度信息。视联网节点服务器接收到长度获取指令,可以将从录播服务器接收到的数据包的长度信息(包括各子数据包的长度信息)返回至视联网终端。视联网终端可以根据数据包的长度信息(包括各子数据包的长度信息)分配内存位置。例如,视联网节点服务器向视联网终端返回数据包Data01的长度信息为100MB,其中,数据包Data01中子数据包d01、d02、d03和d04的长度信息均为25MB。视联网终端可以为数据包Data01分配100MB的内存位置,其中,视联网终端为子数据包d01、d02、d03和d04分别分配25MB的内存位置。而且,各子数据包的内存位置可以按照各子数据包在数据包Data01中的顺序进行排列。在视联网终端存储数据包至内存位置时,若视联网终端接收到数据包中的子数据包,则将子数据包存储至对应的内存位置处;步骤503,若视联网终端未接收到数据包的一个或多个子数据包,则可以保留已存储的子数据包,并且保留未接收到的一个或多个子数据包对应的内存位置。直至视联网终端下一次或下几次接收到之前未接收到的子数据包,将之前未接收到的子数据包存储至保留的内存位置处为止。例如,视联网终端接收到数据包Data01中的子数据包d01,则将子数据包d01存储至对应的内存位置w01处。视联网终端未接收到数据包Data01中的子数据包d02,则保留子数据包d01在内存位置w01处,并保留子数据包d02对应的存储位置w02。视联网终端接收到数据包Data01中的子数据包d03,则将子数据包d03存储至对应的内存位置w03处。视联网终端未接收到数据包Data01中的子数据包d04,则保留子数据包d01在内存位置w01处,保留子数据包d03在内存位置w03处,并保留子数据包d02对应的存储位置w02,保留子数据包d04对应的存储位置w04。当视联网终端再次接收到数据包Data01时,视联网终端可以对之前已经存储的子数据包不做任何更改,即视联网终端可以保留之前已存储的子数据包d01和d03,当视联网终端接收到子数据包d02时,可以将子数据包d02存储至保留的内存位置w02处。当视联网终端未接收到子数据包d04时,可以保留已存储的子数据包d01、d02和d03,并继续保留子数据包d04对应的内存位置w04。如此循环,当视联网终端再次接收到子数据包d04时,可以将子数据包d04存储至对应的内存位置w04处,至此,数据包Data01的子数据包d01、d02、d03和d04均存储至各自对应的内存位置,视联网终端下载数据包Data01完毕。当视联网终端接收到数据包中的全部子数据包时,可以向视联网节点服务器发送下载停止请求。视联网节点服务器根据该下载停止请求生成下载停止指令,并返回下载停止指令至视联网终端。视联网终端可以根据下载停止指令,停止接收来自视联网节点服务器的数据包,并向视联网节点服务器发送下载停止通知信息。也就是说,当视联网终端下载完毕数据包之后,向视联网节点服务器发送下载停止请求,并在停止接收视联网节点服务器后续发送的数据包之后,通知视联网节点服务器无需再接收数据包。在本发明的一种优选实施例中,当视联网中需要下载数据包的全部视联网终端均向视联网节点服务器发送下载停止通知信息之后,视联网节点服务器可以停止向全部视联网终端发送数据包,并且,视联网节点服务器可以向录播服务器发送循环停止指令。录播服务器根据循环停止指令停止循环发送数据包至视联网节点服务器,并向视联网节点服务器发送循环停止通信信息。至此,视联网节点服务器可以确定全部视联网终端均下载完毕数据包,而且,录播服务器也不再循环发送数据包。即数据包的整个下载过程完毕。基于上述关于一种数据包的下载方法实施例的相关说明,下面介绍一种基于视联网的下载功能实现方法,如图6所示,该方法涉及到录播服务器、视联网节点服务器和视联网终端,其中,视联网节点服务器可以分别与录播服务器和视联网终端连接,视联网终端可以通过与其连接的终端显示器显示下载过程及下载结果等信息。如图7所示,录播服务器可以接收其他设备的实时音视频码流,并按照发布直播的方式通过发流模块将实时音视频码流发送至视联网节点服务器。视联网节点服务器可以利用其协议模块将实时音视频码流发送至视联网终端,视联网节点服务器还可以利用其业务模块对实时音视频码流进行其他业务处理。视联网终端可以利用其协议模块接收实时音视频码流,并利用其下载模块将实时音视频码流存储至对应的内存位置,还可以利用其业务模块对已存储的实时音视频码流进行展示等相关操作。本发明实施例应用于视联网中,视联网可以包括录播服务器、视联网节点服务器和至少一个视联网终端,其中,视联网节点服务器可以分别与录播服务器和视联网终端通信。录播服务器中可以预先存储一个或多个数据包,而且,录播服务器可以循环发送数据包至视联网节点服务器。本发明实施例中,视联网节点服务器将从录播服务器接收到的数据包,循环发送至视联网终端。该数据包可以包括依次排序的多个子数据包。视联网终端可以将接收到的每个子数据包存储至预先分配的对应的内存位置处。如果视联网终端未接收到某一个或某几个子数据包,则保留已存储的子数据包,以及,未接收到的该一个或该几个子数据包对应的内存位置。当视联网节点服务器再次发送数据包至视联网终端时,视联网终端可以将上一次或上几次未接收到的子数据包存储至保留的对应的内存位置。本发明实施例应用视联网的特性,视联网节点服务器接收到录播服务器循环发送的数据包,将数据包再次循环发送至视联网终端。视联网终端将接收到的数据包中的子数据包存储至预先分配的对应的内存位置处。针对未接收到的子数据包,视联网终端可以保留与未接收到的子数据包对应的内存位置,待之后接收到该子数据包之后,将该子数据包存储至保留的内存位置处。本发明实施例在视联网终端未接收到一个或多个子数据包时,保留已存储的子数据包,并保留未接收到的一个或多个子数据包对应的内存位置。在再次接收到数据包时,若接收到之前未接收到的一个或多个子数据包,则将之前未接收到的一个或多个子数据包存储至保留的内存位置处。本发明实施例提高了数据包的下载成功率和效率。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。参照图8,示出了本发明的一种数据包的下载系统实施例中视联网终端的结构框图,该系统可以应用于视联网中,所述视联网包括:录播服务器、视联网节点服务器和至少一个视联网终端,所述视联网节点服务器分别与所述录播服务器和所述视联网终端通信,所述视联网终端具体可以包括如下模块:接收模块801,用于接收所述视联网节点服务器循环发送的数据包,所述数据包包括依次排序的多个子数据包,所述数据包由所述录播服务器循环发送至所述视联网节点服务器;存储模块802,用于将接收到的每个所述子数据包存储至预先分配的对应的内存位置处;保留模块803,用于若所述接收模块801未接收到所述数据包中的一个或多个所述子数据包,则保留已存储的所述子数据包,以及,未接收到的所述一个或多个所述子数据包对应的所述内存位置;所述存储模块802,还用于在所述接收模块801接收到所述一个或多个所述子数据包时,将所述一个或多个所述子数据包存储至保留的对应的所述内存位置处。在本发明的一种优选实施例中,所述视联网终端还包括:指令发送模块804,用于在所述接收模块801接收所述视联网节点服务器循环发送的数据包之前,向所述视联网节点服务器发送长度获取指令,所述视联网节点服务器用于根据所述长度获取指令,向所述视联网终端返回所述数据包的长度信息,以及,所述数据包中各所述子数据包的长度信息;内存分配模块805,用于根据所述数据包的长度信息和各所述子数据包的长度信息分配各所述子数据包对应的所述内存位置。在本发明的一种优选实施例中,所述视联网终端还包括:请求发送模块806,用于若所述接收模块801接收到所述数据包中的每个所述子数据包,则向所述视联网节点服务器发送下载停止请求,所述视联网节点服务器用于根据所述下载停止请求生成下载停止指令,并向所述视联网终端返回所述下载停止指令;下载停止模块807,用于根据所述下载停止指令,停止接收来自所述视联网节点服务器的所述数据包,并向所述视联网节点服务器发送下载停止通知信息。在本发明的一种优选实施例中,所述视联网节点服务器还用于在接收到全部所述视联网终端发送的所述下载停止通知信息之后,向所述录播服务器发送循环停止指令,所述录播服务器用于根据所述循环停止指令停止循环发送所述数据包,并向所述视联网节点服务器发送循环停止通知信息。在本发明的一种优选实施例中,所述子数据包包括音视频数据。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的一种数据包的下载方法和一种数据包的下载系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1