CN111901454B - 一种IPv6网络真实用户数的统计及验证方法 - Google Patents
一种IPv6网络真实用户数的统计及验证方法 Download PDFInfo
- Publication number
- CN111901454B CN111901454B CN202010730330.1A CN202010730330A CN111901454B CN 111901454 B CN111901454 B CN 111901454B CN 202010730330 A CN202010730330 A CN 202010730330A CN 111901454 B CN111901454 B CN 111901454B
- Authority
- CN
- China
- Prior art keywords
- ipv6
- network
- time period
- users
- addresses
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4588—Network directories; Name-to-address mapping containing mobile subscriber information, e.g. home subscriber server [HSS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/659—Internet protocol version 6 [IPv6] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种IPv6网络真实用户数的统计及验证方法,其中统计方法包括:在网络边界部署探针,采集IPv6报文数据,并记录采集时间;按时序排列报文数据,存入共享内存;从内存中提取实时数据;使用算法统计出指定网络在连续两个24小时内的IPv6临时地址数,以下将连续两个24小时称为时间段i和时间段j;把IPv6临时地址保存进数据库,执行数据库联接操作,查询结果个数即为时间段j的网内IPv6实际用户数。本发明还提供了一种用于验证用户数准确性的方法。该统计及验证方法能够统计任一网络任一天内的IPv6实际用户数,验证方法准确,解决了以IP数作为用户数的方法在IPv6网络内不适用的问题。
Description
技术领域
本发明属于计算机网络技术领域,具体涉及一种IPv6网络真实用户数的统计及验证方法。
背景技术
中国互联网络信息中心(CNNIC)在京发布《2017IPV6地址资源分配及应用情况报告》(以下简称为报告)。报告显示,截至2017年12月31日,中国IPv6地址分配总数为23430块(/32),位居全球第二位。不过,中国IPv6用户数占国内网民数的比例仅为0.39%,在全球排名第67位,表明我国IPv6实际应用程度很低。
国内几大运营商网络设备大多支持IPv6,但是过渡期内双栈的部署对设备的性能要求更高,同时需要兼容两种网络环境无缝连接,适应更多的应用场景。整体来看,国内只有少数网站支持或部分支持网页、邮箱以及域名服务的IPv6访问。例如,腾讯的网页、邮箱服务支持IPv6访问,百度的网页服务部分支持IPv6访问,知乎的邮箱服务支持IPv6访问等。总体来看,我国网站应用对于IPv6的支持度仍然很低,提升互联网应用服务对于IPv6的支持度依然任重道远。
最新数据表明,我国截止2019年6月IPv6活跃用户数到达1.3亿,正在推进规模部署中,目前第一阶段任务目标已全面完成,全国已有12.07亿用户获得IPv6地址,通过IPv6上网的活跃用户达到6.96亿。可见发展IPv6网络是大势所趋,统计IPv6网络实际活跃用户数,对于网络资产管理和维护互联网络安全等具有重要意义。
原本的客户端IPv6地址生成方式由本机MAC地址嵌入接口ID生成,该方式会导致IPv6地址一直不变并且完全暴露在外网中,具有非常大的安全隐患。由此引入了无状态地址自动配置方式(以下简称为SLAAC)。由SLAAC生成的临时地址是随机生成的,并且随时间变化,极大地提高了用户隐私的安全性。RFC 4941建议,IPv6客户端可同时拥有多个临时地址,分别为一个首选地址和一个或多个过时地址。首选地址每天更换,用于发起对外访问;过时地址用于维持之前的通讯,最长生存期为七天。可见,惯用的以IP数作为网络用户数的方法在IPv6网络内已经不适用。
临时地址的接口ID由MD5算法随机生成。大数定律指出,在随机事件的大量重复出现中,往往呈现几乎必然的规律。通俗地说,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率。偶然中包含着某种必然。那么由MD5算法随机生成的IPv6临时地址也符合这种规律,利用该定律可从客户端IPv6地址中甄别出临时地址。
发明内容
为解决上述问题,本发明公开了一种IPv6网络真实用户数的统计及验证方法,能够快速统计任一网络区域任一天的IPv6真实用户数,并验证其正确性。
为达到上述目的,本发明的技术方案如下:
一种IPv6网络真实用户数的统计方法,包括以下步骤:
S1、在网络边界部署探针,采集IPv6报文数据,并记录采集时间;
S2、按时序排列报文数据,存入共享内存;
S3、从内存中提取实时数据;
S4、利用IPv6临时地址特性,使用算法统计出指定网络在时间段i和时间段j内的IPv6临时地址数;
S5、把两个时间段的IPv6临时地址保存进数据库,执行数据库联接操作,查询结果个数即为时间段j的网内IPv6实际用户数。
可选地,步骤S1中,所述采集IPv6报文数据,并记录采集时间包括:在网络边界部署探针;将探针采集到的IPv6报文数据读入到采集服务器中,并记录采集时间;采集服务器将数据传入存储区。
可选地,步骤S2中,所述根据采集时间按时序排列数据流,并存入共享内存。主要步骤包括:将原始报文长度按照给定长度进行截取,可只保留IPv6基本报头;开辟共享内存区;将截取后的报文存入共享内存中。
可选地,步骤S3中,从内存中提取实时数据。主要步骤包括:创建标准化接口函数;利用接口函数读取内存中的数据;提取报文数据,保存为.pcap文件。
可选地,步骤S4中,利用IPv6临时地址特性,使用算法统计出指定网段在时间段i和时间段j的IPv6临时地址数。主要步骤包括:定位在时间段i和时间段j内的所有pcap文件;读取文件,提取文件中的所有IPv6地址;提取所有匹配指定网段的网络前缀的IPv6地址;使用算法筛选出临时地址。
可选地,从网内所有IPv6地址中筛选出临时地址。具体步骤包括:使用合适的数据结构暂存所有IPv6地址;检验接口ID的每个字(16bits)是否符合大数定律;若IPv6地址符合大数定律,则认为该地址为IPv6临时地址。
可选地,步骤S5中,把时间段i和时间段j的IPv6临时地址保存进数据库,执行数据库联接操作,提取数据库查询结果个数,即为时间段j的网内IPv6实际用户数。主要步骤包括:将时间段i和时间段j的所有IPv6临时地址分别存储进数据库表;对两个表执行右外联接排除内联接操作;在上一步中进行的数据库操作所得结果的个数即为IPv6网络实际用户数。
本发明还提供一种验证IPv6网络用户数准确性的方法,包括以下步骤:
Q1、依据统计方法统计出的时间段j内的用户数,以及在步骤S4中统计出的时间段j内的IPv6临时地址数,计算P1值,其中P1=地址数/用户数;
Q2、在指定IPv6网络内组建人为可控的抽样网络,记录时间段j内随机N个用户的IPv6临时地址数,计算P2值;
Q3、计算|P1-P2|。
可选地,步骤Q2中,所述抽样网络内P2值的计算,主要步骤包括:在指定IPv6网络内随机抽取时间段j内N个用户;记录下这N个用户的IPv6临时地址数,汇总并记为M;计算P2,其中,P2=M/N;
可选地,若|P1-P2|≤0.1,说明统计方法计算得出的IPv6网络在时间段j的真实用户数是正确的;若|P1-P2|>0.1,则统计方法计算出的结果不正确。
本发明的有益效果是:
通过本发明提供的统计方法和验证方法,能够快速统计任一网络区域任一天的IPv6真实用户数,并验证其正确性。
附图说明
图1示意性示出了本发明实施例提供的统计方法流程图;
图2示意性示出了本发明实施例提供的报文采集结构图;
图3示意性示出了本发明实施例提供的读取报文数据流程图;
图4示意性示出了本发明实施例提供的数据库操作韦恩图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
本发明提供了一种IPv6网络真实用户数的统计方法,其整体架构如图1所示,为了说明本发明是如何统计IPv6网络的真实用户数,使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1示意性示出了本发明实施例提供的统计方法流程图,参阅图1,本发明实施例提供了一种IPv6网络真实用户数的统计方法,包括:
S1、在网络边界部署探针,采集IPv6报文数据,并记录采集时间。图2示意性示出了报文采集结构图,参阅图2,以下为具体说明。
具体实施内容为:
首先,在网络边界部署探针以获取网络全局流量,硬件上使用多网卡采集,由交换机通过负载均衡技术将原始流量分流到各个网卡上,以满足流量采集需求。
然后,对网卡缓冲区施行双缓冲区机制,通过时间片来控制缓冲区的生效顺序,这样可以保证网卡一直处于可用状态。当某个网卡缓冲区满时,工作线程会将缓冲区地址传递给可重入的数据收集接口。
最后,为了能够并行采集所有网卡的报文数据,采用多线程技术。在采集服务器上部署DPDK套件,其快速数据包处理功能经过调整即可用于报文采集;采集服务器将报文数据传入存储区。
S2、按时序排列报文数据,存入共享内存;
具体实施内容为:将原始报文长度按照给定长度进行截取,可只保留IPv6基本报文,本实施例中具体实施方式采用的是截取前40个字节,具体截取长度本发明不做限制,目的是保留IPv6地址即可;开辟共享内存区;将截取后的报文存入共享内存中。
S3、从内存中提取实时数据。图3示意性示出了读取报文数据流程图,参阅图3。
具体实施步骤表述如下:
首先,创建标准化接口函数。分别是get_reader:获取数据读取器,用于返回一个标准的数据读取器;init_reader:将数据读取器绑定在共享内存区,用于初始化读取器;read_data:通过数据读取器从共享内存区循环获取IPv6报文数据。
然后,通过标准化接口函数实时循环读取内存中的数据。
最后,提取报文数据,保存为.pcap文件。本实施例中具体实施方式采用的是以5分钟为时间粒度,循环保存最近24小时的报文数据。
S4、利用IPv6临时地址特性,使用算法统计出指定网络在时间段i和时间段j内的IPv6临时地址数;
由于在步骤S3中,循环保存最近24小时的报文数据,因此对时间段i和时间段j的数据的处理是在不同日期进行的。
首先,对于某一个时间段来说,定位在该时间段内的所有pcap文件;读取文件,提取文件中的所有IPv6地址,做去重处理,保存当天所有唯一的IPv6地址;提取所有匹配指定网络的网络前缀的IPv6地址;使用算法筛选出临时地址。
从网内所有IPv6地址中筛选出临时地址。具体实施内容为:使用合适的数据结构暂存所有IPv6地址,本实施例中具体实施方式采用的是C++STL的set容器,具体实施方式本发明不做限制;检验接口ID的每个字(16bits)是否符合大数定律;若IPv6地址符合大数定律,则认为该地址为IPv6临时地址。
检验接口ID的每个字是否符合大数定律。具体实施内容为:IPv6地址的接口ID有64位,将每个IPv6地址的接口ID分别存储;判断前32位是否有9~21个设置位,后32位是否有10~22个设置位,总的64位接口ID是否共有27~35个设置位;满足前面3个条件的IPv6地址符合大数定律。对于是否符合大数定律的检验,本实施例中具体实施方式采用如上所述的方式,具体设置位的个数本发明不做限制。
S5、把两个时间段的IPv6临时地址保存进数据库,执行数据库联接操作,查询结果个数即为时间段j的网内IPv6实际用户数。
首先,创建数据库表,本发明实施例采用的是MySQL数据库,数据库表名为iDay和jDay。将S4步骤中获得的时间段i和时间段j的IPv6临时地址分别导入到对应的数据库表中。
然后对数据库执行联接查询操作,图4示意性示出了数据库表操作的韦恩图,参阅图4,圆圈分别代表iDay和jDay的IPv6临时地址集合,圆圈内代表临时地址,jDay黑色部分代表用户。具体查询语句为select count(*)iDay A right join jDay B on A.aip=B.bip where A.aip is null,其中aip和bip分别为两个时间段的IPv6临时地址字段名。
最后,数据查询结果即为指定IPv6网络在时间段j的用户数。
本发明还提供一种验证方法,包括:
Q1、依据统计方法统计出的时间段j内的用户数,记为Nj。在步骤S4中统计出的时间段j内的临时地址数,记为Mj。计算P1值,其中P1=Mj/Nj;
Q2、在指定IPv6网络内组建人为可控的抽样网络,记录时间段j内随机N个用户的IPv6临时地址数,计算P2值。
计算抽样网络的P2值,本发明具体实施内容为:在相同的指定IPv6网络的时间段j内随机抽取N个用户;记录下这N个用户的IPv6临时地址数,汇总并记为M;计算P2,其中,P2=M/N;
记录抽样网络中用户的IPv6临时地址。具体实施内容为:用户的PC机接入待测试网络,打开命令窗口。对于Windows用户,使用cmd命令窗口,输入netsh interface ipv6show address命令,仅记录地址类型为“临时”的IPv6地址;对于Linux用户,在终端窗口输入ip-6addr,IPv6接口一般在eth0网卡,记录所有Scope标记为Global的地址,但是需要从中去除一个地址,该地址的特征是:接口ID与Scope标记为Link的IPv6地址的接口ID相同,这是因为该地址为全局唯一地址,不是临时地址,不在记录范围内。
Q3、计算|P1-P2|。
判断结果的正确性。具体实施内容为:若|P1-P2|≤0.1,说明统计方法计算得出的IPv6网络在时间段j的真实用户数是正确的。若|P1-P2|>0.1,则统计方法计算出的结果不正确。
Claims (7)
1.一种IPv6网络真实用户数的统计方法,其特征在于:包括以下步骤:
S1、在网络边界部署探针,采集IPv6报文数据,并记录采集时间;
S2、按时序排列报文数据,存入共享内存;
S3、从内存中提取实时数据;
S4、利用IPv6临时地址特性,使用算法统计出指定网络在时间段i和时间段j内的IPv6临时地址数;其步骤包括:
第一步,定位在时间段i和时间段j内的所有pcap文件;
第二步,读取文件,提取文件中的所有IPv6地址;
第三步,从第二步结果中提取所有匹配指定网段的网络前缀的IPv6地址;
第四步,从第三步结果中使用算法筛选出临时地址;
其中第四步中,所述使用算法筛选出临时地址;具体步骤包括:
(1),使用合适的数据结构暂存所有IPv6地址;
(2),检验接口ID的每个字是否符合大数定律;
(3),若IPv6地址符合大数定律,则认为该地址为IPv6临时地址
S5、把两个时间段的IPv6临时地址保存进数据库,执行数据库联接操作,查询结果个数即为时间段j的网内IPv6实际用户数,其步骤包括:
第一步,将时间段i和时间段j的所有IPv6临时地址分别存储进数据库表;
第二步,对两个表执行右外联接排除内联接操作;
第三步,在第二步中进行的数据库操作所得结果的个数即为IPv6网络实际用户数。
2.根据权利要求1所述的一种IPv6网络真实用户数的统计方法,其特征在于:步骤S1中,所述在网络边界部署探针,采集IPv6报文数据,并记录采集时间包括:
第一步,在网络边界部署探针;
第二步,将探针采集到的IPv6报文数据读入到采集服务器中,并记录采集时间;
第三步,采集服务器将数据传入存储区。
3.根据权利要求1所述的一种IPv6网络真实用户数的统计方法,其特征在于:步骤S2中,所述按时序排列报文数据,存入共享内存,其步骤包括:
第一步,将原始报文长度按照给定长度进行截取,只保留IPv6基本报头;
第二步,开辟共享内存区;
第三步,将截取后的报文存入共享内存中。
4.根据权利要求1所述的一种IPv6网络真实用户数的统计方法,其特征在于:步骤S3包括:
第一步,创建标准化接口函数;
第二步,利用接口函数读取内存中的数据;
第三步,提取报文数据,保存为.pcap文件。
5.一种对权利要求1所述的一种IPv6网络真实用户数的统计方法进行验证的验证方法,其特征在于:包括以下步骤:
Q1、依据统计方法统计出的时间段j内的用户数,以及在步骤S4中统计出的时间段j内的地址数,计算P1值,其中P1=地址数/用户数;
Q2、在指定IPv6网络内组建人为可控的抽样网络,记录时间段j内随机N个用户的IPv6临时地址数,计算P2值;
Q3、计算|P1-P2|。
6.根据权利要求5中所述的验证方法,其特征在于:步骤Q2中,所述抽样网络内P2值的计算,其步骤包括:
第一步,在指定IPv6网络内随机抽取时间段j内N个用户;
第二步,记录下这N个用户的IPv6临时地址数,汇总并记为M;
第三步,计算P2,其中,P2=M/N。
7.根据权利要求5中所述的验证方法,其特征在于:步骤Q3中,若|P1-P2|≤0.1,说明统计方法计算得出的IPv6网络内在时间段j的真实用户数是正确的;若|P1-P2|>0.1,则统计方法计算出的结果不正确。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010730330.1A CN111901454B (zh) | 2020-07-27 | 2020-07-27 | 一种IPv6网络真实用户数的统计及验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010730330.1A CN111901454B (zh) | 2020-07-27 | 2020-07-27 | 一种IPv6网络真实用户数的统计及验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901454A CN111901454A (zh) | 2020-11-06 |
CN111901454B true CN111901454B (zh) | 2022-09-09 |
Family
ID=73190222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010730330.1A Active CN111901454B (zh) | 2020-07-27 | 2020-07-27 | 一种IPv6网络真实用户数的统计及验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901454B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116527548B (zh) * | 2023-06-26 | 2023-09-05 | 中国电信股份有限公司江西分公司 | 一种基于IPv6动态测试方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763149A (zh) * | 2013-12-27 | 2014-04-30 | 北京集奥聚合科技有限公司 | 网络用户数的实时统计方法 |
CN110493085A (zh) * | 2019-09-03 | 2019-11-22 | 赛尔网络有限公司 | IPv6活跃用户数的统计方法、系统、电子设备及介质 |
-
2020
- 2020-07-27 CN CN202010730330.1A patent/CN111901454B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103763149A (zh) * | 2013-12-27 | 2014-04-30 | 北京集奥聚合科技有限公司 | 网络用户数的实时统计方法 |
CN110493085A (zh) * | 2019-09-03 | 2019-11-22 | 赛尔网络有限公司 | IPv6活跃用户数的统计方法、系统、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111901454A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107071084B (zh) | 一种dns的评价方法和装置 | |
US7734792B2 (en) | Secure tunnel domain name management | |
CN106104550A (zh) | 网站信息提取装置、系统、网站信息提取方法以及网站信息提取程序 | |
CN111478986B (zh) | 设备指纹的生成方法、装置、设备及存储介质 | |
JP2013500542A (ja) | データのロギングと分析の方法およびシステム | |
CN107046586B (zh) | 一种基于类自然语言特征的算法生成域名检测方法 | |
CN109377383A (zh) | 产品数据同步方法、装置、计算机设备及存储介质 | |
CN108121776A (zh) | 一种数据读取方法及装置 | |
CN102546668A (zh) | 一种独立访问者的统计方法、装置及系统 | |
CN111901454B (zh) | 一种IPv6网络真实用户数的统计及验证方法 | |
CN106713242B (zh) | 数据请求的处理方法及处理装置 | |
CN108737586B (zh) | 一种域名查询服务的灾备切换方法和装置 | |
CN107239542A (zh) | 一种数据统计方法、装置、服务器及存储介质 | |
CN106326280B (zh) | 数据处理方法、装置及系统 | |
CN113055420A (zh) | Https业务识别方法、装置及计算设备 | |
CN110263082B (zh) | 数据库的数据分布分析方法、装置、电子设备及存储介质 | |
CN111163184B (zh) | 一种报文特征的提取方法和装置 | |
CN107332824A (zh) | 一种云应用的识别方法和装置 | |
CN105025115A (zh) | 一种生成集体宿舍ip库的方法和装置 | |
CN111510940B (zh) | 信令分析方法及设备 | |
CN111106980B (zh) | 一种带宽捆绑检测方法和装置 | |
CN112671949A (zh) | 一种根据syslog日志关联NAT前后会话的方法及系统 | |
CN112532414A (zh) | 确定isp归属的方法、装置、设备及计算机存储介质 | |
Chen et al. | Electronic evidence service research in cloud computing environment | |
CN108847962A (zh) | 一种信息审计方法及装置 |
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 |