Fair Queuing (English for fair queuing ) is a network - scheduling algorithm. The primary objective of the fair queuing is the fair treatment of the sources of a transmission component, which can be achieved by the fact that each data flow (and thus each source of transmission component) is assigned its own queue on each output line of the transmission component. The packets of the queue are removed and shipped in a round - robin method. In this manner, each source of the transmission component is limited to the same part of the total bandwidth of the output line.
A problem of fair queuing is that those channels are preferred, which send long packets, since the sending large packets take more time to complete. Can be solved this problem by extending the fair Queuings: Fair Queuing with byte -by -byte round robin.
A second problem is that not fair queuing priority of data flows (of each source, there is a flow of data ) are considered. Some sources namely have a higher priority than others and some require a higher bandwidth data flows than others. A solution to this problem is to expand the fair Queuings for weighted fair queuing.
Fair queuing with byte -by byte round robin
Fair queuing is basically identical to round robin, except that each source its own queue is formed.
To increase the fairness in packet -based networks still ( and allocated to the stations with the larger packages not more bandwidth ), following fair queuing is packet -based networks are:
A packet n is assigned a so-called completion time. This is calculated according to the formula
The arrival time of the packet itself and its length is. is the completion time of its predecessor ( the same source ). If the queue is empty, you can start the transmission of the respective package course immediately. Otherwise, the transmission of the predecessor must be awaited.
The method can therefore be it therefore, that shorter packets can push before long, for example, Q1 is treated with 50 -byte packets at an interval of 10 ms and source Q2 with 150 -byte packets at 10 ms following source:
(2 ) F ( Q2, 1) = max ( 0,0) 150 = 150 ( transferred once free medium and virtual time at 1000 arrived)
(3 ) F ( Q1, 2) = max ( 10.50 ) 50 = 100 ( moving in front ( 2), see below)
(4 ) F ( Q2, 2) = max ( 10,150 ) 150 = 300
( 5) Q (Q1, 3) = max ( 20,100 ) 50 = 150 ( moving in front of ( 4), see below)
(6 ) F ( Q2, 3) = max ( 20,300 ) 150 = 450
Would then transmit in order: ( 1) (3 ) (2 ) ( 5) (4 ) (6)
(2 ) (5), as we expect from First - Come- First-Served
We are going to simplify the assumption that no data has been transferred, only the sending order is to be observed. The data will accumulate on quasi. Otherwise, a different packet sequence could result (depending on bandwidth).