我有一个 Linux 设备,它应该通过 RTP/UDP 从各种实时音频源流式传输到多个客户端,并希望实现尽可能低的延迟。它的工作方式是从各种 ALSA 接口检索帧,并使用通用 C 套接字将它们作为 RTP 流转发。
我已经使用 Wireshark 进行了一些测试,并且我很确定我在 IP_TOS 字段中正确设置了套接字的 DSCP 字段以进行加速转发,据我所知,这可以确保最大程度地减少这方面的延迟。
但是,我担心我没有做任何事情来将数据包标记为 VoIP,以在网络上的每个节点(使用 802.11e 标准)中实施尽可能好的 QoS,这可能会导致不太理想潜伏。最让我怀疑的是,根据我的 Wireshark 日志,我的数据包被标记为视频数据包而不是音频/VoIP:
所以,这是我的问题:
DSCP 与 802.11e 有何关系?我在想的是他们在网络的不同层中做不同的事情,但我不是那么知识渊博,可能对此有所了解。
上图是否揭示了关于我用来在 DSCP 或 802.11e 前端发送 RTP 流的数据包和/或 UDP 套接字的任何非最佳设置的任何信息?
如何使用 C++ 上的标准套接字标记 VoIP 优先级的数据包(如果可能)?
关于路由器上的 802.11e,我应该注意什么特殊配置吗?我应该寻找支持 802.11e 的路由器还是已成定局?我假设 802.11e 可能与特定数据包无关,而是与路由器配置有关。
再一次,我有点迷路了,我想我可能需要有人敲打我的头,告诉我这一切是如何运作的。我在网上可以找到的所有内容似乎都与 CISCO 相关,我不确定它对我的目的有多大用处,如此处所述。