CN103067129B - 网络数据传输方法和系统 - Google Patents
网络数据传输方法和系统 Download PDFInfo
- Publication number
- CN103067129B CN103067129B CN201210568448.4A CN201210568448A CN103067129B CN 103067129 B CN103067129 B CN 103067129B CN 201210568448 A CN201210568448 A CN 201210568448A CN 103067129 B CN103067129 B CN 103067129B
- Authority
- CN
- China
- Prior art keywords
- deblocking
- data
- storaging mark
- communication
- fingerprint
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 317
- 230000004044 response Effects 0.000 claims description 18
- 238000007689 inspection Methods 0.000 claims description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
一种网络数据传输方法,第一通信端在将某一个数据分块第一次发送到第二通信端时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块再次发送给第二通信端,若第一通信端将已经发送给第二通信端的某一数据分块发送给第二通信端时,只将该数据分块的存储标识发送给第二通信端,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。此外,还提供一种网络数据传输系统。
Description
【技术领域】
本发明涉及网络技术领域,特别涉及一种网络数据传输方法和系统。
【背景技术】
随着因特网流量的增加和越来越多高带宽消耗(bandwidth-intensive)应用的出现,广域网网络带宽越来越难以满足应用需求。
而在网络数据传输过程中,存在大量重复传输的数据,因此,如何识别网络数据传输过程中重复传输的数据,并降低重复数据的传输,是亟需解决的问题。
【发明内容】
基于此,有必要提供一种能降低在网络传输过程中重复数据的传输以提高网络带宽利用率的网络数据传输方法。
一种网络数据传输方法,包括以下步骤:
第一通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;
第一通信端在第一数据指纹表中查找所述数据指纹是否存在,
若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识,将查找到的存储标识传送给第二通信端,
若否,则将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
在其中一个实施例中,所述方法还包括步骤:
第二通信端接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二通信端接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二通信端接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
在其中一个实施例中,在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的步骤之前,所述方法还包括步骤:
第二通信端检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识,将该数据分块和新的存储标识发送给第一通信端。
在其中一个实施例中,所述还包括步骤:
第二通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;
第二通信端在第二数据指纹表中查找所述数据指纹是否存在,
若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识,将查找到的存储标识传送给第一通信端,
若否,则将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
在其中一个实施例中,所述方法还包括步骤:
第一通信端接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第一通信端接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;
第一通信端接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中,若是,则向第二通信端发送包含接收的存储标识的冲突应答。
在其中一个实施例中,所述方法还包括步骤:
第二通信端接收第一通信端发送的冲突应答,将冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识,将添加的数据分块和新的存储标识发送给第一通信端。
此外,还有必要提供一种能降低在网络传输过程中重复数据的传输以提高网络带宽利用率的网络数据传输系统。
一种网络数据传输系统,包括第一通信端,第一通信端包括:
第一指纹计算模块,计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;
第一查找模块,用于在第一数据指纹表中查找所述数据指纹是否存在,若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识;
第一通信模块,用于将第一查找模块查找到的存储标识传送给第二通信端;
第一数据添加模块,用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中;
第一通信模块还用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
在其中一个实施例中,所述系统还包括第二通信端,第二通信端包括:
第二通信模块,用于接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二查找模块,用于第二通信模块接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二数据添加模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置;
第二指纹计算模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;
第二数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
在其中一个实施例中,第二数据添加模块还用于在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的之前,检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;
第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
在其中一个实施例中,第二指纹计算模块还用于计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;
第二查找模块还用于在第二数据指纹表中查找所述数据指纹是否存在,若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识;
第二通信模块还用于将第二查找模块查找到的存储标识传送给第一通信端;
第二数据添加模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中;
第二通信模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
在其中一个实施例中,第一通信模块还用于接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第一查找模块还用于第一通信模块接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;
第一数据添加模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置;
第一指纹计算模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;
第一数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中;
第一通信模块还用于接收的存储标识在第一数据分块表中对应的位置已经存储数据分块时,向第二通信端发送包含接收的存储标识的冲突应答。
在其中一个实施例中,第二通信模块还用于接收第一通信端发送的冲突应答;
第二数据添加模块还用于将第一通信端发送的冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;
第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
上述网络数据传输方法和系统中,第一通信端在将某一个数据分块第一次发送到第二通信端时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块发送给第二通信端,若第一通信端将已经发送给第二通信端的某一数据分块发送给第二通信端时,只将该数据分块的存储标识发送给第二通信端,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。
【附图说明】
图1为一个实施例中的网络数据传输方法的流程示意图;
图2为一个实施例中第二通信端处理从第一通信端接收的数据的步骤的流程示意图;
图3为一个实施例中第二通信端向第一通信端发送数据的步骤的流程示意图;
图4为一个实施例中第一通信端处理从第二通信端接收的数据的步骤的流程示意图;
图5为一个实施例中第二通信端处理存储标识冲突的步骤的流程示意图;
图6为一个实施例中第一数据指纹表和第一数据分块表的数据结构示意图;
图7为一个实施例中的网络数据传输系统的结构示意图;
图8为另一实施例中的网络数据传输系统的结构示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种网络数据传输方法,包括以下步骤:
步骤S101,第一通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端。
步骤S102,第一通信端在第一数据指纹表中查找待传输数据分块的数据指纹是否存在,若是,则执行步骤S103,若否,则执行步骤S105。
步骤S103,在第一数据指纹表中查找待传输数据分块的数据指纹对应的存储标识,该存储标识为待传输数据分块在第一数据分块表中的存储标识。
具体的,数据分块在第一数据分块表中的存储标识可为数据分块在第一数据分块表存储的数据分块中的位置顺序,或在第一数据分块表中的存储地址。
步骤S104,将查找到的存储标识传送给第二通信端。
步骤S105,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾。
步骤S106,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中。
步骤S107,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
第一通信端与第二通信端采用基于TCP传输层协议进行通信。
上述网络数据传输方法中,第一通信端在将某一个数据分块第一次发送到第二通信端时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块发送给第二通信端,若第一通信端将已经发送给第二通信端的某一数据分块再次发送给第二通信端时,只将该数据分块的存储标识发送给第二通信端,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。
进一步的,如图2所示,上述网络数据传输方法还包括第二通信端处理从第一通信端接收的数据的步骤,具体过程包括以下步骤:
步骤S201,第二通信端接收第一通信端发送的数据。
步骤S202,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识。
第二通信端按照数据的接收时间顺序处理数据。
步骤S203,第二通信端接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块。
步骤S204,第二通信端接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
上述网络数据传输方法,可使得第二通信端的第二数据分块表和第二数据指纹表与第一通信端的第一数据分块表和第一数据指纹表的数据同步,从而第二通信端在向第一通信端发送数据分块时,同理可通过检查第二数据指纹表中待传输数据分块的数据指纹是否存在,若存在,说明第一通信端已经存储了该数据分块,则第二通信端不需要再将待传输数据分块发送到第一通信端,只需要发送该数据分块的存储标识即可,从而可减少数据发送流量,提高网络传输带宽的利用率。上述网络数据传输方法可在第一通信端与第二通信端之间双向收发数据时,减少重复数据的发送,提高网络传输带宽的利用率
进一步的,在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的步骤之前,上述网络数据传输方法还包括步骤:
第二通信端检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识,将该数据分块和新的存储标识发送给第一通信端。
进一步的,如图3所示,上述网络数据传输方法还包括第二通信端向第一通信端发送数据的步骤,具体过程包括以下步骤:
步骤S301,第二通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端。
步骤S302,第二通信端在第二数据指纹表中查找待传输数据分块的数据指纹是否存在,若是,则执行步骤S303,若否,则执行步骤S305。
步骤S303,在第二数据指纹表中查找待传输数据分块的数据指纹对应的存储标识,该存储标识为待传输数据分块在第二数据分块表中的存储标识。
具体的,数据分块在第二数据分块表中的存储标识可为数据分块在第二数据分块表存储的数据分块中的位置顺序,或在第二数据分块表中的存储地址。
步骤S304,将查找到的存储标识传送给第一通信端。
步骤S305,将待传输数据分块添加到第二数据分块表中已存储数据分块末尾。
步骤S306,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中。
步骤S307,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
进一步的,如图4所示,上述网络数据传输方法还包括第一通信端处理从第二通信端接收的数据的步骤,具体过程包括以下步骤:
步骤S401,第一通信端接收第二通信端发送的数据。
步骤S402,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识。
第一通信端按照数据的接收时间顺序处理数据。
步骤S403,第一通信端接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块。
步骤S404,第一通信端接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中,若是,则向第二通信端发送包含接收的存储标识的冲突应答。
进一步的,如图5所示,上述网络传输方法还包括第二通信端处理存储标识冲突的步骤,具体过程包括以下步骤:
步骤S501,第二通信端接收第一通信端发送的冲突应答,将冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾。
步骤S502,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识。
步骤S503,将添加的数据分块和新的存储标识发送给第一通信端。
进一步的,第一通信端可进行如步骤S403的处理。
上述网络数据传输方法,可使得第二通信端的第二数据分块表和第二数据指纹表与第一通信端的第一数据分块表和第一数据指纹表的数据同步,保证第二数据分块表和第一数据分块表中相同的数据分块存储在相同的位置,避免第二数据分块表和第一数据分块表中不同数据分块的存储标识产生冲突。
如图6所示,第一通信端维护第一数据指纹表和第一数据分块表。第一数据指纹表中包含数据指纹和存储标识两个字段,该存储标识为数据指纹对应的数据分块在第一数据分块表中的存储标识。第一数据分块表中包含数据分块和指纹地址两个字段,指纹地址为该指纹地址在第一数据分块表中对应的数据分块的数据指纹在第一数据指纹表中的存储地址。
第二通信端维护第二数据指纹表和第二数据分块表。第二数据指纹表的数据结构与第一数据指纹表的数据结构相同,第二数据分块表中的数据结构与第一数据分块表中的数据结构相同。
第一数据指纹表和第二指纹表存放于内存,第一数据分块表和第二数据分块表存入于外存。
在一个实施例中,上述网络数据传输方法还包括清除数据指纹表和数据分块表中数据的步骤,具体过程为:
第一通信端获取第一数据分块表中靠前的预设数据数量条记录中的指纹地址,在第一数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第一数据分块表中靠前的预设数量条记录。
第二通信端获取第二数据分块表中靠前的预设数据数量条记录中的指纹地址,在第二数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第二数据分块表中靠前的预设数量条记录。
第一通信端与第二通信端删除的记录数量一致。
在另一个实施例中,清除数据指纹表和数据分块表中数据的步骤具体包括以下步骤:
第一通信端统计第一数据指纹表和第一数据分块表的操作记录,得到最近最少使用的前预设数量个数据分块,在第一数据分块表中获取这些数据分块对应的指纹地址,在第一数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第一数据分块表中这些数据分块对应的记录,并将这些数据分块在第二数据分块表中的存储标识发送到第二通信端。
第二通信端接收第一通信端发送的已删除的数据分块的存储标识,在第二数据分块表中查找接收的存储标识对应的记录中的指纹地址,在第二数据指纹表中删除查找到的指纹地址对应的记录,进一步的,删除第二数据分块表中接收的存储标识对应的记录。
上述网络数据传输方法,可快速清除数据分块表和数据指纹表中的记录,保持第一通信端和第二通信端中数据分块表和数据指纹表中数据的同步,方便在网络数据传输过程中识别待传输的重复数据,减少重复数据的传输。
如图7所示,在一个实施例中,一种网络数据传输系统,包括第一通信端10,第一通信端10包括第一指纹计算模块110、第一查找模块120、第一通信模块130和第一数据添加模块140,其中:
第一指纹计算模块110用于计算目的地为第二通信端20的待传输数据分块的数据指纹。
第一查找模块120用于在第一数据指纹表中查找待传输数据分块的数据指纹是否存在,若是,则在第一数据指纹表中查找待传输数据分块的数据指纹对应的存储标识,该存储标识为待传输数据分块在第一数据分块表中的存储标识。
具体的,数据分块在第一数据分块表中的存储标识可为数据分块在第一数据分块表存储的数据分块中的位置顺序,或在第一数据分块表中的存储地址。
第一通信模块130用于将第一查找模块120查找到的存储标识传送给第二通信端20。
第一数据添加模块140用于第一查找模块120在第一数据指纹表中没有查找到待传输数据分块的数据指纹时,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中。
第一通信模块130还用于第一查找模块120在第一数据指纹表中没有查找到待传输数据分块的数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端20。
第一通信端10与第二通信端20之间基于TCP/IP协议进行通信。
上述网络数据传输系统中,第一通信端10在将某一个数据分块第一次发送到第二通信端20时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块发送给第二通信端20,若第一通信端10将已经发送给第二通信端20的某一数据分块发送给第二通信端20时,只将该数据分块的存储标识发送给第二通信端20,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。
进一步的,如图8所示,上述网络数据传输系统还包括第二通信端20,第二通信端20包括第二通信模块210、第二查找模块220、第二数据添加模块230和第二指纹计算模块240,其中:
第二通信模块210用于接收第一通信端10发送的数据,判断第一通信端10发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识。
第二通信端20按照数据的接收时间顺序处理数据。
第二查找模块220用于第二通信模块210接收到第一通信端10发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块。
第二数据添加模块230用于第二通信模块210接收到第一通信端10发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置。
第二指纹计算模块240用于第二通信模块210接收到第一通信端10发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹。
第二数据添加模块230还用于将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
上述网络数据传输系统,可使得第二通信端20的第二数据分块表和第二数据指纹表与第一通信端10的第一数据分块表和第一数据指纹表的数据同步,从而第二通信端20在向第一通信端10发送数据分块时,同理可通过检查第二数据指纹表中待传输数据分块的数据指纹是否存在,若存在,说明第一通信端10已经存储了该数据分块,则第二通信端20不需要再将待传输数据分块发送到第一通信端10,只需要发送该数据分块的存储标识即可,从而可减少数据发送流量,提高网络传输带宽的利用率。上述网络数据传输系统可在第一通信端10与第二通信端20之间双向收发数据时,减少重复数据的发送,提高网络传输带宽的利用率
进一步的,第二数据添加模块230还用于在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的之前,检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识。第二通信端20还用于将添加的数据分块和新的存储标识发送给第一通信端10。
进一步的,在第二通信端20向第一通信端10发送数据的过程中:
第二指纹计算模块240还用于计算目的地为第一通信端10的待传输数据分块的数据指纹。
第二查找模块220还用于在第二数据指纹表中查找待传输数据分块的数据指纹是否存在,若是,则在第二数据指纹表中查找待传输数据分块的数据指纹对应的存储标识,该存储标识为待传输数据分块在第二数据分块表中的存储标识。
具体的,数据分块在第二数据分块表中的存储标识可为数据分块在第二数据分块表存储的数据分块中的位置顺序,或在第二数据分块表中的存储地址。
第二通信模块210还用于将第二查找模块220查找到的存储标识传送给第一通信端10。
第二数据添加模块230还用于第二查找模块220在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中。
第二通信模块210还用于第二查找模块220在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端10。
进一步的,在第一通信端10处理从第二通信端20接收的数据的过程中:
第一通信模块130还用于接收第二通信端20发送的数据,判断第二通信端20发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识。
第一通信端10按照数据的接收时间顺序处理数据。
第一查找模块120还用于第一通信模块130接收到第二通信端20发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块。
第一数据添加模块140还用于第一通信模块130接收到第二通信端20发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置。
第一指纹计算模块110还用于第一通信模块130接收到第二通信端20发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹。
第一数据添加模块140还用于将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中。
第一通信模块130还用于接收的存储标识在第一数据分块表中对应的位置已经存储数据分块时,向第二通信端20发送包含接收的存储标识的冲突应答。
进一步的,在第二通信端20处理存储标识冲突问题的过程中:
第二通信模块210还用于接收第一通信端10发送的冲突应答。
第二数据添加模块230还用于将第一通信端10发送的冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识。
第二通信模块210还用于将添加的数据分块和新的存储标识发送给第一通信端10。
上述网络数据传输系统,可使得第二通信端20的第二数据分块表和第二数据指纹表与第一通信端10的第一数据分块表和第一数据指纹表的数据同步,保证第二数据分块表和第一数据分块表中相同的数据分块存储在相同的位置,避免第二数据分块表和第一数据分块表中不同数据分块的存储标识产生冲突。
进一步的,第一通信端10还包括第一存储模块(图中未示出),第二通信端20还包括第二存储模块(图中未示出)。
如图6所示,第一存储模块维护第一数据指纹表和第一数据分块表。第一数据指纹表中包含数据指纹和存储标识两个字段,该存储标识为数据指纹对应的数据分块在第一数据分块表中的存储标识。第一数据分块表中包含数据分块和指纹地址两个字段,指纹地址为该指纹地址在第一数据分块表中对应的数据分块的数据指纹在第一数据指纹表中的存储地址。
第二存储模块维护第二数据指纹表和第二数据分块表。第二数据指纹表的数据结构与第一数据指纹表的数据结构相同,第二数据分块表中的数据结构与第一数据分块表中的数据结构相同。
第一数据指纹表和第二指纹表存放于内存,第一数据分块表和第二数据分块表存入于外存。
进一步的,第一通信端10还包括第一数据清除模块(图中未示出),第二通信端20还包括第二数据清除模块(图中未示出)。
在一个实施例中,第一数据清除模块获取第一数据分块表中靠前的预设数据数量条记录中的指纹地址,在第一数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第一数据分块表中靠前的预设数量条记录。第二数据清除模块获取第二数据分块表中靠前的预设数据数量条记录中的指纹地址,在第二数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第二数据分块表中靠前的预设数量条记录。第一通信端10与第二通信端20删除的记录数量一致。
在另一个实施例中,第一数据清除模块统计第一数据指纹表和第一数据分块表的操作记录,得到最近最少使用的前预设数量个数据分块,在第一数据分块表中获取这些数据分块对应的指纹地址,在第一数据指纹表中删除获取的指纹地址对应的记录,进一步的,删除第一数据分块表中这些数据分块对应的记录。第一通信模块130将这些数据分块在第二数据分块表中的存储标识发送到第二通信端20。第二通信模块210接收第一通信端10发送的已删除的数据分块的存储标识。第二数据清除模块在第二数据分块表中查找接收的存储标识对应的记录中的指纹地址,在第二数据指纹表中删除查找到的指纹地址对应的记录,进一步的,删除第二数据分块表中接收的存储标识对应的记录。
上述网络数据传输系统,可快速清除数据分块表和数据指纹表中的记录,保持第一通信端10和第二通信端20中数据分块表和数据指纹表中数据的同步,方便在网络数据传输过程中识别待传输的重复数据,减少重复数据的传输。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种网络数据传输方法,包括以下步骤:
第一通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;
第一通信端在第一数据指纹表中查找所述数据指纹是否存在,
若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识,将查找到的存储标识传送给第二通信端,
若否,则将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中,将待传输数据分块和其存储标识传送给第二通信端。
2.根据权利要求1所述的网络数据传输方法,其特征在于,所述方法还包括步骤:
第二通信端接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二通信端接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二通信端接收到第一通信端发送的数据分块和其存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
3.根据权利要求2所述的网络数据传输方法,其特征在于,在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的步骤之前,所述方法还包括步骤:
第二通信端检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识,将该数据分块和新的存储标识发送给第一通信端。
4.根据权利要求3所述的网络数据传输方法,其特征在于,所述还包括步骤:
第二通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;
第二通信端在第二数据指纹表中查找所述数据指纹是否存在,
若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识,将查找到的存储标识传送给第一通信端,
若否,则将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中,将待传输数据分块和其存储标识传送给第一通信端。
5.根据权利要求4所述的网络数据传输方法,其特征在于,所述方法还包括步骤:
第一通信端接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第一通信端接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;
第一通信端接收到第二通信端发送的数据分块和其存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中,若是,则向第二通信端发送包含接收的存储标识的冲突应答。
6.根据权利要求5所述的网络数据传输方法,其特征在于,所述方法还包括步骤:
第二通信端接收第一通信端发送的冲突应答,将冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识,将添加的数据分块和新的存储标识发送给第一通信端。
7.一种网络数据传输系统,包括第一通信端,其特征在于,第一通信端包括:
第一指纹计算模块,计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;
第一查找模块,用于在第一数据指纹表中查找所述数据指纹是否存在,若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识;
第一通信模块,用于将第一查找模块查找到的存储标识传送给第二通信端;
第一数据添加模块,用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中;
第一通信模块还用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和其存储标识传送给第二通信端。
8.根据权利要求7所述的网络数据传输系统,其特征在于,所述系统还包括第二通信端,第二通信端包括:
第二通信模块,用于接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二查找模块,用于第二通信模块接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二数据添加模块,用于第二通信模块接收到第一通信端发送的数据分块和其存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置;
第二指纹计算模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;
第二数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
9.根据权利要求8所述的网络数据传输系统,其特征在于,第二数据添加模块还用于在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的之前,检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;
第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
10.根据权利要求9所述的网络数据传输系统,其特征在于,第二指纹计算模块还用于计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;
第二查找模块还用于在第二数据指纹表中查找所述数据指纹是否存在,若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识;
第二通信模块还用于将第二查找模块查找到的存储标识传送给第一通信端;
第二数据添加模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中;
第二通信模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和其存储标识传送给第一通信端。
11.根据权利要求10所述的网络数据传输系统,其特征在于,第一通信模块还用于接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第一查找模块还用于第一通信模块接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;
第一数据添加模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置;
第一指纹计算模块还用于第一通信模块接收到第二通信端发送的数据分块和其存储标识时,计算接收的数据分块的数据指纹;
第一数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中;
第一通信模块还用于接收的存储标识在第一数据分块表中对应的位置已经存储数据分块时,向第二通信端发送包含接收的存储标识的冲突应答。
12.根据权利要求11所述的网络数据传输系统,其特征在于,第二通信模块还用于接收第一通信端发送的冲突应答;
第二数据添加模块还用于将第一通信端发送的冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;
第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210568448.4A CN103067129B (zh) | 2012-12-24 | 2012-12-24 | 网络数据传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210568448.4A CN103067129B (zh) | 2012-12-24 | 2012-12-24 | 网络数据传输方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103067129A CN103067129A (zh) | 2013-04-24 |
CN103067129B true CN103067129B (zh) | 2015-10-28 |
Family
ID=48109604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210568448.4A Active CN103067129B (zh) | 2012-12-24 | 2012-12-24 | 网络数据传输方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103067129B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836632A (zh) * | 2014-02-12 | 2015-08-12 | 鸿富锦精密工业(深圳)有限公司 | 网络数据传输管理方法及系统 |
CN105630816A (zh) * | 2014-11-03 | 2016-06-01 | 东方钢铁电子商务有限公司 | 电子平台的后台数据系统 |
CN106657177A (zh) * | 2015-10-29 | 2017-05-10 | 中兴通讯股份有限公司 | 一种网络重构的方法及系统 |
CN105786441B (zh) | 2016-01-29 | 2019-01-25 | 腾讯科技(深圳)有限公司 | 一种音频处理的方法、服务器、用户设备及系统 |
CN106790653B (zh) * | 2017-01-17 | 2020-04-24 | 上海泓智信息科技有限公司 | 文件传输处理方法及装置 |
CN108243256B (zh) * | 2018-01-19 | 2020-08-04 | 网宿科技股份有限公司 | 一种数据存储方法、编码设备及解码设备 |
CN111385212B (zh) * | 2018-12-29 | 2021-08-31 | 华为技术有限公司 | 数据传输技术及神经网络系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216791A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 基于指纹的文件备份方法 |
CN101295318A (zh) * | 2008-06-24 | 2008-10-29 | 北京金山软件有限公司 | 数据查找的方法及装置 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
CN102571936A (zh) * | 2011-12-23 | 2012-07-11 | 华为技术有限公司 | 数据查找的方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943023B2 (en) * | 2010-12-29 | 2015-01-27 | Amazon Technologies, Inc. | Receiver-side data deduplication in data systems |
-
2012
- 2012-12-24 CN CN201210568448.4A patent/CN103067129B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216791A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 基于指纹的文件备份方法 |
CN101295318A (zh) * | 2008-06-24 | 2008-10-29 | 北京金山软件有限公司 | 数据查找的方法及装置 |
CN102495894A (zh) * | 2011-12-12 | 2012-06-13 | 成都市华为赛门铁克科技有限公司 | 重复数据查找方法、装置及系统 |
CN102571936A (zh) * | 2011-12-23 | 2012-07-11 | 华为技术有限公司 | 数据查找的方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
一种基于内容地址存储的文件级备份系统;徐旭 等;《计算机工程》;20100831;第36卷(第16期);第60-67页 * |
基于字节指纹极值特征的数据分块算法;孙继忠 等;《计算机工程》;20100420;第36卷(第8期);第69-73页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103067129A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067129B (zh) | 网络数据传输方法和系统 | |
CN104484295B (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN102932224A (zh) | 基于can网络的数据通讯系统及基于该系统的数据通讯方法 | |
CN203151742U (zh) | 网络客户端与北斗rdss终端短消息互通系统 | |
CN102035751A (zh) | 一种数据的传输方法和设备 | |
CN103546467A (zh) | 在TCP/IP网络上传输Modbus RTU协议的方法 | |
CN102420876A (zh) | 基于android智能移动终端中点对点主动推送文件的方法 | |
CN103546258B (zh) | 一种数据传输方法及装置 | |
CN101782891B (zh) | 一种分布式系统通信的方法及系统 | |
CN106301969A (zh) | Http长链接的管理方法及系统 | |
CN103684974A (zh) | 邮件处理方法及系统 | |
CN107819853B (zh) | 一种数据传输方法及装置 | |
CN103220408A (zh) | 一种基于具有近场通讯模块手机的名片交换方法 | |
CN103888364A (zh) | 报文分流方法及设备 | |
CN101610217B (zh) | 实现在扩展处理器和交换芯片之间传输报文的方法和系统 | |
CN106851537B (zh) | 一个终端蓝牙与多个低功耗蓝牙连接的系统及其方法 | |
CN102355493B (zh) | 数据传输系统和数据传输方法 | |
CN204204033U (zh) | 基于无线网络的电子商务系统 | |
CN102694712A (zh) | 网络系统及网络至网络桥接器 | |
CN103793343B (zh) | 一种串口传输数据的实现方法及系统 | |
CN102447597B (zh) | 一种实现ip有效性检测的方法及装置 | |
CN102348261A (zh) | 无线局域网接入点系统及方法 | |
CN102404235B (zh) | 包转发方法及现场可编程门阵列 | |
CN104378778A (zh) | 物联网中主从站之间进行通信的方法、系统及转换网关 | |
CN103944875A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
OL01 | Intention to license declared |