一种ICMP报文匹配系统及方法与流程

文档序号:12729781阅读:486来源:国知局

本发明涉及网络数据交换领域,尤其涉及一种ICMP报文匹配系统及方法。



背景技术:

ICMP(Internet Control Message Protocol)Internet控制报文协议是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。包括网络通畅、主机可达、路由可用等网络消息。虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

在特定的拓扑网络内,交换设备可能保存着成千上万条各个协议报文的处理策略。当特定包到达时,需要进行五元组匹配从而确定采取的策略,其中ICMP的端口号位置变成TYPE类型和CODE类型,若采用同一般TCP或UDP协议同样的策略匹配方法,会增加存储的策略条数,从而会增加存储冗余,降低策略匹配效率。



技术实现要素:

为了解决以上技术问题,本发明针对ICMP策略和报文中TYPE类型特性,提出了一种ICMP报文匹配系统。

本发明所采用的技术方案是:

一种ICMP报文匹配系统,

包括策略解析模块、报文解析模块、哈希运算模块、冲突处理模块、策略存储模块和比较匹配模块;

其中,

策略解析模块,用于接收并解析前级电路下发的ICMP报文处理策略,将解析后的策略数据发送至所述哈希运算模块和策略存储模块;

报文解析模块,用于接收并解析来自网络的ICMP报文,将解析后的报文数据发送至哈希运算模块和比较匹配模块;

哈希运算模块,用于接收输入的策略数据或报文数据,通过一定的哈希函数映射出哈希结果,经输出端接入冲突处理模块和策略存储模块的高位地址输入端;

冲突处理模块,用于记录或查询相同哈希输出结果出现的次数及对应的策略存储模块低位地址;

策略存储模块,用于将策略数据存储到由哈希运算模块输出和冲突处理模块输出公共指定的地址内;

比较匹配模块,用于将报文数据和策略数据进行匹配比较,并将结果输出。

解析后的策略数据包括合法的ICMP报文源IP地址、合法的目的IP地址、合法的ICMP报文TYPE类型、合法的ICMP报文方向、ICMP报文处理方式。

合法的ICMP报文TYPE类型由11位的比特数据形式表示,每一位置一表示策略内包含相应的TYPE类型。

解析后的报文数据包括ICMP报文源IP地址、ICMP报文目的IP地址、ICMP报文TYPE类型;

解析后的ICMP报文TYPE类型由11位的比特数据形式表示,某一位置一表示该报文为相应的TYPE类型;

本发明还公开了一种ICMP报文匹配方法,包括如下步骤,

(1)前级电路下发合法的ICMP报文处理策略至策略解析模块;

(2)将解析出的合法的ICMP报文源IP地址、合法的目的IP地址、11位全置零的ICMP报文TYPE类型进行哈希运算,并将结果进行冲突处理;

(3)将步骤2解析出的合法的ICMP报文TYPE类型、合法的ICMP报文方向、ICMP报文处理方式存入以哈希结果和冲突处理结果构成的策略存储模块地址中;

(4)ICMP报文到达,经报文解析模块解析;

(5)解析出的源IP地址、目的IP地址、11位全置零的ICMP报文TYPE类型经哈希运算和冲突处理得到需查询的策略存储模块地址;

(6)将到达的ICMP报文的TYPE类型与读出的TYPE类型进行按位与运算,若结果不为0,则表明匹配上了合法策略,进而进行后续报文处理;否则表明未匹配上合法策略,对报文不作处理或进行缺省处理。

本发明的有益效果是

通过采用部分报文参数进行哈希处理,部分报文参数存储,ICMP报文匹配时仅需对TYPE类型比较。在保证策略匹配的精确度的前提下,降低了报文协议策略存储成本,提高了报文匹配效率,为其他协议策略存储留出了域量。

附图说明

图1是本发明的电路结构示意图。

具体实施方式

下面对本发明的内容进行更加详细的阐述:

如图1所示,本发明的一种ICMP报文匹配电路,包括:策略解析模块、报文解析模块、哈希运算模块、冲突处理模块、策略存储模块和比较匹配模块。

所述策略解析模块,用于接收并解析前级电路下发的ICMP报文处理策略,将解析后的策略数据发送至所述哈希运算模块和所述策略存储模块。所述报文解析模块,用于接收并解析来自网络的ICMP报文,将解析后的报文数据发送至所述哈希运算模块和所述比较匹配模块。

所述哈希运算模块,用于接收输入的策略数据或报文数据,通过一定的哈希函数映射出哈希结果,根据本发明所优选的,选用CRC32算法进行哈希运算。经输出端接入所述冲突处理模块和策略存储模块的高十一位地址输入端。

所述冲突处理模块,用于记录或查询相同哈希输出结果出现的次数及对应的所述策略存储模块低四位地址。所述策略存储模块,用于将所述策略数据存储到由哈希运算模块输出和冲突处理模块输出公共指定的地址内。

所述比较匹配模块,用于将报文数据和策略数据进行匹配比较,并将结果输出。若到来的报文经哈希运算和冲突处理后策略存储模块地址有效,则将解析出的ICMP报文的TYPE类型与从策略存储模块中读取出的相应位的TYPE类型进行按位与操作。如果策略中包含相应的TYPE类型,则相应位会置一,二者按位与操作结果会有某位置一,则表明匹配上了合法的策略。

所述解析后的策略数据包括合法的ICMP报文源IP地址、合法的目的IP地址、合法的ICMP报文TYPE类型、合法的ICMP报文方向、ICMP报文处理方式等;所述解析后的报文数据包括ICMP报文源IP地址、ICMP报文目的IP地址、ICMP报文TYPE类型等。

所述合法的ICMP报文TYPE类型由11位的比特数据形式表示,每一位置一表示策略内包含相应的TYPE类型;所述解析后的ICMP报文TYPE类型由11位的比特数据形式表示,某一位置一表示该报文为相应的TYPE类型。

(1)前级电路下发合法的ICMP报文处理策略至策略解析模块;

(2)将解析出的合法的ICMP报文源IP地址、合法的目的IP地址、11位全置零的ICMP报文TYPE类型进行哈希运算,并将结果进行冲突处理;

(3)将步骤2解析出的合法的ICMP报文TYPE类型、合法的ICMP报文方向、ICMP报文处理方式等存入以哈希结果和冲突处理结果构成的策略存储模块地址中;

(4)ICMP报文到达,经报文解析模块解析;

(5)解析出的源IP地址、目的IP地址、11位全置零的ICMP报文TYPE类型经哈希运算和冲突处理得到需查询的策略存储模块地址;

(6)将到达的ICMP报文的TYPE类型与读出的TYPE类型进行按位与运算,若结果不为0,则表明匹配上了合法策略,进而进行后续报文处理;否则表明未匹配上合法策略,对报文不作处理或进行缺省处理。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1