專(zhuān)利名稱(chēng):一種文件傳輸方法及傳輸裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及在文件傳輸過(guò)程中提高傳輸效率的技術(shù)。
背景技術(shù):
隨著網(wǎng)絡(luò)通信系統(tǒng)的發(fā)展,客戶(hù)端與客戶(hù)端之間、客戶(hù)端與服務(wù)器之間、或者服務(wù)器與服務(wù)器之間需要進(jìn)行頻繁的交互,而交互的數(shù)據(jù)通常都是以文件的形式,并被打成數(shù)據(jù)包后在網(wǎng)絡(luò)中進(jìn)行傳輸?shù)摹?br>
在傳輸之前,為了提高傳輸速度,減少對(duì)網(wǎng)絡(luò)資源的占用,壓縮技術(shù)被廣泛應(yīng)用。數(shù)據(jù)包被壓縮后,若壓縮效率較高(即壓縮率較低),壓縮后的數(shù)據(jù)包大小將顯著減小,從而可以提高傳輸速度和效率。
但是,本發(fā)明的發(fā)明人發(fā)現(xiàn),如果有些數(shù)據(jù)包在被壓縮后,其壓縮效率非
常低(即壓縮率高),甚至于壓縮效率為零;那么對(duì)于這些數(shù)據(jù)包,壓縮前后的大小變化不大,但是卻消耗了很多的壓縮和解壓縮的時(shí)間,導(dǎo)致傳輸效率降低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種文件傳輸方法和傳輸裝置,以整體提高文件的傳輸效率。
一種文件傳輸方法,包括
將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包后,確定所述傳輸數(shù)據(jù)包的壓縮率;
若所述壓縮率小于設(shè)定值,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所述傳輸數(shù)據(jù)包進(jìn)行傳輸。
所述確定所述傳輸數(shù)據(jù)包的壓縮率,具體包括
確定所述傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包的壓縮率,以該傳輸數(shù)據(jù)包的
壓縮率作為所述傳輸數(shù)據(jù)包的壓縮率;或者
確定各傳輸數(shù)據(jù)包的壓縮率,以各傳輸數(shù)據(jù)包的壓縮率的平均值作為所
述傳輸數(shù)據(jù)包的壓縮率。
所述確定所述傳輸數(shù)據(jù)包中的 一個(gè)傳輸數(shù)據(jù)包的壓縮率,具體為確定所述傳輸數(shù)據(jù)包中第 一個(gè)要被傳輸?shù)膫鬏敂?shù)據(jù)包的壓縮率;或者隨機(jī)抽取所述傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包,確定該抽取的傳輸數(shù)據(jù)
包的壓縮率。
確定所述傳輸數(shù)據(jù)包中的某個(gè)數(shù)據(jù)包的壓縮率的具體方法為對(duì)該傳輸數(shù)據(jù)包進(jìn)行壓縮,得到壓縮后的數(shù)據(jù)包;根據(jù)壓縮后的數(shù)據(jù)包的大小以及壓縮前的數(shù)據(jù)包的大小確定該數(shù)據(jù)包的壓縮率。
或者,確定所述傳輸數(shù)據(jù)包中的某個(gè)數(shù)據(jù)包的壓縮率的具體方法為依次獲取該傳輸數(shù)據(jù)包中的設(shè)定字節(jié)的數(shù)據(jù),若獲取的數(shù)據(jù)與之前獲取
的數(shù)據(jù)不同,則記錄該數(shù)據(jù)到哈希表中;否則,記錄該數(shù)據(jù)的位置到位置記
錄表;
根據(jù)所述哈希表以及位置記錄表的大小確定該傳輸數(shù)據(jù)包的壓縮率。
一種文件傳輸裝置,包括
數(shù)據(jù)包生成模塊,用于將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包;
壓縮率確定模塊,用于確定所述傳輸數(shù)據(jù)包的壓縮率;
數(shù)據(jù)包壓縮傳輸模塊,用于判斷所述壓縮率確定模塊確定的壓縮率是否
大于設(shè)定值;若是,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所
述傳輸數(shù)據(jù)包進(jìn)行傳輸。
本發(fā)明實(shí)施例由于在進(jìn)行數(shù)據(jù)包傳輸之前,對(duì)數(shù)據(jù)包的壓縮率先進(jìn)行判斷;如果確定壓縮率較低(比如壓縮率小于某個(gè)設(shè)定值),則對(duì)傳輸數(shù)據(jù)包進(jìn) 行壓縮后傳輸,此時(shí),由于傳輸數(shù)據(jù)包壓縮率低、壓縮效率高,需要傳輸?shù)?數(shù)據(jù)被大大壓縮,從而節(jié)約了傳輸時(shí)間;如果判斷出壓縮率較高、壓縮效率 低,由于壓縮前后并不能對(duì)需要傳輸?shù)臄?shù)據(jù)有顯著的減少,則不進(jìn)行壓縮處 理,直接進(jìn)行傳輸,從而節(jié)省了發(fā)送方的壓縮時(shí)間,以及接收方的解壓時(shí)間, 從整體上提高了傳輸效率。
由于根據(jù)某個(gè)或某幾個(gè)傳輸數(shù)據(jù)包(比如第一個(gè)傳輸數(shù)據(jù)包)的壓縮率 來(lái)確定文件的所有傳輸數(shù)據(jù)包的壓縮率,可以節(jié)省壓縮率的判斷時(shí)間,從而 更進(jìn)一步提高了系統(tǒng)對(duì)文件的傳輸效率。
圖1為本發(fā)明實(shí)施例的文件傳輸方法流程圖2為本發(fā)明實(shí)施例的文件傳輸裝置內(nèi)部結(jié)構(gòu)示意具體實(shí)施例方式
本發(fā)明實(shí)施例提供的技術(shù)方案為在進(jìn)行數(shù)據(jù)包傳輸之前,對(duì)數(shù)據(jù)包的壓 縮率先進(jìn)行判斷;如果可以獲得一個(gè)較低的壓縮率(比如壓縮率小于某個(gè)設(shè) 定值),則對(duì)傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸,此時(shí),由于傳輸數(shù)據(jù)包壓縮率高, 需要傳輸?shù)臄?shù)據(jù)被大大壓縮,從而節(jié)約了傳輸時(shí)間;如果判斷出壓縮率較高, 由于壓縮前后并不能對(duì)需要傳輸?shù)臄?shù)據(jù)有顯著的減少,則不進(jìn)行壓縮處理, 直接進(jìn)行傳輸,從而節(jié)省了發(fā)送方的壓縮時(shí)間,以及接收方的解壓時(shí)間,從 整體上提高了傳輸效率。
下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明實(shí)施例的具體技術(shù)方案。 本發(fā)明實(shí)施例提供的一種文件傳輸方法,流程圖如圖1所示,包括如下 步驟
S101、發(fā)送方將需要傳輸?shù)奈募殖蓚鬏敂?shù)據(jù)包。對(duì)于需要傳輸?shù)奈募?,通常都要將其分成若干個(gè)固定大小的傳輸數(shù)據(jù)包, 然后按這些傳輸數(shù)據(jù)包生成的序列進(jìn)行傳輸數(shù)據(jù)包的發(fā)送。
S102、發(fā)送方在發(fā)送傳輸數(shù)據(jù)包之前,確定傳輸數(shù)據(jù)包的壓縮率。 在發(fā)送傳輸數(shù)據(jù)包之前,發(fā)送方可以采用多種方法確定傳輸數(shù)據(jù)包的壓 縮率
例如,可以對(duì)所有的傳輸數(shù)據(jù)包進(jìn)行壓縮,根據(jù)壓縮前的傳輸數(shù)據(jù)包的 大小,以及壓縮后的傳輸數(shù)據(jù)包的大小確定壓縮率。比如, 一個(gè)文件被分為 100個(gè)傳輸數(shù)據(jù)包,對(duì)這100個(gè)傳輸數(shù)據(jù)包進(jìn)行壓縮,得到100個(gè)壓縮傳輸數(shù) 據(jù)包,其中,第i個(gè)傳輸數(shù)據(jù)包的壓縮率w根據(jù)壓縮率的定義公式l得到
w = c/d (1)
其中,c為第i個(gè)傳輸數(shù)據(jù)包壓縮后的包數(shù)據(jù)大小,d為第i個(gè)傳輸數(shù)據(jù) 包壓縮前的包數(shù)據(jù)大小。第i個(gè)傳輸數(shù)據(jù)包的壓縮效率w^l-w,可以看出, 當(dāng)數(shù)據(jù)包中的內(nèi)容可以被大量壓縮時(shí),其壓縮效率較高,其壓縮率較低。
根據(jù)每個(gè)傳輸數(shù)據(jù)包的壓縮率可以計(jì)算這100個(gè)傳輸數(shù)據(jù)包的平均壓縮 率,以該平均壓縮率作為該文件所分成的傳輸數(shù)據(jù)包的壓縮率。
在實(shí)際應(yīng)用中,本發(fā)明的發(fā)明人發(fā)現(xiàn)對(duì)于同一個(gè)文件中的數(shù)據(jù)包,各數(shù) 據(jù)包之間的壓縮率是相關(guān)的;因此,為了進(jìn)一步減少確定壓縮率的時(shí)間,提 高系統(tǒng)傳輸效率,可以從文件所分成的所有傳輸數(shù)據(jù)包中選擇一個(gè)或幾個(gè)傳 輸數(shù)據(jù)包計(jì)算壓縮率,再以這一個(gè)或幾個(gè)傳輸數(shù)據(jù)包的壓縮率作為該文件所 分成的所有傳輸數(shù)據(jù)包的壓縮率。
比如,可以選取文件所分成的傳輸數(shù)據(jù)包中的第 一個(gè)傳輸數(shù)據(jù)包確定壓 縮率,或者隨機(jī)抽取文件所分成的傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包確定壓縮 率。通??梢哉J(rèn)為,該選取或者抽取的傳輸數(shù)據(jù)包的壓縮率與同一文件的其 它傳輸數(shù)據(jù)包的壓縮率相差不大,因此,不必對(duì)每個(gè)傳輸數(shù)據(jù)包確定壓縮率, 而是選取其中的某個(gè)或某幾個(gè)傳輸數(shù)據(jù)包確定壓縮率,以某個(gè)或某幾個(gè)傳輸 數(shù)據(jù)包的壓縮率作為該文件所分成的所有傳輸數(shù)據(jù)包的壓縮率確定其中 一個(gè)傳輸數(shù)據(jù)包的壓縮率的具體方法可以是,對(duì)該傳輸數(shù)據(jù)包 進(jìn)行壓縮后,才艮據(jù)壓縮后的數(shù)據(jù)包大小以及壓縮前的數(shù)據(jù)包大小確定該傳輸
數(shù)據(jù)包的壓縮率;或者,釆用如下方法針對(duì)LZ77壓縮算法的一種改進(jìn)方法來(lái) 計(jì)算壓縮率
依次獲取傳輸數(shù)據(jù)包中的設(shè)定字節(jié)(比如3個(gè)字節(jié))的數(shù)據(jù),若獲取的 數(shù)據(jù)與之前獲取的數(shù)據(jù)不同,則記錄該數(shù)據(jù)到哈希表中;否則,記錄該數(shù)據(jù) 的位置到位置記錄表(即當(dāng)發(fā)現(xiàn)有重復(fù)的數(shù)據(jù)則記錄該數(shù)據(jù)的位置到位置記 錄表);根據(jù)所述哈希表以及位置記錄表的大小確定該傳輸數(shù)據(jù)包的壓縮率 W:
W= (a+b)/d (2) 其中,a為哈希表所占字節(jié)數(shù)、b為位置記錄表所占字節(jié)數(shù),d為壓縮前 該傳輸數(shù)據(jù)包所占字節(jié)數(shù)。由于對(duì)數(shù)據(jù)包中的數(shù)據(jù)進(jìn)行一次掃描后,所獲得 的哈希表和位置記錄表,記錄了數(shù)據(jù)包中重復(fù)出現(xiàn)元素出現(xiàn)的情況;而通常 的壓縮算法都是對(duì)重復(fù)出現(xiàn)的元素進(jìn)行壓縮,所以根據(jù)哈希表和位置記錄表 的大小即可大致確定該傳輸數(shù)據(jù)包的壓縮率,從而不必對(duì)數(shù)據(jù)包完成壓縮后 再判斷壓縮比,更進(jìn)一步節(jié)約了壓縮比判斷時(shí)間、提高了傳輸效率。
5103、 如果確定的壓縮率小于設(shè)定值,則發(fā)送方將壓縮傳輸數(shù)據(jù)包進(jìn)行 發(fā)送;否則,發(fā)送方對(duì)傳輸數(shù)據(jù)包不進(jìn)行壓縮,直接進(jìn)行發(fā)送。
在通過(guò)上述步驟S102確定了傳輸數(shù)據(jù)包的壓縮率后,可以將確定的壓縮 率與預(yù)先設(shè)定的設(shè)定值(比如0.8)進(jìn)行比較;若壓縮率足夠小,比如小于設(shè) 定值,則發(fā)送方將文件的所分成的所有的傳輸數(shù)據(jù)包進(jìn)行壓縮后發(fā)送;否則, 將傳輸數(shù)據(jù)包直接進(jìn)行發(fā)送。
例如,針對(duì)某個(gè)文件所分成的100個(gè)傳輸數(shù)據(jù)包,在確定第一個(gè)傳輸數(shù) 據(jù)包的壓縮率大于設(shè)定值后,則可以依次對(duì)后續(xù)傳輸數(shù)據(jù)包進(jìn)行壓縮后發(fā)送。
5104、 接收方若接收到壓縮的數(shù)據(jù)包,則解壓后將傳輸數(shù)據(jù)包合并為文 件;若接收到?jīng)]有被壓縮的傳輸數(shù)據(jù)包,則直接合并文件,從而節(jié)省解壓時(shí)間。
接收方若接收到壓縮的數(shù)據(jù)包,則對(duì)壓縮包進(jìn)行解壓后獲得傳輸數(shù)據(jù)包,
再根據(jù)傳輸數(shù)據(jù)包合并文件;若接收到?jīng)]有被壓縮的傳輸數(shù)據(jù)包,則接收方 可以根據(jù)獲得的傳輸數(shù)據(jù)包直接合并文件,從而節(jié)省解壓時(shí)間。
假設(shè)一個(gè)1M大小的文件被分為100個(gè)傳輸數(shù)據(jù)包,其數(shù)據(jù)包的壓縮率為 95%;如果采用現(xiàn)有技術(shù)對(duì)這些傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸,整個(gè)傳輸過(guò)程所 耗時(shí)間f。為
,o = ^ + /2 + ~ (3) 其中,^為100個(gè)傳輸數(shù)據(jù)包的壓縮時(shí)間,,2為100個(gè)傳輸數(shù)據(jù)包的解壓 時(shí)間,^為數(shù)據(jù)包在網(wǎng)絡(luò)間傳遞的時(shí)間。假設(shè)在網(wǎng)絡(luò)間傳遞1M數(shù)據(jù)的時(shí)間為 16s,則壓縮后數(shù)據(jù)大小為1Mx95%,傳遞時(shí)間為16x95%=15.2s;再4叚設(shè)壓縮 時(shí)間^與解壓時(shí)間/2為ls,則采用現(xiàn)有技術(shù)對(duì)這些傳輸數(shù)據(jù)包進(jìn)行壓縮后傳 輸,整個(gè)傳輸過(guò)程所耗時(shí)間^。為17.2s。
如果采用本發(fā)明實(shí)施例的方法,在判斷其數(shù)據(jù)包的壓縮率(0.95)大于設(shè) 定值0.8時(shí),不進(jìn)行壓縮直接進(jìn)行傳送,整個(gè)傳輸過(guò)程所耗時(shí)間V為
V = V + G, (4)
其中,V為判斷壓縮率的時(shí)間,V為不壓縮的數(shù)據(jù)在網(wǎng)絡(luò)間傳遞的時(shí)間。 假設(shè)采用對(duì)所有數(shù)據(jù)包進(jìn)行壓縮后判斷壓縮率的方法,則上述的1M文件的 V=ls, V=16s,那么整個(gè)傳輸過(guò)程所耗時(shí)間V為17s,比現(xiàn)有技術(shù)節(jié)約0,2s。
如果采用對(duì)第一個(gè)或者某個(gè)數(shù)據(jù)包進(jìn)行壓縮后判斷壓縮率的方法,由于 只需要對(duì)一個(gè)數(shù)據(jù)包進(jìn)行壓縮后判斷壓縮率,則V將大大減少,V=0.1s, r3'=16s,那么整個(gè)傳輸過(guò)程所耗時(shí)間V為16.1s,比現(xiàn)有技術(shù)節(jié)約l.ls。如果 采用本發(fā)明實(shí)施例的方法傳輸大小為IOOM、壓縮率為95%的文件,可以比現(xiàn) 有技術(shù)節(jié)約大致199s,大大提高了傳輸效率;而同時(shí)對(duì)于壓縮率低的文件, 仍然采用壓縮后傳輸,可以保證其傳輸效率。尤其對(duì)于網(wǎng)絡(luò)帶寬較小的環(huán)境,
9在傳輸尺寸大、而壓縮率高的文件時(shí),需要較長(zhǎng)時(shí)間,那么采用本發(fā)明實(shí)施 例的方法,能夠避免壓縮效率低、而耗時(shí)長(zhǎng)的壓縮與解壓時(shí)間,可以大大縮 短文件的傳輸時(shí)間,提高傳輸效率。
經(jīng)過(guò)計(jì)算,本發(fā)明的發(fā)明人發(fā)現(xiàn)將壓縮率閾值設(shè)置為80%較優(yōu);即當(dāng)判 斷傳輸數(shù)據(jù)包的壓縮率小于80%,則進(jìn)行壓縮后發(fā)送;否則,直接進(jìn)行發(fā)送。 本領(lǐng)域技術(shù)人員也可以根據(jù)實(shí)際情況將壓縮率閾值設(shè)置為其它值。
本領(lǐng)域技術(shù)人員可以理解,雖然上述說(shuō)明中,為便于理解,對(duì)方法的步 驟采用了順序性描述,但是應(yīng)當(dāng)指出,對(duì)于上述步驟的順序并不作嚴(yán)格限制。
本發(fā)明實(shí)施例提供的一種文件傳輸裝置,內(nèi)部結(jié)構(gòu)如圖2所示,包括 數(shù)據(jù)包生成模塊201、壓縮率確定模塊202、數(shù)據(jù)包壓縮傳輸模塊203。
數(shù)據(jù)包生成模塊201用于將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包。
壓縮率確定模塊202用于確定所述傳輸數(shù)據(jù)包的壓縮率。壓縮率確定模 塊202確定所述傳輸數(shù)據(jù)包的壓縮率的具體方法可以采用如上述步驟S102中 的方法,例如,可以包括如下單元之一
第 一單元,用于確定所述傳輸數(shù)據(jù)包中第 一個(gè)要被傳輸?shù)膫鬏敂?shù)據(jù)包的 壓縮率,以所述第一個(gè)要被傳輸?shù)膫鬏敂?shù)據(jù)包的壓縮率作為所有傳輸數(shù)據(jù)包 的壓縮率。
第二單元,用于確定各傳輸數(shù)據(jù)包的壓縮率,以各傳輸數(shù)據(jù)包的壓縮率 的平均值作為所述傳輸數(shù)據(jù)包的壓縮率。
第三單元,用于隨機(jī)抽取所述傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包,確定該 抽取的傳輸數(shù)據(jù)包的壓縮率,以該抽取的傳輸數(shù)據(jù)包的壓縮率作為所有傳輸 數(shù)據(jù)包的壓縮率。
述,此處不再贅述。
數(shù)據(jù)包壓縮傳輸模塊203用于判斷所述壓縮率確定模塊確定的壓縮率是 否小于設(shè)定值;若是,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所述傳輸數(shù)據(jù)包進(jìn)行傳輸。數(shù)據(jù)包壓縮傳輸模塊203中設(shè)置的設(shè)定值具體可 以為80%,也可以是i殳定的其它值。在實(shí)際應(yīng)用中,如果壓縮率確定才莫塊202 在確定傳輸數(shù)據(jù)包的壓縮率的過(guò)程中,已經(jīng)針對(duì)某個(gè)或某些或全部傳輸數(shù)據(jù) 包生成了壓縮包,那么數(shù)據(jù)包壓縮傳輸模塊203在需要進(jìn)行壓縮傳輸時(shí),不 必再重復(fù)進(jìn)行壓縮,而是利用已經(jīng)生成的壓縮包可以加快壓縮傳輸?shù)臅r(shí)間。
本發(fā)明實(shí)施例由于在進(jìn)行數(shù)據(jù)包傳輸之前,對(duì)數(shù)據(jù)包的壓縮率先進(jìn)行判 斷;如果確定壓縮率較低(比如壓縮率小于某個(gè)設(shè)定值),則對(duì)傳輸數(shù)據(jù)包進(jìn) 行壓縮后傳輸,此時(shí),由于傳輸數(shù)據(jù)包壓縮率低,需要傳輸?shù)臄?shù)據(jù)被大大壓 縮,從而節(jié)約了傳輸時(shí)間;如果判斷出壓縮率較高,由于壓縮前后并不能對(duì) 需要傳輸?shù)臄?shù)據(jù)有顯著的減少,則不進(jìn)行壓縮處理,直接進(jìn)行傳輸,從而節(jié) 省了發(fā)送方的壓縮時(shí)間,以及接收方的解壓時(shí)間,從整體上提高了傳輸效率。
由于根據(jù)某個(gè)或某幾個(gè)傳輸數(shù)據(jù)包(比如第一個(gè)傳輸數(shù)據(jù)包)的壓縮率 來(lái)確定文件的所有傳輸數(shù)據(jù)包的壓縮率,可以節(jié)省壓縮率的判斷時(shí)間,從而 更進(jìn)一步提高了系統(tǒng)對(duì)文件的傳輸效率。
是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤(pán)等。
還可以理解的是,附圖或?qū)嵤├兴镜难b置結(jié)構(gòu)僅僅是示意性的,表 示邏輯結(jié)構(gòu)。其中作為分離部件顯示的模塊可能是或者可能不是物理上分開(kāi) 的,作為模塊顯示的部件可能是或者可能不是物理模塊。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普 通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn) 飾,這些改進(jìn)和潤(rùn)飾也應(yīng)^L為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種文件傳輸方法,其特征在于,包括將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包后,確定所述傳輸數(shù)據(jù)包的壓縮率;若所述壓縮率小于設(shè)定值,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所述傳輸數(shù)據(jù)包進(jìn)行傳輸。
2、 如權(quán)利要求1所述的方法,其特征在于,所述確定所述傳輸數(shù)據(jù)包的 壓縮率,具體包括確定所述傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包的壓縮率,以該傳輸數(shù)據(jù)包的 壓縮率作為所述傳輸數(shù)據(jù)包的壓縮率;或者確定各傳輸數(shù)據(jù)包的壓縮率,以各傳輸數(shù)據(jù)包的壓縮率的平均值作為所 述傳輸數(shù)據(jù)包的壓縮率。
3、 如權(quán)利要求2所述的方法,其特征在于,所述確定所述傳輸數(shù)據(jù)包中 的一個(gè)傳輸數(shù)據(jù)包的壓縮率,具體為確定所述傳輸數(shù)據(jù)包中第一個(gè)要被傳輸?shù)膫鬏敂?shù)據(jù)包的壓縮率;或者 隨機(jī)抽取所述傳輸數(shù)據(jù)包中的一個(gè)傳輸數(shù)據(jù)包,確定該抽取的傳輸數(shù)據(jù) 包的壓縮率。
4、 如權(quán)利要求2或3所述的方法,其特征在于,確定所述傳輸數(shù)據(jù)包中 的某個(gè)數(shù)據(jù)包的壓縮率的具體方法為對(duì)該傳輸數(shù)據(jù)包進(jìn)行壓縮,得到壓縮后的數(shù)據(jù)包; 根據(jù)壓縮后的數(shù)據(jù)包的大小以及壓縮前的數(shù)據(jù)包的大小確定該數(shù)據(jù)包的壓縮率。
5、 如權(quán)利要求2或3所述的方法,其特征在于,確定所述傳輸數(shù)據(jù)包中 的某個(gè)數(shù)據(jù)包的壓縮率的具體方法為依次獲取該傳輸數(shù)據(jù)包中的設(shè)定字節(jié)的數(shù)據(jù),若獲取的數(shù)據(jù)與之前獲取 的數(shù)據(jù)不同,則記錄該數(shù)據(jù)到哈希表中;否則,記錄該數(shù)據(jù)的位置到位置記錄表;確定所述哈希表和位置記錄表所占字節(jié)數(shù)之和;根據(jù)所述哈希表和位置記錄表所占字節(jié)數(shù)之和與壓縮前的數(shù)據(jù)包的所占 字節(jié)數(shù)的比值確定該傳輸lt據(jù)包的壓縮率。
6、 如權(quán)利要求5所述的方法,其特征在于,所述設(shè)定字節(jié)具體為3個(gè)字節(jié)。
7、 如權(quán)利要求l-3任一所述的方法,其特征在于,所述設(shè)定值為0.8。
8、 一種文件傳輸裝置,其特征在于,包括數(shù)據(jù)包生成模塊,用于將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包; 壓縮率確定模塊,用于確定所述傳輸數(shù)據(jù)包的壓縮率; 數(shù)據(jù)包壓縮傳輸模塊,用于判斷所述壓縮率確定模塊確定的壓縮率是否大于設(shè)定值;若是,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所述傳輸數(shù)據(jù)包進(jìn)行傳輸。
9、 如權(quán)利要求8所述的裝置,其特征在于,所述壓縮率確定模塊具體用于確定所述傳輸數(shù)據(jù)包中第一個(gè)要被傳輸?shù)?傳輸數(shù)據(jù)包的壓縮率,以所述第一個(gè)要被傳輸?shù)膫鬏敂?shù)據(jù)包的壓縮率作為所 有傳輸數(shù)據(jù)包的壓縮率。
10、 如權(quán)利要求8所述的裝置,其特征在于,所述設(shè)定值為0.8。
全文摘要
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,尤其涉及在文件傳輸過(guò)程中提高傳輸效率的技術(shù)。本發(fā)明提供了一種文件傳輸裝置及方法,包括將需要傳輸?shù)奈募譃樵O(shè)定大小的傳輸數(shù)據(jù)包后,確定所述傳輸數(shù)據(jù)包的壓縮率;若所述壓縮率小于設(shè)定值,則對(duì)所述傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸;否則,直接將所述傳輸數(shù)據(jù)包進(jìn)行傳輸。由于在進(jìn)行數(shù)據(jù)包傳輸之前,對(duì)數(shù)據(jù)包的壓縮率先進(jìn)行判斷;如果確定壓縮率較低,則對(duì)傳輸數(shù)據(jù)包進(jìn)行壓縮后傳輸,此時(shí),需要傳輸?shù)臄?shù)據(jù)被大大壓縮,從而節(jié)約了傳輸時(shí)間;如果判斷出壓縮率較高,則不進(jìn)行壓縮處理,直接進(jìn)行傳輸,從而節(jié)省了發(fā)送方的壓縮時(shí)間,以及接收方的解壓時(shí)間,從整體上提高了傳輸效率。
文檔編號(hào)H04L1/00GK101552652SQ20091008440
公開(kāi)日2009年10月7日 申請(qǐng)日期2009年5月13日 優(yōu)先權(quán)日2009年5月13日
發(fā)明者斌 任, 余立華, 軍 劉, 飛 吳, 吳小廣, 斌 王, 陳喜明 申請(qǐng)人:北京交大思源科技有限公司