wilx
wilx

Reputation: 18268

QOS for UDP on Linux or any other UNIX-like platform

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?

Upvotes: 0

Views: 1723

Answers (1)

sleinen
sleinen

Reputation: 521

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.

Upvotes: 2

Related Questions