数据报文去重与传输方法、电子设备及存储介质转让专利
申请号 : CN202110287932.9
文献号 : CN113055127B
文献日 : 2022-03-08
发明人 : 陈晓彬
申请人 : 网宿科技股份有限公司
摘要 :
权利要求 :
1.一种数据报文去重方法,其特征在于,包括:接收端接收数据报文,确定所述数据报文的类型以及所述数据报文长度;
根据所述数据报文的类型,获取所述数据报文的识别特征,所述识别特征用于识别所述数据报文是否为重复报文;
在本地记录中查找所述数据报文所属的数据流标识和所述数据报文长度对应的去重依据信息,所述去重依据信息中记录有数据报文的识别特征;
当确定在所述本地记录中查找到所述去重依据信息时,将获取的所述数据报文的识别特征与查找到的所述去重依据信息进行比对;
当根据比对结果确定需要对所述数据报文进行去重处理时,则丢弃所述数据报文。
2.如权利要求1所述的方法,其特征在于,还包括:当确定在所述本地记录中未查找到所述去重依据信息时,在所述本地记录中创建所述数据报文所属的数据流标识和所述数据报文长度与新增去重依据信息的对应关系,其中所述新增去重依据信息包含所述数据报文的识别特征。
3.如权利要求1或2所述的方法,其特征在于,如果所述数据报文的类型为指定类型,所述识别特征包括校验和,或者校验和以及特定字段的数据内容;如果所述数据报文的类型为非指定类型,所述识别特征包括所述数据报文对应的数字指纹。
4.如权利要求3所述的方法,其特征在于,通过以下方式确定所述数据报文所属的数据流标识:
当确定所述数据报文的类型为所述指定类型时,获取所述数据报文的五元组信息,计算所述五元组信息的哈希值,将所述五元组信息的哈希值作为所述数据报文所属的数据流标识;
当确定所述数据报文的类型为所述非指定类型时,获取所述数据报文对应的源IP和目的IP信息,计算所述源IP和目的IP信息的哈希值,将所述数据报文对应的源IP和目的IP信息的哈希值作为所述数据报文所属的数据流标识。
5.如权利要求1所述的方法,其特征在于,所述将获取的所述数据报文的识别特征与查找到的所述去重依据信息进行比对,具体包括:确定所述去重依据信息中是否包含所述数据报文的识别特征,若包含,则比对结果为所述数据报文为重复报文;若不包含,则比对结果为所述数据报文不是重复报文。
6.如权利要求5所述的方法,其特征在于,还包括:所述去重依据信息中的每一个识别特征设置有效时长;
当确定所述去重依据信息的生存时间超出所述有效时长时,则将所述去重依据信息从所述本地记录中删除;或者,
当确定所述去重依据信息包含所述数据报文的识别特征时,确定所述去重依据信息中的所述识别特征的生存时间是否超出所述有效时长,若超出,则比对结果为所述数据报文不是重复报文。
7.如权利要求6所述的方法,其特征在于,还包括:在确定所述去重依据信息中的所述识别特征的生存时间超出所述有效时长后,更新所述去重依据信息中的所述识别特征对应的记录。
8.如权利要求5所述的方法,其特征在于,还包括:若所述去重依据信息中不包含所述数据报文的识别特征,则在所述去重依据信息中新增所述数据报文的识别特征记录,并为其设置有效时长。
9.一种数据报文传输方法,其特征在于,包括:发送端将数据报文复制后发送至同一接收端;
所述接收端利用如权利要求1~7任一项所述的数据报文去重方法对接收到的数据报文进行去重处理;
所述接收端当确定所述数据报文不是重复数据报文时,对所述数据报文进行转发或响应。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~8任一项所述的数据报文去重方法或者如权利要求9所述的数据报文传输方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~8任一项所述的数据报文去重方法或者如权利要求9所述的数据报文传输方法中的步骤。
说明书 :
数据报文去重与传输方法、电子设备及存储介质
技术领域
背景技术
数据报文一并发送至接收端,由于传输过程中的丢包率是一定存在的,通过发送多个相关
数据报文可降低接收端无法接收到该数据报文的概率,从而提高数据传输的可靠性,基于
此,对于接收端来说,可能会接收到多个相同的数据报文,那么相应的,就需要对接收到的
数据报文进行去重处理,以避免对相同数据报文重复处理而出现的问题,如数据提交异常、
占用设备资源等。
接收到数据报文后,针对相同标识的数据报文,对于首次接收到的该标识的数据报文进行
放行,对于非首次接收到的该标识的数据报文进行丢弃,从而实现数据报文的复制与去重。
含客户端的设备,该些客户端设备可能处理性能有限,无法实现对大量数据报文的标准处
理,也可能不对外开放权限,无法对其进行改造,可见,现有的方法无法适用这些场景,存在
局限性,无法灵活适配各种应用场景。
发明内容
对数据报文进行任何修改,相比于现有技术,大大降低了对发送端的性能和权限要求,适应
性更强。
中所述新增去重依据信息包含所述数据报文的识别特征。
文,则提取第一次接收的该数据报文的识别特征作为新增去重依据信息,建立所述数据报
文所属的数据流标识和所述数据报文长度与新增去重依据信息的对应关系,将该对应关系
记录进本地记录中,用于对后续数据报文的识别。
括所述数据报文对应的数字指纹。
特定字段的数据内容,当数据报文的类型为非指定类型(即除上述指定类型以外的其他类
型)时,则获取的数据报文的识别特征包括数据报文对应的数字指纹。也就是说,接收端在
接收到数据报文后,可以根据数据报文的类型确定识别特征。由于网络中绝大部分的数据
报文是都具有校验和字段类型的数据报文,如TCP(Transmission Control Protocol,传输
控制协议)报文、UDP(User Datagram Protocol,用户数据报协议)报文、ICMP(Internet
Control Message Protocol,Internet控制消息协议)报文,一般而言,不同数据报文的校
验和不相同,因此,可直接提取数据报文中的校验和作为该数据报文的识别特征,可以理解
的是,在一些特殊的情况下,不同数据报文的校验和也可能相同,因此单纯以校验和作为识
别特征,也可能会出现误判的情况,较佳的,为了进一步提升识别准确性,还可结合数据报
文中特定字段的内容与校验和一同作为识别特征。针对极少不具有校验和的数据报文,则
通过对数据报文计算得到对应的数字指纹作为识别特。由于数字指纹的计算需要耗费大量
的CPU等性能资源,相比而言,校验和以及特定字段内容的提取耗费的资源小很多,因此,可
较大地节约CPU资源开销,提高接收端去重效率。
数据流标识;
IP信息的哈希值作为所述数据报文所属的数据流标识。
述数据报文所属的数据流,本地记录中的数据流标识记录的即为数据报文的五元组信息的
哈希值,由于五元组信息的哈希值相比于五元组信息占用内存较少,因此,相比于直接以数
据报文的五元组信息来标识数据报文所属的数据流,可以节约内存。针对除指定类型之外
的其他类型的数据报文,以所述数据报文的源IP和目的IP信息的哈希值作为所述数据报文
所属的数据流标识,来标识所述数据报文所属的数据流,本地记录中的数据流信息记录的
即为数据报文的源IP和目的IP信息的哈希值,相比于直接以数据报文的源IP和目的IP信息
来标识数据报文所属的数据流,节约了内存。
报文不是重复报文。
将其作为去重的依据,从而节约内存资源;或者,如果该去重依据信息包含数据报文的识别
特征时,如果该去重依据信息中的所述识别特征的生存时间超出该有效时长,则判定数据
报文不是重复报文,之所以设置该有效时长,是由于在正常的网络传输过程中,对于被标定
的某一条数据流,由于有效时长(如可以为200ms)的限制,该有效时长内的数据报文数量相
对会较少,因此,在较少的数据报文数量内,由于校验和计算算法对同一条数据流不同的数
据报文计算出同样校验和值的概率,或者对同一条数据流不同的数据报文的数据部分计算
出的相同数字指纹的概率可以认为微乎其微,因此,对这些识别特征设置有效时长,进一步
提高了数据报文去重的准确率。
所述的数据报文去重方法或者数据报文传输方法。
的步骤。
书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
具体实施方式
明中的实施例及实施例中的特征可以相互组合。
网络系统中,在该网络架构中可以包括源端设备(如客户端设备)、源端接入设备、中转节
点、目的端接入设备和目的端设备。
据接收端。
务。其中,源端接入设备可用于将所在局域网内用户发送的数据报文转发至由中转节点设
备构建的加速网络中,目的端接入设备可用于将来自加速网络的数据反馈给所在局域网内
的用户,可以理解的是源端和目的端用于标识在一次数据收发过程中的数据发送和数据接
收端,一个具体的接入设备既可以是源端接入设备,也可以是目的端接入设备。
本实施例中以源端接入设备作为报文复制的发送端,目的端接入设备为报文去重的接收端
为例,进行说明。
务质量,该些数据报文可分别基于不同的线路,例如,如图1中所示,复制后得到的数据报文
可分别经由网络路径1和网络路径2发送至目的端接入设备,其中,网络路径1和网络路径2
可以为两条VPN(Virtual Private Network,虚拟专用网络)隧道,以保证数据传输的安全
性,目的端接入设备可将接收到的数据报文进行去重处理后发送至相应的目的端设备。可
以理解的是,当复制后得到的相同报文数量较少时,可分别选用不同的网络路径来传输,但
若相同的数据报文数量较多,则可选择出固定数量的较优网络路径,分别用于传输对应数
量的数据报文,如将数据报文平均分配至对应的网络路径,或负载均衡策略,根据各网络路
径的负载情况,从该些网络路径中选择合适的。
设备上,也可用于中转节点上,上述应用场景仅是为了便于理解本发明的精神和原理而示
出,本发明的实施方式在此不受任何限制。相反,本发明的实施方式可以应用于适用的任何
场景。
所述数据报文长度。
带校验和以及不携带校验和的类型,例如:在已知的数据传输协议中,协议号为1,则表示所
述数据报文为ICMP报文,协议号为6,则表示所述数据报文为TCP报文,协议号为17,则表示
所述数据报文为UDP报文等,该些协议的数据报文中均携带有校验和。
征包括所述数据报文对应的数字指纹。
即:除了TCP报文、UDP报文和ICMP报文之外的其他类型的数据报文,例如:GRE(General
Routing Encapsulation,通用路由封装)报文、ESP(Encapsulating Security Payloads,
封装安全载荷)报文、AH(Authentication Header protocol,认证头协议)报文,DCCP
(Datagram Congestion Control Protocol,数据包拥塞控制协议)报文等,所述特定字段
为数据报文的数据字段。
报文的识别特征。如图3(a)、3(b)、3(c)所示,分别为TCP报文的报文格式示意图、UDP报文的
报文格式示意图和ICMP报文的报文格式示意图,TCP报文、UDP报文和ICMP报文的首部均包
含有校验和字段,校验和是由发送端计算并存储,由接收端验证,其目的是为了发现数据报
文首部和数据内容在发送端和接收端之间发生的任何变动(错误)。源端设备计算校验和并
将其作为字段设置在数据报文中,目的端再次计算校验和,并与数据报文校验和字段中的
校验和值进行交叉校验,检测数据报文是否正常,校验和是根据数据报文首部加数据部分
计算得出的值,通常,如果数据报文首部或其数据部分存在一定的差异,计算出的校验和值
也不相同。因此,可基于数据报文中携带的校验和作为该数据报文的识别特征。
文的识别特征。其中,特定字段是预先设置的,例如可以设置数据字段的第1个字节和第m个
字节,本发明实施例对此不作限定。基于此,可同时基于校验和以及特定字段的数据内容对
数据报文进行识别,可进一步提升识别的准确性,同时,由于特定字段的数据内容可以直接
获取,无需进一步计算即可获得,因此不会耗费太多的性能资源。
时间窗口(如200ms或者其它相对较小的时间),由于时间窗口的限制,该时间窗口内的数据
报文数量相对会较少,因此,在较少的数据报文数量内,由于校验和计算算法对同一条数据
流不同的数据报文计算出同样校验和值的概率可以认为微乎其微,同时,由于基于某条数
据流的范围内看待校验和值,不存在不同数据流的数据报文其校验和值相同带来的干扰,
因此,本发明实施例中,对于时间窗口内的TCP报文、UDP报文、ICMP报文可以以校验和作为
对应数据流的数据报文的去重依据,为了提高去重准确性,减少误判,可以同时记录数据报
文的若干数据部分特征(如记录数据报文的数据字段第1字节和第m字节处的数据内容),如
果对应数据流的数据报文长度一样(长度不一样的,不可能是被复制的数据报文),且携带
的校验和及数据部分特征信息相同的,则认为是重复的被复制的数据报文,目的端接入设
备可以丢弃该重复数据报文。
算法、SHA等指纹算法,本发明实施例对此不作限定,具体可基于数据报文的全部内容进行
计算,也可选择部分关键内容进行计算,以节省性能资源。
数据流标识,其中,五元组包括:源IP、目的IP、源端口、目的端口和协议号。
IP信息的哈希值作为所述数据报文所属的数据流标识。本发明实施例对使用的哈希算法不
作限定。
依据信息,进一步提高了查找效率。
报文长度对应的去重依据信息,从而对是否已接收到与该数据报文相同的数据报文进行第
一次判断,若未查找到对应的去重依据信息,则说明先前并未接收到与该数据报文所述数
据流相同且报文长度也相同的数据报文,那么可直接确定该数据报文不是重复报文,同时
在本地记录中创建所述数据报文所属的数据流标识和所述数据报文长度与新增去重依据
信息的对应关系,其中所述新增去重依据信息包含所述数据报文的识别特征。
长度与去重依据信息的对应关系,其中,所述去重依据信息中记录有数据报文的识别特征,
可以理解的是,来自同一数据流的数据报文会存在报文长度也相同的情况,因此,去重依据
信息中可记录有多个识别特征。
中的每一识别特征设置有效时长,同时还可以记录数据报文的接收时间,以便于有效时长
结合判断该识别特征是否有效。具体地,在去重依据信息中添加识别特征时,可同时为该识
别特征设置有效时长。本发明实施例中,所述有效时长可以根据报文传输的时间规律进行
设定,即根据各网络线路的时延来确定,有效时长一般大于各网络线路中的最大时延。本发
明实施例对此不作限定。
征与该去重依据信息中的识别特征进行比对,如果在去重估依据信息中查找到该识别特
征,则可确定所述数据报文为重复报文;否则,则可确定所述数据报文不是重复报文,在所
述去重依据信息中新增该识别特征的相应记录。
以及当前时间判断该识别特征是否已过期,即确定所述去重依据信息中的所述识别特征的
生存时间是否超出所述有效时长,若已过期,则可确定所述数据报文不是重复报文,同时,
更新记录中的数据报文接收时间为接收所述数据报文的时间。具体实施时,可以根据所述
数据报文的当前接收时间与查找到的所述去重依据信息中的所述识别特征对应的数据报
文接收时间的差值,确定去重依据信息中的所述识别特征的生存时间,如果该生存时间超
出设置的有效时长,则所述数据报文不是重复报文。
别特征的生存时间超出所述有效时长时,则将所述识别特征从所述去重依据信息中删除,
而当去重依据信息中无记录时,可将该去重依据信息及对应的记录从列表中进行删除,以
缩减列表内容,并释放存储空间。值得注意的是,本发明实施例中,若采用删除的方式对去
重依据信息进行管理,那么在确定去重依据信息中是否存在对应的识别特征时,若确定有
对应的识别特征,即可确定所述数据报文为重复报文,从而节省比对时间,提升处理效率。
端接入设备对所述数据报文转发至相应的目的端设备,或者对所述数据报文进行响应。
的对数据报文去重部分的实施可以参见数据报文去重方法的实施,重复之处不再赘述。
据报文发送至接收端,较佳的,为了避免单一线路发生故障,可选取多条线路用于对该些数
据报文进行传输,使得该些数据报文通过不同的网络线路传输至同一接收端。
施例的电子设备300可以包括:存储器301、处理器302以及存储在所述存储器中并可在所述
处理器上运行的计算机程序,例如数据报文去重程序或者数据报文传输程序。所述处理器
执行所述计算机程序时实现上述各个数据报文去重方法实施例中的步骤,例如图2所示的
步骤S11,或者所述处理器执行所述计算机程序时实现上述数据报文传输方法实施例中的
步骤,例如图4所示的步骤S21。
示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线303可以分为
地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有
一根总线或一种类型的总线。
memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固
态硬盘(solid‑state drive,SSD)、或者存储器301是能够用于携带或存储具有指令或数据
结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器301
可以是上述存储器的组合。
子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明
各种示例性实施方式的数据报文去重方法或者数据报文传输方法中的步骤。
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产
品的形式。
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
选实施例以及落入本发明范围的所有变更和修改。
之内,则本发明也意图包含这些改动和变型在内。