一种文件传输方法及传输装置的制作方法

文档序号:7700366阅读:102来源:国知局
专利名称:一种文件传输方法及传输装置的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及在文件传输过程中提高传输效率的技术。
背景技术
随着网络通信系统的发展,客户端与客户端之间、客户端与服务器之间、或者服务器与服务器之间需要进行频繁的交互,而交互的数据通常都是以文件的形式,并被打成数据包后在网络中进行传输的。
在传输之前,为了提高传输速度,减少对网络资源的占用,压缩技术被广泛应用。数据包被压缩后,若压缩效率较高(即压缩率较低),压缩后的数据包大小将显著减小,从而可以提高传输速度和效率。
但是,本发明的发明人发现,如果有些数据包在被压缩后,其压缩效率非
常低(即压缩率高),甚至于压缩效率为零;那么对于这些数据包,压缩前后的大小变化不大,但是却消耗了很多的压缩和解压缩的时间,导致传输效率降低。

发明内容
本发明实施例提供了一种文件传输方法和传输装置,以整体提高文件的传输效率。
一种文件传输方法,包括
将需要传输的文件分为设定大小的传输数据包后,确定所述传输数据包的压缩率;
若所述压缩率小于设定值,则对所述传输数据包进行压缩后传输;否则,直接将所述传输数据包进行传输。
所述确定所述传输数据包的压缩率,具体包括
确定所述传输数据包中的一个传输数据包的压缩率,以该传输数据包的
压缩率作为所述传输数据包的压缩率;或者
确定各传输数据包的压缩率,以各传输数据包的压缩率的平均值作为所
述传输数据包的压缩率。
所述确定所述传输数据包中的 一个传输数据包的压缩率,具体为确定所述传输数据包中第 一个要被传输的传输数据包的压缩率;或者随机抽取所述传输数据包中的一个传输数据包,确定该抽取的传输数据
包的压缩率。
确定所述传输数据包中的某个数据包的压缩率的具体方法为对该传输数据包进行压缩,得到压缩后的数据包;根据压缩后的数据包的大小以及压缩前的数据包的大小确定该数据包的压缩率。
或者,确定所述传输数据包中的某个数据包的压缩率的具体方法为依次获取该传输数据包中的设定字节的数据,若获取的数据与之前获取
的数据不同,则记录该数据到哈希表中;否则,记录该数据的位置到位置记
录表;
根据所述哈希表以及位置记录表的大小确定该传输数据包的压缩率。
一种文件传输装置,包括
数据包生成模块,用于将需要传输的文件分为设定大小的传输数据包;
压缩率确定模块,用于确定所述传输数据包的压缩率;
数据包压缩传输模块,用于判断所述压缩率确定模块确定的压缩率是否
大于设定值;若是,则对所述传输数据包进行压缩后传输;否则,直接将所
述传输数据包进行传输。
本发明实施例由于在进行数据包传输之前,对数据包的压缩率先进行判断;如果确定压缩率较低(比如压缩率小于某个设定值),则对传输数据包进 行压缩后传输,此时,由于传输数据包压缩率低、压缩效率高,需要传输的 数据被大大压缩,从而节约了传输时间;如果判断出压缩率较高、压缩效率 低,由于压缩前后并不能对需要传输的数据有显著的减少,则不进行压缩处 理,直接进行传输,从而节省了发送方的压缩时间,以及接收方的解压时间, 从整体上提高了传输效率。
由于根据某个或某几个传输数据包(比如第一个传输数据包)的压缩率 来确定文件的所有传输数据包的压缩率,可以节省压缩率的判断时间,从而 更进一步提高了系统对文件的传输效率。


图1为本发明实施例的文件传输方法流程图2为本发明实施例的文件传输装置内部结构示意具体实施例方式
本发明实施例提供的技术方案为在进行数据包传输之前,对数据包的压 缩率先进行判断;如果可以获得一个较低的压缩率(比如压缩率小于某个设 定值),则对传输数据包进行压缩后传输,此时,由于传输数据包压缩率高, 需要传输的数据被大大压缩,从而节约了传输时间;如果判断出压缩率较高, 由于压缩前后并不能对需要传输的数据有显著的减少,则不进行压缩处理, 直接进行传输,从而节省了发送方的压缩时间,以及接收方的解压时间,从 整体上提高了传输效率。
下面结合附图详细说明本发明实施例的具体技术方案。 本发明实施例提供的一种文件传输方法,流程图如图1所示,包括如下 步骤
S101、发送方将需要传输的文件分成传输数据包。对于需要传输的文件,通常都要将其分成若干个固定大小的传输数据包, 然后按这些传输数据包生成的序列进行传输数据包的发送。
S102、发送方在发送传输数据包之前,确定传输数据包的压缩率。 在发送传输数据包之前,发送方可以采用多种方法确定传输数据包的压 缩率
例如,可以对所有的传输数据包进行压缩,根据压缩前的传输数据包的 大小,以及压缩后的传输数据包的大小确定压缩率。比如, 一个文件被分为 100个传输数据包,对这100个传输数据包进行压缩,得到100个压缩传输数 据包,其中,第i个传输数据包的压缩率w根据压缩率的定义公式l得到
w = c/d (1)
其中,c为第i个传输数据包压缩后的包数据大小,d为第i个传输数据 包压缩前的包数据大小。第i个传输数据包的压缩效率w^l-w,可以看出, 当数据包中的内容可以被大量压缩时,其压缩效率较高,其压缩率较低。
根据每个传输数据包的压缩率可以计算这100个传输数据包的平均压缩 率,以该平均压缩率作为该文件所分成的传输数据包的压缩率。
在实际应用中,本发明的发明人发现对于同一个文件中的数据包,各数 据包之间的压缩率是相关的;因此,为了进一步减少确定压缩率的时间,提 高系统传输效率,可以从文件所分成的所有传输数据包中选择一个或几个传 输数据包计算压缩率,再以这一个或几个传输数据包的压缩率作为该文件所 分成的所有传输数据包的压缩率。
比如,可以选取文件所分成的传输数据包中的第 一个传输数据包确定压 缩率,或者随机抽取文件所分成的传输数据包中的一个传输数据包确定压缩 率。通常可以认为,该选取或者抽取的传输数据包的压缩率与同一文件的其 它传输数据包的压缩率相差不大,因此,不必对每个传输数据包确定压缩率, 而是选取其中的某个或某几个传输数据包确定压缩率,以某个或某几个传输 数据包的压缩率作为该文件所分成的所有传输数据包的压缩率确定其中 一个传输数据包的压缩率的具体方法可以是,对该传输数据包 进行压缩后,才艮据压缩后的数据包大小以及压缩前的数据包大小确定该传输
数据包的压缩率;或者,釆用如下方法针对LZ77压缩算法的一种改进方法来 计算压缩率
依次获取传输数据包中的设定字节(比如3个字节)的数据,若获取的 数据与之前获取的数据不同,则记录该数据到哈希表中;否则,记录该数据 的位置到位置记录表(即当发现有重复的数据则记录该数据的位置到位置记 录表);根据所述哈希表以及位置记录表的大小确定该传输数据包的压缩率 W:
W= (a+b)/d (2) 其中,a为哈希表所占字节数、b为位置记录表所占字节数,d为压缩前 该传输数据包所占字节数。由于对数据包中的数据进行一次扫描后,所获得 的哈希表和位置记录表,记录了数据包中重复出现元素出现的情况;而通常 的压缩算法都是对重复出现的元素进行压缩,所以根据哈希表和位置记录表 的大小即可大致确定该传输数据包的压缩率,从而不必对数据包完成压缩后 再判断压缩比,更进一步节约了压缩比判断时间、提高了传输效率。
5103、 如果确定的压缩率小于设定值,则发送方将压缩传输数据包进行 发送;否则,发送方对传输数据包不进行压缩,直接进行发送。
在通过上述步骤S102确定了传输数据包的压缩率后,可以将确定的压缩 率与预先设定的设定值(比如0.8)进行比较;若压缩率足够小,比如小于设 定值,则发送方将文件的所分成的所有的传输数据包进行压缩后发送;否则, 将传输数据包直接进行发送。
例如,针对某个文件所分成的100个传输数据包,在确定第一个传输数 据包的压缩率大于设定值后,则可以依次对后续传输数据包进行压缩后发送。
5104、 接收方若接收到压缩的数据包,则解压后将传输数据包合并为文 件;若接收到没有被压缩的传输数据包,则直接合并文件,从而节省解压时间。
接收方若接收到压缩的数据包,则对压缩包进行解压后获得传输数据包,
再根据传输数据包合并文件;若接收到没有被压缩的传输数据包,则接收方 可以根据获得的传输数据包直接合并文件,从而节省解压时间。
假设一个1M大小的文件被分为100个传输数据包,其数据包的压缩率为 95%;如果采用现有技术对这些传输数据包进行压缩后传输,整个传输过程所 耗时间f。为
,o = ^ + /2 + ~ (3) 其中,^为100个传输数据包的压缩时间,,2为100个传输数据包的解压 时间,^为数据包在网络间传递的时间。假设在网络间传递1M数据的时间为 16s,则压缩后数据大小为1Mx95%,传递时间为16x95%=15.2s;再4叚设压缩 时间^与解压时间/2为ls,则采用现有技术对这些传输数据包进行压缩后传 输,整个传输过程所耗时间^。为17.2s。
如果采用本发明实施例的方法,在判断其数据包的压缩率(0.95)大于设 定值0.8时,不进行压缩直接进行传送,整个传输过程所耗时间V为
V = V + G, (4)
其中,V为判断压缩率的时间,V为不压缩的数据在网络间传递的时间。 假设采用对所有数据包进行压缩后判断压缩率的方法,则上述的1M文件的 V=ls, V=16s,那么整个传输过程所耗时间V为17s,比现有技术节约0,2s。
如果采用对第一个或者某个数据包进行压缩后判断压缩率的方法,由于 只需要对一个数据包进行压缩后判断压缩率,则V将大大减少,V=0.1s, r3'=16s,那么整个传输过程所耗时间V为16.1s,比现有技术节约l.ls。如果 采用本发明实施例的方法传输大小为IOOM、压缩率为95%的文件,可以比现 有技术节约大致199s,大大提高了传输效率;而同时对于压缩率低的文件, 仍然采用压缩后传输,可以保证其传输效率。尤其对于网络带宽较小的环境,
9在传输尺寸大、而压缩率高的文件时,需要较长时间,那么采用本发明实施 例的方法,能够避免压缩效率低、而耗时长的压缩与解压时间,可以大大缩 短文件的传输时间,提高传输效率。
经过计算,本发明的发明人发现将压缩率阈值设置为80%较优;即当判 断传输数据包的压缩率小于80%,则进行压缩后发送;否则,直接进行发送。 本领域技术人员也可以根据实际情况将压缩率阈值设置为其它值。
本领域技术人员可以理解,虽然上述说明中,为便于理解,对方法的步 骤采用了顺序性描述,但是应当指出,对于上述步骤的顺序并不作严格限制。
本发明实施例提供的一种文件传输装置,内部结构如图2所示,包括 数据包生成模块201、压缩率确定模块202、数据包压缩传输模块203。
数据包生成模块201用于将需要传输的文件分为设定大小的传输数据包。
压缩率确定模块202用于确定所述传输数据包的压缩率。压缩率确定模 块202确定所述传输数据包的压缩率的具体方法可以采用如上述步骤S102中 的方法,例如,可以包括如下单元之一
第 一单元,用于确定所述传输数据包中第 一个要被传输的传输数据包的 压缩率,以所述第一个要被传输的传输数据包的压缩率作为所有传输数据包 的压缩率。
第二单元,用于确定各传输数据包的压缩率,以各传输数据包的压缩率 的平均值作为所述传输数据包的压缩率。
第三单元,用于随机抽取所述传输数据包中的一个传输数据包,确定该 抽取的传输数据包的压缩率,以该抽取的传输数据包的压缩率作为所有传输 数据包的压缩率。
述,此处不再赘述。
数据包压缩传输模块203用于判断所述压缩率确定模块确定的压缩率是 否小于设定值;若是,则对所述传输数据包进行压缩后传输;否则,直接将所述传输数据包进行传输。数据包压缩传输模块203中设置的设定值具体可 以为80%,也可以是i殳定的其它值。在实际应用中,如果压缩率确定才莫块202 在确定传输数据包的压缩率的过程中,已经针对某个或某些或全部传输数据 包生成了压缩包,那么数据包压缩传输模块203在需要进行压缩传输时,不 必再重复进行压缩,而是利用已经生成的压缩包可以加快压缩传输的时间。
本发明实施例由于在进行数据包传输之前,对数据包的压缩率先进行判 断;如果确定压缩率较低(比如压缩率小于某个设定值),则对传输数据包进 行压缩后传输,此时,由于传输数据包压缩率低,需要传输的数据被大大压 缩,从而节约了传输时间;如果判断出压缩率较高,由于压缩前后并不能对 需要传输的数据有显著的减少,则不进行压缩处理,直接进行传输,从而节 省了发送方的压缩时间,以及接收方的解压时间,从整体上提高了传输效率。
由于根据某个或某几个传输数据包(比如第一个传输数据包)的压缩率 来确定文件的所有传输数据包的压缩率,可以节省压缩率的判断时间,从而 更进一步提高了系统对文件的传输效率。
是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 取存储介质中,如ROM/RAM、磁碟、光盘等。
还可以理解的是,附图或实施例中所示的装置结构仅仅是示意性的,表 示逻辑结构。其中作为分离部件显示的模块可能是或者可能不是物理上分开 的,作为模块显示的部件可能是或者可能不是物理模块。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普 通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润 饰,这些改进和润饰也应^L为本发明的保护范围。
权利要求
1、一种文件传输方法,其特征在于,包括将需要传输的文件分为设定大小的传输数据包后,确定所述传输数据包的压缩率;若所述压缩率小于设定值,则对所述传输数据包进行压缩后传输;否则,直接将所述传输数据包进行传输。
2、 如权利要求1所述的方法,其特征在于,所述确定所述传输数据包的 压缩率,具体包括确定所述传输数据包中的一个传输数据包的压缩率,以该传输数据包的 压缩率作为所述传输数据包的压缩率;或者确定各传输数据包的压缩率,以各传输数据包的压缩率的平均值作为所 述传输数据包的压缩率。
3、 如权利要求2所述的方法,其特征在于,所述确定所述传输数据包中 的一个传输数据包的压缩率,具体为确定所述传输数据包中第一个要被传输的传输数据包的压缩率;或者 随机抽取所述传输数据包中的一个传输数据包,确定该抽取的传输数据 包的压缩率。
4、 如权利要求2或3所述的方法,其特征在于,确定所述传输数据包中 的某个数据包的压缩率的具体方法为对该传输数据包进行压缩,得到压缩后的数据包; 根据压缩后的数据包的大小以及压缩前的数据包的大小确定该数据包的压缩率。
5、 如权利要求2或3所述的方法,其特征在于,确定所述传输数据包中 的某个数据包的压缩率的具体方法为依次获取该传输数据包中的设定字节的数据,若获取的数据与之前获取 的数据不同,则记录该数据到哈希表中;否则,记录该数据的位置到位置记录表;确定所述哈希表和位置记录表所占字节数之和;根据所述哈希表和位置记录表所占字节数之和与压缩前的数据包的所占 字节数的比值确定该传输lt据包的压缩率。
6、 如权利要求5所述的方法,其特征在于,所述设定字节具体为3个字节。
7、 如权利要求l-3任一所述的方法,其特征在于,所述设定值为0.8。
8、 一种文件传输装置,其特征在于,包括数据包生成模块,用于将需要传输的文件分为设定大小的传输数据包; 压缩率确定模块,用于确定所述传输数据包的压缩率; 数据包压缩传输模块,用于判断所述压缩率确定模块确定的压缩率是否大于设定值;若是,则对所述传输数据包进行压缩后传输;否则,直接将所述传输数据包进行传输。
9、 如权利要求8所述的装置,其特征在于,所述压缩率确定模块具体用于确定所述传输数据包中第一个要被传输的 传输数据包的压缩率,以所述第一个要被传输的传输数据包的压缩率作为所 有传输数据包的压缩率。
10、 如权利要求8所述的装置,其特征在于,所述设定值为0.8。
全文摘要
本发明涉及数据通信领域,尤其涉及在文件传输过程中提高传输效率的技术。本发明提供了一种文件传输装置及方法,包括将需要传输的文件分为设定大小的传输数据包后,确定所述传输数据包的压缩率;若所述压缩率小于设定值,则对所述传输数据包进行压缩后传输;否则,直接将所述传输数据包进行传输。由于在进行数据包传输之前,对数据包的压缩率先进行判断;如果确定压缩率较低,则对传输数据包进行压缩后传输,此时,需要传输的数据被大大压缩,从而节约了传输时间;如果判断出压缩率较高,则不进行压缩处理,直接进行传输,从而节省了发送方的压缩时间,以及接收方的解压时间,从整体上提高了传输效率。
文档编号H04L1/00GK101552652SQ20091008440
公开日2009年10月7日 申请日期2009年5月13日 优先权日2009年5月13日
发明者斌 任, 余立华, 军 刘, 飞 吴, 吴小广, 斌 王, 陈喜明 申请人:北京交大思源科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1