CN101707623A - 一种小内存系统中的文件发送方法及装置 - Google Patents
一种小内存系统中的文件发送方法及装置 Download PDFInfo
- Publication number
- CN101707623A CN101707623A CN200910110151A CN200910110151A CN101707623A CN 101707623 A CN101707623 A CN 101707623A CN 200910110151 A CN200910110151 A CN 200910110151A CN 200910110151 A CN200910110151 A CN 200910110151A CN 101707623 A CN101707623 A CN 101707623A
- Authority
- CN
- China
- Prior art keywords
- file
- sent
- buffer area
- source piece
- memory system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种小内存系统中的文件发送方法及装置,所述方法包括:内容获取:从内容提供服务器获取待发送文件,并存储在本地存储器;预编码处理:根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;文件发送:依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。所述装置包括内容获取模块、预编码处理模块、文件发送模块。本发明实现了小内存系统的超大文件发送。
Description
技术领域
本发明涉及无线通讯领域,尤其涉及一种小内存系统中的文件发送方法及装置。
背景技术
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对象。TOI为0,表示数据包所属的对象为文件传输表FDT。TOI非零,表示数据包所属的对象为传输的文件,不同的TOI表示数据包属于不同的文件,同一个文件的数据包具有相同的TOI。
TSI和TOI都包含在ALC/LCT数据包头中。接收端通过数据包的源IP地址和TSI来判断数据包来自哪个会话。利用TOI来判断数据包属于哪个对象(文件或FDT)。TOI必须包含在ALC数据包中,除非会话终止标志(A)为1。每个文件都必须指定TOI(>0)。同一会话中的不同对象的TOI必须不同,不同会话中的不同的对象的TOI可以允许重复。
发送端负责向接收端提供会话描述、开始会话、以不同的速率向会话中的各个通道发送数据。不同通道的传输速率不同,并且各个通道的速率是可变的。一个会话中可以同时传输多个对象,不同的对象通过TOI进行区分。
通常,发送端在一个会话中连续的向各个通道发送数据,直到认为传输已经完成.发送端认为传输已经完成的情况可以是超过了一定的时间、发送了一定数量的数据包、或者是一些带外的信号(来自更高层的协议)指示传输完成.
接收端的操作随服务模式的不同而不同。接收端可以同时加入多个发送端的多个会话的多个通道。接收端通过加入组播组的方式加入通道,加入一个通道开始接收数据,离开通道停止接收数据。
接收端加入会话之前必须通过带外方式接收会话描述。接收端从会话描述中得到源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协议实现超大文件的发送,其不但适用于普通的微机系统,甚至可用于单片机等内存容量很小的嵌入式系统中.本文提及的小内存系统,主要是指内存容量相对于待发送的文件过小,因而无法一次读入待发送的文件的内存系统.
图1给出了本发明实施例的系统框图。本发明实施例的文件发送装置,采用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编码需要较长时间的问题,能够提高文件发送的速率。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,但这只是为便于理解而举的实例,不应认为本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,可以做出各种可能的等同改变或替换,这些改变或替换都应属于本发明的保护范围。
Claims (12)
1.一种小内存系统中的文件发送方法,其特征在于,包括:
内容获取:从内容提供服务器获取待发送文件,并存储在本地存储器;
预编码处理:根据小内存系统的发送缓存区容量确定分块参数,依照分块参数将待发送文件划分为多个源块,对每一源块进行编码,依序放入预编码文件中;
文件发送:依序将预编码文件中的源块读入发送缓存区,按照文件发送协议对读入的源块进行数据封装,将封装后的数据发送到目的地址。
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所述的装置,其特征在于,所述目的地址为组播地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910110151A CN101707623A (zh) | 2009-11-11 | 2009-11-11 | 一种小内存系统中的文件发送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910110151A CN101707623A (zh) | 2009-11-11 | 2009-11-11 | 一种小内存系统中的文件发送方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101707623A true CN101707623A (zh) | 2010-05-12 |
Family
ID=42377813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910110151A Pending CN101707623A (zh) | 2009-11-11 | 2009-11-11 | 一种小内存系统中的文件发送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101707623A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279553A (zh) * | 2013-06-07 | 2013-09-04 | 华东师范大学 | 一种嵌入式三维矢量描述文件解析方法及其解析装置 |
CN103634203A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 消息异步传输方法、装置和系统 |
CN107105307A (zh) * | 2017-05-02 | 2017-08-29 | 深圳市茁壮网络股份有限公司 | 一种音频的处理方法和装置 |
US20170346881A1 (en) * | 2016-05-25 | 2017-11-30 | Fu Tai Hua Industry (Shenzhen) Co., Ltd. | Electronic device and method for splitting file |
CN112685368A (zh) * | 2020-12-30 | 2021-04-20 | 成都科来网络技术有限公司 | 超大数据包文件完整会话处理方法、系统及可读存储介质 |
-
2009
- 2009-11-11 CN CN200910110151A patent/CN101707623A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279553A (zh) * | 2013-06-07 | 2013-09-04 | 华东师范大学 | 一种嵌入式三维矢量描述文件解析方法及其解析装置 |
CN103634203A (zh) * | 2013-11-29 | 2014-03-12 | 北京奇虎科技有限公司 | 消息异步传输方法、装置和系统 |
US20170346881A1 (en) * | 2016-05-25 | 2017-11-30 | Fu Tai Hua Industry (Shenzhen) Co., Ltd. | Electronic device and method for splitting file |
CN107436876A (zh) * | 2016-05-25 | 2017-12-05 | 富泰华工业(深圳)有限公司 | 文件分割系统及方法 |
US10498798B2 (en) * | 2016-05-25 | 2019-12-03 | Fu Tai Hua Industry (Shenzhen) Co., Ltd. | Electronic device and method for splitting file |
TWI694334B (zh) * | 2016-05-25 | 2020-05-21 | 鴻海精密工業股份有限公司 | 文檔分割系統及方法 |
CN107105307A (zh) * | 2017-05-02 | 2017-08-29 | 深圳市茁壮网络股份有限公司 | 一种音频的处理方法和装置 |
CN107105307B (zh) * | 2017-05-02 | 2019-11-05 | 深圳市茁壮网络股份有限公司 | 一种音频的处理方法和装置 |
CN112685368A (zh) * | 2020-12-30 | 2021-04-20 | 成都科来网络技术有限公司 | 超大数据包文件完整会话处理方法、系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100375538C (zh) | 在分组信道上多媒体通信的方法 | |
CN102771076B (zh) | 向移动站分发组大小指示 | |
JP6606240B2 (ja) | 放送システムにおけるマルチメディアデータの転送装置及び方法 | |
CN108667739A (zh) | 拥塞控制方法、装置及系统 | |
CN102983884B (zh) | 一种通过磁信道传输数据的方法 | |
KR20190045117A (ko) | 오버헤드를 최소화한 헤더를 가지는 패킷 기반의 미디어 데이터 전송 방법 | |
CN105409174A (zh) | 用于支持下载和流传送的分组传输的方法和设备 | |
CN106603192B (zh) | 一种基于媒体内容的自适应fec方法 | |
CN111050403B (zh) | 一种数据传输方法、装置及设备 | |
CN101707623A (zh) | 一种小内存系统中的文件发送方法及装置 | |
CN104067594A (zh) | 在http服务器之间分配源数据和修复数据的内容传送系统 | |
CN106464677A (zh) | 发送/接收广播信号的方法和设备 | |
CN104158625A (zh) | 一种地铁调度通信的信息传输分发方法 | |
CN110099087A (zh) | 一种基于融合传输系统的文件传输方法 | |
CN106094800A (zh) | 一种新型can fd控制器的管理系统 | |
KR102056438B1 (ko) | 복합 멀티미디어 데이터를 전송하기 위한 데이터 패킷을 송수신하는 방법 및 장치 | |
CN101854224A (zh) | 纠错编码方法、装置和系统以及转发控制方法和装置 | |
CN104754521A (zh) | 一种报文转发方法、无线接入点、无线控制器和系统 | |
CN105827361B (zh) | 一种基于媒体内容的fec方法 | |
CN106257890A (zh) | 传输堆栈名称方案和身份管理 | |
CN106603193B (zh) | 一种基于媒体内容的fec方法 | |
CN111464880A (zh) | 一种基于IPv4和IPv9混合网络的数字电影拷贝传输系统 | |
EP2395727A1 (en) | Data transport container, source device, destination device and method for transferring different types of data | |
CN101505155B (zh) | 实现前缀码构造的装置和方法 | |
CN101330398B (zh) | 一种业务数据流的发送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100512 |