I have a Linux device that is supposed to stream from various real-time audio sources over RTP/UDP to a number of clients, and want to achieve the lowest possible latency. The way it works is it retrieves frames from various ALSA interfaces and forwards them as RTP streams using common C sockets.
I've done some testing using Wireshark and I'm pretty sure I'm setting up the socket's DSCP field in the IP_TOS field for Expedited Forwarding correctly, which as I understand it, ensures the greatest reduction of latency on that front.
However, I'm concerned that I'm not doing anything to tag the packets as VoIP to enforce the best possible QoS throughout each node on the network (using the 802.11e standard), and that might be resulting in less-than-optimal latency. What makes me mostly suspicious about this is that according to my Wireshark logs, my packets are tagged as video packets instead of audio/VoIP:
So, here are my questions:
How does DSCP relate to 802.11e? What I'm thinking is that they do different things within different layers of the network, but I'm not that knowledgeable and may be off about this.
Does the above image reveal anything about any non-optimal setup for packets and/or the UDP socket I'm using to send the RTP stream on either the DSCP or 802.11e fronts?
How can I tag packets for VoIP priority using standard sockets on C++ (if possible)?
Is there any particular configuration I should look out for regarding 802.11e on my router? Should I look for routers that support 802.11e or is that a foregone conclusion? I'm assuming maybe 802.11e isn't about the specific packets but about router configuration.
Again, I'm kinda lost and I think I might need someone to whack me over the head and tell me how all of this works. All I can find online seems to be CISCO-related and I'm not sure of how much use it is for my purposes as explained here.
EF
worst or best. There is no one answer for how QoS works. You configure your devices for fairness as you see it, but others see it differently. – Ron Maupin