INTERNET-DRAFT Werner Almesberger Tiziana Ferrari Jean-Yves Le Boudec ICA, EPFL-DI, Switzerland November 1997 Scalable Resource Reservation for the Internet 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 view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). 1. Abstract Current resource reservation architectures for multimedia networks don't scale well for a large number of flows. We propose a new architecture that aggregates flows on each link in the network. Therefore, the network has no knowledge of individual flows, and resource management functions traditionally implemented in the network (such as flow acceptance control) are delegated to hosts. 2. Introduction Many resource reservation architectures and protocols that have been proposed for integrated service networks borrow heavily from the architecture of the telephony network: - routers or switches between the communicating hosts are required to store per-flow state information - reservations, once granted, are stringent and conformance of traffic is carefully controlled (policing) - most of the difficult work (e.g. admission control) is entirely Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 1] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 handled by the network The general intention is to provide a network service that is as deterministic as possible. While a highly deterministic service is certainly attractive, the complexity and lack of scalability of the aforementioned architectures and protocols makes their usefulness for many applications questionable. Particularly Internet telephony creates a need for very inexpensive means to obtain a dependable quality of service for a very large number of concurrent flows. This goal can be achieved by aggregating flows so that the reservation mechanism only needs to be aware of a comparably small number of (aggregated) flows. The architecture we propose in this paper goes even beyond concepts for aggregation on top of traditional reservation architectures (e.g. [1] for ATM) in that it makes aggregation the standard behaviour of the network and not a special case requiring additional protocol activity. It differs from approaches ensuring relative fairness (e.g. [2] and [3]) in that admission control is an integral part of it. In short, our reservation model works as follows. A source that wishes to make a reservation (for example for Internet telephony) starts by sending data packets marked with a REQUEST flag to the destination. These packets are forwarded normally by routers, who also take a flow admission decision on each of them. After enough REQUEST packets have been sent, the source learns from the destination its estimate of how much of the reservation has been accepted in the network. The source may then send data packets marked with a RESERVED flag at the accepted rate. Routers that have admitted, and thus forwarded, REQUEST packets have committed to have enough resources to accept subsequent RESERVED packets sent by the source at the accepted rate. The accepted rate is computed independently by sources and routers, using a "learn by example" procedure. The accepted rate is guaranteed as long as there is a minimum activity by the source. The reservation disappears by timeout after the source has stayed idle for a while. Figure 1 shows an idealized view of our model, and a more detailed example is given in section "Reservation example". The initial data packets sent by the source can be thought of as "sticky": once a router has accepted some of them at a given rate, it must continue to accept packets at the same rate until the source becomes idle. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 2] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 Reservation (Bandwidth) ^ | |Rsv Rsv use and Rsv |setup refresh timeout |<--->|<------------>|<-->| | / = REQUEST | _______________..... | / | __ = RESERVED | / | | / | .. = No traffic | / | |/ | +-----------------------------> Time Figure 1: Idealized reservation procedure. A key feature of our proposal is that routers do not keep state information per flow; routers only remember their reservation commitments globally per output port. This is made possible by two features: - routers rely on end-systems not to exceed their accepted rates; - routers maintain reservations by learning, namely, by monitoring the actual reserved traffic. We discuss these two design directions in the rest of this section. Section "Architecture overview" describes the fundamental architecture. Section "Additional aspects" elaborates on that and also points out areas where more research is needed. The paper concludes with section "Conclusion". 2.1 The TCP case For best-effort traffic, the Internet has illustrated that network internals can be simple: besides routing, which has grown significant complexity, there are no "intelligent" services inside the network. Responsibility for congestion control is given entirely to the end systems (e.g. TCP), which are in turn expected to have some degree of complexity of their own. Also, instead of providing stringent isolation among users, the Internet relies on guided cooperation. Applying this approach to resource reservation means to let end systems perform flow acceptance control and to trust them not to exceed the agreed upon reservations. In order to protect the network from errors in application programs, the reservation protocol handling needs to be implemented in the networking kernel of the operating system. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 3] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 If needed, policing functions can be implemented per flow at some network access points; we believe that such policing is not needed at inter-carrier exchanges, or in general anywhere beyond Internet access points. Because flow acceptance control is inherently flow-specific, delegating it to end systems is a requirement for enabling routers to efficiently aggregate arbitrary flows. The proposed architecture slightly extends the traditional Internet design by introducing the concept of packet types to distinguish reserved traffic from best-effort traffic. This also allows routers to give more precise admission control indications than just a simple forward-or-discard decision. 2.2 Adaptive applications The desire to run multimedia applications over the current best-effort Internet with all its imperfections has motivated the development of increasingly sophisticated adaptive applications [4,5]. Adaptive applications tolerate variations in packet loss rates, in bandwidth, and in delay. Of course, even adaptive applications have certain minimum requirements. This is typically a minimum bandwidth, below which no useful operation is possible. If additional bandwidth is available, it is used to improve the service (e.g. better audio quality). The proposed architecture aims mainly to ensure that adaptive applications can obtain their minimum bandwidth. The service goals are similar to the ones of the INTSERV controlled-load service [6]: Availability of enough bandwidth is guaranteed but all other parameters (such as delay, loss rate, etc.) remain unspecified, although an application can assume that they are in a "reasonable" range. The presence of adaptive applications also implies that there is usually enough best-effort traffic in the network that only a small fraction of the total bandwidth will be used for reserved traffic and that resource shortage for reserved traffic will be an infrequent situation. 2.3 Learning by example New reservations are set up by sending data packets with a REQUEST flag. When a router accepts such requests, it predicts the arrival of future packets and changes its reservation state accordingly. Because the reservation information is sent directly with the Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 4] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 data, the reservation and the actual traffic are automatically synchronized. Central to our proposal is the concept of an estimation module used by sources, routers, and destinations. Assuming that sources emit traffic in regular periodic patterns, a simple implementation could just count the number of requests during a time interval and use that to predict the increase of total reserved bandwidth. Note that the period of a source must be reasonably short compared to the observation interval for such measurements to be meaningful. The same principle is also used to detect decreases in the use of reserved bandwidth: Routers monitor the amount of reserved traffic and adjust reservations automatically if sources reduce their bandwidth or stop sending.* We describe this simple implementation in sections "Reservation dynamics" and "Reservation example". * A discussion of measurement-based admission control for similar purposes can be found in [7]. 3. Architecture overview The proposed architecture uses two protocols to manage reservations: a reservation protocol to establish and maintain them, and a feedback protocol to inform the sender about the reservation status. Data and reservations | +--------+ +--------+ | +--------+ +--------+ | | | | | | | | | | |----->| Router |---...-->| Router |----->| | | Sender | | | | | |Receiver| | | +--------+ +--------+ | | | |<------------------...-------------------| | +--------+ | +--------+ | Feedback Figure 2: Network structure overview. Figure 2 illustrates the operation of the two protocols: - Data packets with reservation information are sent from the sender to the receiver. The reservation information is processed by routers. They may modify the reservation information or they may also discard packets. - The receiver sends feedback information back to the sender. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 5] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 Routers only forward this information; they don't need to process it. Routers monitor the effectively present reserved traffic and adjust their reservations accordingly. 3.1 Reservation protocol The reservation protocol is used in the direction from the sender to the receiver. It is processed by the sender, the receiver, and the routers between them. In order to simplify processing of the reservation protocol, the reservation information is represented as a packet type which is included in normal data packets.* * The encoding is yet unspecified. One possible approach is to define a new IP option to carry the packet type. The reservation protocol uses three packet types: RESERVED The reservation has already been established (and confirmed). The packet of type RESERVED uses that reservation. REQUEST A reservation is needed for packets like the current one, but a reservation has not yet been confirmed (e.g. because no request was sent yet or because the feedback hasn't reached the sender yet). BEST EFFORT No reservation is needed. Packet types are initially assigned by the sender, as shown in figure 3. A traffic source (i.e. the application) specifies for each packet if that packet needs a reservation. If no reservation is necessary, the packet is simply sent as BEST-EFFORT. If a reservation is needed, the protocol entity checks if an already established reservation covers the current packet. If yes, the packet is sent as RESERVED. Otherwise, an additional reservation is requested by sending the packet with the REQUEST flag. Application | Protocol stack | | | +-------------+ Yes Needs reservation -------->| Reservation |--------> RESERVED | |established ?|--------> REQUEST | +-------------+ No Doesn't need | reservation --------------------------------------> BEST-EFFORT | Figure 3: Initial packet type assignment by sender. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 6] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 Each router performs the following processing (see also figure 4): - If a REQUEST can be accepted, the reservation is made and the packet is forwarded unchanged. Otherwise, its type is set to BEST-EFFORT and best-effort processing is performed. - If a RESERVED packet is received, the router verifies that a suitable reservation exists. This is normally the case and the packet is forwarded unchanged and with priority over best-effort traffic. If no reservation exists, either a protocol error or a route change has occurred (see section "Route changes"). In order to stabilize the reservation, the packet type is changed to REQUEST and request processing is performed.* Furthermore, BEST-EFFORT packets may be discarded during congestion. * Considering that RESERVED packets will "magically" become requests if necessary, one may be tempted at this point to avoid the use of a REQUEST packet type entirely. At least in the given framework, this does not work. Requests are needed to isolate already established reservations from increases or new reservations: if packets from "old" and "new" reservations were both of type RESERVED, a router experiencing resource shortage had no way of knowing which ones to degrade or even to discard and it would consequently also penalize the "old" reservations. +-------------+ Yes RESERVED ---------->| Reservation |---------> RESERVED |established ?| +-------------+ | No v +-------------+ Yes REQUEST ----------->| Reservation |---------> REQUEST | possible ? | +-------------+ | No v +-------------+ Yes BEST-EFFORT ------->| Resources |---------> BEST-EFFORT | available ? | +-------------+ | No X Figure 4: Packet type processing by routers. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 7] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 Note that the reservation protocol may "tunnel" through routers that don't implement reservations. This allows the use of unmodified equipment in parts of the network which are dimensioned such that congestion is not a problem. The receiver does no packet-type specific processing. Instead, it counts incoming packets and sends feedback to the sources. 3.2 Feedback protocol The feedback protocol is used to convey information on the success of reservations and on the network status from the receiver to the sender. Unlike the reservation protocol, the feedback protocol does not need to be interpreted by routers, because they can determine the reservation status from the sender's choice of packet types. Feedback information is collected by the receiver and it is periodically sent to the sender. The feedback consists of the receiver's estimate of the current reservation. The receiver computes this estimate by executing an algorithm like the one routers use to estimate the actual resource use. Additional information can be included in feedback messages to improve stability and to provide additional information on network performance, e.g. the loss rate along the path or the round-trip time. The reservation estimated by the receiver is an upper bound for the rate at which the sender may send requests and is used by the function that decides if packets are sent as RESERVED or as REQUEST. Receivers collect feedback information independently for each sender and senders maintain the reservation state independently for each receiver. Note that, if more than one flow to the same destination exists, attribution of reservations is a local decision at the source. The feedback mechanism can be implemented on top of a protocol like RTCP [8]. 3.3 Reservation dynamics Reservations are set up for the traffic profile reflected by the requests sent by the source. A router can for instance count the number of requests it receives (and accepts) during a certain observation interval and use this as an estimate for the bandwidth that will be used in future intervals of the same duration. In addition to requests for new reservations, the use of existing Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 8] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 reservations needs to be measured too. This way, reservations of sources that stop sending or that decrease their sending rate can automatically be removed. The use of reservations can be simply measured by counting the number of RESERVED packets that are received in a certain interval. With such measurements for time t, the amount of resources to reserve at time t+1 can be predicted as follows: reserve(t+1) = requests(t)+rsv_seen(t) with requests(t) being the sum of the resources requested and rsv_seen(t) being the resources used by reserved traffic, both measured during the observation interval starting at time t. To compensate for deviations caused by delay variations, spurious packet loss (e.g. in a best-effort part of the network), etc., reservations can be "held" for more than one observation interval. This can be accomplished by remembering the observed traffic over several intervals and using the maximum of these values. With a hold time of h observation intervals, the reservation is computed as follows: reserve(t+1) = max(requests(t-h+1)+ rsv_seen(t-h+1),..., requests_t+rsv_seen_t) The definition and evaluation of the algorithms for reservation calculation in hosts and routers is still ongoing work. The formulas above should serve only as examples. [ Figure 5: Algorithms in the senders, routers, and receivers. ] We call this algorithm an estimator, since it attempts to estimate, based on past traffic, the resources that will need to be reserved in the future. Figure 5 shows how the estimator algorithm is used in all network elements: - Senders use the estimator for an optimistic prediction of the reservation the network will perform for the traffic they emit. This, in conjunction with feedback received from the receiver, is used to decide whether to send REQUEST or RESERVED packets. - Routers use the estimator for packet-wise admission control and also to detect anomalies (see section "Route changes"). - In receivers, the estimator is fed with the received traffic and it generates a (conservative) estimate of the reservation at the last router. This is sent as feedback to the source. A source always uses the minimum of the (optimistic) estimation of the reservation at the next router and the (conservative) feedback. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 9] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 As described in section "Reservation protocol", a sender keeps on sending requests until successful reservation setup is indicated with a feedback packet. This means that the sender sends more requests than needed if the round-trip-time is greater than the observation interval. Routers can detect this by the lack of RESERVED packets and they consequently refrain from increasing the reservation. The feedback that is returned to the sender may also show an increased number of requests.* The sender must not interpret those requests as a direct increase of the reservation, because the routers didn't either. Instead, the sender uses the same algorithm as the routers to correct the feedback information accordingly. * Some of them can, however, also be refused in the network and either become best-effort or even get discarded. 3.4 Resource reservation in a router This section gives an example of how resource reservation can be handled in a simple router where only output buffer space is controlled. Depending on its architecture, a real router may have to take the status and utilization of many other components into account. Figure 6 illustrates the packet processing in the example router: After passing the router fabric, the reservation information in each packet is examined and acted upon (see section "Reservation protocol"). Packets of type REQUEST or RESERVED are put into the queue for reserved traffic. All other packets are put into the best-effort queue or they are discarded. The queues are emptied by a scheduler which gives priority to the reserved traffic queue. [ Figure 6: Example router. ] Placing the reservation mechanisms directly before the output queues naturally leads to aggregation: since the critical resource at this point is queue space, one can for instance express reservations as allocations of such space within a given interval. The sum of the allocations then corresponds to the aggregate bandwidth, which is reserved on that port. [ Figure 7: Reservation control in router. ] Detection of malfunction can be improved without impacting scalability by calculating reservations not only for each output port, but for each input and output port pair (which is called an "intersection" in figure 7). 3.5 Reservation example Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 10] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 In this section, we illustrate the operation of the reservation mechanism in a very simple example. The network we use is shown in figure 8: the sender sends over a delay-less link to the router, which performs the reservation and forwards the traffic over a link with a delay of two time units to the receiver. The receiver periodically returns feedback to the sender. [ Figure 8: Example network configuration. ] The bandwidth reservation in the router and the reservation that has been acknowledged in a feedback message from the receiver are measured. In figure 9, they are shown with a thin continuous line and a thick dashed line, respectively. The packets emitted by the source are indicated by arrows on the reservation line. A full arrow head corresponds to REQUEST packets, an empty arrow head corresponds to RESERVED packets. For simplicity, the sender and the router use exactly the same observation interval in this example, and the feedback rate is constant. [ Figure 9: Protocol operation example. ] The source sends one packet per time unit. First, the source can only send requests and the router reserves some resources for each of them. At point (1), the router discovers that it has established a reservation for six packets in four time units, but that the source has only sent four packets. Therefore, it corrects its estimate and proceeds. The first feedback message reaches the sender at point (2). It indicates a reservation level of five packets in four time units (i.e. the estimate at the receiver at the time when the feedback was sent), so the sender can now send RESERVED packets instead of REQUESTs. At point (3), the next observation interval ends at the router and the estimate is corrected once more. Finally, the second feedback arrives at point (4), indicating the final rate of four packets in four time units. The reservation does no change after that. 4. Additional aspects This section describes further details of the proposed reservation architecture and discusses areas requiring further research. 4.1 Starvation Reservation establishment is incremental. It is therefore possible for a sender to obtain only a fraction of the required resources if a shortage occurs before all the requests have been accepted. This can lead to starvation if several senders (unsuccessfully) compete for same resource for an extended period of time. A sender can react to this situation in the following ways: Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 11] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 - give up and report reservation failure to the application - try to proceed with the partial reservation (e.g. if the shortage occurred during an attempt to increase an older reservation) - back off and try again later In the latter case, the sender has to wait for the hold time plus a random delay before sending new requests. The random delay should be exponentially increased on repeated reservation failures to the same destination. 4.2 Generation of inelastic best-effort traffic Degrading REQUEST packets to BEST-EFFORT during resource shortage is desirable, because it allows the communicating hosts to easily distinguish a mere reservation failure from a total communication breakdown. Unfortunately, blindly converting all REQUEST packets to BEST-EFFORT may have disastrous effects on other best-effort traffic: since a sender emits requests at the full rate of the desired reservation, the resulting inelastic best-effort traffic would be grossly unfair with respect to protocols like TCP, which perform end-to-end congestion control (see also [9]). If the network implements a packet type for inelastic best-effort traffic* or generally a lower priority type than normal best-effort traffic, that type should be used when degrading REQUEST packets. Otherwise, a more aggressive discard policy has to be used for those packets. This could for instance be modulated by measuring congestion-controlled traffic (e.g. TCP) flowing to the same destination. * Such a type would for instance have service characteristics like a low delay but a higher loss probability. 4.3 Route changes Like most other reservation architectures, the proposed one may fail to provide the promised service if there is a route change. Architectural means to reduce the number of route changes to the absolutely necessary minimum (e.g. "route pinning" [10]) are outside the scope of this paper. Once a route change occurs, e.g. due to a link failure, it typically has the following effects: The traffic is redirected to a path on which no prior reservation exists ( b, c). In order to limit the impact of this, the first router that detects the change should change RESERVED packets to REQUEST. In figure 10, routers A and B can orderly try to establish reservations on links a and Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 12] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 b (and on all downstream links) if router A changes the type of redirected packets. Note that A cannot distinguish older reserved traffic sharing the path via a and b from redirected traffic and that it may therefore degrade RESERVED packets of the former to requests. [ Figure 10: Route change example. ] A further anomaly can occur, if the original path and the redirected path merge again further downstream ( d): The original reservation and the new requests that were generated to repair the reservation can collide and yield an artificially high reservation. This is similar to the time-to-feedback problem discussed in section "Reservation dynamics" and the same mechanisms can be used to overcome it. 4.4 Discussion of the estimation module We have presented in section "Reservation dynamics" an estimation module based on counting the number of bytes in request and reservation packets per time interval. We discuss now some implications of this estimation module. The estimated bandwidth required for one output for the tth time interval is reserve(t). Call T the length of the time interval. If the estimation is correct, this means that an arrival curve for the aggregate flow is a(u) = (T + u ) reserve(t). If the aggregate flow is served at a line rate c, this implies that the maximum delay variation for this flow is T/(reserve(t)*c) [11]. With this estimation module, the value of T is thus linked to the delay imposed on reserved traffic. This is undesirable, because we may want to choose a large value for T in order to smooth out jitter, without increasing the delay. It is possible to modify the estimation module as follows in order to remove this dependency. In section "Reservation dynamics", define requests(t) as the phdeterministic effective bandwidth for a delay bound D [11] of the flow of requests over the tth time interval, and rsv_seen(t) the deterministic effective bandwidth for the same delay bound D of the flow of reservations. The deterministic effective bandwidth is the amount of bandwidth that is required to serve an observed flow within a given delay bound. This modification makes the estimation module more complex, but it makes it possible to have an observation interval T much larger than the delay bound D. A more detailed analysis of the estimation module is the object of current research. 4.5 Multicast The reservation mechanism described can be slightly extended to a multicast scenario. The extensions concern the feedback and the Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 13] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 reservation protocol at the source. They are needed to cope with several problems which are typical in a multicast environment: - the joining mechanism: how to establish reservations to a new group member without affecting the reservation already in place; - transparency: events like route instability, topology changes, joining and leaving of some group members and situations like heterogeneous connectivity should only affect their limited scope. They should be completely transparent to the remaining session members and also to the connections established by other applications. - feedback implosion: the feedback protocol which works well in a unicast scenario does not scale well in a multicast environment. Establishing reservations in a multicast tree The mechanism described here to build up reservations in a multicast context fits for multicast routing algorithms in which sources do not flood traffic periodically to the network. In this way reservations (REQUEST and RESERVED packets) can be restricted to the links belonging to the multicast tree. The source starts sending request messages to the multicast routers which explicitly joined the group as a reply to the source register message. Members of a session are divided into two sets: 1. joining members, forming the REQUEST multicast group; 2. "old" members, forming the RESERVED multicast group. This distinction is necessary in order to make the joining operation transparent to the hosts and to the branches already belonging to the session.* The purpose of this division is to forward REQUEST packets only on the path from the nearest multicast router belonging to the reserved group to the new member, as shown in figure 11. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 14] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 * New members cannot join directly the reserved group because this would have the effect of injecting RESERVED packets into links on which the corresponding amount of resources was not allocated before. Since routers have no means to distinguish "legal" from "illegal" packets, non-conforming data would affect other reservations already in place. Vice versa, the sending of REQUEST packets would have the effect of increasing the reservation level on the trunks already belonging to the reserved tree. [Source] [...] and // = on RESERVED tree // \\ <...> and / = on REQUEST tree // \\ [Router] [Router] // \ \ // \ \ [Member] / \ / \ Figure 11: Request and reserved multicast group. The join request is issued hop-by-hop toward a multicast router already on the reserved tree. Routers already receiving reserved traffic start sending the multicast traffic to the member after receiving the join request. In addition to that, they also switch the RESERVED flag to REQUEST. Members of the request group can compare their reservation estimate to the target amount indicated by the source. If the reservation offered is acceptable, then the member can leave the request group and join the reserved group.* * This mechanism requires that the interval between the leaving and the joining is small compared to the life time of the reservation just established. This mechanism can be implemented by associating two multicast addresses to the two distinct groups. The addresses can be different only in the least significant bit - for example it can be 0 for the request group and 1 for the reserved group. Then, the algorithm executed by the multicast router when a multicast packet is received, is the following: if ((pck_addr is multicast) and (pck_type == rsvd)) { forward pck to reserved group; if (router is in the request group) { newpck = copy(pck); newpck_type = req; Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 15] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 forward newpck to request group; } } Transparency In a network with bottlenecks the algorithm should avoid that the link with worst connectivity (e.g. with the lowest bandwidth availability) limits the reservation offered to each member of the group. To cope with this heterogeneity multicast members could be grouped into separate sets and layered coding [12] could be used. Hosts which can apply for the same reservation level, are associated to different multicast groups. All the receivers are included in a common multicast tree for the distribution of the fundamental coding layer, then other coding layers can be added to it. The traffic distribution of each layer can be implemented through the reserved and request group described above and each member can join several groups at the same time depending on the quality of its connectivity. Feedback The problem of feedback implosion is solved by simply not sending any explicit feedback but by using group membership as an implicit indicator instead. The multicast source can fix an a priori value for the minimum amount of reservations required to forward the traffic of a given coding layer. After joining the request group the receiver does flow acceptance control. If the estimated reservation is acceptable compared to the target set by the source, then it can leave the REQUEST group and join the RESERVED, otherwise it leaves the REQUEST group and gives up. So, the absence of a reserved group of a session can mean two things: no members have joined the request group yet or no members can accept the reservation offered. Since the source does not receive any feedback, it can statically fix the reservation threshold of each multicast group. If that amount of resources can not be allocated, hosts will leave both groups, the multicast trees disappear and the (partial) reservations time out. 5. Conclusion We have proposed a new scalable resource reservation architecture for the Internet. Our architecture achieves scalability for a large number of concurrent flows by aggregating flows at each link. This aggregation is made possible by entrusting traffic control decisions to end systems - an idea borrowed from TCP. Reservations are controlled with estimation algorithms, which predict future resource usage based on previously observed traffic. Furthermore, protocol processing is simplified by attaching the reservation control Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 16] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 information directly to data packets. We did not present a conclusive specification but rather described the general concepts, and gave examples for basic implementations of core elements of the architecture. Further research is needed to resolve open issues needed for a comprehensive specification and to improve efficiency, robustness, and versatility of the algorithms and procedures outlined in this paper. 6. References [1] Gauthier, Eric; Giordano, Silvia; Le Boudec, Jean-Yves. Reduce Connection Awareness, http://lrcwww.epfl.ch/scone/scone_paper2.ps, Technical Report 95/145, DI-EPFL, September 1995. [2] Floyd, Sally; Jacobson, Van. Link-sharing and Resource Management Models for Packet Networks, IEEE/ACM Transactions on Networking, Vol. 3 No. 4, pp. 365-386, August 1995. [3] Liebeherr, Joerg; Akyildiz, Ian F.; Sarkar, Debapriya. Bandwidth Regulation of Real-Time Traffic Classes in Internetworks, Computer Networks and ISDN Systems, Vol. 28, No. 6, April 1996, pp. 855 - 872. [4] Diot, Christophe; Huitema, Christian; Turletti, Thierry. Multimedia Applications should be Adaptive, ftp://www.inria.fr/rodeo/diot/nca-hpcs.ps.gz, HPCS'95 Workshop, August 1995. [5] Bolot, Jean; Turletti, Thierry. Adaptive Error Control For Packet Video in the Internet, Proceedings of IEEE ICIP '96, pp. 232-239, September 1996. [6] Wroclawski, John. Specification of the Controlled-Load Network Element Service (work in progress), Internet Draft draft-ietf-intserv-ctrl-load-svc-05.txt, May 1997. [7] Floyd, Sally. Comments on Measurement-based Admissions Control for Controlled-Load Services, ftp://ftp.ee.lbl.gov/papers/admit.ps.Z, July 1996. [8] RFC1889: Schulzrinne, Henning; Casner, Stephen L.; Frederick, Ron; Jacobson, Van. RTP: A Transport Protocol for Real-Time Applications, IETF, January 1996. [9] Floyd, Sally; Fall, Kevin. Router Mechanisms to Support End-to-End Congestion Control, ftp://ftp.ee.lbl.gov/papers/collapse.ps, Technical report, LBL, February 1997. [10] RFC1633; Braden, Bob; Clark, David; Shenker, Scott. Integrated Services in the Internet Architecture: an Overview., IETF, June 1994. [11] Le Boudec, Jean-Yves. Network calculus made easy, http://lrcwww.epfl.ch/PS_files/d4paper.ps, Technical Report 96/218, EPFL-DI, submitted to IEEE TIT, December 1996. [12] McCanne, Steven; Jacobson, Van; Vetterli, Martin. Receiver-driven Layered Multicast, ACM SIGCOMM '96, August 1996. Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 17] INTERNET-DRAFT draft-almesberger-srp-01.txt November 1997 7. Author's address Werner Almesberger Jean-Yves Le Boudec Institute for computer Communications and Applications Swiss Federal Institute of Technology (EPFL) CH-1015 Lausanne Switzerland email: almesber,leboudec@lrc.di.epfl.ch Tiziana Ferrari DEIS, University of Bologna viale Risorgimento, 2 I-40136 Bologna Italy and Italian National Inst. for Nuclear Physics/CNAF viale Berti Pichat, 6/2 I-40127 Bologna Italy email: ferrari@lrc.di.epfl.ch Almesberger, Ferrari & Le Boudec Expires 5/98 [Page 18]