0

我正在尝试估计通过 WiFi 连接的两个 android 设备之间的网络延迟以同步时钟。但网络延迟从 2ms 到 1024ms 变化很大。有时我得到的延迟值在 2-10 毫秒之间变化,连续 100 次读数。但有时值在 2ms 到 1024ms 之间,连续 100 个读数,如 2、100、570、640、2、5、150。

我正在使用套接字时间戳来确定数据包的确切接收和发送时间。我的设置使用一台笔记本电脑作为 wifi 接入点和两部手机。网络负载不大。我的问题是为什么它有时变化较小,为什么有时变化如此之大。

如何让它变化更小。我是否缺少android上的任何配置。给我一些这种行为的可能原因......

4

2 回答 2

3

与有线链路不同,无线链路受到许多不同因素的影响。只有在没有电磁或机械干扰的无菌环境中才能获得稳定的结果。

大多数延迟波动是射频冲突的直接结果。WiFi 网络实施CSMA/CA协议来处理冲突。一般来说,它会检测空气中是否有任何活动,如果有噪音则推迟传输。

您可以尝试将外部影响降到最低,但这仍然不能保证任何事情:

  • 执行 WiFi 扫描,看看哪些频道噪音最大。为我们的链接选择占用较少的。请记住,各个频道之间存在重叠,因此移动到不同的频道不需要消除所有噪音。有关频道重叠以及如何选择频道的信息,请参见此处:http ://en.wikipedia.org/wiki/List_of_WLAN_channels 。

  • 清除环境中的机械障碍。

  • 从设备的 SW 配置中增加设备的传输 (Tx) 功率。

  • 检查设备的服务质量(QoS) 配置,在那里进行一些调整可能会产生改进。

于 2012-12-09T08:01:03.350 回答
1

通过使用 WIFI_MODE_FULL_HIGH_PERF 解决了这个问题。获得此锁后,我观察到持续的网络延迟。

http://developer.android.com/reference/android/net/wifi/WifiManager.html#WIFI_MODE_FULL_HIGH_PERF

于 2013-03-11T17:35:01.997 回答