结合广电网和互联网的文件传输系统
技术领域
本发明涉及一种数据传输系统,特别是一种利用广电网和互联网的文件传输系统。
背景技术
随着电视终端功能的不断加强,应用的延伸、以及广播传输成本低廉的特点,在电视广播数据中,除了音视频流,节目指南等传统信息外,还会传输文件类型的数据,例如文本,图片,音视频文件等,以满足音乐,电影,教学影像的推送以及广告投放的应用,较之音视频流,文件属于块数据,对数据完整性的要求更高,文件中数据块的缺失会导致整个文件无法使用。目前已经有一些在广播中传输文件的应用,例如新闻、文件下载等,通常采用的技术是在数字广播电视的前端系统(以下简称前端系统)反复循环的广播文件数据(如图1),并持续某一段特定的时间,来“确保”文件被终端完整的接收;由于广播的单向传输的特点,前端系统无法得知接收广播数据的终端设备(例如电视机、移动电视接收机等,下文简称为终端设备)是否完整无误的接收到了其下发的文件,通常只能尽可能多的重复广播,一般都会造成带宽的浪费,另外由于误码的存在,此种方式只适合传输一些体积较小的文件,对体积大的文件,为了保证打文件的完整性,需要将前端系统广播的循环次数增加,从而造成带宽更严重的浪费。此问题的一个解决方案是增加状态回馈的通道,该通道一般是某种支持双向通讯的网络连接,例如互联网,如图2所示,使终端设备能将其接受文件数据的状态回传至前端系统,告知前端系统接收数据的完整性,如果所有的终端设备都完整无误的接收到了广播的文件,前端系统即可开始新的数据发送,或者把通道留做它用,这样能在一定程度上缓解带宽的浪费,但是这种方式依然存在缺陷,假设某一台终端设备因为信号原因或者设备故障不能传回终端的接收状态,前端系统为了使每个终端设备都接受完整的数据,就不得不继续发送数据,直到其设定的门限值,数据传输效率依然不高,带宽浪费依然存在。
发明内容
本发明的目的是提供一种结合广电网和互联网的文件传输系统,要解决的技术问题是提高数据传输效率,避免带宽浪费。
为解决上述问题,本发明采用以下技术方案实现:一种结合广电网和互联网的文件传输系统,所述结合广电网和互联网的文件传输系统设有数据库服务器、文件处理服务器、前端系统、终端设备和文件服务器,终端设备与前端系统之间通过数字电视广播网络和互联网连接,文件处理服务器与数据库服务器、前端系统、文件服务器之间通过互联网联接,文件服务器经互联网与终端设备联接,前端系统的待传送的文件保存在数据库服务器中;所述文件处理服务器内设有文件处理系统,终端设备内设有文件接收系统。
本发明所述的文件处理系统由文件分块模块、种子生成模块、文件块上传模块和文件块递交模块组成;
所述文件分块模块从数据库服务器获取待传送的文件,并将待传送的文件从文件的开始处按设定的大小进行分割,文件分块模块将分割好的文件块缓存在文件处理服务器的存储器中,并将文件块发送到种子生成模块和数据块递交模块;
所述种子生成模块将接收到的文件块生成种子文件,种子文件是将文件块信息包括文件块的长度、MD5校验值、文件服务器的网络地址信息,按序写入一个文件当中,种子文件生成后,将被种子生成模块发送给文件块递交模块和文件块上传模块;
所述文件块上传模块将种子生成模块生成的种子文件通过互联网发送到文件服务器;
所述文件块递交模块负责将种子文件以及文件块传送到前端系统。
本发明所述的文件接收系统由广播数据接收模块、文件块校验模块、文件拼接模块和网络数据接收模块组成;
所述广播数据接收模块通过数字电视广播网络接收前端系统广播的种子文件和文件块,广播数据接收模块将种子文件缓存在终端设备的存储器中,并将文件块提交到数据校验模块进行校验;
所述数据校验模块计算广播数据接收模块发来的文件块的校验值,并与种子文件中的MD5校验值比较来判断数据块中是否存在错的数据,若校验码相同,说明数据接收无误;若校验码不同,说明有误码发生,将校验正确的文件块缓存到终端设备的存储器内,校验错误的文件块将被直接丢弃;
所述网络数据接收模块接收到数据校验模块发送来的获取缺失的文件块的指令后,根据收到的种子文件内的文件服务器的网络地址,通过互联网连接到该网络地址获取未能通过广播正确接收的文件块,在获取到文件块后,将获取的文件块发送到数据块校验模块进行文件块的校验,将校验正确的文件块暂存在终端设备的存储器中,丢弃校验错误的数据块,并尝试重新获取,直到所有的文件块都被正确的接收,网络数据接收模块将文件块发送到文件拼接模块进行拼接;
文件拼接模块通过检验校验正确的文件块的标号来发现缺失的文件块,如果发现存在缺失的文件块,则向网络数据接收模块发出获取缺失的文件块的指令;若所有的文件都正确接收到了,就进行文件的拼接还原,文件还原后保存在终端设备的存储器中。
本发明所述的生成的文件块内容是在分割的文件块的数据前附加4个字节长度的文件块的标号,标号的数值为0、1、2…、n-1。
本发明所述的文件服务器的网络地址跟种子文件内保存的文件服务器的网络地址相同。
本发明所述的前端系统接收到文件块后,将对文件块根据《GB20600—2006》、《ISO/IEC 13818》进行加扰、打包、复用,由前端系统的激励器以广播的形式通过数字电视广播网络发送到终端设备。
本发明所述的数据校验模块按照MD5算法计算广播数据接收模块发来的文件块的校验值。
本发明所述的数据校验模块在连续的a次广播中,终端设备都未能获取到正确的文件块,数据校验模块就向网络数据接收模块发送向文件服务器获取正确文件块的指令。
本发明所述的网络数据接收模块每当收到一个校验正确的文件块,则会将该正确的文件块发送到文件拼接模块进行拼接。
本发明所述的文件拼接模块首先读取数据块0,去掉其头部的4个字节,并将剩余的部分写入一个空文件,照此过程依次完成数据块1,2,…,n的读取和写入。
本发明与现有技术相比,增加了一条终端设备获取文件数据的途径,终端设备除了能通过广播的链路获取到文件数据,还能通过网络连接从互联网上去获取文件数据。
在前端系统前一级,增加一个文件处理服务器,来负责对要传送的文件进行分块、上传、以及生成相关的种子文件等处理。种子文件包含了文件的大小,MD5校验值,以及文件服务器在互联网上的URL等信息。终端设备根据种子文件的URL信息,能知道在哪些网络上的文件服务器上可获取到文件,前端系统在广播分割后的文件块前,先将种子文件以广播的方式发送到终端设备,再将分割好的文件块通过数字电视广播通道进行广播,终端设备通过广播通道接收到文件块后,对该文件块进行校验,缓存校验正确的文件块,丢弃校验错误的文件块块,若在连续的广播中,终端设备都未能获取正确的文件块,则通过互联网获取丢弃的错误文件块,并和缓存的文件块拼接还原,从而获取到完整的数据文件,提高数据传输效率,避免带宽浪费。
附图说明
图1是现有技术的只具有单向广播通道的拓扑图。
图2是现有技术具有状态信息回馈通道的拓扑图。
图3是本发明的文件传输系统的拓扑图。
图4是本发明的文件传输流程图。
图5是本发明的文件接收流程图。
图6是本发明的文件传输系统的总体结构框图。
图7是本发明的文件处理系统的结构框图。
图8是本发明文件分块的流程图。
图9是本发明的文件接收系统的结构框图。
图10是本发明文件拼接还原流程图。
图11是本发明的文件下载中的控制协议的协议结构。
图12是本发明的文件下载中的节目文件开始播发的协议结构。
图13是本发明的节目播发完成的数据包的结构。
图14是本贩卖能够的文件下载的数据协议的协议结构。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
如图3所示,本发明的结合广电网和互联网的文件传输系统设有数据库服务器、文件处理服务器、前端系统、终端设备和文件服务器。终端设备与前端系统之间通过数字电视广播网络和互联网连接,文件处理服务器与数据库服务器、前端系统、文件服务器之间则通过互联网联接,文件服务器经互联网与终端设备联接,前端系统的待传送的文件保存在数据库服务器中。
文件服务器接文件处理服务器上传的文件块(数据块)的请求,以及终端设备下载文件块的请求,并提供从文件处理服务器接收文件块以及将文件块从文件服务器下载到终端设备的服务;
数据库服务器存储需要传送到终端设备的待传送的文件,这些文件一般是经过人工审核后,通过网络存入,所有待传送的文件在传送前都保存在数据库服务器中;
文件处理服务器从数据库服务器获取待传送的文件进行分块处理、生成种子文件,并将生成的文件块和种子文件提交给文件服务器和前端系统;
前端系统负责对经过文件处理服务器处理过的待传送的文件根据《GB20600-2006》、《ISO/IEC 13818》进行加扰、复用,并对复用后生成的数据流进行广播;
终端设备用于从前端系统接收种子文件和数据块,完成数据块的拼接还原。
本发明的文件传输方法,包括文件传送和文件接收两个过程。
图4所示,文件的传送是文件处理服务器将存储在数据库服务器中的待传送的数据进行分块处理得到数据块、生成种子文件后,再将数据块和种子文件传送至前端系统和文件服务器上,交给前端系统的目的是要进行数据的广播,递交给文件服务器的目地是提供冗余,当终端设备不能通过广播获取数据时,能到文件服务器下载。
如图5所示,文件的接收是终端设备通过广电网从前端系统和/或通过互联网从文件服务器接收种子文件和数据块,并完成数据块的拼接还原。终端设备会优先从广播网获取数据块并还原文件,如果因为某些数据块缺失,将会通过种子文件内的信息通过网络到文件服务器上获取缺失的数据块,直到所有的数据块都完整的获取,就可以还原出完整的文件。
设置在文件处理服务器上的文件处理系统和设置在终端设备上的文件接收系统组成文件传输系统,分别担负文件传送和文件接收的任务。图6展示了整个文件传输系统的架构图。
下面介绍文件的传送详细过程,以及各模块部分的具体作用。
如图7所示,所述文件处理系统设有文件分块模块、种子生成模块、文件块上传模块和文件块递交模块。
文件分块模块从数据库服务器获取待传送的文件,并将待传送的文件从文件的开始处按设定的大小进行分割,图8描述了文件分块的具体过程,图中M的值可根据具体的广播的物理链路进行设定,对有线的广播可设定4096KB,无线广播可设定为1024KB、2048KB。小于M的文件不需要进行分块。生成的文件块内容是在分割的文件块的数据前附加4个字节长度的文件块的标号,标号的数值为0、1、2…、n-1,文件分块模块将分割好的文件块缓存在文件处理服务器的存储器中,并将文件块发送到种子生成模块和数据块递交模块。
文件分块的整个过程由文件分块模块处理,详细流程如下:
1.判断待传送的文件大小,若小于或者等于M,说明不需要进行分块,分块结束,否则进入步骤2;
2.将对要分块的文件的读取位置p,文件块标号n,都初始化为0;
3.从文件开始的位置p处读取长度L的数据;
4.在读取到的长度为L的数据前,附加标号n,n占用4个字节的长度,生成文件块n;
5.更新n、p的值,使n=n+1,p=p+L;
6.判断p的值,若p≥M成立,分块结束,否则返回步骤3。
种子生成模块将接收到的文件块生成种子文件,种子文件是将文件块信息包括文件块的长度、MD5校验值、文件服务器的网络地址信息,按序写入一个文件当中。种子文件生成后,将被种子生成模块发送给文件块递交模块和文件块上传模块;
文件块上传模块将种子生成模块生成的种子文件通过互联网发送到文件服务器,该文件服务器的网络地址跟种子文件内保存的文件服务器的网络地址相同;
文件块递交模块负责将种子文件以及文件块传送到前端系统;
前端系统接收到文件块后,将对文件块根据《GB 20600-2006》、《ISO/IEC 13818》进行加扰、打包、复用,最终由前端系统的激励器以广播的形式通过数字电视广播网络发送到终端设备;
下面介绍文件的传送详细过程,以及各模块部分的具体作用。
如图9所示,所述文件接收系统包括广播数据接收模块、文件块校验模块、文件拼接模块和网络数据接收模块;
广播数据接收模块通过数字电视广播网络接收前端系统广播的种子文件和文件块,广播数据接收模块将种子文件缓存在终端设备的存储器中,并将文件块提交到数据校验模块进行校验;
数据校验模块按照MD5算法(消息摘要算法第五版)计算广播数据接收模块发来的文件块的校验值,并与种子文件中的MD5校验值比较来判断数据块中是否存在错的数据,若校验码相同,说明数据接收无误;若校验码不同,说明有误码发生。将校验正确的文件块缓存到终端设备的存储器内,校验错误的文件块将被直接丢弃(此时说明有误码的情况发生),若在连续的a次广播中,终端设备都未能获取到正确的文件块,数据校验模块就向网络数据接收模块发送向文件服务器获取正确文件块的指令;
网络数据接收模块接收到数据校验模块发送来的获取缺失的文件块的指令后,根据收到的种子文件内的文件服务器的网络地址,通过互联网连接到该网络地址获取未能通过广播正确接收的文件块,在获取到文件块后,将获取的文件块发送到数据块校验模块进行文件块的校验,将校验正确的文件块暂存在终端设备的存储器中,丢弃校验错误的数据块,并尝试重新获取,直到所有的文件块都被正确的接收。每当收到一个校验正确的文件块,网络数据接收模块就会将该文件块发送到文件拼接模块进行拼接;
文件拼接模块通过检验校验正确的文件块的标号来发现缺失的文件块,如果发现存在缺失的文件块,则向网络数据接收模块发出获取缺失的文件块的指令;若所有的文件都正确接收到了,就进行文件的拼接还原。文件拼接由文件拼接模块完成,拼接还原的方法是首先读取数据块0,去掉其头部的4个字节,并将剩余的部分写入一个空文件,照此过程依次完成数据块1,2,…,n的读取和写入,从而完成整个文件的还原,文件还原后将保存在终端设备的存储器中。
图10展示了文件还原的具体流程。具体步骤如下:
1.创建一个空文件,谁获取文件块的大小M,并将文件的存储位置p,数据块标号n,都设置初始化为0;
2.获取文件块n,去掉文件块n前的四个字节,并写入文件的位置p,该步骤还原文件;
3.p=p+L,n=n+1,更新文件的存储位置,以及数据块的标号,其中L表示写入的文件块的长度减4,若n不是最后一个数据块,L=M–4,若n是最后一个数据块,L的大小为最后一个数据块的大小减去4;(这一步骤不清楚,请说明要说明的是什么东西)
4.判断是否p≥M,是则还原结束,否则返回步骤2。
在硬件方面,终端设备需要有能接收到电视广播信号和连接到网络的模块,前者包括信号接收的高频头、解调芯片,后者可以是以太网卡、WIFI或者3G通讯模块。
实施例:
文件服务器采用IBM公司的IBM System X型服务器;数据库服务器采用IBM公司的IBM System X型服务器;文件处理服务器采用IBM公司的IBMSystem X型服务器;前端系统采用深圳力合数字电视信息技术有限公司生产的“紫荆神网”;终端设备采用无锡力合数字电视信息技术有限公司生产的LH-200A型广告播放机。
数据库服务器、文件处理服务器、文件服务器、前端系统和终端设备间的网络通讯采用TCP协议的连接方式,文件的下载采用FTP协议。数字电视广播网络内的文件封装及下载遵从的是“紫荆神网”的文件下载协议。“紫荆神网”文件下载协议分为控制协议和数据协议,下面分别介绍这两个部分:
控制协议,如图11所示,控制协议主要提供节目的播发和停止控制,以及节目的基本信息等功能;
控制协议类型标识是2,控制协议根据控制类型的不同分为节目文件开始播发和节目播发完成两种格式。
如图12所示,节目文件开始播发一个节目文件开始播发前系统会播发上面的数据包,而且控制类型为0。
如图13所示,节目播发完成,当一个节目所有文件下载完成后系统会播发节目播发完成数据包,控制类型为1。
数据协议,如图14所示,数据协议主要承载文件的数据;数据协议报文类型标识为1。
在实际的应用,采用多个服务器的好处是在分散文件服器的负荷的同时提供冗余。
本发明的文件传输系统采用C和C++语言编写。
本发明的种子文件的格式采用以下语句实现:
文件分块模块从数据库服务器获取待传送的文件,并将待传送的文件从文件的开始处按设定的大小进行分割,文件块分块采用以下语句实现:
在获取到文件块后,将获取的文件块发送到数据块校验模块进行文件块的校验,文件块的校验采用以下语句实现:
文件拼接由文件拼接模块完成,拼接还原的方法是首选读取数据块0,去掉其头部的4个字节,并将剩余的部分写入一个空文件,照此过程依次完成数据块1,2,…,n的读取和写入,文件块的拼接采用以下语句实现。