For simplicity, we have heretofore ignored the possibility of combining multiple packets with the same destination. In many routing applications, there is a simple rule that allows two packets with the same destination to be combined to form a single packet, should they meet at a node. For example, one of the packets may be discarded, or the data carried by the two packets may be added together. Combining is used in the emulation of concurrent-read concurrent-write parallel random-access machines [29] and distributed random-access machines [23].
If the congestion is to remain a lower bound when combining is allowed, then its definition must be modified slightly. The new congestion of an edge is the number of different destinations for which at least one packet's path uses the edge. Thus, several packets with the same destination contribute at most one to the congestion of an edge.
In order to efficiently combine packets, we will use a random hash function to give all of the packets with the same destination the same rank. Since ties in rank are broken according to destination, a node will not send a packet in one of its queues unless it is sure that no other packet for the same destination will arrive later in another queue. Thus, at most one packet for each destination traverses an edge.
We assign ranks using the universal hash function [7]
which maps a destination to a rank in
with k-wise independence. Here P is a prime number
greater than the total number of destinations, and the coefficients
are chosen at random. We show below that it suffices to
choose
. The random coefficients use
random bits. In most applications, only
-wise
independence is needed and the number of possible
different destinations is at most polynomial in N, so the hash
function requires only
bits of randomness.
In the proof of Theorem 2.9, the ranks of the w packets in a delay sequence were chosen independently, i.e., with w-wise independence. In order to use a hash function with m-wise independence, where m may be much smaller than w, we need the following lemma, which shows that in any delay sequence there are smaller subsequences of many different sizes.
Proof:
Suppose that an -delay sequence occurs.
Divide the packet sequence
into
contiguous
subsequences such that each subsequence has at least
packets. This also partitions the delay path into
subpaths. Let
denote the length of the ith subpath and let
denote the range of ranks for the ith subsequence, i.e.,
is the difference between the largest rank in subsequence i and the
largest rank in subsequence i-1. We know that there must be fewer
than
segments with
, since
.
Furthermore there must be fewer than
segments satisfying
, since
. Thus there must exist some
segment for which
and
.
Proof:
The proof is similar to that of Theorem 2.9.
If some packet is not delivered by step L+w then by
Lemma 2.5 an -delay sequence
occurs. By Lemma 2.10, for any
a
-delay sequence also occurs.
The hash function will be
-wise independent.
We will show that for the right choices of w and
, it is
unlikely that any such sequence occurs.
The number of different -delay
sequences is bounded as follows. A delay path starts at node on some
packet's path. Thus, there at most
starting points for the
path. At each node on the path, there are at most
choices
for the next node on the path. Thus, the total number of ways to
choose the path is at most
. The
number of ways of choosing
switches on the path is at most
. The number of
ways of choosing
packets that pass through those switches
is at most
. The number of ways of choosing
the ranks for the packets is at most
since there are R choices for the rank of the
first packet, and the ranks of the other
differ from
the first by at most
.
If the ranks of the packets are chosen using a -wise
independent hash function, then the probability that any particular
delay sequence occurs is at most
. Thus, the
probability that any delay sequence occurs is at most
Using the inequality to bound
, and
to
bound
by
, and
,
,
and
to bound
by
, our upper bound becomes
Removing constants so that we can better understand the expression, we have
If , then for any constant
there are
constants
and
such that for
and
, the probability is at most
.
If
then for any
there is a
such that
and
and for
, and
, the
probability is at most
.