A Learning-Based Approach for IP Geolocation

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement

被引次数:185

Abstract

定位IP主机地理位置的能力对于在线广告和网络攻击诊断等应用程序是非常吸引力的。虽然先前的方法可以准确地识别主机在互联网的某些区域的位置,但当它们所基于的延迟或拓扑测量有限时,它们会产生错误的结果。我们工作的假设是,可以通过创建一个能够适应不同类型的地理位置信息的灵活的分析框架来提高IP地理位置的准确性。

在本文中,我们描述了一个新的IP地理定位框架,它简化为一个机器学习分类问题。我们的方法考虑了从一组已知监视器到目标的轻量级测量,然后根据从训练集中学习到的概率密度的最可能的地理区域对目标的位置进行分类。在本研究中,我们采用了一个朴素贝叶斯框架,该框架的计算复杂度较低,并且易于添加额外的环境信息,以增强分类过程。

为了证明我们的方法的可行性和准确性,我们在超过16,000个路由器上测试了IP地理定位,并给出了来自78个已知地理位置的监视器的ping测量值。

我们的结果表明,我们的方法的简单应用提高了我们数据集中识别的对96%以上的节点的地理定位精度,与之前基于约束的地理位置相比,平均精度接近真实地理位置70英里。这些结果突出了我们的方法的前景,并表明了未来分类器的扩展如何导致地理定位精度的进一步提高。

1 Introduction

有很多方法可以考虑互联网的结构和拓扑特征。对广告商、应用程序开发人员、网络运营商和网络安全分析师有重大影响的一种方法是识别互联网设备的地理位置(如路由器或结束的主机)。地理位置可以指一个设备的精确的纬度/经度坐标,或一个更粗粒度的位置,如在一个邮政编码、城市、县或国家内。

在找到一个给定的互联网设备的地理位置方面有许多挑战。最明显的是,没有一个标准的协议可以提供全球范围内任何设备的位置(尽管DNS条目可以包含一个位置记录)。此外,互联网设备通常不具备位置识别能力(例如,GPS,尽管这种情况将来可能会改变),即使有,一些人也会认为这些信息是私人的。先前的方法集中于根据互联网设备的地理位置来识别其相对于已知位置的地标的主动测量的位置。虽然这些方法已被证明能够在某些地区产生相对准确的地理估计,但由于各种原因,仍然不准确。其中最主要的事实是,全球各地的特定测量数据的密度不一致。

我们工作的目标是广泛地提高IP地理定位的准确性。我们的假设是,由不完善的测量、稀疏的测量可用性和不规则的互联网路径引起的大估计误差可以通过扩展IP地理位置中考虑的信息范围来解决。我们开发来测试这一假设的估计框架是将IP地理定位转换为一个基于机器学习的分类问题。这种可扩展的方法可以将来自多个数据集的信息融合起来,这样,从一个测量中信息内容较低的区域就可以用来自其他测量的更好的信息内容进行补偿。

为了充实这个框架,为了检验我们的假设,我们必须同时选择一种分类方法和一组可以用来估计IP地理位置的测量值。我们开发了一种朴素贝叶斯估计方法,该方法基于与该IP目标相关联的一组测量值,将一个给定的IP目标分配给一个地理分区。考虑到对IP目标的大量测量,概率似然估计简化为朴素贝叶斯方法。该框架中考虑的网络测量数据包括从一组地标到IP目标的延迟和跳数计数。我们还在框架中包括了人口密度,作为一个非网络测量的演示,可以帮助改进估计。选择这种分类器/测量组合是为了证明这种新方法的潜力,但并不意味着是明确的或全面的。

为了测试和评估我们基于学习的方法的这个初始实例的能力,我们考虑了在美国大陆的县级别上的地理划分。(在我们的框架中,根据邮政编码或城市街区的顺序进行更细粒度的划分当然是可行的,但由于测试和评估数据的可用性,我们选择了县级划分。)

虽然相当多的互联网拓扑结构位于美国大陆以外,但对该数据集的初步验证将激发未来对位于美国以外的终端主机的工作。我们在互联网上确定了114,815个空间不同节点从行星实验室节点的网格跟踪探测的目标集,来自iPlane [1]项目的补充数据,以及仔细的别名解析。对于这些目标节点的地理位置的基本真相,我们使用Maxmind数据库[2]作为我们的方法的验证集。在我们的测量中确定的114,815个IP目标节点中,有16,874个在Maxmind数据库中被确定为在美国境内,具有已知的城市位置。由于它作为一种商业产品的使用,Maxmind数据库的确切基础方法是不可用的,尽管已知已经广泛使用了用户调查地理位置信息。(由于它依赖于用户生成的数据,更新Maxmind数据库需要大量的用户调查,而这是我们基于学习的方法所不需要的。)

1. Madhyastha, H., Isdal, T., Piatek, M., Dixon, C., Anderson, T., Krishnamurthy, A., Venkataramani, A.: iPlane: An Information Plane for Distributed Services. In: USENIX OSDI 2006 (November 2006)

2. Maxmind geolocation database, http://www.maxmind.com

对于这组16K个目标节点,我们从位于美国的78个PlanetLab节点中收集了跳数计数和延迟测量值,这是我们评估的起点。

我们选择了目标节点的一个子集来训练我们的分类器,训练集节点具有对监视器的已知测量值和已知的地理位置。(在本文中,我们认为IP地址和节点是等价的,因为即使路由器上的别名解析不完善,也不应该影响我们的经验结果。)

对于其余的节点,我们将基于学习的方法和基于约束的地理位置(CBG)[3](使用ping度量的当前最先进的地理位置算法)的地理位置估计与使用Maxmind数据库发现的位置进行比较。我们发现,对于96%的节点,我们的估计器能够提供比CBG更好的位置估计值,并且平均提供的估计值距离真实位置更近70英里。我们相信,这些结果为未来发展基于学习的IP地理定位方法提供了一个令人信服的理由。

3. Gueye, B., Ziviani, A., Crovella, M., Fdida, S.: Constraint-based geolocation of internet hosts. IEEE/ACM Transactions on Networking (December 2006)

2 Learning-Based IP Geolocation

给定一个目标IP地址,我们能确定目标IP的地理位置吗?考虑一个目标IP地址,从一组已知地理位置的监视器到这个目标IP地址。为了本工作,测量集M(= {m_{1}m_{2},...,m_{M} })是来自监视器集的延迟和跳计数值的集合。没有一般性,现在考虑一组可能的县在美国大陆(C),这样的目标位于某个县c\in C,这将使根本的问题更改为,给定测量集M,我们能估计出目标IP位于哪个县c\in C吗?最好的分类器将选择目标最可能位于的县(\hat{c}),即\hat{c}=_{c\in C}^{argmax}\textrm{P(c|M)}。利用贝叶斯定理[4](P(A|B)=\frac{P(B|A)P(A)}{P(B)}),因此我们可以将分类器重申为\hat{c}=_{c\in C}^{argmax}\textrm{P(c|M)}=_{c\in C}^{argmax}\textrm{P(M|c)}P(c)。其中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/604067.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础语法复习

常用的定义: 读取数据加速: input sys.stdin.readline 设置递归深度: sys.setrecursionlimit(100000) 记忆化搜索: from functools import lru_cache lru_cache(maxsizeNone) 计数器: Counter 类是一个非常有…

C++类与对象上(个人笔记)

类与对象 1.面向过程和面向对象初步认识2.类的定义3.类的访问限定符及封装3.1 访问限定符 4.封装5.类的实例化6.类对象6.1类对象的内存计算6.2内存对齐规则(回顾) 7.this指针7.1 this指针的特性 1.面向过程和面向对象初步认识 C语言是面向过程的&#x…

不牺牲算法,不挑剔芯片,这个来自中科院的团队正在加速国产AI芯片破局

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 不降低大模型算法精度,还能把芯片的算力利用效率提升 2~10 倍,这就是…

SpringBoot整合MyBatis四种常用的分页方式

目录 方式1 一、准备工作 1. 创建表结构 2. 导入表数据 3. 导入pom.xml依赖 4. 配置application.yml文件 5. 创建公用的实体类 项目结构 2. 创建controller层 3. 创建service层 4. 创建mapper层 5. 创建xml文件 6. 使用postman进行测试,测试结果如下…

项目中使用消息队列改进——基于RabbitMQ

使用 RabbitMQ 实现消息队列 导入依赖 <!--AMQP依赖&#xff0c;包含RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!--防止消息转…

随机潮流应对不确定性?计及分布式发电的配电系统随机潮流计算程序代码!

前言 随着分布式电源在电力系统中所占比例的不断扩大,研究分布式发电对系统稳态运行的影响势在必行。带分布式发电的潮流计算常常用来评估其并网后对系统的影响&#xff0c;同时它也是分析分布式发电对电网稳定性的影响等其他理论研究工作的基础。然而&#xff0c;许多分布式发…

RK3568---4G模块驱动实验

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…

25.11 MySQL 视图

1. 常见的数据库对象 对象描述表(TABLE)存储数据的逻辑单元, 以行和列的形式存在, 列就是字段, 行就是记录.数据字典系统表, 存放数据库相关信息的表. 数据通常由数据库系统维护, 程序员通常不可修改, 只可查看.约束(CONSTRAINT)执行数据校验的规则, 用于保证数据完整性的规则…

基于SSM+Jsp+Mysql的高校毕业设计管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

嵌入式学习51-单片机4

知识零碎&#xff1a; nop空指令 CRC校验 为了保证51单片与温度传感18b20 之间的高电平 采用一个上拉电阻改变电平的高低 温度寄存器原理