专栏名称: 大数据文摘
普及数据思维,传播数据文化
51好读  ›  专栏  ›  大数据文摘

实时追踪上百万个手机是种怎样的体验?

大数据文摘  · 公众号  · 大数据  · 2017-07-29 12:31

正文

文章授权转载自FreeBuf(ID:FreeBuf.COM)

作者 | hey你的拔粪宝


一个拥有一千万用户的手机服务提供商的代表来到我的办公室,问我“如果要追踪我一千万用户的每一步行踪,我要准备什么?” 我会回答“一个实习生以及六个月的时间,这个实习生需要一张桌子,一台电脑,他要有基础的编程能力和代数技巧,就这么多”。


你可以在网上找到你想要的任何信息,但是应该没找到过该如何追踪手机。

首先要阐明清楚,我们在这里谈的不是如何追踪你丢失的(或被偷的)手机,我们在这里谈的,是追踪每一个人的手机!其实我觉得这件事难度不大,甚至异常简单,所以人们应该意识到这件事的影响。

现在想象你就是这个来到公司的实习生,你的实习生涯已经开始了!这篇文章会告诉你所有你需要知道的。

首先我们要重温一下蜂窝网络,地理定位原则以及每个手机都能轻易获取的功能,然后把这些东西全部利用起来做成一个行星级精准实时批量监控系统。

(PS:读到最后的人运气都不会太差)

A)前言

我们正处在跨领域专业知识的特殊位置,因为我们把最先进水平的追踪系统经验和电信产业的经验结合了起来。

无论是定位仓库里的一个东西以指引人们购物还是跟踪一辆被偷的卡车,在满足一些约束的条件下,追踪可以有很多合法用途:室内的,室外的,有电池的和没电池的,可调节精度的等等…

一个手机就有很多嵌入科技,比如GPS,WIFI,加速计,指南针等等…在这篇文章里,我们专注于一些容易得到,可靠,效率高且能大量追踪的东西。

B)需要的东西

我们要开始追踪手机了,哪个手机呢?——所有手机

一些约束条件:

  • 手机不可控

  • 无法物理接触

  • 硬件不能被修改

  • 软件不能被安装

  • 用户不可控

  • 他们不会做我们想要的行为

  • 他们不会事先同意任何东西

  • 他们不会答应任何其他东西

  • 必须为百万级别

  • 庞大的用户量

在时间和空间上有更好的精度就更好了,但是这项并不能自成一个标准,因为他需要平衡很多参数,比如可行性,可拓展性,可靠性,以及所需花费。

为了避免疑问,如果能在指定时间能定位指定城市的指定街区的任何手机,我们即认为是成功。

C)多点定位

很多系统的工作原理是三角测量,所以通过对比距离和相关点来对一个指定位置进行三角测量是可行的。

如果你使用GPS这样的服务,那么它会直接帮你定位并且给你一个范围误差。

如果你偏要自己做,无论你是做GPS的人还是把多个传感器混在一起想搞大新闻的人,你要自己做很多比较困难的事。

总之,有四种方法:

1)强度:信号强度

有了发射强度,接收强度以及媒介的信息,我们可以用物理的波传播公式来估计距离。

但是从实际出发,这种方法对无线电波极其不可靠

比如远距离的无线电波每秒内通常会有10dB的误差,而且在你不动的时候瞬息万变,如果有你在有门窗的地方的话情况会变得更糟。

2)AoA:到达角

注意:当使用角度的时候它被称为三角测量

有了信号的角度,我们就有可能辨别信号源在某条线上(或是圆锥),显然,如果是强指向性信号,那么AoA就非常有用了。

你可以想象在电影里看到不下千次的雷达。

3)ToA:到达时间

有了信号时间和速度,那么距离就很容易得到了。T=d/s

有挑战性的是:无线电波以299 792 458m/s的速度传送,如果要保证精度在30cm以内,时间误差必须在0.000000001秒内(1纳秒),这是个很难解决的问题。

4)TDoA:到达时差

这也是基于时间测量。不过显然用时差比用绝对时间好多了。

被追踪设备发射的脉冲被多个接收器收到,且这些接收器在已知位置并时间同步。通过测量不同接收器接受到信号的时差,我们可以大致确定目标设备的大概距离。

具有挑战性的是:这不仅需要极其精确的时间测量,还需要各个接收器系统的时钟同步。

D)蜂窝网络原理

我们现在过一下蜂窝网络的基础

1)基站收发信台(BTS)

一个手机会与基站通信

有两个信道,一个用于(向基站)发射,一个用于(从基站)接收,它们在不同频率上运作。

发射频道被所有设备在任何时间共享。

2)蜂窝网络

一个基站覆盖周边,临近的基站就构成了蜂窝网络,相邻的基站需要使用不同的频率以避免相互干扰。

其中每一个都有自己的网络,其中一个可能会向另一个分享或转手网络。有些是虚拟的,被称为移动虚拟网络运营(MVNO),它们没有物理的基础设施,通过租用基础运营商的资源来发展自己的业务。比如giffgaff(英国的服务商)

3)基站密度

一个基站覆盖的用户数是有限制的,当一个地方有太多用户(比如市中心)那会发生什么呢?

两倍密度,四倍容量,可以将基站安排得更密集来增加容量。

E)定位一个手机

1)基站

你的手机必须在基站覆盖范围内才能进行通信,通过你的手机的“在线”信息,运营商可以知道你在哪个基站附近。

就像刚刚说的,基站塔数量可以随着用户密度而进行调整,理论上基站塔的覆盖半径有35km,在大城市,每千米可能就会有个基站,而在乡村,每十千米可能就会有一个。

这就足够确定用户在哪个城市了。

基站收发信台必须被合理安排才能避免干扰或其他情况,运营商知道这些塔的位置,这些塔还会被某种无线电塔登记局正式注册。(各国的执行方式可能会有不同)

2)基站x6

以前在电信局的时候,曾经用过制造商提供的用于测试的手机。想象一个老牌诺基亚,有嵌入的硬件和软件以供调试,其中就有可以显示连接细节的,不过这种手机不会卖给普通消费者。

有那种手机在手上,我们发现它会随时侦测且与四个基站同时保持连接。为什么是四个呢?因为这个地方只有四个!一个十年前350块钱的手机,可以同时“连接”6个基站。可能会包含稍微在范围外的基站,信号强到可以侦测到,但是又弱得不能用于实际使用。

我们喜欢从简单方面说明现在的情况:你的手机是科技的奇迹,无论怎样它都会继续发展来保持通讯的继续,当你说话的时候,一个字会从一个塔到下一个塔再到另一个,它会尽可能频繁地切换。

总结一下这个段落: 你的手机会不断地与多个基站通信,一个基站可以将你定位在一个圆里,而多个基站定位的圆重合的地方(也就是你所在位置)就会小很多。 (很久之前的微信三点定位法也是这个原理)

3)角度

我们之前说基站会覆盖一个圆,不过这个还没有达到最佳标准。

一个常见基站会发射三个分裂成120°的独立电波。

一个经典的基站收发信台(注意是三角状的),每一面覆盖了120°

就像这样技术上的安装,正如精密天线制造商所推荐的。

这就让我们的定位精准到了120°以内,提高了精确度,多点定位所需的收发信台也减少到了两个。

这种方法需要天线和指向性信息,我们检查了收发信台数据库,发现信息都在那里,所以得到这些信息十分容易。精度需要在野外测试(某种程度上说电波的传播与建设工作并不是十分完美)。

4)RSSI:接收信号强度指示器

一个手机的最大发射功率是2瓦(6dB),一个手机接收器有着常见的0.000000001瓦灵敏度(1纳瓦或-90dB)空气会使信号衰减10亿倍,但是手机仍然会正常工作,很神奇!

在大学物理的理想世界里,用该方程可以模拟空气中的传播损耗:

但在现实世界中,这个公式并不能被应用,空气不是均匀的,而且各个地方都有障碍物。衰减随时会改变两个数量级,所以这个值并没有意义。

卡尔曼过滤器用得好,可以帮助过滤样本,但是对于一个质量不太好的结果,它会变得更复杂。

5)TA:时间提前

一个信道会被多个客户共享,每人都会分配一个非常短的时间,你可以去了解GSM框架的介绍来获取细节。

如果前一个位置与下一个重叠,时隙就无法使用(被另一个电话占用),有可能导致这种情况的原因可能是电话到基站的传播延迟。

在GSM中,每一位是3.69231µs,在那段时间里,无线电波可以传播1107米,这意味着如果目标在多个1107米开外,那么就会有多个bit延迟…我们可不想那样!

传播延迟可以由一个被称为时间提前的机制修正。时间提前量的作用就是为了补偿电波传输延迟,由于GSM采用了TDMA,每频载8个时隙,所以应严格保持时隙间的同步

如果是为了地理定位,时间提前量可以允许将一个手机定位在一个1107米的环面中,接下来我们将其放在伦敦的中心







请到「今天看啥」查看全文