Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm working on an application, that does IP routing and QoS. Today we have the QoS implemented, with 3 priorities (low, normal and high) and for each level we create a Queue and as soon as the packages are queued, we send it forward in a FIFO way (the scheduler spend 60% of time with the high queue, 30% the time with normal and 10% with the low queue). It works, but as FIFO it has some drawbacks like:

  • An aggressive traffic will fill in the queue and all other flows with the same priority will be stucked

  • under high usage, TCP will slow down and UDP will keep flooding our Queue. It means in the end UDP flows will have better priorization then TCP flows

I was thinking a way to improve it and my idea is to implement a SFQ with the following algorithm:

  • keep the high, normal, low, but they aren't just 3 queues, but one per (seen) protocol

  • The scheduler still spending 60% of time we spend with the high queues, 30% the time with normal and 10% with the low queues. But now, it does a round-robin between the queues with the same priority. The choosen Queue, will still forward the packets in a FIFO way.

drawbacks from this implementation:

  • it is more expensive to the CPU

Am I missing something? Any recommendation?

share|improve this question
add comment

1 Answer

Have a look at Hurst or long range dependent network traffic for example this paper. If it is your problem, then you cannot reduce long range dependent traffic with queueing policies.

share|improve this answer
    
i will check it, thanks –  VP. Aug 14 '12 at 13:42
    
the difference is that my application will be running as first hop of a network not in a backbone. I think the paper is related with high-speed networks and i'm sitting on the edge of the network. –  VP. Aug 14 '12 at 13:45
1  
It maybe worth doing a tests on your data. If you are assuming a Normal distribution of traffic, you will underestimate the size of your buffers. Hurst work was on a dam over the rive Nile so just "one" source ^_~ yet the flooding data was long range dependent. Then again, you maybe right and it does not matter. –  Sardathrion Aug 14 '12 at 13:51
    
definitely i didn't discard it :-) –  VP. Aug 14 '12 at 14:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.