CN107483508A - 报文过滤方法、装置、设备及存储介质 - Google Patents
报文过滤方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN107483508A CN107483508A CN201710918623.0A CN201710918623A CN107483508A CN 107483508 A CN107483508 A CN 107483508A CN 201710918623 A CN201710918623 A CN 201710918623A CN 107483508 A CN107483508 A CN 107483508A
- Authority
- CN
- China
- Prior art keywords
- theme
- policy table
- messages
- dds
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1076—Screening of IP real time communications, e.g. spam over Internet telephony [SPIT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种报文过滤方法、装置、设备及存储介质,其中该方法包括:接收DDS报文;判断DDS报文类型;如果是发布主题报文,根据预设的主题策略表对DDS报文进行主题过滤;如果是数据报文,根据主题策略表与标识策略表的对应关系及DDS报文的发布者标识信息,在主题策略表中查找DDS报文对应的数据处理信息,并按数据处理信息对DDS报文进行数据字段过滤;主题策略表与标识策略表的对应关系为:主题策略表中主题的索引地址存储在标识策略表中发布者标识信息对应的表项中。本发明根据主题策略表、标识策略表及二者对应关系,协助用户完成对满足主题条件或数据字段条件的DDS报文进行过滤,满足用户多样化的发布订阅需求。
Description
技术领域
本发明实施例涉及报文处理技术,尤其涉及一种报文过滤方法、装置、设备及存储介质。
背景技术
数据分发服务(Data Distribution Service,DDS)用于在分布式应用程序的参与者之间分发数据,例如在发布/订阅模式下完成消息的发布与订阅。
发布/订阅(Publish–Subscribe)是一种消息传播模式,消息的发送者(即发布者)不会将消息直接发送给特定的接收者(即订阅者),而是将发布的消息按特征分类,无需对订阅者有所了解;同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需对发布者有所了解。在发布/订阅模型中,订阅者通常只接收所有发布消息的一个子集,由此涉及到消息的过滤,即对需要接收和处理的消息做出选择的过程。
目前,较为通用的消息过滤方式是基于主题实现过滤。在基于主题的***中,所有消息均被发布到“主题”(Topic),订阅者将收到其订阅的主题上的所有消息,而且同一主题的所有订阅者将接收到同样的消息;发布者负责定义订阅者可以订阅的消息类别。仅基于主题进行过滤,难以满足用户多样化的发布订阅需求,尤其是对消息内容的需求。
另外,还存在基于订阅方ID实现过滤的方法,基于响应方ID和请求方ID进行消息过滤,确保响应方仅接收到以自己为目标的请求消息,以及确保请求方仅收到以自己为目标的响应消息。该方法仅能实现基于订阅方ID的过滤,同样难以满足用户多样化的发布订阅需求。
发明内容
本发明提供一种报文过滤方法、装置、设备及存储介质,能够基于主题和/或数据字段对DDS报文进行过滤,以满足用户多样化的发布订阅需求。
第一方面,本发明实施例提供了一种报文过滤方法,包括:
接收DDS报文;
判断所述DDS报文的类型;
如果所述DDS报文是发布主题报文,根据预设的主题策略表对所述DDS报文进行主题过滤;
如果所述DDS报文是数据报文,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,并按照所述数据处理信息对所述DDS报文进行数据字段过滤;
其中,所述主题策略表与所述标识策略表的对应关系为:所述主题策略表中主题的索引地址存储在所述标识策略表中发布者标识信息对应的表项中。
进一步的,根据预设的主题策略表对所述DDS报文进行主题过滤包括:
在所述主题策略表中查找所述DDS报文的主题的匹配项;
如果所述主题策略表中存在所述主题的匹配项,控制所述DDS报文通过;
如果所述主题策略表中不存在所述主题的匹配项,按照第一默认动作处理所述DDS报文。
进一步的,如果所述DDS报文是发布主题报文,所述方法还包括:
将所述DDS报文的发布者标识信息和所述DDS报文的主题在所述主题策略表中的主题表索引地址写入所述标识策略表中的表项。
进一步的,将所述DDS报文的发布者标识信息和所述DDS报文的主题在所述主题策略表中的主题表索引地址写入所述标识策略表中的表项,包括:
记录所述DDS报文的主题的匹配项在所述主题策略表中的主题表索引地址;
对所述DDS报文的发布者标识信息进行哈希运算,得到第一运算结果;
在所述标识策略表中查找与所述第一运算结果相同的标识表索引地址,将所述发布者标识信息和所述主题表索引地址,写入所述标识策略表中所述标识表索引地址对应的表项,其中,所述发布者标识信息写入所述标识表索引地址对应表项中的标识项,所述主题表索引地址写入所述标识表索引地址对应表项中的索引项。
进一步的,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,包括:
在所述标识策略表中获取所述DDS报文的发布者标识信息对应表项中索引项的内容;
将所述索引项的内容作为当前主题表索引地址,在所述主题策略表中查找所述当前主题表索引地址对应表项中的数据处理信息。
进一步的,所述主题策略表中包括主题和数据处理信息的对应关系,所述标识策略表中包括发布者标识信息和所述发布者发布的主题在所述主题策略表中的索引地址的对应关系。
进一步的,所述报文过滤方法基于现场可编程门阵列(FieldProgrammable GateArray,FPGA)实现,所述主题策略表中的表项内容由用户通过管理配置接口预先配置。
第二方面,本发明实施例还提供了一种报文过滤装置,包括:
报文接收模块,用于接收DDS报文;
类型判断模块,用于判断所述DDS报文的类型;
第一报文过滤模块,用于在所述DDS报文是发布主题报文的情况下,根据预设的主题策略表对所述DDS报文进行主题过滤;
第二报文过滤模块,用于在所述DDS报文是数据报文的情况下,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,并按照所述数据处理信息对所述DDS报文进行数据字段过滤;
其中,所述主题策略表与所述标识策略表的对应关系为:所述主题策略表中主题的索引地址存储在所述标识策略表中发布者标识信息对应的表项中。
进一步的,所述主题策略表中包括主题和数据处理信息的对应关系,所述标识策略表中包括发布者标识信息和所述发布者发布的主题在所述主题策略表中的索引地址的对应关系。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的报文过滤方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的报文过滤方法。
本发明根据预设的主题策略表、标识策略表以及二者的对应关系,能够协助用户完成对满足主题条件或者数据字段条件的DDS报文进行过滤,允许报文在网络中转发或者丢弃报文,即实现基于主题和/或数据字段的DDS报文过滤,解决了现有报文过滤无法满足用户多样化的发布订阅需求的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的报文过滤方法的流程图;
图2是本发明实施例一提供的主题策略表的示意图;
图3是本发明实施例二提供的标识策略表的示意图;
图4是本发明实施例二提供的报文过滤方法的流程图;
图5是本发明实施例二提供的报文过滤方法的另一流程图;
图6是本发明实施例三提供的报文过滤方法的流程图;
图7是本发明实施例四提供的报文过滤装置的结构框图;
图8是本发明实施例五提供的报文过滤方法的实施拓扑框图;
图9是本发明实施例六提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明各实施例之前,先对DDS报文的类型进行说明,DDS报文实际上是基于实时流传输协议(Real Time Streaming Protocol,RTPS)实现,DDS报文包括:DATA(W)、DATA(R)和DATA等类型。
DATA(W)报文为发布者发送的发布主题报文,主要承载发布数据Topic、发布者GUID(Global Unique Identifier,全局唯一标识符)、发布数据属性信息、发布者QoS(Quality of Service,服务质量)以及其他信息,该报文用于发布者发布主题。
DATA(R)报文为订阅者发送的订阅主题报文,主要承载订阅数据Topic、订阅者GUID、订阅数据属性信息、订阅者QoS以及其他信息,该报文用于订阅者订阅主题。需要说明的是,本发明实施例的报文过滤方法主要是针对DATA(W)报文和DATA报文,对于其他类型的报文不做处理。如果接收到DATA(R)报文,不对该报文执行本发明实施例所述的报文过滤方法,即对该报文不进行解析,也不进行过滤。
DATA报文为发布者发送的数据报文,主要承载发布者GUID以及数据内容,无Topic,该报文用于发布者将数据发布给订阅者。
实施例一
图1是本发明实施例一提供的报文过滤方法的流程图,本实施例可适用于过滤DDS报文的情况,该方法可以由报文过滤装置来执行,该装置可以通过软件和/或硬件的方式实现。如图1所示,该方法具体包括如下步骤:
步骤110,接收DDS报文。
步骤120,判断DDS报文的类型。
其中,可以通过DDS报文中的类型字段来判断报文类型。本实施例中还需要对DDS报文进行解析,得到解析结果,以便后续进行过滤。发布主题报文的解析结果至少包括主题和发布者标识信息;数据报文的解析结果至少包括发布者标识信息和数据内容;其中标识信息具体可以是GUID。
步骤130,如果DDS报文是发布主题报文,根据预设的主题策略表对DDS报文进行主题过滤。
其中,主题策略表中的表项内容可以由用户通过管理配置接口预先配置。简单而言,对于发布主题报文,如果在主题策略表中未查找到该报文中主题的匹配项,则报文丢弃,当然也可针对此情况设置默认动作(丢弃或通过),按照该默认动作处理报文;如果在主题策略表中找到该报文中主题的匹配项,则按照主题策略表中主题的对应动作(丢弃或通过)处理报文。由此实现了基于主题的报文过滤。
步骤140,如果DDS报文是数据报文,根据主题策略表与标识策略表的对应关系以及DDS报文的发布者标识信息,在主题策略表中查找DDS报文对应的数据处理信息,并按照该数据处理信息对DDS报文进行数据字段过滤。其中,主题策略表与标识策略表的对应关系为:主题策略表中主题的索引地址存储在标识策略表中发布者标识信息对应的表项中。
其中,标识策略表中的表项内容是在发布主题报文的过滤处理过程中配置的,对此后续会进行说明。数据处理信息用于对报文的数据内容进行处理,以便进行数据字段过滤。数据报文包括发布者标识信息和数据内容,不包括主题,基于标识策略表与主题策略表的对应关系,在标识策略表中查找DDS报文的发布者标识信息对应的表项中存储的主题表索引地址,按照该主题表索引地址能够找到主题策略表中与数据报文对应的预置数据处理信息,从而根据该数据处理信息对数据报文进行数据字段过滤,例如,包含某些数据字段的报文通过,继续进行转发,而包含其他数据字段的报文则直接丢弃。由此实现了基于数据字段的报文过滤。
本实施例的技术方案,根据预设的主题策略表、标识策略表以及二者的对应关系,能够协助用户完成对满足主题条件或者数据字段条件的DDS报文进行过滤,允许报文在网络中转发或者丢弃报文,即实现基于主题和/或数据字段的DDS报文过滤,解决了现有报文过滤无法满足用户多样化的发布订阅需求的问题。
本实施例中,主题策略表中包括主题和数据处理信息的对应关系,标识策略表中包括发布者标识信息和该发布者发布的主题在主题策略表中的索引地址的对应关系。
如图2所示,主题策略表包括以下表项:主题(Topic)、动作(Action)、至少一个偏移量(Offset)和至少一个比较值(Value),其中,每一个主题表索引地址(Index)对应的偏移量和比较值个数相同且一一对应。数据处理信息包括:动作、偏移量和比较值。Topic和Action属于一级规则,用于主题查找(即一级查表);所有的Offset和Value属于二级规则,用于数据字段查找(即二级查表)。需要说明的是,一级查表用于对接收到的DATA(W)报文中的Topic做查找;二级查表用于对接收到的DATA报文中的数据字段做查找,在二级查表过程中,会利用到主题策略表与标识策略表的对应关系。
在图2中,Topic的表项内容为Topic字符串的ASCII值(American Standard Codefor Information Interchange,美国信息交换标准代码),最大长度为128字节。Action表示当前DDS报文的Topic与主题策略表中某项Topic一致时,应该进行的动作,Action的表项内容为Pass(通过)或Drop(丢弃)。Offset0至OffsetM表示提取数据偏移量,Value0至ValueM表示比较值,同一主题的Offset与Value个数相同且为一一对应的关系,即Offset0对应于至Value0,OffsetM对应于ValueM。不同主题对应的Offset个数可能是不同的,例如,主题1对应Offset1至Offset5,主题2对应Offset1至Offset10。不同主题对应的M值根据用户对该主题的具体配置确定。主题策略表中的Index表示主题表索引地址。
优选的,主题策略表中的Topic表项中的内容可以是主题的哈希运算结果,哈希运算结果较为简短,节省存储空间且便于快速查找。相应的,可以对DDS报文中的主题进行哈希运算,将运算结果与主题策略表中的Topic表项内容进行比较,以查找匹配项。
如图3所示,标识策略表(也可称为GUID策略表)包括以下表项:标识项(GUID)和索引项(Index)。其中,GUID的表项内容是从DATA(W)报文中提取的发布者GUID;Index的表项内容是主题表索引地址,通过标识策略表中的Index表项可以实现标识策略表与主题策略表的对应。标识策略表中的GUID表项和Index表项的内容具体可以通过一级查表过程得到,后续实施例将对此进行说明。标识策略表主要用于在二级查表过程中对DATA报文进行过滤。
实施例二
本实施例在上述实施例的基础上,针对发布主题报文,提供了根据主题策略表对报文进行主题过滤的具体实施方式。图4是本发明实施例二提供的报文过滤方法的流程图,如图4所示,该方法包括如下步骤:
步骤410,接收DDS报文。
步骤420,判断DDS报文的类型为发布主题报文,并对DDS报文进行解析,得到的解析结果包括:主题(Topic1)和发布者标识信息(GUID1)。
步骤430,在主题策略表中查找DDS报文主题的匹配项。如果主题策略表中存在该主题的匹配项,进入步骤440;如果主题策略表中不存在该主题的匹配项,进入步骤450。
步骤440,控制DDS报文通过。
步骤450,按照第一默认动作处理DDS报文。其中,第一默认动作是预先设置的,可以是丢弃或者通过。
本实施例根据主题策略表中的主题表项,能够对发布主题报文进行主题过滤,允许满足主题条件的DDS报文在网络中转发或者丢弃。
在另一实施方式中,对于在主题策略表中查找到主题匹配项的DATA(W)报文,可以考虑根据DATA(W)报文建立标识策略表与主体策略表中表项内容的对应关系。图5是本发明实施例二提供的报文过滤方法的另一流程图,如图5所示,该方法包括如下步骤:
步骤510,接收DDS报文。
步骤520,判断DDS报文的类型为发布主题报文,并对DDS报文进行解析,得到的解析结果包括:主题(Topic1)和发布者标识信息(GUID1)。
步骤530,在主题策略表中查找DDS报文主题的匹配项。如果主题策略表中存在该主题的匹配项,进入步骤540;如果主题策略表中不存在该主题的匹配项,进入步骤560。
步骤540,在标识策略表中查找DDS报文的发布者标识信息的匹配项。如果标识策略表中不存在该发布者标识信息的匹配项,将该发布者标识信息和DDS报文的主题在主题策略表中的主题表索引地址写入标识策略表中的表项,具体通过步骤551至步骤553实现,然后再进入步骤570。如果标识策略表中存在该发布者标识信息的匹配项,直接进入步骤570。
步骤551,记录DDS报文的主题的匹配项在主题策略表中的主题表索引地址。
步骤552,对DDS报文的发布者标识信息进行哈希运算,得到第一运算结果。
其中,GUID的长度为16字节,长度过长,不适合作为表项地址,因此对GUID做哈希运算,得到0-n中某个值,结果简单,方便存储和索引。相应的,可以对DDS报文中的GUID进行哈希运算,将运算结果与标识策略表中的GUID表项内容进行比较,以查找匹配项。
步骤553,在标识策略表中查找与第一运算结果相同的标识表索引地址,将发布者标识信息和上述主题表索引地址,写入标识策略表中该标识表索引地址对应的表项,其中,发布者标识信息写入该标识表索引地址对应表项中的标识项,主题表索引地址写入该标识表索引地址对应表项中的索引项。
步骤560,按照第一默认动作处理DDS报文。其中,第一默认动作是预先设置的,可以是丢弃或者通过。
步骤570,控制DDS报文通过。
本实施例在DATA(W)报文的一级查表过程中,填充了标识策略表中的表项内容,并通过索引项的内容实现了标识策略表与主题策略表的对应。
实施例三
本实施例在上述各实施例的基础上,针对数据报文,提供了根据标识策略表和主题策略表对报文进行数据字段过滤的具体实施方式,图6是本发明实施例三提供的报文过滤方法的流程图,如图6所示,该方法包括如下步骤:
步骤610,接收DDS报文。
步骤620,判断DDS报文的类型为数据报文,并对DDS报文进行解析,得到的解析结果包括:发布者标识信息(GUID2)和数据内容。
步骤631,对DDS报文的发布者标识信息进行哈希运算,得到第二运算结果。
步骤632,在标识策略表中查找与第二运算结果相同的标识表索引地址。如果标识策略表中存在该标识表索引地址,进入步骤633;如果标识策略表中不存在该标识表索引地址,进入步骤634。
步骤633,在标识策略表中获取该标识表索引地址对应表项中索引项的内容,进入步骤640。
步骤634,按照第二默认动作处理DDS报文。其中,第二默认动作是预先设置的,可以是丢弃或者通过。
上述步骤631至步骤634实现了在标识策略表中获取DDS报文的发布者标识信息对应表项中索引项的内容。
步骤640,将索引项的内容作为当前主题表索引地址,在主题策略表中查找当前主题表索引地址对应表项中的数据处理信息,其中,数据处理信息包括动作、M个偏移量和M个比较值。
上述步骤631至步骤640是实施例一步骤140中根据主题策略表与标识策略表的对应关系以及DDS报文的发布者标识信息,在主题策略表中查找DDS报文对应的数据处理信息的具体实现过程。
步骤650,按照M个偏移量在DDS报文的数据内容中提取M个字段,并分别比较提取的字段与对应的比较值,即将提取的这M个字段分别与对应的M个比较值进行比较。
步骤660,判断M个比较结果是否全部为匹配。如果是,进入步骤670;如果否,即M个比较结果中任一结果为不匹配,进入步骤680。
步骤670,按照当前主题表索引地址对应表项中的动作处理DDS报文,如果Action为通过,则DDS报文通过;如果Action为丢弃,则DDS报文丢弃。
步骤680,丢弃DDS报文。
上述步骤650至步骤680是实施例一步骤140中按照数据处理信息对DDS报文进行数据字段过滤的具体实现过程。
本实施例介绍了二级查表过程,根据主题策略表与标识策略表的对应关系以及DDS报文的发布者标识信息,能够对数据报文进行数据字段过滤,允许满足数据字段条件的DDS报文在网络中转发或者丢弃。
需要说明的是,本发明任意实施例所述的报文过滤方法均可以基于FPGA实现,具体使用FPGA上RAM(RandomAccess Memory)实现具有对应关系的主题策略表和标识策略表,在处理DDS报文的过程中,通过查表来实现报文的主题过滤和/或数据字段过滤。
实施例四
图7是本发明实施例四提供的报文过滤装置的结构框图,本实施例可适用于过滤DDS报文的情况,如图7所示,该装置包括:报文接收模块710、类型判断模块720、第一报文过滤模块730和第二报文过滤模块740。
报文接收模块710,用于接收DDS报文;
类型判断模块720,用于判断DDS报文的类型;发布主题报文包括主题和发布者标识信息,数据报文包括发布者标识信息和数据内容;
第一报文过滤模块730,用于在DDS报文是发布主题报文的情况下,根据预设的主题策略表对DDS报文进行主题过滤;
第二报文过滤模块740,用于在DDS报文是数据报文的情况下,根据主题策略表与标识策略表的对应关系以及DDS报文的发布者标识信息,在主题策略表中查找DDS报文对应的数据处理信息,并按照该数据处理信息对DDS报文进行数据字段过滤。其中,主题策略表与标识策略表的对应关系为:主题策略表中主题的索引地址存储在标识策略表中发布者标识信息对应的表项中。
本实施例中,主题策略表中包括主题和数据处理信息的对应关系,标识策略表中包括发布者标识信息和该发布者发布的主题在主题策略表中的索引地址的对应关系。本实施例对标识策略表和主题策略表不再进行详细描述,具体参见上述各实施例中的说明。
进一步的,该装置还可以包括:报文解析模块,用于对DDS报文进行解析,得到解析结果,以便后续进行过滤。
进一步的,第一报文过滤模块730包括:
第一匹配项查找单元,用于在主题策略表中查找DDS报文的主题的匹配项;
第一处理单元,用于在主题策略表中存在该主题的匹配项的情况下,控制DDS报文通过;
第二处理单元,用于在主题策略表中不存在该主题的匹配项的情况下,按照第一默认动作处理DDS报文。
在上述技术方案的基础上,上述装置还包括:策略表填充模块,用于在DDS报文是发布主题报文的情况下,将DDS报文的发布者标识信息和DDS报文的主题在主题策略表中的主题表索引地址写入标识策略表中的表项。
具体的,策略表填充模块包括:
第二匹配项查找单元,用于在标识策略表中查找DDS报文的发布者标识信息的匹配项;
策略表填充单元,用于在标识策略表中不存在该发布者标识信息的匹配项的情况下,将DDS报文的发布者标识信息和DDS报文的主题在主题策略表中的主题表索引地址写入标识策略表中的表项。
进一步的,策略表填充单元包括:
地址记录子单元,用于记录DDS报文的主题的匹配项在主题策略表中的主题表索引地址;
第一计算子单元,对DDS报文的发布者标识信息进行哈希运算,得到第一运算结果;
策略表填充子单元,用于在标识策略表中查找与第一运算结果相同的标识表索引地址,将发布者标识信息和主题表索引地址,写入标识策略表中标识表索引地址对应的表项,其中,发布者标识信息写入标识表索引地址对应表项中的标识项,主题表索引地址写入标识表索引地址对应表项中的索引项。
在上述技术方案的基础上,第二报文过滤模块740包括:
内容获取单元,用于在标识策略表中获取DDS报文的发布者标识信息对应表项中索引项的内容;
第三匹配项查找单元,用于将索引项的内容作为当前主题表索引地址,在主题策略表中查找当前主题表索引地址对应表项中的数据处理信息;该数据处理信息包括:动作、M个偏移量和M个比较值;
比较单元,用于按照M个偏移量在DDS报文的数据内容中提取M个字段,并分别比较提取的字段与对应的比较值;
第三处理单元,用于在M个比较结果全部为匹配的情况下,按照当前主题表索引地址对应表项中的动作处理DDS报文;以及在M个比较结果中任一结果为不匹配的情况下,丢弃DDS报文。
进一步的,内容获取单元包括:
第二计算子单元,用于对DDS报文的发布者标识信息进行哈希运算,得到第二运算结果;
地址查找子单元,用于在标识策略表中查找与第二运算结果相同的标识表索引地址;
内容获取子单元,用于在标识策略表中存在与第二运算结果相同的标识表索引地址的情况下,在标识策略表中获取该标识表索引地址对应表项中索引项的内容;
处理子单元,用于在标识策略表中不存在与第二运算结果相同的标识表索引地址的情况下,按照第二默认动作处理DDS报文。
本发明实施例所提供的报文过滤装置可执行本发明任意实施例所提供的报文过滤方法,具备执行方法相应的功能模块和有益效果。
该装置可以通过软件和/或硬件的方式实现。例如,该装置可以基于FPGA实现,具体使用FPGA上RAM实现具有对应关系的主题策略表和标识策略表,在处理DDS报文的过程中,通过查表来实现报文的主题过滤和/或数据字段过滤。
值得注意的是,上述报文过滤装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;例如,该装置仅包括接收模块和过滤模块,接收模块用于实现接收和解析相关的功能,过滤模块用于实现查找、计算、比较、处理和过滤相关的功能。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例五
图8是本发明实施例五提供的报文过滤方法的实施拓扑框图,包括第一计算机10、第二计算机20、交换机30、DDS设备40和第三计算机50。
第一计算机10和第二计算机20均装载且正在运行DDS验证软件,用于订阅、发布数据,第一计算机10和第二计算机20均通过RJ45接口与交换机30连接。交换机30是普通交换机,至少有3个RJ45接口。DDS设备40可以是过滤板卡,过滤板卡中存储有基于FPGA上RAM实现的主题策略表和标识策略表,过滤板卡可以***机框内,DDS设备40通过RJ45接口与交换机30连接,通过RS232串口与第三计算机50连接。第三计算机50是配置计算机,用于DDS设备40配置主题策略表的表项等,通过RS232串口与DDS设备40连接。
数据流向为:交换机30将第一计算机10、第二计算机20发出的数据镜像输出给DDS设备40,DDS设备40过滤完DDS报文之后,将报文输出给交换机30,交换机30再进行报文转发。
示例性的,第三计算机50配置DDS设备40中的TOPIC表项,其中主题为正方形的报文通过,主题为三角形的报文丢弃,主题为指令但指令数据为1122334455667788的报文丢弃,其它指令数据通过。
第二计算机20作为订阅者,订阅主题为正方形、三角形和指令的DDS报文(QoS默认)。第一计算机10作为发布者,分别发送主题为正方形、三角形、指令为“1122334455667788”和指令为非“1122334455667788”的DDS报文。
DDS报文过滤的结果如下:对于主题为正方形的DDS报文,第二计算机20可正常接收,且DDS验证界面可同步显示正方形框的运行动态;对于主题为三角形的DDS报文,第一计算机10的DDS验证界面显示三角形框在运行,第二计算机20的DDS验证界面上三角形框静止不动,即对于主题为三角形的DDS报文被DDS设备40过滤;对于主题为指令的DDS报文,第二计算机20成功接收到指令数据为非“1122334455667788”的DDS报文,未成功接收到指令数据为“1122334455667788”的DDS报文。
由此可见,通过硬件实现DDS报文过滤,能够过滤满足主题条件的DDS报文,以及过滤满足数据字段条件的DDS报文。
实施例六
图9是本发明实施例六提供的一种设备的结构示意图,如图9所示,该设备包括:处理器910和存储器920;设备中处理器910的数量可以是一个或多个,图9中以一个处理器910为例;设备中的处理器910和存储器920可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器920作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的报文过滤方法对应的程序指令/模块(例如,报文过滤装置中的报文接收模块710、类型判断模块720、第一报文过滤模块730和第二报文过滤模块740)。处理器910通过运行存储在存储器920中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的报文过滤方法。
存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器920可进一步包括相对于处理器910远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
另外,上述设备还可以包括接口930,用于与交换机、计算机等连接,并传输报文。接口具体可以为RJ45接口和RS232串口等。
实施例七
本发明实施例七还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种报文过滤方法,该方法包括:
接收DDS报文;
判断DDS报文的类型;
如果DDS报文是发布主题报文,根据预设的主题策略表对DDS报文进行主题过滤;
如果DDS报文是数据报文,根据主题策略表与标识策略表的对应关系以及DDS报文的发布者标识信息,在主题策略表中查找DDS报文对应的数据处理信息,并按照该数据处理信息对DDS报文进行数据字段过滤;其中,主题策略表与标识策略表的对应关系为:主题策略表中主题的索引地址存储在标识策略表中发布者标识信息对应的表项中。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于执行如上所述的方法操作,还可以执行本发明任意实施例所提供的报文过滤方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种报文过滤方法,其特征在于,包括:
接收数据分发服务DDS报文;
判断所述DDS报文的类型;
如果所述DDS报文是发布主题报文,根据预设的主题策略表对所述DDS报文进行主题过滤;
如果所述DDS报文是数据报文,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,并按照所述数据处理信息对所述DDS报文进行数据字段过滤;
其中,所述主题策略表与所述标识策略表的对应关系为:所述主题策略表中主题的索引地址存储在所述标识策略表中发布者标识信息对应的表项中。
2.根据权利要求1所述的方法,其特征在于,根据预设的主题策略表对所述DDS报文进行主题过滤包括:
在所述主题策略表中查找所述DDS报文的主题的匹配项;
如果所述主题策略表中存在所述主题的匹配项,控制所述DDS报文通过;
如果所述主题策略表中不存在所述主题的匹配项,按照第一默认动作处理所述DDS报文。
3.根据权利要求1或2所述的方法,其特征在于,如果所述DDS报文是发布主题报文,所述方法还包括:
将所述DDS报文的发布者标识信息和所述DDS报文的主题在所述主题策略表中的主题表索引地址写入所述标识策略表中的表项。
4.根据权利要求3所述的方法,其特征在于,将所述DDS报文的发布者标识信息和所述DDS报文的主题在所述主题策略表中的主题表索引地址写入所述标识策略表中的表项,包括:
记录所述DDS报文的主题的匹配项在所述主题策略表中的主题表索引地址;
对所述DDS报文的发布者标识信息进行哈希运算,得到第一运算结果;
在所述标识策略表中查找与所述第一运算结果相同的标识表索引地址,将所述发布者标识信息和所述主题表索引地址,写入所述标识策略表中所述标识表索引地址对应的表项,其中,所述发布者标识信息写入所述标识表索引地址对应表项中的标识项,所述主题表索引地址写入所述标识表索引地址对应表项中的索引项。
5.根据权利要求1所述的方法,其特征在于,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,包括:
在所述标识策略表中获取所述DDS报文的发布者标识信息对应表项中索引项的内容;
将所述索引项的内容作为当前主题表索引地址,在所述主题策略表中查找所述当前主题表索引地址对应表项中的数据处理信息。
6.根据权利要求1所述的方法,其特征在于,所述主题策略表中包括主题和数据处理信息的对应关系,所述标识策略表中包括发布者标识信息和所述发布者发布的主题在所述主题策略表中的索引地址的对应关系。
7.根据权利要求1所述的方法,其特征在于,所述报文过滤方法基于现场可编程门阵列FPGA实现,所述主题策略表中的表项内容由用户通过管理配置接口预先配置。
8.一种报文过滤装置,其特征在于,包括:
报文接收模块,用于接收数据分发服务DDS报文;
类型判断模块,用于判断所述DDS报文的类型;
第一报文过滤模块,用于在所述DDS报文是发布主题报文的情况下,根据预设的主题策略表对所述DDS报文进行主题过滤;
第二报文过滤模块,用于在所述DDS报文是数据报文的情况下,根据所述主题策略表与标识策略表的对应关系以及所述DDS报文的发布者标识信息,在所述主题策略表中查找所述DDS报文对应的数据处理信息,并按照所述数据处理信息对所述DDS报文进行数据字段过滤;
其中,所述主题策略表与所述标识策略表的对应关系为:所述主题策略表中主题的索引地址存储在所述标识策略表中发布者标识信息对应的表项中。
9.根据权利要求8所述的装置,其特征在于,所述主题策略表中包括主题和数据处理信息的对应关系,所述标识策略表中包括发布者标识信息和所述发布者发布的主题在所述主题策略表中的索引地址的对应关系。
10.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任一所述的报文过滤方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一所述的报文过滤方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710918623.0A CN107483508B (zh) | 2017-09-30 | 2017-09-30 | 报文过滤方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710918623.0A CN107483508B (zh) | 2017-09-30 | 2017-09-30 | 报文过滤方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107483508A true CN107483508A (zh) | 2017-12-15 |
CN107483508B CN107483508B (zh) | 2020-04-24 |
Family
ID=60605788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710918623.0A Active CN107483508B (zh) | 2017-09-30 | 2017-09-30 | 报文过滤方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107483508B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049840A (zh) * | 2019-12-17 | 2020-04-21 | 锐捷网络股份有限公司 | 一种报文检测方法及装置 |
CN111865963A (zh) * | 2020-07-16 | 2020-10-30 | 郑州信大捷安信息技术股份有限公司 | 一种基于ip选项的ip数据包处理方法与*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340387A (zh) * | 2008-08-12 | 2009-01-07 | 华为技术有限公司 | 控制转发数据报文的方法和装置 |
CN101656749A (zh) * | 2009-09-17 | 2010-02-24 | 中国船舶重工集团公司第七○九研究所 | 一种实时***下无中心节点的发布者/订阅者实时互发现方法 |
CN102387160A (zh) * | 2011-12-13 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种基于ip报文五元组过滤策略的***和方法 |
CN103414725A (zh) * | 2013-08-21 | 2013-11-27 | 北京网秦天下科技有限公司 | 用于检测和过滤数据报文的方法和设备 |
CN105933208A (zh) * | 2016-05-19 | 2016-09-07 | 青岛海尔智能家电科技有限公司 | 一种消息处理方法和装置 |
US20160315800A1 (en) * | 2011-10-11 | 2016-10-27 | Saudi Arabian Oil Company | High performance and grid computing with liveliness and deadlines fault tolerant data distributor quality of service |
CN107040403A (zh) * | 2016-12-30 | 2017-08-11 | 中国舰船研究设计中心 | 基于dds技术提高分布式***可靠性的方法 |
-
2017
- 2017-09-30 CN CN201710918623.0A patent/CN107483508B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101340387A (zh) * | 2008-08-12 | 2009-01-07 | 华为技术有限公司 | 控制转发数据报文的方法和装置 |
CN101656749A (zh) * | 2009-09-17 | 2010-02-24 | 中国船舶重工集团公司第七○九研究所 | 一种实时***下无中心节点的发布者/订阅者实时互发现方法 |
US20160315800A1 (en) * | 2011-10-11 | 2016-10-27 | Saudi Arabian Oil Company | High performance and grid computing with liveliness and deadlines fault tolerant data distributor quality of service |
CN102387160A (zh) * | 2011-12-13 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种基于ip报文五元组过滤策略的***和方法 |
CN103414725A (zh) * | 2013-08-21 | 2013-11-27 | 北京网秦天下科技有限公司 | 用于检测和过滤数据报文的方法和设备 |
CN105933208A (zh) * | 2016-05-19 | 2016-09-07 | 青岛海尔智能家电科技有限公司 | 一种消息处理方法和装置 |
CN107040403A (zh) * | 2016-12-30 | 2017-08-11 | 中国舰船研究设计中心 | 基于dds技术提高分布式***可靠性的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111049840A (zh) * | 2019-12-17 | 2020-04-21 | 锐捷网络股份有限公司 | 一种报文检测方法及装置 |
CN111049840B (zh) * | 2019-12-17 | 2022-04-26 | 锐捷网络股份有限公司 | 一种报文检测方法及装置 |
CN111865963A (zh) * | 2020-07-16 | 2020-10-30 | 郑州信大捷安信息技术股份有限公司 | 一种基于ip选项的ip数据包处理方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN107483508B (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462750A (zh) | 分布式调用追踪方法、业务***、监控***及存储介质 | |
CN104468401B (zh) | 一种报文处理方法和装置 | |
CN106790420B (zh) | 一种多会话通道建立方法和*** | |
CN103905508B (zh) | 云平台应用部署方法及装置 | |
CN107566150A (zh) | 处理云资源的方法和物理节点 | |
CN109271793A (zh) | 物联网云平台设备类别识别方法及*** | |
CN108401037A (zh) | 用户终端和设备的绑定方法、装置和*** | |
CN109391502A (zh) | 一种信息配置方法和管理单元 | |
CN103067295A (zh) | 业务传输的方法、装置与*** | |
CN108011826A (zh) | 路由方法、路由设备、通信***及存储介质 | |
CN108259218A (zh) | 一种ip地址分配方法和装置 | |
CN108132868A (zh) | 一种数据监控方法、装置、计算设备及存储介质 | |
CN109510785A (zh) | 一种镜像报文的方法和装置 | |
CN109151025A (zh) | 基于url的负载均衡方法、装置、计算机存储介质及设备 | |
CN107483508A (zh) | 报文过滤方法、装置、设备及存储介质 | |
CN108063685A (zh) | 日志分析方法及装置 | |
CN107592554A (zh) | 直播视频转发方法及装置 | |
CN110019786A (zh) | 网络社区的话题发送方法、话题列表排序方法及装置 | |
CN103812774B (zh) | 基于tcam的策略配置方法、报文处理方法及相应装置 | |
CN104363257B (zh) | 一种用户界面数据刷新方法和设备 | |
CN108205520A (zh) | KPI与QoE回归模型建立方法以及装置 | |
CN104980409A (zh) | 一种上网行为管理方法及装置 | |
CN104660636B (zh) | 点对点应用识别处理方法和装置 | |
CN107835175A (zh) | 采用平衡二叉树算法的网络连接跟踪方法 | |
CN109088956A (zh) | 基于物品信息或人的信息生成IPv6地址方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |