我正在开发一个同时进行 VoIP、Cam-streaming 和文件传输的应用程序。目前它在 Windows、OS X、Android 和 iPhone/iPad 下运行。正如您可能理解的那样,这会产生相当多的网络流量,特别是如果同一 LAN 上的几个人同时进行此操作。结果,VoIP 质量受到影响。
我认为最好的理论解决方案是礼貌地询问本地 wi-fi 路由器是否可以优先处理 VoIP 流量。不幸的是,大多数流量流,包括用于 VoIP 和视频的 SIP,都经过加密并通过 TCP 发送。所以路由器无法弄清楚 TCP/UDP 流做什么。
我已经简要介绍了 UPnP QoS。从规格来看,这正是我所需要的。但我不知道它是否广泛适用于当今的家用路由器。我也不知道它是否真的按我想要的方式工作。简单地说:对于 VoIP,我想通过它的端点指定一个流,并告诉 wi-fi 路由器/家庭网络给它最小的延迟。
所以我的问题真的是:
- 是否值得进一步深入研究 UPnP QoS?
- 这是否被现代家庭 LAN 硬件(wi-fi 路由器)广泛采用?
- 有没有更好的方法可以考虑?
我还注意到三星为此申请了一项专利,我对此表示担忧。
我还没有为 UPnP 和 QoS 找到任何非常好的 API,但我想可以用 curl 或 boost::asio 来做一些事情。如果我这样做了,是否有兴趣为此目的使用 C++ 开源库?