发明内容
本公开实施例提供一种数据传输方法及装置,能够解决现有技术方案中存在的降低码流与业务强相关、适用范围非常受限的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种数据传输方法,应用于数据中继设备,该方法包括:
接收数据并确定该数据的类型;
当该数据为特征值且下一节点是数据接收设备时,则根据该特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备;其中,映射表中存储有该特征值与该数据包的一一映射关系;
当该数据为特征值且下一节点是另一个数据中继设备时,则向另一个数据中继设备传输该特征值。
当一个数据包的特征值在各个数据中继设备的映射表中都存在时,各个数据中继设备也均已存有该数据包,从而当再次传输该数据包时只需在各个数据中继设备之间传递该数据包对应的特征值,而由数据接收设备前的一个数据中继设备根据特征值以及映射表查找出该数据包后发送给数据接收设备即可,从而实现降低传输过程中的码流且并不依赖于业务场景,解决了现有技术方案中存在的降低码流与业务强相关、适用范围非常受限的问题。
在一个实施例中,该方法还包括:
当该数据为数据包时,计算该数据包的特征值;
在映射表中查询该数据包的特征值是否存在;
若存在该数据包的特征值且下一节点是另一个数据中继设备,则向另一个数据中继设备传输该特征值。
如果一个数据包是发送端第一次通过传输路径向接收端传输,那么传输路径中的各个数据中继设备均会执行一遍本实施例中计算特征值、查询映射表发现该特征值不存在然后存储特征值以及该数据包的过程,这样的结果就是该数据包从发送端传输到接收端后,其中所有数据中继设备中的映射表中都会存有该特征值且所有数据中继设备中都会存有该数据包,后续各个数据中继设备再次传输该数据包时只需传输该特征值而无需传输该数据包进而降低了码流。
在一个实施例中,该方法还包括:
若存在该数据包的特征值且下一节点是数据接收设备,则根据该数据包的特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备。
当数据中继设备的映射表中存在该数据包的特征值时,说明之前已存储对应的数据包,当下一节点是数据接收设备时,只需根据特征值在已存储的数据中找到相应的数据包传输给数据接收设备,如此操作,既降低了传输过程中的码流,也实现了向数据接收设备传输实际数据。
在一个实施例中,该方法还包括:
若不存在该数据包的特征值,则判断映射表中存储的特征值的数量是否达到预设阈值;
若判断未达到预设阈值,则在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,将该数据包传输给下一节点。
当数据中继设备的映射表中不存在该数据包的特征值时,说明该数据包第一次接收,将该特征值加入映射表进行更新并存储该数据包,然后将数据包传输给下一节点。
在一个实施例中,该方法还包括:
若判断已达到预设阈值,则删除映射表中存储时间最早的一个特征值以及数据中继设备中存储的最早的一个特征值对应的数据包;
在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,将数据包传输给下一个节点。
通过删除存储时间最早的一个特征值及相应数据包,在预设阈值的范围内更新映射表以及数据中继设备存储的数据包,预设阈值用于控制数据中继设备存储合理的数据包的数量,预设阈值的设置跟时间相关,可以是时间t内数据中继设备存储的数据包的数量n,前述数据包的数量n即为预设阈值。
根据本公开实施例的第二方面,提供一种数据传输装置,该装置包括:
接收模块,用于接收数据并确定该数据的类型;
传输模块,用于当该数据为特征值且下一节点是数据接收设备时,则根据该特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备;其中,映射表中存储有该特征值与该数据包的一一映射关系;
传输模块,还用于当该数据为特征值且下一节点是另一个数据中继设备时,则向另一个数据中继设备传输该特征值。
当一个数据包的特征值在各个数据中继设备的映射表中都存在时,各个数据中继设备也均已存有该数据包,从而当再次传输该数据包时只需在各个数据中继设备之间传递该数据包对应的特征值,而由数据接收设备前的一个数据中继设备根据特征值以及映射表查找出该数据包后发送给数据接收设备即可,从而实现降低传输过程中的码流且并不依赖于业务场景,解决了现有技术方案中存在的降低码流与业务强相关、适用范围非常受限的问题。
在一个实施例中,该装置还包括:
计算模块,用于当该数据为数据包时,计算该数据包的特征值;
查询模块,用于在映射表中查询该数据包的特征值是否存在;
传输模块,还用于若存在该数据包的特征值且下一节点是另一个数据中继设备,则向另一个数据中继设备传输该特征值。
如果一个数据包是发送端第一次通过传输路径向接收端传输,那么传输路径中的各个数据中继设备均会执行一遍本实施例中计算特征值、查询映射表发现该特征值不存在然后存储特征值以及该数据包的过程,这样的结果就是该数据包从发送端传输到接收端后,其中所有数据中继设备中的映射表中都会存有该特征值且所有数据中继设备中都会存有该数据包,后续各个数据中继设备再次传输该数据包时只需传输该特征值而无需传输该数据包进而降低了码流。
在一个实施例中,传输模块,还用于若存在该数据包的特征值且下一节点是数据接收设备,则根据该数据包的特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备。
当数据中继设备的映射表中存在该数据包的特征值时,说明之前已存储对应的数据包,当下一节点是数据接收设备时,只需根据特征值在已存储的数据中找到相应的数据包传输给数据接收设备,如此操作,既降低了传输过程中的码流,也实现了向数据接收设备传输实际数据。
在一个实施例中,该装置还包括:
判断模块,用于若不存在该数据包的特征值,则判断映射表中存储的特征值的数量是否达到预设阈值;
存储模块,用于若判断未达到预设阈值,则在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,调用传输模块将该数据包传输给下一节点。
当数据中继设备的映射表中不存在该数据包的特征值时,说明该数据包第一次接收,将该特征值加入映射表进行更新并存储该数据包,然后将数据包传输给下一节点。
在一个实施例中,该装置还包括:
删除模块,用于若判断已达到预设阈值,则删除映射表中存储时间最早的一个特征值以及数据中继设备中存储的最早的一个特征值对应的数据包
存储模块,用于在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,调用传输模块将数据包传输给下一个节点。
通过删除存储时间最早的一个特征值及相应数据包,在预设阈值的范围内更新映射表以及数据中继设备存储的数据包,预设阈值用于控制数据中继设备存储合理的数据包的数量,预设阈值的设置跟时间相关,可以是时间t内数据中继设备可存储的数据包的数量n,前述数据包的数量n即为预设阈值。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
如图1所示为本公开实施例中数据传输的架构图,数据传输过程中涉及三种类型的节点,发送端设备(S端,例如可以是服务器)、数据中继设备(Relay、例如可以是中继服务器、转发服务器)以及末端设备(R端,例如可以是零终端),其中,数据中继设备可能有1个或多个。
本公开实施例中所述的数据包可以是网络中所传输的报文,包括但不限于用户数据报协议(User Datagram Protocol,UDP)报文、传输控制协议(Transmission ControlProtocol,TCP)报文、超文本传输协议(Hyper Text Transfer Protocol,HTTP)报文等。本公开实施例中的特征值是根据数据包以及相应的算法计算得到的可以唯一标识该数据包的数据,示例性的,前述算法可以是Hash算法、MD5算法、安全哈希算法(Secure HashAlgorithm,SHA1)、循环冗余校验(Cyclic Redundancy Check,CRC)等,相应的,特征值可以是Hash值,MD5值、SHA1值、CRC值等。
本公开实施例提供一种数据传输方法,应用于数据中继设备,如图2所示,包括以下步骤:
101、接收数据并确定该数据的类型。
具体的,数据中继设备接收上个节点传输的数据,并判断该数据是特征值还是数据包。
102、当该数据为特征值且下一节点是数据接收设备时,则根据该特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备;其中,映射表中存储有该特征值与该数据包的一一映射关系。
具体的,本公开实施例中,在传输的各个数据中继设备中添加了一个映射表,映射表中存储特征值与数据包的一一映射关系。映射表中的特征值对应的数据包均会存储到数据中继设备中,从而可以根据前述一一映射关系通过特征值在数据中继设备中找到对应的数据包并发送给数据接收设备。
103、当该数据为特征值且下一节点是另一个数据中继设备时,则向另一个数据中继设备传输该特征值。
具体的,当数据中继设备存在该特征值则存在从而确定该特征值对应数据包已存储在各个数据中继设备,则只需要将特征值向下一个数据中继设备传输即可。
本公开实施例提供的数据传输方法,当一个数据包的特征值在各个数据中继设备的映射表中都存在时,各个数据中继设备也均已存有该数据包,从而当再次传输该数据包时只需在各个数据中继设备之间传递该数据包对应的特征值,而由数据接收设备前的一个数据中继设备根据特征值以及映射表查找出该数据包后发送给数据接收设备即可,从而实现降低传输过程中的码流且并不依赖于业务场景,解决了现有技术方案中存在的降低码流与业务强相关、适用范围非常受限的问题。
如图3所示,在一个实施例中,该方法还可以包括:
104、当该数据为数据包时,计算该数据包的特征值。
105、在映射表中查询该数据包的特征值是否存在。
106、若存在该数据包的特征值且下一节点是另一个数据中继设备,则向另一个数据中继设备传输该特征值。
如果一个数据包是发送端第一次通过传输路径向接收端传输,那么传输路径中的各个数据中继设备均会执行一遍本实施例中计算特征值、查询映射表发现该特征值不存在然后存储特征值以及该数据包的过程,这样的结果就是该数据包从发送端传输到接收端后,其中所有数据中继设备中的映射表中都会存有该特征值且所有数据中继设备中都会存有该数据包,后续各个数据中继设备再次传输该数据包时只需传输该特征值而无需传输该数据包进而降低了码流。
如图3所示,在一个实施例中,该方法可以还包括:
107、若存在该数据包的特征值且下一节点是数据接收设备,则根据该数据包的特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备。
当数据中继设备的映射表中存在该数据包的特征值时,说明之前已存储对应的数据包,当下一节点是数据接收设备时,只需根据特征值在已存储的数据中找到相应的数据包传输给数据接收设备,如此操作,既降低了传输过程中的码流,也实现了向数据接收设备传输实际数据。
108、若不存在该数据包的特征值,则判断映射表中存储的特征值的数量是否达到预设阈值。
具体的,预设阈值的设置跟时间相关,可以是时间t内数据中继设备可存储的数据包的数量n,前述数据包的数量n即为预设阈值。
值得一提的是,对于视频图像类数据,可能仅仅在很短的时间内例如几秒内数据包重复率是比较高的,之后数据跟前两三秒的数据完全不同,那么上述时间t应该选取比较小的值例如2s,毕竟选个10s这么长时间,可能后8s的数据包存储到数据中继设备后再也不会再传输,那么存储后8s的数据包其实没有意义。本公开实施例中时间t可以根据实际经验选取合适的值,时间t确定后进而确定预设阈值。
109、若判断未达到预设阈值,则在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,将该数据包传输给下一节点。
当数据中继设备的映射表中不存在该数据包的特征值时,说明该数据包第一次接收,将该特征值加入映射表进行更新并存储该数据包,然后将数据包传输给下一节点,如果下一节点是数据中继设备则可以执行步骤104及后续相应步骤。
如图3所示,在一个实施例中,该方法可以还包括:
110、若判断已达到预设阈值,则删除映射表中存储时间最早的一个特征值以及数据中继设备中存储的最早的一个特征值对应的数据包。
具体的,通过删除存储时间最早的一个特征值及相应数据包,在预设阈值的范围内更新映射表以及数据中继设备存储的数据包。
111、在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,将数据包传输给下一个节点。
需要说明的是,如果一个数据包是发送端第一次通过传输路径向接收端传输,那么传输路径中的各个数据中继设备均会执行一遍本实施例中计算特征值、查询映射表发现该特征值不存在然后存储特征值以及该数据包的过程,这样的结果就是该数据包从发送端传输到接收端后,其中所有数据中继设备中的映射表中都会存有该特征值且所有数据中继设备中都会存有该数据包,后续各个数据中继设备再次传输该数据包时只需传输该特征值而无需传输该数据包进而降低了码流。
基于上述图2或图3对应的实施例中所描述的数据传输方法,下述为本公开装置实施例,可以用于执行上述本公开方法实施例。
本公开实施例提供一种数据传输装置,如图4所示,该数据传输装置40包括:
接收模块401,用于接收数据并确定该数据的类型;
传输模块402,用于当该数据为特征值且下一节点是数据接收设备时,则根据该特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备;其中,映射表中存储有该特征值与该数据包的一一映射关系;
传输模块402,还用于当该数据为特征值且下一节点是另一个数据中继设备时,则向另一个数据中继设备传输该特征值。
当一个数据包的特征值在各个数据中继设备的映射表中都存在时,各个数据中继设备也均已存有该数据包,从而当再次传输该数据包时只需在各个数据中继设备之间传递该数据包对应的特征值,而由数据接收设备前的一个数据中继设备根据特征值以及映射表查找出该数据包后发送给数据接收设备即可,从而实现降低传输过程中的码流且并不依赖于业务场景,解决了现有技术方案中存在的降低码流与业务强相关、适用范围非常受限的问题。
在一个实施例中,如图5所示,该装置40还包括:
计算模块403,用于当该数据为数据包时,计算该数据包的特征值;
查询模块404,用于在映射表中查询该数据包的特征值是否存在;
传输模块402,还用于若存在该数据包的特征值且下一节点是另一个数据中继设备,则向另一个数据中继设备传输该特征值。
如果一个数据包是发送端第一次通过传输路径向接收端传输,那么传输路径中的各个数据中继设备均会执行一遍本实施例中计算特征值、查询映射表发现该特征值不存在然后存储特征值以及该数据包的过程,这样的结果就是该数据包从发送端传输到接收端后,其中所有数据中继设备中的映射表中都会存有该特征值且所有数据中继设备中都会存有该数据包,后续各个数据中继设备再次传输该数据包时只需传输该特征值而无需传输该数据包进而降低了码流。
在一个实施例中,传输模块402,还用于若存在该数据包的特征值且下一节点是数据接收设备,则根据该数据包的特征值以及映射表在数据中继设备存储的数据中查找到对应的数据包并传输给数据接收设备。
当数据中继设备的映射表中存在该数据包的特征值时,说明之前已存储对应的数据包,当下一节点是数据接收设备时,只需根据特征值在已存储的数据中找到相应的数据包传输给数据接收设备,如此操作,既降低了传输过程中的码流,也实现了向数据接收设备传输实际数据。
在一个实施例中,如图5所示,该装置40还包括:
判断模块405,用于若不存在该数据包的特征值,则判断映射表中存储的特征值的数量是否达到预设阈值;
存储模块406,用于若判断未达到预设阈值,则在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,调用传输模块402将该数据包传输给下一节点。
当数据中继设备的映射表中不存在该数据包的特征值时,说明该数据包第一次接收,将该特征值加入映射表进行更新并存储该数据包,然后将数据包传输给下一节点。
在一个实施例中,如图5所示,该装置40还包括:
删除模块407,用于若判断已达到预设阈值,则删除映射表中存储时间最早的一个特征值以及数据中继设备中存储的最早的一个特征值对应的数据包
存储模块406,用于在将该数据包的特征值存储到映射表以及将该数据包存储到数据中继设备后,调用传输模块402将数据包传输给下一个节点。
通过删除存储时间最早的一个特征值及相应数据包,在预设阈值的范围内更新映射表以及数据中继设备存储的数据包,预设阈值用于控制数据中继设备存储合理的数据包的数量,预设阈值的设置跟时间相关,可以是时间t内数据中继设备可存储的数据包的数量n,前述数据包的数量n即为预设阈值。
基于上述图2对应的实施例中所描述的数据传输方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图2对应的实施例中所描述的数据传输方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。