A Learning-Based Approach for IP Geolocation(2010年)

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

被引次数:185

Eriksson B, Barford P, Sommers J, et al. A learning-based approach for IP geolocation[C]//Passive and Active Measurement: 11th International Conference, PAM 2010, Zurich, Switzerland, April 7-9, 2010. Proceedings 11. Springer Berlin Heidelberg, 2010: 171-180.

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)}),因此我们可以将分类器重申为

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

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

相关文章

VRRP(虚拟路由冗余协议)详解

VRRP-------虚拟路由冗余协议 在一个网络中,要做为一个合格的网络首先就要具备几种冗余,增加网络的可靠性。 这几种冗余分别为:线路冗余,设备冗余,网关冗余,UPS冗余 VRRP该协议就是解决网关冗余的。在二层…

同态加密:重塑数据隐私与安全的未来

同态加密技术是当今信息安全领域的一个重要研究方向,它允许在加密数据上直接进行计算,而无需将数据解密。这种加密方式对于保护数据隐私和增强云计算安全具有重要意义。在这篇文章中,我们将深入探讨同态加密的基本概念、技术特点、应用场景以…

[react] useState的一些小细节

1.无限循环 因为setState修改是异步的,加上会触发函数重新渲染, 如果代码长这样 一秒再修改,然后重新触发setTImeout, 然后再触发,重复触发循环 如果这样呢 还是会,因为你执行又会重新渲染 2.异步修改数据 为什么修改多次还是跟不上呢? 函数传参解决 因为是异步修改 ,所以…

day 74 js

JS的作用&#xff1a; 修饰 HTML 标签&#xff08;CSS&#xff09;设置 HTML 标签的动作&#xff08;JS&#xff09;JS特点&#xff1a;基于对象的编程语言&#xff0c;通过浏览器解释执行作用&#xff1a;表单验证、改变标签样式、获取和设置标签属性值 1 表单验证: <fo…

抽象工厂模式:深入探索面向对象设计的多样性

在软件开发中&#xff0c;正确地应用设计模式对于构建可扩展、可维护和高效的系统至关重要。抽象工厂模式作为创建型设计模式之一&#xff0c;提供了一个高层接口&#xff0c;用于创建一系列相关或依赖对象&#xff0c;而无需指定它们具体的类。本文将详细介绍抽象工厂模式的概…

MyBatis源码介绍

文章目录 MyBatis的核心流程介绍SqlSessionFactory的理解MyBatis中的Executor的源码理解Spring中是如何解决MySQL的SqlSession的线程安全问题MyBatis面向Mapper编程工作原理Mybatis动态sql执行原理Mybatis的一级、二级缓存实现原理Mybatis的插件运行原理以及如何编写一个插件my…

【攻防世界】web2(逆向解密)

进入题目环境&#xff0c;查看页面信息&#xff1a; <?php $miwen"a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";function encode($str){$_ostrrev($str);// echo $_o;for($_00;$_0<strlen($_o);$_0){$_csubstr($_o,$_0,1);$__ord($_c)1;…

排序之快速排序

代码 class Solution {public int[] sortArray(int[] nums) {merge(nums, 0, nums.length - 1);return nums;}private void merge(int[] nums, int l, int r){if(l > r) return;// 随机选取主元int i new Random().nextInt(r - l 1) l;int temp nums[i];nums[i] nums[…

【好用】推荐10套后端管理系统前端模板

后台管理系统前端模板是开发者在构建后台管理系统时使用的一种工具&#xff0c;它提供了预先设计好的界面和组件&#xff0c;以帮助开发者快速搭建出功能完善、用户体验良好的管理系统。以下是V哥整理的10款流行的后台管理系统前端模板&#xff0c;它们基于不同的技术栈和设计理…

第一部分 Vue讲解(代码版)

1.第一个vue实例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…

要申请开通融资融券账户,有那些条件?

1、什么是融资融券交易? 融资融券交易&#xff0c;又称信用交易&#xff0c;是指投资者向具有融资融券业务资格的证券公司提供担 保物&#xff0c;借入资金买入交易所上市证券&#xff08;融资交易&#xff09;或借入交易所上市证券并卖出&#xff08;融券交易&#xff09; 的…

【vue】v-model.lazy等(非实时渲染)

v-model&#xff1a;实时渲染v-model.lazy&#xff1a;失去焦点/按回车后&#xff0c;才渲染v-model.number&#xff1a;值转换为数字v-model.trim&#xff1a;去除首尾空格 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

ansible的常见用法

目录 ##编辑hosts文件 ##copy模块##复制过去 ##fetch模块##拉取 ##shell模块 ##好用 ##command模块## ##file模块### ##cron模块### ##crontab 计划任务 ##下载好时间插件 ##script模块 ##yum模块## ##yum下载源配置文件 /etc/yum.repos.d/CentOS-Base.repo ##ser…

【Java】第十五届蓝桥杯JavaB组第一道填空题

&#xff03;【Java】第十五届蓝桥杯JavaB组第一道填空题 大家好 我是寸铁&#x1f44a; 总结了一篇【Java】第十五届蓝桥杯JavaB组第一道填空题文章 喜欢的小伙伴可以点点关注 &#x1f49d; Java B组 第一道填空题题解如下:

大数据实训进行时:数据标注项目

数据标注项目 培训目的 让同学们先熟悉理论知识&#xff0c;如&#xff1a;识别障碍物是否满足拉框的要求&#xff0c;如何进行拉框&#xff1b;熟悉标注操作&#xff0c;培养出能够进入正式项目的人员 培训地点 理论&#xff1a;学术报告厅、阶梯教室 实操&#xff1a;1实…

性能优化-01

当看到性能指标时&#xff0c;你会首先想到什么呢&#xff1f;我相信 “高并发” 和 “响应快” 一定是最先出现在你脑海里的两个词&#xff0c;而它们也正对应着性能优化的两个核心指标—— “吞吐” 和 “延时” 。这两个指标是从应用负载的视角来考察性能&#xff0c;直接影…

SRNIC、选择性重传、伸缩性、连接扩展性、RoCEv2优化(六)

参考论文SRDMA&#xff08;A Scalable Architecture for RDMA NICs &#xff09;&#xff1a;https://download.csdn.net/download/zz2633105/89101822 借此&#xff0c;对论文内容总结、加以思考和额外猜想&#xff0c;如有侵权&#xff0c;请联系删除。 如有描述不当之处&…

【软考】哈希表

目录 一、概念1.1 定义 二、哈希函数的构造方法2.1 说明2.2 特性 三、处理冲突的方法3.1 说明3.2 开放定址法3.2.1 说明3.2.2 线性探测 3.3 链地址法3.4 再哈希法3.5 建立公共溢出区 四、哈希表的查找4.1 查找过程4.2 查找特点4.3 装填因子 一、概念 1.1 定义 1.一般存储结构由…

【回溯】Leetcode 51. N 皇后【困难】

N 皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。…

android11 如何修改状态栏的背景

修改status_bar.xml &#xff1a; <LinearLayout android:id"id/status_bar_contents"android:background"#1ABC9C"android:layout_width"match_parent"android:layout_height"match_parent"android:paddingStart"dimen/statu…