Subject: Flow grouping for reduced reservations

From: [email-masked]
Date: Tue, 17 Dec 96 13:35:21 -0500

Cynthia, 

please add this draft to the internet drafts directory. 
Thanks. 

Folks this draft describes how combining of flows using guaranteed service
can reduce overall reservation requirements while continuing to satisfy their
delay bounds.
Comments welcome. 

Sanjeev Rampal. 

=====================================================================
INTERNET-DRAFT                                        Sanjeev Rampal,
Expires June 20th 1997 				      IBM Corpn.
                                                      December 20th, 1996.

	Flow Grouping For Reducing Reservation Requirements for 
		    Guaranteed Delay Service 
		<draft-rampal-flow-delay-service-00.txt>

Status of this Memo

   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as ``work in progress.''

   To learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the Internet- Drafts
   Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).

Abstract

   The guaranteed service class of the Integrated Services model 
   is based on the Weighted Fair Queueing model and requires 
   rate reservation in order to provide end-to-end delay guarantees.  
   Often, the amount of reservation needed to satisfy specified 
   delay bounds can be quite high leading to low network utilization. 
   This draft demonstrates a property of the Weighted Fair Queueing 
   formulation which enables grouping of flows (which use the 
   guaranteed service and are routed over the same path) in such a 
   way that a lower reservation is needed than would be required if 
   each flow were treated individually, and the delay bounds of each 
   flow can still be provably satisfied.  

1.0 Introduction 

   This draft presents a technique for improving the bandwidth 
   utilization for connections/ flows belonging to the guaranteed 
   service class [1] of the integrated services (IntServ) internet 
   specification [2]. 

Rampal             Expires 20th June, 1997             	  [Page 1]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


   The guaranteed service class ensures no packet loss and provides 
   a strict upper bound on the end-to-end delay that will be 
   experienced by any packet of a flow belonging to this class. This 
   service requires each network element in the path of a flow to 
   reserve a certain bandwidth for this flow. One problem with 
   supporting this service class is that the amount of bandwidth 
   reservation required can be quite high (and could be much greater
   than even the peak data arrival rate of the flow). This results 
   in poor network utilization.

   This draft addresses this utilization problem for guaranteed service 
   flows.  A method is presented for reducing the amount of bandwidth
   reservation needed to support such flows (thereby improving network
   utilization). This is done while retaining the same delay guarantees
   that the service already provides to each flow. The reduction in
   reservation is achieved through grouping some of the guaranteed 
   service flows in a network in such a way that the amount of 
   bandwidth needed to be reserved for a group is less than the sum 
   of the reservations that would be required for each flow 
   individually.

   In this draft, first, we outline how to perform this flow grouping.
   We then show that utilization can be improved while still provably 
   satisfying delay guarantees for each flow. The main contribution 
   of this draft is to demonstrate this property of Weighted Fair 
   Queueing. We then outline an approach for implementing this 
   technique in an internetwork. 

   Note.  The proposed flow grouping technique is completely 
   independent of the reservation merging using filters such as 
   "wild card filters" proposed in RSVP specifications. 

2.0 Outline of Flow Grouping 

   The proposed approach works by forming groups from among flows
   which use the guaranteed service and which are routed over the
   same path in a network (that is flows which use the exact same 
   set of links for their path in the network). Current IP routing 
   algorithms do not account for dynamic link loads and in the absence
   of failures, most or all traffic between any two nodes will usually
   be routed over the same set of links. With the use of more QoS or 
   load sensitive routing algorithms in the future this technique can 
   still be used however, additional state will need to be maintained 
   in routers to indicate which flows are using the same path. This 
   draft does not concentrate  on such implementaiton details at 
   this time. 

Rampal             Expires 20th June 1997              	  [Page 2]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


   The reason for choosing only flows which use the same 
   path is that the delay bound calculated by the Guaranteed Service 
   is an end-to-end value. If we try to group flows whose paths share 
   some links initially but subsequently diverge for example, we will 
   need to recharacterize the traffic of each flow after the paths 
   diverge, possibly using reshaping and adding delay. We do not 
   address that problem. The main contribution of this draft is to 
   introduce the grouping technique. Even if grouping is restricted 
   only to flows which share the same path, this will always result
   in some improvement in the utilization over existing approaches
   which do not employ any grouping at all.  
 
   We show that by grouping some (but not all) of such flows 
   appropriately and assigning a bandwidth reservation to the entire 
   group instead of to the individual flows, we can reserve a lower 
   amount of bandwidth for the group than the total that would be 
   required if this grouping were not to be performed. Further we can 
   still satisfy the delay bounds that are provided for each flow 
   when such a grouping is not performed.  For a given set of flows, 
   a simple test procedure is outlined using which the network 
   determines whether the reservation with grouping will be less than 
   without grouping. Accordingly flows will be grouped only if there 
   is some bandwidth savings as compared to assigning a separate 
   reservation for each flow as recommended by the specification [1].  

2.1 Flow grouping technique

   The achievable improvement in utilization using flow grouping is 
   explained first using some examples. Next a procedure for 
   implementing this in an internetwork is outlined.
 
   Consider two flows(F1 and F2) using the guaranteed service class in
   a network as defined in [1] and [2]. These two flows are between the
   same source and receiver nodes and are routed over the exact 
   same set of links (which we denote as L1, L2 ... Ln where n is the 
   number of physical links/hops in the path). Let P denote the maximum 
   packet size allowed for any connection in the network and let Cj 
   denote the bandwidth of link Lj (j=1,2 ... n).
 
   Let the traffic characterization of these two flows be given as
   (b1, r1, P1) and (b2, r2, P2) respectively where the b term 
   is the bucket size and the r term is the token generation rate of
   the leaky bucket characterizing the respective flows, while the P 
   terms are the maximum packet sizes. Let D1 and D2 be the maximum
   tolerable delay for the respective flows as specified by the 
   application.
 
Rampal             Expires 20th June, 1997             	  [Page 3]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


   Consider a network in which separate rate reservations of R1 and
   R2 have been assigned to these two flows (we assume that
   the reservation for a flow is greater than its token generation rate 
   which is a necessary condition for guaranteed service).  The total 
   amount of bandwidth which needs to be reserved on each link in the 
   path is hence R1 + R2.   In the guaranteed service formulation,
   the delay bound is inversely related to the amount of the reservation.
   Hence to minimize the amount of reservation for this case, the delay
   guarantee provided by the network must equal that required by the 
   flow (since any lower reservation will increase the delay bound 
   provided by the network beyond the maximum tolerable limit 
   specified by the application).
 
   Hence we have,
 
   D1 = (b1/R1) + (n-1) * (P1/ R1) + (sum from j=1 to n) P/Cj  	 (1)
 
   D2 = (b2/R2) + (n-1) * (P2/ R2) + (sum from j=1 to n) P/Cj 	 (2)

   The quantities on the right hand sides of equations (1) and (2) 
   are the formulation of the end-to-end queueing delay bound as 
   specified in [4]. The formulation in [1] is slightly different but 
   is derived from the same. We restrict ourselves to the strict WFQ
   type formulation from [4] in this draft. The actual delay bound would 
   equal the queueing delay bound plus the propagation delay. Given the 
   route of a flow, the  propagation delay component is fixed and the 
   same for all flows using the same route. Hence without any loss 
   of generality, we restrict ourselves to queueing delay bounds in 
   this draft.  
 
   Now consider a flow created by grouping these two flows into one 
   flow group which is characterized by the traffic model 
   (b_g, r_g, P_g) (the bucket size, token generation rate and maximum 
   packet size repectively of the resultant flow after grouping). Let 
   this flow group be assigned a reservation of Rg. Physically, packets 
   from both flows are simply multiplexed first come first served into 
   one flow.  Packets which arrive at the same instant are reordered 
   arbitrarily. If the scheduler uses separate queues for different
   flows for example, then we simply send packets from all flows in a
   flow group to the same queue.

   Consider a set of traffic characterization parameters for the flow
   group which are obtained as follows.
 
	b_g = b1 + b2 						(3)
 
	r_g = r1 + r2 						(4)
 
	Pg = max{P1, P2} 					(5)

Rampal             Expires 20th June, 1997             	  [Page 4]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


   In the appendix, we show that these values are sufficient to 
   characterize the traffic of the flow group (which is the aggregate
   traffic consisting of packets from both flows). In other words, if 
   the individual flows are deemed conforming by a leaky bucket derived
   from the individual traffic models, then the traffic of the flow
   group will also be deemed conforming by a leaky bucket based on
   traffic values for the flow group calculated as above.
 
   The minimum value of the delay bound that can be guaranteed by 
   the network to this combined flow can be calculated given this
   reservation.  We note that if the worst case delay bound guaranteed
   to the flow group is no more than the minimum of all delay bounds
   guaranteed to each individual flow, then the delay seen by any
   packet in the flow group is guaranteed to be less than the delay 
   bound of the group and hence less than the delay bound guaranteed 
   to its own flow.
 
   The table below shows the minimum delay bound for the individual 
   and aggregate flows when Rg = R1 + R2 for two example values of
   the traffic parameters (n=2 and P/Cj = 1, j=1,2 are assumed).
 
   In the first case, the minimum delay bound that can be guaranteed
   for the combined flow with Rg = R1 + R2 (denoted
   as D_(1,2) is less than each of the bounds (D1 and D2) that can be
   guaranteed for the flows individually, using separate reservations. 
   Hence a lower overall reservation (R') can be obtained
   when the flows are grouped. As shown, this results in a reduction of
   25 percent in the amount of bandwidth which needs to be reserved on
   each link in the path of these flows. On the other hand, in the 
   second case, with Rg = R1 + R2,  the minimum delay bound that
   can be guaranteed for the combined flow is greater than that which 
   can be guaranteed for flow F1 with separate reservations. In order 
   for the combined flow to obtain a delay bound satisfactory for 
   both flows, a reservation of greater than R1 + R2 would be required.
   Hence there is no gain in grouping for this case and better 
   utilization would be obtained by keeping the two flows separate and 
   maintaining individual reservations.

	Table 1: Examples of gain (or loss) using flow grouping

(b1, r1, P1)  (R1, D1)  (b2, r2, P2)   (R2, D2)   D_(1,2) R'   Percent 
								 gain 
------------  -------   -----------    -------    ------  -    -------

(10, .5, 10)  (1, 22)   (10, .5, 10)   (1, 22)    17      1.5  25 

(10, .5, 10)  (1, 22)   (10, .5, 100)  (1, 112)   62      -    Loss
 
----------------------------------------------------------------------
n=2, P/Cj = 1, j=1,2
 
percentage gain is defined as 100 * (R1 + R2 - R')/(R1 + R2)

Rampal             Expires 20th June, 1997             	  [Page 5]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


2.2. A procedure for testing whether grouping should be performed.
 
   As shown above, there may or may not be some gain in grouping 
   two flows together. The procedure to test whether two flows can 
   be grouped together is straightforward. The total reservations
   required with and without grouping are compared. Grouping can be 
   performed only if it results in lower total reservation than the 
   sum of the reservations with no grouping.
 
   Given the two flows F1 and F2, and their traffic parameters and 
   delay requirements as above, the procedure for testing whether
   they should be combined into a group is as follows.
 
   1. Calculate the total reservation required with grouping using 
   equation (6) (which simply inverts the standard delay bound 
   equation which has the form like equations (1) and (2)).

   Rg = max {r_g, (b_g+(n-1)* P_g)/(D_g - (sum j=1 to N) P/Cj)}     (6)

   where r_g, b_g and P_g are calculated according to equations (3) 
   through (5).
 
   D_g = min(D1,  D2) 						    (7)

   2. Now calculate the total reservation required when grouping is not
   performed. This is given by equation (8) below.
 
   R_tot = R1 + R2 					            (8)
 
   where
 
   R1 = max{r_1, (b_1 + (n-1) * P_1)/(D1 - (sum j=1 to n) P/Cj)}    (9)

   R2 = max{r_2, (b_2 + (n-1) * P_2)/(D2 - (sum j=1 to n) P/Cj)}   (10)

   3. If the reservation with grouping (from equation (6)) is smaller,
   grouping can be performed else it is better to provide individual
   reservations.
 
   4. If it is decided to group two flows, then the new parameters of
   the resultant flow group are calculated exactly as in equations (3) 
   through (5) (and equation (7)).

Rampal             Expires 20th June, 1997             	  [Page 6]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


3.0 Implementing flow grouping in a network

   In a network supporting guaranteed service, this technique is 
   implemented as follows. At each source, corresponding to each 
   receiver node r, and each unique path p between these two nodes 
   which has at least one guaranteed service flow,  the following 
   information is maintained. The triplet (b_i, r_i, P_i) and the 
   delay requirement D_i is maintained for each such flow i. In addition, 
   for each flow group between these nodes and using this path p, a 
   list of flows is maintained which form this group. Flows that have 
   not been combined with any other flow are treated as groups containing 
   only one flow. For each flow group, an aggregated set of traffic 
   parameters as well as amount of reservation and the delay guarantee 
   (calculated according to equations (3), (4), (5) and (7) above) are 
   maintained.  Note that the information needed to be maintained can 
   be greatly reduced if there is always only one path between any two 
   nodes as is the characteristic of most existing IP routing algorithms 
   which are not load sensitive. 

   We now consider three possible cases that can cause the amount of 
   reservation on a path to change.  

	1. A new flow enters the network.
 
	When a new flow enters the network and is routed over a specific 
	path, it is tested whether it can be combined with each 
	existing flow group between the same source receiver pair and 
	using the same path (using the test outlined above). If it 
	cannot be successfully combined with any existing group, then 
	a separate reservation is created for this flow and a new group 
	is created containing only this flow. Else, it is combined with 
	that flow group which will result in the smallest overall 
	increase in reservation. on this path.  Finally, the parameters 
	of the selected flow group are updated to reflect the addition 
	of the new flow to the group (again according to equations (3) 
	through (7)). Hence the test for grouping will be performed 
	with every existing flow group on the same path which in the 
	worst case equals the number of flows in the path.
 
	2. An existing flow leaves the network.
 
	In practice, this may occur because the reservation refresh 
	message for a particular flow was not received within a 
	specified timeout period or an explicit `disconnect' message 
	was received. Regardless of the disconnecting procedure 
	the same techniques apply.

Rampal             Expires 20th June, 1997             	  [Page 7]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


	The parameters of the group to which this flow was assigned are
	recalculated taking into consideration only the flows which 
	continue to exist in the group. The new token generation rate 
	r_g and bucket size b_g are calculated by subtracting out the 
	contribution of the flow which is leaving the group. The 
	new P_g and D_g can be calculated by recomputing the maximum 
	and minimum respectively over the remaining flows. An 
	improvement in efficiency can be obtained by using a heap data 
	structure (one each for the maximum packet size and tolerable 
	delay for flows in a flow group).  This will speed up the 
	calculations required everytime a flow enters or leaves a 
	group.
 
	3. An existing flow changes its traffic parameters or 
	delay requirements
 
	The case of a change in the traffic parameters of a flow can 
	be treated simply as a combination of the above two cases 
	(it is equivalent to a flow with the old parameters leaving 
	the network and another flow with the new parameters 
	subsequently entering the network).

3.1 Performance control policies
 
	In order to obtain maximal bandwidth reduction, the network 
	should always attempt to re-assign resources in any of the 
	three cases above so that overall reservation is kept as low 
	as possible. However, this requires performing the test for 
	grouping frequently.  Each such test can involve O(m) 
	calculations where m is the number of flows in a path, since 
	in the worst case, we have to compare an incoming or changing 
	flow against all existing flows.
 
	The network can implement several policies which reduce the 
	amount of calculations and resource re-allocations by 
	compromising on the achievable reduction in reservation. For 
	instance, if the only the tolerable delay for a flow increases, 
	it may continue in its current group (thereby avoiding any
	resource re-allocation or calculations), even though a greater
	reduction in the amount of reservation could have been achieved
	if this flow was now assigned to another flow group. As another
	example, a network may choose to always perform separate 
	reservations when a flow enters a network (in order to obtain
	fast connection setup), but then, perform the calculations 
	for optimally performing the flow grouping in the background 
	once the flow has already been setup.
 
	Several such policies can be defined but are not the
	main focus of this draft. This contribution of this draft is
	the flow grouping technique to show that it will always result
	in some improvement in the utilization for guaranteed service 
	flows as compared to an implementation which does not perform 
	grouping.
 
Rampal             Expires 20th June 1997              	  [Page 8]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	  Dec, 1996


	An additional comment is that the proposed scheme does not 
	claim to achieve the optimal grouping of flows resulting in 
	the absolute minimal possible reservation for a set of flows. 
	The main point of this contribution is that
	use of this technique will result in a reservation which 
	is never greater and often lower than when it is not used. 
 
3.2 Some Additional Issues
 
	There is nothing in the flow grouping technique that restricts 
	it to be performed only in the case of source-initiated 
	reservation environments (such as ATM [5]) or in 
	receiver-initiated environments (such as RSVP signaling over 
	IP [3]). In any environment where the Guaranteed Service as 
	defined in [1] is provided, this technique can be used to 
	improve utilization.
 
	Policing and Implementation Issues

	Even though flows are grouped, policing should still be 
	performed on individual flows rather than on flow groups. This 
	ensures that a flow which violates its traffic specification 
	can be detected even if the combined traffic in a flow group may 
	still be in comformance with the calculated parameters for 
	the group.
 
	An additional issue is that the Guaranteed Service additionally
	includes two parameters in the traffic specification viz. a 
	minimum policed unit and a peak rate. These parameters are not 
	involved in the delay calculations [1], hence have not been 
	addressed in this draft. We note for the sake of completeness 
	that if needed the peak rate of a flow group should be calculated
	as being the sum of the peak rates of the individual flows in it, 
	while the minimum policed unit should be calculated as the 
	minimum of the corresponding quantity from all flows in the group.

Rampal             Expires 20th June 1997                  [Page 9]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	   Dec, 1996


4.0 References

[1] S. Shenker, C. Partridge, R. Guerin "Specification of Guaranteed 
Service," draft-ietf-intserv-guaranteed-svc-06.txt,
Integrated Services Working Group, Internet Engineering Task Force (IETF),
August 1996.
 
[2] R. Braden, D. Clark, and S. Shenker, "Integrated Services 
in the Internet Architecture: an Overview," RFC 1633, June 1994.
 
[3] R. Braden et. al., "Resource ReSerVation Protocol (RSVP) - 
Version 1 Functional Specification," 
draft-ietf-rsvp-spec-14.txt, November 1996.
 
[4] A.K. Parekh and R.G. Gallager, "A Generalized Processor Sharing 
Approach to Flow Control in Integrated Services Networks - The 
Multiple Node Case," Proc IEEE Infocom '93 pp.521-530.
 
[5] The ATM Forum, "User-Network Interface (UNI) Specification 
v3.1,"  September 1994.

5.0 Appendix
 
We show here that the traffic parameters calculated using equations
(3), (4),  (5) and the delay bound of (7) are sufficient to 
characterize a flow group formed from two individual flows. Consider 
the flows F1 and F2 with traffic parameters (b1, r1, P1) and 
(b2, r2, P2) and delay upper bounds D1 and D2 as above.
 
If flow F1 conforms to its traffic specification,
the amount of data provided by it to the source node over any time 
interval (t1 , t2) is at most b1 + r1*(t2 - t1). Similarly the amount 
of data provided by flow F2 in the same time interval cannot exceed 
b2 + r2*(t2 - t1). 
Now consider the flow obtained by grouping these two flows (Fg), 
with traffic parameters (b_g, r_g, P_g) and delay bound
D_g, where these quantities are calculated according to
equations (3), (4), (5) and (7) above. Over time interval (t1, t2)
hence, the aggregate flow is required to generate no more
than b_g + r_g*(t2 - t1). However, this is easily true because when 
equations (3) and (4) are true, we have
 
b_g + r_g*(t2 - t1) = (b1 + r1*(t2 - t1)) + (b2 + r2*(t2 - t1))
 
Also, the greater of P1 and P2 is clearly the
maximum packet size of the combined flow. Finally, if every packet 
of the combined flow is guaranteed an end to end delay which is the 
minimum of the tolerable delays of all flows making up the flow group, 
clearly, every flow will see an acceptable delay even when it is 
combined with other flows in a group. Hence equations (3), (4), (5) 
and (7) represent valid parameter values for the flow obtained by 
grouping flows F1 and F2.

Rampal             Expires 20th June, 1997                   [Page 10]

INTERNET DRAFT     Flow Grouping for Guaranteed Service	   Dec, 1996


6.0 Author Information 

Sanjeev Rampal

C305/B664, 
IBM Networking Division, 
Research Triangle Park, NC 27709.

Voice 919-254-4801
email [email-masked]

Rampal             Expires 20th June, 1997             		[Page 11]

INTERNET DRAFT     Flow Grouping for Guaranteed Service		Dec, 1996

---

From: Masataka Ohta <[email-masked]>
Date: Wed, 18 Dec 96 12:27:59 JST

Sanjeev;

> 	Flow Grouping For Reducing Reservation Requirements for 

Yes, you can group multiple flows to share a queue.

Or, multiple flows may share a single priority for traffic classes
(such as for 802.1p) for link local traffic between adjacent routers
with no link layer signaling (or resource control).

That's all.

As long as you manage resource parameters, grouping can't work.

>       Finally, the parameters 
> 	through (7)).

You should have overlooked the discussion on why meaningful aggregation
of flows is impossible.

That is, with Q.2931 signaling where no upgrading of existing VC
is possible, grouping is twice more costly than simply signaling
a new VC.

Even with upgradable link layer signaling, the upgrade may cause
excessive temporal disruption of service, because of possible route
change.

							Masataka Ohta