CN102316173A - 网络地址聚合方法和装置 - Google Patents

网络地址聚合方法和装置 Download PDF

Info

Publication number
CN102316173A
CN102316173A CN201010219038XA CN201010219038A CN102316173A CN 102316173 A CN102316173 A CN 102316173A CN 201010219038X A CN201010219038X A CN 201010219038XA CN 201010219038 A CN201010219038 A CN 201010219038A CN 102316173 A CN102316173 A CN 102316173A
Authority
CN
China
Prior art keywords
address
network address
network
hash keys
bytes
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.)
Pending
Application number
CN201010219038XA
Other languages
English (en)
Inventor
郑文蕴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GUOXUN XINCHUANG SOFTWARE TECHNOLOGY CO LTD
Original Assignee
GUOXUN XINCHUANG SOFTWARE TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GUOXUN XINCHUANG SOFTWARE TECHNOLOGY CO LTD filed Critical GUOXUN XINCHUANG SOFTWARE TECHNOLOGY CO LTD
Priority to CN201010219038XA priority Critical patent/CN102316173A/zh
Publication of CN102316173A publication Critical patent/CN102316173A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了网络地址聚合方法和装置,提高了基于IP地址聚合的网络流量统计处理的性能。其技术方案为:方法包括:(1)初始化哈希表,在存储器中分配一个连续数组;(2)接收网络流量数据包并解析出需要聚合数据的网络地址;(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。

Description

网络地址聚合方法和装置
技术领域
本发明涉及一种聚合技术,尤其涉及基于网络地址的聚合技术。
背景技术
现有技术中存在一些IP网络流量采集数据做统计分析的方法,假设针对源IP地址作统计分析,则将具有相同IP的流数量、包数量和字节数量各自累加起来,这个过程称为聚合(Aggregation),而IP地址则称为聚合项目(Aggregation Item)。其他的聚合项目还有UDP/TCP目的端口(UDP/TCP destination port)、UDP/TCP源端口(UDP/TCP source port)、UDP/TCP端口、输入接口、输出接口、输入/输出接口、Destination AS、Source/Destination AS、IP ToS、IP协议、源地址前缀(Source prefix)、目的地址前缀(Destination prefix)、源/目的地址前缀(Source/Destination prefix)等。
由于网络流量的数据非常庞大,而且做聚合处理的时候除了对当前处理结果在内存中缓存外,还要不断对结果数据进行计算和更新,所以数据访问速度的快慢对性能影响也比较大。通常的内存存储和访问技术有链表、顺序表和散列等,一般来说,散列技术的存储和访问速度明显要快于其他的方法,但关键还在于散列关键字的算法。
从实用角度出发,对于散列关键字算法的要求是:(1)算法尽可能简单,避免实现算法本身的时间开销;(2)得出的关键字尽可能唯一。
由于UDP/TCP目的端口、UDP/TCP源端口、UDP/TCP端口、输入接口、输出接口、输入/输出接口、Destination AS、Source/Destination AS、IP ToS、IP协议等一些聚合项目本身的字节宽度小于16位,可以直接拿来作为哈希键。对于字节宽度为32字节的IP地址进行聚合时的哈希键算法来说,如果直接将IP地址作为散列存储的关键字(哈希键),则需要232个数据单元大小存储空间,而一个数据单元的大小是8个字节,所以直接拿IP地址的值作为哈希键来进行存储的话,需要的内存大小是232×8=32G,这在当前的硬件条件下显然是不现实的。如何简单有效的实现IP地址进行聚合时的哈希键算法,是当前存在的一个难题。
发明内容
本发明的目的在于解决了上述问题,提供了一种网络地址聚合方法,提高了基于IP地址聚合的网络流量统计处理的性能。
本发明的另一目的在于提供了一种网络地址聚合装置。
本发明的技术方案为:本发明揭示了一种网络地址聚合方法,包括:
(1)初始化哈希表,在存储器中分配一个连续数组;
(2)接收网络流量数据包并解析出需要聚合数据的网络地址;
(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;
(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
根据本发明的网络地址聚合方法的一实施例,该网络地址是IP地址,步骤(3)中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
根据本发明的网络地址聚合方法的一实施例,该IP地址是32字节,步骤(3)中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
本发明还揭示了一种网络地址聚合装置,包括:
哈希表初始化模块,初始化哈希表,在存储器中分配一个连续数组;
网络地址解析模块,接收网络流量数据包并解析出需要聚合数据的网络地址;
哈希键获得模块,对解析出的网络地址的字节之间做逻辑运算,得出哈希键;
数据访问模块,将得出的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
根据本发明的网络地址聚合装置的一实施例,该网络地址是IP地址,该哈希键获得模块中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
根据本发明的网络地址聚合装置的一实施例,该IP地址是32字节,该哈希键获得模块中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
本发明对比现有技术有如下的有益效果:本发明通过将IP地址的高16字节和低16字节做异或运算并将运算结果作为哈希键,对比现有技术,可提高基于IP地址聚合的网络流量统计处理的性能。
附图说明
图1是本发明的网络地址聚合方法的实施例的流程图。
图2是本发明的网络地址聚合装置的实施例的原理图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
网络地址聚合方法的实施例
图1示出了本发明的网络地址聚合方法的实施例的流程。请参见图1,本实施例的网络地址聚合方法的详细步骤如下。
步骤S10:初始化哈希表,在存储器中分配一个连续数组。
数组的大小可以是216个数据单元,具体数据单元的大小和本发明无关。
步骤S12:接收网络流量数据包并解析出需要聚合数据的网络地址。
在本实施例中,网络地址是32字节的IP地址。
步骤S14:将这些网络地址的字节之间做逻辑运算,得出哈希键。
在本实施例中,将32字节的IP地址的高16位字节和低16位字节做异或运算,得出哈希键。如果是多个IP地址,则逐一进行计算。
步骤S16:将得到的哈希键作为连续数组的下标,并以此来直接访问网络地址上的数据。
当然,也可以对网络地址上的数据做累加、更新等相应操作。
网络地址聚合装置的实施例
图2示出了本发明的网络地址聚合装置的实施例的原理。请参见图2,本实施例的网络地址聚合装置1包括:哈希表初始化模块10、网络地址解析模块12、哈希键获得模块14和数据访问模块16。这些模块之间是依序连接的。
在哈希表初始化模块10中,初始化哈希表,在存储器(例如内存)中分配一个连续数组,数组的大小可以是216个数据单元,具体数据单元的大小和本发明无关。
在网络地址解析模块12中,接收网络流量数据包并解析出需要聚合数据的网络地址。在本实施例中,网络地址是32字节的IP地址。
在哈希键获得模块14中,对解析出的网络地址的字节之间做逻辑运算,得出哈希键。在本实施例中,将32字节的IP地址的高16位字节和低16位字节做异或运算,得出哈希键。如果是多个IP地址,则逐一进行计算。
在数据访问模块16中,将得出的哈希键作为连续数组的下标,并以此来访问网络地址上的数据。当然,也可以对网络地址上的数据做累加、更新等相应操作。
本发明的技术效果在于:在存储访问方面,哈希算法的优势就是快速,所以一个哈希键算法自身如果时间开销较大就会失去意义。本发明的方法仅仅是把IP地址的高16字节和低16字节作异或运算,一个时钟周期就能完成,所以时间开销可以忽略不计。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。

Claims (6)

1.一种网络地址聚合方法,包括:
(1)初始化哈希表,在存储器中分配一个连续数组;
(2)接收网络流量数据包并解析出需要聚合数据的网络地址;
(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;
(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
2.根据权利要求1所述的网络地址聚合方法,其特征在于,该网络地址是IP地址,步骤(3)中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
3.根据权利要求2所述的网络地址聚合方法,其特征在于,该IP地址是32字节,步骤(3)中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
4.一种网络地址聚合装置,包括:
哈希表初始化模块,初始化哈希表,在存储器中分配一个连续数组;
网络地址解析模块,接收网络流量数据包并解析出需要聚合数据的网络地址;
哈希键获得模块,对解析出的网络地址的字节之间做逻辑运算,得出哈希键;
数据访问模块,将得出的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
5.根据权利要求4所述的网络地址聚合装置,其特征在于,该网络地址是IP地址,该哈希键获得模块中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
6.根据权利要求5所述的网络地址聚合装置,其特征在于,该IP地址是32字节,该哈希键获得模块中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
CN201010219038XA 2010-07-05 2010-07-05 网络地址聚合方法和装置 Pending CN102316173A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010219038XA CN102316173A (zh) 2010-07-05 2010-07-05 网络地址聚合方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010219038XA CN102316173A (zh) 2010-07-05 2010-07-05 网络地址聚合方法和装置

Publications (1)

Publication Number Publication Date
CN102316173A true CN102316173A (zh) 2012-01-11

Family

ID=45428979

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010219038XA Pending CN102316173A (zh) 2010-07-05 2010-07-05 网络地址聚合方法和装置

Country Status (1)

Country Link
CN (1) CN102316173A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095864A (zh) * 2013-01-18 2013-05-08 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
CN105515919A (zh) * 2016-01-20 2016-04-20 中国电子科技集团公司第五十四研究所 一种基于哈希压缩算法的网络流量监控方法
CN106452868A (zh) * 2016-10-12 2017-02-22 中国电子科技集团公司第三十研究所 一种支持多维度聚合分类的网络流量统计实现方法
WO2017054580A1 (zh) * 2015-09-28 2017-04-06 中兴通讯股份有限公司 一种获取流量数据的方法及装置
CN109873829A (zh) * 2019-03-06 2019-06-11 国网甘肃省电力公司电力科学研究院 一种基于二进制哈希表的活动ip主机数量统计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030093808A (ko) * 2002-06-05 2003-12-11 삼성전자주식회사 로컬 네트워크를 위한 인터넷 액세스 게이트웨이에서네트워크 어드레스 변환 없이 단일의 인터넷 프로토콜어드레스를 공유하기 위한 방법 및 장치
CN1897541A (zh) * 2005-07-15 2007-01-17 华为技术有限公司 一种网络实现采样的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030093808A (ko) * 2002-06-05 2003-12-11 삼성전자주식회사 로컬 네트워크를 위한 인터넷 액세스 게이트웨이에서네트워크 어드레스 변환 없이 단일의 인터넷 프로토콜어드레스를 공유하기 위한 방법 및 장치
CN1897541A (zh) * 2005-07-15 2007-01-17 华为技术有限公司 一种网络实现采样的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴晓庆: "流量感知系统NetSensor研究和实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
白杨等: "《NetFlow流量数据的压缩存储与多维度聚合》", 《中国电子科学研究院学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095864A (zh) * 2013-01-18 2013-05-08 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
CN103095864B (zh) * 2013-01-18 2015-05-20 清华大学 基于哈希算法的面向IPv6过渡的IPv4地址及端口段池维护方法
WO2017054580A1 (zh) * 2015-09-28 2017-04-06 中兴通讯股份有限公司 一种获取流量数据的方法及装置
CN105515919A (zh) * 2016-01-20 2016-04-20 中国电子科技集团公司第五十四研究所 一种基于哈希压缩算法的网络流量监控方法
CN106452868A (zh) * 2016-10-12 2017-02-22 中国电子科技集团公司第三十研究所 一种支持多维度聚合分类的网络流量统计实现方法
CN106452868B (zh) * 2016-10-12 2019-04-05 中国电子科技集团公司第三十研究所 一种支持多维度聚合分类的网络流量统计实现方法
CN109873829A (zh) * 2019-03-06 2019-06-11 国网甘肃省电力公司电力科学研究院 一种基于二进制哈希表的活动ip主机数量统计方法
CN109873829B (zh) * 2019-03-06 2021-07-30 国网甘肃省电力公司电力科学研究院 一种基于二进制哈希表的活动ip主机数量统计方法

Similar Documents

Publication Publication Date Title
Xiong et al. Do switches dream of machine learning? toward in-network classification
Chalamalasetti et al. An FPGA memcached appliance
CN103425725B (zh) 散列冲突降低系统
Krishna et al. Hardware acceleration in the IBM PowerEN processor: Architecture and performance
CN102316173A (zh) 网络地址聚合方法和装置
WO2016106591A1 (zh) 一种抽取数据报文的方法及装置
CN105162626A (zh) 基于众核处理器的网络流量深度识别系统及识别方法
Shi et al. Ndn-nic: Name-based filtering on network interface card
Lockwood et al. Implementing ultra low latency data center services with programmable logic
CN106789733B (zh) 一种提高大规模网络流表查找效率的装置及方法
CN107454120A (zh) 网络攻击防御系统和防御网络攻击的方法
Zhang et al. Identifying elephant flows in internet backbone traffic with bloom filters and LRU
Yu et al. Hardware accelerator to speed up packet processing in NDN router
CN102546293B (zh) 基于哈希比特串复用的高速网络流量网络地址测量方法
Wellem et al. A hardware-accelerated infrastructure for flexible sketch-based network traffic monitoring
Lin et al. High-performance IPv6 address lookup in GPU-accelerated software routers
CN103414603A (zh) 基于Hash折叠方法的Ipv6深度包检测方法
Park et al. Performance improvement of payload signature-based traffic classification system using application traffic temporal locality
CN103198105A (zh) 以太网IPSec安全数据库查找装置及方法
Huang et al. Fast and deterministic hash table lookup using discriminative bloom filters
Heil et al. Architecture and performance of the hardware accelerators in IBM’s PowerEN processor
Tang et al. A real-time updatable FPGA-based architecture for fast regular expression matching
Xiao et al. Accurate and o (1)-time query of per-flow cardinality in high-speed networks
CN112995245B (zh) 一种基于fpga的可配置负载均衡系统与方法
Sabhanatarajan et al. A resource efficient content inspection system for next generation Smart NICs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120111