cnpaf.net - 中国协议分析网

投递文章 投稿指南 RSS订阅 网站通告:
搜索: 您的位置主页>RFC文档>英文RFC文档>阅读文章

RFC 4495 - A Resource Reservation Protocol (RSVP) Extension for the Reduction of

11-02 03:19 来源: 作者: 【 评论:0 浏览:
Network Working Group                                               J. Polk
Request for Comments: 4495                                   S. Dhesikan
Updates: 2205                                                    Cisco Systems
Category: Standards Track                                       May 2006

       A Resource Reservation Protocol (RSVP) Extension for the
              Reduction of Bandwidth of a Reservation Flow

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document proposes an extension to the Resource Reservation
   Protocol (RSVPv1) to reduce the guaranteed bandwidth allocated to an
   existing reservation.  This mechanism can be used to affect
   individual reservations, aggregate reservations, or other forms of
   RSVP tunnels.  This specification is an extension of RFC 2205.

Table of Contents

   1. Introduction ....................................................2
      1.1. Conventions Used in This Document ..........................4
   2. Individual Reservation Reduction Scenario .......................4
   3. RSVP Aggregation Overview .......................................6
      3.1. RSVP Aggregation Reduction Scenario ........................8
   4. Requirements for Reservation Reduction ..........................9
   5. RSVP Bandwidth Reduction Solution ..............................10
      5.1. Partial Preemption Error Code .............................11
      5.2. Error Flow Descriptor .....................................11
      5.3. Individual Reservation Flow Reduction .....................11
      5.4. Aggregation Reduction of Individual Flows .................12
      5.5. RSVP Flow Reduction Involving IPsec Tunnels ...............12
      5.6. Reduction of Multiple Flows at Once .......................13
   6. Backwards Compatibility ........................................13
   7. Security Considerations ........................................14
   8. IANA Considerations ............................................15
   9. Acknowledgements ...............................................15
   10. References ....................................................15
      10.1. Normative References .....................................15
      10.2. Informative References ...................................16
   Appendix A. Walking through the Solution ..........................17

1.  Introduction

   This document proposes an extension to the Resource Reservation
   Protocol (RSVP) [1] to allow an existing reservation to be reduced in
   allocated bandwidth in lieu of tearing that reservation down when
   some of that reservation’s bandwidth is needed for other purposes.
   Several examples exist in which this mechanism may be utilized.

   The bandwidth allotted to an individual reservation may be reduced
   due to a variety of reasons such as preemption, etc.  In such cases,
   when the entire bandwidth allocated to a reservation is not required,
   the reservation need not be torn down.  The solution described in
   this document allows endpoints to negotiate a new (lower) bandwidth
   that falls at or below the specified new bandwidth maximum allocated
   by the network.  Using a voice session as an example, this indication
   in RSVP could lead endpoints, using another protocol such as Session
   Initiation Protocol (SIP) [9], to signal for a lower-bandwidth codec
   and retain the reservation.

   With RSVP aggregation [2], two aggregate flows with differing
   priority levels may traverse the same router interface.  If that
   router interface reaches bandwidth capacity and is then asked to
   establish a new reservation or increase an existing reservation, the

   router has to make a choice: deny the new request (because all
   resources have been utilized) or preempt an existing lower-priority
   reservation to make room for the new or expanded reservation.

   If the flow being preempted is an aggregate of many individual flows,
   this has greater consequences.  While [2] clearly does not terminate
   all the individual flows if an aggregate is torn down, this event
   will cause packets to be discarded during aggregate reservation
   reestablishment.  This document describes a method where only the
   minimum required bandwidth is taken away from the lower-priority
   aggregated reservation and the entire reservation is not preempted.
   This has the advantage that only some of the microflows making up the
   aggregate are affected.  Without this extension, all individual flows
   are affected and the deaggregator will have to attempt the
   reservation request with a reduced bandwidth.

   RSVP tunnels utilizing IPsec [8] also require an indication that the
   reservation must be reduced to a certain amount (or less).  RSVP
   aggregation with IPsec tunnels is being defined in [11], which should
   be able to take advantage of the mechanism created here in this
   specification.

   Note that when this document refers to a router interface being
   "full" or "at capacity", this does not imply that all of the
   bandwidth has been used, but rather that all of the bandwidth
   available for reservation(s) via RSVP under the applicable policy has
   been used.  Policies for real-time traffic routinely reserve capacity
   for routing and inelastic applications, and may distinguish between
   voice, video, and other real-time applications.

   Explicit Congestion Notification (ECN) [10] is an indication that the
   transmitting endpoint must reduce its transmission.  It does not
   provide sufficient indication to tell the endpoint by how much the
   reduction should be.  Hence the application may have to attempt
   multiple times before it is able to drop its bandwidth utilization
   below the available limit.  Therefore, while we consider ECN to be
   very useful for elastic applications, it is not sufficient for the
   purpose of inelastic application where an indication of bandwidth
   availability is useful for codec selection.

   Section 2 discusses the individual reservation flow problem, while
   Section 3 discusses the aggregate reservation flow problem space.
   Section 4 lists the requirements for this extension.  Section 5
   details the protocol changes necessary in RSVP to create a
   reservation reduction indication.  And finally, the appendix provides
   a walk-through example of how this extension modifies RSVP
   functionality in an aggregate scenario.

   This document updates RFC 2205 [1], as this mechanism affects the
   behaviors of the ResvErr and ResvTear indications defined in that
   document.

1.1.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [4].

2.  Individual Reservation Reduction Scenario

   Figure 1 is a network topology that is used to describe the benefit
   of bandwidth reduction in an individual reservation.

               +------------+            +------------+
               |     |Int 1 |            |Int 7 |     |
   Flow 1===>  |     +----- |            |------+     | Flow 1===>
               | R1  |Int 2 |===========>|Int 8 | R2  |
               |     |      |:::::::::::>|      |     |
   Flow 2:::>  |     +----- |            |------+     | Flow 2:::>
               |     |Int 3 |            |Int 9 |     |
               +------------+            +------------+

                   Figure 1.  Simple Reservation Flows

         Legend/Rules:

         - Flow 1 priority = 300
         - Flow 2 priority = 100
         - Both flows are shown in the same direction (left to
           right).  Corresponding flows in the reverse direction are
           not shown for diagram simplicity

   RSVP is a reservation establishment protocol in one direction only.
   This split-path philosophy is because the routed path from one device
   to the other in one direction might not be the routed path for
   communicating between the same two endpoints in the reverse
   direction.  End-systems must request 2 one-way reservations if that
   is what is needed for a particular application (like voice calls).
   Please refer to [1] for the details on how this functions.  This
   example only describes the reservation scenario in one direction for
   simplicity’s sake.

   Figure 1 depicts 2 routers (R1 and R2) initially with only one flow
   (Flow 1).  The flows are forwarded from R1 to R2 via Int 2.  For this
   example, let us say that Flow 1 and Flow 2 each require 80 units of
   bandwidth (such as for the codec G.711 with no silence suppression).

   Let us also say that the RSVP bandwidth limit for Int 2 of R1 is 100
   units.

   As described in [3], a priority indication is established for each
   flow.  In fact, there are two priority indications:

      1) one to establish the reservation, and

      2) one to defend the reservation.

   In this example, Flow 1 and Flow 2 have an ’establishing’ and a
   ’defending’ priority of 300 and 100, respectively.  Flow 2 will have
   a higher establishing priority than Flow 1 has for its defending
   priority.  This means that when Flow 2 is signaled, and if no
   bandwidth is available at the interface, Flow 1 will have to
   relinquish bandwidth in favor of the higher-priority request of Flow
   2.  The priorities assigned to a reservation are always end-to-end,
   and not altered by any routers in transit.

   Without the benefit of this specification, Flow 1 will be preempted.
   This specification makes it possible for the ResvErr message to
   indicate that 20 units are still available for a reservation to
   remain up (the interface’s 100 units maximum minus Flow 2’s 80
   units).  The reservation initiating node (router or end-system) for
   Flow 1 has the opportunity to renegotiate (via call signaling) for
   acceptable parameters within the existing and available bandwidth for
   the flow (for example, it may decide to change to using a codec such
   as G.729)

   The problems avoided with the partial failure of the flow are:

   - Reduced packet loss, which results as Flow 1 attempts to
     reestablish the reservation for a lower bandwidth.

   - Inefficiency caused by multiple attempts until Flow 1 is able to
     request bandwidth equal to or lower than what is available.  If
     Flow 1 is established with much less than what is available then it
     leads to inefficient use of available bandwidth.

3.  RSVP Aggregation Overview

   The following network overview is to help visualize the concerns that
   this specification addresses in RSVP aggregates.  Figure 2 consists
   of 10 routers (the boxes) and 11 flows (1, 2, 3, 4, 5, 9, A, B, C, D,
   and E).  Initially, there will be 5 flows per aggregate (Flow 9 will
   be introduced to cause the problem we are addressing in this
   document), with 2 aggregates (X and Y); Flows 1 through 5 in
   aggregate X and Flows A through E in aggregate Y.  These 2 aggregates
   will cross one router interface utilizing all available capacity (in
   this example).

   RSVP aggregation (per [2]) is no different from an individual
   reservation with respect to being unidirectional.

           Aggregator of X                             Deaggregator of X
                |                                          |
                V                                          V
             +------+   +------+            +------+   +------+
    Flow 1-->|      |   |      |            |      |   |      |-->Flow 1
    Flow 2-->|      |   |      |            |      |   |      |-->Flow 2
    Flow 3-->|      |==>|      |            |      |==>|      |-->Flow 3
    Flow 4-->|      | ^ |      |            |      | ^ |      |-->Flow 4
    Flow 5-->|      | | |      |            |      | | |      |-->Flow 5
    Flow 9   |  R1  | | |  R2  |            |  R3  | | |  R4  |   Flow 9
             +------+ | +------+            +------+ | +------+
                      |   ||                  ||     |
            Aggregate X-->||    Aggregate X   ||<--Aggregate X
                          ||        |         ||
               +--------------+     |      +--------------+
               |       |Int 7 |     |      |Int 1 |       |
               |       +----- |     V      |------+       |
               |   R10 |Int 8 |===========>|Int 2 | R11   |
               |       |      |:::::::::::>|      |       |
               |       +----- |     ^      |------+       |
               |       |Int 9 |     |      |Int 3 |       |
               +--------------+     |      +--------------+
                          ..        |        ..
           Aggregate Y--->..    Aggregate Y  ..<---Aggregate Y
                     |    ..                 ..     |
            +------+ | +------+            +------+ | +------+
   Flow A-->|      | | |      |            |      | | |      |-->Flow A
   Flow B-->|      | V |      |            |      | V |      |-->Flow B
   Flow C-->|      |::>|      |            |      |::>|      |-->Flow C
   Flow D-->|      |   |      |            |      |   |      |-->Flow D
   Flow E-->|  R5  |   |  R6  |            |  R7  |   |  R8  |-->Flow E
            +------+   +------+            +------+   +------+
               ^                                         ^
               |                                         |
       Aggregator of Y                              Deaggregator of Y

                 Figure 2.  Generic RSVP Aggregate Topology

         Legend/Rules:

         - Aggregate X priority = 100
         - Aggregate Y priority = 200
         - All boxes are routers
         - Both aggregates are shown in the same direction (left to
           right).  Corresponding aggregates in the reverse direction
           are not shown for diagram simplicity.

      The path for aggregate X is:

         R1 => R2 => R10 => R11 => R3 => R4

      where aggregate X starts in R1, and deaggregates in R4.

      Flows 1, 2, 3, 4, 5, and 9 communicate through aggregate A.

      The path for aggregate Y is:

         R5 ::> R6 ::> R10 ::> R11 ::> R7 ::> R8

      where aggregate Y starts in R5, and deaggregates in R8.

      Flows A, B, C, D, and E communicate through aggregate B.

   Both aggregates share one leg or physical link: between R10 and R11,
   thus they share one outbound interface: Int 8 of R10, where
   contention of resources may exist.  That link has an RSVP capacity of
   800 kbps.  RSVP signaling (messages) is outside the 800 kbps in this
   example, as is any session signaling protocol like SIP.

3.1.  RSVP Aggregation Reduction Scenario

   Figure 2 shows an established aggregated reservation (aggregate X)
   between the routers R1 and R4.  This aggregated reservation consists
   of 5 microflows (Flows 1, 2, 3, 4, and 5).  For the sake of this
   discussion, let us assume that each flow represents a voice call and
   requires 80 kb (such as for the codec G.711 with no silence
   suppression).  Aggregate X request is for 400 kbps (80 kbps * 5
   flows).  The priority of the aggregate is derived from the individual
   microflows that it is made up of.  In the simple case, all flows of a
   single priority are bundled as a single aggregate (another priority
   level would be in another aggregate, even if traversing the same path
   through the network).  There may be other ways in which the priority
   of the aggregate is derived, but for this discussion it is sufficient
   to note that each aggregate contains a priority (both hold and
   defending priority).  The means of deriving the priority is out of
   scope for this discussion.

   Aggregate Y, in Figure 2, consists of Flows A, B, C, D, and E and
   requires 400 kbps (80 kbps * 5 flows), and starts at R5 and ends R8.
   This means there are two aggregates occupying all 800 kbps of the
   RSVP capacity.

   When Flow 9 is added into aggregate X, this will occupy 80 kbps more
   than Int 8 on R10 has available (880k offered load vs. 800k capacity)
   [1] and [2] create a behavior in RSVP to deny the entire aggregate Y

   and all its individual flows because aggregate X has a higher
   priority.  This situation is where this document focuses its
   requirements and calls for a solution.  There should be some means to
   signal to all affected routers of aggregate Y that only 80 kbps is
   needed to accommodate another (higher priority) aggregate.  A
   solution that accomplishes this reduction instead of a failure could:

      - reduce significant packet loss of all flows within aggregate Y

   During the re-reservation request period of time no packets will
   traverse the aggregate until it is reestablished.

      - reduces the chances that the reestablishment of the aggregate
        will reserve an inefficient amount of bandwidth, causing the
        likely preemption of more individual flows at the aggregator
        than would be necessary had the aggregator had more information
        (that RSVP does not provide at this time)

   During reestablishment of the aggregation in Figure 2 (without any
   modification to RSVP), R8 would guess at how much bandwidth to ask
   for in the new RESV message.  It could request too much bandwidth,
   and have to wait for the error that not that much bandwidth was
   available; it could request too little bandwidth and have that
   aggregation accepted, but this would mean that more individual flows
   would need to be preempted outside the aggregate than were necessary,
   leading to inefficiencies in the opposite direction.

4.  Requirements for Reservation Reduction

   The following are the requirements to reduce the bandwidth of a
   reservation.  This applies to both individual and aggregate
   reservations:

   Req#1 - MUST have the ability to differentiate one reservation from
           another.  In the case of aggregates, it MUST distinguish one
           aggregate from other flows.

   Req#2 - MUST have the ability to indicate within an RSVP error
           message (generated at the router with the congested
           interface) that a specific reservation (individual or
           aggregate) is to be reduced in bandwidth.

   Req#3 - MUST have the ability to indicate within the same error
           message the new maximum amount of bandwidth that is available
           to be utilized within the existing reservation, but no more.

   Req#4 - MUST NOT produce a case in which retransmitted reduction
           indications further reduce the bandwidth of a reservation.
           Any additional reduction in bandwidth for a specified
           reservation MUST be signaled in a new message.

   RSVP messages are unreliable and can get lost.  This specification
   should not compound any error in the network.  If a reduction message
   were lost, another one needs to be sent.  If the receiver ends up
   receiving two copies to reduce the bandwidth of a reservation by some
   amount, it is likely the router will reduce the bandwidth by twice
   the amount that was actually called for.  This will be in error.

5.  RSVP Bandwidth Reduction Solution

   When a reservation is partially failed, a ResvErr (Reservation Error)
   message is generated just as it is done currently with preemptions.
   The ERROR_SPEC object and the PREEMPTION_PRI object are included as
   well.  Very few additions/changes are needed to the ResvErr message
   to support partial preemptions.  A new error subcode is required and
   is defined in Section 5.1.  The ERROR_SPEC object contained in the
   ResvErr message indicates the flowspec that is reserved.  The
   bandwidth indication in this flowspec SHOULD be less than the
   original reservation request.  This is defined in Section 5.2.

   A comment about RESV messages that do not use reliable transport:
   This document RECOMMENDS that ResvErr messages be made reliable by
   implementing mechanisms in [6].

   The current behavior in RSVP requires a ResvTear message to be
   transmitted upstream when the ResvErr message is transmitted
   downstream (per [1]).  This ResvTear message terminates the
   reservation in all routers upstream of the router where the failure
   occurred.  This document requires that the ResvTear is only generated
   when the reservation is to be completely removed.  In cases where the
   reservation is only to be reduced, routers compliant with this
   specification require that the ResvTear message MUST NOT be sent.

   The appendix has been written to walk through the overall solution to
   the problems presented in Sections 2 and 3.  There is mention of this
   ResvTear transmission behavior in the appendix.

5.1.  Partial Preemption Error Code

   The ResvErr message generated due to preemption includes the
   ERROR_SPEC object as well as the PREEMPTION_PRI object.  The format
   of ERROR_SPEC objects is defined in [1].  The error code listed in
   the ERROR_SPEC object for preemption [5] currently is as follows:

         Errcode = 2 (Policy Control Failure) and
         ErrSubCode = 5 (ERR_PREEMPT)

   The following error code is suggested in the ERROR_SPEC object for
   partial preemption:

      Errcode = 2 (Policy Control Failure) and
      ErrSubCode = 102 (ERR_PARTIAL_PREEMPT)

收藏此篇文章内容到:
Tags:
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 广告合作 - 网站地图 - 版权说明 - 网站历史 - 世界排名 - 加入收藏 - 设为首页 - 返回顶部