网络数据传输方法和系统的制作方法

文档序号:7870050阅读:179来源:国知局
专利名称:网络数据传输方法和系统的制作方法
网络数据传输方法和系统方法
技术领域
本发明涉及网络技术领域,特别涉及一种网络数据传输方法和系统。背景技术
随着因特网流量的增加和越来越多高带宽消耗(bandwidth-1ntensive)应用的出现,广域网网络带宽越来越难以满足应用需求。
而在网络数据传输过程中,存在大量重复传输的数据,因此,如何识别网络数据传输过程中重复传输的数据,并降低重复数据的传输,是亟需解决的问题。
发明内容
基于此,有必要提供一种能降低在网络传输过程中重复数据的传输以提高网络带宽利用率的网络数据传输方法。
一种网络数据传输方法,包括以下步骤
第一通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;
第一通信端在第一数据指纹表中查找所述数据指纹是否存在,
若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识,将查找到的存储标识传送给第二通信端,
若否,则将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
在其中一个实施例中,所述方法还包括步骤
第二通信端接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二通信端接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二通信端接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
在其中一个实施例中,在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的步骤之前,所述方法还包括步骤
第二通信端检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识,将该数据分块和新的存储标识发送给第一通信端。在其中一个实施例中,所述还包括步骤第二通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;第二通信端在第二数据指纹表中查找所述数据指纹是否存在,若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识,将查找到的存储标识传送给第一通信端,若否,则将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。在其中一个实施例中,所述方法还包括步骤第一通信端接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;第一通信端接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;

第一通信端接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中,若是,则向第二通信端发送包含接收的存储标识的冲突应答。在其中一个实施例中,所述方法还包括步骤第二通信端接收第一通信端发送的冲突应答,将冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识,将添加的数据分块和新的存储标识发送给第一通信端。此外,还有必要提供一种能降低在网络传输过程中重复数据的传输以提高网络带宽利用率的网络数据传输系统。一种网络数据传输系统,包括第一通信端,第一通信端包括第一指纹计算模块,计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;第一查找模块,用于在第一数据指纹表中查找所述数据指纹是否存在,若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识;第一通信模块,用于将第一查找模块查找到的存储标识传送给第二通信端;第一数据添加模块,用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中;
第一通信模块还用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
在其中一个实施例中,所述系统还包括第二通信端,第二通信端包括
第二通信模块,用于接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第二查找模块,用于第二通信模块接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块;
第二数据添加模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置;
第二指纹计算模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;
第二数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
在其中一个实施例中,第二数据添加模块还用于在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的之前,检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;
第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
在其中一个实施例中,第二指纹计算模块还用于计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端;
第二查找模块还用于在第二数据指纹表中查找所述数据指纹是否存在,若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识;
第二通信模块还用于将第二查找模块查找到的存储标识传送给第一通信端;
第二数据添加模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第二数据分块表中已 存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中;
第二通信模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
在其中一个实施例中,第一通信模块还用于接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;
第一查找模块还用于第一通信模块接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;第一数据添加模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置;第一指纹计算模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;第一数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中;第一通信模块还用于接收的存储标识在第一数据分块表中对应的位置已经存储数据分块时,向第二通信端发送包含接收的存储标识的冲突应答。在其中一个实施例中,第二通信模块还用于接收第一通信端发送的冲突应答;第二数据添加模块还用于将第一通信端发送的冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表 中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识;第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。上述网络数据传输方法和系统中,第一通信端在将某一个数据分块第一次发送到第二通信端时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块发送给第二通信端,若第一通信端将已经发送给第二通信端的某一数据分块发送给第二通信端时,只将该数据分块的存储标识发送给第二通信端,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。

图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中数据分块表和数据指纹表中数据的同步,方便在网络数据传输过程中识别待传输的重复数据,减少重复数据的传输。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种网络数据传输方法,包括以下步骤 第一通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端; 第一通信端在第一数据指纹表中查找所述数据指纹是否存在, 若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识,将查找到的存储标识传送给第二通信端,若否,则将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
2.根据权利要求1所述的网络数据传输方法,其特征在于,所述方法还包括步骤 第二通信端接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识; 第二通信端接收到第一通信端发送的数据分块的存储标识时,在第二数据分块表中查找接收的存储标识对应的数据分块; 第二通信端接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
3.根据权利要求2所述的网络数据传输方法,其特征在于,在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的步骤之前,所述方法还包括步骤 第二通信端检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加到第二数据分块表末尾的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将该数据分块的数据指纹对应的存储标识修改为新的存储标识,将该数据分块和新的存储标识发送给第一通信端。
4.根据权利要求3所述的网络数据传输方法,其特征在于,所述还包括步骤 第二通信端计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端; 第二通信端在第二数据指纹表中查找所述数据指纹是否存在, 若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识,将查找到的存储标识传送给第一通信端,若否,则将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
5.根据权利要求4所述的网络数据传输方法,其特征在于,所述方法还包括步骤 第一通信端接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识; 第一通信端接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块;第一通信端接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置,计算接收的数据分块的数据指纹,将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中,若是,则向第二通信端发送包含接收的存储标识的冲突应答。
6.根据权利要求5所述的网络数据传输方法,其特征在于,所述方法还包括步骤第二通信端接收第一通信端发送的冲突应答,将冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识,将添加的数据分块和新的存储标识发送给第一通信端。
7.—种网络数据传输系统,包括第一通信端,其特征在于,第一通信端包括第一指纹计算模块,计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第二通信端;第一查找模块,用于在第一数据指纹表中查找所述数据指纹是否存在,若是,则在第一数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第一数据分块表中的存储标识;第一通信模块,用于将第一查找模块查找到的存储标识传送给第二通信端;第一数据添加模块,用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第一数据分块表中已存储数据分块末尾,获取待传输数据分块在第一数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第一数据指纹表中;第一通信模块还用于第一查找模块在第一数据指纹表中没有查找到所述数据指纹时, 将待传输数据分块和待传输数据分块的存储标识传送给第二通信端。
8.根据权利要求7所述的网络数据传输系统,其特征在于,所述系统还包括第二通信端,第二通信端包括第二通信模块,用于接收第一通信端发送的数据,判断第一通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识;第二查找模块,用于第二通信模块接收到第一通信端发送的数据分块的存储标识时, 在第二数据分块表中查找接收的存储标识对应的数据分块;第二数据添加模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置;第二指纹计算模块,用于第二通信模块接收到第一通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹;第二数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第二数据指纹表中。
9.根据权利要求8所述的网络数据传输系统,其特征在于,第二数据添加模块还用于在将接收的数据分块存储到第二数据分块表中与接收的存储标识对应的位置的之前,检查接收的存储标识在第二数据分块表中对应的位置是否已经存储数据分块,若是,则将接收的存储标识对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识; 第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
10.根据权利要求9所述的网络数据传输系统,其特征在于,第二指纹计算模块还用于计算待传输数据分块的数据指纹,该待传输数据分块的目的地为第一通信端; 第二查找模块还用于在第二数据指纹表中查找所述数据指纹是否存在,若是,则在第二数据指纹表中查找所述数据指纹对应的存储标识,所述存储标识为待传输数据分块在第二数据分块表中的存储标识; 第二通信模块还用于将第二查找模块查找到的存储标识传送给第一通信端; 第二数据添加模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块添加到第二数据分块表中已存储数据分块末尾,获取待传输数据分块在第二数据分块表中的存储标识,将待传输数据分块的数据指纹和待传输数据分块的存储标识对应插入到第二数据指纹表中; 第二通信模块还用于第二查找模块在第二数据指纹表中没有查找到所述数据指纹时,将待传输数据分块和待传输数据分块的存储标识传送给第一通信端。
11.根据权利要求10所述的网络数据传输系统,其特征在于,第一通信模块还用于接收第二通信端发送的数据,判断第二通信端发送的数据为数据分块的存储标识还是数据分块和数据分块的存储标识; 第一查找模块还用于第一通信模块接收到第二通信端发送的数据分块的存储标识时,在第一数据分块表中查找接收的存储标识对应的数据分块; 第一数据添加模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,检查接收的存储标识在第一数据分块表中对应的位置是否已经存储数据分块,若否,则将接收的数据分块存储到第一数据分块表中与接收的存储标识对应的位置;第一指纹计算模块还用于第一通信模块接收到第二通信端发送的数据分块和数据分块的存储标识时,计算接收的数据分块的数据指纹; 第一数据添加模块还用于将计算得到的数据指纹与接收的存储标识对应插入到第一数据指纹表中; 第一通信模块还用于接收的存储标识在第一数据分块表中对应的位置已经存储数据分块时,向第二通信端发送包含接收的存储标识的冲突应答。
12.根据权利要求11所述的网络数据传输系统,其特征在于,第二通信模块还用于接收第一通信端发送的冲突应答; 第二数据添加模块还用于将第一通信端发送的冲突应答中包含的存储标识在第二数据分块表中对应位置的数据分块添加到第二数据分块表中已存储数据分块末尾,获取添加的数据分块在第二数据分块表中的新的存储标识,在第二数据指纹表中将添加的数据分块的数据指纹对应的存储标识修改为新的存储标识; 第二通信模块还用于将添加的数据分块和新的存储标识发送给第一通信端。
全文摘要
一种网络数据传输方法,第一通信端在将某一个数据分块第一次发送到第二通信端时,先存储该数据分块,并存储该数据分块的数据指纹和数据分块的存储标识的对应关系,再将数据分块再次发送给第二通信端,若第一通信端将已经发送给第二通信端的某一数据分块发送给第二通信端时,只将该数据分块的存储标识发送给第二通信端,而不重复发送该数据分块,从而可降低在网络传输过程中重复数据的发送,提高网络传输带宽利用率。此外,还提供一种网络数据传输系统。
文档编号H04L1/00GK103067129SQ201210568448
公开日2013年4月24日 申请日期2012年12月24日 优先权日2012年12月24日
发明者刘进, 须成忠, 邱健聪, 闫茜, 彭贤斌, 陈凯, 陈光华 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1