Scenario 2 has a well-defined set of traffic flows in a network whose links have fixed bandwidths. It should be possible to determine a set of rates for each flow which ensures the highest link utilisation, where possible, and also divides the link capacity fairly amongst the flows.
In Scenario 2, the bottleneck in the system is the 64kbps full-duplex
link 2
3. We will assume that all acknowledgment rates
are limited by their respective data rates by
![]() |
(4) |
where denotes a data flow from source
to its destination and
denotes the corresponding acknowledgment flow in the reverse
direction.
At time , the flows
and
commence. The optimum
rates for both are:
Time | Optimum Rate (bps) | |
![]() |
![]() |
|
![]() |
64,000 | 1706 |
At time , the flows
and
commence. As
the link 2
3 is the bottleneck, we can write limiting
equations for flows across the link 2
3 and across the link
3
2:
![]() |
(5) | ||
![]() |
(6) |
(2) is the limiting equation, as the data flows are substantially larger than the acknowledgment flows. By sharing bandwidth equally to the flows, we obtain the rates:
Time | Optimum Rate (bps) | |||
![]() |
![]() |
![]() |
![]() |
|
![]() |
32,000 | 853 | 32,000 | 853 |
At time , the flows
and
commence. Here, the
flows are in the opposite directions to the previous four flows. Again,
we can write limiting equations for the flows:
![]() |
(7) | ||
![]() |
(8) |
Distributing bandwidth fairly, we have and
. Assume both links are fully utilised and substituting
for the acknowledgment rates using (1), we have:
![]() |
(9) | ||
![]() |
(10) | ||
![]() |
(11) |
Substituting (8) into (6) gives ,
and the table:
Time | Optimum Rate (bps) | |||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
31,168 | 831 | 31,168 | 831 | 62,337 | 1,662 |
The six flows continue to transmit until time when the flows
and
commence. Again, distributing bandwidth fairly,
we have
and
.
Assume both links are fully utilised and substituting for the acknowledgment
rates using (1), we have:
![]() |
(12) | ||
![]() |
(13) | ||
![]() |
(14) |
Substituting (11) into (9) gives ,
and the table:
Time | Optimum Rate (bps) | |||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
20,779 | 554 | 20,779 | 554 | 62,337 | 1,662 | 20,779 | 554 |
As flow only has 100 packets to send, it finishes quickly, and
the rates return to the values before flow
started:
Time | Optimum Rate (bps) | |||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
31,168 | 831 | 31,168 | 831 | 62,337 | 1,662 |
Similarly, flow has most of the bandwidth across the link
3
2, so it is the next to finish, and the remaining flows
return to the rate values before flow
started:
Time | Optimum Rate (bps) | |||
![]() |
![]() |
![]() |
![]() |
|
![]() |
32,000 | 853 | 32,000 | 853 |
The flows ,
,
and
continue at these rates until one or
both finish.