我正在开发一款移动应用,用于在同一本地无线网络中的两台设备之间进行实时语音通信。我们最大的挑战是让两台设备同时进行对话时延迟最小。
目前,我们正在开发本地无线网络:只有智能手机和服务器。
我们目前正在对华硕 RT-AC87U 进行一些测试。没有任何互联网连接,我们可以毫无问题地连接 50 多个设备。除了两个实时语音通信(20kbps u/d,UDP)的设备外,所有设备的带宽都接近于零。延迟保持在 100ms 以下。
当我们在路由器上插入互联网连接时,事情就变得困难了。由于所有设备都开始使用带宽来运行其他在线应用,我们无法再提供低延迟(峰值为 300-500 毫秒)。
这给我带来了一些疑问:
1) 当互联网开启时,许多设备使用带宽(全球 +- 4Mbps),本地 UDP 上的 QoS 优先级似乎没有帮助(配置:所有 UDP,在应用程序使用的一系列端口上,每个用户 192.168.1.*)。通信的 UDP 带宽接近 20kbps,非常小。路由器显示 CPU 利用率接近 20%。抖动缓冲区仍然增加很多,接近 200-300ms,而不是 30ms。怎么了?都是因为 wifi 信号受到干扰吗? 笔记:实时语音通信总是在一个固定设备(但我们无法固定 IP)和其他设备之一之间进行。
2)如果我们想将用户数量增加到 200 左右,我们需要的不仅仅是几个 AP 和一个强大的路由器吗?
如果需要的话我可以提供更多信息。非常感谢您的帮助/建议,我非常感激。
谨致问候,皮埃尔-路易斯。
答案1
您需要一系列无线接入点和控制器,Ubiquiti 之类的东西会是不错的选择。如果面积较小,则需要混合使用 2.4 和 5Ghz。
如果您使用与会者自己的智能手机,尝试在没有互联网的情况下执行此操作将是一个问题。许多设备会在没有互联网的情况下自动禁用网络并返回到蜂窝网络,您不想在一天内跑来跑去排除 200 台设备的故障。
当您在如此多的客户端之间进行多路复用时,QoS 并没有真正的帮助。