Internet DRAFT - draft-chadli-sipping-overload-sub-not
draft-chadli-sipping-overload-sub-not
Network Working Group Y. Chadli
Internet-Draft X. Marjou
Intended status: Standards Track France Telecom
Expires: August 29, 2009 February 25, 2009
An overload control package for the Session Initiation Protocol (SIP).
draft-chadli-sipping-overload-sub-not-02
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
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."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 29, 2009.
Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document.
Abstract
This document specifies an event package for the notification of
overload control using the Session Initiation Protocol (SIP) events
framework. The overload control package allows an upstream server to
Chadli & Marjou Expires August 29, 2009 [Page 1]
Internet-Draft Overload control package February 2009
retrieve overload control information from a downstream server and to
be notified when this information changes. This information is used
by the upstream server to adapt its flow toward the downstream server
and thus to avoid overloading it.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Motivations for using SUBSCRIBE/NOTIFY mechanism . . . . . . . 4
3.1. Implementation on server farm configuration . . . . . . . 4
3.2. Prioritization of overload control information . . . . . . 6
3.3. Securing overload control information . . . . . . . . . . 6
3.4. Exchanging Overload Information between Non-Neighbours
Elements . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5. Implementation on non-SIP servers . . . . . . . . . . . . 7
4. Event Package Definition . . . . . . . . . . . . . . . . . . . 7
4.1. Event Package Name . . . . . . . . . . . . . . . . . . . . 7
4.2. Event Package Parameters . . . . . . . . . . . . . . . . . 7
4.3. SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 7
4.4. Subscription Duration . . . . . . . . . . . . . . . . . . 7
4.5. NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 8
4.6. Subscriber Generation of SUBSCRIBE Requests . . . . . . . 8
4.7. Notifier Processing of SUBSCRIBE Requests . . . . . . . . 8
4.8. Notifier Generation of NOTIFY Requests . . . . . . . . . . 8
4.9. Subscriber Processing of NOTIFY Requests . . . . . . . . . 9
4.10. Handling of Forked Requests . . . . . . . . . . . . . . . 9
4.11. Rate of Notifications . . . . . . . . . . . . . . . . . . 9
4.12. State Agents . . . . . . . . . . . . . . . . . . . . . . . 9
4.13. Behavior of a Proxy Server . . . . . . . . . . . . . . . . 9
5. Application examples . . . . . . . . . . . . . . . . . . . . . 9
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
7. Security Considerations . . . . . . . . . . . . . . . . . . . 12
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
9.1. Normative references . . . . . . . . . . . . . . . . . . . 12
9.2. Informative references . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
Chadli & Marjou Expires August 29, 2009 [Page 2]
Internet-Draft Overload control package February 2009
1. Introduction
This document specifies an event package for the management of
overload control between nodes of a given network using the Session
Initiation Protocol (SIP) events framework. The overload control
package allows an upstream server to retrieve the load status of a
downstream server and to be notified when this status changes. This
information is used by the upstream server to adapt its flow toward
the receiving server to avoid overloading it.
[4] discusses the overload problem within SIP and provides
requirements for a solution. [5] discusses models and design
considerations for a SIP overload control mechanism. Both [4] and
[5] demonstrate the necessity to exchange explicit overload control
information between SIP entities in order to avoid network
congestion.
This document neither specifies the procedures and syntax for
reporting overload status information nor the rules for processing
this information. In fact, the nature of the overload control
information to be exchanged and the processing of this information by
both the upstream and the downstream entities may depend on the
nature of the network and on the provided services. There are two
approaches. In one approach, the upstream entity signals its current
load to the downstream entity and this latter uses this information
to adapt its traffic. In the other approach, the upstream entity
dictates explicit rules to be applied by the sending entity. In this
latter solution, different types of rules exist in the literature.
Even when only the load status is reported, different syntax may be
used.
Under overload conditions, in order to limit the amount of signalling
traffic and processing capacity used by the notification mechanism, a
downstream entity may decide to notify only a subset of the upstream
entities having subscribed to the overload events. How this subset
is determined is outside the scope of this document. A typical
criteria would be to send notifications to the upstream entities that
have been active during a pre-defined period before the overload
conditions are met.
2. Terminology
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" are to be interpreted as described in RFC 2119 [1].
This document also reuses the SIP terminology defined in RFC3261 [2]
Chadli & Marjou Expires August 29, 2009 [Page 3]
Internet-Draft Overload control package February 2009
and RFC3265 [3], and specifies the usage of the following terms:
Downstream entity: Network element that sends flows toward network
element, upstream entity. The nature of the sent flows depends on
the related network.
Upstream entity: Network element that receives flows coming from
another element entity, downstream entity. The nature of the
received flows depends on the related network..
3. Motivations for using SUBSCRIBE/NOTIFY mechanism
This section discusses the advantages of using a new SIP event
package to carry overload control information. The use of a
dedicated SIP subscription allows separating transport of this
information from the normal applicative traffic. This separation is
necessary to allow:
o The overload mechanism to be supported on SIP servers implemented
as a cluster of servers.
o Prioritizing overload control messages over normal signalling
traffic.
o Applying different security policies to overload control messages
and normal signalling traffic.
o Exchanging overload information between non-neighbours Elements
o The possibility to use the same mechanism by entities that do not
use SIP for their applications.
3.1. Implementation on server farm configuration
SIP server farms are often implemented as a cluster of servers with
one or more front-end servers. The front-end server interfaces to
the other network nodes and performs load balancing on the different
servers of the cluster. Support of such configuration is required in
[4]/ REQ 23. In such a case, the load control mechanism can be
implemented and managed only by front-end servers as only those
servers can know the overall load of the cluster. In case more than
one front-end server is used, we assume that each of them knows the
overall load of the cluster. The way each front-end server knows
this information is out of the scope of this document. When SIP
servers are implemented as a cluster of servers, two kinds of
configuration are possible, regarding the handling of SIP messages:
o The front-end server only dispatches out-of-dialog SIP requests to
the server farms and the subsequent SIP messages related to the
same SIP transaction or SIP dialogs do not go through the front-
end server (see Figure 1). In that case, the server of the farm
chosen to handle the initial SIP request modifies routing
information before forwarding the SIP request (e.g. Via and
Chadli & Marjou Expires August 29, 2009 [Page 4]
Internet-Draft Overload control package February 2009
Record-Route headers for a server acting as a SIP proxy) so that
the subsequent SIP messages of the related SIP transaction or
dialogs are directly routed to it. Supporting such configuration
requires to carry overload control information separately and
independently from normal signalling traffic.
|---------------------------------|
| +----------+ +----------+ |
| | Server 1 | | Server n |............................
| +----------+ +----------+ | .
| | | | |------.------|
| |..+----------+ | | | Adjacent SIP|
| |--| Front-End|----| | | server |
| | Server |=============================| |
| +----------+ | |-------------|
|---------------------------------|
==== Initial SIP requests of "normal" SIP traffic and Subsribe/
Notify(overload-control event)
.... SIP responses and in-dialog requests of "normal" SIP traffic
Figure 1: SIP Server implemented as cluster of servers: only initial
SIP requests go through the Front-End.
o All the SIP messages go through the front-end server. In such
configuration, the use of SUBSCRIBE/NOTIFY to carry overload
control information has the following advantages:
* Overload control information is sent asynchronously from the
normal SIP traffic. Thus, compared to transporting the
overload control information embedded into the normal traffic,
this information may be sent even when there is no normal
traffic to be sent to the downstream entity. Moreover, the
front-end server does not need to parse outgoing traffic in
order to insert this information.
* Identification of received messages carrying overload
information is easy. Compared to transporting the overload
control information embedded into the normal traffic, the
front-end server does not need to parse all the received
messages, able to carry this information, in order to extract
it.
Chadli & Marjou Expires August 29, 2009 [Page 5]
Internet-Draft Overload control package February 2009
|---------------------------------|
| +----------+ +----------+ |
| | Server 1 | | Server n | |
| +----------+ +----------+ |
| | | |
| | | | |-------------|
| | +----------+ | | | Adjacent SIP|
| |--| Front-End|----| | | server |
| | Server |=============================| |
| +----------+ | |-------------|
|---------------------------------|
====== All "Normal" SIP traffic & Sub/Not (overload-control event)
Figure 2: SIP Server implemented as cluster of servers: all SIP
messages go through the Front-End.
3.2. Prioritization of overload control information
In situation where the server is overloaded it's necessary that a
downstream entity is able to treat SIP messages carrying status
information with a high priority. Since the overload information is
carried within a dedicated SIP subscription, prioritization of such
messages is possible.
3.3. Securing overload control information
The overload status information of a server is sensitive and a server
may want to restrict the access to this information only to the
trusted elements. [4], in REQ 22, states that the mechanism must
allow disabling the reporting of load information towards upstream
targets based on the identity of those targets. In addition, REQ 5
of [4] states that the mechanism should not assume that it will only
be deployed in environments with completely trusted elements.
Moreover, overload information flow may represent a denial of service
attack vector. For example, false load information or bogus
restriction rules may be introduced into the signalling stream by a
third party in order to disrupt the application work flow.
The use of subscription mechanism allows a server to authenticate the
network element asking for this information. Moreover, in order to
avoid interception of this information by intermediary elements, it
is possible to apply a suitable and dedicated security mechanism to
the SIP messages transporting overload information.
Chadli & Marjou Expires August 29, 2009 [Page 6]
Internet-Draft Overload control package February 2009
3.4. Exchanging Overload Information between Non-Neighbours Elements
The use of SUBSCRIBE/NOTIFY mechanism within a SIP-based network
allows exchanging overload control information between network
elements that do not exchange directly normal signalling traffic.
Compared to encapsulating the overload control information into the
normal traffic, identification of the sending and receiving of
overload control information is naturally carried within Subscribe/
Notify messages. Exchange of overload control information between
non-adjacent elements may be useful in some configurations. For
instance, a home proxy may need to throttle the traffic coming from a
PBX that is connected through an outbound proxy. Throttling the
traffic directly from the PBX allows to avoid loading the outbound
proxy uselessly. In addition, this feature would allow centralizing
overload control management on nodes that have a wide visibility of
the overall network traffic. In the example given above, the home
proxy also knows the traffic flowing through the other outbound
proxies.
3.5. Implementation on non-SIP servers
Separating the transport of overload control information form normal
traffic makes the implementation of the mechanism possible on network
elements that are not in the path of normal SIP traffic, provided
that they implement a SIP user agent.
4. Event Package Definition
4.1. Event Package Name
The name of this package is "overload-control". As defined in [3],
this value appears in the Event header field present in SUBSCRIBE and
NOTIFY requests for this package.
4.2. Event Package Parameters
No parameters are defined for this event package.
4.3. SUBSCRIBE Bodies
This package defines no use of the SUBSCRIBE request body. If
present, it MUST be ignored.
4.4. Subscription Duration
The duration of a subscription is specific to SIP deployments and no
specific recommendation is made by this Event Package.
Chadli & Marjou Expires August 29, 2009 [Page 7]
Internet-Draft Overload control package February 2009
It is to be noted that a one-time fetch of an overload control
information, especially in case this information is the load status
of the server, can be accomplished by setting the 'Expires' parameter
to a value of zero, as specified in [3].
4.5. NOTIFY Bodies
The NOTIFY body MUST contain overload control information. This
document does not does not define any specific contents and syntax
for overload control information and delegates specification of
utilised MIME types for representing overload control information to
other documents. The overload control information to be carried
depends on the overload control mechanism in use.
The NOTIFY body MUST include a content corresponding to a MIME type
specified in the 'Accept' header of the SUBSCRIBE.
4.6. Subscriber Generation of SUBSCRIBE Requests
The subscribe message MUST contain the Event header set to overload
control and the Accept header indicating the supported MIME types.
4.7. Notifier Processing of SUBSCRIBE Requests
A successful SUBSCRIBE request results in a NOTIFY.
The SUBSCRIBE request for the overload control event SHOULD be either
authenticated or transmitted over an integrity protected SIP
communication channels.
If the identity of the entity sending the SUBSCRIBE message is not
allowed to receive overload control information, the notifier MUST
return a 403 "Forbidden" response.
If none of MIME types specified in the Accept header of the SUBSCRIBE
is supported, the Notifier SHOULD return 406 "Not Acceptable"
response.
4.8. Notifier Generation of NOTIFY Requests
As specified in [3], the Notifier MUST always send a NOTIFY request
upon accepting a subscription. Depending on the used overload
control mechanism, this MAY contain a body. For instance, if the
overload mechanism is based on reporting the load status, the first
NOTIFY SHOULD contain a body reporting the current load status.
If the SUBSCRIBE was received over an integrity protected SIP
communications channel, the Notifier SHOULD send the NOTIFY over the
Chadli & Marjou Expires August 29, 2009 [Page 8]
Internet-Draft Overload control package February 2009
same channel.
If an Accept header was received in the SUBSCRIBE message, the body
type of the NOTIFY request MUST correspond to one of the ones that
were indicated in this header.
4.9. Subscriber Processing of NOTIFY Requests
A Subscriber to this event package MUST adhere to the NOTIFY request
processing behaviour specified in[3].
If the NOTIFY contains several bodies, only the supported ones MUST
be considered. If no supported body type is present, the subscriber
SHOULD unsubscribe. The subscriber MUST also be prepared to receive
a NOTIFY request with no body. The subscriber MUST NOT reject the
NOTIFY request with no body. The subscription dialog MUST NOT be
terminated by a NOTIFY with no body.
Processing of supported bodies is outside the scope of this document.
4.10. Handling of Forked Requests
This Event package allows the creation of only one dialog as a result
of an initial SUBSCRIBE request as described in section 4.4.9 of [3].
It does not support the creation of multiple subscriptions using
forked SUBSCRIBE requests.
4.11. Rate of Notifications
The rate of notifications for overload control information will
depend on the overload mechanism in use. Hence, the event package
specification does not specify a throttling or minimum period between
NOTIFY requests.
4.12. State Agents
State agents are not applicable to this Event Package.
4.13. Behavior of a Proxy Server
There are no additional requirements on a SIP Proxy, other than to
transparently forward the SUBSCRIBE and NOTIFY methods as required in
SIP. However, Proxies SHOULD allow non-SIP URLs.
5. Application examples
The SUBSCRIBE/NOTIFY mechanism described in this document may be used
Chadli & Marjou Expires August 29, 2009 [Page 9]
Internet-Draft Overload control package February 2009
to implement any overload control mechanism that requires explicit
exchange of overload information. [5] discusses two implemention
models of an explicit overload control mechanism: hop-by-hop and end-
to-end.
Moreover, different types of information may be exchanged between
network elements depending on the used overload mechanism. [5]
discusses five types of overload control mechanism based on the type
of information conveyed between network elements:
o Rate-based Overload Control
o Loss-based Overload Control
o Window-based Overload Control
o Signal-based Overload Control
o On-/Off Overload Control
The SUBSCRIBE/NOTIFY based mechanism described in this document may
be used to implement all of the overload control mechanisms listed .
Although signal-based and On/Off overload mechanisms may be easily
implemented using 503 "Server Unavailable", the use of SUBSCRIBE/
NOTIFY may be justified in case these mechanisms are used in
conjunction with other mechanisms that require exchange of more
complex overload information or when there is a need to send the
overload information to a particular network element in the
signalling path
Hereafter, an example of XML schema for a Rate-Based Overload Control
mechanism:
Chadli & Marjou Expires August 29, 2009 [Page 10]
Internet-Draft Overload control package February 2009
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf::id:draft-chadli-sipping-overload-sub-not-02:params:xml:ns:overloadcontrol"
xmlns:ss="urn:ietf::id:draft-chadli-sipping-overload-sub-not-02:params:xml:ns:overloadcontrol"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="rulesList" type="ss:RulesList" />
<xs:complexType name="RulesList">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="element" type="ss:Rule" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Rule">
<xs:sequence>
<xs:element name="ruleID" type="xs:integer" />
<xs:element name="applicationCriteria" type="ss:ApplicationCriteria" />
<xs:element name="duration" type="ss:Duration" />
<xs:element name="rate" type="xs:double" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ApplicationCriteria">
<xs:sequence>
<xs:element name="applicationAddress" type="ss:ApplicationAddress" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ApplicationAddress">
<xs:annotation>
<xs:documentation>
Application layer address, e.g. SIP URI, phone number.
Some addresses may be wildcarded using a delimited regular expression.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string" />
</xs:simpleType>
</xs:schema>
Chadli & Marjou Expires August 29, 2009 [Page 11]
Internet-Draft Overload control package February 2009
6. IANA Considerations
This specification registers a new event package as defined in [3].
The following information required for this registration:
Package Name: overload-control
Type: package
Published specification: This document
Persons to Contact: Youssef CHADLI, Youssef.chadli@orange-ftgroup.com
7. Security Considerations
Overload information is particularly sensitive and access to this
information by malicious elements may increase the risk of security
attacks. At a minimum, subscriptions to this event package SHOULD be
authenticated and properly authorized. Furthermore, notifications
SHOULD be encrypted and integrity protected using either end-to-end
mechanisms, or the hop-by-hop protection afforded messages sent to
SIPS URIs.
8. Acknowledgements
The authors would like to thank Bruno Chatras (Orange) and Nick
Stewart (BT) for their contributions to this document.
9. References
9.1. Normative references
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", RFC 2119, March 1997.
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[3] Roach, Alan., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
Chadli & Marjou Expires August 29, 2009 [Page 12]
Internet-Draft Overload control package February 2009
9.2. Informative references
[4] Rosenberg, Jonathan., "Requirements for Management of Overload
in the Session Initiation Protocol", RFC 5390, May 2008.
[5] Rosenberg, Jonathan., "Design Considerations for Session
Initiation Protocol (SIP) Overload Control",
draft-ietf-sipping-overload-design-00 (work in progress),
May 2008.
Authors' Addresses
Youssef Chadli
France Telecom
38, avenue General Leclerc
Issy les Moulineaux 92130
France
Email: youssef.chadli@orange-ftgroup.com
Xavier Marjou
France Telecom
2, rue Pierre Marzin
Lannion 22307
France
Email: xavier.marjou@orange-ftgroup.com
Chadli & Marjou Expires August 29, 2009 [Page 13]