Question

I am doing some research related to QOS for UDP sending application.

My application is sending UDP packets over possibly loaded networks. It does so with little bandwidth requirements when compared to, say, BitTorrent over UDP. Since my flows are fairly low bandwidth, I would like to avoid my UDP packets being dropped, when there decision between my UDP packet and BitTorrent UDP packet.

There seems to be a way to attempt some QOS signaling on Windows using WSAIoctl() with SIO_SET_QOS with sending FLOWSPEC with ServiceType set to SERVICETYPE_QUALITATIVE, etc.

I Was not able to find a way to set up any such QOS signaling for Linux (or any other *NIX platform). Is per-application QOS signaling possible on Linux? If it is, how?

No correct solution

OTHER TIPS

If your network implements DiffServ, then you can use setsockopt() with IP_TOS to set the DiffServ code point (DSCP) on your packets to a suitable value. (Before DiffServ was specified, these bits were interpreted as Type of Service (TOS) and priority fields, hence the name.)

Note that the UDP-based transport protocol (uTP) in modern BitTorrent implementations already behaves as if it had lower priority than "normal" traffic, and will back off when it senses congestion.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top