一种小内存系统中的文件发送方法及装置的制作方法

文档序号:7705091阅读:127来源:国知局
专利名称:一种小内存系统中的文件发送方法及装置的制作方法
技术领域
本发明涉及无线通讯领域,尤其涉及一种小内存系统中的文件发送方法及装置。
背景技术
FLUTE (File Delivery Over Unidirectional Transport,文件分发传输,RFC3926 中定义的面向多播的单向文件传输协议)协议建立在ALC (Asynchronous Layered Coding, 异步分层编码)协议之上,利用文件传输表(File Delivery Table, FDT)来描述ALC协 议传输的对象对应的文件信息。文件信息包括URI (Universal Resource Identifier, 资源标志符),文件名,文件类型,文件大小,文件的内容编码,安全属性等。ALC协议由 LCT(Layered Coding Transport,分层编码传输)模块、多速率的CC(Congestion Control, 拥塞控制)模块和FEC (Forward ErrorCorrection,前向纠错)模块组成,提供从一个发送 端到多个并发的接收端的具有拥塞控制的可靠的异步内容传输。 LCT模块为可靠的内容或流传输协议提供运输层的支持。编码是指将传输的内容 进行编码以提高可靠性,例如使用FEC编码。分层是指数据在分层的多个通道中进行传输。 LCT是为IP组播而设计的,但是也支持使用单播的协议。同样FLUTE也支持组播和单播。
FLUTE从ALC/LCT继承得到会话和通道的概念。 一个ALC/LCT会话由多个ALC/LCT 通道组成。ALC/LCT利用IP组播网络服务,一个ALC/LCT通道即一个组播组。各个通道被 划分为逻辑上不同的层次,不同层的通道具有不同的传输速率。接收端通过加入会话通道 (加入组播组)的方式实现FLUTE数据传输。接收端通过加入不同层次的通道来实现接收 速率的改变,实现接收端驱动的多速率的拥塞控制。 在FLUTE协议中,ALC/LCT会话被称为文件传输会话(file deliverysession);会 话由TSI (Transport Session Identifier,传输会话标识)进行标识。TSI和源IP地址对 (IP, TSI)是会话的唯一标识。如果使用UDP协议,可以使用16位的UDP源端口号作为会 话的TSI。 FLUTE协议中传输的ALC对象可以是文件或文件传输表;TOI (Transport Object Identifier,传输对象标识)用来表示数据包所对应的ALC对象。T0I为0,表示数据包所 属的对象为文件传输表FDT。 TOI非零,表示数据包所属的对象为传输的文件,不同的TOI 表示数据包属于不同的文件,同一个文件的数据包具有相同的T0I。 TSI和T0I都包含在ALC/LCT数据包头中。接收端通过数据包的源IP地址和TSI 来判断数据包来自哪个会话。利用TOI来判断数据包属于哪个对象(文件或FDT)。 TOI必 须包含在ALC数据包中,除非会话终止标志(A)为l。每个文件都必须指定T0I ( > 0)。同 一会话中的不同对象的T0I必须不同,不同会话中的不同的对象的T0I可以允许重复。
发送端负责向接收端提供会话描述、开始会话、以不同的速率向会话中的各个通 道发送数据。不同通道的传输速率不同,并且各个通道的速率是可变的。 一个会话中可以 同时传输多个对象,不同的对象通过T0I进行区分。 通常,发送端在一个会话中连续的向各个通道发送数据,直到认为传输已经完成。发送端认为传输已经完成的情况可以是超过了一定的时间、发送了一定数量的数据包、或 者是一些带外的信号(来自更高层的协议)指示传输完成。 接收端的操作随服务模式的不同而不同。接收端可以同时加入多个发送端的多个
会话的多个通道。接收端通过加入组播组的方式加入通道,加入一个通道开始接收数据,离 开通道停止接收数据。 接收端加入会话之前必须通过带外方式接收会话描述。接收端从会话描述中得到 源IP地址,会话中的通道(channel)数,各个通道的目的地址(IP组播的目的地址)和端 口号,会话的TSI等信息。 接收端根据TSI和源IP地址区分不同的会话,利用TOI区分不同对象的数据包, 从通道内接收感兴趣的数据包。 TOI为0表示接收到的数据包是FDT实例(FDT的ALC数据包)。接收端接收到足 够的FDT实例后,进行FEC解码,并重构FDT,得到会话中传输的文件的信息,并将此文件信 息存储在本地数据库(或其他形式的存储)。接收端从FDT中得到所感兴趣的文件的TOI, 并开始接收对应TOI的数据包。当接收到足够多的数据包后,进行FEC解码和文件对象的 重构。利用FEC重构一个对象并不依赖于接收特定的数据包,而是在于接收到不同的数据 包的数量。因此增加接收端接收的层数可以减少传输时间。 FLUTE协议为了保证传输的可靠性,需要对文件进行FEC编码后进行发送。FEC编 码器的输入是具有相同长度的k个源符号。FEC编码器生成和源符号具有相同长度的编码 符号。不同的FEC编码器可以有不同的符号长度。编码符号被打包进行传输。数据包中的 编码符号的数量可以是变化的或者是固定的(通常数据包中只存放一个符号,如果存放多 个符号则需要根据数据包中携带信息以区分数据包中不同的编码符号)。同时,在数据包中 携带有足够的信息用来区分数据包中的不同的编码符号。接收端接收到包含有编码符号的 数据包后,将编码符号送入解码器,得到原始的k个源符号。理想情况下,FEC解码器可以 从任意k个编码符号得到k个源符号。 FEC编码根据所生成的编码符号的个数不同可以分为以下两类 分块的FEC编码分块FEC编码器的输入是k个源符号和数字n。编码器生成n个
编码符号。如果n个编码符号由k个源符号和n-k个冗余符号组成,则称编码器是系统的
(systematic)。分块的FEC编码器具有可以从n个编码符号中的任意k个编码符号重建k
个源符号的特性。 可扩展的FEC编码向可扩展的FEC编码器输入k个源符号,可以生成所需个数的 编码符号。可扩展的FEC编码器同样具有可以从n个编码符号中的任意k个编码符号重建 k个源符号的特性。 对于分块的FEC,较大的传输对象被分为源块。源块中包含k个源符号,每个源块 的k值可以不同。源块的k个源符号被编码得到n个编码符号,同样不同源块的n值也可 以不同。接收端为了重构对象,必须收到同一个编码块的k个不同的编码符号。通常传输 对象被分为同样长度的源块。块号和块中的源符号ID可以用来区分同一个源块中的不同 的源符号。如果对象的长度不是k的倍数,则最后一个源块所包含的源符号个数小于k。
对于通常的小文件,可以将整个文件读入到内存中进行FEC编码,然后将编码后 的文件数据放入发送缓存区中进行发送。然而在无线通讯领域中,有些业务需要发送超大文件,如高清影片。这些文件一般都在几G甚至几十G的大小,如果要将这些文件编码后放 入内存缓冲区进行发送,普通计算机系统的内存无法满足要求,特别是在同时发送多个文 件的情况下。

发明内容
有鉴于上述背景,本发明提供了一种小内存系统中的文件发送方法及装置,可以 实现在小内存系统中发送超大文件。 为了解决上述技术问题,本发明采用了如下技术方案
—种小内存系统中的文件发送方法,包括 内容获取从内容提供服务器获取待发送文件,并存储在本地存储器; 预编码处理根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将
待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中; 文件发送依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读
入的源块进行数据封装,将封装后的数据发送到目的地址。 在所述方法的一种实施例中,所述内容获取采用FTP协议或者文件共享协议进 行。 在所述方法的一种实施例中,所述预编码处理的编码采用前向纠错编码。 在所述方法的一种实施例中,所述发送缓存区包括至少两个,所述文件发送中,源
块读入和数据发送不同时在同 一发送缓存区进行。 在所述方法的一种实施例中,所述文件发送中,文件发送协议为FLUTE协议。
在所述方法的一种实施例中,所述目的地址为组播地址。
本发明还公开了一种小内存系统中的文件发送装置,包括 内容获取模块用于从内容提供服务器获取待发送文件,并存储在本地存储器;
预编码处理模块用于根据小内存系统的发送缓存区容量确定分块参数,依照分 块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;
文件发送模块用于依序将预编码文件中的源块读入发送缓存区,按照文件发送 协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。 本发明通过将待发送文件获取到本地存储器上,而后根据发送缓存区容量确定分 块参数,依照分块参数进行源块划分,再依次将编码后的源块读入发送缓存区,根据文件发 送协议将源块的封装数据发送到目的地址。从而实现了小内存系统的大文件发送。


图1是本发明实施例的FLUTE文件发送服务器的系统框图; 图2是本发明实施例的在小内存系统中利用FLUTE协议发送超大文件的流程图。
具体实施例方式
下面对照附图,对本发明的具体实施方式
做详细说明。 本发明实施例的文件发送方法和装置,主要解决的是在系统内存容量较小时,如 何使用FLUTE协议实现超大文件的发送,其不但适用于普通的微机系统,甚至可用于单片机等内存容量很小的嵌入式系统中。本文提及的小内存系统,主要是指内存容量相对于待 发送的文件过小,因而无法一次读入待发送的文件的内存系统。 图l给出了本发明实施例的系统框图。本发明实施例的文件发送装置,采用FLUTE 协议进行文件发送,称该文件发送装置为FLUTE文件发送服务器101,其通常包含三个模 块内容获取模块102、 FEC预编码模块103、 FLUTE发送模块104。 内容获取模块102 :负责从内容提供服务器上获取需要发送的原始文件并保存在 本地磁盘(FLUTE文件发送服务器上的存储器)上,获取的方式可以是FTP或者其他的文件
共享方式等。 FEC预编码模块103 :也称为预编码处理模块,负责在发送文件之前预先对原始文 件进行FEC编码;生成预编码文件,也就是FEC编码后的文件数据。 FLUTE发送模块104 :也称为文件发送模块,负责将FEC编码后的文件数据按 FLUTE协议格式打包封装,并通过网口发送到设定好的组播地址上。 图2是本发明实施例的利用FLUTE协议在小内存系统中发送超大文件的方法的流 程,包含以下步骤 步骤S201,内容获取模块102通过FTP协议或文件共享协议从内容提供服务器上 下载所需发送的文件,并保存到本地磁盘,即本地存储器上。 步骤S202, FEC预编码模块103在文件发送开始前的设定时刻对待发送的文件进 行源块划分,源块划分时,首先根据内存系统的发送缓存区容量确定源块划分的分块参数, 再依据分块参数将待发送文件划分为多个源块。以划分的源块为单位进行FEC编码,创建 预编码文件,将编码好的源块按顺序保存在预编码文件中。为节约磁盘空间,可以在全部源 块编码完成后将原始的待发送文件删除。 步骤S203, FLUTE发送模块104在开始发送文件后,依次从预编码文件中读取编码 好的源块数据并放入内存的发送缓存区,根据FLUTE协议对源块进行封装打包,源块封装 打包后,将数据包发送到设定的组播地址,即目的地址上。为了提高发送速率,在内存足够 的情况下可以采用双缓存方式,即在内存中设置两个发送缓存区,在发送一个缓存区中的 源块的同时,将下一个需要发送的编码后的源块读入另一个缓存区中。在上一个源块发送 完后,将其缓冲区置空,开始发送另一缓冲区中的源块,同时读取下一个编码后的源块放入 空的缓冲区中。如此交替发送,可以在发送的同时读取磁盘上的数据,避免读取磁盘带来的 延时。当然,在容量允许的情况下,也可以设置更多数量的发送缓存区,只要保证文件发送 过程中的源块数据读入发送缓存区和发送缓存区中的封装后的数据发送不同时在同一个 发送缓存区进行,就可达到避免磁盘读取延时的目的。 本发明的主要特点是源块划分,预先编码,将编码后的文件保存在本地磁盘上, 然后以源块为单位进行发送;源块的大小可以自由划定(只要小于发送缓存区容量),对于 小内存系统可以使用较小的源块,从而可以在小内存系统中发送超大文件。采用在本地存 储器上进行预编码,避免了FEC编码需要较长时间的问题,能够提高文件发送的速率。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,但这只是 为便于理解而举的实例,不应认为本发明的具体实施只局限于这些说明。对于本发明所属 技术领域的普通技术人员来说,在不脱离本发明构思的前提下,可以做出各种可能的等同 改变或替换,这些改变或替换都应属于本发明的保护范围。
权利要求
一种小内存系统中的文件发送方法,其特征在于,包括内容获取从内容提供服务器获取待发送文件,并存储在本地存储器;预编码处理根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;文件发送依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。
2. 如权利要求1所述的方法,其特征在于,所述内容获取采用FTP协议或者文件共享协议进行。
3. 如权利要求1所述的方法,其特征在于,所述预编码处理的编码采用前向纠错编码。
4. 如权利要求1所述的方法,其特征在于,所述发送缓存区包括至少两个,所述文件发送中,源块读入和数据发送不同时在同一发送缓存区进行。
5. 如权利要求1至4任一项所述的方法,其特征在于,所述文件发送中,文件发送协议为FLUTE协议。
6. 如权利要求5所述的方法,其特征在于,所述目的地址为组播地址。
7. —种小内存系统中的文件发送装置,其特征在于,包括内容获取模块用于从内容提供服务器获取待发送文件,并存储在本地存储器;预编码处理模块用于根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;文件发送模块用于依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。
8. 如权利要求7所述的装置,其特征在于,所述内容获取模块的内容获取采用FTP协议或者文件共享协议进行。
9. 如权利要求7所述的装置,其特征在于,所述预编码处理模块的编码采用前向纠错编码。
10. 如权利要求7所述的装置,其特征在于,所述发送缓存区包括至少两个,所述文件发送模块的文件发送中,源块读入和数据发送不同时在同一发送缓存区进行。
11. 如权利要求7至10任一项所述的装置,其特征在于,所述文件发送模块的文件发送协议为FLUTE协议。
12. 如权利要求11所述的装置,其特征在于,所述目的地址为组播地址。
全文摘要
本发明公开了一种小内存系统中的文件发送方法及装置,所述方法包括内容获取从内容提供服务器获取待发送文件,并存储在本地存储器;预编码处理根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;文件发送依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。所述装置包括内容获取模块、预编码处理模块、文件发送模块。本发明实现了小内存系统的超大文件发送。
文档编号H04L29/08GK101707623SQ20091011015
公开日2010年5月12日 申请日期2009年11月11日 优先权日2009年11月11日
发明者胡铟 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1