一种UDP数据包解析方法、系统和存储介质技术方案

技术编号:28429614 阅读:19 留言:0更新日期:2021-05-11 18:39
本发明专利技术公开一种UDP数据包解析方法、系统和存储介质,属于数据采集和数据传输的技术领域。针对现有技术中存在的数据采集传输时需针对每种业务数据启动相应的接收服务来收集数据,消耗资源多,且数据之间没有关联不易管理的问题,本发明专利技术提供一种UDP数据包解析方法,制定包括偏移量、数据长度和数据十六进制值三个参数的自定义规则,统一接收所有UDP数据包形式的业务数据,可灵活的根据业务需求自定义解析规则,规则的自定义不会造成资源浪费,数据解析的规则种类和数量没有限制并根据规则识别UDP数据包所属的业务类型,来分类处理数据,节省存储资源,提高UDP数据包识别效率。

【技术实现步骤摘要】
一种UDP数据包解析方法、系统和存储介质
本专利技术涉及数据采集和数据传输的
,更具体地说,涉及一种UDP数据包解析方法、系统和存储介质。
技术介绍
数据采集是所有数据分析的核心前置步骤,根据被采集对象的重要程度,会采取不同的传输方式,其中一些非核心的日志数据,流水数据,会以代价更低的方式,如UDP数据包的方式进行传输。现有技术广泛采取的UDP数据包数据传输的应用模式为完整解析数据包后,进行判断分类,针对单一的业务数据,启动一个相应的数据接收端,例如Java的UDP_Server实例。若数据包较大情况下,整个过程会消耗很大的资源进行对数据的分类和判断,举例来说,一般游戏公司,通过统一的服务端接收各个手机客户端SDK发送过来的数据,包括充值,登录,通关等等一系列行为,接收后,需要对这些数据进行分类处理和存储,这样需要针对每种业务数据启动相应的接收服务来收集数据,消耗的服务端资源会根据业务数据类型的种类拓展而线性增加,各服务的接收服务之间相互独立,无法统一管理。中国专利申请获取数据的方法,申请号CN200910088033.5,公开日2010年2月17日,公开了一种获取数据的方法,属于数据处理领域。方法包括:获取数据流,数据流包括头文件和数据体;由所述数据流中的第一个字节连续获取包括所述第一个字节在内的四个字节长度的数据,得到所述数据流头文件的数据流标识;根据所述数据流标识的下一字节连续获取包含所述下一字节的两个字节长度的数据,得到所述数据流头文件的版本号;根据所述版本号的下一字节连续跳过包含所述版本号的下一字节的十二个字节长度的数据,获取包含所述版本号后第十三个字节的四个字节长度的数据,得到所述数据流头文件的通道路径长度;并由所述通道路径长度的下一个偏移,获取所述通道路径长度所表示长度的通道路径;并进一步,获取所述数据流中数据体的数据,该方法将数据固定的分为两个部分,即头部和数据体两部分,头部固定为四个字节,头部数据字节数固定限制头部数据存储内容,无法做到无限拓展,同时在头部数据不足四个字节时还会造成数据空间得到浪费。
技术实现思路
1.要解决的技术问题针对现有技术中存在的数据采集传输时需针对每种业务数据启动相应的接收服务来收集数据,消耗资源多,且数据之间没有关联不易管理的问题,本专利技术提供一种UDP数据包解析方法、系统和存储介质,通过制定相应的解析规则,统一接收所有UDP数据包形式的业务数据,并根据规则识别UDP数据包所属的业务类型,来分类处理数据,节省存储资源,提高UDP数据包识别效率。2.技术方案本专利技术的目的通过以下技术方案实现。本专利技术提供一种UDP数据包解析的方案,它可以实现更高效率完成数据包识别和分类,提高UDP数据包识别效率。一种UDP数据包解析方法,UDP数据包遍历解析系统中所有解析规则,将UDP数据包中的数据与解析规则中的参数匹配,若UDP数据包中的数据与解析规则中的参数值相同则表示该解析规则与当前UDP数据包匹配成功,根据匹配成功的解析规则分类,若匹配不成功则进行下一解析规则的解析匹配。本专利技术基于自定义解析规则进行UDP数据包解析,通过自定义的UDP数据解析规则来识别不同类型的业务数据,对UDP数据包的数据进行划分,现有的常规识别方式为完整解析UDP数据包,来进行辨识数据类别,或者通过判断UDP包的头部信息来识别,但是这种方式存在以下两个缺点:一是完成识别每条数据需要花费的成本太高,如果包的数据较大,会产生很大的资源浪费;二是利用包的头部信息来识别,因为头部的大小固定,所以能提供的规则类别也是有限的,就像三位密码,最多只能由1000种组合,所以如果规则很多的时候,就难以满足需求。采取本专利技术的UDP数据包识别方法,能提高识别效率的同时,也能无限制的拓展规则,避免为每一类业务数据划分资源进行数据接收,从而产生性能浪费。更进一步的,所述解析规则参数包括偏移量、数据长度和数据值,偏移量用于定位UDP数据包中待匹配数据的起始位置,数据长度用于确定数据的长度,数据值用于与待匹配数据进行匹配。本专利技术UDP数据包解析方法操作上可以分为两个步骤进行,首先编写自定义解析规则,一条规则有三个核心参数,这三个参数组成一个解析规则,然后通过这三个参数来判断一条数据是否命中这条规则。更进一步的,使用解析规则对UDP数据包进行解析时,先根据解析规则的偏移量参数M确定UDP数据包中选取数据的起始位置为第M+1个数据单位;然后根据解析规则的数据长度参数N确认UDP数据包中选取数据为从第M+1个数据单位开始共N个数据单位的数据,即选取第M+1至第M+N个数据单位的数据;最后将UDP数据包中选取的数据与数据值参数进行匹配,N为自然数,N为大于零的整数。本专利技术解析规则中的偏移量和数据长度没有限制,根据业务需求可以灵活的调整偏移量和数据长度,做到高效率的数据匹配。一般来说,偏移量和数据长度越小,匹配的速度越快,匹配效率越高。更进一步的,UDP数据包按照解析规则的顺序依次匹配,若UDP数据包同时满足多个规则,按照最新匹配的规则进行分类。规则制定时,不能存在规则的命中区域完全覆盖其他规则的命中区域的情况,也就是说会出现两条规则同时匹配的情况,因此数据解析时的匹配原则是按照规则的顺序依次匹配,如果有一条数据同时满足两个规则,会对规则进行完善,避免多规则同时命中数据的情况发生,所述的最新匹配的规则即完善后的解析规则。UDP数据包根据完善后的规则进行解析,并根据完善后最新出现的规则进行分类。更进一步的,所述数据值参数使用十六进制表示。十六进制字符串是本实施例所规定的一种形式,十六进制可以将字节数组转化为字符串的长度最短,在传输时更加方便。根据数据的不同类型,也可以定义其他标准的数据形式。更进一步的,所述数据单位为字节或字符,数据匹配时将选择数据段转化为与数据值参数相同的表示方式进行匹配。数据解析时一般都是以字节为单位,在进行文本化处理的时候也可以以字符为单位。若数据值参数使用十六进制表示,匹配时则将数据段转为十六进制表示形式。更进一步的,UDP数据包使用相同端口接收数据。统一的数据接收方式和统一接口,方便数据采集过程的统一管理和维护。本专利技术UDP数据包的解析方法,能提高数据采集过程的效率,简化数据采集流程,降低采集成本。一种UDP数据包解析系统,其所述解析系统包括数据发送端和数据接收端,数据接收端接收数据发送端发送的数据并使用所述的一种UDP数据包解析方法进行解析。更进一步的,数据接收端包括数据解析模块、数据匹配模块和规则存储模块,数据发送端发送媒体数据流,数据接收端接收数据发送端的数据流;数据接收端对接收到的数据流进行解析,与规则存储模块中的规则进行匹配,得到符合数据规则的数据。本专利技术的解析系统自定义解析规则,设置更灵活,可用于识别各种业务类型的数据,解析规则可以无限拓展。十六进制的字节码匹配机制在匹配时,不需要完全解析整个UDP数据包,即可实现数据分类,高效。统一的数据接收和管理,便于UDP接收服务的正常维护和本文档来自技高网
...

【技术保护点】
1.一种UDP数据包解析方法,其特征在于,UDP数据包遍历解析系统中所有解析规则,将UDP数据包中的数据与解析规则中的参数匹配,若UDP数据包中的数据与解析规则中的参数值相同则表示该解析规则与当前UDP数据包匹配成功,根据匹配成功的解析规则分类,若匹配不成功则进行下一解析规则的解析匹配。/n

【技术特征摘要】
1.一种UDP数据包解析方法,其特征在于,UDP数据包遍历解析系统中所有解析规则,将UDP数据包中的数据与解析规则中的参数匹配,若UDP数据包中的数据与解析规则中的参数值相同则表示该解析规则与当前UDP数据包匹配成功,根据匹配成功的解析规则分类,若匹配不成功则进行下一解析规则的解析匹配。


2.根据权利要求1所述的一种UDP数据包解析方法,其特征在于,所述解析规则参数包括偏移量、数据长度和数据值,偏移量用于定位UDP数据包中待匹配数据的起始位置,数据长度用于确定数据的长度,数据值用于与待匹配数据进行匹配。


3.根据权利要求2所述的一种UDP数据包解析方法,其特征在于,使用解析规则对UDP数据包进行解析时,先根据解析规则的偏移量参数M确定UDP数据包中选取数据的起始位置为第M+1个数据单位;然后根据解析规则的数据长度参数N确认UDP数据包中选取数据为从第M+1个数据单位开始共N个数据单位的数据,即选取第M+1至第M+N个数据单位的数据;最后将UDP数据包中选取的数据与数据值参数进行匹配,N为自然数,N为大于零的整数。


4.根据权利要求3所述的一种UDP数据包解析方法,其特征在于,UDP数据包按照解析规则的顺序依次匹配,若UDP数据包同时满足多个规则,按照最...

【专利技术属性】
技术研发人员:吴延飞罗达志骆乐乐朱文佳
申请(专利权)人:安徽百诚慧通科技有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1