Figure 1: Effective transmission success by precedence
using a congested system (simulates
precedence stratification
in Table 1 on a T1 connection
using a busy one-hour packet trace of traffic
from UIUC connection into T3 NSFNET backbone
during March 1993)
To illustrate how precedence might work, we ran a simple simulation, using a one-hour trace of traffic at an inflow point of the T3 (45 Mbps) NSFNET backbone during March 1993. We divided the trace into one-second buckets, and assumed that the capacity each second was limited to 193,000 bytes, i.e., T1 (1.544 Mbps) capacity. If more than 193,000 bytes arrive in any second, the simulated router will drop some packets. Although this traffic was from the T3 network, we simulated its transmission through a link of T1 capacity to assess artificial congestion, allowing the illustration of the effect of our proposal. For this line capacity and our data set, the router dropped about 41% of the arriving bytes. We are thus simulating a heavily loaded system.
We compared the loss performance of
two queuing rules: FIFO allocation, as
routers now perform, and precedence allocation
according to the priority assignment in Table 1.
For the latter scheme we used the application information
based on IP protocol and TCP/UDP port number
of each packet in the trace, and simulated
its transmission had it carried a precedence
value according to Table 1.
Figure 1 plots
the success rate for all transmitted bytes
for each precedence level.
The dotted line indicates that
under FIFO service (the present system), the router drops
approximately the same fraction of packets from
all precedence levels.
The solid line indicates that in a precedence-based
queueing system, in which a higher precedence
packet always preempts a lower precedence packet,
packets of highest precedence are subject to
zero loss, while packets of the lowest precedence
suffer extreme attrition.
This experiment represents just one example of a simulated environment, and other scenarios may be more reasonable depending on constraints of a particular environment. Examples include: (1) assuming packets rather than bytes were the bottleneck; (2) use a queueing rule that does not completely starve lower priority queues when serving higher priority queues; (3) apply an alternative stratification to that of Table 1.