[发明专利]一种网络地址与网络地址转换规则的匹配方法有效
申请号: | 202011559000.7 | 申请日: | 2020-12-25 |
公开(公告)号: | CN112769973B | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 李丹;李峻峰 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L29/12 | 分类号: | H04L29/12 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 罗文群 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网络地址 转换规则 匹配 方法 | ||
1.一种网络地址与网络地址转换规则的匹配方法,其特征在于该方法包括以下步骤:
(1)将原始网络地址转换规则按照掩码长度和规则类型分类存放到32张网络源地址转换规则哈希子表和32张网络目的地址转换规则哈希子表中,每张哈希子表分别与网络地址掩码和原始网络地址转换规则的种类相对应;每张哈希子表具有65536行,每一行包含一个链表,用来存储网络地址转换规则;当存储原始网络地址转换规则时,左边为原始网络地址转换规则表,中间为各网络源地址转换规则哈希子表,右边为各网络目的地址转换规则哈希子表,每张哈希子表包括一个规则计数器,初始化时计数器值默认为0;将第2条规则存入掩码24的网络源地址转换规则哈希子表中,存储位置由根据该第2条规则的网络地址、网络端口号、网络传输协议号计算的哈希值来决定;哈希函数为微软托普利兹哈希函数的输出值取后16位,计算得到的哈希值在[0,65535]范围之中;当原始网络地址转换规则存入网络源地址转换规则哈希子表或网络目的地址转换规则哈希子表中时,将该哈希子表的计数器值加1;
(2)当网络数据包到来时,利用步骤(1)的存储信息,进行数据包网络地址与网络目的地址转换规则的匹配,具体过程如下:
(2-1)设定初始掩码值mask为32;
(2-2)将步骤(1)中的掩码值为mask的网络目的地址转换规则哈希子表记为哈希子表T1,对哈希子表T1的计数器值进行判断,若计数器值大于0,则执行步骤(2-3),若计数器值小于或等于0,则执行步骤(2-2-1);
(2-2-1)将掩码值mask减1;
(2-2-2)对掩码值mask进行判断,若掩码值mask大于0,则重复步骤(2-2),若掩码值mask小于等于0,则未找到与网络数据包匹配的网络目的地址转换规则,执行步骤(3);
(2-3)将掩码值mask和网络数据包目的网络地址进行按位与运算,得到按位与运算后的网络数据包目的网络地址,并记为网络地址IP1;
(2-4)将网络地址IP1、网络数据包的目的端口号和传输协议号输入哈希函数,计算得到哈希值V1;
(2-5)判断步骤(2-2)的哈希子表T1中行号V1的链表L1中是否存在网络目的地址转换规则,若存在,则执行步骤(2-6),若不存在,则执行步骤(2-9);
(2-6)读取链表L1中的第一条网络目的地址转换规则R1;
(2-7)判断网络目的地址转换规则R1的网络地址和端口号与网络地址IP1和网络数据包的目的端口号是否分别同时对应,若分别同时对应,则匹配到网络目的地址转换规则,实现网络地址与网络地址转换规则的匹配,结束;若不分别同时对应,则执行步骤(2-8);
(2-8)判断链表L1中是否存在下一条网络目的地址转换规则,若存在下一条规则,则读取链表L1中的下一条网络目的地址转换规则R1,并执行步骤(2-7);若不存在,则执行步骤(2-9);
(2-9)将网络地址IP1、网络数据包的传输协议号输入哈希函数,计算得到哈希值V2;
(2-10)判断步骤(2-2)的哈希子表T1中行号V2的链表L2中是否存在网络目的地址转换规则,若存在,则执行步骤(2-11),若不存在,则返回步骤(2-2-1);
(2-11)读取链表L2中的第一条网络目的地址转换规则R2;
(2-12)判断网络目的地址转换规则R2的网络地址和端口号与网络地址IP1和网络数据包的目的端口号是否分别同时对应,若分别同时对应,则匹配到网络目的地址转换规则,实现网络地址与网络地址转换规则的匹配,结束;若不分别同时对应,则执行步骤(2-13);
(2-13)判断链表L2中是否存在下一条网络目的地址转换规则,若存在下一条规则,则读取链表L2中的下一条网络目的地址转换规则R2,并执行步骤(2-12);若不存在,则返回步骤(2-2-1);
(3)利用步骤(1)的存储信息,进行网络地址与网络源地址转换规则的匹配,具体过程如下:
(3-1)设定初始掩码值mask为32;
(3-2)将步骤(1)中的掩码值为mask的网络源地址转换规则哈希子表记为哈希子表T2,对哈希子表T2的计数器值进行判断,若计数器值大于0,则执行步骤(3-3),若计数器值小于或等于0,则执行步骤(3-2-1);
(3-2-1)将掩码值mask减1;
(3-2-2)对掩码值mask进行判断,若掩码值mask大于0,则重复步骤(3-2),若掩码值mask小于等于0,则未找到与网络数据包匹配的网络地址转换规则,结束;
(3-3)将掩码值mask和网络数据包源网络地址进行按位与运算,得到按位与运算后的网络数据包源网络地址,并记为网络地址IP2;
(3-4)将网络地址IP2、网络数据包的源端口号和传输协议号输入哈希函数,计算得到哈希值V1;
(3-5)判断步骤(3-2)的哈希子表T2中行号V1的链表L1中是否存在网络源地址转换规则,若存在,则执行步骤(3-6),若不存在,则执行步骤(3-9);
(3-6)读取链表L1中的第一条网络源地址转换规则R1;
(3-7)判断网络源地址转换规则R1的网络地址和端口号与网络地址IP2和网络数据包的源端口号是否分别同时对应,若分别同时对应,则匹配到网络源地址转换规则,实现网络地址与网络地址转换规则的匹配,结束;若不分别同时对应,则执行步骤(3-8);
(3-8)判断链表L1中是否存在下一条网络源地址转换规则,若存在下一条规则,则读取链表L1中的下一条网络源地址转换规则R1,并执行步骤(3-7);若不存在,则执行步骤(3-9);
(3-9)将网络地址IP2、网络数据包的传输协议号输入哈希函数,计算得到哈希值V2;
(3-10)判断步骤(3-2)的哈希子表T2中行号V2的链表L2中是否存在网络源地址转换规则,若存在,则执行步骤(3-11),若不存在,则返回步骤(3-2-1);
(3-11)读取链表L2中的第一条网络源地址转换规则R2;
(3-12)判断网络源地址转换规则R2的网络地址和端口号与网络地址IP2和网络数据包的源端口号是否分别同时对应,若分别同时对应,则匹配到网络源地址转换规则,实现网络地址与网络地址转换规则的匹配;若不分别同时对应,则执行步骤(3-13);
(3-13)判断链表L2中是否存在下一条网络源地址转换规则,若存在下一条规则,则读取链表L2中的下一条网络源地址转换规则R2,并执行步骤(3-12);若不存在,则返回步骤(3-2-1)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011559000.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据摆渡系统及方法
- 下一篇:一种二次雷达通道信号的配对装置