发明内容
基于此,有必要针对上述RLC实体接收端在进行RLC SDU重组时往往会导致接收方重组生成的RLC SDU与发送端发送的RLC SDU不同,出现数据异常情况的技术问题,提供一种异常数据的处理方法、装置、计算机设备和存储介质。
一种异常数据的处理方法,包括以下步骤
获取当前解析的协议数据单元的头部信息,其中,所述头部信息包括构建信息;
判断所述当前解析的协议数据单元是否为独立的协议数据单元;
若所述当前解析的协议数据单元为独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,所述当前解析的协议数据单元为非独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃所述当前解析的协议数据单元。
在其中一个实施例中,所述丢弃所述当前解析的协议数据单元的步骤,包括以下步骤:
根据所述头部信息判断所述当前解析的协议数据单元的数据域是否只包含一个数据字段;
若所述当前解析的协议数据单元的数据域只包含一个数据字段,则丢弃所述当前解析的协议数据单元中所有的数据字段;
若所述当前解析的协议数据单元的数据域包含多个数据字段,则丢弃所述当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
在其中一个实施例中,所述丢弃所述当前解析的协议数据单元的步骤之后,还包括以下步骤:
获取上一次解析的协议数据单元的剩余数据信息;
若所述上一次解析的协议数据单元有剩余数据,则释放所述剩余数据。
在其中一个实施例中,所述头部信息包括指示位信息;
所述根据所述头部信息判断所述当前解析的协议数据单元的数据域是否只包含一个数据字段的步骤,包括以下步骤:
根据所述头部信息的指示位信息判断所述当前解析的协议数据单元是否只包含一个数据字段;
若所述头部信息的指示位信息的值等于第一指示值,则所述当前接收的协议数据单元中值包含多个数据字段;
若所述头部信息的指示位信息的值等于第二指示值,则所述当前解析的协议数据单元中值包含一个数据字段。
在其中一个实施例中,所述头部信息包括协议数据单元的序列号;
所述判断所述当前解析的协议数据单元是否为独立的协议数据单元的步骤,包括以下步骤:
根据协议数据单元的序列号以及所述上一次解析的协议数据单元的剩余数据信息,判断所述当前接收的协议数据单元是否为独立的协议数据单元;
若所述当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,所述当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元;
若所述当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元。
一种异常数据的处理装置,包括:
头部信息获取模块,用于获取当前解析的协议数据单元的头部信息,其中,所述头部信息包括构建信息;
协议数据单元判断模块,用于判断所述当前解析的协议数据单元是否为独立的协议数据单元;
协议数据单元丢弃模块,用于在所述当前解析的协议数据单元为独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第一指示值时,或者,在所述当前解析的协议数据单元为非独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第二指示值时,丢弃所述当前解析的协议数据单元。
在其中一个实施例中,协议数据单元丢弃模块还用于根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段;
在当前解析的协议数据单元的数据域只包含一个数据字段时,丢弃当前解析的协议数据单元中所有的数据字段;
在当前解析的协议数据单元的数据域包含多个数据字段时,丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
在其中一个实施例中,所述异常数据的处理装置还包括剩余数据释放模块,用于获取上一次解析的协议数据单元的剩余数据信息;
在上一次解析的协议数据单元有剩余数据时,释放所述剩余数据。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取当前解析的协议数据单元的头部信息,其中,所述头部信息包括构建信息;
判断所述当前解析的协议数据单元是否为独立的协议数据单元;
若所述当前解析的协议数据单元为独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,所述当前解析的协议数据单元为非独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃所述当前解析的协议数据单元。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取当前解析的协议数据单元的头部信息,其中,所述头部信息包括构建信息;
判断所述当前解析的协议数据单元是否为独立的协议数据单元;
若所述当前解析的协议数据单元为独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,所述当前解析的协议数据单元为非独立的协议数据单元,且所述当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃所述当前解析的协议数据单元。
上述异常数据的处理方法、装置、计算机设备和存储介质,通过对当前解析的协议数据单元是否为独立的协议数据单元情况以及当前解析的协议数据单元的构建信息的高比特位的指示值情况进行分析,迅速检测出RLC实体接收端上行重组过程中的异常数据单元并及时处理,提高系统的健壮性。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的异常数据的处理方法,可以应用于如图1所示的应用环境中。其中,RLC实体110通过逻辑信道接收来自MAC层120的RLC PDU。当RLC实体110检测到接收得到的RLC PDU是异常数据单元,则将该RLC PDU丢弃,避免该RLC PDU中的RLC SDU与正常的数据单元进行RLC SDU重组,以提高系统的健壮性。
参见图2,图2为本发明一个实施例中异常数据的处理方法的流程图,本实施例中提供了一种异常数据的处理方法,以该方法应用于图1中的RLC实体110为例进行说明,包括以下步骤:
步骤S210:获取当前解析的协议数据单元的头部信息,其中,头部信息包括构建信息。
本步骤中,协议数据单元(Protocol Data Unit,PDU)是RLC实体接收端从MAC层接收到的,RLC PDU通常由两部分组成,一是数据域(Data域),一是头部信息(header);构建信息(Framing Info,FI)是用于指示Data域的开始或者结束位置的Data field element是不是一个RLC SDU分段,其中,FI的高比特位用于表示Data域的第一个字节的数据是否是一个RLC SDU的第一个字节的数据,当当前解析的协议数据单元的FI的高比特位为第一指示值,则当前接收的协议数据单元的数据域中的第一个字节的数据不是一个RLC SDU的第一个字节的数据,也就是说当前接收的协议数据单元的数据域中的第一个Data field element是一个RLC SDU分段,期望上次有剩余数据,即该RLC SDU的起始部分,与剩余数据拼接成一个完整的RLC SDU;当当前解析的协议数据单元的FI的高比特位为第二指示值,则当前接收的协议数据单元的数据域中的第一个字节的数据是一个RLC SDU的第一个字节的数据,也就是说当前接收的协议数据单元的数据域中的第一个Data field element是一个RLC SDU的起始分段或者是一个完整的RLC SDU。具体的,RLC实体接收端接收MAC层发送的RLC PDU,并对RLC PDU进行解析,获取当前解析的RLC PDU的头部信息。
可选的,第一指示值可以设置为“1”,第二指示值可以设置为“0”。
步骤S220:判断当前解析的协议数据单元是否为独立的协议数据单元。
本步骤中,Data域由一个或多个数据字段(Data field element)组成。一个Datafield element对应一个RLC SDU或一个RLC SDU分段。Data field element是按照RLC SDU到达RLC实体的先后顺序映射到Data域的,一个RLC SDU会被分段放置到不同的RLC PDU中,由此,RLC PDU的数据域中往往包含一个或多个RLC SDU或RLC SDU分段;独立的协议数据单元是指当前解析的RLC PDU与上一次解析的RLC PDU是没有交集的,也就是说,当前解析的RLC PDU不包含与上一次解析的RLC PDU中同一个RLC SDU的不同分段;具体的,RLC实体接收端判断当前解析的RLC PDU与上一次解析的RLC PDU是否有交集,是不是一个独立的协议数据单元。
步骤S230:若当前解析的协议数据单元为独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,当前解析的协议数据单元为非独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃当前解析的协议数据单元。
本步骤中,当前解析的协议数据单元判断为独立的协议数据单元,也就是说当前解析的协议数据单元和以前处理的RLC PDU是没有交集,和以前处理的RLC PDU不包含同一个RLC SDU的不同分段,同时当前解析的协议数据单元的构建信息的高比特位为第一指示值,指示着当前解析的协议数据单元的数据域中的第一个Data field element是某个RLCSDU的非起始部分的分段,此时当前解析的协议数据单元期望与上次解析的RLC PDU的剩余数据中的该RLC SDU的起始部分组分段重组成一个完整的RLC SDU,此时可以判断出当前解析的RLC PUD的单元数据格式出错,直接组包会导致恢复出来的RLC SDU错误,则RLC实体接收端丢弃该当前解析的协议数据单元;同理的,当当前解析的协议数据单元判断为非独立的协议数据单元,也就是说当前解析的协议数据单元和上次解析的RLC PDU是有交集,期望与上次解析的RLC PDU的剩余数据共同重组RLC SDU,同时当前解析的协议数据单元的构建信息的高比特位为第二指示值,指示着当前解析的协议数据单元并不需要与上次解析的RLC PDU的剩余数据共同重组RLC SDU,此时可以判断出当前解析的RLC PUD的单元数据格式出错,是一个异常的数据,RLC实体接收端丢弃该当前解析的协议数据单元。
上述异常数据的处理方法中,通过对当前解析的协议数据单元是否为独立的协议数据单元情况以及当前解析的协议数据单元的构建信息的高比特位的指示值情况进行分析,迅速检测出RLC实体接收端上行重组过程中的异常数据单元并及时处理,提高系统的健壮性,将对异常数据单元的处理转化为对两种不同格式的数据单元的处理,简化处理的流程节约成本。
在其中一个实施例中,丢弃当前解析的协议数据单元的步骤,包括以下步骤:根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段;若当前解析的协议数据单元的数据域只包含一个数据字段,则丢弃当前解析的协议数据单元中所有的数据字段;若当前解析的协议数据单元的数据域包含多个数据字段,则丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
本实施例中,Data域由一个或多个数据字段(Data field element)组成,一个Data field element对应一个RLC SDU或一个RLC SDU分段,若当前解析的RLC PDU的数据域中只包含一个Data field element,则将整个RLC PDU丢弃;若当前解析的RLC PDU的数据域中包含多个Data field element,则将当前解析的RLC PDU中第一个Data fieldelement丢弃,也就是说将当前解析的RLC PDU的Data中第一个长度指示符对应的Datafield element丢弃,剩余的Data field element正常处理,继续与后续接收的RLC PDU进行按序重组生成RLC SDU,从而在处理异常数据单元的同时,减少正常数据的大量丢失,提高系统的健壮性。
在其中一个实施例中,丢弃当前解析的协议数据单元的步骤之后,还包括以下步骤:获取上一次解析的协议数据单元的剩余数据信息;若上一次解析的协议数据单元有剩余数据,则释放剩余数据。
本实施例中,RLC实体接收端接收到的RLC PDU保存在接收缓存内,由于只有在一个RLC SDU的所有分段都存在于接收缓存里时,才能从保存的RLC PDU中重组出该RLC SDU;上一次解析的RLC PDU的剩余数据是指RLC PDU的数据域中,已经用于重组某一个或多个RLC SDU的Data field element以外的Data field element。RLC实体接收端获取剩余数据信息,也就是判断处理完上次解析的协议数据单元后是否有剩余数据;当前解析的RLC PDU被丢弃后,上一次解析的RLC PDU的剩余数据为多余的数据,此时,将上一次解析的RLC PDU的剩余数据从接收缓存中释放,以节省数据存储空间,同时避免剩余数据被用于与下一次解析的RLC PDU进行RLC SDU重组。
在其中一个实施例中,头部信息包括协议数据单元的序列号;判断当前解析的协议数据单元是否为独立的协议数据单元的步骤,包括以下步骤:根据协议数据单元的序列号以及上一次解析的协议数据单元的剩余数据信息,判断当前接收的协议数据单元是否为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元。
本实施例中,协议数据单元的序列号(Sequence Number,SN)是唯一指定了一个RLC PDU;若RLC实体接收端当前解析的RLC PDU与上一次解析的RLC PDU的序列号不是连续的两个序列号,此时无论上一次解析的RLC PDU有没有数据剩余,当前解析的RLC PDU是独立的协议数据单元;若RLC实体接收端当前解析的RLC PDU与上一次解析的RLC PDU的序列号是连续的两个序列号,且上一次解析的RLC PDU没有数据剩余,则当前解析的RLC PDU是独立的协议数据单元;若RLC实体接收端当前解析的RLC PDU与上一次解析的RLC PDU的序列号是连续的两个序列号,且上一次解析的RLC PDU有数据剩余,则当前解析的RLC PDU是非独立的协议数据单元。通过综合考虑序列号以及剩余数据的情况,判断当前解析的RLCPDU是否与以前处理的RLC PDU包含同一个RLC PDU的不同分段,将当前解析的RLC PDU快速区分为独立的协议数据单元以及非独立的协议数据单元。通过上一次解析的RLC PDU的剩余数据的检测情况和当前解析的RLC PDU中头部信息中的特定字段对比,迅速检测出当前解析的RLC PDU为独立的协议数据单元还是非独立的协议数据单元,从而迅速检测出RLC实体接收端上行重组过程中的异常数据单元并及时处理,提高系统的健壮性。
在其中一个实施例中,头部信息包括指示位信息;根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段的步骤,包括以下步骤:根据头部信息的指示位信息判断当前解析的协议数据单元是否只包含一个数据字段;若头部信息的指示位信息的值等于第一指示值,则当前接收的协议数据单元中值包含多个数据字段;若头部信息的指示位信息的值等于第二指示值,则当前解析的协议数据单元中值包含一个数据字段。
本实施例中,指示位信息(Extension bit,E)可以用于判断RLC PDU中包含一个Data field element还是多个Data field element;头部信息由每个RLC PDU都有的固定部分和扩展部分组成,只有当Data field element的个数多于1个时,才存在扩展部分。固定部分中的E用于指示固定部分以后紧跟的是Data域还是扩展部分。若E的值等于第一指示值,则固定部分以后紧跟的是扩展部分,即当前接收的协议数据单元中值包含多个Datafield element;若E的值等于第二指示值,则固定部分以后紧跟的是Data域,当前解析的协议数据单元中值只包含一个Data field element。
参见图3,图3为本发明另一个实施例中异常数据的处理方法的流程图,本实施例中,异常数据的处理方法,包括以下步骤:
步骤S301:获取当前解析的协议数据单元的头部信息;其中,头部信息包括协议数据单元的序列号、指示位信息以及构建信息。
本步骤中,由MAC层指定的RLC PDU的大小通常并不等于RLC SDU的大小,所以在发送端需要分段/串联RLC SDU以便生成的RLC PDU匹配MAC层指定的大小;当MAC层指示的RLCPDU小于RLC SDU时,RLC实体发送端对RLC SDU进行分段操作,当MAC层指示的RLC PDU小于RLC SDU时,RLC实体发送端对RLC SDU进行串联操作,以匹配MAC层指定的大小。生成一个RLC PDU时,是按照RLC SDU到达UM实体的顺序来逐个将RLC SDU放入RLC PDU中的。参见图4所示,图4为RLC实体发送端进行分段/串联生成RLC PDU的示意图,图中RLC PDU通常由两部分组成,一是数据域(Data域),一是头部信息(header),头部信息中包括固定部分和可能存在的扩展部分组成,固定部分由一个FI、一个E和一个SN字段组成。
步骤S302:根据协议数据单元的序列号以及上一次解析的协议数据单元的剩余数据信息,判断当前接收的协议数据单元是否为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元,跳转至步骤S303;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元,跳转至步骤S306。
步骤S303:获取上一次解析的协议数据单元的剩余数据信息;若上一次解析的协议数据单元有剩余数据,则跳转到步骤S304;否则跳转至步骤S305。
本步骤中,上一次解析的RLC PDU的剩余数据是指RLC PDU的数据域中,已经用于重组某一个RLC SDU的Data field element以外的Data field element;判断上一次解析RLC PDU以后是否有剩余信息。
步骤S304:释放剩余数据。
本步骤中,当前解析的RLC PDU为独立的协议数据单元,检测到上一次解析的RLCPDU还有剩余数据时,上一次解析的RLC PDU的剩余数据为多余的数据,将上一次解析的RLCPDU的剩余数据从接收缓存中释放,以节省数据存储空间,同时避免剩余数据被用于与下一次解析的RLC PDU进行RLC SDU重组。
步骤S305:判断当前接收的协议数据单元的构建信息的高比特位的指示值是否为第一指示值,若当前解析的协议数据单元的构建信息的高比特位为第一指示值,则跳转至步骤S308。
步骤S306:判断当前接收的协议数据单元的构建信息的高比特位的指示值是否为第二指示值;若当前解析的协议数据单元的构建信息的高比特位为第二指示值,则跳转至步骤S307。
步骤S307:释放剩余数据。
本步骤中,当前解析的RLC PDU为非独立的协议数据单元,上一次解析的RLC PDU有剩余数据,但是,根据当前解析的RLC PDU的FI的指示值为第二指示值,指示当前接收的协议数据单元的数据域中的第一个字节的数据为业务数据单元的起始数据,不需要使用上一次解析的RLC PDU的剩余数据,此时上一次解析的RLC PDU的剩余数据为多余的数据,将上一次解析的RLC PDU的剩余数据从接收缓存中释放,以节省数据存储空间,同时避免剩余数据被用于与下一次解析的RLC PDU进行RLC SDU重组。
步骤S308:根据指示位信息判断当前解析的协议数据单元是否只包含一个数据字段;若指示位信息的值等于第一指示值,则当前接收的协议数据单元中值包含多个数据字段,跳转至步骤S309;若指示位信息的值等于第二指示值,则当前解析的协议数据单元中值包含一个数据字段,跳转至步骤S310。
步骤S309:丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
本步骤中,当前解析的RLC PDU的Data域包含有多个Data field element,若当前解析的RLC PDU的数据格式出现异常,也只会影响Data域的第一个Data field element,其它的Data field element为正常数据,可以继续与后续接收的RLC PDU进行按序重组生成RLC SDU,通过仅仅丢弃第一个Data field element在处理异常数据单元的同时,减少正常数据的大量丢失,提高系统的健壮性。
步骤S310:丢弃当前解析的协议数据单元中所有的数据字段。
应该理解的是,虽然图2或图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2或图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
根据上述异常数据的处理方法,本发明还提供一种异常数据的处理装置,以下就本发明的异常数据的处理装置的实施例进行详细说明。
参见图5,图5为本发明一个实施例中异常数据的处理装置的结构示意图,提供了一种异常数据的处理装置,包括:头部信息获取模块410、协议数据单元判断模块420和协议数据单元丢弃模块430,其中:
头部信息获取模块410,用于获取当前解析的协议数据单元的头部信息,其中,头部信息包括构建信息;
协议数据单元判断模块420,用于判断当前解析的协议数据单元是否为独立的协议数据单元;
协议数据单元丢弃模块430,用于在当前解析的协议数据单元为独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第一指示值时,或者,在解析的协议数据单元为非独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第二指示值时,丢弃当前解析的协议数据单元。
上述异常数据的处理装置,协议数据单元判断模块420通过对当前解析的协议数据单元是否为独立的协议数据单元情况以及当前解析的协议数据单元的构建信息的高比特位的指示值情况进行分析,迅速检测出RLC实体接收端上行重组过程中的异常数据单元并及时处理,提高系统的健壮性。
在其中一个实施例中,协议数据单元丢弃模块430还用于根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段;在当前解析的协议数据单元的数据域只包含一个数据字段时,丢弃当前解析的协议数据单元中所有的数据字段;在当前解析的协议数据单元的数据域包含多个数据字段时,丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
参见图6,图6为本发明另一个实施例中异常数据的处理装置的结构示意图,本实施例中,异常数据的处理装置还包括剩余数据释放模块440,用于获取上一次解析的协议数据单元的剩余数据信息;在上一次解析的协议数据单元有剩余数据时,释放剩余数据。
在其中一个实施例中,头部信息包括指示位信息;协议数据单元丢弃模块430用于根据头部信息的指示位信息判断当前解析的协议数据单元是否只包含一个数据字段;若头部信息的指示位信息的值等于第一指示值,则当前接收的协议数据单元中值包含多个数据字段;若头部信息的指示位信息的值等于第二指示值,则当前解析的协议数据单元中值包含一个数据字段。
在其中一个实施例中,头部信息包括协议数据单元的序列号;协议数据单元判断模块420根据协议数据单元的序列号以及上一次解析的协议数据单元的剩余数据信息,判断当前接收的协议数据单元是否为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元。
关于异常数据的处理装置的具体限定可以参见上文中对于异常数据的处理方法的限定,在此不再赘述。上述异常数据的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在其中一个实施例中,本发明还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储协议数据单元的头部信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常数据的处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在其中一个实施例中,本发明提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取当前解析的协议数据单元的头部信息,其中,头部信息包括构建信息;
判断当前解析的协议数据单元是否为独立的协议数据单元;
若当前解析的协议数据单元为独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,当前解析的协议数据单元为非独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃当前解析的协议数据单元。
在其中一个实施例中,处理器执行计算机程序实现丢弃当前解析的协议数据单元的步骤时,具体实现以下步骤:根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段;若当前解析的协议数据单元的数据域只包含一个数据字段,则丢弃当前解析的协议数据单元中所有的数据字段;若当前解析的协议数据单元的数据域包含多个数据字段,则丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:获取上一次解析的协议数据单元的剩余数据信息;若上一次解析的协议数据单元有剩余数据,则释放剩余数据。
在其中一个实施例中,头部信息包括指示位信息;处理器执行计算机程序实现根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段的步骤时,具体实现以下步骤:根据头部信息的指示位信息判断当前解析的协议数据单元是否只包含一个数据字段;若头部信息的指示位信息的值等于第一指示值,则当前接收的协议数据单元中值包含多个数据字段;若头部信息的指示位信息的值等于第二指示值,则当前解析的协议数据单元中值包含一个数据字段。
在其中一个实施例中,头部信息包括协议数据单元的序列号;处理器执行计算机程序实现判断当前解析的协议数据单元是否为独立的协议数据单元的步骤时,具体实现以下步骤:根据协议数据单元的序列号以及上一次解析的协议数据单元的剩余数据信息,判断当前接收的协议数据单元是否为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元。
在其中一个实施例中,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取当前解析的协议数据单元的头部信息,其中,头部信息包括构建信息;
判断当前解析的协议数据单元是否为独立的协议数据单元;
若当前解析的协议数据单元为独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第一指示值,或者,当前解析的协议数据单元为非独立的协议数据单元,且当前解析的协议数据单元的构建信息的高比特位为第二指示值,则丢弃当前解析的协议数据单元。
在其中一个实施例中,计算机程序被处理器执行实现丢弃当前解析的协议数据单元的步骤时,具体实现以下步骤:根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段;若当前解析的协议数据单元的数据域只包含一个数据字段,则丢弃当前解析的协议数据单元中所有的数据字段;若当前解析的协议数据单元的数据域包含多个数据字段,则丢弃当前解析的协议数据单元的数据域中第一个长度指示符对应的数据字段。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取上一次解析的协议数据单元的剩余数据信息;若上一次解析的协议数据单元有剩余数据,则释放剩余数据。
在其中一个实施例中,头部信息包括指示位信息;计算机程序被处理器执行实现根据头部信息判断当前解析的协议数据单元的数据域是否只包含一个数据字段的步骤时,具体实现以下步骤:根据头部信息的指示位信息判断当前解析的协议数据单元是否只包含一个数据字段;若头部信息的指示位信息的值等于第一指示值,则当前接收的协议数据单元中值包含多个数据字段;若头部信息的指示位信息的值等于第二指示值,则当前解析的协议数据单元中值包含一个数据字段。
在其中一个实施例中,头部信息包括协议数据单元的序列号;计算机程序被处理器执行实现判断当前解析的协议数据单元是否为独立的协议数据单元的步骤时,具体实现以下步骤:根据协议数据单元的序列号以及上一次解析的协议数据单元的剩余数据信息,判断当前接收的协议数据单元是否为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号且上一次接收的协议数据单元无剩余数据,或者,当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为非连续的序列号,则当前解析的协议数据单元为独立的协议数据单元;若当前解析的协议数据单元的序列号与上一次解析的协议数据单元的序列号为连续的序列号,且上一次解析的协议数据单元有剩余数据,则当前解析的协议数据单元为非独立的协议数据单元。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。