我想尝试一些不同的东西来测量 wifi 的速度。我不想知道速度是以 Mb 还是 KB/s 为单位。我想知道我的速度是以 m/s 为单位,我想计算从笔记本电脑到路由器的距离。例如,或者到其他笔记本电脑或手机——我想看看我是否可以创建一个包含我可以连接或查看的对象的地图。
这可能吗?有人能帮我指点一下吗?有没有可以做到这一点的程序或东西?
答案1
由于影响数据包传送和周转时间的因素很多,我怀疑您是否会得到任何准确的数字。Stackoverflow 上有一些关于您要做什么的讨论:https://stackoverflow.com/questions/684781/how-to-get-distance-using-wi-fi
答案2
我假设你的问题是询问是否可以使用 wifi 确定计算机到路由器的距离,答案是肯定的......有点。
假设您从笔记本电脑向路由器发送信号,路由器做出相应响应,此往返需要 20 纳秒,即单程 10 纳秒。已知空气中的光速 c = 3.0*10^8m/s(实际上要小一点,但该值精确到 2 位有效数字),我们可以通过 d = c*t 确定距离,结果为 3 米。
然而...
路由器不会立即发送响应。解码数据包并编写响应需要时间,而且您不知道这需要多长时间。数据包可能会在队列中停留几纳秒,正如我们从上面看到的,这相当于多了一米左右。幸运的是,您不必担心时间域复用,这会使情况变得更糟。
哦,等等,还有更多……
如果没有对硬件的直接控制(在本例中为 wifi 无线电的 I/O 控制器),您实际上并不知道何时发送原始数据包,或何时收到响应。通常,操作系统会位于您的程序和硬件之间。您将提早启动计时器并延迟停止。
还有一个问题是,虽然使用笔记本电脑以纳秒级分辨率进行计时在技术上是可行的,但并非所有操作系统和硬件组合都能提供纳秒级分辨率。那么微秒级计时能给你带来什么呢?两个最短距离分别是 0 米和 300 米,这超出了典型 wifi 的范围。
所以,总而言之,你能做的最好的事情就是给距离设置一个上限,这个上限也可能超出了 wifi 的范围。你永远不可能得到能够准确做到这一点的消费级硬件。
答案3
这是可能的,尽管速度不行(速度会波动太大,而且取决于太多因素)。您可以使用信号强度来估计位置。我会试着给你找个向导。