CN100444579C - 一种基于自适应缓存机制实现快速网络报文分发的方法 - Google Patents
一种基于自适应缓存机制实现快速网络报文分发的方法 Download PDFInfo
- Publication number
- CN100444579C CN100444579C CNB2005100111946A CN200510011194A CN100444579C CN 100444579 C CN100444579 C CN 100444579C CN B2005100111946 A CNB2005100111946 A CN B2005100111946A CN 200510011194 A CN200510011194 A CN 200510011194A CN 100444579 C CN100444579 C CN 100444579C
- Authority
- CN
- China
- Prior art keywords
- distribution
- cache
- message
- item
- cache entry
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种实现快速网络报文分发的方法,该方法可以实现报文分发项的快速匹配命中、提高分发查询的效率,并且不需要预处理过程、支持多维复杂分发项和分发项的增量更新。本发明的基于缓存机制实现快速网络报文分发以及定时对缓存进行自适应调整的方法,支持分发项的增量添加和删除。本发明的方法利用了网络通信的空间局部相关性,并通过缓存掩码来控制缓存粒度,使得落在缓存项覆盖的空间范围内的报文能够复用缓存项中保存的分发查询结果,从而提高了缓存的利用率和命中率,缓存空间也得以控制在一定的规模;根据缓存失效率和命中失效率对缓存掩码进行动态调整,在缓存效率降低时能及时做出反应。
Description
技术领域
本发明属于计算机网络和数据通信技术领域,具体涉及一种基于自适应缓存机制实现快速网络报文分发的方法,该方法可以用于路由器、交换机、防火墙、入侵检测、流量审计与计费、负载均衡等网络设备和软件的报文分发装置之中,实现报文分发项的快速匹配命中、提高分发查询的效率,。
背景技术
在网络设备和软件中通常需要根据一个分发集对不同报文分别进行处理,分发集往往规模较大、属性复杂且匹配操作类型多样。由于需要对每个报文进行分发查询,找到其对应的分发项,因此报文分发的效率在确保系统整体性能方面起着非常关键的作用。另外,还需要考虑报文分发在资源开销、灵活性、可扩展性和支持分发项增量更新等方面的要求。实现快速网络报文分发的方法已经成为学术界和工业界需要解决的一个重要课题。
发明内容
本发明的目的是提供一种实现快速网络报文分发的方法,该方法可以实现报文分发项的快速匹配命中、提高分发查询的效率,并且不需要预处理过程、支持多维复杂分发项和分发项的增量更新。
本发明的目的是这样实现的:一种基于缓存机制实现快速网络报文分发以及定时对缓存进行自适应调整的方法,并且支持分发项的增量添加和删除。
基于缓存机制实现快速网络报文分发的特征在于:
首先建立一个散列表,根据分发集的规模和存储空间大小选取适当的表长。该表中每个散列项都包含一个缓存项链表的头指针。每个缓存项包含如下元素:缓存标签向量、分发项指针数组、比较计数器和指向链表中下一缓存项的指针。其中缓存标签向量由源IP地址前缀、目的IP地址前缀、输入设备、协议号、是否碎片标识组成;
然后选择分发集中除单IP外最长地址前缀的掩码作为缓存掩码的初始值;
当报文到达时,提取报文的源IP地址和目的IP地址分别与缓存掩码进行“与”运算,得到源IP地址前缀和目的IP地址前缀,然后与报文的输入设备、协议号和是否碎片标识等信息一起组成五元组报文标签向量。将该报文标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项;
将分发查询计数器加1,然后判断散列项所指的缓存项链表否为空?若是,则执行添加缓存项操作;
若否,则将报文标签向量与缓存项链表中各缓存项的缓存标签向量依次进行比较。若缓存项的缓存标签向量与报文标签向量不相同,则将该缓存项的比较计数器减1并缓存失效计数器加1,然后转到下一个缓存项继续进行比较循环。如果循环结束时还未找到其标签向量与报文标签向量相同的缓存项(即缓存失效),执行缓存失效操作;否则,将缓存项的比较计数器加5,然后将分发项指针数组中的指针所指向的分发项与报文依次执行匹配操作。若找到相对应的分发项(即缓存命中),则结束该次分发查询;否则(即缓存命中失效),执行缓存命中失效操作。
所述分发项与报文的匹配操作,即将报文的MAC地址、源IP地址、目的IP地址、源端口、目的端口、协议号、是否碎片标识、输入设备、输出设备、连接状态等属性值与分发项中对应字段的值进行比较。如果这些属性值都落在分发项对应字段值所指的范围内,则称报文匹配命中该分发项。
所述缓存失效操作,即首先判断是否还有空闲缓存项?若是,则执行添加缓存项操作;否则执行替换缓存项操作。
所述缓存命中失效操作,即首先将缓存命中失效计数器加1,然后跳转到分发集中,从分发项指针数组中最后一个指针所指位置往后查询与报文相对应的分发项。在查询过程中,如果报文标签向量各属性字段值都落在某分发项各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
所述添加缓存项操作,即新建一个缓存项并将其加入到缓存项链表中,以报文标签向量作为缓存标签向量。然后跳转到分发集中从头开始查询与报文相匹配的分发项。在查询过程中,如果报文标签向量各属性字段值都落在某分发项各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
所述替换缓存项操作,选取缓存项链表中比较计数器值最小的那个缓存项进行替换,以报文标签向量作为缓存标签向量,同时清空分发项指针数组并将比较计数器清零,然后跳转到分发集中从头开始查询与报文相对应的分发项。在查询过程中,如果报文标签向量各属性字段值都落在某分发项各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
定时对缓存进行自适应调整的特征在于:
首先根据分发查询计数器、缓存失效计数器、缓存命中失效计数器计算缓存失效率和缓存命中失效率;
然后判断缓存失效率或者缓存命中失效率是否超过阈值?若缓存失效率超过阈值,则表明缓存掩码太大,需要将其调小;若缓存命中失效率超过阈值,则表明缓存掩码太小,需要将其调大。调整缓存掩码后,要清空散列表,重新添加缓存项。
支持分发项增量添加的特征在于:
首先提取新添加的分发项中定义的源IP地址段和目的IP地址段与缓存掩码进行“与”运算,得到若干个源IP地址前缀和目的IP地址前缀,并与分发项中定义的输入设备、协议号和是否碎片标识等信息一起组成五元组标签向量。将该标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项;
然后将该分发项与散列项所指缓存项链表中各缓存项进行比较。如果分发项的标签向量各字段值都落在某缓存项的缓存标签向量各对应字段的值所指范围内,则从后往前扫描缓存项的分发项指针数组,将该分发项的指针插入到数组中。
支持分发项增量删除的特征在于:
将待删除的分发项做上删除标记,而不必回收空间;
以后执行分发查询时跳过这些做过标记的分发项即可。
本方法进行网络报文分发的过程为:
(1)执行初始化操作:首先建立一个散列表,根据分发集的规模和存储空间大小选取适当的表长,可以按照分发项总数的三分之一或者存储空间大小除以缓存项大小的6倍来作为表长。该表中的每个散列项都包含一个缓存项链表的头指针。链表中的缓存项可以动态增删,个数不限(不能超过缓存项总数)。每个缓存项包含如下元素:缓存标签向量、分发项指针数组、比较计数器和指向下一个缓存项的指针。其中标签向量由源IP地址前缀、目的IP地址前缀、输入设备、协议号、是否碎片标识组成。然后选择分发集中除单IP外最长地址前缀的掩码作为缓存掩码的初始值;
(2)当报文到达时,提取报文的源IP地址和目的IP地址分别与缓存掩码进行“与”运算,得到若干个源IP地址前缀和目的IP地址前缀,然后与报文的输入设备、协议号和是否碎片标识等信息一起组成五元组报文标签向量。将该报文标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项;
(3)将分发查询计数器加1,然后判断散列项所指缓存项链表是否为空?若是,则进入第(10)操作步骤;若否,则进入第(4)操作步骤;
(4)将报文标签向量与缓存项链表中各缓存项的缓存标签向量依次进行比较。若两者不相同,则将缓存项的比较计数器减1并缓存失效计数器加1,然后转到下一个缓存项继续进行比较循环;
(5)如果循环结束时还未找到其标签向量与报文标签向量相同的缓存项(即缓存失效),则进入第(8)操作步骤;否则,进入第(6)操作步骤;
(6)将缓存项的比较计数器加5,然后将分发项指针数组中的指针所指向的分发项与报文依次执行匹配操作,即将报文的MAC地址、源IP地址、目的IP地址、源端口、目的端口、协议号、是否碎片标识、输入设备、输出设备、连接状态等属性值与分发项各对应字段的值进行比较——如果这些属性值都落在分发项对应字段值所指的范围内,则称报文匹配命中该分发项;
(7)若找到相对应的分发项(即缓存命中),则进入第(13)操作步骤;否则(即缓存命中失效),进入第(9)操作步骤;
(8)执行缓存失效操作。判断是否还有空闲缓存项?若是,则转入第(10)操作步骤;否则转入第(11)操作步骤;
(9)执行缓存命中失效操作。将缓存命中失效计数器加1,然后跳转到分发集中,从分发项指针数组中最后一个指针所指位置往后查询与报文相对应的分发项。然后转入第(12)操作步骤;
(10)执行添加缓存项操作。新建一个缓存项并将其加入到缓存项链表中,以报文标签向量作为缓存标签向量。然后跳转到分发集中从头开始查询与报文相匹配的分发项。然后转入第(12)操作步骤;
(11)执行替换缓存项操作。选取缓存项链表中比较计数器值最小的那个缓存项进行替换,以报文标签向量作为缓存标签向量,同时清空分发项指针数组并将比较计数器清零,然后跳转到分发集中从头开始查询与报文相匹配的分发项。然后转入第(12)操作步骤;
(12)在查询分发集的过程中,如果报文标签向量各属性字段值都落在某分发项各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止;
(13)结束该次分发查询。
本方法进行缓存自适应调整的过程包括如下步骤:
(1)定期(时间间隔可以为20秒)根据分发查询计数器、缓存失效计数器、缓存命中失效计数器计算缓存失效率和缓存命中失效率;
(2)判断缓存失效率或者缓存命中失效率是否超过阈值?若缓存失效率超过阈值,则表明缓存掩码太大,需要将其调小;若缓存命中失效率超过阈值,则表明缓存掩码太小,需要将其调大;
(3)调整缓存掩码后,要清空散列表,重新添加缓存项;
(4)结束此次自适应调整。
本方法进行分发项增量添加的过程包括如下步骤:
(1)提取新添加的分发项中定义的源IP地址段和目的IP地址段与缓存掩码进行“与”运算,得到若干个源IP地址前缀和目的IP地址前缀,并与分发项中定义的输入设备、协议号和是否碎片标识等信息一起组成五元组标签向量。将该标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项;
(2)然后将该分发项与散列项所指缓存项链表中各缓存项进行比较。如果分发项的标签向量各字段值都落在某缓存项的缓存标签向量各对应字段的值所指范围内,则从后往前扫描缓存项的分发项指针数组,将该分发项的指针插入到数组中。
本方法支持分发项增量删除的过程包括如下步骤:
(1)将待删除的分发项做上删除标记,而不必回收空间;
(2)以后执行分发查询时跳过这些做过标记的分发项即可。
本发明实现方法的特点是利用了网络通信的空间局部相关性,并通过缓存掩码来控制缓存粒度,使得落在缓存项覆盖的空间范围内的报文能够复用缓存项中保存的分发查询结果,从而提高了缓存的利用率和命中率,缓存空间也得以控制在一定的规模;根据缓存失效率和命中失效率对缓存掩码进行动态调整,在缓存效率降低时能及时做出反应。本方法不需要预处理过程,适用性好,易于实现,不仅占用存储空间少,而且能显著提高分发查找的效率。
附图说明
下面结合附图对本发明进一步详细地说明:
图1为本发明的实现网络报文分发的操作步骤流程图;
图2为本发明的实现缓存自适应调整的操作步骤流程图;
图3为本发明的实现分发项增量添加的操作步骤流程图;
图4为本发明的实现分发项增量删除的操作步骤流程图;
最佳实施例详细描述
下面参照本发明的附图,更详细地描述本发明的最佳实施例。
本发明是一种基于缓存机制实现快速网络报文分发以及定时对缓存进行自适应调整的方法,并且支持分发项的增量添加和删除。
参见图1,本方法进行网络报文分发的过程包括如下步骤:
(1)执行初始化操作1:首先建立一个散列表,根据分发集的规模和存储空间大小选取适当的表长(即散列表项总数),可以按照分发项总数的三分之一或者存储空间大小除以缓存项大小的6倍来作为表长。该表中的每个散列项都包含一个缓存项链表的头指针,占用4个字节。链表中的缓存项可以动态增删,个数不限(不能超过缓存项总数)。然后选择分发集中除单IP外最长地址前缀的掩码作为缓存掩码的初始值。
散列表的结构如下表所示:
数据信息(按照存储顺序排列) | 长度(字节) | 含义 |
缓存掩码 | 4 | |
分发查询计数器(query_times) | 4 | 初始化为0,记录分发查询的总次数 |
缓存失效计数器(miss_times) | 4 | 初始化为0,记录缓存失效总次数 |
缓存命中失效计数器(hitmiss_times) | 4 | 初始化为0,记录缓存命中失效总次数 |
散列表表长(hashtable_len) | 4 | 散列项总个数 |
散列表项指针(hashitems) | 4 | 指向所有散列表项所在的存储空间,该存储空间是根据散列表表长动态分配得到的 |
散列项的结构如下表所示:
数据信息(按照存储顺序排列) | 长度(字节) | 含义 |
缓存项链表头指针(cachelist) | 4 | 指向对应相同散列值的缓存项组成的链表 |
缓存项的结构如下表所示:
数据信息(按照存储顺序排列) | 长度(字节) | 含义 |
源IP地址前缀(sip) | 4 | 缓存标签向量中的元素 |
目的IP地址前缀(dip) | 4 | 缓存标签向量中的元素 |
输入设备(indev) | 4 | 缓存标签向量中的元素 |
协议号(protocol) | 1 | 缓存标签向量中的元素 |
是否碎片标识(isfrag) | 1 | 缓存标签向量中的元素 |
比较计数器(meet_counter) | 2 | 初始化为0,如果溢出则归0 |
分发项指针数组(items) | 32 | 保存对应同一缓存项的分发项的指针,分发项在数组中的次序按在分发集中的先后次序来定;共保存8个指针,每个指针占4个字节 |
指向下一个缓存项指针(next) | 4 |
(2)当报文到达时,执行查找散列表操作2。提取报文的源IP地址和目的IP地址与缓存掩码进行“与”运算,得到源IP地址前缀和目的IP地址前缀,然后与报文的输入设备、协议号和是否碎片标识等信息一起组成五元组报文标签向量。将该报文标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项。散列函数的运算公式为:
(源IP地址前缀+目的IP地址前缀+输入设备+协议号+是否碎片标识)%hashtable_len
(3)将分发查询计数器加1,然后判断散列项所指缓存项链表是否为空?若是,则进入第(10)操作步骤;若否,则进入第(4)操作步骤;
(4)比较缓存项操作3。将报文标签向量与缓存项链表中各缓存项的缓存标签向量依次进行比较。若两者不相同,则将缓存项的比较计数器减1并缓存失效计数器加1,然后转到下一个缓存项继续进行比较循环;
(5)如果循环结束时还未找到其标签向量与报文标签向量相同的缓存项(即缓存失效),则进入第(8)操作步骤;否则,进入第(6)操作步骤;
(6)执行查询缓存项分发项指针数组操作4。将缓存项的比较计数器加5,然后将分发项指针数组中的指针所指向的分发项与报文依次执行匹配操作,即将报文的MAC地址、源IP地址、目的IP地址、源端口、目的端口、协议号、是否碎片标识、输入设备、输出设备、连接状态等属性值与分发项各对应字段的值进行比较——如果这些属性值都落在分发项对应字段值所指的范围内,则称报文匹配命中该分发项;
(7)若找到相匹配的分发项(即缓存命中),则进入第(13)操作步骤;否则(即缓存命中失效),进入第(9)操作步骤;
(8)执行缓存失效操作5。判断是否还有空闲缓存项?若是,则转入第(10)操作步骤;否则转入第(11)操作步骤;
(9)执行缓存命中失效操作6。将缓存命中失效计数器加1,然后跳转到分发集中,从分发项指针数组中最后一个指针所指位置往后查询与报文相匹配的分发项。然后转入第(12)操作步骤;
(10)执行添加缓存项操作7。新建一个缓存项并将其加入到缓存项链表中,以报文标签向量作为缓存标签向量。然后跳转到分发集中从头开始查询与报文相匹配的分发项。然后转入第(12)操作步骤;
(11)执行替换缓存项操作8。选取缓存项链表中比较计数器值最小的那个缓存项进行替换,置其标签向量为报文向量,同时清空分发项指针数组并将比较计数器清零,然后跳转到分发集中从头开始查询与报文相匹配的分发项。然后转入第(12)操作步骤;
(12)执行记录查询路径操作9。在查询分发集的过程中,如果报文标签向量各属性字段值都落在某分发项各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止;
(13)结束该次分发查询。
参见图2,本方法进行缓存自适应调整的过程包括如下步骤:
(1)定期(时间间隔可以为20秒)根据分发查询计数器、缓存失效计数器、缓存命中失效计数器计算缓存失效率和缓存命中失效率。缓存失效率的计算公式为:
miss_times/query_times
缓存命中失效率的计算公式为:
hitmiss_times/query_times
(2)判断缓存失效率或者缓存命中失效率是否超过阈值?若缓存失效率超过阈值,则表明缓存掩码太大,需要将其调小(左移1位);若缓存命中失效率超过阈值,则表明缓存掩码太小,需要将其调大(带符号右移1位);
(3)调整缓存掩码后,要清空散列表,重新添加缓存项;
(4)结束此次自适应调整。
参见图3,本方法进行分发项增量添加的过程包括如下步骤:
(1)提取新添加的分发项中定义的源IP地址段和目的IP地址段与缓存掩码进行“与”运算,得到若干个源IP地址前缀和目的IP地址前缀,并与分发项中定义的输入设备、协议号和是否碎片标识等信息一起组成五元组标签向量。将该标签向量作为键值代入散列函数,以运算结果为索引在散列表中找到对应的散列项;
(2)然后将该分发项与散列项所指缓存项链表中各缓存项进行比较。如果分发项的标签向量各字段值都落在某缓存项的缓存标签向量各对应字段的值所指范围内,则从后往前扫描缓存项的分发项指针数组,将该分发项的指针插入到数组中。
参见图4,本方法支持分发项增量删除的过程包括如下步骤:
(1)将待删除的分发项做上删除标记,而不必回收空间;
(2)以后执行分发查询时跳过这些做过标记的分发项即可。
所以,本发明的实现方法是利用网络通信的空间局部相关性,并通过缓存掩码来控制缓存粒度,使得落在缓存项覆盖的空间范围内的报文能够复用缓存项中保存的分发查询结果,从而提高了缓存的利用率和命中率,缓存空间也得以控制在一定的规模;根据缓存失效率和命中失效率对缓存掩码进行动态调整(即缓存的自适应机制),在缓存效率降低时能及时做出反应,从而提高了整个系统进行分发查找的效率。此外,本方法不需要预处理过程,适用性好,易于实现,且占用存储空间少。
该方法已经在申请人研制的防火墙上应用,取得了很好的效果,实现了发明的目的。本发明的方法具有很好的实用性,具有很好的推广应用前景。
尽管为说明目的公开了本发明的最佳实施例和附图,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。
Claims (9)
1.一种基于自适应缓存机制实现快速网络报文分发的方法,具体包括以下步骤:
首先建立一个散列表,根据分发集的规模和存储空间大小选取表长;
然后选择分发集中除单IP外最长地址前缀的掩码作为缓存掩码的初始值;
接着在分发处理报文过程中将分发查询结果缓存到散列表中,并支持分发项的增量添加和删除以及定时对缓存进行自适应调整;所述分发项增量添加的方法为:首先提取新添加的分发项中定义的源IP地址段和目的IP地址段分别与缓存掩码进行“与”运算,得到若干个源IP地址前缀和目的IP地址前缀,并与输入设备、协议号和是否碎片标识一起组成报文标签向量将标签向量作为键值带入散列函数,以运算结果为索引在散列表中找到对应到散列项,然后将该分发项与散列项所指的缓存项链表中各缓存项进行比较,如果分发项量各字段值都落在某缓存项的缓存标签向量各对应字段所指范围内,则从后往前扫描缓存项的分发项指针数组,将该分发项的指针插入到数组中;所述分发项删除的方法为:将待删除的分发项做上删除标记,而不必回收空间,以后执行分发查询时跳过这些做过标记的分发项;所述对缓存进行自适应调整的方法:首先根据分发查询计数器、缓存失效计数器、缓存命中失效计数器计算缓存失效率和缓存命中失效率,然后判断缓存失效率或者缓存命中失效率是否超过阈值,若缓存失效率超过阈值,则表明缓存掩码太大,需要将其调小,若缓存命中失效率超过阈值,则表明缓存掩码太小,需要将其调大,调整缓存掩码后,要清空散列表,重新添加缓存项;
当报文到达时,提取报文的源IP地址和目的IP地址分别与缓存掩码进行“与”运算,得到源IP地址前缀和目的IP地址前缀,然后与报文的输入设备、协议号和是否碎片标识一起组成报文标签向量;
将标签向量作为键值带入散列函数,以运算结果为索引在散列表中找到对应的散列项;
将分发查询计数器加1,然后判断散列项所指的缓存项链表否为空;若是,则执行添加缓存项操作;若否,则将报文标签向量与缓存项链表中各缓存项的缓存标签向量依次进行比较。
2.根据权利要求1所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:根据报文标签向量与缓存项链表中各缓存项的缓存标签向量的比较结果,若缓存项的缓存标签向量与报文标签向量不相同,则将该缓存项的比较计数器减1并缓存失效计数器加1,然后转到下一个缓存项继续进行比较循环。
3.根据权利要求2所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:如果循环结束时还未找到其标签向量与报文标签向量相同的缓存项,即缓存失效,执行缓存失效操作;否则,将缓存项的比较计数器加5,然后将分发项指针数组中的指针所指向的分发项与报文依次执行匹配操作。
4.根据权利要求3所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:若找到相对应的分发项,即缓存命中,则结束该次分发查询;否则,即缓存命中失效,执行缓存命中失效操作。
5.根据权利要求4所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:所述分发项指针数组中的指针所指向的分发项与报文依次执行的匹配操作,即将报文的MAC地址、源IP地址、目的IP地址、源端口、目的端口、协议号、是否碎片标识、输入设备、输出设备、连接状态这些属性值与分发项属性向量各对应字段的值进行比较,如果这些属性值都落在分发项对应属性字段值所指的范围内,则称报文匹配命中该分发项。
6.根据权利要求4所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:所述缓存失效操作,即首先判断是否还有空闲缓存项;若是,则执行添加缓存项操作;否则执行替换缓存项操作。
7.根据权利要求4所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:所述缓存命中失效操作,即首先将缓存命中失效计数器加1,然后跳转到分发集中,从分发项指针数组中最后一个指针所指位置往后查询与报文相对应的分发项;在查询过程中,如果报文标签向量各属性字段值都落在某分发项属性向量各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
8.根据权利要求4所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:所述添加缓存项操作,即新建一个缓存项并将其加入到缓存项链表中,以报文标签向量作为缓存标签向量;然后跳转到分发集中从头开始查询与报文相匹配的分发项;在查询过程中,如果报文标签向量各属性字段值都落在某分发项属性向量各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
9.根据权利要求6所述的基于自适应缓存机制实现快速网络报文分发的方法,其特征在于:所述替换缓存项操作,选取缓存项链表中比较计数器值最小的那个缓存项进行替换,以报文标签向量作为缓存标签向量,同时清空分发项指针数组并将比较计数器清零,然后跳转到分发集中从头开始查询与报文相对应的分发项;在查询过程中,如果报文标签向量各属性字段值都落在某分发项属性向量各对应字段的值所指范围内,则将该分发项的指针加入到缓存项的分发项指针数组中,直到数组被填满为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100111946A CN100444579C (zh) | 2005-01-18 | 2005-01-18 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100111946A CN100444579C (zh) | 2005-01-18 | 2005-01-18 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1809019A CN1809019A (zh) | 2006-07-26 |
CN100444579C true CN100444579C (zh) | 2008-12-17 |
Family
ID=36840717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100111946A Expired - Fee Related CN100444579C (zh) | 2005-01-18 | 2005-01-18 | 一种基于自适应缓存机制实现快速网络报文分发的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100444579C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059958B (zh) * | 2007-03-15 | 2010-12-15 | 上海交通大学 | 利用缓存来加快量化数据取得的编码和解码方法 |
CN102970150A (zh) * | 2011-09-01 | 2013-03-13 | 日电(中国)有限公司 | 用于数据中心的可扩展组播转发方法和设备 |
CN104468157B (zh) * | 2013-09-16 | 2020-01-17 | 上海斐讯数据通信技术有限公司 | 分发包方法 |
CN110832466B (zh) * | 2017-07-14 | 2023-03-10 | 华为技术有限公司 | 读、部分写数据方法以及相关装置 |
CN110149248B (zh) * | 2019-06-06 | 2020-03-03 | 杭州商湾网络科技有限公司 | 一种快速统计分析路由器流量的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1129281C (zh) * | 2001-10-17 | 2003-11-26 | 华为技术有限公司 | 利用缓存技术提高ip报文转发速度的方法 |
WO2004105351A2 (en) * | 2003-05-15 | 2004-12-02 | Cisco Technology, Inc | A bounded index extensible hash-based ipv6 address lookup method |
-
2005
- 2005-01-18 CN CNB2005100111946A patent/CN100444579C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1129281C (zh) * | 2001-10-17 | 2003-11-26 | 华为技术有限公司 | 利用缓存技术提高ip报文转发速度的方法 |
WO2004105351A2 (en) * | 2003-05-15 | 2004-12-02 | Cisco Technology, Inc | A bounded index extensible hash-based ipv6 address lookup method |
Non-Patent Citations (4)
Title |
---|
High Speed IP Address Lookup Architecture Using Hashing. Hyesook Lim etc.IEEE COMMUNICATION LETTERS,Vol.7 No.10. 2003 |
High Speed IP Address Lookup Architecture Using Hashing. Hyesook Lim etc.IEEE COMMUNICATION LETTERS,Vol.7 No.10. 2003 * |
高速地址Cache-散列表的应用. 陈文革,程向前.计算机工程,第28卷第8期. 2002 |
高速地址Cache-散列表的应用. 陈文革,程向前.计算机工程,第28卷第8期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1809019A (zh) | 2006-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Balamash et al. | An overview of web caching replacement algorithms | |
Tang et al. | Coordinated en-route web caching | |
Carofiglio et al. | Experimental evaluation of memory management in content-centric networking | |
CN100444579C (zh) | 一种基于自适应缓存机制实现快速网络报文分发的方法 | |
CN101827073B (zh) | 跟踪片段数据流 | |
CN107454562B (zh) | 一种面向icn架构的d2d移动内容分发方法 | |
CN108900570B (zh) | 一种基于内容价值的缓存替换方法 | |
CN100445999C (zh) | 一种数据存储及搜索方法 | |
US20070033275A1 (en) | Method and a device for frequency counting | |
CN106021128B (zh) | 一种基于步幅和数据相关性的数据预取器及其预取方法 | |
CN102971732A (zh) | 键/值存储器的集成分级查询处理的系统结构 | |
CN101236569B (zh) | 一种基于ContextFS上下文文件系统的高效动态路径解析方法 | |
CN102571599A (zh) | 一种路由表项的快速存储方法 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN110213207A (zh) | 一种基于日志分析的网络安全防御方法及设备 | |
SE9802400L (sv) | Ett cacheservernät | |
CN102054000A (zh) | 数据查询方法、装置及系统 | |
CN110808854A (zh) | 报文调度方法、装置及交换机 | |
US20180293316A1 (en) | Method and system for second-degree friend query | |
CN102136986B (zh) | 一种负载分担方法和交换设备 | |
CN103973571A (zh) | 网络处理器及其路由查找方法 | |
CN112788702B (zh) | 一种用于卫星物联网移动终端的映射表项缓存更新方法 | |
CN108259544A (zh) | Url查询方法和url查询服务器 | |
CN110046286A (zh) | 用于搜索引擎缓存的方法和装置 | |
CN110365728A (zh) | 一种面向信息中心网络的分组协作缓存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081217 Termination date: 20140118 |