CN104184545B - 一种传输数据的方法及解码端、编码端 - Google Patents
一种传输数据的方法及解码端、编码端 Download PDFInfo
- Publication number
- CN104184545B CN104184545B CN201310200424.8A CN201310200424A CN104184545B CN 104184545 B CN104184545 B CN 104184545B CN 201310200424 A CN201310200424 A CN 201310200424A CN 104184545 B CN104184545 B CN 104184545B
- Authority
- CN
- China
- Prior art keywords
- data segment
- dictionaries
- decoding end
- coding
- coding side
- 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.)
- Active
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供一种传输数据的方法、编码端、解码端,所述方法中编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;当所述FP不存在,请求解码端数据段Chunk字典中所述数据段的空闲地址;存储所述数据段的FP和所述数据段的空闲地址到所述FP字典,并将所述数据段存储到临时缓存区;将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,同时,本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
Description
技术领域
本发明涉及通信领域,尤其涉及到一种传输数据的方法及解码端、编码端。
背景技术
数据冗余消除(Data redundancy elimination,DRE)的基本原理是从流量中找到重复的数据模式,用标签来代替重复数据,在接收端再把重复数据恢复出来。由于标签的长度远小于重复数据的长度,这样就可以节省流量。
现有技术中,DRE用于广域网中,数据中心(DC)与分支机构(BR)通过广域网(WideArea Network,WAN)连接,冗余消除设备(Redundancy Eliminate Appliance,REA)在DC、BR与WAN之间。从DC发出的数据在REA编码,用标签代替重复数据,经过WAN传输,数据在近BR的REA中解码,重建数据,最后发给BR。
现有技术中,REA的编码端一般由四部分组成:编码器、指纹(Fingerprint,FP)字典模块、数据段(Chunk)字典模块和地址管理模块。编码器控制整个编码流程,并完成对数据的分段。FP字典模块存储之前出现过数据段的FP。Chunk字典为数据段字典,存储之前出现过的数据段。地址管理模块用来管理Chunk字典中的空闲地址,当出现新的数据段时,该地址管理模块要提供存放该数据段的地址。
REA的解码端一般由三部分组成:解码器、FP字典和Chunk字典。解码器控制整个解码的流程,对接收的数据进行解析。FP字典存放FP对应的数据段的地址,利用该地址,从Chunk字典中读出数据段。Chunk字典存放数据段的内容。
例如,编码端将数据分段,并计算出数据段的指纹FP,在FP字典中查找该指纹是否存在,如FP不存在,编码端需要存储该数据段和FP,编码端向地址管理模块请求编码端Chunk字典中空闲地址,得到空闲地址后,编码端存储FP到FP字典,在chunk字典的空闲地址存储该Chunk,编码端将FP和Chunk一起编码,发送到解码端。解码器将收到的压缩数据解析,将FP存入FP字典,将Chunk存入Chunk字典,将数据重构后,向编码端发送解码成功消息。如FP存在,编码端用FP代替Chunk,并发送到解码端,解码器将收到的压缩数据解析,查询FP字典,获得Chunk所在的地址,将Chunk从Chunk字典中读出,将数据重构后,向编码端发送解码成功消息。
为了使解码端能正确的解码,要保证编码端的FP字典与解码端的FP字典一致,解码端的Chuck字典和FP。而实际中,由于解码端和编码端的字典大小不同、字典替换方法不同等原因,解码端字典往往与编码端字典不一致。当解码失败时,需要向编码端请求字典中的条目,这就造成了解码的延时增加和链路上报文数的增加。
对于编码端来说,Chunk字典只是在丢失Chunk的重传时才使用,但占据了大量的空间。此外,Chunk字典保存在存储设备上,造成了存储带宽的开销。对于解码端来说,FP字典只是用来获得Chunk的地址,但也占据了大量空间和存储带宽。
发明内容
本发明实施例提供了一种传输数据的方法,旨在解决如何节约编码端和解码端的存储空间和存储带宽的问题。
第一方面,一种传输数据的方法,所述方法包括:
编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
在FP字典中查找所述FP是否存在;
如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端。
结合第一方面,在第一方面的第一种可能的实现方式中,在将所述数据段对应的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端之后,所述方法还包括:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,还包括:
所述临时缓存区使用先入先出FIFO策略管理数据段。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
编码所述地址,将编码后的地址发送到所述解码端。
第二方面,一种传输数据的方法,所述方法包括:
接收编码端发送的编码后的数据段的空闲地址和所述数据段;
解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
结合第二方面,在第二方面的第一种可能的实现方式中,在向所述编码端发送解码成功的消息,包括:
接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
将所述数据段重构后,向所述编码端发送解码成功的消息。
第三方面,一种编码端,所述编码端包括:
计算单元,用于将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
查找单元,用于在FP字典中查找所述FP是否存在;
请求单元,用于如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
存储单元,用于当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
第一发送单元,用于将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端。
结合第三方面,在第三方面的第一种可能的实现方式中,所述编码端还包括释放单元,所述释放单元具体用于:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
结合第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述临时缓存区使用先入先出FIFO策略管理数据段。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述编码端还包括:
第一获取单元,用于当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地;
第一发送单元,用于编码所述地址,将编码后的地址发送到所述解码端。
第四方面,一种解码端,所述解码端包括:
接收单元,用于接收编码端发送的编码后的数据段的空闲地址和所述数据段;
解析单元,用于解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
第二发送单元,用于向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
结合第四方面,在第四方面的第一种可能的实现方式中,所述解码端还包括:
接收子单元,用于接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
第二获取单元,用于根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
第二发送单元,用于将所述数据段重构后,向所述编码端发送解码成功的消息。
本发明实施例提供的传输数据的方法中,编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;在FP字典中查找所述FP是否存在;如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,Chunk字典一般只需要TB量级的存储空间,对于吞吐量为40Gbps,压缩率为60%的编码器,能节省16Gbps访问存储的带宽。本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种传输数据的方法流程图;
图2是本发明实施例提供的一种传输数据的方法示意图;
图3是本发明实施例提供的一种传输数据的方法示意图;
图4是本发明实施例提供的一种传输数据的方法流程图;
图5是本发明实施例提供的一种传输数据的方法的应用场景图;
图6是本发明实施例提供的另一种传输数据的方法的应用场景图;
图7是本发明实施例提供的一种编码端的装置结构图;
图8是本发明实施例提供的一种解码端的装置结构图;
图9是本发明实施例提供的一种编码端的装置结构图;
图10是本发明实施例提供的一种解码端的装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种传输数据的方法流程图。如图1所示,所述方法包括:
S101,编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
具体的,参考图2,图2是本发明实施例提供的一种传输数据的方法示意图。如图2所示,在图2中的编码器将原始数据分段后,计算出分段后的数据段的指纹(Fingerprint,FP)。
S102,在FP字典中查找所述FP是否存在;
具体的,参考图2的S201,当编码器计算出所述数据段的FP后,在编码端的FP字典中查找所述数据段的FP是否在编码端的FP字典中存在。
S103,如果所述FP在编码端的FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
具体的,参考图2的S202-S203。
S202,当编码端的FP字典中未存储所述FP时,所述FP字典向编码器返回未存储所述FP的消息;
S203,编码器接收到所述未存储所述FP的消息后,向编码端的地址管理模块请求所述数据段在解码端存储的空闲地址。
S104,编码端获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
具体的,参考图2的S204-S206。
S204,所述编码器接收所述地址管理模块返回的空闲地址;
S205,编码器将所述数据段的FP存储到所述FP字典;
S206,编码器将所述数据段存储到Chunk暂存区。
S105,将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,使得解码端解析所述编码后的结果得到所述数据段的空闲地址和所述数据段,根据所述数据段的空闲地址,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置,向编码端发送解码成功的消息。
具体的,参考图2的S207-S211。
S207,编码器将所述数据段的空闲地址和所述数据段进行编码;
S208,将编码后的数据进行压缩,将压缩后的数据发送到解码端的解码器中;
S209,解码器解压缩所述压缩后的数据,解析解压缩后的数据获取所述数据段的空闲地址和所述数据段;
S210,将所述数据段存储在该空闲地址对应的Chunk字典的位置;
S211,解码器发送解码成功的消息到编码器,通知所述编码器解码成功。
可选地,在解码端向编码端发送解码成功的消息之后,还包括:
接收所述解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
具体的,当编码器接收到解码器发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
可选地,所述方法还包括:
所述临时缓存区使用先入先出(First In First Out,FIFO)策略管理数据段。
具体的,在编码端的临时缓存区使用FIFO策略管理数据段,当前一个数据段编码成功后,将对下一个数据段进行编码。
作为一种可选的实施例,所述方法还包括:
当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
编码所述地址,将编码后的地址发送到所述解码端。
具体的,参考图3,图3是本发明实施例提供的一种传输数据的方法示意图。如图3所示,所述方法包括:
S301,编码器将原始数据分段,计算分段后的数据段的FP,在编码端的FP字典中查找所述FP;
S302,若所述FP字典中预先存储所述FP和所述FP对应的空闲地址,则返回所述FP对应的空闲地址;
S303,用所述空闲地址代替所述数据段;
S304,将所述空闲地址进行压缩后发送到解码器;
S305,所述解码器解压缩得到所述空闲地址,根据所述空闲地址从解码端的Chunk字典中读取该数据段;
S306,所述解码端的Chunk字典返回所述数据段;
S307,解码器进行数据重构,将每一个数据段拼接后形成原始数据;
S308,解码器向所述编码器发送解码成功的消息。
本发明实施例提供的传输数据的方法中,编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;在FP字典中查找所述FP是否存在;如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,Chunk字典一般只需要TB量级的存储空间,对于吞吐量为40Gbps,压缩率为60%的编码器,能节省16Gbps访问存储的带宽。本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
参考图4,图4是本发明实施例提供的一种传输数据的方法流程图。如图4所示,所述方法包括:
S401,接收编码端发送的编码后的数据段的空闲地址和所述数据段;
具体的,参考图2的S208。
S402,解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
具体的,参考图2的S209-S210。
S403,向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
具体的,参考图2的S211。
作为一种可选的实施例,所述S403包括:
接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
将所述数据段重构后,向所述编码端发送解码成功的消息。
本发明实施例提供的传输数据的方法中,编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;在FP字典中查找所述FP是否存在;如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,Chunk字典一般只需要TB量级的存储空间,对于吞吐量为40Gbps,压缩率为60%的编码器,能节省16Gbps访问存储的带宽。本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
参考图5,图5是本发明实施例提供的一种传输数据的方法的应用场景图。如图5所示,是一个编码器对应多个解码器的场景。在实际中,一个DC和多个BR的情况比较常见,在DC处做编码,在BR处做解码。由于不同解码端的字典不完全相同,就需要编码器在编码时,要按照具体的解码器的字典来编码。在图5中有一个编码器和三个解码器。每个解码器有其自己的Chunk字典,而对应于每个解码器,编码器都有一个FP字典与之对应。编码过程中根据数据属于哪个解码器,选择相应的FP字典来编码。
参考图6,图6是本发明实施例提供的另一种传输数据的方法的应用场景图。在同时做编码和解码时,在同一Middlebox中配置编码器和解码器模块。编码器控制对端的解码器,而同一个Middlebox中的解码器受对端的编码器控制。同一个Middlebox中的编码器不影响同一个Middlebox中的解码器的功能,同一个Middlebox中的解码器不影响同一个Middlebox中的编码器的功能。
参考图7,图7是本发明实施例提供的一种编码端的装置结构图。如图7所示,所述装置包括计算单元701、查找单元702和请求单元703,其中:
计算单元701,用于将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
具体的,参考图2,图2是本发明实施例提供的一种传输数据的方法示意图。如图2所示,在图2中的编码器将原始数据分段后,计算出分段后的数据段的指纹FP。
查找单元702,用于在FP字典中查找所述FP是否存在;
具体的,参考图2的S201,当编码器计算出所述数据段的FP后,在编码端的FP字典中查找所述数据段的FP是否在编码端的FP字典中存在。
请求单元703,用于如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
具体的,参考图2的S202-S203。
S202,当编码端的FP字典中未存储所述FP时,向编码器返回未存储所述FP的消息;
S203,当编码器接收到所述消息后,向编码端的地址管理模块请求所述数据段在解码端存储的空闲地址。
存储单元704,用于当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
具体的,参考图2的S204-S206。
S204,所述编码器接收所述地址管理模块返回的空闲地址;
S205,编码器将所述数据段的FP存储到所述FP字典;
S206,编码器将所述数据段存储到Chunk暂存区。
第一发送单元705,用于将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,使得解码端解析所述编码后的结果得到所述数据段的空闲地址和所述数据段,根据所述数据段的空闲地址,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置,向编码端发送解码成功的消息。
具体的,参考图2的S207-S211。
S207,编码器将所述数据段的空闲地址和所述数据段进行编码;
S208,将编码后的数据进行压缩,将压缩后的数据发送到解码端的解码器中;
S209,解码器解压缩所述压缩后的数据,解析解压缩后的数据获取所述数据段的空闲地址和所述数据段;
S210,将所述数据段存储在该空闲地址对应的Chunk字典的位置;
S211,解码器发送解码成功的消息到编码器,通知所述编码器解码成功。
可选地,所述编码端还包括释放单元,所述释放单元具体用于:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
具体的,当编码器接收到解码器发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
可选地,所述临时缓存区使用先入先出FIFO策略管理数据段。
具体的,在编码端的临时缓存区使用先入先出(First In First Out,FIFO)策略管理数据段,当前一个数据段编码成功后,将对下一个数据段进行编码。
作为一种可选的实施例,所述编码端还包括:
第一获取单元,用于当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地;
第一发送单元,用于编码所述地址,将编码后的地址发送到所述解码端。
具体的,参考图3,图3是本发明实施例提供的一种传输数据的方法示意图。如图3所示,所述方法包括以下S:
S301,编码器将原始数据分段后,计算分段后的数据段的FP,在编码端的FP字典中查找所述FP;
S302,若所述FP字典中预先存储所述FP和所述FP对应的空闲地址,则返回所述FP对应的空闲地址;
S303,用所述空闲地址代替所述数据段Chunk;
S304,将所述空闲地址进行压缩后发送到解码器;
S305,所述解码器解压缩得到所述空闲地址,根据所述空闲地址从解码端的Chunk字典中读取该数据段;
S306,所述解码端的Chunk字典返回所述数据段;
S307,解码器进行数据重构,将每一个端数据段拼接后形成原始数据;
S308,解码器向所述编码器发送解码成功的消息。
本发明实施例提供一种编码端,所述编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;在FP字典中查找所述FP是否存在;如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,Chunk字典一般只需要TB量级的存储空间,对于吞吐量为40Gbps,压缩率为60%的编码器,能节省16Gbps访问存储的带宽。本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
参考图8,图8是本发明实施例提供的一种解码端的装置结构图。如图8所示,所述解码端包括以下单元:
接收单元801,用于接收编码端发送的编码后的数据段的空闲地址和所述数据段;
具体的,参考图2的S208。
解析单元802,用于解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
具体的,参考图2的S209-S210。
第二发送单元803,用于向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
具体的,参考图2的S211。
作为一种可选的实施例,所述解码端还包括:
接收子单元,用于接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
第二获取单元,用于根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
第二发送单元,用于将所述数据段重构后,向所述编码端发送解码成功的消息。
本发明实施例提供一种解码端,所述解码端接收编码端发送的编码后的数据段的空闲地址和所述数据段,解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置,向编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在编码端临时缓存区的数据段,从而实现编码端完全控制解码端FP字典,保证两端的FP字典完全同步,减少了字典不一致带来的解码错误;在编码端节省了Chunk字典,Chunk字典一般只需要TB量级的存储空间,对于吞吐量为40Gbps,压缩率为60%的编码器,能节省16Gbps访问存储的带宽。同时,本发明实施例在解码端节省了FP字典,进一步节省了存储容量和带宽。
参考图9,图9是本发明实施例提供的一种编码端的装置结构图。参考图9,图9是本发明实施例提供的一种编码端900,本发明具体实施例并不对所述编码端的具体实现做限定。所述编码端900包括:
处理器(processor)901,通信接口(Communications Interface)902,存储器(memory)903,总线904。
处理器901,通信接口902,存储器903通过总线904完成相互间的通信。
通信接口902,用于与解码端进行通信;
处理器901,用于执行程序。
具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器903,用于存放程序。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)。程序具体可以用于:
编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
在FP字典中查找所述FP是否存在;
如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端。
在将所述数据段对应的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端之后,所述方法还包括:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
还包括:
所述临时缓存区使用先入先出FIFO策略管理数据段。
还包括:
当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
编码所述地址,将编码后的地址发送到所述解码端。
参考图10,图10是本发明实施例提供的一种解码端的装置结构图。参考图10,图10是本发明实施例提供的一种解码端1000,本发明具体实施例并不对所述解码端的具体实现做限定。所述解码端1000包括:
处理器(processor)1001,通信接口(Communications Interface)1002,存储器(memory)1003,总线1004。
处理器1001,通信接口1002,存储器1003通过总线1004完成相互间的通信。
通信接口1002,用于与编码端进行通信;
处理器1001,用于执行程序。
具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1001可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1003,用于存放程序。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)。程序具体可以用于:
接收编码端发送的编码后的数据段的空闲地址和所述数据段;
解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
所述方法在S向编码端发送解码成功的消息之后,还包括:
接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
将所述数据段重构后,向所述编码端发送解码成功的消息。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (14)
1.一种传输数据的方法,其特征在于,所述方法包括:
编码端将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
在FP字典中查找所述FP是否存在;
如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,使得解码端解析所述编码后的结果得到所述数据段的空闲地址和所述数据段,根据所述数据段的空闲地址,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置。
2.根据权利要求1所述的方法,其特征在于,在将所述数据段对应的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端之后,所述方法还包括:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述临时缓存区使用先入先出FIFO策略管理数据段。
4.根据权利要求1-2任意一项所述的方法,其特征在于,还包括:
当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
编码所述地址,将编码后的地址发送到所述解码端。
5.根据权利要求3所述的方法,其特征在于,还包括:
当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
编码所述地址,将编码后的地址发送到所述解码端。
6.一种传输数据的方法,其特征在于,包括:
接收编码端发送的编码后的数据段的空闲地址和所述数据段;所述编码后的数据段的空闲地址为解码端数据段Chunk字典中所述数据段对应的空闲地址,由所述编码端在FP字典中未查找到分段后的数据段的指纹FP时请求得到;
解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
7.根据权利要求6所述的方法,其特征在于,在向所述编码端发送解码成功的消息,包括:
接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
将所述数据段重构后,向所述编码端发送解码成功的消息。
8.一种编码端,其特征在于,所述编码端包括:
计算单元,用于将数据分段得到分段后的数据段,并计算所述数据段的指纹FP;
查找单元,用于在FP字典中查找所述FP是否存在;
请求单元,用于如果所述FP在所述FP字典中不存在,请求解码端数据段Chunk字典中所述数据段对应的空闲地址;
存储单元,用于当获取所述空闲地址后,将所述数据段的FP和所述数据段对应的空闲地址存储到所述FP字典,并将所述数据段存储到临时缓存区;
第一发送单元,用于将所述数据段的空闲地址和所述数据段进行编码,并将编码后的结果发送到解码端,使得解码端解析所述编码后的结果得到所述数据段的空闲地址和所述数据段,根据所述数据段的空闲地址,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置。
9.根据权利要求8所述编码端,其特征在于,所述编码端还包括释放单元,所述释放单元具体用于:
接收解码端发送的解码成功的消息,释放存储在所述临时缓存区的数据段。
10.根据权利要求8或9所述的编码端,其特征在于,所述临时缓存区使用先入先出FIFO策略管理数据段。
11.根据权利要求8-9任意一项所述的编码端,其特征在于,所述编码端还包括:
第一获取单元,用于当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
第一发送单元,用于编码所述地址,将编码后的地址发送到所述解码端。
12.根据权利要求10所述的编码端,其特征在于,所述编码端还包括:
第一获取单元,用于当所述FP字典中存在所述FP时,则在所述编码端的FP字典中获取所述FP对应的数据段在所述解码端Chunck字典存储的空闲地址;
第一发送单元,用于编码所述地址,将编码后的地址发送到所述解码端。
13.一种解码端,其特征在于,所述解码端包括:
接收单元,用于接收编码端发送的编码后的数据段的空闲地址和所述数据段;所述编码后的数据段的空闲地址为解码端数据段Chunk字典中所述数据段对应的空闲地址,由所述编码端在FP字典中未查找到分段后的数据段的指纹FP时请求得到;
解析单元,用于解析所述编码后的数据段的空闲地址和所述数据段,将所述数据段存入所述解码端的Chunk字典中对应所述数据段的空闲地址的位置;
第二发送单元,用于向所述编码端发送解码成功的消息,使得所述编码端接收所述解码成功的消息后,释放存储在所述编码端临时缓存区的数据段。
14.根据权利要求13所述的解码端,其特征在于,所述解码端还包括:
接收子单元,用于接收所述编码端发送的编码后的数据段的空闲地址和所述数据段;
第二获取单元,用于根据所述数据段的空闲地址从解码端的Chuck字典中获取所述数据段;
第二发送单元,用于将所述数据段重构后,向所述编码端发送解码成功的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310200424.8A CN104184545B (zh) | 2013-05-27 | 2013-05-27 | 一种传输数据的方法及解码端、编码端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310200424.8A CN104184545B (zh) | 2013-05-27 | 2013-05-27 | 一种传输数据的方法及解码端、编码端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104184545A CN104184545A (zh) | 2014-12-03 |
CN104184545B true CN104184545B (zh) | 2018-01-02 |
Family
ID=51965317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310200424.8A Active CN104184545B (zh) | 2013-05-27 | 2013-05-27 | 一种传输数据的方法及解码端、编码端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104184545B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262740B (zh) * | 2015-09-25 | 2019-08-06 | 瑞斯康达科技发展股份有限公司 | 一种大数据传输方法和系统 |
CN110113402B (zh) * | 2019-04-28 | 2021-11-19 | 上海上湖信息技术有限公司 | 一种web服务通信的方法及装置 |
CN116260896A (zh) * | 2022-01-10 | 2023-06-13 | 深圳智慧林网络科技有限公司 | 基于函数的数据发送方法、装置、设备和数据接收方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
CN102194499A (zh) * | 2010-03-15 | 2011-09-21 | 华为技术有限公司 | 一种压缩字典同步的方法和装置 |
CN102880671A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种面向分布式文件系统的主动重复数据删除方法 |
CN103023796A (zh) * | 2012-12-25 | 2013-04-03 | 中国科学院深圳先进技术研究院 | 网络数据压缩方法和系统 |
CN103036642A (zh) * | 2011-10-09 | 2013-04-10 | 华为技术有限公司 | 一种数据的传输方法及发送端和接收端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7975071B2 (en) * | 2008-01-18 | 2011-07-05 | Microsoft Corporation | Content compression in networks |
-
2013
- 2013-05-27 CN CN201310200424.8A patent/CN104184545B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
CN102194499A (zh) * | 2010-03-15 | 2011-09-21 | 华为技术有限公司 | 一种压缩字典同步的方法和装置 |
CN103036642A (zh) * | 2011-10-09 | 2013-04-10 | 华为技术有限公司 | 一种数据的传输方法及发送端和接收端 |
CN102880671A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种面向分布式文件系统的主动重复数据删除方法 |
CN103023796A (zh) * | 2012-12-25 | 2013-04-03 | 中国科学院深圳先进技术研究院 | 网络数据压缩方法和系统 |
Non-Patent Citations (2)
Title |
---|
ooperative end-to-end traffic redundancy elimination for reducing cloud bandwidth cost;Lei Yu, Karan Saprat, Haiying Shen,Lin Ye;《2012 20th IEEE International Conference on Network Protocols (ICNP)》;20121102;第1-10页 * |
广域网数据压缩算法的研究与实现;毛允亭;《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》;20120615;第I138-2124页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104184545A (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9477682B1 (en) | Parallel compression of data chunks of a shared data object using a log-structured file system | |
US9817713B2 (en) | Distributed cache system utilizing multiple erasure codes | |
US8959155B1 (en) | Data compression through redundancy removal in an application acceleration environment | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
EP0877320A1 (en) | Terminal emulator data stream differencing system | |
CN110990358B (zh) | 一种解压缩方法、电子设备及计算机可读存储介质 | |
CN103645861A (zh) | 一种纠删码集群中失效节点的重构方法 | |
CN104184545B (zh) | 一种传输数据的方法及解码端、编码端 | |
CN107302582B (zh) | 千万级物联网场景的数据采集及弱推送方法 | |
CN111327603A (zh) | 数据传输方法、装置和系统 | |
CN103281156A (zh) | 一种数据压缩、解压缩方法及装置 | |
CN114594911B (zh) | 基于链下纠删码分布式存储的区块链数据存储系统及方法 | |
CN102981857A (zh) | 数据库集群的并行压缩海量数据装载方法 | |
CN105450712A (zh) | 一种数据传输方法及装置 | |
CN104836642A (zh) | 基于纠删编码的ltp协议优化设计方法 | |
CN111435288B (zh) | 数据的处理方法和装置 | |
US11782879B2 (en) | System and method for secure, fast communications between processors on complex chips | |
CN110474851A (zh) | 一种循环存储结构的存取方法及装置 | |
CN103577604B (zh) | 一种用于Hadoop分布式环境的图像索引结构 | |
CN104184672A (zh) | 一种传输报文的方法及装置 | |
CN103701865A (zh) | 一种数据传输的方法及系统 | |
CN114978427B (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
CN103036642A (zh) | 一种数据的传输方法及发送端和接收端 | |
CN102387123A (zh) | 一种优化x协议的远程桌面系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |