cs0203030/paper.tex
1: \documentclass[11pt]{article}
2: %\usepackage{isolatin1}
3: %\usepackage{times}
4: \usepackage{fullpage}
5: \usepackage{epsfig}
6: 
7: \newtheorem{theorem}{Theorem}
8: \newtheorem{cor}[theorem]{Corollary}
9: \newtheorem{lemma}[theorem]{Lemma}
10: \newtheorem{prop}[theorem]{Proposition}
11: \newtheorem{fact}[theorem]{Fact}
12: \newtheorem{definition}[theorem]{Definition}
13: 
14: \newenvironment{proof}{\noindent{\bf Proof:}}{
15: \hspace*{\fill} \rule{2mm}{2mm} \vskip \belowdisplayskip}
16: \newenvironment{sketch}{\noindent{\bf Proof sketch:}}{
17: \hspace*{\fill} \rule{2mm}{2mm} \vskip \belowdisplayskip}
18: \newenvironment{proofof}{\noindent{\bf Proof of}}{
19: \hspace*{\fill} \rule{2mm}{2mm} \vskip \belowdisplayskip}
20: 
21: \newcommand{\ve}{\varepsilon}
22: \newcommand{\del}{\Delta}
23: \newcommand{\prob}[1]{\Pr\left[\mbox{#1}\right]}
24: 
25: \newcommand{\cm}[1]{}
26: \def\A{{\cal A}}
27: \newcommand{\ab}[1]{
28: {\left\vert {#1} \right\vert}
29: }
30: \newcommand{\cel}[1]{
31: {\lceil {#1} \rceil}
32: }
33: 
34: %  to make a box
35: \newcounter{algline}
36: \newcounter{stp}
37: 
38: \newcommand{\nl}{\\ \thealgline \stepcounter{algline}}
39: \newenvironment{alg}[1]{\setcounter{algline}{1}\begin{tabbing} 12345\=67890\=123
40: 45\=67890\=12345\=67890\=12345\=67890\=  \kill {\bf #1:} \nl}{\end{tabbing}}
41: 
42: \newenvironment{algtab}{\begin{table}[htb]\begin{minipage}[t]{.04\linewidth}~
43: \end{minipage} \begin{minipage}[t]{0.92\linewidth}\vspace{-.06in}}{\vspace{-.0in
44: }\end{minipage}\end{table}}
45: 
46: \newenvironment{algtab2}{\begin{minipage}[t]{.04\linewidth}~
47: \end{minipage} \begin{minipage}[t]{0.92\linewidth}\vspace{-.06in}}{\vspace{-.0in
48: }\end{minipage}}
49: 
50: \newenvironment{boxfig}[1]{\begin{figure*}[htb]\fbox{\begin{minipage}{\linewidth}
51:                         \vspace{1em}
52:                         \makebox[0.025\linewidth]{}
53:                         \begin{minipage}{0.95\linewidth}
54:                         #1
55:                         \end{minipage}
56: %                        \vspace{1em}
57:                         \end{minipage}}}{\end{figure*}}
58: %  end of making a box
59: 
60: %\pagestyle{empty}
61: 
62: \begin{document}
63: \title{Source Routing and Scheduling in Packet Networks~\thanks{Partially 
64: supported by DIMACS funding. A preliminary version of this paper
65: appeared in the Proceedings of the 42th IEEE Annual Symposium on
66: Foundations of Computer Science, FOCS 2001.}}
67: \author{Matthew Andrews~\thanks{Bell Laboratories. andrews@research.bell-labs.com.}
68: \and
69: Antonio Fern\'andez~\thanks{GSyC, ESCET, Universidad Rey Juan Carlos, Spain. 
70: anto@gsyc.escet.urjc.es.}
71: \and
72: Ashish Goel~\thanks{Department of Computer Science, University of
73: Southern California.  agoel@cs.usc.edu.}
74: \and
75: Lisa Zhang~\thanks{Bell Laboratories. ylz@research.bell-labs.com.}}
76: \maketitle
77: \thispagestyle{empty}
78: 
79: \begin{abstract}
80: 
81: We study {\em routing} and {\em scheduling} in packet-switched
82: networks.  We assume an adversary that controls the injection time,
83: source, and destination for each packet injected.  A set of paths for
84: these packets is {\em admissible} if no link in the network is
85: overloaded.  We present the first on-line routing algorithm that finds
86: a set of admissible paths whenever this is feasible.  Our algorithm
87: calculates a path for each packet as soon as it is injected at its
88: source using a simple shortest path computation. The length of a link
89: reflects its current congestion.  We also show how our algorithm can
90: be implemented under today's Internet routing paradigms.
91: 
92: When the paths are known (either given by the adversary or computed as
93: above) our goal is to schedule the packets along the given paths so
94: that the packets experience small end-to-end delays.  The best
95: previous delay bounds for deterministic and distributed scheduling
96: protocols were exponential in the path length.  In this paper we
97: present the first deterministic and distributed scheduling protocol
98: that guarantees a polynomial end-to-end delay for every packet.
99: 
100: Finally, we discuss the effects of combining routing with scheduling.
101: We first show that some unstable scheduling protocols remain unstable
102: no matter how the paths are chosen.  However, the freedom to choose paths
103: can make a difference.  For example, we show that a ring with parallel
104: links is stable for all greedy scheduling protocols if paths are
105: chosen intelligently, whereas this is not the case if the adversary
106: specifies the paths.
107: \end{abstract}
108: 
109: \section{Introduction}
110: \label{s:intro}
111: 
112: Two of the most important problems in the control of packet-switched
113: networks are {\em routing} and {\em scheduling}.  The goal of routing
114: is to assign a path to a packet from its source to its destination.
115: The goal of scheduling is to deal with the {\em contention} that
116: occurs when two or more packets wish to cross a link simultaneously.
117: Each link must have a {\em scheduler} that resolves this contention
118: by deciding which packet to advance.
119: 
120: The scheduling problem typically assumes that the paths of the packets
121: are given as part of the input.  The goal is then to schedule the
122: packets along their paths in such a way that they all reach their
123: destinations in a short time.  Much recent work has focused on the
124: {\em Adversarial Queueing Model},
125: e.g.~\cite{BorodinKRSW96,AndrewsAFKLL96,Gamarnik98}.  We follow
126: their convention and assume that all packets are unit size and each link
127: processes one packet per time step.  In this Adversarial Queueing
128: Model, the adversary chooses the injection time, source, destination,
129: and route for each packet injected.  A sequence of injections is
130: called $(w,r)$-{\em admissible} for a window size $w$ and injection
131: rate $r<1$, if in any time interval of $T\ge w$ the total number of
132: packets injected into the network whose paths pass through any link
133: $e$ is at most $Tr$.  These paths are also called $(w,r)$-{\em
134: admissible}.  Previous work has examined the performance of a number
135: of simple scheduling protocols in this model.  A packet scheduling
136: protocol is said to be {\em universally stable} if it guarantees
137: bounded buffer sizes and packet transmission delays for any
138: $(w,r)$-admissible injections. In~\cite{AndrewsAFKLL96} it was proved
139: that several natural protocols (Longest-In-System, Shortest-In-System,
140: Furthest-To-Go) are universally stable, whereas several others
141: (First-In-First-Out, Last-In-First-Out, Nearest-To-Go) are not.
142: 
143: In this paper we study both routing and scheduling.  The adversary no
144: longer specifies the route of each packet; it merely specifies the
145: source and destination.  However, we are guaranteed 
146: that $(w,r)$-admissible paths for the injections do exist.  The
147: problem is now two-fold. We first need to find some $(W,R)$-admissible
148: paths, possibly for a different window size $W$ and a different $R<
149: 1$. These admissible paths combined with a universally stable
150: scheduling scheme, such as the ones in~\cite{AndrewsAFKLL96} or the
151: one presented in Section~\ref{s:polydelay} of this paper, result in a
152: universally stable protocol for routing and scheduling.
153: 
154: \subsection{Source Routing for Stability}
155: 
156: \paragraph{Our result.}
157: In Section~\ref{s:basic-routing} of the paper we present the first
158: online algorithm for assigning admissible routes to packets.  If the
159: adversary can assign $(w,r)$-admissible routes, then our algorithm
160: finds a set of $(W,R)$-admissible routes where $R\in (r,1)$ is of our
161: choice and $W\ge w$ is determined by the choice of $R$. Hence, if the
162: parameter of merit is the window size $w$, then our algorithm is a
163: $W/w$-approximation algorithm (modulo a small increase in the rate).
164: Moreover, our algorithm is online in that it assigns routes to packets
165: as soon as they are injected into the network.  Hence it can also be
166: regarded as a $W/w$-competitive algorithm for this problem.  This is
167: the first approximation algorithm/competitive algorithm for this
168: problem.  Once the routes are chosen, we can use any ``good''
169: scheduling protocol in the Adversarial Queueing Model.
170: 
171: Our algorithm is based on the $\ve$-approximation algorithm for
172: fractional maximum multicommodity concurrent flow given by Garg and
173: K\"onemann~\cite{GargK98}, which in turn builds upon the work of
174: Plotkin, Shmoys, and Tardos~\cite{pst:pack95} and
175: Young~\cite{y:round95}. In the maximum multicommodity concurrent flow
176: problem, the demands for each commodity remain constant as the
177: algorithm progresses. In our setting, the demands between
178: source-destination pairs correspond to the packets injected by the
179: adversary, which can change over time. Even though the algorithm of
180: Garg and K\"onemann~\cite{GargK98} is an {\em offline} algorithm that
181: assigns {\em fractional} paths to a fixed set of commodities, in our
182: setting we are able to convert it into an {\em online} algorithm that
183: assigns an {\em integral} path to each packet as soon as it is
184: injected.
185: 
186: \paragraph{Implementation under Internet routing paradigms.}
187: 
188: %It is a simple shortest-path based algorithm that makes use of current
189: %information about link congestion. Hence it fits easily into the OSPF
190: %and MPLS routing paradigms that are in use in today's Internet.  We
191: %discuss this more below.
192: 
193: %We now discuss the mechanisms needed for the implementation of our
194: %routing algorithm, and describe how they fit in with routing schemes
195: %implemented in today's Internet.  
196: At a high level, our algorithm works as follows.  Each link maintains
197: a measure of {\em congestion} that represents how many packets have
198: been routed through it in the recent past.  Packets are then routed on
199: shortest paths with respect to this congestion measure.  Hence we need
200: a mechanism for distributing congestion information from the links to
201: the source nodes.  We also need a mechanism by which a source node can
202: inform a link whenever it routes a packet through that link. 
203: 
204: The first requirement could be satisfied by something akin to the OSPF
205: (Open Shortest Path First) link state flooding protocol. (See
206: e.g.~\cite{Keshav97}.) This is a protocol that is used for flooding
207: link state information to the nodes in a network so that packets may
208: be routed along shortest paths.  The second requirement may be
209: satisfied by the MPLS (Multi-Protocol Label Switching) protocol that
210: is gaining increasing acceptance in the Internet. (See e.g.\
211: \cite{RFC3031}.)  With this protocol a source node can compute an
212: explicit route to each destination and then distribute a label for the
213: route to each of the links that comprise the route.  In combination
214: with this label distribution the source can also specify how much
215: traffic it is going to send on the route.
216: 
217: In Section~\ref{s:basic-routing} we first assume that this control
218: information is transmitted instantaneously and does not contribute to
219: the congestion in the network.  We then consider a model in which the
220: control information is transmitted in-band through the network and
221: must contend with the data traffic.
222: 
223: \paragraph{Relation to previous work.}
224: Routing and scheduling as a combined problem has been studied
225: in the past.  For example, Aiello et al.\ presented a distributed
226: algorithm~\cite{AielloKOR98} motivated by the Awerbuch-Leighton
227: multicommodity flow algorithm~\cite{AwerbuchL94}.
228: %{\sc is this correct? [Yes, but I noticed that they were trying to 
229: %downplay the use of Awerbuch and Leighton in their talk and claiming 
230: %that they did a lot of work beyond that. -- A.]} 
231: In~\cite{Gamarnik99} Gamarnik gave a solution based on an
232: approximation algorithm for static routing.
233: %However, both algorithms require the network to be undirected, 
234: %i.e.~each link must be bidirectional. 
235: However, both these algorithms require a dependence between how a
236: packet is routed and how it is scheduled. Hence, their routing schemes
237: only work in association with their specific scheduling schemes, but
238: not with generic scheduling algorithms.  Neither routing algorithm can
239: be used to provide packets with admissible paths at injection time.
240: Using networking terminology, these routing algorithms correspond to
241: {\em active routing}~\cite{Braden}, where intermediate routers need to
242: actively participate in determining routes for each individual packet.
243: In contrast, our algorithm corresponds to {\em source
244: routing},
245: %\footnote{A large number of routers in the Internet have the
246: %capability of supporting source routing.} 
247: where the entire path of a packet is known at the source.
248: 
249: %Moreover, we believe that both of the scheduling schemes in
250: %\cite{AielloKOR98} and \cite{Gamarnik99} contain features that make
251: %them difficult to implement in practice.  In \cite{AielloKOR98} the
252: %scheduling requires communication of queue sizes between neighboring
253: %nodes.  In \cite{Gamarnik99} the scheduling requires the centralized
254: %solution of a Linear Program.  We believe that, in practice,
255: %scheduling happens on such a fast time scale that all decisions made
256: %by a link must be made independently. Hence, scheduling decisions that
257: %require communication are inherently impractical (Of course, {\em
258: %routing} decisions have to be made using communication.  However,
259: %routing decisions are in general made at a slower timescale).
260: 
261: 
262: \subsection{Deterministic Distributed Scheduling with Polynomial Delays}
263: 
264: In Section~\ref{s:polydelay} of the paper we study the scheduling
265: problem in isolation assuming that $(w,r)$-admissible paths are given.
266: In recent years, a number of scheduling algorithms have been proposed
267: that guarantee {\em network stability}, i.e.\ the number of packets in
268: the network remains bounded and the end-to-end delay experienced by
269: packets remains bounded.  For example, the Longest-In-System protocol
270: that always gives priority to the packet injected into the system
271: earliest, was shown in \cite{AndrewsAFKLL96} to guarantee a delay
272: bound of $O(w/(1-r)^{d_{\max}})$, where $d_{\max}$ is the maximum
273: length of a path assigned to any packet.  Note however, that this
274: bound is exponential in $d_{\max}$.  It has been an open problem
275: whether or not any deterministic, distributed scheduling protocol has
276: a polynomial delay bound in the Adversarial Queueing Model.  Indeed,
277: \cite{AndrewsAFKLL96} remarked that ``it is of considerable interest
278: to determine whether such a protocol exists''.
279: 
280: A {\em randomized} protocol based on Longest-In-System can guarantee
281: that each packet experiences a delay of $poly(w,1/(1-r),d_{\max},\log
282: m)$ with high probability~\cite{AndrewsAFKLL96}, where $m$ is the
283: number of links in the network.  In essence, for most of the time the
284: protocol is successful and keeps all delays small.  However, even if
285: the failure probability is small, if the algorithm is run for an
286: extended period of time then the algorithm is likely to make some
287: random choices that are bad.  This causes packets to violate the delay
288: bound. Moreover, if one packet violates the delay bound then other
289: packets injected along the same path at similar times are also likely
290: to violate the delay bound.  Hence, all of the packets that make up a
291: single file transfer could be excessively delayed.  Although this
292: randomized protocol can be derandomized in a centralized manner it
293: seems hard to convert it into a deterministic, {\em distributed}
294: protocol.  This is because the ``success condition'' involves packets
295: injected at multiple source nodes and hence it cannot be verified
296: locally.
297: 
298: \paragraph{Our result.} 
299: In Section~\ref{s:polydelay} we present the first deterministic,
300: distributed scheduling protocol with a polynomial delay bound.  It
301: guarantees that {\em all} packets reach their destination within
302: $poly(w,1/(1-r),m)$ steps of their injection.  We start by presenting
303: a randomized protocol in which the ``success condition'' can be
304: verified at the source nodes independently.  This allows us to
305: derandomize the protocol in a distributed fashion.
306: 
307: \subsection{The Effects of Combining Source Routing with Scheduling}
308: 
309: In the final part of the paper we consider the following question: Is
310: it possible for unstable scheduling protocols to become stable if
311: paths can be chosen by a routing algorithm as opposed to being
312: dictated by the adversary? We first present a network and a sequence
313: of packet injections such that regardless of how the routes for these
314: packets are chosen, many greedy protocols (including FIFO) remain
315: unstable. Thus, we cannot hope to achieve stability using FIFO even if
316: we have the freedom to choose routes. However, we also present an
317: example in which the ability to select the routes does make a
318: difference. We show that in a ``ring'' with multiple parallel links,
319: if we are allowed to choose the routes intelligently then we can
320: ensure that all greedy scheduling protocols are stable.  However, if
321: the adversary dictates the routes then many scheduling protocols
322: (including FIFO) are unstable.
323: 
324: \subsection{Other Related Work}
325: %{\sc Need something about Plotkin-Shmoys-Tardos and Lisa Fleischer.
326: %  Do we need anything about the disjoint paths problem? -- I don't
327: %  think we need anything about PST/Fleishcer here but I may not
328: %  understand the context -- A.}
329: 
330: Much traditional work on routing focuses on the problem of routing
331: {\em flows} online, e.g.~\cite{AwerbuchAP93,AwerbuchAPW94}.  Each flow
332: requests a bandwidth from a source to a destination and we must choose
333: a path for each accepted flow without violating any link capacity.
334: The goal is to maximize the on-line acceptance rate.  However, this
335: work does not consider packet-level behavior.
336: 
337: The problem of choosing routes for a fixed set of packets was studied
338: by Srinivasan and Teo~\cite{SrinivasanT97} and Bertsimas and
339: Gamarnik~\cite{BertsimasG99}.  For example, \cite{SrinivasanT97}
340: presents an algorithm that minimizes the congestion and dilation of
341: the routes up to a constant factor.  This result complemented the
342: paper of Leighton, Maggs and Rao~\cite{LeightonMR88} which showed that
343: packets could be scheduled along a set of paths in time
344: $O($congestion$+$dilation$)$.
345: 
346: %The Adversarial Queueing Model was introduced by Borodin et al.\ in
347: %\cite{BorodinKRSW96}.  Later papers that analyzed the performance of
348: %scheduling algorithms in this model include
349: %\cite{AndrewsAFKLL96,Gamarnik98,Diaz01}.  For the related {\em
350: %session-based} model in which packets are injected into a set of paths
351: %that do not change over time, scheduling algorithms were analyzed in
352: %\cite{RabaniT96,OstrovskyR97,AndrewsFHLZ97,AndrewsZ99,Andrews00,AndrewsZ00}.
353: 
354: \section{Source Routing for Stability}
355: \label{s:basic-routing}
356: 
357: %In this section we present an algorithm that chooses a path for each
358: %packet.  We say that a set of packet paths is $(w,r)$-{\em admissible} if,
359: %for any time window of length $T\ge w$ and any link $e$, the number of
360: %paths that pass through $e$ and correspond to packets injected during
361: %the window is at most $Tr$.  We say that a set of packet injections is
362: %$(w,r)$-admissible if is possible to choose a set of paths for them that is
363: %$(w,r)$-admissible.
364: 
365: For convenience we use the following weaker notion of admissibility in
366: this section. We say that a set of packet paths is {\em weakly}
367: $(w,r)$-{\em admissible} if we can partition time into windows of
368: length $w$ such that for each window {\em in the partition} and each
369: link $e$, the number of paths that pass through $e$ and correspond to
370: packets injected during the window is at most $wr$.  However, this
371: distinction is not important due to Lemma~\ref{l:admissible}.
372: Moreover, all of the delay bounds that have been derived in the past
373: for the Adversarial Queueing Model apply to weakly $(w,r)$-admissible
374: paths.
375: \begin{lemma}
376: \label{l:admissible}
377: If a set of paths is $(w,r)$-admissible then it is also weakly
378: $(w,r)$-admissible.  Conversely, weak $(w,r)$-admissibility implies
379: $(w',r')$-admissibility for some $w'\ge w$ and $r'\in [r,1)$.
380: \end{lemma}
381: \begin{proof}
382: Suppose the injections are weakly $(w,r)$-admissible.  We show that they are
383:  $(w',r')$-admissible for $r'=(1+r)/2$ and $w'=4wr/(1-r)$.
384: For any $T\ge w'$, let $T$ be in the range of $[nw, (n+1)w)$ where $n$
385: is an integer at least $4r/(1-r)$. Due to weak admissibility and our choices
386: of $n$, $T$ and $r'$, the number of injections during $T$ steps for
387: any link $e$ is at most,
388: $$
389: (n+2)rw \le nw (1+r)/2 \le Tr'.
390: $$
391: The other direction is trivial.
392: \end{proof}
393: 
394: We assume an adversary that injects weakly $(w,r)$-admissible packets
395: into the network\footnote{In fact, as will be seen later, we only need
396: to assume that the adversary can choose {\em fractional} paths that
397: are weakly $(w,r)$-admissible.}.  Our aim is to choose weakly
398: $(W,R)$-admissible routes for these packets where $R\in (r,1)$ is of
399: our choice and $W\ge w$ is determined by the choice of $R$.
400: 
401: \subsection{The Basic Routing Protocol}
402: We first assume that control information is communicated
403: instantaneously. Whenever a source node chooses a route for a packet,
404: this information is instantaneously transmitted to all the links on
405: the route.  Whenever the congestion on a link changes, this fact is
406: instantaneously transmitted to all the source nodes. Later on we relax
407: these assumptions. As mentioned in the Introduction, the algorithm is
408: based on the Garg-K\"onemann offline approximation algorithm for
409: fractional maximum concurrent flow.  However, in our setting we can
410: convert it into an {\em online} algorithm that chooses {\em integral}
411: paths for the packets.  
412: 
413: \begin{boxfig}{
414: \begin{algtab2}
415: \setcounter{algline}{1}
416: \begin{tabbing}
417: 123\=6789\=9012\=12345\=67890\=12345\=67890\=12345\= \kill
418: Find routes.\nl
419: \> Initialize $c(e) = \delta$, $\forall e$\nl
420: \> for the $i$th window, $i=1,\dots,t$ \nl
421: \>\> for each packet injected during $i$th window \nl
422: \>\>\> $p \leftarrow$ least congested route under $c$ (i.e.\ shortest
423: path with respect to $c$)\nl
424: \>\>\> $c(e)\leftarrow c(e)(1+\mu/w)$, $\forall e\in p$ 
425: \end{tabbing}
426: \end{algtab2}
427: }
428: \caption{Procedure to find routes for packets injected during one phase.}
429: \label{f:ell}
430: \end{boxfig}
431: 
432: \paragraph{Protocol.}
433: We route every packet injected along the path whose total congestion
434: is the smallest under the current congestion function $c(\cdot)$,
435: i.e.\ we route along shortest paths with respect to $c(\cdot)$.
436: Initially, the congestion along every link is set to $\delta$ where
437: $\delta$ is defined in~(\ref{eq:delta}).  
438: For every link $e$ along the chosen route,
439: its congestion $c(e)$ is updated to $c(e) (1+\mu/w)$ where $\mu$
440: is defined in~(\ref{eq:mu1}).  We reset the congestion of every link to
441: its initial value of $\delta$ at the beginning of each {\em phase}.  A
442: phase terminates in $t$ windows of $w$ steps, where $t$ is an integer
443: defined in~(\ref{eq:t}).  Figure~\ref{f:ell} illustrates the procedure
444: for one phase.
445: The values of $\mu$, $\delta$ and $t$ are defined as follows.  Let $m$
446: be the number of links in the network. For any $R\in (r,1)$ of our
447: choice, let
448: \begin{eqnarray}
449: \mu &=& 1-\left({r\over R}\right)^{1/3} \label{eq:mu1} \\
450: \delta &=& \left({1-r\mu}\over m\right)^{1/r\mu} \label{eq:delta}\\
451: t & = & \left\lfloor{{1-r\mu}\over {r\mu}}\ln {{1-r\mu}\over{m\delta}}
452: \right\rfloor + 1 \label{eq:t}
453: \end{eqnarray}
454: Our objective is to show,
455: \begin{theorem}
456: \label{t:congestion}
457: For all packets injected during one phase, at most $tw R$ of their
458: routes chosen by our procedure go through the same link.  In other
459: words these routes are weakly $(tw,R)$-admissible.
460: \end{theorem}
461: \paragraph{Analysis.}
462: To prove Theorem~\ref{t:congestion} let us examine an integer program
463: formulation for routing the set of packets injected during a
464: window of $w$ time steps.  Let $P_j$ be the set of possible routes for
465: the $j$th packet, and let variable $x_j(p)\in\{0,1\}$ indicate whether
466: or not route $p \in P_j$ is chosen for packet $j$.  The following
467: linear relaxation of the integer program (LP) has an optimal solution
468: $\lambda \ge 1$ since the injections are $(w,r)$-admissible. We
469: present both the primal and the dual.
470: $$
471: \begin{array}{rcl}
472:      & \mbox{Primal} & \\
473:      & \max \lambda & \\ 
474: s.t. & & \\
475:      & \sum_{p\in P_j} x_j(p) \ge \lambda  & \forall j \\
476:      & \sum_j \sum_{p: e\in p, p\in P_j} x_j(p) \le rw & \forall e \\
477:      & x_j(p) \ge 0 & \forall j, \forall p\in P_j 
478: \end{array}
479: $$
480: $$
481: \begin{array}{rcl}
482:      & \mbox{Dual} & \\
483:      & \min \sum_e rw\cdot c(e) &   \\
484: s.t. & & \\
485:      & \sum_{e\in p} c(e) \ge z(j)  &  \forall j, \forall p\in P_j \\
486:      & \sum_j z(j) \ge 1 & \\
487:      & c(e) \ge 0 & \forall e\\
488:      & z(j) \ge 0 & \forall j
489: \end{array}
490: $$
491: For any non-negative congestion function $c(\cdot)$, let $D = \sum_e
492: c(e)$ be the total congestion of all links.  For packet
493: $j$ let $q_j$ be the least congested
494: path in terms of $c$.  We use $\alpha=\sum_j \sum_{e\in q_j}
495: c(e)$ to represent the total congestion of these least congested
496: paths. It can be shown that the dual is equivalent to,
497: $$
498: \min_c \mbox{  }rw \cdot D/ \alpha.
499: $$
500: The congestion found at the end of window $i$ by our protocol (see
501: Figure~\ref{f:ell}) defines a valid solution to this reformulated dual
502: for window $i$.  We exploit this connection to prove
503: Theorem~\ref{t:congestion}.  The key here is to bound the total link
504: congestion since the link congestion increases only when a path goes
505: through it.  In particular, the following three lemmas show that the
506: total link congestion is no more than 1 at the end of a phase.  Let
507: $c_i(e)$, $D_i$ and $\alpha_i$ represent the values of $c(e)$, $D$ and
508: $\alpha$ at the end of the $i$th window.
509: 
510: \begin{lemma}
511: \label{l:duality}
512: $D_i/\alpha_i\ge 1/rw$ for $1\le i\le t$.
513: \end{lemma}
514: \begin{proof}
515: Since the injections are $(w,r)$-admissible, the primal LP for window
516: $i$ has $\max\lambda \ge 1$.  Since the congestion $c_i$ found by our
517: protocol defines a dual solution, our lemma follows from duality.
518: \end{proof}
519: \begin{lemma}
520: \label{l:di}
521: $D_i \le {D_{i-1}\over {1-r\mu}}$.
522: \end{lemma}
523: \begin{proof}
524: It suffices to show $D_i\le D_{i-1} + \alpha_i \cdot\mu /w$ since
525: $D_i/\alpha_i\ge 1/rw$ by Lemma~\ref{l:duality}.  Let $c_{ij}$ be the
526: congestion function after routing the $j$th packet injected during the
527: $i$th window and let $D_{ij}$ be defined in terms of $c_{ij}$.
528: Suppose path $p_j$ is chosen for the $j$th packet injected during the
529: $i$th window.  
530: By definition we have,
531: \begin{eqnarray*}
532: D_{ij} &=& \sum_e c_{ij}(e) \\
533:        &=& \sum_{e\notin p_j} c_{i,j-1}(e) + 
534:              \sum_{e\in p_j} c_{i,j-1}(e) (1+\mu/w) \\
535:        &=& D_{i,j-1} + \sum_{e\in p_j} c_{i,j-1}(e) \cdot\mu /w.
536: \end{eqnarray*}
537: Now we repeatedly apply the recurrence above.  We also observe that
538: the congestion function $c$ only increases.  Hence, if $q_j$ is the
539: least congested path for $j$ under $c_i$ then $\sum_{e\in p_j}
540: c_{i,j-1}(e)$ is necessarily no more than $\sum_{e\in q_j}
541: c_{i}(e)$.  
542: (We emphasize that $p_j$ and $q_j$ may be two different
543: paths.  The path $p_j$ is least congested with respect to
544: $c_{i,j-1}$ and $q_j$ is least congested with respect to $c_i$.) 
545: We have,
546: \begin{eqnarray*}
547: D_i &=& D_{i-1} + \sum_j \sum_{e\in p_j} c_{i,j-1}(e) \mu/w \\
548: &\le& D_{i-1} + \alpha_i\cdot \mu/w.
549: \end{eqnarray*}
550: \end{proof}
551: 
552: \begin{lemma}
553: $D_t \le 1$.
554: \end{lemma}
555: \begin{proof}
556: By definition $D_0 = m\delta$ where $m$ is the number of links in
557: the network.  By applying Lemma~\ref{l:di}, we have,
558: \begin{eqnarray*}
559: D_t &\le& {{m\delta}\over {(1-r\mu)^t}} \\
560:     &=& {m\delta\over {1-r\mu}}\left(1+{r\mu\over{1-r\mu}}\right)^{t-1} \\
561:     &\le&  {m\delta\over {1-r\mu}} e^{r\mu(t-1)\over {1-r\mu}} \\
562:     &\le& 1.
563: \end{eqnarray*}
564: The second inequality follows from $1+x \le e^x$ for $x\ge 0$.  The
565: last inequality follows from the definition of $t$ in~(\ref{eq:t}).
566: \end{proof}
567: 
568: We are now ready to prove Theorem~\ref{t:congestion}.
569: 
570: \begin{proofof}{ \bf Theorem~\ref{t:congestion}:}
571: Consider any link $e$.  For every $w$ paths routed though $e$, the
572: congestion of $e$ is increased by a factor at least $1+\mu$.  Initially,
573: $c_0(e) = \delta$.  Since $D_t\le 1$, $c_t(e) \le 1$. Hence,
574: the total number of paths that are routed through $e$ in a phase
575: is at most $w\log_{1+\mu}{1/\delta}$.
576: It suffices to show that this quantity is no more than $wt R$.
577: \begin{eqnarray*}
578: {{w\log_{1+\mu}{1/\delta}} \over {wt R}} & \le &
579: {\ln {1/\delta} \over \ln (1+\mu)} \cdot {r\mu \over{1-r\mu}} 
580: \cdot {1\over \ln {{1-r\mu}\over{m\delta}}} \cdot {1\over R} \\
581: & = & {r\over R}\cdot {\mu \over {\ln(1+\mu)(1-r\mu)^2}} \\
582: & \le & {r\over R}\cdot (1-\mu)^{-3} \\
583: & = & 1.
584: \end{eqnarray*}
585: 
586: The first inequality and the first equality follow from the
587: definitions of $t$ and $\delta$ respectively.  The second inequality
588: follows from the fact that $r<1$ and $\ln (1+\mu) \ge \mu -\mu^2/2$.
589: The last equality follows from the definition of $\mu$. Our proof is
590: complete.
591: \end{proofof}
592: 
593: \begin{boxfig}{
594: \begin{algtab2}
595: \setcounter{algline}{1}
596: \begin{tabbing}
597: 123\=6789\=9012\=12345\=67890\=12345\=67890\=12345\= \kill
598: Find routes.\nl
599: \> Initialize $c(e) = \delta$, $\forall e$\nl
600: \> for $i$th window, $i=1,\dots,t$ \nl
601: \>\> for each packet injected during $i$th window \nl
602: \>\>\> $p \leftarrow$ least congested route under $c$ \nl
603: \>\> $c(e)\leftarrow c(e)(1+N_i(e)\cdot \mu/w)$. 
604: \end{tabbing}
605: \end{algtab2}
606: }
607: \caption{Procedure to find routes for packets injected during one phase with
608: fewer updates.}
609: \label{f:newell}
610: \end{boxfig}
611: 
612: \subsection{Routing with Less Frequent Updates}
613: \label{s:batch}
614: In this section we show that Theorem~\ref{t:congestion} still holds
615: even if the congestion function $c$ is updated less frequently.  In
616: particular, we only update the congestion at the end of each window,
617: not for each packet injection.  Hence the source nodes only need to
618: communicate with the links at the end of each window.  For this new
619: protocol we redefine $\mu$ to be
620: \begin{eqnarray}
621: \label{eq:mu2}
622: \frac{1}{m}\left(1-\left({r\over R}\right)^{1/3}\right). 
623: \end{eqnarray}
624: Suppose $N_i(e)$ packets are routed through link $e$ during the $i$th
625: window, then we update $c(e)$ to $c(e) (1+N_i(e) \cdot\mu /w)$.  See
626: Figure~\ref{f:newell}.
627: 
628: We prove that Theorem~\ref{t:congestion} remains true.  We first show
629: that Lemma~\ref{l:di} still holds.  As before, we show $D_i\le D_{i-1}
630: + \alpha_i \cdot\mu /w$.  For any packet $j$ injected during the $i$th
631: window, let $p_j$ be the path chosen for $j$.
632: \begin{eqnarray*}
633: D_{i} & = & \sum_e c_{i}(e) \\
634:       & = & \sum_e c_{i-1}(e) (1+N_i(e)\cdot\mu/w) \\
635:       & = & D_{i-1} + \sum_e c_{i-1}(e) N_i(e)\cdot\mu/w \\
636:       & = & D_{i-1} + \sum_j\sum_{e\in p_j} c_{i-1}(e) \cdot \mu/w \\
637:       & \le & D_{i-1} + \alpha_i \cdot \mu /w
638: \end{eqnarray*}
639: Hence $D_t\le 1$. Now, for every $mw$ paths routed through $e$, the
640: congestion on $e$ is increased by a factor at least $1+m\mu$.  Therefore
641: the congestion on any link at the end of a phase is at most,
642: \begin{eqnarray*}
643: {{mw\log_{1+m\mu}{1/\delta}} \over {wt R}} & \le &
644: {\ln {1/\delta} \over \ln (1+m\mu)} \cdot {r\mu \over{1-r\mu}} 
645: \cdot {1\over \ln {{1-r\mu}\over{m\delta}}} \cdot {1\over R} \\
646: & = & {r\over R}\cdot {m\mu \over {\ln(1+m\mu)(1-r\mu)^2}} \\
647: & \le & {r\over R}\cdot (1-m\mu)^{-3} \\
648: & = & 1,
649: \end{eqnarray*}
650: with the revised definition of $\mu$ in~(\ref{eq:mu2}).
651: 
652: \subsection{Implementation Using In-band Signaling}
653: 
654: In the previous sections we assumed that sources can communicate with the
655: links on their chosen routes via instantaneous setup messages.  In
656: turn, we also assumed that the links can instantaneously broadcast
657: their congestion to the sources.  In this section, we first
658: extend our result in Section~\ref{s:batch} to the case where each of these
659: communications takes $\tau$ time steps.  We then give an upper bound
660: on $\tau$ for which the communication may be carried out in-band using
661: packets transmitted through the network.
662: 
663: Assume without loss of generality that $w>2\tau$ (since admissibility
664: for a small window implies admissibility for a large window).  Each
665: source only updates the link congestion at the end of every window.
666: Since the congestion does not change during a window, all the packets
667: for a given source-destination pair $(s,t)$ are routed along the {\em
668: same path} $p$.  At the end of window $[w(i-1),wi)$ a {\em control
669: packet} is sent along path $p$ that contains the number of
670: $(s,t)$-packets injected during window $[w(i-1),wi)$.  This packet
671: takes time $\tau$ to traverse the path.  Hence, at time $wi+\tau$,
672: each link can update its congestion due to all the packets injected
673: during $[w(i-1),wi)$.  Then by time $wi+2\tau\le w(i+1)$ this new
674: congestion can be distributed via control packets to all the sources.
675: 
676: Note that at the end of window $[wi,w(i+1))$, every link has updated
677: its congestion according to the injections in window
678: $[w(i-1),wi)$. The exact form of this update is as follows.  Let
679: $N_i(e)$ be the number of packets routed through $e$ that were
680: injected during $[w(i-1),wi)$.  Let $c_i(e)$ be the congestion of $e$
681: at the end of window $[w(i-1),wi)$.  We update $c_i(e)$ by,
682: $$
683: c_{i+1}(e) = c_{i}(e) + c_{i-1}(e)N_i(e)\cdot\mu/w,
684: $$
685: for 
686: \begin{eqnarray}
687: \label{eq:mu3}
688: \mu = \frac{1}{2m}\left(1-\left({r\over R}\right)^{1/3}\right).
689: \end{eqnarray}
690: To show that Theorem~\ref{t:congestion} remains true, we observe,
691: \begin{eqnarray*}
692: D_{i+1} & = & \sum_e c_{i+1}(e) \\
693:       & = & \sum_e c_{i}(e) + c_{i-1}N_i(e)\cdot\mu/w \\
694:       & = & D_{i} + \sum_e c_{i-1}(e) N_i(e)\cdot\mu/w \\
695:       & = & D_{i} + \sum_j\sum_{e\in p_j} c_{i-1}(e) \cdot \mu/w \\
696:       & \le & D_{i} + \alpha_{i,i+1} \cdot \mu /w.
697: \end{eqnarray*} 
698: Here $\alpha_{i,i+1}$ is the sum of the congestion along the paths
699: chosen for packets injected during $[w(i-1),wi)$ with respect to
700: $c_{i+1}(e)$.  This is sufficient to imply $D_t \le 1$. Note also that
701: for every $2mw$ (non-control) packets routed through a link, the
702: congestion function of the link increases by at least a factor
703: $1+2m\mu$. The remainder of the analysis follows through for
704: the revised definition of $\mu$ in~(\ref{eq:mu3}).
705:  
706: To ensure that the transmission time of the control packets is upper
707: bounded, the scheduling protocol always gives priority to control
708: packets.  Observe that a total of at most $n^2 + mn$ control packets
709: can be sent out during one window, where $m$ is the number of links
710: and $n$ is the number of nodes in the network.  If we let $\tau = n^3
711: + mn^2$, the transmission of a control packet takes at most $\tau$
712: time steps.  Without loss of generality we assume that $w\ge 2\tau$
713: and $w(1-r)/2 \ge n^2 + mn$.  The latter condition ensures that
714: together with the control packets the injections are
715: $(w,(1+r)/2)$-admissible.
716: 
717: 
718: \section{A Scheduling Protocol with Polynomial Delay Bounds}
719: \label{s:polydelay}
720: 
721: %{\sc compare with delay bound of aiello}
722: In this section we assume that $(w,r)$-admissible paths are known
723: (either given by the adversary or computed as in
724: Section~\ref{s:basic-routing}).  Hence, in order to achieve network
725: stability we can use any of the scheduling protocols that are known to
726: be stable for Adversarial Queueing.  However, the best previous delay
727: bounds known for distributed, deterministic protocols are exponential
728: in the maximum packet path length.  In this section we present a
729: deterministic, distributed scheduling protocol with a polynomial delay
730: bound.
731: 
732: In \cite{AndrewsAFKLL96} a randomized protocol was presented for which
733: the delay bound is 
734: %$O(\frac{d_{\max}}{\ve}\log m)$ 
735: $O(\frac{d_{\max}}{\ve}\log m)$
736: with high probability,
737: %{\sc Recheck this!!!}
738: where $\ve = 1-r$ and $d_{\max}$ is the length of the longest simple
739: path in the network.  This protocol is hard to derandomize because its
740: success depends on a condition that can only be checked globally.  In
741: this section we first present a new randomized protocol and then show
742: how to derandomize it in a distributed manner. The key idea of this
743: protocol is that the conditions that determine the ``success'' of the
744: protocol only depend on packets that share the same initial link.
745: This allows derandomization in a distributed manner.
746: 
747: 
748: Our new randomized protocol is defined in terms of two parameters $M$
749: and $T$ which are defined below.  We partition time into intervals of
750: length $M$, which we call $M$-{\em intervals}.  We save up all packets
751: that are injected into the network during each $M$-interval and then
752: schedule these packets during the next $M$-interval.  We give each
753: packet a deadline for every link on its path. Our goal is to make sure
754: that no more than $T$ packets have a deadline for link $e$ during any
755: time interval of length $T$.  If this condition holds then we are able
756: to bound the end-to-end delay experienced by a packet.
757: 
758: 
759: \paragraph{Randomized protocol.} 
760: For a packet $p$ injected during an $M$-interval $[(\gamma-1)M,\gamma
761: M)$ for an integral $\gamma$, let us suppose its path is
762: $e_0,e_1,\ldots,e_{d_p}$.  We define a deadline $\tau_k^p$ for $p$ at
763: link $e_k$ as follows.  We choose the initial deadline $\tau^p_0$
764: uniformly at random from $[\gamma M+T,(\gamma+1)M-d_{\max}T)$. We then
765: define the remaining deadlines inductively by
766: $\tau_{k+1}^p=\tau_k^p+T$.  Our protocol always gives priority to the
767: packet with the smallest deadline at each link.
768: We define $M$ and $T$ such that,
769: \begin{eqnarray}
770: T &=& \frac{36m}{\ve^3}\log (2Mm^2) \label{eq:T},\\
771: M &\ge& \max\left\{\frac{1-\ve/2}{\ve/6}(d_{\max}+1)T, w\right\}
772: \label{eq:M}.
773: \end{eqnarray}
774: These properties are satisfied for,
775: $$
776: M=O\left(\frac{d_{\max}m}{\ve^4} \log {\frac{m}{\ve}} + w\right).
777: $$
778: When a packet meets its deadlines, it reaches its destination
779: within $2M$ steps. 
780: 
781: \paragraph{Analysis.}
782: Our objective is to show that all packets injected during a given
783: $M$-interval meet all their deadlines with a constant probability.
784: Lemma~\ref{l:undercongested} gives a sufficient condition for all
785: deadlines to be met.  For any packet $p$ and link $e$ let
786: $X^{p,e}_{[t,t+T)}=1$ if $e$ is the $k$th link on packet $p$'s path
787: and $\tau^p_k$ lies in the time interval $[t,t+T)$.  Let
788: $X^{p,e}_{[t,t+T)}=0$ otherwise.
789: \begin{lemma}
790: \label{l:undercongested}
791: If
792: $
793: \sum_p X^{p,e}_{[t,t+T)} \le T
794: $
795: for all $t$ and all links $e$, then all packets meet all their
796: deadlines.
797: \end{lemma}
798: \begin{proof}
799: Suppose not. Let $p$ be a packet that misses its $k$th deadline
800: $\tau_k^p$ and suppose that no deadline earlier than $\tau_k^p$ is
801: missed.  Then $p$ has arrived at its $k$th link $e_k$ by time
802: $\tau_k^p-T$. (This is true regardless of whether $e_k$ is the initial
803: link of $p$ or not.)  By our assumption that $\tau_k^p$ is the first
804: deadline that is missed, all the packets with deadlines for $e_k$ that
805: are earlier than $\tau_k^p-T+1$ meet those deadlines.  Therefore, the
806: only packets that block packet $p$ in the interval
807: $[\tau^p_k-T+1,\tau^p_k]$ have deadlines in the interval
808: $[\tau^p_k-T+1,\tau^p_k]$.  By the assumption in the statement of
809: the lemma there are at most $T-1$ such packets (excluding $p$).
810: Therefore packet $p$ is served by link $e_k$ at time $\tau^p_k$ or
811: earlier. This is a contradiction.
812: \end{proof}
813: 
814: Given Lemma~\ref{l:undercongested} we show,
815: \begin{lemma}
816: \label{l:whp}
817: Consider packets injected during an $M$-interval, $[(\gamma-1)M,\gamma
818: M)$.  The number of deadlines from these packets on any link $e$
819: during any interval $[t,t+T)$ is at most $T$ with a constant
820: probability.
821: \end{lemma}
822: \begin{proof}
823: We use a Chernoff bound to prove the number of deadlines is small.
824: Let $S_{e_0,e}^{\gamma}$ be the set of packets
825: injected into the network during the interval $[(\gamma-1)M,\gamma M)$
826: that have $e_0$ as their initial link and that have link $e$ on their
827: path.  The expected number of deadlines is,
828: $$
829: E\left[\sum_{p\in S_{e_0,e}^\gamma} X^{p,e}_{[t,t+T)}\right] \le 
830: {|S^\gamma_{e_0,e}|\over {M-(d_{\max}+1)T}}T.
831: $$
832: When $|S^\gamma_{e_0,e}|$ is large, the expectation is large and the
833: argument is straightforward. However, for small $|S^\gamma_{e_0,e}|$
834: a direct application of the Chernoff bound may not suffice.  To rectify
835: this, let us define a new quantity,
836: $$
837: \beta^\gamma_{e_0,e} = 
838: {M\over {M-(d_{\max}+1)T}}\max\{ |S^\gamma_{e_0,e}|/M, \ve/3m\}.
839: $$
840: The quantity $\beta$ has the following properties. 
841: \begin{enumerate}
842: \item
843: $\beta^\gamma_{e_0,e} \ge \ve/3m$;
844: \item 
845: $\sum_{e_0}\beta^\gamma_{e_0,e} \le 
846: \frac{M}{M-(d_{\max}+1)T}((1-\ve)+m\ve/3m) 
847: \le \frac{1-\ve/2}{1-2\ve/3}(1-2\ve/3) \le 1-\ve/2.
848: $
849: \end{enumerate}
850: The second property follows from the requirement of $M$
851: in~(\ref{eq:M}) and the admissibility of the paths.  
852: Our lemma follows if we show that the following holds
853: with constant probability,
854: {\small
855: \begin{eqnarray}
856: \label{eq:beta}
857: \sum_{p\in S_{e_0,e}^\gamma}X^{p,e}_{[t,t+T)} 
858: \le (1+\ve/2)\beta^\gamma_{e_0,e}T,
859: \forall e_0, e \mbox{ and } \forall [t,t+T).
860: \end{eqnarray}
861: }
862: %\vspace{-.7cm}
863: %\begin{eqnarray*}
864: %\hspace{1cm} \forall e_0, e \mbox{ and } \forall [t,t+T).
865: %\end{eqnarray*}
866: If the above holds, the number of deadlines on link
867: $e$ in the interval $[t,t+T)$ is at most
868: $(1+\ve/2)\sum_{e_0}\beta^\gamma_{e_0,e}T$, which is less than $T$ due
869: to the second property of $\beta$.  We have,
870: \begin{eqnarray}
871: Pr\left[\sum_{p\in S_{e_0,e}^\gamma }X^{p,e}_{[t,t+T)} > 
872: (1+\ve/2)\beta^\gamma_{e_0,e}T\right] \nonumber
873: &\le & \frac{\prod_pE[(1+\ve/2)^{X^{p,e}_{[t,t+T)}}]} 
874: {(1+\ve/2)^{(1+\ve/2)\beta^\gamma_{e_0,e}T}} \label{eq:chernoff} \\
875: &\le& \exp(-\ve^2\beta^\gamma_{e_0,e}T/12) \nonumber \\
876: &\le& {1\over{2Mm^2}}.\label{eq:prob}
877: \end{eqnarray}
878: The first inequality is due to a Chernoff bound.  The second
879: inequality holds since $E[\sum_{p\in S_{e_0,e}^\gamma
880: }X^{p,e}_{[t,t+T)}]$ $\le \beta^\gamma_{e_0,e}T$ and $1+x \le e^x$ for
881: $x \ge 0$. The third inequality follows from the definition of $T$
882: in~(\ref{eq:T}) and the fact that $\beta^\gamma_{e_0,e}\ge \ve/3m$.
883: By taking a union bound over all links $e_0$, $e$ and all intervals
884: $[t,t+T) \subseteq [\gamma M,(\gamma+1)M)$, we have that the number of
885: deadlines from all packets on $e$ during $[t,t+T)$ is at most $T$ with
886: probability at least $1/2$.
887: \end{proof}
888: 
889: 
890: \paragraph{Remarks.}
891: To prove Lemma~\ref{l:whp} a condition weaker than~(\ref{eq:beta})
892: would be sufficient.  It would suffice to show that the number of
893: deadlines on any $e$ during any $[t,t+T)$ is at most
894: $(1+\ve/2)\sum_{e_0}\beta^\gamma_{e_0,e}T$.  Indeed, this would even
895: allow $T$ and $M$ to be a factor of $m$ smaller, as in
896: \cite{AndrewsAFKLL96}.  However, such a
897: weaker condition only allows derandomization in a centralized manner.
898: 
899: We emphasize that the condition~(\ref{eq:beta}) depends only on sets
900: of packets that are injected into {\em one particular} initial link.
901: Therefore we can choose the deadlines for a packet simply by
902: considering the other packets that are injected at the same initial
903: link.  Hence, we can carry out a derandomization independently at each
904: initial link and obtain a {\em distributed}, deterministic protocol.  This
905: is in contrast to the randomized protocol of
906: \cite{AndrewsAFKLL96} in which the success condition depends on
907: packets that are injected across all initial links in the network.
908: 
909: \paragraph{Derandomization.}
910: We use the method of conditional expectations to derandomize the
911: protocol for each $M$-interval.  (See e.g.~\cite{Raghavan88}.)
912: %We give the details in Appendix~\ref{a:poly}.
913: In summary,
914: \begin{theorem}
915: \label{t:derandomization}
916: Our derandomized protocol is distributed and guarantees a delay bound
917: of $2M=poly(m,w,1/\ve)$ for every packet.
918: \end{theorem}
919: \begin{proof}
920: Let
921: $S_{e_0,e}^{\gamma}=\{ p_0,p_1,\ldots,p_{\ell}\}$.  For $i\le \ell$,
922: let $g(\delta_0,\delta_1,\ldots,\delta_i)$ be equal to
923: {\footnotesize
924: \begin{eqnarray*}
925: %g(\delta_0,\delta_1,\ldots,\delta_i) = \hspace{6.7cm} \\
926: \sum_{e,t}Pr\left[\sum_{p\in S_{e_0,e}^{\gamma}} X^{p,e}_{[t,t+T)} 
927: > (1+\ve/2)\beta^\gamma_{e_0,e}T |
928: \tau^{p_0}_0=\delta_0, \ldots, \tau^{p_i}_0=\delta_i\right],
929: \end{eqnarray*}
930: }where $t$ is summed over the range $[\gamma M, (\gamma+1)M-T)$.  By a
931: calculation similar to the Chernoff calculation
932: of~(\ref{eq:chernoff}), the value of $g(\cdot,\ldots,\cdot)$ is upper
933: bounded by the following function $h$,
934: \begin{eqnarray*}
935: h(\delta_0,\delta_1,\ldots,\delta_i) 
936: & = &\sum_{e,t}\frac{\prod_{p} \exp(\frac{\ve}{2}
937: E[X^{p,e}_{[t,t+T)} |
938: \tau^{p_0}_0=\delta_0,\ldots,\tau^{p_i}_0=\delta_i])}
939: {(1+\ve/2)^{(1+\ve/2)\beta^\gamma_{e_0,e}T}}.
940: \end{eqnarray*}
941: 
942: For fixed $\delta_0,\ldots,\delta_{i-1}$, the definition of
943: conditional expectation implies that there exists
944: an initial deadline $\delta_i$ for the packet $p_i$ such that
945: $h(\delta_0,\delta_1,\ldots,\delta_{i-1})\ge
946: h(\delta_0,\delta_1,\ldots,\delta_{i-1},\delta_i)$.  If we always
947: choose the initial deadline so that this inequality is satisfied
948: then,
949: \begin{eqnarray*}
950: g(\delta_0,\delta_1,\ldots,\delta_{\ell}) &\le&
951: h(\delta_0,\delta_1,\ldots,\delta_{\ell}))\\
952: &\le& h(\emptyset) \\
953: &\le& \exp(-\ve^2\beta^\gamma_{e_0,e}T/12),
954: \end{eqnarray*}
955: The third inequality follows from~(\ref{eq:prob}).  We have
956: chosen the parameters $M$ and $T$ so that 
957: $\exp(-\ve^2\beta^\gamma_{e_0,e}T/12)$ is less
958: than $1$.  In addition, since
959: $g(\delta_0,\delta_1,\ldots,\delta_{\ell})$ involves no randomness
960: every term of $g$ is either $0$ or $1$.  The above inequalities
961: imply that $g(\delta_0,\delta_1,\ldots,\delta_{\ell})$ is less than $1$ and so
962: condition~(\ref{eq:beta}) fails with probability zero.  Hence, with
963: probability one all deadlines are met and all packets reach their
964: destinations in time $2M$.
965: 
966: It remains to show that we can calculate
967: $h(\delta_0,\ldots,\delta_i)$.  If $j\le i$ then,
968: $$
969: E[X^{p_j,e}_{[t,t+T)} |
970: \tau^{p_0}_0=\delta_0,
971: \ldots,
972: \tau^{p_i}_0=\delta_i] 
973: $$
974: is equal to $0$ or $1$ depending on whether or not the initial
975: deadline $\delta_j$ causes packet $p_j$ to have a deadline for link
976: $e$ during $[t,t+T)$. If $j>i$ then,
977: $$
978: E[X^{p_j,e}_{[t,t+T)} |
979: \tau^{p_0}_0=\delta_0,
980: \ldots,
981: \tau^{p_i}_0=\delta_i] =
982: E[X^{p_j,e}_{[t,t+T)}],
983: $$
984: which is equal to the probability, over all possible choices of the
985: initial deadline, that packet $p_j$ has a deadline for link $e$ during
986: the interval $[t,t+T)$.  (Recall that the initial deadline has at most $M$
987: choices and all subsequent deadlines are chosen deterministically.)
988: This probability is solely dependent on whether or not the path for
989: packet $p_j$ passes through link $e$.  Hence, for fixed
990: $\delta_0,\ldots,\delta_{i-1}$ we can choose the value of $\delta_i$
991: that minimizes $h(\delta_0,\delta_1,\ldots,\delta_{i-1},\delta_i)$.
992: \end{proof}
993: 
994: \begin{figure}
995: \centerline{\input{figure3.pstex_t}}
996: \caption{Network $G$ for which FIFO and NTG are unstable
997: even if we are allowed to choose routes.}
998: \label{f:ring}
999: \end{figure}
1000: \section{Instability in Combined Routing and Scheduling}
1001: 
1002: In \cite{AndrewsAFKLL96} it was shown that if the packet routes are
1003: given by the adversary then the FIFO and Nearest-to-Go (NTG)
1004: scheduling protocols can be unstable even if the packet paths are
1005: admissible.  (FIFO always gives priority to the packet that arrived at
1006: the link earliest.  NTG always gives priority to the packet that has
1007: the smallest number of hops remaining to its destination.)  However,
1008: the examples given in \cite{AndrewsAFKLL96} do not lead to instability
1009: if we are allowed to route packets on paths other than the ones chosen
1010: by the adversary.
1011: 
1012: We therefore have a natural question.  If we are allowed to choose the
1013: routes, can we guarantee that FIFO and NTG are stable? In this section
1014: we show that the answer to this question is negative.  We present
1015: examples in which regardless of how we choose the routes, the FIFO and
1016: NTG scheduling protocols create instability.  
1017: 
1018: %The proof works for both source and adaptive routing
1019: %strategies.
1020: %We use here a slightly weaker kind of adversary, namely
1021: %$r$-adversary, such that in any interval of $s$ contiguous steps, for
1022: %any $s>0$, all the packets injected in the interval can be routed in
1023: %such a way that any given link is in at most $\cel{rI}$ packet routes.
1024: 
1025: \begin{theorem}
1026: There exists a network $G$ such that FIFO creates instability under
1027: some $(w,r)$-admissible injections regardless of how packets are
1028: routed.
1029: \label{thm:unstable}
1030: \end{theorem}
1031: \begin{proof} 
1032: Network $G$ is shown in Figure~\ref{f:ring}.  We break the packet
1033: injections into phases.  We inductively assume that at the beginning
1034: of phase $j$ a set $S$ of $s$ packets with destination $u_0$ is in the
1035: queue of $e_0$.  We show that at the beginning of phase $j+1$ more
1036: than $s$ packets with destination $u_1$ are in the queue of $e_1$.  By
1037: symmetry this process repeats indefinitely and the number of packets
1038: in the network grows without bound.  For the basis of the induction, we
1039: inject a large burst of packets at source node $v_0$ with destination
1040: node $u_0$, which is allowed by a large window $w$.  From now on all
1041: the injections are at rate $r$ with burst size one.  In general the
1042: sequence of injections in phase $j$ is as follows.
1043: \begin{itemize}
1044: \item[(1)] 
1045: For the first $s$ steps, we inject a set $X$ of $rs$ packets at node
1046: $v_0$ with destination $u_1$.  These packets are completely held up at
1047: $e_0$ by the packets in $S$.  We also hold up packets in $S$ at $f_0$
1048: by injecting $rs$ packets at $w_0$ with destination $u_0$.  These
1049: newly injected packets get mixed with those of $S$ into the set $S'$.
1050: At the end of the first $s$ steps, $rs$ packets from $S'$ are at
1051: $f_0$. Note that packets in $X$ will be routed through either $f_0$ or
1052: $f'_0$.
1053:    
1054: \item[(2)] 
1055: For the next $rs$ steps, we inject a set $Y$ of $r^2s$ packets at node
1056: $v_0$ with destination $u_1$. These packets are held up at $e_0$ by
1057: the packets in $X$.  We also inject packets at $w_0$ with destination
1058: $u'_0$ at rate $r$.  These packets delay the packets from $X$ that are
1059: routed through $f'_0$.  Hence, at most $rs/(r+1)$ packets of $X$ cross
1060: $f_0'$. (This only happens if packets in $X$ are routed through
1061: $f'_0$, which is not necessarily the case.) Note that no packet from
1062: $X$ crosses $f_0$ in these steps, since the packets in $S'$ have
1063: priority. Hence, at the end of these $rs$ steps, a set $X'\subseteq X$
1064: of at least $r^2 s/(r+1)$ packets are still at $w_0$.
1065:    
1066: \item[(3)] 
1067: For the next $\ab{X'} + \ab{Y}$ steps the packets in $X'$ and $Y$ move
1068: forward, and merge at $v_1$. Meanwhile, we inject packets at $v_1$
1069: with destination $u_1$ at rate $r$. We end with at least $r(\ab{X'} +
1070: \ab{Y})$ packets at $v_1$ with destination $u_1$. This number is at
1071: least $r^3 s + r^3 s/(r+1)$.  
1072: \end{itemize} 
1073: This ends phase $j$.  For $r\ge 0.9$ we have $r^3+r^3/(r+1) > 1$.  It
1074: is easy to verify that the injections during phase $j$ are admissible.
1075: The inductive step is complete.
1076: \end{proof}
1077: 
1078: Injections similar to the above can be used to prove
1079: the instability of NTG on 
1080: network $G$ at any rate $r>1/\sqrt{2}$.  The induction hypothesis of
1081: phase $j$ now does not require the packets in $S$ to be initially in
1082: the queue of $e_0$, but to cross $e_0$ in the first $s$ steps of the
1083: phase.  Hence, subphase (3) is no longer required. Furthermore, after
1084: subphase (2) both sets $Y$ and $X'$ contain at least $r^2 s$ packets,
1085: since single-link injections have higher priority than the packets in
1086: $X$.  It follows that the system is unstable since $2r^2s>s$. 
1087: 
1088: 
1089: \section{Stability of a Ring with Parallel Links}
1090: \label{s:ring-parallel}
1091: 
1092: In this section we consider source routing on a ring with $c$ parallel
1093: links. Consider a decomposition of the network into $c$ disjoint
1094: single rings.  
1095: We propose 
1096: a deterministic on-line source-routing algorithm that routes
1097: each packet along one of these rings and guarantees that the routing
1098: is admissible. In \cite{AndrewsAFKLL96} it was
1099: shown that the single ring is stable under any {\em greedy} scheduling
1100: policy (i.e.\ one that always schedules a packet whenever packets are
1101: waiting).  Hence, we conclude that the ring with $c$ parallel links is
1102: stable under any greedy scheduling policy if our source-routing
1103: algorithm is used.
1104: 
1105: Note that the 4-ring with 2 parallel links was shown to be unstable
1106: under a greedy protocol such as FIFO when the packet paths are given
1107: by the adversary~\cite{AndrewsAFKLL96}. This shows that freedom of
1108: routing can make a difference in network stability since we have a
1109: network that is unstable under FIFO if the adversary can dictate the
1110: routes but is stable under FIFO if we can choose the routes intelligently.
1111: 
1112: \subsection{Definitions}
1113: \label{a:ring}
1114: 
1115: Consider a ring with $n$ nodes and $c$ parallel directed links from
1116: node $i$ to node $i+1 (\mbox{ mod } n)$.  The parallel links
1117: connecting neighboring nodes are uniquely labeled $1,
1118: \ldots, c$. We denote the cycle of $n$ links labeled $j$ as the $j$th
1119: single ring. Note that, if $j \ne j'$, the $j$th and the $j'$th single
1120: rings are link disjoint.  We assume that the injections are
1121: $(w,r)$-admissible. For convenience we sometimes denote $1-r$ by
1122: $\ve$. We propose a source-routing algorithm that finds weakly
1123: $(W,R)$-admissible paths along these single rings, where,
1124: \begin{eqnarray}
1125: \label{eq-w}
1126: W & = &\left\lceil\frac{3}{r\ve^2}\ln \frac{nc}{\beta}\right\rceil, \\
1127: R & = & 1-\ve^2,
1128: \end{eqnarray}
1129: for some $\beta < 1$.
1130: 
1131: \subsection{Randomized Algorithm}
1132: 
1133: Let us first study the following randomized routing algorithm. Each
1134: time a packet is injected, one of the $c$ single rings is randomly
1135: chosen, uniform and independently, and the packet is routed along
1136: it. 
1137: Since the injections are $(w,r)$-admissible, in any $W$-interval at most
1138: $crW$ packets are injected that must cross the parallel links from any
1139: node $i$ to $i+1 (\mbox{ mod }n)$. Hence, the expected number of
1140: packets routed along any link of the ring is at most $rW$. Using a
1141: Chernoff bound we can upper bound the probability of more than
1142: $(1+\ve)rW = RW$ packets being routed along any link in the
1143: $W$-interval. Let $P=p_0,p_1,\ldots,p_{\ell}$ be the set of packets
1144: injected in a $W$-interval. For each packet $p_j$, let $X_e^{p_j}$ be
1145: the random variable denoting whether $p_j$ is routed along link
1146: $e$. Let $X_e$ be the number of packets routed along link $e$ in the
1147: $W$-interval. From a Chernoff bound we have that,
1148: \begin{eqnarray*}
1149: \label{eq-pr}
1150: Pr[X_e > (1+\ve)rW] 
1151:  & \le & \frac{\prod_{p_j \in P} E[(1+\ve)^{X_e^{p_j}}]}{(1+\ve)^{(1+\ve)rW}}\\
1152:  & \le & [e^\ve / (1+\ve)^{(1+\ve)}]^{rW} \\
1153:  & \le & e^{(\ve - (1+\ve) \ln (1+\ve))rW} \\
1154:  & \le & (e^{-\ve^2/3})^{rW} \\
1155:  & \le & \frac{\beta}{nc}.
1156: \end{eqnarray*}
1157: The last two inequalities follow from the fact that $\ve<1$ and the
1158: definition of $W$ in~(\ref{eq-w}), respectively. We can now bound the
1159: probability of {\em any} link having more than $(1-\ve^2)W$ packets
1160: routed along it. We use $E$ to denote the set of links in the ring.
1161: \begin{eqnarray*}
1162: \label{eq-prmax}
1163: Pr[\max_{e \in E} X_e > (1+\ve)rW] 
1164:           & \le & \sum_{e \in E} Pr[X_e > (1+\ve)rW] \\
1165:           & \le & |E| \frac{\beta}{nc} \\
1166:           & = & \beta
1167: \end{eqnarray*}
1168: Hence, since $\beta < 1$, there is a positive probability of routing
1169: all the packets in such a way that no link has congestion more than
1170: $RW$. By choosing a very small $\beta$ (e.g., $O(1/n)$) we
1171: could show that this randomized algorithm guarantees that the routing
1172: is weakly $(W,R)$-admissible with high
1173: probability. This can be used to show the stability of any greedy
1174: scheduling protocol in a probabilistic sense (i.e., there is a value
1175: $C$ such that the probability of having more than $kC$ packets in the
1176: system at any given time is exponentially small in $k$).
1177: 
1178: However, in the rest of the section we only need $\beta < 1$. We will
1179: derandomize the proposed algorithm, and all we need for this process
1180: to work is to have a feasible routing with the required
1181: properties. This is guaranteed for any $\beta < 1$.
1182: 
1183: \subsection{Off-line Routing}
1184: 
1185: We will now derandomize the above algorithm so that all the packets
1186: are deterministically routed and no link has congestion more than
1187: $(1-\ve^2)W$. To do this, we use the method of conditional
1188: probabilities, as we did in Section~\ref{s:polydelay}. Unfortunately, 
1189: to apply this method directly we need to
1190: know from the beginning the set $P$ of packets to be routed. 
1191: We achieve this as follows.
1192: We divide time into intervals of $W$ steps, and
1193: hold all the packets injected in one $W$-interval until its last
1194: step. Then, all these packets are routed in that last step, when all
1195: of them are known.
1196: 
1197: Let $P=p_0,p_1,\ldots,p_{\ell}$ be the set of packets injected in a
1198: $W$-interval. Let $\gamma_{p_j}$ denote the single ring chosen to
1199: route packet $p_j$.  For $i\le \ell$ let, $$
1200: g(\delta_0,\delta_1,\ldots,\delta_i) = Pr[\max_{e \in E} X_e >
1201: (1+\ve)rW | \gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i].$$
1202: Since $g(\cdot,\ldots,\cdot)$ is difficult to calculate directly, we
1203: define another function $h(\cdot,\ldots,\cdot)$ by,
1204: $$
1205: h(\delta_0,\delta_1,\ldots,\delta_i) = 
1206: \sum_{e \in E} \frac{\prod_{p_j \in P} E[(1+\ve)^{X_e^{p_j}}| 
1207: \gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i]}{(1+\ve)^{(1+\ve)rW}},
1208: $$ which can be easily computed. For this, it is enough so observe
1209: that, when computing $h(\delta_0,\delta_1,\ldots,\delta_i)$, for each
1210: packet $p_j$,
1211: \begin{itemize}
1212: \item
1213: if $j \le i$, then 
1214: \begin{itemize}
1215: \item
1216: if $e$ is in the $\delta_j$th single ring and it is in the
1217: path from the source to the destination of $p_j$, then $E[(1+\ve)^{X_e^{p_j}}| 
1218: \gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i] = 1+\ve$.
1219: \item
1220: Otherwise, $E[(1+\ve)^{X_e^{p_j}}| 
1221: \gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i] = (1+\ve)^0=1$.
1222: \end{itemize}
1223: \item
1224: if $j > i$, then 
1225: \begin{itemize}
1226: \item
1227: if $e$ could be in the
1228: path from the source to the destination of $p_j$, then 
1229: $E[(1+\ve)^{X_e^{p_j}}|\gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i]=(1+\ve)^{1/c}$.
1230: \item
1231: Otherwise, $E[(1+\ve)^{X_e^{p_j}}| 
1232: \gamma_{p_0}=\delta_0,\ldots,\gamma_{p_i}=\delta_i] = (1+\ve)^0=1$.
1233: \end{itemize}
1234: \end{itemize}
1235: 
1236: We have that,
1237: $g(\delta_0,\delta_1,\ldots,\delta_i) \le
1238: h(\delta_0,\delta_1,\ldots,\delta_i)$. Also, for fixed
1239: $\delta_0,\ldots,\delta_{i-1}$, the definition of conditional
1240: expectation implies that the single ring $\delta_i$ can be chosen such
1241: that $h(\delta_0,\delta_1,\ldots,\delta_{i-1})\ge
1242: h(\delta_0,\delta_1,\ldots,\delta_{i-1},\delta_i)$.  If we always
1243: choose the single rings so that this inequality is satisfied then, $$
1244: g(\delta_0,\delta_1,\ldots,\delta_{\ell}) \le
1245: h(\delta_0,\delta_1,\ldots,\delta_{\ell})) \le h(\emptyset) \le
1246: \beta.$$ In this expression, the left-hand-side involves no randomness
1247: and so it is either $0$ or $1$.  However, since $\beta < 1$, it has to
1248: be less than $1$ and so there must be a probability zero of failure.
1249: Hence, no link has congestion more than $(1-\ve^2)W$, and the routing
1250: is weakly $(W,R)$-admissible.
1251: 
1252: \subsection{On-line Routing}
1253: 
1254: Now we want to route packets as soon as they are injected. This does
1255: not allow us to directly use the above derandomization process, since
1256: we will not necessarily know the set $P$ by the time we need to route the
1257: first packets. This is needed to compute the different values of the
1258: function $h(\cdot,\ldots,\cdot)$.  However, we will deal with this
1259: problem by making pessimistic assumptions about the packets that have
1260: not been injected yet.
1261: 
1262: First consider two packets, $p_k$ and $p_l$, such that their paths do
1263: not overlap, and the destination node of $p_k$ is the source node
1264: of $p_l$. Replace these packets by one single packet whose source
1265: node is that of $p_k$ and its destination node is that of $p_l$.
1266: Observe that, for fixed $\delta_0,\ldots,\delta_i$, if $k > i$ and $l
1267: > i$, the value of $h(\delta_0,\ldots,\delta_i)$ does not change by
1268: the replacement (see above). This can be generalized to the
1269: replacement of any number of packets.
1270: 
1271: Then, this allows us to use the following trick. Initially we assume a
1272: set $P^{(0)}$ of packets that consists of $crW$ {\em ghost packets}
1273: going from node $i$ to node $i+1 (\mbox{ mod }n)$, for each
1274: $i$. The value $h(\emptyset)$ is computed for this set
1275: $P^{(0)}$.
1276: 
1277: Now, assume that $i-1$ packets have been already injected and routed. (That
1278: is, the values $\delta_0,\delta_1,\ldots,\delta_{i-1}$ are fixed and
1279: $h(\delta_0,\delta_1,\ldots,\delta_{i-1})$ is computed.) When the
1280: $i$th packet $p_i$ is injected, we remove one ghost packet from the
1281: set $P^{(i-1)}$ for each hop that $p_i$ crosses.  These ghost packets
1282: are replaced by the packet $p_i$ to obtain a new set $P^{(i)}$.
1283: The existence of the appropriate ghost packets is guaranteed
1284: by the initial ghost packets we put in $P^{(0)}$ and the fact that the
1285: injections are  $(w,r)$-admissible. As we saw previously, this
1286: does not change the value of
1287: $h(\delta_0,\delta_1,\ldots,\delta_{i-1})$.  Then, route the packet
1288: $p_i$ (choose and fix $\delta_i$) so that
1289: $h(\delta_0,\delta_1,\ldots,\delta_{i-1})\ge
1290: h(\delta_0,\delta_1,\ldots,\delta_{i-1},\delta_i)$.
1291: 
1292: By repeating this process, at the end of the $W$-interval we have that 
1293: $$
1294: g(\delta_0,\delta_1,\ldots,\delta_{\ell}) \le
1295: h(\delta_0,\delta_1,\ldots,\delta_{\ell})) \le h(\emptyset) \le
1296: \beta,$$ where $\ell$ is the number of packets injected during the
1297: $W$-interval. We now remove all the remaining ghost packets. This process
1298: eliminates any remaining randomness in
1299: $g(\delta_0,\delta_1,\ldots,\delta_{\ell})$, and can never increase
1300: its value, since it only removes packets. Then, since
1301: $g(\delta_0,\delta_1,\ldots,\delta_{\ell})=0$ involves no randomness
1302: and $\beta<1$, $g(\delta_0,\delta_1,\ldots,\delta_{\ell})=0$ and no link
1303: has congestion more than $(1-\ve^2)W$. Hence, the routing is weakly
1304: $(W,R)$-admissible.
1305: 
1306: \section{Conclusions}
1307: 
1308: In this paper we have presented source routing algorithms for
1309: packet-switched networks and we have described the first distributed,
1310: deterministic scheduling protocol with a polynomial delay bound.
1311: There is much still to be explored in the study of combined routing
1312: and scheduling.  For example, different packets are often associated
1313: with different delay requirements.  Some of them may be
1314: delay-sensitive whereas others may be delay-tolerant.  The problem of
1315: scheduling these packets on given routes in order to meet these delay
1316: requirements has been studied before.  The ability to choose the
1317: routes would add an additional dimension to the problem and may even
1318: make scheduling easier.
1319: 
1320: \subsection*{Acknowledgment}
1321: The authors wish to thank Adam Meyerson for helpful discussions.
1322: 
1323: \begin{thebibliography}{10}
1324: 
1325: \bibitem{AielloKOR98}
1326: {\sc W.~Aiello, E.~Kushilevitz, R.~Ostrovsky, and A.~Rosen}, {\em Adaptive
1327:   packet routing for bursty adversarial traffic}, in Proceedings of the 30th
1328:   Annual {ACM} Symposium on Theory of Computing, Dallas, TX, May 1998, pp.~359
1329:   -- 368.
1330: 
1331: \bibitem{AndrewsAFKLL96}
1332: {\sc M.~Andrews, B.~Awerbuch, A.~Fern\'andez, J.~Kleinberg, T.~Leighton, and
1333:   Z.~Liu}, {\em Universal stability results and performance bounds for greedy
1334:   contention-resolution protocols}, Journal of the ACM, 48 (2001), pp.~39--69.
1335: 
1336: \bibitem{AwerbuchAP93}
1337: {\sc B.~Awerbuch, Y.~Azar, and S.~Plotkin}, {\em Throughput competitive on-line
1338:   routing}, in Proceedings of the 34th Annual Symposium on Foundations of
1339:   Computer Science, 1993, pp.~32--40.
1340: 
1341: \bibitem{AwerbuchAPW94}
1342: {\sc B.~Awerbuch, Y.~Azar, S.~Plotkin, and O.~Waarts}, {\em Competitive routing
1343:   of virtual circuits with unknown duration}, in Proceedings of the 5th Annual
1344:   {ACM-SIAM} Symposium on Discrete Algorithms, 1994, pp.~321--330.
1345: 
1346: \bibitem{AwerbuchL94}
1347: {\sc B.~Awerbuch and T.~Leighton}, {\em Improved approximation algorithms for
1348:   the multicommodity flow problem and local competitive routing in dynamic
1349:   networks}, in Proceedings of the 26th Annual {ACM} Symposium on Theory of
1350:   Computing, 1994, pp.~487--496.
1351: 
1352: \bibitem{BertsimasG99}
1353: {\sc D.~Bertsimas and D.~Gamarnik}, {\em Asymptotically optimal algorithm for
1354:   job shop scheduling and packet routing}, Journal of Algorithms, 33 (1999),
1355:   pp.~296--318.
1356: 
1357: \bibitem{BorodinKRSW96}
1358: {\sc A.~Borodin, J.~Kleinberg, P.~Raghavan, M.~Sudan, and D.~P. Williamson},
1359:   {\em Adversarial queueing theory}, Journal of the ACM, 48 (2001), pp.~13--38.
1360: 
1361: \bibitem{Gamarnik98}
1362: {\sc D.~Gamarnik}, {\em Stability of adversarial queues via fluid models}, in
1363:   Proceedings of the 39th Annual Symposium on Foundations of Computer Science,
1364:   Palo Alto, CA, November 1998, pp.~60--70.
1365: 
1366: \bibitem{Gamarnik99}
1367: \leavevmode\vrule height 2pt depth -1.6pt width 23pt, {\em Stability of
1368:   adaptive and non-adaptive packet routing problems in adversarial queueing
1369:   networks}, in Proceedings of the 31th Annual {ACM} Symposium on Theory of
1370:   Computing, Atlanta, GA, May 1999, pp.~206--214.
1371: 
1372: \bibitem{GargK98}
1373: {\sc N.~Garg and J.~{K\"onemann}}, {\em Faster and simpler algorithms for
1374:   multicommodity flow and other fractional packing problems}, in Proceedings of
1375:   the 39th Annual Symposium on Foundations of Computer Science, Palo Alto, CA,
1376:   November 1998, pp.~300--309.
1377: 
1378: \bibitem{Keshav97}
1379: {\sc S.~Keshav}, {\em An engineering approach to computer networking}, Addison
1380:   Wesley, Reading, MA, 1997.
1381: 
1382: \bibitem{LeightonMR88}
1383: {\sc F.~T. Leighton, B.~M. Maggs, and S.~B. Rao}, {\em Packet routing and
1384:   job-shop scheduling in {O}(congestion + dilation) steps}, Combinatorica, 14
1385:   (1994), pp.~167 -- 186.
1386: 
1387: \bibitem{pst:pack95}
1388: {\sc S.~Plotkin, D.~Shmoys, and E.~Tardos}, {\em Fast approximation algorithms
1389:   for fractional packing and covering problems}, Math of Oper. Research,
1390:   (1994), pp.~257--301.
1391: 
1392: \bibitem{Raghavan88}
1393: {\sc P.~Raghavan}, {\em Probabilistic construction of deterministic algorithms:
1394:   approximating packing integer programs}, Journal of Computer and System
1395:   Sciences, 37 (1988), pp.~130 -- 143.
1396: 
1397: \bibitem{RFC3031}
1398: {\sc E.~Rosen, A.~Viswanathan, and R.~Callon}, {\em Multiprotocol label
1399:   switching architecture}.
1400: \newblock {RFC 3031}, 2001.
1401: \newblock http://www.ietf.org/rfc/rfc3031.txt.
1402: 
1403: \bibitem{SrinivasanT97}
1404: {\sc A.~Srinivasan and C.~Teo}, {\em A constant-factor approximation algorithm
1405:   for packet routing, and balancing local vs. global criteria}, in Proceedings
1406:   of the 29th Annual {ACM} Symposium on Theory of Computing, El Paso, TX, May
1407:   1997, pp.~636 -- 643.
1408: 
1409: \bibitem{Braden}
1410: {\sc D.~Tennenhouse, J.~Smith, W.~Sincoskie, D.~Wetherall, and G.~Minden}, {\em
1411:   A survey of active network research}, IEEE Communications Magazine,  (1997),
1412:   pp.~80--86.
1413: 
1414: \bibitem{y:round95}
1415: {\sc N.~Young}, {\em Randomized rounding without solving the linear program},
1416:   ACM-SIAM Symposium on Discrete Algorithms,  (1995), pp.~170--78.
1417: 
1418: \end{thebibliography}
1419: 
1420: %\bibliographystyle{siam}
1421: %\bibliography{routing}
1422: 
1423: \end{document}
1424: