IST-2000-28584 MIND D1.2 Top-level architecture for providing seamless QoS, security, accounting

advertisement
MIND
1.2
IST-2000-28584 MIND
D1.2
Top-level architecture for providing seamless QoS, security, accounting
and mobility to applications and services
Contractual Date of Delivery to the CEC: 30 November 2002
Actual Date of Delivery to the CEC:
Author(s):
29 November 2002
see Author List
Participant(s): see Author List
Workpackage: WP1 - Applications and Services
Est. person months: 45 PM
Security:
Pub.
Nature:
R
Version:
1.0 (2 digits separated by a dot. The first digit is 0 for draft, 1 for project approved
document, 2 or more for further revisions requiring approval by the project)
Total number of pages: 317
Abstract:
This document investigates concepts and architectures for providing seamless QoS, security, accounting,
billing and mobility to applications and services using IP based networks. While the basic architecture BRENTA (presented in the BRAIN Project) - is a pure End-System-Centric QoS architecture, several
major and important enhancements are introduced to cover network aspects, AAA and Ad Hoc
requirements. Extensions to BRENTA are developed to include a full specification of an End-to-End
Negotiation Protocol for negotiating application layer QoS parameters and capabilities. Further, different
operating system QoS specific functionalities are studied, in order to analyse how ESI (an important
interface within BRENTA) functionality can be mapped to Windows and Linux platforms. The support of
terminals operating in an Ad Hoc environment is discussed considering necessary extensions to
BRENTA. A Domain Model defining different administrative network domains is derived from the use
cases of MIND Deliverable D1.1. Based on this model, an analysis of appropriate security aspects is
performed. Possible interactions between service and transport domains for setting up multi-stream
multimedia QoS-aware sessions are studied. A generic billing and accounting architecture is derived and
its relation to the service and transport domains is shown, based on some specific scenarios. Finally this
document includes an overview of the giving support to help specifying and evaluating application and
service level trials conducted by WP6 trials.
Keyword list: MIND, BRAIN, BRENTA, Beyond 3G, IP, E2ENP, Quality of Service, QoS, User,
Service, Application, Multimedia, Wireless, QoS Negotiation, QoS Framework, QoS Management,
End-to-End Negotiation, Adaptation Path, Service Domain, Transport Domain, Ad Hoc, AAA,
Security, Accounting, Billing, Scenario, Use Case, Domain Model
Page 1
MIND
http://www.unik.no/personer/paalee/
1.2
Page 2
MIND
1.2
Executive Summary
Distributed multimedia applications and services have stringent requirements with respect to the QoS as
in-time delivery of data is crucial for successful operation. Multi-homed terminals contribute to the
heterogeneity, which makes it even harder to provide consistent end-to-end QoS as the user wants to
perceive it. In this deliverable, the BRAIN End Terminal Architecture (BRENTA – developed in the ISTBRAIN project) is extended to provide seamless QoS, security, accounting, billing and mobility to
applications and services. The major challenge is to handle a heterogeneous environment, where
ubiquitous and mobile end-terminals communicate with each other.
Based on BRENTA several enhancements dealing with heterogeneous devices and Ad Hoc aspects are
proposed. An E2ENP is specified, which can be used by terminals to negotiate a common set of
capabilities, quality ranges and QoS parameters for multi-session, multi-stream, multimedia applications.
E2ENP is a meta-protocol based on the IETF protocol SIP (a protocol for media session establishment)
and extends the IETF protocol SDPng (a XML based session capability description protocol). Further, the
QoS support available for different operating systems is studied, namely the Linux and the Windows
platforms. This is required in order to provide a mapping between the ESI primitives to platform specific
QoS application programming interfaces. Additionally, various enhancements of BRENTA to deal with
Ad Hoc aspects are considered.
A Domain Model identifying the administrative domains within the network architecture is defined. The
basic Domain Model describes the MIND access network architecture in a generalised way that allows
flexible development of this architecture. The Domain Model considers various network configurations as
they can be formed without listing example configurations. The relations of the identified administrative
domains is expressed via reference points, which describe mutual trust relations, positions for protocol
stacks and interaction interfaces between them.
The Domain Model is then used in various aspects. It is extended further to include interworking between
Service and Transport administrative domains. Thus the service providers are enabled to manage and
control the resource consumption of the customers when establishing multimedia communications.
Additionally, a security analysis is conducted based on proposed protocol stacks at various reference
points within the Domain Model. The security analysis helps to identify potential threats and proposes
several security mechanisms. Finally, accounting and billing aspects are analysed in order to provide an
abstract accounting and billing architecture.
Finally, support for the user trials (Work Package 6) is provided by Work Package 1. Here, the focus is on
the MIND implementations within the domain of BRENTA. In particular, requirements are derived for
the implementations and some parts of the prototype are described, namely QoS enabled applications,
Traffic Control aspects and their interworking with the ISABEL application and finally QoS signalling
between ISABEL and the local mobility protocol BCMP.
Annex A provides a full-fledged specification of the E2ENP. Based on a requirement analysis, it details
the proposed extensions to SDPng, necessary for the negotiation of application level QoS parameters,
capabilities and adaptation paths for setting up multi-stream multimedia sessions. Some use cases with
SIP to demonstrate the E2ENP negotiation process are shown. Message sequence charts for various
scenarios (different possible message exchange sequences) are provided. The authors have followed and
participated to the discussions in the IETF MMUSIC WG concerning QoS and capabilities negotiation
and the on-going SDPng specification. However, in this work the drafted specification, based on an
original use of SDPng, partially diverges from the current status of the discussion in MMUSIC. The
major aim considered here is the better understanding of the E2ENP concepts in more concrete terms,
without waiting for the SDPng specification to be finalised. To this extent, it is planed in any case to
harmonise the E2ENP specification with the final SDPng version, or even contribute to the preparation
thereof, once the E2ENP concepts have been properly reviewed and have reached stable status after a
necessary testing phase.
Page 3
MIND
1.2
Authors
Partner
Name
Phone / Fax / E-mail
Siemens
Andriani, Susi
Phone: +49 89 722 59597
Fax:
+49 89 722 21882
E-mail: susi.andriani@icn.siemens.de
Agora Systems
Armuelles, Ivan
Phone: +34 679 877 087
Fax:
+34 91 336 7333
E-mail: ivan@dit.upm.es
Ericsson
Bascuñana Muñoz,
Alejandro
Phone: +34 91 339 4400
Fax:
+34 91 339 4001
E-mail: ecealbm@madrid.es.eu.ericsson.se
Siemens
Guenkova-Luy,
Teodora
Phone: +49 731 502 4148
Fax:
+49 731 502 4142
E-mail: guenkova@vs.informatik.uni-ulm.de
T-Nova
Hellwig, Christian
Phone: +49 30 3497 3514
Fax:
+49 30 3497 3515
E-mail: christian.hellwig@t-systems.com
T-Nova
Kollecker, Lars
Phone: +49 30 3497 3454
Fax:
+49 30 3497 3455
E-mail: lars.kollecker@t-systems.com
Siemens
Kassler, Andreas
Phone: +49 731 502 4146
Fax:
+49 731 502 4142
E-mail: kassler@informatik.uni-ulm.de
Agora Systems
Ruiz, Pedro M.
Phone: +34 91 533 5857
Fax:
+34 91 534 8477
E-mail: pedro.ruiz@agoratechnologies.com
SONY
Mandato, Davide
Phone: +49 711 5858 797
Fax:
+49 711 5858 468
E-mail: Mandato@sony.de
Page 4
MIND
1.2
Partner
Name
Phone / Fax / E-mail
NTT DoCoMo
Prasad, Anand R.
UPM
Dr. Robles Valladares, Phone: +34 91 549 5700
Tomás
Fax:
+34 91 336 7333
E-mail: trobles@dit.upm.es
NTT DoCoMo
Schoo, Peter
Phone: +49 89 5682 4211
Fax:
+49 89 5682 4300
E-mail: schoo@docomolab-euro.com
T-Nova
Tessier, Serge
Phone: +49 30 3497 3114
Fax:
+49 30 3497 3115
E-mail: serge.tessier@t-systems.com
T-Nova
Tirla, Octavian
Phone: +49 30 3497 2356
Fax:
+49 30 3497 2357
E-mail: octavian.tirla@t-systems.com
NTT DoCoMo
Wang, Hu
Phone: +49 89 5682 4214
Fax:
+49 89 5682 4300
E-mail: wang@docomolab-euro.com
Phone: +49 89 5682 4112
Fax:
+49 89 5682 4300
E-mail: prasad@docomolab-euro.com
Page 5
MIND
1.2
Table of Contents
1. Introduction ............................................................................................... 12
1.1
Purpose and Scope of this document ......................................................................................... 12
1.2
Structure of this Document........................................................................................................ 12
1.3
BRAIN Background .................................................................................................................. 13
1.3.1 Quality of Service Architectures ....................................................................................... 13
1.3.2 BRENTA Review ............................................................................................................. 14
2. BRENTA Refinements............................................................................... 17
2.1
The End-to-End Negotiation Protocol ....................................................................................... 17
2.1.1 E2ENP Terms Definition .................................................................................................. 18
2.1.2 The Concept ...................................................................................................................... 19
2.1.2.1
Coping With Unstable Environment Conditions ................................................... 20
2.1.2.2
Hierarchical QoS Specification.............................................................................. 20
2.1.2.3
Inter-stream QoS Constraints................................................................................. 20
2.1.2.4
Planning Counteractions Ahead............................................................................. 20
2.1.2.5
Independence from Network Aspects .................................................................... 21
2.1.2.6
Mapping of the Quality Settings on Codec Definition........................................... 21
2.1.2.7
Third-Party-Assisted Negotiation .......................................................................... 22
2.1.3 The Features...................................................................................................................... 22
2.1.4 Related Work .................................................................................................................... 24
2.2
Service Interface Implications ................................................................................................... 26
2.2.1 QoS support in Linux OS.................................................................................................. 26
2.2.1.1
Queuing Discipline ................................................................................................ 27
2.2.1.2
Classes ................................................................................................................... 27
2.2.1.3
Filters ..................................................................................................................... 28
2.2.1.4
Policing .................................................................................................................. 29
2.2.1.5
Traffic Control ‘tc’................................................................................................. 29
2.2.1.6
Framework for QoS Developing in Linux ............................................................. 30
2.2.2 QoS support in Microsoft Windows OS............................................................................ 34
2.2.2.1
The Host Protocol Stack ........................................................................................ 35
Page 6
MIND
1.2
2.2.2.2
QoS Service Provider............................................................................................. 39
2.2.2.3
Traffic Control API................................................................................................ 40
2.2.2.4
Traffic Control Providers....................................................................................... 40
2.2.2.5
Subnet Bandwith Manager and Admission Control Service.................................. 42
2.2.3 Linux and Windows Comparison with Respect to QoS Support ...................................... 42
2.2.3.1
QoS Support in Linux ............................................................................................ 42
2.2.3.2
QoS Support in Microsoft Windows...................................................................... 43
2.2.4 Mapping BRENTA Service Primitives ............................................................................. 43
2.3
2.2.4.1
Enhanced Socket Interface and BRENTA Architecture. ....................................... 43
2.2.4.2
Modelling the Enhanced Socket Interface ............................................................. 44
2.2.4.3
QoS Mechanisms Supported in BRENTA............................................................. 44
2.2.4.4
ESI Service Primitives ........................................................................................... 45
2.2.4.5
ESI QoS Parameters............................................................................................... 48
2.2.4.6
Mapping ESI to RAPI Function Calls.................................................................... 49
2.2.4.7
Mapping ESI calls to GQoS Function Calls .......................................................... 51
Ad Hoc and QoS Aspects .......................................................................................................... 55
2.3.1 MIND Project Vision ........................................................................................................ 55
2.3.2 Features of Mobile Ad Hoc Networks .............................................................................. 56
2.3.2.1
General Features of Ad Hoc Networks .................................................................. 56
2.3.2.2
QoS Issues ............................................................................................................. 56
2.3.2.3
Roles of an Ad Hoc Node ...................................................................................... 57
2.3.2.4
Basic Requirements of Ad Hoc End Terminals ..................................................... 58
2.3.3 QoS Architecture Proposals .............................................................................................. 59
2.3.3.1
Integrated Services on Ad Hoc Networks.............................................................. 59
2.3.3.2
Differentiated Services in Ad Hoc networks ......................................................... 61
2.3.3.3
End-to-End Adaptive Applications........................................................................ 62
2.3.4 Terminal Architecture Approach Design for Ad Hoc Node.............................................. 63
2.3.4.1
MANET Terminal Architecture and the IETF....................................................... 63
2.3.4.2
Adaptive Cross-layer Design ................................................................................. 63
2.3.5 BRENTA Features in the Context of Ad Hoc Networks .................................................. 64
Page 7
MIND
1.2
2.3.5.1
Considering Modifications in BRENTA................................................................ 65
3. Domain Model ........................................................................................... 67
3.1
Usage Scenarios......................................................................................................................... 67
3.1.1 Train Scenario ................................................................................................................... 68
3.1.2 Identification of Roles in the Train Scenario .................................................................... 68
3.2
Principles of the Domain Model................................................................................................ 70
3.2.1 Administrative Domain..................................................................................................... 70
3.2.2 Domain and Reference Point ............................................................................................ 71
3.2.3 Map of Roles to Domains ................................................................................................. 71
3.3
Domain Model for Train Scenario............................................................................................. 71
3.3.1 Basic Domain Model ........................................................................................................ 72
3.3.1.1
AN Content............................................................................................................ 72
3.3.1.2
SPN Content .......................................................................................................... 73
3.3.1.3
LN Content ............................................................................................................ 73
3.3.1.4
AAAB Content ...................................................................................................... 73
3.3.1.5
Reference Points .................................................................................................... 73
3.3.1.6
Trust Model ........................................................................................................... 75
3.3.2 Domain Model Including Mobile Ad Hoc Networks........................................................ 75
3.3.2.1
IAN content ........................................................................................................... 75
3.3.2.2
LN Content ............................................................................................................ 76
3.3.2.3
AN Content............................................................................................................ 76
3.3.2.4
Reference Points .................................................................................................... 76
3.3.2.5
Trust Model ........................................................................................................... 77
4. Interworking Service Domain/Transport Domain ................................... 78
4.1
Application Specific Domain Model Refinements .................................................................... 78
4.2
Service Domain and Transport Domain .................................................................................... 79
4.2.1 Application Plane.............................................................................................................. 81
4.2.2 Transport Plane ................................................................................................................. 81
4.2.2.1
Control Plane ......................................................................................................... 81
4.2.2.2
User Plane.............................................................................................................. 81
Page 8
MIND
1.2
4.2.3 Interactions between Service Domain and Transport Domain.......................................... 81
4.3
Service and Transport Validating Facilities............................................................................... 84
4.3.1 Registration Processing..................................................................................................... 84
4.3.2 Service Validating Facility................................................................................................ 87
4.3.3 Transport Validating Facility ............................................................................................ 90
4.4
Interworking Scenarios.............................................................................................................. 91
4.4.1 No Coupling...................................................................................................................... 92
4.4.2 Loose Coupling ................................................................................................................. 94
4.4.3 Tight Coupling .................................................................................................................. 96
4.4.4 Integrated .......................................................................................................................... 99
5. Security Analysis .................................................................................... 103
5.1
Methodology ........................................................................................................................... 103
5.2
Threat Analysis........................................................................................................................ 105
5.2.1 Identification of Assets ................................................................................................... 106
5.2.1.1
Context for Roles/Domains and Assets Identification ......................................... 106
5.2.1.2
Asset Identification .............................................................................................. 106
5.2.1.3
Assets for Roles and Domains in the Train Scenario........................................... 107
5.2.2 Identification of Threats.................................................................................................. 110
5.2.2.1
Catalogue of Threats............................................................................................ 110
5.2.2.2
From LN’s Point of View .................................................................................... 111
5.2.2.3
From IAN’s Point of View .................................................................................. 113
5.2.2.4
From AN’s Point of View.................................................................................... 113
5.2.2.5
From SPN’s Point of View .................................................................................. 114
5.2.2.6
From NP’s Point of View .................................................................................... 115
5.2.2.7
From VASP’s Point of View ................................................................................ 116
5.2.3 Summary of Threat Analysis .......................................................................................... 117
5.3
Protocol Stacks ........................................................................................................................ 118
5.3.1 Protocol Stacks and Reference Points ............................................................................. 118
5.3.2 AAAB Considerations .................................................................................................... 119
5.4
Security Mechanisms............................................................................................................... 121
Page 9
MIND
1.2
5.4.1 The Internet Approach .................................................................................................... 121
5.4.1.1
Mobile IP and IPSec ............................................................................................ 121
5.4.1.2
Mobile Router Support with Mobile IP ............................................................... 121
5.4.1.3
Global Connectivity for IPv4 Mobile Ad Hoc Networks .................................... 122
5.4.1.4
Extensible Authentication Protocol over IP (EAPoIP) ........................................ 122
5.4.1.5
Secure Socket Layer (SSL).................................................................................. 122
5.4.2 Wireless and Architecture-Specific Approaches............................................................. 123
5.4.2.1
GSM and UMTS.................................................................................................. 123
5.4.2.2
CHOICE Service Platform................................................................................... 123
5.4.2.3
802.1x .................................................................................................................. 123
5.4.3 Merging the Two Worlds ................................................................................................ 124
5.4.3.1
GSM SIM Key Generation for Mobile IP............................................................ 124
5.4.3.2
Windows for SMART Cards ............................................................................... 124
5.4.3.3
IEEE 802.1X RADIUS Usage Guidelines........................................................... 124
5.4.3.4
Inter-working Between IP Security and Performance Enhancing Proxies for
Mobile Networks ................................................................................................. 125
6. Accounting and Billing ........................................................................... 126
6.1
Value Chain Analysis .............................................................................................................. 127
6.2
Mobile Internet Roles Analysis ............................................................................................... 128
6.3
Domain Model Implementation............................................................................................... 132
6.4
Billing and Accounting Architecture....................................................................................... 133
6.4.1 Architecture Skeleton...................................................................................................... 133
6.4.2 Security measures for intra-domain and inter-domain accounting.................................. 134
6.5
Billing requirements ................................................................................................................ 134
6.6
Cost Allocation Model............................................................................................................. 135
6.6.1 Accounting Records ........................................................................................................ 135
6.7
Accounting & Billing Issues Related to Chapter 4.................................................................. 135
7. Support of User Trials ............................................................................ 138
8. Conclusion .............................................................................................. 141
9. References............................................................................................... 144
Page 10
MIND
1.2
10. Abbreviations .......................................................................................... 149
11. Figures and Tables ................................................................................. 153
11.1 Figures ..................................................................................................................................... 153
11.2 Tables ...................................................................................................................................... 155
12. Annex ....................................................................................................... 156
Page 11
MIND
1.2
1. Introduction
1.1 Purpose and Scope of this document
The objective of Work Package 1 (WP1) is to define and improve mechanisms for the rapid creation and
seamless provision of broadband Internet Protocol (IP) services and applications, to develop new business
and service models and to help specifying and evaluating application and service level trials conducted by
Work Package 6 (WP6) Trials. The purpose of this document is to report specific results from WP1
conducted during the Mobile IP based Network Developments (MIND) project. This results are also
based on the work done in BRAIN [BD12], [BD22].
This deliverable concentrates on the following aspects:
•
It analyses and refines a selected subset of BRain ENd Terminal Architecture (BRENTA)
features taking into account new developments like personal area networks, Ad Hoc networks,
and Quality of Services (QoS) aspects
•
It proposes an approach on how QoS can be supported in beyond 3G systems.
•
It investigates, defines and specifies suitable mechanisms for authentication, security and
accounting for the highly diverse usages of network that will take place within future mobile
networks.
•
It describes potential interactions between Service Domain and Transport Domain necessary in
order to negotiate end-to-end QoS including application plane and transport plane aspects
•
It investigates the billing and charging concepts in a MIND network
•
It helps to specify and evaluate application and service trials conducted by WP6, testing both
standard and especially adapted applications and services
These goals result in the main objective of the MIND project and are based on the BRAIN system
architecture studies, which enable full coverage of seamless IP-based services and security mechanisms
for users in hot spot areas and on the move. The main focus is to facilitate the rapid creation of broadband
multimedia services and applications that are fully supported and customised when accessed by future
mobile users from a wide range of wireless access technologies, such as Universal Mobile
Telecommunication System (UMTS), High Performance Radio LAN version 2 (HIPERLAN/2) and
Wireless Local Area Network (WLAN).
Experiences and knowledge gained in this process is then transferred to standardisation efforts in Europe
and beyond. In a follow up project, this specification can then be used to build a prototype system in order
to demonstrate the usability of this kind of a concept.
This document, Top-level architecture for providing seamless QoS, security, accounting and mobility to
applications and services, presents ideas of how to facilitate the rapid creation of broadband multimedia
services and applications. In addition to well known existing services, new kind of services will be
possible with the combination of wireless and broadband. This document provides also a security
analysis, the End-to-End Negotiation Protocol (E2ENP), and appropriate accounting and billing aspects
with a view on the evolved Domain Model (DM) that was derived from one of the usage scenarios.
This document should be of relevance for application designers and network designers in the area of
mobile communications.
1.2 Structure of this Document
This deliverable D1.2 is intended to provide an analysis from the application layer point of view of future
beyond 3G scenarios, BRENTA refinements, security analysis, and appropriate accounting and billing
aspects.
This deliverable is composed of a core report and an Annex A. While the core report covers all the major
work, the Annex A specifies a QoS negotiation protocol in detail.
Page 12
MIND
1.2
First, the core report takes a very brief look at the work done within the BRAIN project and tries to
analyse what has been missing when defining the BRENTA architecture. Here, we take into account new
developments and standardisation efforts like capability and QoS negotiation, personal area networks, Ad
Hoc networks, and QoS aspects. More specifically, in Chapter 2 we introduce the concepts of an E2ENP
that can be used to negotiate capabilities, application layer QoS parameters and alternative QoS contracts
for setting up multi-stream multimedia sessions. Then, we take a look at the extended service interface
defined in the BRAIN project and analyse how this can be realised with current off-the-shelf operating
systems like Linux or Win32. Finally, Chapter 2 explores issues and challenges that arise when running
BRENTA on Ad Hoc nodes. Based on usage scenarios developed in the BRAIN project, Chapter 3
derives a Domain Model (DM) that contains reference points. This DM is used throughout the rest of this
document. In Chapter 4, the DM is extended to cover Service Domain / Transport Domain interworking
scenarios necessary for setting up multimedia conferences. In Chapter 5 the DM is used to perform a
security analysis to identify potential threats and propose security mechanisms. Chapter 6 continues with
introducing accounting and billing aspects. Based on a value chain analysis and the DM, a reference
scenario of Chapter 4 is selected and extensions to cover accounting and billing aspects are proposed.
Chapter 7 describes the support given for the user trials of the MIND project and summarising this
deliverable and Chapter 8 gives the overall conclusion of this document.
The Annex A covers an in detail specification of the E2ENP. The E2ENP can be used to negotiate
Application level QoS, capabilities and adaptation paths for multistream multimedia sessions. It is based
on extensions to the Session Description Protocol new generation (SDPng) and uses Session Initiation
Protocol (SIP) as transport mechanism. Here, we first start with an use case and requirement analysis.
Based on the requirements we define a set of extensions to SDPng as an Extensible Markup Language
(XML) constructs and give various examples, how the E2ENP can be used together with SIP.
1.3 BRAIN Background
1.3.1 Quality of Service Architectures
In a distributed scenario, the user will communicate with another user at a certain quality that he would
like to express to the system that manages the communication process. We refer to this quality as end-toend QoS as the user wants to perceive it. For accessing services, the users utilise end-systems where
applications run. These applications use services provided by the operating system, use several
communication sessions, protocols and finally Input/Output (I/O) devices that are used by the end-system
to send (and receive) data over the network (access and core) to (from) the remote user.
In order to provide end-to-end QoS as the user wants to perceive it, QoS has to be managed at the endsystem (end-system QoS), which involves local resource management. But also, the network resources
have to be managed which results in management of network QoS. Only the combination of end-system
and network QoS provides QoS enabled end-to-end communication to the applications and the user (see
Figure 1-1). When providing distributed applications with end-to-end services that have well defined QoS
constraints, managing all technical aspects of QoS in one overall approach requires one single integrated
service management architecture. This should both include (communication) resources within the
networks, operating systems and (communication) devices within end-systems.
A QoS architecture consists of a set of QoS configurable interfaces that allow to formalise QoS in the
end-system and network, and a framework for integrating QoS control and management mechanisms
[AUR98]. While QoS control and management are functional similar, QoS management mechanisms
operate on a slower timescale [AUR98]. Collections of control and management units are thus necessary
to process the data flow through a computer system. The computer system can be a single machine or a
network-connected one. A QoS framework can export a QoS configurable interface to the applications
whose flows it manages. The QoS framework can include mechanisms such as media adaptation of the
streams (see for example [KKS01]) that it manages. At the same time it can also take care of the network
flow management, such as priority control and filtering of the flows.
Page 13
MIND
1.2
Figure 1-1 Coverage of a QoS Framework
A QoS Framework or architecture can be organised according to different criteria. The structure of the
QoS framework may encompass the network level, the application level or both of them. Frameworks that
take into account only the network level mainly address issues like flow management and network
resource management, using admission control at the network edges or packet handling mechanisms
inside the network. A typical example would be the Integrated Services (IntServ) architecture [BCS94].
Architectures that encompass only the application level are assuming that the underlying network is QoSenabled. They typically provide adaptation mechanisms at the application level to provide the correct QoS
for the media flows and adapt to QoS delivery based on network level treatment.
QoS architectures can be also distinguished according to the degree of integration. An integral QoS
architecture considers all the components that lay within and interact with a certain flow, i.e. all endsystems, network elements and all functional entities on the transmission path from the source to the sink.
On the other hand, a non-integral QoS architecture manages only parts of the end-to-end path, e.g. the
network or the end-systems only. Also, a QoS framework might be limited to the end-system thus
providing local resource management. A different kind of QoS framework might only manage network
resources or the resources of the local network subsystem, whereas other kind of architectures are
completely integrated into applications and provide reaction mechanisms based on monitoring
information. A typical example of a non-integral QoS architecture that covers the end-system is the
BRENTA [BD12]. In this document, BRENTA will be refined to include Ad Hoc aspects with respect to
network QoS, application layer QoS, capability/QoS negotiation and security/billing aspects. Together
with the BRAIN/MIND Work Package 2 (WP2) work ([BD22], [MD21] and [MD22]), BRENTA
provides an integrated QoS architecture that also covers network layers QoS aspects.
1.3.2 BRENTA Review
Future end terminal architectures for systems beyond 3G are envisioned to provide multimedia
applications with pre-defined QoS levels (based on profile information), which allow the applications to
adapt in a pre-determined way in front of fluctuating transmission quality or even service disruption.
Fulfilling this requirement means that all the peers participating in a given telecommunication session
(including eventually service providers) shall coordinate their efforts:
Page 14
MIND
1.2
•
By deciding how to deal with service adaptation/disruption, and
•
In managing the overall resources (i.e. inclusively the local peer and the network resources)
accordingly.
The conceptual work carried out during the BRAIN project concerning the BRAIN QoS Framework and
the BRENTA ([BD12], [BD22]) defines mechanisms to specify and manage QoS End-to-End including
mobile end-systems and IP based wireless access networks in the transmission path. One of the key points
is to manage QoS end-to-end from the users and media point of view and provide well-defined adaptation
strategies in the case that QoS at the network level cannot be guaranteed for the whole session. This is
likely to occur in mobile environments, because of potential handovers (horizontal and vertical) and error
rate patterns of wireless links in contrast to fixed networks.
Key features of BRENTA design are:
•
Modularity – Guarantees that existing/legacy applications can be used as they are, whereas more
complex middleware solutions can be gracefully introduced later as soon as they are available;
•
Openness – Allows BRENTA being interoperable with other architectures (e.g. active networks).
Furthermore, since BRENTA is mostly designed based on existing protocol standards (among
others – Internet Engineering Task Force (IETF)), this would guarantee future interoperability
with other standard applications of this kind and the easy integration of new features following
the successive development of these standards;
•
Flexibility – Allows coping with different media types by e.g. supporting downloadable codecs.
Furthermore, QoS-enabling components featuring standardised interfaces may also be
downloaded from a server during runtime in order to enhance the system.
In order to address both existing and future applications, BRENTA (see Figure 1-2) introduces a
classification of applications based on the degree of QoS awareness they feature. The components of the
BRENTA architecture and their functionality are thoroughly described in the BRAIN project deliverables
([BD12], [BD22]).
In the following sections we assume that the various peers participating in multiparty communication
sessions may generally take the role of media stream-sender and/or receiver. Additionally, we assume
some intermediate components may passively assist peers with the connection establishment and
management, e.g. by providing service and/or peer discovery functionality. The session management
features of BRENTA are further enhanced.
To this extent, the concept of E2ENP is introduced, which BRENTA applications Type C and/or
BRENTA QoS Brokers may advantageously use for negotiating capabilities and QoS Contracts and coordinating resource reservations among multiple peers. The goal of this protocol is to allow peers to cope
with otherwise unpredictable events resulting from QoS changes / QoS violations, by enabling the mobile
users' applications to efficiently and timely react to those events, by planning proper counteractions
ahead, in a coordinated manner with the remote end-peers. In this manner, whenever QoS changes / QoS
violations occur, agreements on how to most effectively adapt to the mutated conditions can be timely
reached among the peers.
This protocol can be implemented directly within the applications Type C and/or the BRENTA QoS
Broker, or (better) as part of the BRENTA Session Manager (SM). The SM can hold the E2ENP by using
the signalling means offered by existing Session Layer Protocols, like SIP, and piggybacking the protocol
information by leveraging the SDPng. The logic handling the information to be negotiated and the local
and network resource reservation mechanisms (the latter, as offered by the Enhanced Socket Interface
(ESI) and Local Manager interfaces) shall be in any case implemented by the applications Type C and/or
the BRENTA QoS Broker.
Page 15
MIND
1.2
Figure 1-2 Architecture of the BRAIN End Terminal – BRENTA
Additionally to extending the BRENTA SM functionality the ESI is being further developed with respect
to the application within different operating systems (Windows, Linux). To achieve this, the QoS
architectures implemented in these OSs were analysed and their interfaces were identified in order to find
out the QoS specific functionality applicable for such a generalised interface like ESI. The ESI QoS
functionality within a BRENTA should integrate these respective OS functionalities in order to provide
interoperability for different possible QoS aware applications.
Page 16
MIND
1.2
2. BRENTA Refinements
This chapter addresses the detailed analysis of a selected subset of the BRENTA features, chosen based
on their importance as enabling technologies for meeting the demanding requirements set forth in the
BRAIN and MIND projects:
•
The E2ENP, which is a protocol that peer BRENTA Applications Type C / QoS Brokers can
advantageously use for coordinate their efforts to achieve the desired QoS level in spite of
unstable environmental (terminal and/or network) conditions. In Section 2.1 the E2ENP
conceptual model is analysed in detail, whereas a thorough description of scenarios,
requirements, and complete specification of the protocol can be found in Annex A. Impact of
Authentication, Authorisation and Accounting (AAA) and security are discussed in Chapter 4.
•
The Enhanced Socket Interface (ESI), an interface abstracting transport-level QoS control and
data plane protocols. In Section 2.2 Linux/Win32 platform implications on potential
implementation of ESI are analysed in detail.
•
Finally, the overall BRENTA is revised considering the novel requirements stemming from the
MIND scenarios dealing with mobile Ad Hoc networks (Section 3.2).
2.1 The End-to-End Negotiation Protocol
The Internet has proven to be a successful architecture for delivering a broad set of electronic services
(including - among many others - telephony, electronic messaging, and audio/video (A/V) services), not
only to sedentary but also to nomadic users.
Micro/macro IP mobility and wireless IP technologies in fact pave the way to the full integration of the
Internet with the second and third generation of mobile phone systems. In order to achieve this goal, next
generation IP networks and applications will have to address the increasingly important challenges of
wireless access, mobility management, the provision of QoS, and multimedia services.
A paramount problem that mobile users will face within this context is how to cope with limited amounts
of resources at the end-systems and within the network, under unstable environmental conditions. It is
expected that mobile users will no longer be able to rely on their QoS contracts being supported over the
whole duration of a session by the network infrastructure, due to various reasons like: wireless link
quality degradations, handovers, limited amount of resources. By assuming proper resource overprovision
in the backbone, one can expect that these problems will most likely be concentrated in the access
network, especially in the radio part thereof and even on the end-systems.
Since users typically have business relationships with specific network providers (e.g. a subscription with
an Internet Service Provider (ISP) or a prepaid phone card), two possible types of handover may occur:
•
Horizontal handovers: occur within a given administrative domain of a network provider, and
within the same type of access network;
•
Vertical handovers: occur across two different types of access networks and/or across the
administrative boundary between two network providers.
When dealing with handovers, users must be prepared to face changes in network resource availability,
depending not only on the type of access network, but also on the type of business relationships the users
may have with the various network providers. In some extreme cases, the users might try to access the
network owned by a network provider, with whom the user has no business relationship at all, or which
offers limited amount of resources. Pricing aspects also play a key role.
Within this context, multiparty multimedia applications will need an effective and efficient way of
handling QoS fluctuations at the network layer.
In particular, the sheer negotiation of capabilities (like codecs) is hereby regarded as necessary but not
sufficient for meeting the users' QoS expectations. Intelligent, adaptive applications can in fact provide
predictive QoS on an end-to-end basis only if end-peers are able to negotiate also QoS aspects directly
affecting the application performance, according to the users' QoS expectations. This combined
Page 17
MIND
1.2
information enables applications effectively choosing the best adaptation strategy in reaction to a given
QoS fluctuation [BRA01].
Coping with the aforementioned issues, this document presents a concept for negotiation of capabilities
and QoS at the application level, triggered by QoS requirements of the end-user (the E2ENP concept),
which can be realised by either deriving a new specific protocol, or enhancing existing ones. As an
example of the latter option, a possible E2ENP implementation based on extensions of SDPng [KUT01] ,
[KUT02] and on the use of SIP [ROS01] is also discussed.
2.1.1 E2ENP Terms Definition
Adaptation Path (AP): An ordered set of QoS contracts that end-systems use for employing adaptation
strategies in a pre-planned way. The nominal QoS contract indicates the one the end-system should
preferably try to enforce. Should this not (or no longer) be possible, the AP offers alternative QoS
contracts (and, optionally, specific rules for choosing them) for degrading the QoS level in a controlled
way. Alternatively, by monitoring the system resources and discovering free resources, the AP allows the
respective upgrading of the QoS level by using higher-graded QoS contract/-s.
Application Level QoS: An end-system internal representation of QoS specification (e.g. XML
description) derived from User Level QoS specification. Typically, application level QoS is expressed as
a set of parameters that are subject to negotiation with the peer. Such parameters should, together with the
capabilities to be used, allow a peer to derive parameters necessary for resource management for the local
terminal and for the network. Some examples are framerate, framesize, visual quality and so on.
Capability: The ability to perform certain tasks and/or to handle certain information types. A single
capability is associated with a certain amount of hardware and/or software resources (each handling a
given information type) and can be configured to produce different QoS levels. On the other hand a given
QoS level can be associated with different capability sets (e.g. different codecs can offer the same QoS
level).
Intermediate Components (IM): Any network element situated on the signalling and/or the data path
between two end-systems and which can understand the protocol the end-systems use (at least on the
network level). Examples are: routers, proxies, independent services, etc.
Mediator: The role an end-peer can take for redirecting incoming calls to another end-peer(s) according to
some settings in the user profile. A part of this role is to provide QoS satisfaction for the user(s) in a way
the Mediator itself (considering the end-peer's multimedia capabilities) cannot handle.
Peer: A service or an end-device (associated with an end-user). This term has equivalent meaning with
the terms end-peer and party, which are interchangeably used throughout this document.
QoS change: The change of the QoS contract initiated by the service user or by an application within the
context of a predefined AP.
QoS contract: An agreement between a service user and a service provider, specifying QoS requirements
and constraints, as well as the policies required to keep track of a single QoS level during the given
service execution.
QoS level: A discrete region of the multidimensional QoS space characterising a service. Users perceive
distinct QoS levels as the result of applying certain QoS contracts to the given services.
QoS parameter: A functional representation of a single characteristic of a given QoS aware service (e.g.
network bitrate, network overall end-to-end delay, but also parameters like video frame rate, video frame
size, audio sampling rate, number of audio channels, etc.), which identifies a measurable QoS related
quantity.
QoS profile: A collection of data specifying the end-peer preferences in terms of QoS, concerning the
usage of a given service. The QoS profile is the end-system internal representation of the user's QoS
preferences within a QoS aware system. The QoS profile can contain one or several Application Level
QoS specifications.
Page 18
MIND
1.2
QoS violation: The violation of one or several QoS contracts within an AP, caused by the network and/or
Service Provider and/or local system. The violation indicates a media session state (i.e. resources
consumption), which has not been predefined in the AP.
Transport Level QoS: A set of parameters related to resource management level in the protocol stack and
for controlling access to network resources. Typically such parameters set defines the amount of data the
user is injecting in the network for a given data flow together with the expected treatment that it should
receive on an end-to-end basis within the network.
User Level QoS specification: The QoS as users expect to perceive, eventually expressed in non-crisp
terms by non-expert users. This QoS specification is an application-specific issue, depending on user
interface aspects.
2.1.2 The Concept
This section defines requirements for an efficient end-to-end QoS signalling mechanism for dealing with
multiparty, multimedia services. This concept also embraces the case of multi-streams applications like
online-games combined with A/V sessions.
The "handling of QoS" shall be achieved through the negotiation of hardware/software configuration
information and the negotiation and enforcement of QoS contracts, which are derived from the user
preferences:
•
QoS contract shall capture user's QoS expectations, as well as network provider policies for
enabling a comprehensive QoS adaptation process (this means for instance to control that the
QoS levels fit into the predefined policies, or to control the amount of resources by up/downgrading QoS upon detection of QoS changes / QoS violations);
•
QoS contract shall also capture configuration information concerning network resources, as well
as the resources and capabilities of the involved QoS aware end-systems (for instance, some
codecs like variable bit rate video-codecs can be differently pre-set to produce different QoS
directly perceivable by the user: the sheer definition of codecs is thus not sufficient for
determining the amount of local and network resources to reserve when QoS should be
supported).
Before starting a negotiation, each end-peer shall derive the negotiable QoS contracts from existing
information concerning both users' QoS expectations and type/amount of available resources, by possibly
applying the following refinement/validation process:
1.
Users specify the User Level QoS;
2.
Applications derive Application Level QoS by mapping User Level QoS into QoS
contracts detailing specific aspects (e.g. video frame rate, video frame size, image
quality, etc);
3.
The mapping of Application Level QoS on the end-system capabilities (i.e. the endsystem hardware and software configuration - e.g. supported codecs), originates QoS
contract Sketches, which represent the Application Level QoS that the end-system can
theoretically support;
4.
The validation of QoS contract Sketches against network provider policies for
supporting QoS, originates Validated Application Level QoS contracts. These valid
contracts constitute a common vocabulary, which the local and the remote end-systems
can use for negotiating the establishment of QoS aware communications, and for
efficiently dealing with QoS re-negotiations thereof. Those Application Level QoS,
which have failed the validation, could still be used in special cases like vertical
handovers, dynamic end-system changes (e.g. due to end-system up-/downgrading), etc.
For the sake of simplicity, this document refers thereinafter to "Validated Application Level QoS
contracts" as "Application Level QoS". These are the negotiable QoS contract end-peers are expected to
deal with during QoS negotiations and QoS re-negotiations.
In order to allow end-peers reserving network resource in a coordinated manner, during the negotiation
process the sender side can derive network-level QoS contracts (e.g. the Traffic Information (TI) and
Page 19
MIND
1.2
Sensitivity Information (SI) information presented in [BOS02] ) from the negotiable Application Level
QoS.
2.1.2.1 Coping With Unstable Environment Conditions
In order to allow users achieving QoS with limited amounts of resources at the end-system and in the
network, under unstable environment conditions, the application developers and the users shall be
prepared to increase renegotiation speed, for instance by proactively planning proper actions at
negotiation time. As aforementioned, QoS Contract information is complementary to capability
information. As such, the E2ENP may advantageously negotiate QoS Contracts and capabilities
independently. For instance some codecs might be dynamically downloadable: having negotiated QoS
contracts independently of such codes, allows end-peers saving time (critical aspect of re-negotiations),
by simply referencing the pre-negotiated QoS contracts and binding the newly available codecs with
those contracts.
2.1.2.2 Hierarchical QoS Specification
Grouping streams is mainly useful for allowing QoS aware applications to handle groups as a whole when
balancing quality to resource availability under certain environmental conditions. For instance, in online
gaming applications it can make sense to augment the gaming experience by allowing each player to keep
in audio/visual contact with the other players. To this extent, it is possible to distinguish (and therefore
treat differently) various groups of streams, each grouping all the streams between the given player and
another player. The description of these groups of streams is subject to negotiation.
Furthermore, the developers and the users of multiparty multimedia applications dealing with multiple
streams may advantageously arrange streams by recursively applying the grouping process, based on
high-level criteria aiming to improve resources orchestration among multiple streams. For instance, a
player can arrange the A/V streams by identifying multiple concurrent instances of audio- or
videoconferences, one with the own team members and one with each other team. This optional form of
streams grouping is managed locally by the end-peers (and thus is not subject to negotiation).
The resulting hierarchical structure is topologically equivalent to a tree, where each leaf represents a
stream, and each internal node represents a group of streams (or, recursively, of groups).
2.1.2.3 Inter-stream QoS Constraints
Multi-media applications may deal with multiple streams of different types (i.e. audio, video, and data).
To this extent, users of such applications may wish to specify their QoS preferences for each single
stream, but also any parameter that might determine inter-stream behaviour. Typically, videoconference
applications deal with voice and video streams, which must be synchronised (time synchronisation). If the
media codec and stream format itself does not provide means for synchronising; it is a requirement that
inter-stream correlation information is available and negotiated.
This correlation can be generalised by introducing the specification of QoS constraints applicable to a
given bundle of streams (QoS correlation). The decision of what level of correlation should be enforced at
the QoS level among a set of streams, depends on the scenario and the requirements of the application.
The introduction of the time synchronisation and QoS correlation aspects augment the overall possibilities
to specify and manage QoS within a QoS aware system.
2.1.2.4 Planning Counteractions Ahead
A possible way to cope with otherwise unpredictable events resulting from QoS changes / QoS violations,
is to enable the mobile users' applications to efficiently and timely react to those events, by planning
proper counteractions ahead, in a coordinated manner with the remote end-peers. In this manner,
whenever QoS changes / QoS violations occur, agreements on how to most effectively adapt to the
mutated conditions can be timely reached among the peers.
These counteractions include:
•
Negotiating multiple alternative QoS levels for a stream;
Page 20
MIND
1.2
•
Negotiating multiple alternative QoS levels for a group of streams, to capture time
synchronisation, QoS correlation, and other inter-stream QoS constraints;
•
Co-ordinating local-, remote-, and network-resource management.
2.1.2.5 Independence from Network Aspects
The end-peers are in general connected over one or a multiplicity of interconnected networks, including
also IM. In terms of SIP the SIP-proxies are considered as IM. The IMs as such are in position to inspect
and change the passing through them protocol payloads thus interfering with protocols like E2ENP, e.g.
such SIP based proxies are the 3rd Generation Partnership Project (3GPP) proxies [3GPPSIP] (see also
for details Chapter 4). E2ENP is supposed to operate based on an abstraction of the underlying network
and in order to provide real end-to-end negotiation and conformance of the so delivered QoS information,
E2ENP defines some behaviour rules and restrictions on the IMs functionality.
Since the IMs offer services that not only may influence the information that end-peers eventually
negotiate via E2ENP, but also may enforce the results of the E2ENP process, IMs should be informed
about the decision made by the end-peers.
IMs may be informed by providing them with some standard-profile information before the start of
E2ENP, and/or by publishing the agreed QoS contracts, e.g. via a directory service.
In order to satisfy the user QoS expectations and the network provider QoS policies, the following is
suggested:
•
The E2ENP should be able to be used in combination with (but independently from) IM, which
may result effective in preparing and/or guaranteeing the QoS contracts agreed by the end-peers;
•
The exchange of information (e.g. profiles, security, authentication, provider policies, etc.) not
directly affecting the E2ENP-process, rather influencing the information that is going to be
negotiated, should be carried out before the E2ENP starts.
In general the flows carrying E2ENP messaging (the signalling-path) and the flows carrying the actual
streams (the data-path) could be routed differently, depending not only on network-related issues, but also
on application/service specific reasons. Thus the E2ENP signalling-paths and the corresponding datapaths between any two given end-peers should be in general considered different.
Every time a signalling-path and/or data-path is built, there may be some IMs (proxies, directory services,
etc.) located along the path, whose usage is application-specific, and which might "understand" some of
the protocols used by the end-peers. Some of these entities might thus be able to "interfere" with the
E2ENP, thus disrupting the very "End-to-End" nature of the E2ENP. In order to avoid this threat, it is
suggested that:
•
With respect to the E2ENP, Intermediate Components should operate based only on information
provided - directly or indirectly - by the peers, in order to carry out application specific tasks;
•
Exception cases when the involvement of the IMs is inevitable, should also be considered. Thus
the IMs should be allowed to interfere with the E2ENP only by explicitly notifying the end-peers
about the occurred problems, and only when end-peers misbehave, e.g. by disregarding system
policies and/or in case of system failure conditions.
2.1.2.6 Mapping of the Quality Settings on Codec Definition
When user-defined audio quality settings are associated with codecs according to the standard static
payload-type definitions of the codecs [SCH01] , each QoS level can be mapped to one audio payload
type expressing such QoS level. On the other hand a single variable bit rate video-codec can produce
multiple QoS levels with respect to the quality of the single video frame and - in some cases - the quality
of the colour of a single frame.
A user-defined QoS level can be applied to a video by defining a compression percentage for the
performance of the video codec. However, some video codecs have different number of compression
levels. When an application based on the users requirements selects a constant video quality and accepts a
variable bit rate coder, the application would derive from the QoS level "visually perceivable quality =
Page 21
MIND
1.2
X", an unique number expressing the compression level for the video codec. Thus, in order to better apply
QoS settings to a codec, it is suggested that:
•
Applications should share a numbering range for the user perceivable quality specification
(overall “visual quality” and eventually, if applicable, “colour quality” – i.e. some codecs do not
support “colour quality”), in order to be able to uniquely map video quality to a given codec;
•
The numbering range for the user perceivable quality specification should have enough
resolution to uniquely map to the compression levels of a given codec.
2.1.2.7 Third-Party-Assisted Negotiation
End-peers may leverage services like directory, allocation, presence, etc. for redirecting connections over
alternative end-systems, which can more appropriately meet users' QoS expectations because of more
appropriate capabilities.
In these cases, end-peers should be able to negotiate on behalf of other end-peers, according to specific
user profile information. This type of negotiation is called third-party-assisted negotiation. By third-partyassisted negotiation a pure Mediator should only facilitate the delegation of a connection without actively
taking part in it.
2.1.3 The Features
To cope with QoS Violations and/or QoS Changes, peers normally engage in QoS negotiations and
renegotiations processes. More specifically, we name End-to-End QoS Full Negotiation the process that
peers perform - either before or at the actual start of a session - in order to agree on a given QoS-level to
be enforced for the given session and streams, eventually by redefining some of the originally proposed
configurations of QoS specifications, coming from previously performed negotiations (further also named
pre-negotiations). By End-to-End QoS Full Re-Negotiation we refer to the process that peers trigger upon
detection of either QoS Changes or QoS Violations, in order to agree on a given QoS-level to be enforced
for the given session and streams, eventually by redefining some of the originally proposed configurations
of QoS specifications.
As aforementioned, BRENTA allows peers pro-actively negotiating APs among themselves before the
actual media streams are established, in order to effectively and efficiently react to QoS Violations and/or
QoS Changes, whenever these occur. To this extent, the E2ENP is an application-level protocol that
BRENTA Applications Type C or BRENTA QoS Brokers can use for co-ordinating with peer ones. The
E2ENP allows mobile peers to cope with unstable environment conditions, by enabling their applications
to efficiently and timely react to QoS changes and/or violations, by pre-planning the possible
counteractions ahead.
The E2ENP allows peers negotiating off-line APs for each level of the aforementioned tree model, so that
at runtime they can perform negotiation and re-negotiations by simply exchanging QoS Contract
identifiers. The E2ENP is based on a non-iterative negotiation process, whereby peers simply exchange
among themselves information on a set of pre-negotiated APs.
Furthermore, the E2ENP includes a specific procedure for effectively enforcing QoS contracts, by
applying the so-called “Economy Principle”. According to this principle, local and peers' resources are
reserved before any network resource reservation is made. This is motivated by the fact that network
resources are shared among a multiplicity of users, and thus are more expensive than terminal resources.
The E2ENP comprises four key phases, which can be concatenated within the lifetime of a given session.
Alternatively, the first two phases may be executed independently of the latter two and at different times,
but strictly following the given order. More specifically, the phases are:
•
End-to-End QoS Pre-Negotiation Phase
Peers perform this phase before the actual start of a communication session, and independently
of the session itself, in order to reach an agreement on which capabilities (i.e. codecs and QoS
mappings of those codecs) peers should later use for a media session. Peers are thus able to
establish a common vocabulary (i.e. the common capabilities and QoS setups), a priori of any
specific business (i.e. media session). Thus the peers express their basic possibilities and wishes
for supporting any media session in the future. During this phase, the negotiation initiator (the
Page 22
MIND
1.2
offerer) proposes a bid to the negotiation responders (the answerers), which in turn reply with a
counteroffer (i.e. a subset of the proposed bid coming from the offerer).
•
Multi-stream QoS Correlation and Time Synchronisation Enforcement Phase
An optional phase concerning the establishment of dependencies among the multiple streams of
a given multimedia session. A given peer applies this phase only if QoS correlation and/or time
synchronisation constraints are required. A central control entity (e.g. a conference call bridge)
could also employ this phase, should the various peers agree upon delegating such entity to carry
out complex negotiations.
•
End-to-End QoS Compact Negotiation Phase
Peers can perform this phase either before or at the actual start of a session, in order to agree on
how the QoS APs at the different QoS abstraction levels (e.g. stream, group of streams, etc.) look
like for this specific session and about which QoS-level to enforce for the given session and
streams, based on results of previously applied phases. This Compact Negotiation is
considerably quicker compared to the case of an End-to-End QoS Full Negotiation process, since
only references of pre-negotiated information are actually exchanged among the peers. At
completion of this process, peers have agreed upon the QoS Contracts that they are going to
enforce.
•
End-to-End QoS Compact Re-Negotiation Phase
Peers can trigger this phase upon detection of QoS Violations or QoS Changes, so as to agree on
a new QoS-level to enforce for the given session, based on results of a previously applied Endto-End QoS Pre-Negotiation / End-to-End QoS Negotiation. This process is considerably faster
compared to the case of the End-to-End QoS Full Re-Negotiation one, since only references of
pre-negotiated information are actually exchanged among peers. This phase can be applied
several times during the lifetime of any given session. In cases of QoS violation the End-to-End
QoS Compact Re-Negotiation Phase delivers eventually new additional capabilities and updated
APs descriptions in order to adapt to the unexpectedly occurred environmental changes, due to
both upgrading or downgrading of the capabilities of the end-peer or due to network throughput
fluctuations, which have not been taken in account in the previously negotiated capabilities and
APs.
The payloads of the three initial key phases of E2ENP result in End-to-End QoS Full Negotiation
payload. End-to-End QoS Full Negotiation is performed before or at the actual start of a multimedia
session. The combination of the payloads of all E2ENP phases result in End-to-End QoS Full ReNegotiation payload. End-to-End QoS Full Re-Negotiation is performed within the lifetime of a running
multimedia session.
The E2ENP interacts with the resource management functions during all the four phases. More
specifically, the E2ENP interacts with the local and network resource management functions during both
the third and forth phase, according to the "Economy Principle". The rules for handling the
joining/leaving of peers to a conference service are heavily dependent on the type of management applied
to the given communication sessions. This can eventually involve external mechanisms and protocols,
which are outside of the scope of the E2ENP.
The E2ENP is envisioned to be implemented as an application level protocol for both peer-to-peer and
multiparty scenarios, by considering existing models [ROS03] . A possible E2ENP implementation can
be realised by combining special extensions of SDPng [KUT02] with a particular use of SIP. The idea is
to use a new specific extension of SDPng for modelling the E2ENP information, and to piggyback such
information on SIP PDUs [ROS01] .
The following list indicates the proposed SDPng extensions.
•
An important part of the implementation is the use of modularity for the elements by applying
SDPng and extensions of it. This would enable to use SDPng with and without the new
extensions.
•
The modularity of the SDPng extensions should enable the end-to-end negotiating parties to
quickly reach agreements on common codecs, payload types and codec parameterisations thus
possibly optimising the decisions on commonly supported QoS contracts.
Page 23
MIND
1.2
•
For describing the QoS contracts it is necessary to have SDPng elements for mapping the
Application Level QoS descriptions onto the codecs and the payload types. A single QoS
contract would be in these terms the QoS settings of a single media stream.
•
It is suggested to enrich at the sender side the negotiated Application Level QoS contracts with
the TI and SI information presented in [BOS02] , for allowing the end-peers to perform resource
reservation in a coordinate manner.
•
It is necessary to distinguish between the different streams (audio, video) and data types (data,
control) in the definition of the QoS contracts for a communication session.
•
Considering the video codecs, the parameterisation indicated in [SCH01] is not sufficient to fully
characterise the given codec from a QoS perspective. That is why it is necessary to introduce
codec parameterisation attributes like frame-rate, frame-size, colour-quality-range, overallquality-range, etc. which should be uniquely interpreted by the end-systems.
•
It is necessary to introduce descriptions and parameterisations for non-streaming data.
•
It is necessary to provide means for managing user, system, and provider policy information at
least by defining which of the proposed QoS contracts the QoS aware system may support
during a negotiation.
•
For defining APs new SDPng elements are needed for formally configuring the adaptation
process correspondingly, in accordance with the envisioned QoS changes and/or violations.
•
For defining stream grouping it is necessary to introduce new SDPng elements with respect to
(eventually hierarchical) group definition, and QoS correlation / time synchronisation aspects.
The following SIP features for implementing the E2ENP processes are identified:
•
Signalling for carrying out the pre-negotiation, negotiation and re-negotiation.
•
Means for co-ordinating resource management among multiple parties (common example given
in [MAR02] ).
•
Transporting and recognising the E2ENP content expressed as SDPng content.
We have followed and participated to the discussion in the IETF Multiparty Multimedia Session Control
Working Group (MMUSIC WG) concerning QoS and capability negotiation and the on-going SDPng
specification. However, in our work we drafted a specification based on an original use of SDPng, which
partially diverges from the current status of the discussion in MMUSIC. We took this decision, for the
sake of explaining the E2ENP concepts in more concrete terms, without waiting for the SPDng
specification to be finalised. To this extent, we plan in any case to harmonise our specification with the
final SDPng version, or even contribute to the preparation thereof, once the E2ENP concepts will have
been properly reviewed after a necessary testing phase.
2.1.4 Related Work
This section discusses existing solutions and/or proposals in the field of QoS aware end-to-end
negotiations, and highlights the shortcomings of the respective existing signalling mechanisms (in-band –
Real Time Transport Control Protocol (RTCP), out-band – SIP) and description methods (SDPng) for
QoS.
The authors of [SCH01] and [PER97] describe possibilities of quick re-negotiations via in-band
signalling. However this kind of signalling concerns only change of codecs and the redundant support of
differently coded media without considering the respective effects when QoS should be supported.
The authors of [MAR02] and [MAR01] present a multi-phase call-setup mechanism that makes network
QoS and security establishment a precondition to sessions initiated by the SIP and described by the
Session Description Protocol (SDP). Thus the resource management is done only for the network
resources. However [MAR02] , [MAR01] do not consider pre-negotiation of QoS and the integration of
local and peer resource management.
The authors of [ROS02] describe a complete model for one-to-one capability negotiation with SDP.
However this model has problems by the definition of mutually referred information and information on
Page 24
MIND
1.2
grouping streams because of the flat structure of the SDP. Additionally this model concerns only
capability negotiation but no QoS support and QoS adaptation.
Ongoing work in [KUT01] identifies the requirements of a framework dealing with session description
and endpoint capability negotiation in multiparty multimedia conferencing scenarios.
Depending on user preferences, system capabilities, or other constraints, different configurations can be
chosen for the conference. The need of a negotiation process among the end-peers for determining a
common set of potential system configurations and for selection of one or many common configurations
to be used is identified, but not described. The authors of [KUT01] also identify the need for network
resource reservation coupled with session setup.
The proposal in [KUT01] deals only with capability negotiations and does neither consider a negotiation
protocol for determining a common set of QoS configuration nor integrate local, peer and network
resource reservation.
The most recent versions of SDPng proposal [KUT02] provide detailed XML Schema specification and a
prototype of the Audio Codec and Real Time Transport Protocol (RTP) Profiles. Additionally [KUT02]
describes a capability negotiation process for establishing of a common capability vocabulary between
end-peers. However the proposal in [KUT02] still does not consider the QoS specific issues.
In [BOS01] an End-to-End User Perceived Quality of Service Negotiation is described, with the
assumption that some IMs and services may strongly be involved in the end-decision about the negotiated
QoS information of the end-peers. The decision about QoS configurations in [BOS01] may be taken over
some standard "contract types". Although [BOS01] mentions that signalling and data packet may flow
along different paths throughout the network, the authors of [BOS01] suggest that some IMs along the
negotiation path may influence the negotiation, though in general having nothing to do with the data.
According to such a protocol model the network is not transparent.
The negotiation process presented in [BOS01] does not allow incremental negotiations, and furthermore
[BOS01] leverages static APs with fixed transitions among capability configurations/network-level QoS
contracts only.
The model of [BOS01] suggests negotiations of QoS only at stream level without considering some
stream dependencies like groups and stream hierarchies.
The most recent work on the problem of User Perceived QoS [BOS01] introduces SDPng schema for
defining traffic throughput and sensitivity information. This information considers only the network
reservation process without taking in account the necessity for local (peer) QoS specific configurations
and reservations. The model in [BOS02] is not taking in account the Application Level QoS definitions,
with respect to codec configuration and a flexible adaptation process. However the E2ENP can
incorporate this proposal, by allowing senders to derive TI/SI from Application Level QoS contracts, and
to forward this information as part of a proposal/counter-proposal to the receiver(s). The model of
[BOS02] is static in terms of adaptation, insofar as it reuses the fixed prioritisation of alternative options
derived from SDP, thus losing the powerful flexibility featured by XML. The description of the payload
types in [BOS02] is not in accordance with the payload types as described in [SCH01] , since the codec
parameterisation of the audio codecs is already pre-defined for the static payload types. One interesting
aspect in [BOS02] is the introduction of QoS Class format as a form of predefined interoperable
application level QoS definition. However such a definition would also need high level QoS specification
considering the usage of different possible QoS configurations of a single codec/payload type.
Recent discussions between the authors of [BOS02] and MIND representatives paved the way for a new
proposal [ROJ02] , which partially takes into the account the aforementioned differences between the
MIND approach and the [BOS02] one.
Section 2.1 describes the QoS negotiation protocol being proposed in MIND. The following section
describes some implication for potential realisation of the abstract service interface between the
application oriented, SIP supporting E2ENP and the network infrastructure.
Page 25
MIND
1.2
2.2 Service Interface Implications
We will describe how to map the Enhanced Socket Interface (ESI) service primitives to function calls
defined in widely used Operating Systems (OSs), e.g., Linux and Microsoft Windows, to request QoS
service provision. This is necessary to identify the viability of future implementations of ESI. ESI is a
service interface used by applications to request QoS support independent of the network QoS
architecture, system platform and transport service provider. ESI is a flexible interface allowing
applications to request Soft and Hard QoS support, i.e., to request QoS in qualitative and quantitative
ways. The last requires the use of an end to end signalling to reserve the resource requested by
applications along the network, and the former basically depends on a previous agreement of the transport
provider to deliver the data based on a per hop behaviour.
We developed the mapping of ESI functions based on Windows and Linux systems due to their
popularity and the availability of related information. Actually, both operating systems are installed in
almost different kind of terminal systems (fixed, portable and mobile) and dominate a considerable
market place. Therefore, we start the section analysing how the QoS is offered in both OS and which
interfaces were developed to provide Hard and Soft QoS on both platforms, e.g. Generic QoS (GQoS),
Linux Traffic Control (TC) and Resource Reservation Protocol Application Programming Interface
(RAPI). Finally, we describe in detail the ESI service primitives and perform the mapping between these
service primitives and the Linux and Windows functions.
2.2.1 QoS support in Linux OS
As mentioned in the introduction, the QoS support in Linux is based on some basic components that
(together) define how the outgoing packets must be treated. Figure 2-1 shows how the kernel handles
packets received from the network or from the upper layers. If the terminal is acting as a router, each
incoming packets are examined and then forwarded to the network on a different interface, or they are
passed up to the higher layers in the protocol stack if the terminal acts as an end system. These layers may
also generate data units on their own and send to the lower layers for further processing (encapsulation,
routing and transmission). Forwarding process in the figure includes the selection of the next hop,
encapsulation, selection of the output interface, etc.
Once the forwarding process is done packets are queued on the corresponding output interface and this is
the point where traffic control acts. Traffic Control decides if packets are queued, the order in which the
packets are sent (it depends on the priority of certain flows), delay the emission of the packets (to limit
the transmission rate) or if they are dropped, etc. Once traffic control releases a packet for sending, the
device driver emits it on the network.
Input de-multiplexing
Upper Layers
Traffic Control
Forwarding
Output queuing
Figure 2-1 The Packet Flow in the System
Each network device has a queuing discipline associated to specify how enqueued packets must be
treated. Elaborate queuing disciplines may use filters to distinguish among different classes of packets
and process each class using prioritisation. Figure 2-2 illustrates a complex queuing discipline with to
delay priorities. Packets which are selected by the first filter are go to the high-priority class, the rest of
the packets go to the low priority-class. The packets in the high-priority queue are sent before the packets
in the second queue. The first queue implements a token bucket filter to enforce a rate of high-priority
packets at fixed rate, e.g., 2 Mbps. It allows a more fair usage of the outgoing bandwidth. The rest of the
packets are enqueued by a First In First Out (FIFO) queueing discipline.
In general, packets are enqueued using the enqueue function of a queuing discipline. It runs one filter after
the other until one of them indicates a match. Then, it queues the packets for the corresponding class
(usually it means to invoke the enqueue function of the queuing discipline of the filters “owned by that
class”. Packets that do not match any of the filters are typically related to some default class.
Page 26
MIND
1.2
Network Interface
TCH_H_ROOT
TCH_H_INGRESS
1:0
Filter
Queuing Discipline 2:0
(TBF, “High priority traffic”)
Class 1:1
1:1
Filter
Queuing Discipline 3:0
Filter
(FIFO, “Low priority traffic”)
Class 1:2
Queuing Discipline 1:0
1:2
Top level Queuing Disc. on egress
TCH_H_ROOT
TCH_H_INGRESS Ingress Queuing Discipline
Point of insertion of Class
Point of insertion of Queuing Discipline
Figure 2-2 An Elaborate Queuing Discipline with Multiple Classes
One of the advantages of the QoS support in Linux is the flexibility with which the combination of
queues and classes can be set up, i.e., each discipline queuing may have different number of classes; these
classes don’t store packets by their selves, but instead, use another queuing discipline for this purpose,
which in turn, may have a number of classes and so on.
2.2.1.1 Queuing Discipline
In Linux OS, each network device has a queue associated with it. There are a dozen of queuing
disciplines supported in Linux, some of them are: Priority, First In First Out (FIFO), the queuing
discipline by default; Class Based Queue (CBQ), Token Bucket Flow (TBF), Clark-Shenker-Zhank
(CSZ), Traffic Equaliser (TEQL), Random Early Detection (RED), Asynchronous Transfer Mode (ATM),
etc.
Queuing disciplines and classes are tied. The presence of classes and their semantics are fundamental
properties of the queuing disciplines. Filters, in contrast, can be arbitrarily combined with queuing
disciplines and classes.
Each queuing discipline uses a set of functions to control its operation. Enqueue, dequeue, requeue and
drop functions handle the packets in the queue. Init, change, reset, dump and destroy functions are used
for the initialisations, change, diagnostic and removal of the queuing discipline.
Instances of queuing disciplines are identified by 32-bit numbers split into a major and minor numbers of
16 bits each one (usual notation is major:minor). The minor number is always zero for queuing disciplines
with the exception of ingress queuing disciplines (ffff:fff1). Major numbers must be unique per network
interface, but there may be some other queuing discipline with the same number on other interface. The
user should assign a major number in the range 1 to 7fffh; major number 0 means unspecified and a major
number out of the range is automatically allocated by the kernel. When creating a queuing discipline the
message sent to the kernel contains the identification number and parent (the insertion point). The value
of the insertion point can be one of the special values for the top level queuing discipline on egress or for
the ingress queuing discipline, or can be the number of an existing queuing discipline.
2.2.1.2 Classes
As mentioned before, queuing disciplines and classes are tied to one another. When enqueue function is
called, the queuing discipline applies the filter to determine the class to which the packet belongs, then, it
calls the enqueue function of the inner queuing discipline that is owned by this class. Classes are identified
by the Class ID and the internal ID. The Class ID is of the type u32 and it is assigned by the user. It is
structured as major:minor with the major number corresponding to their instance of the queuing discipline,
and the minor identifying the class within the instance (it can be in the range 0 to ffffh). The Internal ID is
Page 27
MIND
1.2
of type unsigned long and it is assigned by the queuing discipline and is unique within the queuing
discipline. Like queuing disciplines, classes have parents.
Queuing disciplines with classes provide some functions to manipulate classes: graft, leaf, change and delete
are some of the functions used to manipulate the classes within the queue disciplines that support classes
(some of them do not support classes).
2.2.1.3 Filters
Filters are used by a queuing discipline to assign incoming packets to one of its classes. Filters classified
packets based on certain properties of the packet: Type of Service (TOS) byte, IP addresses, port
numbers, etc. These are kept in filter lists that can be maintained per queuing discipline or per class (it
depends on the design of the queuing discipline). The filter list is ordered by priority in ascending
ordering and the entries of the list are keyed by the protocols for which they apply like User Datagram
Protocol (UDP), Transmission Control Protocol (TCP) and Internet Protocol (IP), etc. Filters for the same
protocol on the same filter list must have different priority values.
Filters may have an internal structure compound of elements that are referenced by a handle of 32 bits
long. Handle 0 points to the filter itself. Filters, like classes, have an internal ID of unsigned long. Handles
and internal IDs are unique per filter instance and the internal organisation of a filter can be arbitrary.
Different from classes, filters or their elements have no identifiers that refer directly to a specific filter or
element on an interface. The class identifies them or queuing discipline for which they are registered, the
protocol, their priority among filters or the handle in the case of filters elements.
The classification of packets is activated when the enqueue function of a queuing discipline is invoked.
Then, the protocol to which the packets belong to is determined and the filters corresponding to this
protocol are applied in order of priority. Within each filter all the internal elements are traversed in an
attempt to classify the packets. If the packet is classified, the enqueue function of the queuing discipline
owned by the class is invoked. This process is shown in Figure 2-3.
MATCH
NO MATCH
Queuing Discipline / Classes
Filter priority 1
Filter priority 2
Element Handle = A
Element Handle = X
Element Handle = B
Element Handle = Y
OK
UNSPECK
Figure 2-3 Matching a Structure of Filters (each filter with a list of elements)
There are to types of filters, these are based on the scope of the packets their instances can classify:
generic and specific filters. The former only needs one instance of the queuing discipline to classify
packets for all classes; the latter need one or more instances of a filter or its internal elements per class to
identify packets belonging to this class.
Filters are controlled by functions like init (initialise), destroy (remove), change (modify properties),
classify (performs the classification), dump (diagnostic), etc.
Page 28
MIND
1.2
2.2.1.4 Policing
Policing is used to monitoring if the user is acting according the contracted QoS services, i.e., his traffic
does not exceed certain bounds. In Linux, four type of policing mechanism are implemented: policing
decision by filters, refusal to enqueue a packet, drop a packet from an inner queuing discipline (e.g., in
order to create space for packets of a more important class in CBQ queuing discipline) and drop a packet
when enqueuing a new one (i.e., older packet is discarded to make space for a new packet).
2.2.1.5 Traffic Control ‘tc’
Traffic Control ‘tc’ is the user level program used to manipulate individual traffic control elements, i.e., to
create and associate queues with the output devices in Linux, to set up various kinds of queues and
associate classes with each of those queues and it can also is used to set up filters based on the routing
table, u32 classifiers, Resource Reservation Protocol (RSVP) classifiers and others. As already
mentioned, it uses netlink sockets as a mechanism to communicate with the kernel networking functions.
The usage for tc is:
tc [ OPTIONS ] OBJECT { COMMAND | help }
where
OBJECT := { qdisc | class | filter }
OPTIONS := { -s[statistics] | -d[details] | -r[raw] }
The Object could be a queuing discipline(qdisc), class(class) or a filter(filter).
Figure 2-4 shows a diagram of the tc implementation [VM00] . The interface between the kernel and the
user space is achieved using netlink sockets. rtnetlink is used to exchange traffic control objects between
the user level and the kernel level. rtnetlink is based on netlink. At boot time, a device list (for all queuing
disciplines supported by the system) and all filters supported by the system are initialised. When a user
issues a tc command such as “tc qdisc add …” “tc class add ...”, netlink sockets are opened with the
kernel and the parameters are sent as rt_attributes.
/root > tc qdisc add dev eth0 ...
user application
write(...);
request/reply
user
kernel
Netlink socket
Traffic
Control
eth1
TCP
device
driverin
devin
IPin
IPout
Devout
device
driverout
eth0
Inet socket
ingress
Figure 2-4 The Operation of tc
The control is finally transferred to rtnetlink_rcv() routine which calls the required routines in the kernel
to set up the queues, classes and filers. These routines acknowledge the request through netlink_ack().
tc does not provide a programming interface, it provides the socket interface. To provide a programming
interface (API) in Linux it is possible to provide system call interfaces to set up queues, classes and filters
[VM00] . A system call is the transmission of a process from user mode to system mode. When a user
Page 29
MIND
1.2
issues a system call, the process goes into system mode and executes in the kernel mode (system mode)
and returns back to the user mode, in other words, a system call maps a user call to a kernel function
which does something on user’s behalf and returns control to the user.
2.2.1.6 Framework for QoS Developing in Linux
Figure 2-5 shows how elements of Linux traffic control (classes, filters, queuing disciplines and policing
mechanism) are related to the architectural models of QoS developed in the Working Groups of Internet
Engineering Task Force (IETF) [ALM98].
For the design these QoS architectures in Linux some new components must be added if required closely
following the original design. For example, a design of Differentiated Services in Linux [ALM99]
required three new components: a queuing discipline to extract and to set Differentiated Services Code
Points (DSCP), a classifier which uses this component and a new queuing discipline (Generalized RED).
There are some RVSP implementations in Linux [BER99] for IPv4 and IPv6 based in its QoS support
components.
2.2.1.6.1 Diffserv extensions to Linux traffic control
The traffic control framework explained above offers most of the functionality required for implementing
the support to Differentiated Services (DiffServ) and Integrated Services (IntServ) architectures.
In Linux Traffic Control some extensions were necessary to support DiffServ following the existing
design of TC. This component were new queuing disciplines (sch_dsmark and sch_gred), a new classifier
(cls_tcindex) for interior nodes of a DiffServ domain and a new field (tc_index) to the packet buffer
descriptor where the result of classification of packets is stored.
DiffServ is one of the two actual QoS architecture. It is based on a field carried by packets in the IP
header. This field is called Differentiated Services Code Point (DSCP).
Classification
IntServ node
Metering
Queuing / Scheduling
Meter
Classifier
Packet Scheduler
Flows
Meter
DiffServ Traffic
conditioner
Classifier
DiffServ node
(BA)
Classifier
Marker
Shapper / dropper
(Behavior) Aggregates
Classifier
Linux Kernel
Traffic Control
Queuing/Sched.
Mechanism
Filter
Police
Class
Figure 2-5 Relation of Elements of IntServ and DiffServ Architecture to Traffic Control in Linux
Page 30
MIND
1.2
PHB
Classifier
& Meter
PHB
Marking
PHB
PHB
Figure 2-6 General DiffServ Forwarding Path in a Node
DiffServ applies different transmission and forwarding behaviours depending on which DSPC a packet
carried, i.e., when packets arrive or entry to a DiffServ domain, the ingress node will have to policy,
shape and/or mark those packets before the transmission of the packet to the next hop. Marking, in this
context, refers to assigning a value to the DSCP field. This will be the mark/value that the internal nodes
on the domain will look at to determine which behaviour or QoS level applies. DiffServ doesn’t take care
of individual flows, instead of this, it performs flow aggregation by means of the DSCP field applying
different per hop behaviours to each flow aggregation.
The general structure of the forwarding path in a DiffServ node is shown in Figure 2-6. In a DiffServ
domain the nodes could be boundary or interior nodes. Each class of node performs classification when
packets arrive. The result of classification may be used in different places along the DS process before the
packet is released to the network, therefore, the DiffServ code of Linux supplies a structure called sk_buff,
including a new field called skb->tc_index where the result of initial classification is stored to be used in
several points in DS treatment. The skb->tc_index value will be initially set by the sch_dsmark queuing
discipline, retrieving it from the DSCP field of every received packet. In addition, a classifier will read all
or part of skb->tcindex value and will use it to select classes. The classifier used in an interior node is
cls_tcindex. In boundary nodes and hosts micro-flow classifications must be done using multi-field
classifiers, e.g., cls_rsvp or cls_u32. Finally, the Generalized Random Early Detection (GRED) queuing
discipline (sch_gred) provides a configurable number of drop priorities which are selected by the lower
bits of skb->tc_index.
Buffer of packets (skb)
IP header
Initial DS field marking
(remarking)
Skb->tc_index
Initial value of tc_index
cls-rsvp
(microflow
classifier)
TOS field
sch_gred (GRED queing discipline)
sch_dsmark
(queuing discipline)
Skb -> tc_index
Figure 2-7 Micro-flow Classification in DiffServ Sources
Figure 2-7 shows the traffic control process using sch_dsmark (diffserv marker) for the initial packet
marking when entering a DiffServ domain, e.g., when applications send packets. The classification and
rate control is performed by a micro-flow classifier cls_rsvp, in this case, which is designed to identify
RSVP flows. This classifier determines the initial TC index which is then stored in skb->tc_index.
Subsequently, further processing is performed by an inner queuing discipline. Note that this queuing
discipline may read and even change skb->tc_index.
When a packet leaves sch_dsmark, skb->tc_index is examined and the DiffServ field of the packet is set
accordingly.
Page 31
MIND
1.2
In Capable-capable sources, as in ingress routers, any classification and traffic conditioning can be
administratively configured. An application may choose to mark packets when they are generated, e.g., it
can be done using the IP_TOS socket option available on Linux. An application’s choice of DS field values
can always be refused or changed by traffic control before a packet reaches the network (remarking).
A normal recipe for creating a configuration is found in [HUB02]: first, attach sch_dsmark to the output
interface, then define the structure of the queuing discipline(s) inside sch_dsmark; number the classes and
decide on a numbering scheme to use for skb->tc_index; identify which packets go to which classes and
configure the classifier(s) of sch_dsmark accordingly.
2.2.1.6.2 IntServ extensions to Linux traffic control
Integrated Services (IntServ) is the other protocol architecture, developed by the IETF, to provide QoS
over the Internet. The term IntServ [BRA94] means for an Internet Service model that includes best-effort
service, real-time service, and controlled link sharing. Controlled link sharing allows dividing traffic into
a few classes and assigning to each a minimum percentage of the link bandwidth under conditions of
overload, while allowing unused bandwidth to be available at other times.
IntServ requires applications to signal their service requirements to the network through a reservation
request. Currently it uses Resource ReSerVation Protocol (RSVP) [BZ97] as its end-to-end signalling
protocol. Using RSVP, packets passing through a gateway host can be expedited based on policy and
reservation criteria arranged in advance. Unfortunately, the IntServ/RSVP architecture does not scale to
the global Internet.
The RSVP protocol is used by a host to request specific QoS from the network for particular application
data streams or flows. RSVP is also used by routers to deliver QoS requests to all nodes along the path(s)
of the flows and to establish and maintain state to provide the requested service. These requests will result
in resources being reserved in each node along the data path. The protocol performs the signalling
necessary to make a resource reservation for a simplex (unidirectional) data flow sent to a unicast or
multicast destination address. Since it distinguishes senders from receivers, the same application may act
in both roles. RSVP assigns QoS to a specific multipoint-to-multipoint data flow known as a session. A
session is defined by a particular transport protocol, IP destination address, and destination port. A
sender, a data source, is defined by an IP source address and a source port. A given session may have
multiple senders and multiple receivers if the destination is a multicast address.
QoS requests are made by the receivers and it contains a flowspec together with a filter spec. The
flowspec includes an Rspec, which defines the desired QoS and is used to control the packet scheduling
mechanism in the router or host, and also a Tspec which defines the traffic expected by the receiver. The
filter spec controls packet classification to determine which sender's data packets receive the
corresponding QoS.
The fundamental design of the RSVP protocol is based upon research performed in 1992-93. The
Information Sciences Institute (ISI), funded by the US Defense Research Projects Agency (DARPA),
performed research, development, and technology transfer on RSVP, providing more of the ideas turned
into the practice on the Internet. The ISI implementation of RSVP contains code for a workstation used as
a host or router. It includes an RSVP daemon program (rsvpd), an RSVP API (bellow introduced), RSVP
interfaces for some multicast applications and some test tools. This code has been ported to a variety of
system platforms like Linux [ALE99]. The ISI implementation has been the basis for a variety of
implementations [GF98].
The RSVP Application Programming Interface (RAPI) [BH98] is an Application Programming Interface
(API) that allows an application to request enhanced QoS to a local RSVP control program, usually a
user-level daemon program. The latter will use the RSVP protocol to propagate the QoS request through
the routers along path(s) for the data flow. Each router may accept or deny the request, depending upon
its available resources. In the case of failure, the local RSVP control program will return the decision to
the requesting application via the API. The RAPI is based on a client library linked with the application
and the procedures of the RSVP client library module interact with the local RSVP daemon program
through a Unix-domain socket.
With the use of RAPI, an application uses calls to define a session for sending a single unidirectional data
flow or receiving such a data flow, to register as a data sender and/or to make a QoS reservation as a data
Page 32
MIND
1.2
receiver, also, the application can close the session and delete all of its resource reservations. As before
mentioned, RSVP performs the signalling necessary to make a resource reservation for a simplex data
flow sent to a unicast or multicast destination address. Although, the same application may act in both
roles as RSVP distinguishes senders from receivers.
Host
Application
RSVP Client
Library (rutines)
RSVP daemon
RSVP daemon
RAPI
User
Kernel
Router
Unix pipe
Data
RSVP messages
Classifier
& Scheduler
Data
RSVP
Classifier
& Scheduler
Data
Figure 2-8 RAPI’s Implementation Model
There are three protocol interfaces involved in invoking RSVP via the RAPI, each one identified by the
corresponding term in its code:
•
Procedure Call Interface to Application: The procedure call interface to applications and the data
structures use the term “RAPI_” in that interface. All the procedures used are included in a
library routine librsvp.a (compiled form rapi_lib.c and rapi_fmt.c).
•
Application to Daemon Protocol interface: the code for the local protocol across the Unix socket
between the librsvp.a routines and the RSVP daemon rsvpd uses the term “API_”.
•
RSVP Protocol: In the Internet, the RSVP protocol is used between RSVP daemons.
These interfaces are logically independent; therefore they can be modified separately. Figure 2-8 shows a
diagram of RAPI’s implementation model.
The defined function calls of RAPI are the following (the application should include the file rapi_lib.h and
rsvp_intserv.h to use these calls):
•
The rapi_session(): it defines an API session for sending a single simplex data flow or receiving
such a data flow. A single API session, defined by a single rapi_session call, can define only one
sender at a time. The rapi_session call allows the application to specify an upcall routine that will
be invoked by signals of RSVP state change and error events. If the API session is created
successfully, the call returns an opaque session pointer different from zero for use in subsequent
calls related to this API session
•
The rapi_sender(): An application must use a rapi_sender call if it intends to send a flow of data for
which receivers may make reservations. rapi_sender call defines, redefines or deletes the
parameters of that flow. If there is a synchronous error, rapi_sender returns a RAPI error code;
otherwise, it returns zero. This call may be issued more than once for the same API session; the
most recent one takes precedence.
•
The rapi_reserve(): the rapi_reserve procedure is called to make, modify or delete a resource
reservation for a session. The call may be repeated with different parameters, allowing the
application to modify or remove the reservation; the latest call will take precedence. Depending
Page 33
MIND
1.2
upon the parameters, each call may or may not result in new admission control calls, which
could fail asynchronously.
•
The rapi_release(): the rapi_release call removes the reservation, if any, and the state corresponding to
a given session pointer. This call will be made implicitly if the application terminates without
closing its RSVP sessions. If the session pointer is invalid, the call returns a corresponding
RAPI error code; otherwise, it returns zero.
It’s useful to add that rapi_sender and rapi_reserve calls may be repeated with different parameters to
dynamically modify the state at any time or they can be issued in null forms that retract the corresponding
registration. A single API session, defined by a single rapi_session call, can define only one sender at a
time. More than one API session may be established for the same RSVP session. For example, suppose
an application sends multiple UDP data flows, distinguished by source port. It will call rapi_session and
rapi_sender separately for each of these flows.
Notifications of RSVP errors and state change events in RAPI are notified to application to execute upcall
routine. The upcalls are specified indirectly and synchronously by rapi_session using the pointer Event_rtn.
The method followed for notifications and error events is:
•
The application issues the RAPI library call rapi_getfd() to learn the file descriptor of the Unix
socket, connected to the RSVP daemon, used by the API.
•
Then read events are detected in this file descriptor.
•
When a read event on the file descriptor is signalled, the application calls rapi_dispatch(). If this
call encounters an error, rapi_dispatch() returns a RAPI error code, otherwise, it returns zero. This
drives the API to execute the upcall routine if appropriate.
A synchronous error in a RAPI library routine returns an appropriate error code. Asynchronous RSVP
errors are delivered to the application via the RAPI upcall routine. Text messages for synchronous and
asynchronous error codes will be found in the file rapi_err.h.
There are five types of upcalls: PATH_EVENT and RESV_EVENT signal the arrival or change of path state
and reservation state, respectively, and deliver the relevant state information to the application;
PATH_ERROR and RESV_ERROR upcalls signal the corresponding asynchronous errors and PATH_CONFIRM
upcalls signal the arrival of a confirmation message.
The first rapi_session() call in a particular instance of the RAPI library opens a Unix-domain RAPI socket to
the RSVP daemon and passes the session registration request across it. If the application (or the daemon)
crashes without properly closing the RAPI socket, the other side will be notified to perform a cleanup. In
particular, if the user process terminates without explicitly closing the RAPI session, the daemon will
delete the corresponding reservation state from the routers.
As mentioned before, implementations of RSVP daemon codes for Linux were developed, e.g. [ALE99],
but actually they are poorly documented. For this implementation different interfaces between the RSVP
daemon and Linux Traffic Control were programming, for example, an interface to queuing discipline
and class manipulation, to packet scheduling, admission control and policing functions, etc. Currently,
there are some initiatives to enhance the Linux TC to make it more extensible, create a more user-friendly
configuration language, provide interfaces for straightforward interaction with network management, etc
[TCng]. As we explain, Traffic Control activities on Linux can only be defined from the user level with
'tc', the application that enables the set-up of QoS parameters using a command line interface, therefore a
user application cannot utilise the available structures dynamically in the course of program execution.
[VM00] and [OLS02] are some API implementations in progress to provide this capability.
2.2.2 QoS support in Microsoft Windows OS
Microsoft deploys two groups of QoS components: elements that reside in the host protocol stack and
elements that realised QoS policing functions in the network (Subnet Bandwidth Manager and Admission
Control Service) [MIC99a]. These components can be classified also in three categories depending in
which parts of the communications these components have a greatest influence [MIC02] : applicationdriven QoS components, network-driven QoS components and policy-driven QoS components. This is
shown in Figure 2-9.
Page 34
MIND
1.2
The list of component implemented by Microsoft include protocols, applications programming interfaces,
functional modules for traffic control as packets classifier and schedulers, etc. to achieve an integrated
technology for QoS support. These components are described in the following paragraphs.
RSVP
enabled router
LAN
Applications-Driven
QoS Component
Server
Directory
Information
Store
ACS Server
(ACS/SBM)
RSVP
Session
LAN
Host
Network-Driven
QoS Component
Policy-Driven
QoS Component
(shared subnets)
Figure 2-9 Areas of Influence of the Windows 2000 QoS Components
Table 2-1 List of the QoS Components According to its Areas of Major Influence
Application-Driven
QoS Application Programming Interface
Traffic Control API (TC API)
RSVP Service Provider
Resource Reservation Protocol Service
Traffic Control Modules
Network-Driven
802.1p
Differentiated Services
L2 Signalling
Subnet Bandwidth Manager
Resource Reservation Protocol
Policy-Driven
Admission Control Services (ACS)
Local Policy Module (LPM)
Policy information
RSVP
Local Policy Module API (LPM AP)
2.2.2.1 The Host Protocol Stack
Microsoft designs a host protocol stack for QoS-aware and QoS-non aware applications. The applicationdriven QoS components are shown in Figure 2-10. In Figure 2-11 its functional relationship is presented
with more details. Each component is described in the following points.
2.2.2.1.1 Generic QoS API
At the end system all the session oriented application can use a QoS Application Programming Interface
to request quality guarantees. This API is called Generic QoS API (GQoS). All QoS aware applications in
Windows invoke QoS services of the underlying QoS Service Provider (QoSSP) via the GQoS API as
shown Figure 2-11[MIC00a]. GQoS is a subset of the QoS of the Winsock21. GQoS commands carry
QoS parameters and they can be used to invoke QoS services from the operating systems.
1
Winsock is an API that allows Windows-based applications to access the transport protocols. It simplifies
application development in the upper layers by handling the details of network data exchange at the lower layers.
Winsock Kernel interface provides access to the Transport Driver Interface (TDI) allowing to write new transport
drivers that are independent of the network card, also, to write network applications to use TDI rather than relying on
a certain protocol, such as NetBIOS or IPX (Afd.dll).
Page 35
MIND
1.2
Applications
Winsock GQoS API
QoS Service
Provider
Traffic Control API
Protocols
(e.g. TCP/IP, IPX)
Packet
scheduler /marker
LAN & WAN
netcards
Figure 2-10 Windows Host Protocol Stack
3rd Party Management
Application
GQOS API
RSVP Services
(rsvp.exe)
Application
RSVP Service
Provider (.dll)
Windsock
Traffic Control
API (traffic.dll)
Transport Device Layer
Afd.dll
Generic Packet
Classifier
(Msgcp.sys)
TCP/IP
Tcpip.sys
QoS Packet
Scheduller
NDIS
Ndis.sys
Network Interface
Figure 2-11 Detailed Architecture of GQoS
The API is very abstract, the applications can request the QoS they need with little knowledge of the QoS
mechanism available or the underlying network medium, i.e. the technology used for the QoS supporting
is transparent for the applications. GQoS only specifies one of the following service types:
•
Quantitative QoS:
o
Guaranteed: for low and bounded latency applications, and
o
Controlled Load: for jitter tolerant applications.
Page 36
MIND
•
1.2
Qualitative: for applications that require better than best-effort services without quantity their
requirements [Mic00b].
2.2.2.1.2 Opening QOS-enabled Sockets with GQoS:
GQoS consist of programming elements like functions, structures and objects [BER98] . Although GQoS
is supposed to be protocol independent, the reality is that they assume the IP protocol (the same with
QoSSPs and TC). However, the GQoS API was made to assure that the QoS API specification is
independent of a specific protocol as practically realisable.
To open a socket supporting QoS in GQoS the following steps are defined:
1.
Enumerate the available protocols.
2.
Choose the protocol that supports QoS in the available set.
3.
When a proper protocol is found, then establish a connection to another socket application.
The first step involves the use of the WSAEnumProtocols(). This function is used to discover information
about the collection of transport protocols installed on the local computer. A list of protocols is returned
and all the information about each one is stored in a structure called WSAPROTOCOL_INFO (a structure
per protocol). The available protocols for QoS support are identified by a specific flag (dwServiceFlags1).
When an appropriate protocol is found then is possible to open a QoS enable connection. QoS is invoked
relative to a particular socket. This socket is said to be a QoS socket. There are different calls to specify a
QoS socket, e.g., WSAConnect, WSAJoinLeaf, WSAAccept and WSAIoctlQOS-enabled connections are
unidirectional. To enable a connection with service guarantees for both sending and receiving from a host,
two individual QOS-enabled flows are required.
QoS-enabled connections are unidirectional. To enable a connection with service guarantees for both
sending and receiving from a host, two individual QoS-enabled flows are required.
2.2.2.1.3 Quantitative QoS service
In Microsoft Windows, to provide a Quantitative QoS service, network resources are reserved according
to an application’s QoS request subject to bandwidth management policy. This service uses an explicit
end-to-end signalling. The QoSSP used is IntServ with RSVP signalling. Quantitative applications, i.e.,
applications that require quantitative QoS, are expected to (minimally) quantify their requirements in their
call to WSAConnec, WSAJoinLeaf, WSAAccept, etc. Each of these functions invokes the RSVP SP on the
application's behalf, and begins the process of establishing QoS between the receiver and sender. Each of
these functions includes a parameter, the QualityOfService structure (QoS structure), that provides the
application with the capability of providing QoS-specific parameters. SendingFlowspec and
ReceivingFlowspec structures are included in this QoS structure to specify the QoS parameters of its sent
and received traffic. The definition of QualityOfService structure in GQoS is:
Typedef struct _QualityOfService {
FLOWSPEC SendingFlowspec;
FLOWSPEC ReceivingFlowspec;
WSABUF ProviderSpecific;
} QoS;
The FLOWSPEC structure provides the QoS parameters to the RSVP SP allowing the QoS-aware
applications to invoke, modify, or remove QoS settings for a given flow. It contains a set of token bucket
parameters like the permitted rate at which data can be transmitted over the life of the flow (TokenRate),
the upper limit during that time (PeakBandwith), the maximum acceptable delay between transmission of
a bit by the sender and its receipt by one or more intended receivers (latency), the jitter (DelayVariation),
etc. The definition of the FLOWSPEC structure in GQoS is
typedef struct _flowspec {
uint32 TokenRate;
uint32 TokenBucketSize;
uint32 PeakBandwidth;
uint32 Latency;
uint32 DelayVariation;
SERVICETYPE ServiceType;
uint32 MaxSduSize;
Page 37
MIND
1.2
} FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
Recalling, QoS technology and parameters are unidirectional, enabling different transmission parameters
for sender and receiver. Additionally, RSVP semantics are receiver-centric, in that resources are not
reserved until the receiver sends out a RESV message. Due to this unidirectional approach, differences
exist in the behaviour of the receiver and the sender. In general, the transmission of special RSVP
message (PATH/RESV) begin at the time Winsock 2 GQoS has determined that the application intends to
invoke QoS in a specific direction (sending or receiving) and all information required for the generation
of the messages is available.
Sending hosts inform the RSVP SP of QoS-specific parameters in order to enable the RSVP SP to interact
with other QoS components on the sending host's behalf. QoS-specific parameters are provided to the
QoSSP through the SendingFlowspec member of the QoS structure (in the Table 2-2) is shown the
mapping of parameters to derive a RSVP SenderTspec from the SendingFlowspec). These QoS-specific
parameters are based on the application's knowledge of the data transmission characteristics appropriate
for the application. Senders may use preinstalled QoS templates that include QoS-specific parameters
with appropriate transmission characteristics based on the type of application. Senders may configure
additional traffic control parameters such as handling nonconforming packets. Additionally, they may
monitor RSVP SP events like the arrival of RESV messages, or monitor status information to stop the
transmission when there are no QoS-enabled receivers for the transmission.
Table 2-2 Mapping of Parameters from the Winsock2 QoS Flowspecs to RSVP Tspecs and Rspecs
GQoS FLOWSPEC
TokenRate
TokenBucketSize
PeakBandwidth
MinimumPolicedSize
MaxSduSize
DelayVariation
Latency
Tspec
TokenBucketRate
TokenBucketSize
PeakRate
MinimumPolicedUnit
MaximumPacketSize
Rspec
Rate
DelaySlackTerm
As a receiver on a QoS-enabled connection, the applications must be aware of the occurrence of events
such as the establishment of the QoS-enabled connection, i.e., the arrival of a PATH message. A receiver
must provide QoS-specific parameters to the RSVP SP through ReceivingFlowSpec parameter of the QoS
structure and if an application is notified of the arrival of a PATH message, it must retrieve the pertinent
QoS information (such as the sender's Tspec and the Adspec generated by intermediate nodes in the data
path). Information provided in the PATH message may be used by the application to define or modify its
initial QoS-specific parameters to match the sender's Tspec. If the receiving application is interested in
the traffic offered by the sender, it triggers the respective RESV RSVP message. the RESV message will
return to the sender unless specific network policies deny the reservation or there is a lack of resources in
intermediate devices. After the reception of a RESV message, the sender application may then send data.
Data sent that complies to the constraints of the established QoS-specific parameters is considered
conforming data. Data that falls outside those parameters, nonconforming data, is handled differently
relegating it to a best-effort transmission or discarding these.
On receivers, for Controlled Load Service, the application may decide to specify only the ServiceType
parameter in the ReceivingFlowspec. In this case, the QoSSP copies the SenderTspec from matching
PATH messages, to the ReceiverTspec sent with the RESV messages. Alternatively, the receiving
application may specify any of the Tspec parameters in the ReceivingFlowspec. For Guaranteed Service,
the QoSSP will copy the SenderTspec from corresponding PATH messages to the ReceiverTspec sent
with the RESV messages. The application cannot supersede Tspec parameters in this case.
2.2.2.1.4 Qualitative QoS service
The Qualitative QoS service type is suited for applications that require better than Best Effort service, but
are unable to quantify their requirements. There is no need for reservations and signalling. This type of
service is accomplished in Windows QoS architecture by DiffServ mechanism. The minimum
requirements for supporting qualitative QoS are somewhat simpler than for quantitative QoS. There is no
need to quantify traffic. Applications need only include the requested service type
Page 38
MIND
1.2
SERVICETYPE_QUALITATIVE in the basic QoS parameters (FLOWSPEC structure) and fill the
remaining structure elements with default QoS_NOT_SPECIFIED values. Also, applications need to
invoke QoS as a sender (and not as a receiver). All other QoS functionality is automatically handled by
the operating system: start the Winsock2 provider, query the Winsock providers to find the QoSSP, call
the provider to open a QoS socket, specifying the QoS structure that points to the policy element and
connect the socket.
The OS and the network take care of the rest. The operating system formats the request to the network.
Network agents act on the request and returns a DCLASS object if necessary [Ber00]. If a DCLASS
object is returned, the OS marks the packets with the corresponding DSCP DiffServ Codes on the socket
accordingly.
2.2.2.1.5 Status indications from the QoSSP to applications
Windows QoS framework makes certain information available to applications that register interest in
obtaining event-related QoS information. The event categories available to applications are:
•
Policy-based or administratively-based information that impacts QOS provisioning for a
given flow.
•
Errors that occur upon set-up, or during the life of a QOS-enabled flow
•
Information regarding acceptance or rejection of QOS requests by the QoSSP module or by
the network. Rejection of a QOS request may indicate a transient failure.
•
Significant changes in the service quality provided by the network (when in contrast with
previously negotiated QOS parameters), such as from flow pre-emption in the network.
•
Status regarding the presence of a QOS peer to send or receive a particular flow.
GQoS provides this status information through the FD_QoS event suite. Applications that take advantage
of QoS capabilities (whether sending or receiving data) should use FD_QoS events to monitor the
occurrence of event notifications of QoS. All FD_QoS events are edge-triggered, i.e., a message is posted
exactly once when a QoS change occurs. Additional messages are not forthcoming until the provider
detects a further change in quality of service, or the application re-negotiates the flow's quality of service.
Applications that either send or receive QoS-enabled data can listen for FD_QoS events using the
WSAAsyncSelect or WSAEventSelect functions. Both use the FD_QoS event to allow an application to
receive asynchronous notifications of status from the QoSSP when the QoS changes. When a significant
QoS event occurs on a specified socket, the QoSSP posts a message or signals the event, as appropriate.
The appropriate status codes may be retrieved by calling WSAEnumNetworkEvents or other appropriate
Win32 calls. In addition, the application should issue a WSAIoctl (SIO_GET_QoS) function/opcode pair
in order to retrieve a QoS structure that indicates the current QoS parameters. The application should
inspect these parameters to determine the degree of the QoS change.
2.2.2.1.6 Modifying the QoS parameters
The WSAIoctl(SIO_SET_QOS) function/opcode pair is useful for modifying QOS parameters subsequent
to the establishment of the connection with a connection-oriented function call. This call (WSAIoctl) can
be invoked by an application, at any time to change (or initialise) the QOS parameters on a socket.
SIO_SET_QOS, an operational code of WSAIoctl, associates the specified QOS structure with the socket.
2.2.2.1.7 Closing QoS connections
There are a number of ways to close a QoS-enabled connection. Generally, any event that closes a socket
also ends RSVP SP servicing on the socket. The closesocket, shutdown, WSAConnect with a NULL peer
address and WSAIoctl are examples of functions that could generate these kinds of events. Shutdown
function partially disable a socket, i.e. shutting down only the receive capabilities leaves the QoS-enabled
send capabilities for the socket intact. In general, any event that closes a socket will also terminate
RSVP/TC.
2.2.2.2 QoS Service Provider
The underlying QoS Service Provider (QoSSP) is the entity that responds to the GQoS API. It provides
the following services:
Page 39
MIND
1.2
•
RSVP signalling: to communicate QoS parameters and negotiate network usage with receiver
end systems and network devices.
•
QoS policy support: to identify the Microsoft Windows NT operating system user and
applications inserting a Kerberos encrypted Windows NT user ID into RSVP signalling
messages and, also, application ID via the GQoS API, so policy can be applied in the network.
•
Invocation of traffic control: to enforce policy by invoking traffic control in accordance with the
network’s response to the signalling. Greedy traffic control is enable only if approved by the
network by RSVP signalling. Non greedy traffic control is enabled in immediate response of
application’s request for QoS.
2.2.2.3 Traffic Control API
The Traffic Control API (TC API) provides the QoSSP with a high degree of control over traffic control
functionality in the kernel. TC API is an interface that separates the traffic control consumers from the
traffic control providers, i.e., in Figure 2-11, the QoSSP is a TC consumer and the packet scheduler is a
TC provider. More TC providers implemented in Windows are listed in Section 2.2.2.4 (Table 2-3).
TC functionalities include the ability to create flows that affect transmitted traffic and to define
classification criteria that determine the set of packets directed engaged to each flow. To do so, TC API
comprises two fundamental APIs: CreateFlow and CreateFilter. With CreateFlow a flow is created in the
kernel network stack. A flow has certain characteristics that are applied to all packets on the flow: packet
scheduling, queuing discipline and packet marking. Therefore, CreateFlow comprises a marking
behaviour (media-specifics marks or tags) and a packet scheduling behaviour depending of the
characteristics associated to the created flow.
CreateFilter is used to attach filter to a flow. A filter determines the classification patterns, i.e., the set of
packets that will directed to the associated flow. As in Traffic Control of Linux OS, filters can be specific
or generic. Filters are expressed in form of an IP 5-tuple and a mask. A Generic Packet Classifier (GPC)
is used for the purpose of packet classification and scheduling parameters are expressed using the tokenbucket model.
TC API is also scriptable and remotely accessible. It enables third-party traffic management applications
and QoSSP to invoke traffic control on behalf applications that are unable to do so, or a system
administrator to control the QoS provided to applications.
2.2.2.4 Traffic Control Providers
Traffic control providers include kernels modules that implement fine grained traffic control functionality
in response to the traffic control API. They are listed in Table 2-3.
Table 2-3 List of Traffic Control Providers Implemented by Microsoft
Packet scheduling
802.1p2 marking
DSCP marking
ISSLOW link layer fragmentation
ATM VC control and cell scheduling
Besides the listed TC providers, Microsoft is planning to include traffic control providers for cable
modem drivers, P1394 and other media-specific drivers.
2.2.2.4.1 Packet Scheduler
The packet scheduler is used to provide traffic control over drivers and network cards for Ethernet, Token
Ring, FDDI and LAN Emulation that have no inherent packet scheduling capability. It is implemented as
an intermediate driver providing traffic control functionality over standard Local Area Network (LAN)
2
802.1p is a traffic handling mechanism to for supporting QoS in LANs. It defines a field in the layer-2 header of
IEEE 802 frames that can carry one of eight priority values. LAN devices should treat the packets accordingly.
Page 40
MIND
1.2
adapters and WAN drivers (Integrated Services over slow links or ISSLOW functionality). Packets are
scheduled on separate QoS queues as created via the TC API. It also is responsible for influencing the
marking of DSCPs and media-specific priority tags.
The scheduling components of the packet scheduler are:
•
A conform analyser that checks the conformance of the packets to a traffic descriptor,
•
A shaper to delay packets until they can be emitted per traffic descriptor, and
•
A sequencer which feeds packets to the network interface in the order of priority from the
queues that it manages
Table 2-4 Mapping between Service Type and the Configuration Mode of the Packet Scheduler
Service Type
Network Control
Guaranteed Service
Controlled Load
Qualitative
All other traffic
Mode
Priority
Borrow mode Highest priority
Shape mode
High priority
Borrow mode Medium priority
Borrow mode
Low priority
Borrow mode Lowest priority
Flows may be individually configured in the packet scheduler in the following modes:
•
Borrow mode: allow flows to borrow resources from higher priority flows that are temporarily
idle.
•
Shape mode: delays packets until they conform to a specified traffic descriptor.
•
Discard mode: discard packets that do not conform to a specified traffic descriptor.
The packet scheduler implements a mapping from requested service type (explained in Section 2.2.2.1.3
and 2.2.2.1.4) to one of these aforementioned modes and to an internal priority level. Table 2-4 shows this
mapping defining by default (it may be overridden):
The Network Control service type is reserved for use by critical traffic management applications. These
services are not available through the GQoS API, it may be requested via the TC API.
2.2.2.4.2 Marking Behaviour
The QoS aware applications request certain type of service (Guaranteed Service, Controlled Load or
Qualitative) for a traffic flow via the GQoS. The QoSSP generates an RSVP signalling request to the
network for the specified service type. This request could be refused by Policy Decision Points (PDPs) in
the network. If no refused the request, the QoS SP will request the TC to mark packets on the
corresponding flow. The host operating system marks the packets on a flow to direct these packets to
certain aggregate traffic handling classes in different parts of the network, i.e., by way of marking, the
host operating system can expect to obtain a certain level of service on behalf of applications by cooperating with network policy mechanism.
Packets will be marked based on a mapping from requested service type to a corresponding DSCP or
802.1p mark (Table2-5).
Page 41
MIND
1.2
Table 2-5 Default Mapping Between Service Type Requested and DSCP and 802.1p mark
Service Type
Network Control
Guaranteed Service
Controlled Load
Qualitative
All other traffic
DSCP
303 (6)4
28 (5)
18 (3)
0 (0)
0 (0)
802.1p
7
5
3
0
0
2.2.2.5 Subnet Bandwith Manager and Admission Control Service
The Subnet Bandwidth Manager (SBM) and the Admission Control Services (ACS) are Microsoft’s
implementation of Policy Enforcement Point (PEP) and PDP functionality; both are QoS policy
components of shared network resources. ACS uses the Active Directory (Figure 2-9) service as a policy
data store and single point of management. Devices as switches and routers act as PEP/PDP intercepting
RSVP signalling messages.
The SBM protocol, defined by IETF, defines how agent in the subnet elects a Designated SBM (DSBM)
which then is responsible for the use of shared resources of the subnet. The DSBM advertises it presence
in the network. All devices sending RSVP Path messages must route these through the DSBM.
ACS of Microsoft combines the resource-based admission control functionality of an SBM with policy
based admission control using the Active Directory. It leverages the capability of SBM to include itself in
the RSVP reservation path and, therefore, effect admission control. When PATH and RESV messages are
intercepted, a Local Policy Module extracts the policy-related objects from the RSVP message and
compares the requesting user ID and the resources requested with privileges configures in the Active
Directory.
2.2.3 Linux and Windows Comparison with Respect to QoS Support
In precedent sections have been described the development and implementation of the QoS support in the
well Linux and Microsoft Windows OSs. In this section some brief thoughts are included in a manner of
comparison between these platforms to encourage their use for future BRENTA implementations.
2.2.3.1 QoS Support in Linux
The QoS support in Linux kernel provides the framework for the implementation of various IP QoS
technologies like IntServ and DiffServ (as depicted in Figure 2-5). QoS in Linux is basically based on
Traffic Control, the control of the transmission behaviour of packets in the outgoing in the outgoing
interfaces. Therefore, QoS in Linux is essentially implemented using queue disciplines, classes and filters.
Currently, a command line interface called “tc” is the only tool used for QoS configuration, although
there are some initial efforts to define an API to provide dynamic QoS configuration capabilities to
applications. Despite of this limitation, several implementations have been developed to port adopted QoS
APIs like RAPI and the implantation of end and intermediate nodes of standard QoS mechanism like
DiffServ and IntServ. Several features encourage the use of this OS for experimental purposes like the
possibility to make changes to its source code freely. The conceptual architecture of Linux was designed
in an extensible fashion, i.e., the system portions that requires the most development were implemented
using a data abstraction technique: each network protocol and device driver, for example, is implemented
as a separate module that supports a common interface, due it, new modules could be added
independently or with minimal interaction between the developers of other modules. This principle of
design has motivated the participation of a large number of volunteer developers in the improvement of
the OS performance and services.
3
Hex value.
4
Three of the six bits of DSCP comprise the formerly IP Precedence Field. The corresponding IP precedence field
value is shown in parenthesis.
Page 42
MIND
1.2
2.2.3.2 QoS Support in Microsoft Windows
One of the most interesting features of Winsock 2 architecture is the Service Provider Interface (SPI). SPI
can be used to extend an existing base service provider by implementing a Layered Service Provider
(LSP), for example, QOS in Windows is implemented as a LSP over the TCP/IP protocol stack. Transport
providers (or protocol stacks) are services that allow setting up connections, transmit data, apply flow
control, error control, etc. There are two types of transport service providers in Windows: base and
layered service providers. Base service providers implement the actual details of a transport protocol
(setting up connections, transferring data, and exercising flow control and error control) and are typically
available from operating system vendors and transport stack vendors. Layered service providers,
developed by mean of SPI functions, implement only higher-level custom communication functions and
rely on an existing underlying base provider for the actual data exchange with a remote endpoint.
Extending base transport functionality using a layered transport service provider is a very attractive and
powerful idea: this service architecture allows third-party service providers to be plugged in without the
need for application developers to rewrite their code and without the need to replace dynamic link
libraries.
GQoS, the QoS application programming interface of Windows, takes advantage of this layered service
provider model: first, a QoS-aware application must find an appropriate layered service provider that
supports a specific QoSSP (e.g., RSVP) and, once this is found, the standard Winsock 2 APIs can be
invoked to create a socket and specify QoS information. A particular feature of GQoS is that the same
socket is used for both, for data transfer and QoS setup/notifications. Attempting to use two sockets for
the purpose of segregating QoS setup/notification functionality from the actual data transfer functionality
(with QoS applied on the transfer) is not supported.
2.2.4
Mapping BRENTA Service Primitives
In this section is presented the description and mapping of the ESI service primitives to function calls
defined in the OSs described in previous sections. ESI was conceptually defined during the BRAIN
project to provide to BRENTA applications the ability to request QoS in quantitative and qualitative
ways. First, the ESI and its relation to other BRENTA component is explained, then, its QoS service
primitives are reviewed and finally the mapping of these primitives to widely used APIs Linux and
Microsoft OSs are accomplished.
2.2.4.1 Enhanced Socket Interface and BRENTA Architecture.
The ESI is a QoS supporting transport service interface defined for BRENTA to use well-known transport
primitives (e.g. open, close, listen, etc) and enhance it by additional primitives to give applications of
BRENTA the ability to use QoS. ESI is a generic interface i.e. independent of any platform, QoS
architecture and transport service provider. With this interface, applications in BRENTA should be able
to request some QoS level for their connections in a transparent manner from the type of QoS mechanism
supported by the network and mobility associated features. Thereby, it allows the programmers to
develop applications against this interface irrespective of the platform, QoSSP implementation in endsystems or networks.
The required mapping of the parameters and primitives to specific QoS service and transport provider is
held by an Enhanced Service Layer (ESL). This layer is located between the application and transport
layer (as shown in Figure 2-12) and it consist of two main functionalities: a QoS Mapper and a Primitive
Mapper. The former is in charge of translate QoS specifications requested from the ESI to QoS
parameters which the used QoSSP is able to understand; and the last translates ESI primitives to
corresponding implementation-dependant primitives provided by the underlying protocol stack. In
BRENTA, the specific Transport and the QoSSP are representing by a BRAIN-Service Interface below
the ESL. Besides these layers, the IP layer and sub network technology interfaces complete the QoS
data/networking plane of the terminal architecture.
Page 43
1.2
Legacy Applications
QoS- Aware Applications
Enhanced Socket Interface
Primitive Mapper
Entity
Service Provider
QoS Mapper Entity
LMI
Enhanced
Service
Layer
BRAIN Service Interface
TCP
IP(v4/v6)
Further transport of QoS
or Service Provider
UDP
Mobility support
Subnetwork technologies ( i.e., Hiperlan/2, UMTS, Bluetooth )
Local Management Functionality
User Provider
MIND
Figure 2-12 Enhanced Socket Interface and General BRENTA Architecture
Through a Local Management Interface (LMI), management related information that resides in a Local
Management Entity (LME) could by accessed to QoS-related configuration and administration of the
system. The last is part of the QoS & Resource Management plane of BRENTA.
2.2.4.2 Modelling the Enhanced Socket Interface
The ESI is represented using the model of service primitives, in which a service is specified by a set of
primitives. These primitives (function calls) indicate a service to carry out some action or to inform about
an action taken by a peer entity. The services could be confirmed or unconfirmed. In a confirmed service,
a set of primitives is used to indicate to a corresponding peer entity that it has received information and it
has to send back a confirmation. In an unconfirmed service, there is no confirmation. The set of
primitives used in each type of services is shown in Figure 2-13.
In ESI, the confirmed and unconfirmed services are extended by primitives supporting local error cases
inform of indications from service providers, e.g., for each Service.request there is a
ServiceErrorRequest.indication. Besides of these services, a Notification Service is useful when a
network entity between the communicating peer generates information. It can be modelled by a Service
indication as shown Figure 2-14.
2.2.4.3 QoS Mechanisms Supported in BRENTA
In BRENTA there are two basic mechanisms for QoS support:
• Hard QoS reservation: network resources are reserved according to an application’s QoS request
and subject to bandwidth management policy. This mechanism requires an explicit end-to-end
signalling; therefore it is developed by a confirmed serviced. Indications of QoS violations could be
informed to upper layers by the way of a notification service.
• Soft QoS reservation: network resources might be reserved according to a previous negotiated
service legal agreement. The information is forwarded according to a per hop behaviour attached to
the delivered information and the upper layer does not know if the requested QoS is realised in any
form. This mechanism is supported by an unconfirmed service.
Page 44
MIND
1.2
Layer N
Layer N-1
service
.req ues
t
service.c
Service
User
Layer N-1
Confirmed Service
Layer N
servic
e.ind ic
atio
o nfirm
.respo
service
Service
Provider
n
nse
Service
Provider
Service
User
Network
Layer N
Layer N-1
Layer N-1
service
.req ues
t
Service
User
Unconfirmed Service
Layer N
servic
e.ind ic
atio
Service
Provider
Service
Provider
n
Service
User
Figure 2-13 Abstract Model of Confirmed and Unconfirmed Services
Layer N-1
service.i
nd icatio
Layer N
n
Network
Service
Provider
Service
User
Notification Service
Figure 2-14 Abstract Model of Notification Service
2.2.4.4 ESI Service Primitives
The services used in BRENTA to support Hard QoS reservation are the following:
•
SetQoS, a confirmed service to request QoS to be associated with the given flow.
•
With this service, a reservation in all the participant nodes between the sender and the receiver
(both inclusive) has to be accomplished returning a positive acknowledge if the end-to-end QoS
can be granted or a negative one if not. This service is composed by the set of primitives of a
confirmed service as used to model the ESI services. This service can only be offered if an
appropriate signalling is supported by the QoSSP (e.g., RSVP).
•
SetQoSViolation Notification
•
During establishing a QoS aware flow with SetQoS service an error in any network entity can
occur due to admission or policy control or simply due the fact that the network entity cannot
grant the requested QoS. This error is informed to one of the participated sides depending of the
QoSSP capabilities and how the used protocol handle violations during establishing of a QoS
Page 45
MIND
1.2
aware flow in the network. The notification service only involves an indication.primitive as
shown in Figure 2-14.
•
QoSViolation Notification
•
After establishing a QoS aware flow there might be changes of the QoS between the sender and
the receiver. Therefore, QoSViolation notification is used to inform to participating peers that
the established QoS cannot longer be provided. The destination of the notification and the
information about the violation is delivered depending of the QoSSP implementation.
•
ChangeQoS, confirmed service
•
This service was defined for changing of the reserved resources between the sender and the
receiver after the establishing a QoS aware flow with SetQoS service according changes of
flow’s QoS requirement. This service can only be offered if an appropriate explicit end-to-end
signalling QoS Service provider is available.
•
ChangeQoSViolation Notification
•
ChangeQoSViolation Notification service provides an indications of errors during the change of
QoS aware connection. The error could be produced in any network entity due to admission or
policy control or simply due the lack of resources.
•
The unconfirmed service used in BRENTA to support Soft QoS reservations is AssignQoS
•
AssignQoS, an unconfirmed service
•
AssignQoS support the delivering of packets based on specific QoS parameters without the
reservation of resources in the network, therefore, no signalling is required. It invokes QoS
treatment for a given flow according the QoSSP capabilities. ChangeQoS service cannot apply to
QoS aware flows established with AssignQoS service. The flow’s QoS characteristics established
with the AssignQoS can be changed by a repeated call of the same primitive including the new
QoS parameters.
•
For both, the Hard and Soft QoS reservations, the resources established for the QoS support are
released with RealeseQoS:
•
ReleaseQoS
This service is used for both kind of flows, either associated with an end-to-end signalling protocol or not.
If the QoS aware flow was established with an end-to-end QoS signalling, this service is used as an
unconfirmed service. If a signalling was not involved then is dependent of the QoSSP’s nature to release
the requested QoS.
All the described services and its respective primitives are summarised in the Table 2-6.
Table 2-6 Service Primitives of the Enhanced Socket Interface
Service Primitives
Meaning
Direction
SetQoS, confirmed service
Associated Info: flow, QoS parameters
•
SetQoS.request
Request QoS to be associated with a given User Æ Provider
flow
•
SetQoS.indication
Indicates a New QoS connection
Provider Æ User
•
SetQoS.reponse
Response with probably modified QoS
User Æ Provider
•
SetQoS.confirm
Confirmation of the requested QoS flow. Provider Æ User
Received QoS can differ from the requested
one.
Page 46
MIND
1.2
•
SetQoSRequestError.indication
Indicates a local error due to SetQoS.request Provider Æ User
primitive call
•
SetQoSRespondError.indication
Indicates a local error due to SetQoS.respond Provider Æ User
primitive call
SetQoSViolation, notification
Associated Info: flow, type of violation
•
SetQoSViolation.indication
Indicates a violation during establishing a Provider Æ User
QoS aware flow with the SetQoS service
QoSViolation, notification
Associated Info: flow, type of violation
•
QoSViolation.indication
Indicates a violation for an already QoS Provider Æ User
aware flow.
ChangeQoS, confirmed service
Associated Info: flow, QoS parameters
•
ChangeQoS.request
Request the change of the QoS for an already User Æ Provider
QoS aware flow
•
ChangeQoS.indication
Indicates that the QoS for the specific flow Provider Æ User
has to be changed to new QoS
•
ChangeQoS.respond
Respond with probably modified QoS
•
ChangeQoS.confirm
Confirmation of the requested change for an Provider Æ User
already established QoS flow
•
ChangeQoSRequestError.indication
Indicates
a
local
error
due
ChangeQoS.request primitive call
•
ChangeQoSRespondError.indication
Indicates a local error due to ChangeQoS.respond Provider Æ User
primitive call
User Æ Provider
to Provider Æ User
ChangeQoSViolation, notification
Associated Info: flow, type of violation
•
ChangeQoSViolation.indication
Indicates a violation during the change of an Provider Æ User
already QoS aware flow with the SetQoS service
AssignQoS, unconfirmed service
Associated Info: flow, QoS parameters
•
AssignQoS.request
Assign QoS Parameters to a given flow
User Æ Provider
•
AssignQoS.indication
Indicates a new QoS established flow
Provider Æ User
•
AssignQoSRequestError.indication
Indicates
a
local
error
due
ChangeQoS.request primitive call
QoSViolation, notification
Page 47
to Provider Æ User
MIND
1.2
Associated Info: flow, type of violation
•
QoSViolation.indication
ReleaseQoS, unconfirmed service
Indicates a violation for an already QoS aware Provider Æ User
flow.
Associated Info: flow
Associated Info: flow
•
ReleaseQoS.request
Request the release of resources associated with a User Æ Provider
given flow
•
ReleaseQoS.indication
Indicates the release
corresponding peer
of resources by
the Provider Æ User
2.2.4.5 ESI QoS Parameters
The QoS parameters are used by QoS-enabled applications to specify requirements to QoS service
providers. In [BRAIN2.2] were proposed the QoS parameters used in the primitives above mentioned. In
order to support different kinds of QoSSPs, the parameters were defined according the following goals:
•
Generic definition: the generic definition of QoS parameters allows the application codes need
not to be changed each time the applications are running on different platforms or when the
QoSSP must be changed.
•
Adoption of well-known concepts: the familiar concept of flowspec was adopted to invoke
correct QoS treatment on a given flow.
•
Reduction of QoS violations: the idea of parameter intervals was introduced where appropriate
to provide more freedom in the election of the QoSSP and to reduce the QoS violation messages
(notifications and indications).
The QoS parameters were specified as intervals. The lower limit of intervals was denoted
minimum_acceptable_limit and the upper limit was named desirable_limit. When the QoS support is
required, the QoSSP may start with any suitable value within the limits specified by the QoS parameters.
It will try to stay with this value as long as possible or may change the initial value if more resources
become available. Also, the QoS parameters were distinguished between sending and receiving because
must of the applications show asymmetric characteristics. These parameters are the following:
•
SendingFlowspec: specifies QoS parameters of a particular flow for the sending direction.
•
ReceivingFlowspec: specifies QoS parameters of a particular flow for the receiving direction.
•
ServiceProviderSpecific [optional]: presents additional QoS parameters related to the QoSSP for
a given flow.
In more detail, FlowSpec is used to define in quantitative or qualitative form the requirements for QoS,
the type of service and the amount of traffic that the application will transmit. The FlowSpec consist of
Token Bucket model parameters, latency, jitter, service type, and others described in the following table
(Table 2-8).
Most of the applications can provide all their QoS requirements without using the
ServiceProviderSpecific parameters, but if the application must include additional information, like the
packet loss rate desirable for the given service, the requested dropping priority and/or the forwarding
priority for a given flow, the requested behaviour of a packet shaper used by traffic control mechanisms
and others, these parameters could be used to provide the required specific additional information to the
QoSSP.
Page 48
MIND
1.2
Table 2-7 Parameters that Compose the ESI Flowspec
Parameter
Token Rate
Token Bucket Parameters
Definition
Permitted rate at which data can be transmitted
over the life of the flow
Maximum quantity of credits of a flow regardless
of time
Burst limit, i.e., the higher limit on time-based
transmission permission for a given flow
Maximum acceptable delay between the
transmission of a bit and its reception
Delay variation. It determine the amount of buffer
needed at the receiving side of the flow.
Maintain with reasonable effort the level of QoS
specified with the FlowSpec without guarantees
on packet delivery.
Provide a best effort service type as expected
under unloaded conditions along the data path.
Isolate a given flow from the effect of other flows
as possible. For apps that require deterministic
QoS.
Maximum packet size allowed in the packet flow
TokenBucketSize
PeakBandwidth
Latency
(microseconds)
Jitter
(microseconds)
ServiceType
Best Effort
Controlled Load
Guaranteed
MaxSduSize
(bytes)
Minimum packet size for which the requested
QoS will be provided
MinimumPolicedSize
(bytes)
2.2.4.6 Mapping ESI to RAPI Function Calls
The set of primitives of ChangeQoS and SetQoS service maps to RAPI calls rapi_sender() and
rapi_reserve() in the same way because the last are used for both, the establishment and the change of
parameters of reserved resources. The Table 2-8, included below, explains the mapping in more detail.
The ChangeQoS and SetQoS indication and confirm primitives are notifications of the service provider to
the user providers, therefore these notifications could be mapped to the events used by the RAPI. First, it
is necessary to define a session using the rapi_session() call and specifying the address of an upcall
routine that will with be invoked when a notification is done. A rapi_getfd() call is used to obtain the file
descriptor associated with the Unix Socket connected to the RSVP daemon. When a read event is
signalled to the file descriptor, then rapi_dispatch() is called to invoke the upcall routine. The upcall
routine is generically named event_upcall_routine() in the table and its address was specified in
rapi_session(). The upcall routing executes a specific procedure depending of the type of event. In Table
2-8 just the event related with the specific indication or confirmation is shown. The same procedure is
required for the registration of asynchronous errors like SetQoS/ChangeQoSViolations.
Table 2-8 Mapping of ESI confirmed service primitives and violation notifications to RAPI Calls
BRENTA Service
Primitives
SetQoS & ChangeQoS
RAPI calls
Description
Related parameters
Corresponding calls,
upcalls & notifications
confirmed services
•
SetQoS.request
•
ChangeQoS.request
rapi_sender( )
Request QoS and define the QoS Required
parameters
are
parameters of a sender’s flow
session ID, source address,
source port, sender template,
sender
Tspec,
Adspec,
data_TTL, policy data
Page 49
MIND
•
SetQoS.indication
•
ChangeQoS.indication
1.2
event_upcall_routine
(…,EvenType,…);
EvenType
RAPI_PATH_EVENT
•
SetQoS.reponse
•
ChangeQoS.respond
•
SetQoS.confirm
•
ChangeQoS.confirm
rapi_reserve()
SetQoSRequestError.
indication
•
Make, modify or delete a resource
reservation for a session. It may
be
repeated
with
different
parameters,
allowing
the
application
to
modify
the
reservation.
The parameters depend of the
type of event. In this case,
sender template, sender Tspec
and Adspec are considered.
Session ID, receive
address, style ID,
extension,
host
style
RSVP policy, Filter Spec
number, Filter Spec List,
Flowspec number, Flowspec
list
Similar to the above indication, the The used parameters
confirmation is done with the Flowspecs and FilterSpec
reception of a RESV message. It
signals a RAPI_RESV_EVENT
event type.
event_upcall_routine
(…,EvenType,…);
EvenType
RAPI_RESV_EVENT
•
The upcall routine executes an
specific procedure depending of
the type of event. The received
type of event must be a
RAPI_PATH_EVENT
which
indicates that a PATH message
= form a remote node has arrived or
the local path state has changed.
are
=
Provided by an RAPI error
code
returned
by
a
rapi_sender() call if there is
a synchronous error
Examples of local error may be: no RAPI error code (defined in
explicit end-to-end signalling rapi_err.h), error flags and
capable QoS service provider is error values.
available, request not allowed
because the host is in the role of a
receiver, etc.
Provided by an RAPI error
code
returned
by
a
rapi_reserve() call if there is
a synchronous error
Examples of local error may be: no RAPI error code
explicit end-to-end signalling rapi_err.h
capable QoS service provider is
available, request not allowed
because the host is in the role of a
sender, etc
event_upcall_routine
(…,EvenType,…);
This type of event indicates that an Error
code
and
value,
asynchronous error has been found filterspec_list, flowspec_list,
in the sender information specified sender template, sender Tspec,
in a rapi_sender call. It contains an
error code and a corresponding
value to specify the error.
ChangeQoSRequestError.
indication
•
SetQoSRespondError.
indication
•
ChangeQoSRespondError.
defined in
indication
Asynchronous
Violation notifications
•
SetQoSViolation.
indication
•
ChangeQoSViolation.
indication
•
SetQoSRespondError.
EvenType
RAPI_PATH_ERROR
=
This type of event indicates that an Error code, error value,
asynchronous reservation error has Flowspec
list,
flowspec,
occurred when a rapi_reserve was FilterSpec_list, filter_spec
done.
event_upcall_routine
(…,EvenType,…);
indication
•
ChangeQoSRespondError.
Indication
EvenType
RAPI_RESV_ERROR
=
The error codes are defined in
rapi_err.h
Page 50
MIND
1.2
The mapping of the ESI primitives and RAPI calls for the release of reservations is shown in Table 2-9.
Table 2-9 Mapping of the ESI primitives and RAPI Calls for the Release of Reservations
BRENTA Service
Primitives
ReleaseQoS
unconfirmed service
RAPI calls
Description
Related parameters
Corresponding calls,
upcalls & notifications
•
ReleaseQoS.request
rapi_release()
This call removes the reservation and
the state corresponding to a given
session.
•
ReleaseQoS.indication
…
A path or reservation event upcall also
indicates the arrival of teardown
messages. The identification of a
PATH tear or a RESV tear message
depend of the values of the parameters
event_upcall_routine
(…,EvenType,…);
EvenType
=
RAPI_
RAPI_PATH_EVENT or
•
The list of senders
is empty.
•
The
flowspec
object is empty in
the case of a
RESV_EVENT.
RAPI_RESV_EVENT
2.2.4.7 Mapping ESI calls to GQoS Function Calls
There are a variety of ways that an application can communicate its QoS requirements for a socket to the
QoS service provider using GQoS interface. It depends on the type of the communication (point to point
or multipoint) and the type of transport protocol. To provide an example of the mapping between the ESI
service primitives to GQoS calls, we assume a common UDP application sending/receiving unicast flows
with QoS support from the RSVP QoSSP for the explanation.
The first step in QoS-enabling the application is to request at least Winsock version 2.0. As mentioned in
Section 2.2.2.1.2 to establish a connexion with QoS support is required to enumerate the available
protocols using WSAEnumProtocols. When the UDP protocol with QoS support protocol (RSVP) is
found, WSASocket call can be used to open a QoS Socket, passing a pointer to the
WSAPROTOCOL_INFO structure (that defines the characteristics of the socket to be created) with the
XP1_QoS_SUPPORTED flag. Then several calls could be used to invoke the RSVP SP on the
application's behalf, and begins the process of establishing QoS between the sender and receiver.
Notifications like indications, confirmations and asynchronous errors are registered using a set of
functions. First, WSAAsyncSelect() register the type of event in which the application is interest by
means of lEvent parameter which value must be FD_QoS. Then, WSAEnumNetworkEvents() call is used
to discover which network events have occurred. The socket's internal record of network events is copied
to the structure referenced by lpNetworkEvents in this call. The iErrorCode array of this structure
contains the corresponding notification. After the notification is evaluated, applications could inspect the
arrived QoS parameters to determine the changes associated with the notification. To achieve this task,
WSAIoctl call could be used to retrieve the QoS structure associated with the event if the SIO_GET_QoS
parameter is specified. The QoS parameters are stored in lpvOUTbuffer.
In Table 2-10 is shown the mapping of ESI service primitives and GQoS API calls. SetQoS and
ChangeQoS primitives map to GQoS calls using the same functions as shown because these functions
develop both, the establishing and the change of resource reservations.
Page 51
MIND
1.2
Table 2-10 Mapping of ESI Confirmed Service Primitives and Violation Notifications to GQoS
Calls.
BRENTA Service
Primitives
GQoS API
SetQoS & ChangeQoS
Corresponding calls, upcalls
& notifications
Description
Related parameters
confirmed services
•
•
SetQoS.request
ChangeQoS.request
WSAconnect();
This call provides the QoS Socket created via
parameters of a sender’s flow WSASocket(), Peer host
(sending flowspec).
address, the lpSQoS structure
This socket is used for both task,
data transfer and QoS setup. A
lpSQoS structure is used to specify
the sending flowspec with its
traffic
characteristics.
The
transmission of PATH messages
begins when the sender star to send
data
•
•
SetQoS.indication
ChangeQoS.indication
WSAEnumNetworkEvents(…
,lpNetworkEvents,…);
WSAIoctl
(…,SIO_GET_QoS,
pvOUTbufferl,…);
WSAEnumNetworkEvents call is
used to discover which network
events have occurred. The socket's
internal record of network events
is copied to the structure
referenced by lpNetworkEvents.
The iErrorCode array of this
structure
contains
a
WSA_QoS_SENDER when a
PATH message has arrived.
The parameters depend of the
type of event. In this case,
Sender template, sender Tspec
and Adspec are evaluated from
the sending flowspec of the
QoS structure.
WSAIoctl (SIO_GET_QoS) call
retrieves the QoS structure
associated with the event. These
are stored in lpvOUTbuffer.
•
•
SetQoS.respond
ChangeQoS.respond
WSAconnect();
Similar to SetQoS and ChangeQoS
requests. WSAconnect() requests
QoS and define the QoS
parameters for the requested flow
using the same socket for data
transfer. A lpSQoS structure is
used to specify the receiving
flowspec
with
its
traffic
characteristics. The transmission of
PATH messages begins when the
sender star to send data.
The transmission of RESV
messages begins when GQoS has
determined that the application
intends to invoke QoS. Generally,
the
transmission
of
RESV
messages may be triggered either
by the receipt of a PATH message
or by the creation of a socket.
Page 52
Socket
created
via
WSASocket(),
Peer
host
address, peer host address, the
lpSQoS structure with the
relevant QoS (the receiving
flowspec must be settled with
the
requested
traffic
characteristics).
MIND
•
•
SetQoS.confirm
ChangeQoS.confirm
1.2
WSAEnumNetworkEvents(…
,lpNetworkEvent,…s);
WSAIoctl
(….,SIO_GET_QoS,
lpvOUTbuffer,…);
•
SetQoSRequestError.
indication
•
ChangeQoSRequestError
.
indication
•
SetQoSRespondError.
indication
•
ChangeQoSRespondErro
r.
Indication
Similar to SetQoS and ChangeQoS
indications,
GQoS
provides
confirmations
that
can
be
registered by a set of function
calls. It’s necessary to register the
FD_QoS event types. When
WSA_QoS_RECEIVERS
is
returned in iErrorCode array of
lpNetworkEvents it indicates that a
reservation state has changed in
the sender host. This occurs when
a RESV message has arrived. Then
the app. must get the information
from the QoS structure stored in
lpvOUTbuffer.
The parameters depend of the
type of event. In this case,
Sender template, sender Tspec
and Adspec are evaluated from
the receiving flowspec of the
QoS structure.
The used parameters
Flowspecs and FilterSpec
WSAConnect(); returns a
SOCKET_ERROR if it fails,
the specific error code can be
retrieved
by
calling
WSAGetLastError().
WSAConnect();
returns
a No parameters are required.
SOCKET_ERROR if it fails, the
specific error code can be retrieved
by calling WSAGetLastError().
This call returns the last network
error that occurs. It provides the
error code of the failure.
WSAEnumNetworkEvents(…
,lpNetworkEvents,…);
The FD_QoS event triggered by No parameters are required.
the reception of a message
describes the kind of error that
occurs in a network element.
WSAIoctl
(…,SIO_GET_QoS,
pvOUTbufferl,…);
Some of the following failures can
be registered in the case of an error
event arrives:
are
Local Error indications
Asynchronous
Violation notifications
•
SetQoSViolation.
indication
•
ChangeQoSViolation.
Indication
- error due to lack of resources:
WSA_QoS_ADMISSION_FAILURE
rejected for administrative
reasons:
WSA_QoS_POLICY_FAILURE
- unknown or conflicting style
WSA_QoS_BAD_STYLE
.
- problem with some part of the
flowspec:
WSA_QoS_BAD_OBJECT
- problem with some part of the
filterspec
WSA_QoS_TRAFFIC_CTRL_ERROR
- general error
WSA_QoS_GENERIC_ERROR
For qualitative applications, those that do not know their specific traffic requirements, but for which data
delivery is very important, GQoS, in co-ordination with network policy elements (described in Section
2.2.1.5), influences the marking of transmitted packets. The FLOWSPEC structure, that describes the QoS
flow parameters (Section 2.2.2.1.3), provides a SERVICETYPE parameter in which is possible to define
a qualitative service type, named SERVICETYPE_QUALITATIVE. This service type should supply an
application ID policy element in the ProviderSpecific field of the QualityOfService structure, which
enables policy servers on the network to identify the application and assign an appropriate QOS to the
application request by returning a DCLASS object [BER00] . All fields in the SendingFlowspec can be
set to QOS_NOT_SPECIFIED. The MaxSduSize of sending can be specified by the sending application
if it knows the size; otherwise, the media Maximum Transmission Unit (MTU) size will be used.
Page 53
MIND
1.2
The QoS Packet Scheduler (QoS PS) performs traffic policing on the sending traffic against the
SendingFlowspec, does DSCP marking on the conformant traffic according to its service type and its
DCLASS object, and then submits the packets to the driver of the network interface card to transmit them
on the link. The QoS PS Scheduler implements the QoS traffic control elements, such as packet
scheduling and marking (Section 2.2.2.4). Bear in mind, that flows using qualitative service types are
configured by default in borrow mode with an internal low priority level in the PS. There are cases in
which the default mapping may be ignored using TC API functions (Section 2.2.2.3) for applications that
require further or specific control over traffic control, though, this procedure bypass the policy
mechanism of the QoSSP and corresponding network policy elements and does not fully describe
marking in response to the GQoS API.
Table 2-11 Mapping of AssignQoS Unconfirmed ESI Primitive and GQoS Calls
BRENTA Service
Primitives
AssignQoS,
GQoS API
Description
Related parameters
Corresponding calls,
upcalls & notifications
unconfirmed service
•
AssignQoS.request
WSAconnect();
Flowspec->
ServiceType=Servicetype
_qualitive
•
AssignQoS.indication
not possible
This call provides the QoS parameters Socket
created
via
of a sender’s flow (sending flowspec).
WSASocket(),
Peer
host
address, the lpSQoS structure
This socket is used for both, data
transfer and QoS setup. The lpSQoS
structure is used to specify the sending
flowspec with its traffic characteristics
and request a qualitative service type.
All the parameters must be set to
QOS_NOT_SPECIFIED.
A related QoS Event notification is not
available.
In Table 2-11, the GQoS procedures equivalent to the AssignQoS ESI function is presented. The use of
DiffServ as a QoSSP does not provide an indication to the peer end system of the establishing of a QoS
aware flow, therefore the corresponding mapping to AssignQoS.indication is not possible.
There are a number of ways to close an QOS-enabled connection. Generally, any event that closes a
socket also ends RSVP SP servicing on the socket. Examples of events that cause the RSVP SP to stop
providing QOS functionality on a socket include the use of closesocket, that causes the socket handle to
become de-located so that the application can no longer reference, and shutdown to disable sends or
receives on a socket. In general, shutting down a socket connection involves an exchange of protocol
messages between the two endpoints, this is known as a shutdown sequence. Two general classes of
shutdown sequences are possible when closing a socket: graceful and abortive. In a graceful shutdown
sequence, any data that has been queued but not yet transmitted can be sent prior to the connection being
closed. In an abortive shutdown, any unsent data is lost. The occurrence of a shutdown sequence (graceful
or abortive) can be used to provide an FD_CLOSE indication to the associated applications representing
that a shutdown initiated at the peer host is in progress.
One technique that can be used to minimise the chance of problems occurring during connection
teardown is to avoid relying on an implicit shutdown being initiated by closesocket. Instead, first, use of
shutdown function that causes an FD_CLOSE indication to be received by the peer application indicating
that all pending data has been received. Immediately after FD_CLOSE indication, the peer application
could send any remaining response data to its corresponding application, invoking the shutdown function
to indicate that it has no more data to send and finally requesting the socket closing. Lastly, the
corresponding application can close its socket safely from data loss.
In Table 2-12 is shown the mapping of the RealeseQoS service primitives and shutdown Winsock2 calls
that initiates the shutdown sequence.
Page 54
MIND
1.2
In Section 2.2 we described the QoS support in Linux and Windows Operating Systems which was chose
for future implementation of the Enhanced Socket Interface of BRENTA. Also, the mapping of the ESI
functions to LINUX and Windows function calls was done. The following section shows how different
aspects of mobile Ad Hoc networks affect the support of QoS and how it influences the BRAIN End
Terminal Architecture.
Table 2-12 Mapping of the ESI Primitives and GQoS Calls for the Release of Reservations
BRENTA Service
Primitives
AssignQoS,
GQoS API
Description
Related parameters
Corresponding calls,
upcalls & notifications
unconfirmed service
•
AssignQoS.request
WSAconnect();
Flowspec->
ServiceType=Servicetype
_qualitive
•
AssignQoS.indication
not possible
This call provides the QoS parameters Socket created via
of a sender’s flow (sending flowspec).
WSASocket(), Peer host
address, the lpSQoS structure
This socket is used for both, data
transfer and QoS setup. The lpSQoS
structure is used to specify the sending
flowspec with its traffic characteristics
and request a qualitative service type.
All the parameters must be set to
QOS_NOT_SPECIFIED.
A related QoS Event notification is not
available.
2.3 Ad Hoc and QoS Aspects
Mobile Ad Hoc Networks (MANETs) consist of a collection of mobile wireless nodes that dynamically
create a network without the assistance of any infrastructure or administrative support. Integration of
MANETs with fixed access networks has a special interest to MIND project for the extension of Mobile
IP based networks that offer broadband multimedia services. In this sense, the participants of WP1 had
identified a set of usage scenarios based on user activities, derived business models and a methodology
for flexible service provision [MIT02], [TOM02].
In these scenarios, the user has access to different services through a diversity of interconnected networks
(fixed, wireless access and Ad Hoc networks) using an adapted end-terminal. The terminal is a Personal
Wireless Assistant (PWA) based on an end-terminal architecture defined in the BRAIN project [BD22].
The BRENTA was designed in BRAIN for providing applications with QoS adaptation and transparent
mobility management mechanisms.
2.3.1 MIND Project Vision
MIND provides a vision of a path towards wireless communications beyond 3G systems in which
interconnected IP-based networks will be accessed through a variety of technologies. Current and future
networks will be heterogeneous showing fair performance variations. Lack of network resources in
wireless environments will limit and affect the behaviour of the applications and the experience of the
users of available services.
The lack of information about the global behaviour of the network, mobility of terminals, vertical and
horizontal handovers between different network technologies and operators would make difficult to
establish a predictable end-to-end QoS provision. Then, knowledge about the usage of resources by
applications, adaptation mechanisms in multimedia distributed applications, resource and mobility
management at the terminal will help to provide this predictable end-to-end QoS provision. An end
terminal with some of these qualities has been defined in BRAIN and must be adapted or modified to the
new scenarios defined in MIND.
Page 55
MIND
1.2
In MIND, the traditional access networks of wireless communications systems (consisted in static,
planned and secure nodes) might be extended by wireless mobile nodes that are not managed by the
original network operator. These mobile nodes constitute mobile Ad Hoc and self-organising networks.
2.3.2 Features of Mobile Ad Hoc Networks
Ad Hoc networks are self-creating, self-organising and self-administering. They are created solely by the
interactions among their constituent wireless mobile nodes. Only such interactions are used to provide the
necessary control and administration functions on such networks.
MANETs can be created and used “any time and anywhere”. They do not operate under the limitations of
a fixed topology in hostile and infrastructureless environments offering exclusive benefits, e.g., robust
adaptation to changing network conditions and topologies. These advantages raised interest among
military and rescue organisations first and then some commercial applications emerged (e.g., home and
office networking).
2.3.2.1 General Features of Ad Hoc Networks
The main challenge that MANETs has to overcome is the unpredictability of his network topology. The
topology of these networks not only depends on the freely variable mobility of each node; it also depends
on the radio electrical environment behaviour (radio interference’s, multi-path propagation, signal fading,
etc) that affects the links among them.
Since the nodes in a MANET may move often, it is necessary to deploy and use efficient routing protocol.
These must be able to find rapidly loop-free path between a source-destination pair. The search of
legitimate routes is a task that must be resolved before the occurrence of an important topology change.
Numerous routing protocols have been developed for MANET to resolve this problem and deal with other
typical problems described in the following paragraphs ([FEE99], [RT99], [MIS99], [MAN]).
There are several interesting problems that affect and challenge the mobile Ad Hoc networking at
different layers of the protocol stack. Beginning at the physical layer, the channel bandwidth is a scare
vital resource. It has limited bandwidth and hostile transmission characteristics commented above.
The lack of fixed infrastructure in MANET means that there is no dedicated entity to manage the channel
resources for network like the base station does at the radio access network. It induces the “hidden
terminal problem” that invalidate the usage of traditional carrier sensing techniques. Therefore, carefully
designed distributed medium access techniques must be used for management of channel resources. In
addition, Medium Access Control (MAC) protocols should be fair sharing the bandwidth resources
avoiding the disproportionate usage of the channels by some node and must provide mechanisms for fast
recovery from the packet collisions.
Due to the unpredictability of the topology changes in MANET it is necessary to employ very effective
routing protocols at the network layer, i.e., the amount and frequency of the information exchanged in
each topology update by these routing protocols are critical considerations due to the impact on the whole
network resources and QoS provisioning. At the transport layer of MANET, packet losses can occur by
transmission errors and congestion as well as the node mobility. The traditional implementation of TCP
deal with the losses related with congestion increasing the performance of the transport service on the
fixed network, but affects negatively the throughput in other mobile networks. New transport protocols or
modification have to be made to detect other types of packet losses than congestion ([LS01], [CRVP01]).
Other important aspects must be taken into account in a whole development and implantation of a
MANET like security and power consumption management. It is necessary to incorporate mechanisms to
protect both, the data transmitted on the wireless link and relayed by intermediate nodes and the
operational integrity of the routing protocols against deliberate attacks. The reduction of the expense of
energy is an important issue at all layers of the protocol stack of the mobile node powered by batteries
[TOH01] .
2.3.2.2 QoS Issues
All the challenges described above that must be overcome in MANET affect the service transportation
provided for the data traffic in terms of delay, available bandwidth, probability of packet loss, etc. These
Page 56
MIND
1.2
parameters define the degree of the End-to-End Quality of Service Transportation provided by the nodes
and are affected by additional factors than the overhead of the routing protocol and the time of routing
convergence. The accurate information of the current local and global network state and the
computational complexity of route selection with the best QoS offer must be taken into consideration.
At link-level, it is necessary to develop and employ retransmission schemes due to the error-prone nature
on wireless links. The choice of the retransmission scheme depends on the nature of packets being
retransmitted (i.e., TCP connection and UDP media flows could have different delay requirements), the
delay of the wireless channel and the energy consumption policy.
At network level, a loop-free path between a source-destination pair is impossible to find if the changes in
the network topology occur too frequently that the topology updates can’t be propagated to all pertinent
nodes. Then, it is necessary that the topology changes occur sufficiently slow to allow the distribution of
all topology updates at specific interval of time. This degree of stability, know as combinatorial stability,
is a critical consideration for QoS in MANET[CHEN99]. There are a lot of Ad Hoc routing protocols
proposed to work under different degree of stability, but in general, these are classified in two groups:
proactive and reactive protocols. Proactive protocols exchange information periodically to detect changes
in the topology of the network. The amount and frequency of each topology update may produce a
significant overhead reducing the resources available in the whole network. The reactive protocol search a
path just when is required preserving the available bandwidth but increases the route acquisition time and
the end-to-end delay for the QoS provisioning. QoS Routing process is another interesting routing
solution (actually discussed in WP2). QoS routing process find a suitable path to be used by a flow with
requested QoS guarantees using link state information, but the route computation with this strategy may
take too long or may be complex. Another routing method to reduce QoS violations in Ad Hoc networks
is the simultaneous use of alternatives routes, especially if these routes are disjoint, to increase the
throughput of a flow [KT00]. In general, the global state information exchanged during the topology
update may never be accurate. Moreover, routing in Ad Hoc networks consume network bandwidth, CPU
capacity and other local resources and increase the delay jitter experienced that must be kept under a
bound to satisfy the real-time traffic.
After finding a route (by mean of Ad Hoc routing protocols) it could be necessary to implement a QoS
mechanism to take advantage of the localised resource of QoS flows. It could be done per flow basis
using traditional signalling mechanisms like RSVP, but this protocol is not suitable in MANET;
reservations by this protocols could take too much time to establish a path with enough resources in
MANET with high mobility. Also, it introduces overhead to the network. By the other hand, QoS support
by means of service differentiation (applying the same per hop behaviour to similar marked packets) scale
better and does not overhead the network.
At higher layers, new transport protocols are necessary or modification have to be made to react properly
distinguish between loss of packet caused by transmission errors (as well as the node mobility) rather than
congestion (the regular problem in fixed networks). By way of a session negotiation the applications can
agree to use some special encoding techniques improving the packet loss recovery, e.g., using Priority
Encoding Transmission [KT00].
2.3.2.3 Roles of an Ad Hoc Node
In Ad Hoc networks, the node could operate as (i) an end terminal and (ii) router, both at the same time.
Mainly, in the interconnection of this kind of node is supported the current topology of an Ad Hoc
network. Due its relaying capabilities, the energy expense of the mobile node powered by batteries is an
important issue that affects the topology of the network and, also, the offering of QoS [TOH01] .
Therefore, it is convenient to use the shortest path between a source-destination pair to minimise the
overall power consumption during the routing process or use an alternative route in which intermediate
nodes have enough power to expend supporting this activity for enough time.
Sometimes, the latter is difficult or limited when just only one node acts as (iii) a gateway between the Ad
Hoc network and a fixed radio access network. In MIND project, this gateway allows the exchange of
packets between Access Networks to the Internet and the Ad Hoc network, the use of external
administrative functionalities (e.g. DNS) and the seamless handoff of visiting mobile nodes. Taking these
considerations into account, a mobile node acting as a gateway could become a bottleneck or a single
point of failure without sufficient local resources. Considering all these constrains, it is important to
Page 57
MIND
1.2
extend the power economy requirement to other layers of the protocol stack to guarantee End-to-End QoS
provision.
2.3.2.4 Basic Requirements of Ad Hoc End Terminals
After the description of the main features of Ad Hoc networks, some basic requirements could be derived
for Ad Hoc terminal in the context of MIND project:
•
Usability: In general, the mobile users have a little technical knowledge about the related issues
above mentioned. They are not expert; therefore the operation of end terminals must be as intuitive as
possible in Ad Hoc environments. Autoconfiguration by means of DHCP or IPv6 stateless
autoconfiguration are useful approach to resolve this issue, but in some situations, some degree of
configuration could be available to adjust the use of the terminal to the user’s preference.
•
Service Discovery: When power ups a terminal in an Ad Hoc network or at the end of a handover
process to a MANET of a mobile node, the visiting node don’t know the available services and where
they are located, then a service discovery mechanism must be necessary to find them. If access to
home network resources is used to request these services, the running applications on mobile host
experience increased latency (such as name server, file server, etc.) through multiple links and
routers. Therefore, these services could be provided as near as possible to the Ad Hoc node. Nodes
must co-operate to provide these services in a decentralised way or with the assistance of a fixed
infrastructure in which the Ad Hoc network is attached to. It will provide faster access to network
resources and reduce load on routers and networks.
•
Capabilities of adaptation: Frequent changes in the network topology due to the error-prone nature
of the wireless links and the (intra and inter network) mobility of the nodes makes necessary to
introduce adaptation mechanism to adapt the application behaviour to the resource availability of the
network. Therefore, adaptive media transport must be included for continues media stream
•
Partition and merges: Frequent changes of the topology could produce partitions of the Ad Hoc
network disrupting active session. Partition in Ad Hoc networks context means the division of a
whole network in two or more isolated parts [CN01]. An interesting example was introduced in the
leisure scenario described in [MIT02], [TOM02]. Nodes in the Ad Hoc network should cooperate to
re-establish the disrupted sessions and services with or without the assistance of additional
infrastructure (fixed wireless or wired networks) when partitions or merges occur.
•
Relaying foreign traffic: Nodes have to develop different roles in Ad Hoc networks. They act as end
systems as well as intermediate nodes (routers). For relaying foreign traffic, routing functionalities
must be introduced in BRENTA to assure this facility. As described before (in features of Ad Hoc
networks), the routing process in MANETs deal with the stability of the network topology and
scalability. Therefore, the routing process must be fast for updating the network topology before of a
new topological event and the amount of information distributed per node must be as reduced as
possible to avoid the waste of scarce bandwidth. Broadcast and Multicast routing capabilities
carefully designed for Ad Hoc network also should be included.
•
Gateway functionality: The vision of MIND project is the extension of the traditional wireless access
network with Ad Hoc networks. To achieve this between both networks, gateway functionality must
be developed by Ad Hoc nodes. This is another additional function that Ad Hoc nodes require to
perform. Due to the mobility of the node and power limitation, an Ad Hoc gateway is more
vulnerable than other Ad Hoc nodes. Acting as a single point of interaction between both networks
the Ad Hoc gateway becomes a bottleneck or single point of failure, also. So, alternative Ad Hoc
gateways (avoid single gateway) in the MANET should be necessary to guarantee the integration
with the whole Internet.
•
Quality of Service support: BRENTA supports different kinds of applications, but specially, it is
designed for real time interactive multimedia communications. To assure the support of these kinds
of services in the Ad Hoc portion of the network where communication pairs reside, Quality of
Service support should be offered for End-to-End QoS support.
Page 58
MIND
1.2
•
Mobility Management functionality: End systems in MIND have the capacity to change their point of
attachment to the network while they are moving. In a heterogeneous environment of networks the
mobility management must be included in the MANET to guarantee the continuous operation of the
active session of nodes arriving or leaving the attached Ad Hoc network. This requirement involves
the ability of the end terminal to detect the change of network, the presence of Foreign Agents and
the registration/deregistration to mobility agents.
•
Management of energy consumption: Limited energy resources is one of the major constrains in Ad
Hoc networks with autonomous mobile nodes. Routing, encoding techniques, high compression for
bandwidth conservation, radio transmission and another tasks developed by the Ad Hoc nodes
increase their energy consumption. Therefore, methods for energy conservation should be used in
each layers and functionalities of the system architecture. Increasing the shared information between
layers of the host protocol stack is useful in order to predict the possible changes in the available
resources and provide adequate QoS service to applications.
Additional basic requirements have to take into consideration security and accounting aspects that are
treated with more detail in the next chapters. Most of the aforementioned requirements are part of the
research activities developed in WP1, WP2 and tested in WP6.
2.3.3 QoS Architecture Proposals
There are two complementary proposed approaches for providing QoS support in traditional networks
that are subject of study to adapt these in mobile fixed an Ad Hoc networks. An approach based on
resource reservation provide QoS support by performing admission control and reserving resources for
flows on an end-to-end basis. A differentiated service approach provides QoS support by providing
individual packets with different per-hop behaviours at a given node based on a type of service markings
(e.g., DSCP) on individual packets. In this section we explain some of the proposed adaptation of these
approaches to Ad Hoc networks.
2.3.3.1 Integrated Services on Ad Hoc Networks
a) Dynamic Resource Reservation Protocol (dRSVP)
Dynamic Resource Reservation Protocol [MST01] is an approach to provide QoS in Ad Hoc networks by
mean of modifications to RSVP. With this solution, resource reservations are requested defining ranges
of values for reservation parameters, rather than a single value for each of the parameters used to describe
the required QoS service. This approach show that treating a reservation as a request for service
“somewhere” within a specified range, it is possible to provide the necessary flexibility to deal with all
type of network dynamics, e.g., changes in network topology due node movement or changeable link
layer behaviour and the variable demand of resources by applications. Hence, as available resources
change, the network can readjust allocations within the reservation range.
Several extensions were made to RSVP to develop the concept of dRSVP: an additional flow
specification in RESV messages and an extra traffic specification in PATH messages are used to describe
ranges of traffic flows during the reservation process; a measurement specification from the receiver and
the sender, added to RESV message and ResvNotification respectively, to be used by intermediate nodes
in the data path to learn about downstream and upstream resource bottlenecks and define the appropriate
amount of local resources to be allocated during the reservation process; also, the last feature required
new admission control processing and bandwidth allocation.
In order to support the inclusion of range-based reservation an extended API was implemented allowing
to QoS aware application to be capable of adapting at run time to varying network.
b) In-band signalling system for QoS Support in Ad Hoc Network (INSIGNIA)
INSIGNIA is an in-band signalling system that supports adaptive reservation-based services in mobile Ad
Hoc networks [INSIG]. INSIGNIA is a general-purpose approach to delivering QoS in mobile Ad Hoc,
i.e., it interoperates transparently with several routing Ad Hoc protocol employed in the MANET.
Reservation based on this signalling system, responds dynamically to topology and resource changes in
an appropriate manner allowing fast establishing, restoring, adapting, and removing of end-to-end
reservations. The key components of INSIGNIA are its in-band signalling system that offers a faster
Page 59
MIND
1.2
reservation process than classic reservation mechanism (e.g., RSVP), and reservation and adaptation
algorithms specifically designed to deliver adaptive service. The resource management is soft-state
avoiding the overhead with the use of extra signalling for the release of resources.
The signalling system supports a number of protocol commands carried in-band with the data and
encoded using the IP option field of IPv4 datagrams. This in-band information is snooped as data packets
traverse intermediate Ad Hoc nodes and used to maintain soft-state reservations in support of flows. As
depicted in Figure 2-15, the INSIGNIA IP option supports the establishment of adaptive reservationbased services and includes service mode, payload type, bandwidth indicator, and bandwidth request
fields. A packet carrying a reservation request has its service mode set to reservation mode (RES) and its
payload set to base QoS (BQ) or enhanced QoS (EQ). Each IP packet is self-contained in that it carries all
the necessary state information to establish and maintain reservations. This information includes an
explicit bandwidth request.
Bottleneck Node
a)
MIN
MAX
d
MIN
MAX
s
QoS report message
b)
New Route
INSIGNIA IP option field
RES/BE
BQ/EQ
MAX/MIN
Service Payload Bandwidth
Mode
type
indicator
Service Mode
RES: Reservation
BE: Best effort
MAX
MIN
Bandwidth
Request
Bandwidth Indicator
MAX: route support EQ
MIN: route doesn’t support EQ
Payload Type
BQ: Base QoS
EQ: Enhanced QoS
Figure 2-15 a) Fast Restoration of Reservations with INSIGNIA, b) INSIGNIA IP Option Field
When a reservation packet is received at a destination, the status of the reservation phase is determined by
checking the service mode bit in the IP option field. It could be set to RES for reservation or BE for best
effort or no reservation. The INSIGNIA IP option also includes a bandwidth indicator bit that can be set
to MAX or MIN representing maximal reservation or minimal reservation service mode. More
information about the interpretation of the INSIGNIA option field and the command protocols is
available at [LAZC99]. A source node continuously sends packets with the reservation request bit set
until the destination node completes the reservation set-up phase by informing the source node of the
status of the reservation establishment using a QoS reporting mechanism.
INSIGNIA also performs fast restoration, when the availability of resources or data-path changes, Figure
2-15. Consequently, reservation-based flows are often re-routed within the lifetime of ongoing sessions.
The goal of restoration is to re-establish reservations as quickly as possible. Re-routing active flows
involves the Ad Hoc routing protocol, admission control, and resource reservation for nodes along the
“new path.” Fast restoration mechanisms also call for the removal of old reservation state at nodes along
the “old path.”
Insignia supports end-to-end adaptation monitoring network dynamics and adapting flows in response to
observe changes based on a user-supplied adaptation policy. Flow reception quality is monitored at the
destination node and reported to the sender; based on adaptation policy, actions are taken to adapt flows
Page 60
MIND
1.2
under certain observed conditions. For example, one adaptation policy could be to scale down adaptive
flows to their base QoS requirements in response to degrade conditions or to always scale up adaptive
flows whenever resources become available. The action taken is conditional on that is programmed into
the adaptation policy by the application; the application is free to program its own adaptation policy,
which is executed by INSIGNIA through interaction of the destination and source nodes.
Despite the original features introduced in INSIGNIA and the tested improvements on performance of
UDP and TCP applications, the storage and processing overhead for each intermediate Ad Hoc node is an
undesirable feature in this kind of system, since the nodes have to build and maintain state information
which increases with the number of flows.
2.3.3.2 Differentiated Services in Ad Hoc networks
Aggregate mechanism for traffic handle, like provided by DiffServ QoS architecture seems to be
lightweight model for the intermediate nodes of Ad Hoc networks since individual state flows are
aggregated into set of flows. This could be a potential model for MANETs, but the definition of
traditional component of a DiffServ domain, like the ingress, the egress and core routers is no clear
because of the variable topology of the network. More over, the concept of the Service Level Agreement
that defines the contract between the costumer and the clients is not applicable in Ad Hoc networks,
because there is no a service provider. In that case, the problem of providing QoS guarantees becomes
very complex. Every one in the network would try to use the resources, as much is possible.
Under this condition, the classification of traffic into priorities to perform the aggregation of flows makes
sense if priorities can be assigned at the application level that cannot be modified by the user and, also it
could rely on the situations where the network is used. For example, a network used for rescue operations
can have voice traffic with different priorities depending upon the urgency of the message.
Despite of these limitations, DiffServ seems to fit well to the Ad Hoc networks features that make to have
sense the implementation of this architecture over MANETs: the suitability of lightweight protocol in the
core of the MANET, the easy implementation of some per hop behaviours like Assured Services that
provides more qualitative than quantitative guarantees and the functionalities that develop the Ad Hoc
node as router and host. Next, some models based on service differentiation are commented.
a) Flexible Quality of Service Model for MANET (FQMM)
Taking these aspects into account, a QoS model was developed for small to medium networks that defines
three kinds of nodes as DiffServ. In this architecture called Flexible Quality of Service Model for
MANET (FQMM), the “ingress node” is the host that send data, classifying, marking and policing
packets; the “interior nodes” are the nodes that forward the marked packets via a certain Per Hop
Behaviour, and the “egress node” is a destination node [XSLC00]. Regardless of its DiffServ orientation,
this model proposes a hybrid per-class and per-flow provisioning scheme. Traffic of highest priority (the
small fraction of the traffic) is given per-flow provisioning while other priority classes are given per-class
provisioning. A traffic conditioner is put at the ingress node to policy the originated traffic according to a
traffic profile that keep consistent differentiation between sessions which could be per-flow or peraggregate of flows and adapts to the dynamic behaviour of the network.
Assured Services is the Per Hop Behaviour implemented in the core of the network to provide service
differentiation since throughput is the QoS parameter of interest. The flows used to test the model are
TCP sessions with a given target rate and the traffic profile is configured according to this parameter. The
traffic conditioner at the ingress node marks the packets as IN if the outgoing data of a particular flow
conforms to the traffic profile, otherwise as OUT with a probability. The interior nodes adopted FIFO
scheduling and RED with In/Out bit buffer management scheme. With the combination of the traffic
conditioner at the edge of the network and RIO queue discipline at the core, the service differentiated is
provided.
b) Stateless Wireless Ad Hoc Networks (SWAN)
Taking a different approach from the precedent models, SWAN is a stateless network model that argues
the use of distributed control algorithms to deliver service differentiation in MANETs in a simple,
scalable and robust manner [ACVS02]. This proposed architecture handle both real time UDP traffic, and
best effort UDP and TCP traffic without the need for the management of per-flow state information in the
Page 61
MIND
1.2
network. Also, SWAN supports per-hop and end-to-end control algorithms that primarily rely on the
efficient operation of TCP/IP protocols. In particular, SWAN uses local rate control for best-effort traffic,
and sender-based admission control for real-time UDP traffic. Explicit Congestion Notification (ECN) is
used to dynamically regulate admitted real-time sessions during network changes caused by mobility or
traffic overload conditions.
The rate regulation of best effort traffic in SWAN is developed by a classifier and a shaper that operate
between the IP and best effort MAC layers. The classifier is capable of differentiating real-time and best
effort packets, forcing the shaper to process best effort packets but not real-time packets. The purpose of
the shaper is to delay best effort packets in conformance with the rate calculated by the rate controller.
Each node in the mobile Ad Hoc network independently regulates best effort traffic. The rate controller
determines the departure rate of the shaper using a rate control algorithm based on feedback from the
MAC. This feedback measure represents the packet delay measured by the MAC layer. Each node
increases its rate control gradually every period of T seconds (additive increase with increment rate of c
Kbps) until the packet delays become excessive. The rate controller detects excessive delays when the
packets have greater delays than a threshold delay. As soon as the rate controller detects excessive delays,
it backs off the rate (multiplicative decrease by r percent). The threshold delay d is based on the real-time
delay requirements of applications in wireless network, and the period T, in which the shaping rate is
adjusted, could be small enough to be responsive to the dynamics of mobile Ad Hoc networks. In this
way, bandwidth and delay bound requirements of real-time traffic can be adequately adjusted, while best
effort traffic can efficiently utilise any remaining bandwidth. However, to fully support real-time traffic,
local rate control of best effort traffic is insufficient. There is also a need to support admission control.
The admission control in SWAN is based on the sender; to admit new session, the source node sends a
probing request towards the destination node to measure the end to end bandwidth availability. The
probing request packet is a UDP control packet that each intermediate node intercepts and updates a field
if the value registered is more than local bandwidth. The local bandwidth is determinate listening to
packets sent within their radio transmission range. Finally, the destination node sends a probing response
packet back to the source node with the bottleneck field copied from the probing request message
received by the destination node. Once the source node receives the probing response packet, it can
execute the simple source-based admission control test by comparing the end-to-end bandwidth
availability and the bandwidth requirement for the new real-time session.
2.3.3.3 End-to-End Adaptive Applications
In absence of QoS mechanism at lower layers of the TCP/IP architecture, multimedia applications can
take advantage of feedback information provided by their peers to dynamically adapt to the reported
network conditions proper of Ad Hoc networks. In this extent, sender multimedia application could use
QoS feedback information from the receivers to select the most appropriate A/V coding scheme. The
selection of alternative coding schemes is based on the principle of media scaling by which the bit-rate
(the quality) of an audio or a video stream is varied to be consistent with the available bandwidth.
Applications, as presented in [KAZ99], constantly monitors the QoS parameters of received flows (e.g.,
packet lost, delay jitter, etc) deriving this information from the sequence number of packets and related
timestamp information reported by the Real Time Transport Protocol. The QoS parameters are frequently
reported to the sender application to be aware of the conditions at the receiver end and to take a decision
with respect to the current delivery of the flows, i.e., to leave unchangeable the actual transmission
parameters or to change them, for example, reducing the sampling rate value of the audio source or
reducing the packet size.
Also, applications in QoS models as dRSVP and INSIGNIA (Section 2.3.3.1) are provided with APIs that
facilitate the reception of QoS information from the network and peer applications to adapt its behaviour
to the current status of the network following different the application’s adaptation policy. For example,
in INSIGNIA approach, after receiving a QoS report from the destination, the source could decide to
scale down and starts transmitting the Enhanced QoS packets in best effort mode (i.e., the service mode
bit is set to BE) or will scale back by dropping the EQ packets because it is not able to tolerate best effort
delivery.
Page 62
MIND
1.2
2.3.4 Terminal Architecture Approach Design for Ad Hoc Node
In this section we describe the current tendencies in architectural design of Ad Hoc node, which take care
of the challenges presented in Ad Hoc networks.
2.3.4.1 MANET Terminal Architecture and the IETF
Besides the effort to define suitable QoS models in Ad Hoc networks, some proposals for end terminal
architectures for Ad Hoc networks were proposed recently to overcome the challenges described above.
In the context of IETF MANET WG (the working group related with the developing and evolving of
routing protocols for Ad Hoc network) a different design philosophy for Ad Hoc node architecture was
discussed. It was argue that the differences in resource constrains of Ad Hoc network and the Internet
lead the necessity of reducing the horizontal communication requirements of the protocols and the
increasing some of the vertical communication requirements within the protocol stack.
Designing the protocol stack in this fashion allow a logical coupling of the layers, i.e., the increased
vertical communication permits upper-layer protocols to bind more closely with lower-layer protocols, in
this manner, some of the inefficiencies of the traditional horizontal communication could be removed. In
this extent, some proposals where done developing special interfaces between link and IP layers showing
possible improvement of the performance during the data transfer. Also, a layer 3 protocol named Internet
MANET Encapsulation Protocol (IMEP) was implemented following this philosophy [JIC99]. IMEP
augments IP functionality of the host to support IP forwarding through a multi technology “routing
fabric”.
Application Layer
Application Layer
Application Layer
Application Layer
Physical Layer
Physical Layer
Physical Layer
Physical Layer
a)
b)
Figure 2-16 a) Fixed Internet Protocol Design b) MANET Protocol Design Approach
The difference between the Internet design and the MANET design philosophies is depicted in Figure
2-16. The strict protocol-layer separation that guide the development in Internet minimise the shared
evolution of the adjacent layers and simplifying the protocol design, despite it this increase the amount of
information interchanged among corresponding layers. The design approach proposed in MANET runs
counter to that traditional design and is unwelcome when interoperability with the existing network is
desired. Due this constrain, this last approach is commonly adopted in lower layers (e.g., IP and link
layers) which extent of interoperability is limited.
2.3.4.2 Adaptive Cross-layer Design
Following the ideas introduced in the MANET working group, additional arguments were derived from
the analysis of different QoS support approach in Ad Hoc networks that sustain the philosophy of a crosslayer design [GW02]. However the Internet paradigm simplified the network design and led to robust
scalable protocols, the inflexibility of these paradigm results in suboptimal performance for Ad Hoc
wireless networks. In order to affront the set of issues described in Section 2.3.2.2, an adaptive crosslayer protocol design that supports adaptation and optimisation across multiple layers of the protocol
stack would be necessary.
In an adaptive cross-layer protocol stack, for example, the link layer can adapt rate, power and coding to
meet the requirements of the application given the current channel and network conditions. The MAC
layer can adapt based on underlying link interferences conditions, bit priorities and delay constrains.
Adaptive routing protocols can be developed based on current link, network and traffic conditions. Lastly,
the application layer can utilise a notion of Soft QoS that adapts to the underlying network conditions to
Page 63
MIND
1.2
deliver the highest possible application quality. Hence, is important that network protocols at layer could
be within an integrated and hierarchical framework to take advantage of the interrelation between them.
Adaptation of each layer of the protocol stack should compensate for variations at that layer based on the
time scale of these variations, i.e., variations experienced at the link layer are in various orders faster than
changes experienced at application layer. This difference between the time scales of network variations
suggests that each layer should try to compensate at that layer first. If it results unsuccessfully, then
information should be exchanged with other layers. Adaptation at this next layer may then at least
mitigate the problem that could not be resolved through local adaptation. Although the benefit is could be
reached with an adaptive cross-layer design, this integrated approach of propose represent a bigger
challenge of protocol design.
The QoS architectures presented in precedent sections could be good examples for the validation of the
adaptive cross-layer design philosophy. For example, end-to-end adaptive multimedia applications could
be benefit from network layer if QoS reporting functions were incorporated to this layer or it could
provide a suitable path between the pairs. Similar advantage could be obtained if the link layer could
provide better than best effort service and QoS reporting functions for the rate controller in SWAN
model. INSIGNIA, also, uses a MAC protocol with service differentiation support to send packets related
to QoS reports, reservation and routing control with a higher priority than packets that tolerate a best
effort service.
We can conclude this section arguing that QoS support solutions and its end terminal architecture
examined in Section 2.3.3 trend to some degree of adaptive cross layer design. Providing QoS support in
Ad Hoc networks is accomplished attempting to resolve the following problems [MST01]:
•
The QoS routing problem: how to find a route through the network that is capable of supporting
a requested level of QoS.
•
The QoS maintenance problem: how to ensure that new routes that can support existing QoS
commitments are available or can by quickly found when network topology changes.
•
The variable resource problem: how to respond to changes in available resources, either as the
result of changes in network topology or link variations within a given route.
An integral solution could attempt to resolve all these problems, but as we show there are QoS
architectures that do not depend on QoS routing to provide a better service, e.g., FQMM, SWAN and the
implementation of the principle of media scaling. However, these proposals could obtain benefits if QoS
routing is present. Also, solutions to the variable resource problem obviate the need to solve the QoS
maintenance problem, but these require different methods of adaptation by means of feedback from pair
entities (as the case of INSIGNIA) or lower layers (as in SWAN), admission control mechanisms and
policies for the dynamic regulation of traffic injected to the network.
2.3.5 BRENTA Features in the Context of Ad Hoc Networks
After a review of the QoS aspects in Ad Hoc networks and the examination of the current proposed
solutions, an evaluation of BRENTA design is made in the context of Ad Hoc networks in the present
section.
Key features of BRENTA design are introduced in Section 1.3.2. The main characteristics of its design
are: modularity, openness and flexibility. If a decision is taken to adopt any of the presented solutions,
there could be some concerns in introducing still novel and not adopted proposals to deal with QoS issues
in Ad Hoc networks; it could affect the openness feature of BRENTA. It is desirable to maintain the
layering paradigm adopted in BRAIN, instead the current trends in using a whole adaptive cross-layer
design in ad hoc networks although we are faced with a number of new problems. In BRENTA, divisions
were made between the different layers of the protocol stack to allow the required independence between
them adding suitable inter-layer interfaces that provide generic information about capabilities being
exchanged across the interfaces using a generic set of parameters.
To this extent, the WP1 is proposing the E2ENP which peer BRENTA applications of type C and QoS
brokers can use for coordinate their attempts to achieve the desired QoS level despite variable conditions
in terminal and networks. In the other hand, it is possible to take advantage of the flexibility and
modularity of BRENTA because it makes possible to use new downloadable codecs proper for variable
transmission media and additional complex middleware could be introduced also.
Page 64
MIND
1.2
Some goals were taken into account when designing BRENTA [BD22] that benefit its use in Ad Hoc
networks as the inclusion of mechanisms for (among others):
•
Local resource management: LMI is provided to the applications to allow the interaction with
the operating system to discover available network and local resources and provides control
functions that allow fine grain control over the behaviour of the terminal. The LMI provides
access to a stack management that contains management objects that represent single
functionalities of the stack and their state
•
Network resource management: the ESI (Section 2.2.4.1) is provided to manage the network
resources that is necessary to provide service guarantees to applications, and
•
QoS orchestration: a QoS broker is in charge to manage and co-ordinate local, network and
remote resources in order to provide predictable End-to-End QoS.
2.3.5.1 Considering Modifications in BRENTA
The mentioned goals identified for provide QoS support to mobile terminals in wireless fixed networks in
BRAIN should be extended to provide QoS support in the extent of mobile Ad Hoc networks. This
implies the possible extension of functionalities and modules that compose the current BRENTA
architecture (as depicted in Figure 2-17 inside dotted boxes).
Application
Type B or C
Application
Type D
Application
Type A
Service User
QoS Broker
GUI
BRAIN
QoS Broker
Local
Management
Interface
Enhanced
Service
Layer
Primitive Mapper
Entity
QoS Mapper Entity
BRAIN Service Interface
TCP
IP Layer
Management
Objects
Link Layer
Management
Objects
Stack Manager at
UDP
Further transport or QoS
Service Provider
IP(v4/v6) with Mobility and Ad Hoc routing support
Service Provider
ES Layer
Management
Objects
Enhanced
Socket Interface
Subnetwork technologies ( e.g., Hiperlan/2, UMTS, Bluetooth )
Data/Networking Plane
QoS and Resource
Management Plane
Figure 2-17 Components Subject to Extension to Adapt BRENTA to Ad Hoc network for QoS
Support
When a mobile terminal is participating in an Ad Hoc network, it requires managing its local resources to
properly interact in the network, therefore additional management objects should be provided in the LMF
to cover new Ad Hoc aspects, also new functions related to the LMI should be added to gain access to
them, e.g. to perform local admission control in ad hoc fringe that benefits the transmission of locally
generated flows instead of others traffic [MD22]. The LMI and the LMF are part of the QoS and
Resource Management plane.
Page 65
MIND
1.2
At the Data/Networking plane, a routing protocol proper for traffic relaying in Ad Hoc network should be
included, also. In [MD21] is available a detailed analysis and comparison of different Ad Hoc routing
protocols that could be considered to develop this function. A QoS SP suitable to Ad Hoc network
domains should be included, which extend the BRAIN service interface. It will affect the ESL in the
sense that the Primitive Mapper and the QoS Mapper entities (Section 2.2.4.1) will be in charge to map
the ESI primitives and relative parameters to the corresponding primitives and parameters that controls
the QoS SP for the Ad Hoc networks.
Also, new primitives could be added or modification could be made to the current primitive in ESI to
allow to adaptive applications to rapidly adapt to the changes in network resources of the Ad Hoc network
domain (as in INSIGNIA and dRSVP approaches).
Page 66
MIND
1.2
3. Domain Model
The purpose of the Domain Model (DM) is to describe the MIND access network architecture in a way
that allows further developments and refinements of that architecture. As such the DM gives an
abstraction of the MIND architecture. Mainly two issues are relevant and should be expressed by means
of the DM. It is considered necessary:
•
To find a way to describe the various network configurations of routers as they can be formed
without listing example configurations;
•
To identify the responsibilities of which operators of nodes can/should care, which, as a result of
any technical realisation, encompasses restrictions on the usable devices, functionalities, etc.;
This includes responsibilities that these operators have to obey offline (e.g. subscriptions,
approval procedures, etc.).
On the other hand, the DM should describe sufficiently precisely the resulting MIND access network
architecture, so that suggestions for security and accounting mechanisms or the E2ENP can be expressed.
These suggestions are concerned about:
•
The trusts that needs to be achieved in flexible network configurations amongst administrative
domains are key; which
•
Subsequently raises requirements on the technical realisation, but also on the responsibilities that
may also be obeyed but cannot (yet) be expressed in specific functionality (e.g. certification of
routers according to specific standards);
Based on the nomadic worker scenario the DM is described. This scenario is one out of three that have
been produced in MIND earlier [MIT02], [TOM02]. The other two are referred to as the leisure time and
the medical care scenarios. The domain model described here has not been proven to cover the leisure
time and the medical care scenarios. However, the DM has been discussed in the MIND Project and the
developers of the network architecture agreed that it is a suitable abstraction.
In this section, first the usage scenario is described based on which the DM has been
developed (Section 3.1). Before the DM is presented, Section 3.2 presents the main properties to which
the constituent of domain models in general is related. The Section 3.3 presents subsequently the DM in
two forms: one is the basic DM, which encompasses (mobile) access networks; the other includes Ad Hoc
networks. Later in this document (Chapter 4) the domain model is again extended to cover further aspects
relevant to the E2ENP.
3.1 Usage Scenarios
There are three usage scenarios that originally come from Information Society Technologies (IST)
BRAIN project [BRAIN1.2], then are extended and deployed in MIND. The scenarios demonstrate how
the new technology, especially the most innovative elements of MIND proposal, could be integrated in
everyday life and integrate new attractive services. Mobility, inclusion of mobile Ad Hoc sub-networks in
the general MIND network and many kinds of value added services (e.g. security, billing, location-based
services, QoS, etc.), most of these new features are covered by the scenarios. On the other side, usage
scenarios describe real environments, in which the future mobile communication systems will be operated
by different service providers co-operatively, and the rich set of information and communication services
can be accessed by users. Therefore, the scenarios are a good start to identify MIND network domain
models, which must be studied from both business model and network technology points of view.
1.
Leisure time: A scenario which demonstrates that users may wish to be connected to
HIPERLAN/2 for low cost and high bandwidth in the home or shopping mall but will also want
to be connected to cellular technologies (e.g. UMTS or GPRS – General Packet Radio Service)
from the same terminal and access the same services. In particular, the users in this scenario
require support for vertical handover between the two technologies.
2.
Nomadic worker: In this scenario we have looked at a future corporate worker, demonstrating
that HIPERLAN/2 may be used as part of office Intranets providing integration with fixed
Intranets. The scenario also produces the idea of profiles – when on company business, a worker
Page 67
MIND
1.2
requires different preferences, charging strategies etc., than when on personal business, but will
want to use only one terminal and access the same basic services such as E-mail.
3.
Medical care: This scenario demonstrates a specialised application of the BRAIN system. The
main point arising from this scenario is that users can have very different priorities for the supply
of the same quality service – in this case the patient being monitored requires absolute priority.
Because of the complexity of each scenario, only a piece of scene in the Nomadic worker scenario has
been used as a sample for further study of domain model in this chapter. The selected short scenario is
described in the following. After that, the business roles of all the participants involved are identified.
3.1.1 Train Scenario
The selected scenario is called “train scenario”. A compact description of this scenario is given below
with no important detail ignored. Please refer to [MIND1.1] for a complete description.
1.
Stephanie is on the train from Frankfurt to Munich for a business trip, she will organise an intrain meeting with colleagues from other companies;
2.
Her PWA (Personal Wireless Assistant) informs her that the train service provider is running a
wireless communication network (e.g. HIPERLAN/2), which is also connected to the Internet;
3.
Stephanie logs into the train network by entering her secure pre-paid account number and sets up
a video conference to the project leader to sort out some minor details;
4.
Her employer is charged by her service provider for the usage of all the services she is using;
5.
The service provider is obliged to pay specified percentages of the charged fees to the holder of
the train network (Deutsche Bahn AG, extended network provider), network provider (TMobile), application service provider (Oracle) and content provider (SAP), respectively;
6.
The network provider and the extended network provider have a contract of the network
connectivity between them;
7.
When the other members gradually join Stephanie in the train, they attach their mobile terminals
to hers to setup a secure wireless Ad Hoc network using the early received temporary session
key which she sent;
8.
Some colleagues connect their terminals to her terminal in order to access the train network and
the Internet because they do only feature short range radio technology (e.g. Bluetooth). In this
case, Stephanie is charged for the usage of the Internet access she is offering for her partners;
9.
By the time they arrive at Munich central station they suspend the session.
According to value chain of MIND business model, the end user, who connects to the access network
through other user’s mobile terminal which features routing functionality, should pay both the basic
charges to the access network provider and an additional fee to the user who relays his packets. This has
been observed, though it is not covered by the train scenario since Stephanie provides the routing service
to her colleagues for free.
3.1.2 Identification of Roles in the Train Scenario
Roles of each participant involved in the scenario are identified in this section. It is an important base to
describe the domain model and further to analyse security threats. Objective is to remove ambiguities on
who participates in the scenario, what responsibilities do they have and which kind of assets should be
considered and protected, etc.
Roles in MIND scenarios generally refer to the characteristic and expected behaviour of individuals, with
special consideration of their responsibilities, rights and interests in our investigations. A role can be
regarded as an abstracted entity that always behaves in a specific way. Table 3-1 lists all the roles that
appear in MIND scenarios.
Page 68
MIND
1.2
Table 3-1 Roles in MIND Scenarios
Abbr.
Role
Description of role
U
User
A user is who really uses the various services.
S5
Subscriber
S has a contract with and pays the bill to his Service Provider.
SP
Service Provider
SP sells prepaid account to or has contract with S and facilitates the
end users to use a set of information and communication services,
which he makes profit of.
ANP
Auxiliary
Network Provider
An individual, whose device acts as a mobile router and provides
access service to the wireless networks of Extended Network Provider
for end users in the scenario, is an ANP.
ENP
Extended
Network Provider
ENP maintains his hot-spot wireless networks and provides access
service to U or ANP.
NP
Network Provider
NP maintains cellular networks and backbone networks and provides
network connectivity to ENP.
ASP
Application
Service Provider
ASP provides various application services, e.g. video conference.
CP
Content Provider
CP provides content service.
I6
Intruder
Intruder aggressively compromises the security goals and regulations.
Only external intruders are categorised as Intruder in this document.
Participants are persons, organisations, or corporations who are involved in the observed scenario. Each
participant can be usually be classified to at least one role; however, in some cases a participant can also
hold two or more different roles. In the scenario, Stephanie acts in two roles, as a User and as an
Auxiliary Network Provider, because she offers routing service to her colleagues who cannot access the
train wireless network directly. Each role’s corresponding participants are identified in Table 3-2.
5
In a very common case, a User and a Subscriber can be the same person.
6
Further investigation is required to differentiate various intruders with clear definitions, like eavesdropper, network
hacker, cracker, etc. On the other side, only external intruders are categorized as Intruder, because every other
participant mentioned above may become an (internal) intruder, which means he can aggressively compromise the
security goals and regulations if he likes to. This document presumes that every other role, besides Intruder, has
potentiality to violate predefined security goals by abusing its functionality. Therefore, breaching security is an
intrinsic part of each role and does not necessarily has to move to another role – Intruder.
Page 69
MIND
1.2
Table 3-2 Identified Roles of Participants in the Train Scenario
Participant
Role
Remark
Stephanie7
U and
ANP
Stephanie is charged for her colleagues and her own usage of the
access service provided by the train network operator.
other colleagues
U
Stephanie’
employers
S
T-Mobile
SP
Deutsche Bahn AG
ENP
It operates the in-train wireless communication network.
T-Mobile
NP
It operates the cellular network and the backbone network.
Oracle
ASP
ASP provides a video conference application service in the scenario.
SAP
CP
CP provides electronic format contents, e.g. technical documents that
are useful for the meeting.
eavesdropper,
hacker, etc.
I
In the scenario Stephanie’s employer pays the bill for her or
reimburses what she has paid for the usage of the services.
3.2 Principles of the Domain Model
The basic principles and constituents of domain models are presented in this section. A more detailed
description of domain model structure has been given in [PET02] that is based on the International
Standard of the Reference Model of Open Distributed Processing ([RM-ODP1], [RM-ODP2]).
3.2.1 Administrative Domain
Domains are basically groups of objects being in the relation to a controlling object. The domain model
here is centred around the notion of administrative domains and their characteristic is the autonomy of the
controlling object that may participate in co-operations with their surrounding, i.e. network
infrastructures.
•
As to the maximum atomicity, each administrative domain is taken by a single business role. We
do not distinguish between different types of business roles within one administrative domain.
The granularity chosen is the administrative domain.
•
Usage of means to minimise dependencies for efficient administration and management effort
within each domain is subject to that domain only (autonomy).
•
The aggregation of administrative domains by a single stakeholder is not relevant at the current
point of time.
In this sense, the domain is understood in the following.
7
For the sake of a rather complete study including all kinds of roles, Stephanie is identified to be an ANP even
though her colleagues do not pay for their usage of service.
Page 70
MIND
1.2
3.2.2 Domain and Reference Point
•
A Reference Point (RP) describes the relation between two domains. It can be used to identify
the included protocol stack8 but also the non technical relation, like a trust relation.
•
Each domain identifies an autonomous part of the infrastructure – an administrative domain.
•
For each domain, the internal structure of the domain with which it interacts is completely
invisible and cannot be determined. Only the identity of the foreign domain and the supported
specific RP are known. Different instances of the same type of domain cannot be distinguished.
•
For example, an access network domain appears to a service provider network as a single unit
with a single identity, however complex its internal structure is.
3.2.3 Map of Roles to Domains
The roles, which have been identified in Section 3.1.2 mainly from a business model point of view,
should be mapped to administrative domains, which represent the entities in MIND network. This helps to
relate the individuals and organisations that appear in the scenario to their technical representations. Table
3-3 describes the map between roles and domains. Each domain will be elaborated later. Some of the
roles, as, for example, the “subscriber” have not yet been described in the domain model because we
focus the study on access network and Ad Hoc networks.
Table 3-3 Map of Roles to Domains
Roles
Domain
User
Leaf Network (LN)
Subscriber
not yet considered in the Domain Model
Service Provider
Service Provider Network (SPN)
Auxiliary Network Provider
Intermediary Access Network (IAN)
Extended Network Provider
Access Network (AN)
Network Provider
not yet considered in the Domain Model
Application Service Provider
not yet considered in the Domain Model
Content Provider
not yet considered in the Domain Model
Intruder
not yet considered in the Domain Model
3.3 Domain Model for Train Scenario
In the BRAIN project, the network scenario can be quite simple, related closely to current SecondGeneration and Third Generation (2/3G) cellular networks. It turns out that if we use appropriate
terminology in this model, it covers quite a variety of MIND features as well, with quite self-contained
generalisations. Finally, these components can be decomposed internally in several ways, without
affecting the overall domain model. This decomposition covers some more MIND generalisations and
also other aspects of public mobile/wireless access, e.g. as being considered for WLAN/3G interworking
in the European Telecommunication Standards Institute (ETSI) Broadband Radio Access Network
(BRAN) [ROH02].
8
The identified protocols of each RP in a domain model can be generally be classified as user plane protocols and
control plane protocols. The former are those used for signalling, session management etc. while the latter are used
for actual data transmission. However, different classifications of the two planes of protocols are adopted for
different purposes, e.g. E2ENP and security analysis.
Page 71
MIND
1.2
3.3.1 Basic Domain Model
Figure 3-1 depicts the basic domain model. The domains with abbreviated names and the reference
points, which define the relationships and interaction interfaces or protocols used between domains, are
elaborated in the following sections. Some participants in the scenario, like the content providers, and the
Internet itself are excluded from the domain model because they are not involved in any trust relationship
which is specific to the mobile wireless case, and any ‘standard’ relationships would involve the Service
Provider Network (SPN) and fixed-side of the Access Network (AN) anyway.
Figure 3-1 Basic Domain Model
Three elementary components of the basic domain model are:
•
Access Network (AN)
•
Service Provider Network (SPN)
•
Leaf Network (LN)
From security and accounting points of view, another domain – Authentication, Authorisation, and
Accounting Broker (AAAB), which acts as an enabler of authentication, authorisation, and accounting
functionality between AN and SPN – is introduced into the basic domain model.
3.3.1.1 AN Content
The Access Network domain consists of Access Routers (ARs), gateway routers to other networks ("the
Internet"), and AAA Local servers (AAALs), as well as a routing infrastructure to link them all together
and network management infrastructure to manage it. There is no constraint or requirement regarding the
number of access routers within an AN. However, there is at least one AR in an AN.
Everything within an AN trusts (can be made to trust) everything else as much as it needs to. This implies
that an AN domain must
•
be immune i.e. robust to interference which would change its behaviour, size and structure;
•
be configured with an identity which says securely which AN it is part of;
It also implies that a domain model describing the internal structure of AN, which is a self-contained
domain in the basic domain model, will be meaningful. The internal structure of AN should be opaque to
other domains except through the predefined reference points. A variety of security techniques could be
considered to enable the requirements which are identified by studying the domain model for AN.
However, both the domain model and the security techniques used for AN internally are out of range of
this discussion.
Different ANs know nothing about each other, hence there’s no reference point between them.
Page 72
MIND
1.2
3.3.1.2 SPN Content
The Service Provider Network domain is the location of user subscription information, which is used in
authentication, authorisation, and further processing of accounting information related to individual users.
Logically, it consists of AAA Home servers (AAAHs) and associated customer care equipment and not
much else.
3.3.1.3 LN Content
A LN is an autonomous constellation of Mobile Nodes (MNs) which are supposed to communicate
together under given circumstances related to the nature of the formation and perpetuation of the LN.
The definition/description of Leaf Network domain is based on its reference points to AN and SPN (a
black-box definition) instead of a direct description of its content. Actually many mobile equipments
(MNs), which may belong to different users (we do not distinguish between user and subscriber in this
discussion), can be included in a LN. However, the essential idea of LN is: at any time there ’is only one
MN of LN being connected to AN and only one subscription contract being used by the MN for the
connection. In the simplest case, a LN contains of a single MN and only one subscription contract is used.
Usually, a LN is associated in the long term with a single SPN – its service provider. We do not
distinguish between the LN and its user. (This way, scenarios which involved several users with different
subscriptions sharing the same equipment would imply having to extend this model. The case of several
users sharing one subscription is covered, however – the relationships between the users are handled
within the LN and are not visible externally.)
LNs as defined in MIND primarily include networks attached to people (Personal Area Network or PAN,
i.e. a network composed by all Internet appliances carried by people, like a PDA, a mobile phone, a
digital camera, a laptop, etc.). For any given LN, only a single SPN is involved at any time. (It can have
more than one subscription to even different SPNs, but only one of them is used for connections at any
time and the switch between different subscriptions happens rarely, therefore they are not considered in
MIND project.)
In the basic domain model, different LNs know nothing about each other, therefore there is no reference
point between LNs.
3.3.1.4 AAAB Content
AAA Broker (AAAB) is an intermediary agent, trusted by a group of AAA servers which belong to ANs
or SPNs. It can obtain and provide security services from/to those AAA servers. It is an enabler of AAA
functionality between AN and SPN. It does not take any responsibility for transfer of accounting,
charging, or billing between AN or SPN. For more information about the AAAB domain please refer to
Section 5.3.2.
3.3.1.5 Reference Points
3.3.1.5.1 LN to SPN
A LN has a subscription relationship with a single SPN (which actually means only one subscription
relationship is considered at any given time and the relationship does not change in the whole period of
the scenario), which is supported by dynamically configured key information to allow authentication and
authorisation to take place.
The LN pays its SPN for service as agreed in the subscription contract, based on accounting information
generated by the AN to which it is attached. When speaking about ‘services’ delivered to the LN, we
intend indeed the total opaque sum of the services delivered to each and every MNs forming the LN.
These services could be generic (i.e. broadcast) or specific to a given MN or amount of MNs. As a side
remark: It is dubious for the moment or at least unclear whether a SPN in the traditional understanding of
the term would consider the (revolutionary) service of hosting such as LN profile as a viable business or
not.
Page 73
MIND
1.2
3.3.1.5.2 LN to AN
A LN attaches to an AN by going through an authentication procedure which sets up the relationship
between the AN and the LN with help of SPN. An AN relies on the authorisation allowance of the SPN in
its decision to open for a requesting LN. AN produces accounting information of LN’s usage of access
service and then sends it to SPN.
One LN could attach to more than one AN (‘multihoming’), but these relationships are independent. On
the other hand, an AN can simultaneously support relations to zero, one or more LNs which have been
authenticated and authorised.
3.3.1.5.3 AN to SPN
AN and SPN relate to each other according to ‘obvious’ roaming relationship/contract. The working
assumption in BRAIN was that this was implemented using an IETF AAA architecture and protocols, but
actually many protocols could be used to implement the same reference points. This also implies a trust
relation should be setup between AN and SPN before AN provide access service to any LN of the SPN.
As usually included in the roaming contract between AN and SPN, accounting records flow from AN to
SPN, and money flows in the opposite direction.
An AN could simultaneously be related to several SPNs. Each such relation to an individual SPN
supports the exchange of information between one or more LN and the SPN, if the LNs have been
authorised by that SPN. A SPN can simultaneously be related to more than one AN. If a SPN is related to
any AN, then it provides its LNs with wireless access via one AN. The reference to each other can be
derived by the support of one or more AAA Broker domains.
Prerequisite for each relation between an AN and a SPN is a trust relation between both domains. This
trust relationship is established by an appropriate mutual authentication that can be verified and mutual
authorisation that determines the support being provided in each of the domain. An AN may support the
exchange of information between LNs and a SPN, but may not offer sufficient accounting information, so
that a SPN refrains from establishing the necessary trust relationship to that AN.
3.3.1.5.4 AN to AAAB and SPN to AAAB
AAAB presents SPNs to setup roaming relationships with ANs and present ANs to setup roaming
relationships with SPNs. AAAB acts as an enabler of the AAA functionalities. It helps SPN to
authenticate and authorise its LNs connected to ANs and helps ANs to send accounting information to
SPNs. There 'is a trust relationship between the AAAB and the domains it serves. This could be a rather
weak one, e.g. the presence of one AAAB in the DNS might be sufficient.
As for an AAAB domain the differences of one AN and one SPN will not be relevant, the RP to both can
be identical.9
3.3.1.5.5 SPN to SPN
SPNs may exchange accounting information, e.g. if charges are split amongst them. In this case a kind of
trust should be setup between each other. The home SPN is that SPN domain to which a LN has a
subscription. This is subject of the RP LN-to-SPN. SPNs might know about each other via AAA
brokerage or hierarchical groupings of roaming partnerships. The nature of that relationship is just to
relay AAA data between AN and home SPN.
9
When we say that two different types of reference points are identical, we are discussing mainly from
the security point of view. A brief explanation is: if the protocol stacks of network and transport layers
(IP/TCP layer) and the trust relationships of the two reference points (RPs) are identical, respectively, the
two RPs are regarded as identical. The above layers (e.g. application layer) are not considered in this
chapter.
Page 74
MIND
1.2
3.3.1.5.6 AAAB to AAAB
An AAAB can setup trust relationships with other AAABs to relay the roaming relationships. AAA
information flow between different AAABs.
3.3.1.6 Trust Model
All of the identified reference points in the basic domain model imply a trust relationship between the
related domains. The trust model coincides therefore with the basic domain model where each reference
point details the bilateral trust relationship. This trust relationship may be either direct or indirect.
3.3.2 Domain Model Including Mobile Ad Hoc Networks
In MIND project, user’s terminal, which is usually regarded as a LN connected to an AN, may support
routing functionality and provide access service to other users who cannot connect to AN directly or
would like to use this mobile Ad Hoc networks for any other reasons. The users who actually use the
access services for their own benefits will be charged through their subscriptions to their SPNs. The basic
domain model described in the former section cannot cover this case since the mobile Ad Hoc network is
not a self-contained LN. Theoretically, there can be a variety of domain models that can support the
scenario in MIND project. However, a rather feasible model is presented in this section.
Figure 3-2 Domain Model with Mobile Ad Hoc Networks
A new domain, Intermediary Access Network (IAN), formerly called Intermediary Network, is
introduced into this domain model. IAN and some other slightly changed domains are described below.
3.3.2.1 IAN content
Intermediary Access Network (IAN) domain is actually a ‘subscriber owned equipment’ providing
routing and access service to the MNs (LNs), which cannot directly access to AN for whatever reasons, or
other IANs. IAN provides routing and access services after going through the authentication and
authorisation process performed by its SPN and AN, especially it should be permitted by AN to provide
the services to others. A strong trust relationship between IAN and AN is required.
In case the routing functionality provided by an IAN is a part of a MN owned by a user, who also uses the
MN to make use of the service provided by AN (or other IANs) for her/his own benefits (acting as a LN),
the MN (including its owner) is then regarded as a combination of two domains: a LN and an IAN
domain. In other words, a MN which supports normal functionalities, usage of which should be paid by
the owner of the MN, and routing functionality, usage of which should be paid by the LNs who use this
service, are separated into two domains in this domain model: IAN and LN.
If an IAN should have a local AAA server (AAAL) is still arguable. However, in the above domain
model there is no AAAL placed on IANs.
Page 75
MIND
1.2
IAN is able to verify if the IANs and LNs that are directly connected to itself have already been
authenticated and authorised by the AN to which it is connected directly or indirectly. IAN does not
provide routing service to any IAN or LN which is not authenticated or authorised by the AN. However,
IAN may provide facilities for the LNs or IANs when they are in the authentication and authorisation
phase.
3.3.2.2 LN Content
The definition and description of LN used in the basic domain model basically hold here. One point worth
to mention is: LN is the functionality which serves its user’s request for access services provided by AN
or IANs and the costs are paid by the user through the subscription to its SPN.
3.3.2.3 AN Content
AN performs AAA functionalities for all the IANs and LNs, which are connected to it directly or
indirectly.
3.3.2.4 Reference Points
Most of the reference points which appear in the basic domain model remain the same. Only changed and
new reference points are described here.
3.3.2.4.1 LN to LN
LNs can connect to and communicate with each other with the transmission not going through the access
network. A kind of trust relationship is required to be setup before their communication, whether online
or offline (offline refers to the case that at least one of the communication partners cannot connect to its
SPN). The offline trust may not be as strong as an online trust. There ’is no charging generated directly
from this communications. One LN can connect to zero, one or many other LNs simultaneously if it ’is
technically feasible.
3.3.2.4.2 LN to IAN and IAN to IAN
IAN provides access and routing services to LNs and other IANs. The general AAA functionalities are
not involved in these reference points even though the AAA information may be transmitted through
IANs. This implies there ’is no AAAL on any IAN. One LN can connect to one or many IANs. One IAN
can connect to one or many IANs and LNs. The routing algorithm decides how the packets can be
transmitted in the Ad Hoc networks.
LNs and IANs may use the routing service provided by other IANs that are permitted by the same AN in
case that they cannot connect to AN directly. On the other hand, they (LNs and IANs) do not use the
services provided by untrusted IANs and IANs do not provide routing services to untrusted LNs or IANs.
The trust relationships amongst IANs and between LN and IAN are rather weak in comparison to those
between IAN or LN and AN.
3.3.2.4.3 IAN to AN
An IAN is entitled to 1) use the access service provided by AN, 2) provide routing and access services to
other IANs and LNs, after go through authentication and authorisation processes. Authenticating an IAN
can be related to the authentication process, which is carried out for the LN that is on the same MN of
IAN. On the other side, authenticating an IAN can be independently done, especially when no LN is
attached to this IAN. However, to clarify the latter case further work is needed.
IAN forwards the packets it received from other IANs and LNs to AN according to the routing algorithms
of mobile Ad Hoc networks. IAN is not charged for its usage of the access service provided by AN.
Actually, the LNs are going to be charged. One IAN connects to only one AN and one AN may connect
to zero, one or many IANs.
Page 76
MIND
1.2
3.3.2.4.4 LN to AN
Extended based on the ‘LN to AN’ reference point in the basic domain model, two different cases are
covered by this reference point: 1) LN is connected to AN directly, 2) LN is connected to AN by the way
of other IAN(s) since there is no direct connection between them.
The AAA processes for a LN are always performed by its SPN and AN to which it ’is connected,
especially the accounting for LN’s usage is done by AN. A trust relationship is setup between LN and AN
as mentioned in the basic domain model.
3.3.2.5 Trust Model
Similar to the basic domain model, all of the identified reference points imply a trust relationship between
the related domains. However, some trust relationships can be rather weak, for example, LN trusts IAN
because the latter has been authenticated/authorised by AN, with which LN has no direct trust
relationship. The trust relationship between LN and AN is based on another two trust relationships: 1)
between LN and SPN, 2) between AN and SPN.
Page 77
MIND
1.2
4. Interworking Service Domain/Transport Domain
The MIND Domain Model (DM) introduced in Chapter 3 describes administrative domains and the
reference points between them. The major administrative responsibilities, which may appear in a mobile
network scenario, in cases of provider owned networks and subscriber owned access networks (Ad Hoc
scenarios) are identified and the interconnections between these domains are described. One aim of the
DM is the identification of the protocols passing through the respective domains, as well as the study and
the determination of the specific AAA and security features of those protocols both in cases of existing
and novel protocol stacks.
Within this chapter, we describe the interactions between Service Domain and Transport Domain in order
to negotiate true end-to-end QoS including application plane and transport plane aspects. Enhancements
to the basic DM are introduced, considering the separation of the model into different planes respective
the application and transport issues of the QoS negotiation and delivery. We use an application level
negotiation and co-ordination protocol, denoted as End-to-End Negotiation Protocol (E2ENP) and
introduced in Section 2.1, to explain several QoS specific actions (e.g. QoS contracts validation,
reservation, QoS adaptation, etc.). Within this chapter, we introduce several general scenarios, that
describe the problems in providing end-to-end QoS management and analyse how this issue may coincide
with the security and the AAA problem. Some specific functionalities of the networks intermediaries with
respect to E2ENP are being identified and discussed. This chapter considers the utilisation of the DM for
the purpose of some generalised functional entities that are specific for the E2ENP application and the
end-to-end QoS delivery.
Compared with the general domain model (Chapter 3) this chapter takes in account only interactions of
the respective network components for establishing multimedia sessions (call-setup procedures). It is
assumed, that basic connectivity has already been established beforehand by some mechanisms, which
may be derived from Chapter 3. This procedure is necessary for providing true end-to-end QoS as the
user wants to perceive it. The simple connectivity without any reservation and local resource coordination allows only best-effort calls, if the network should be considered a bottleneck.
4.1 Application Specific Domain Model Refinements
Within Chapter 3, the basic MIND domain model was introduced. Within this section, we review the
basic DM under the view of the E2ENP. For each element in the DM, we identify potential application to
the E2ENP. The DM is depicted in Figure 4-1.
Figure 4-1 MIND Extended Domain Model
Page 78
MIND
1.2
From the E2ENP point of view, the domains of the DM are responsible for:
•
Leaf network (LN) – The LN depicts one or many end-device/-s, which may or may not be
mobile nodes and can belong to different users. The connection establishment within the scope
of mobile, multimedia communication between two or more LNs can be performed by the means
of E2ENP at application level. LN can establish a connection to the global network using either
the IAN (Ad Hoc scenario) or AN (mobile, sedentary scenario), since IAN and AN provide the
respective access points and services. The LN can utilise the IAN/AN services by following the
IAN/AN registration and AAA rules and mechanisms. These rules and mechanisms can be
established and provided by SPN, which administrates the end-user information in sense of a
service provider. Throughout this chapter, the term LN is used to depict an end-device (also endpeer).
•
Intermediary Access Network (IAN) – The IAN is “subscriber owned equipment”, which
supports its own user with application services and may provide also external users with such
services (e.g. acting as multimedia transcoding service) and with access to the global network in
Ad Hoc scenarios. From the E2ENP point of view, the IAN incorporates both LN protocol agent
functionality and proxy functionality. The IAN can be configured by the respective service
provider, which credentials it is allowed to accept, in case IAN is the connection point to the
global network. If no service provider is involved it is the responsibility of the user of the IAN
capable device to determine which credentials he/she wants to accept.
•
Access Network (AN) – The combination of network devices (e.g. routers, gateways, etc.) for
accessing the global network. In the sense of E2ENP, the ANs together with SPN would provide
physical devices where registries and proxies are executed.
•
Core Network (CN) – The network devices (e.g. routers, gateways, etc.) interconnecting different
ANs. In some cases the CN can also include cellular (UMTS) sub-networks. The CNs together
with SPN/ASPN represents the proxies on the boundaries of different provider domains in sense
of E2ENP.
•
Service Provider Network (SPN) – The SPN is the user-profile administration domain, which
defines the subscription rules and stores the user specific AAA information together with profile
information and rules for accessing different services. In sense of E2ENP the SPN is a registry,
which may be externally questioned on user specific AAA information by validation and
validation verification procedures.
•
Application Service Provider Network (ASPN) – The ASPN is responsible for the application of
the protocol and the service specific rules. The ASPN may provide protocol specific AAA
mechanisms. In sense of E2ENP this can be SIP [RFC3261] specific AAA functionality, since
one of the possible E2ENP solutions is a meta-protocol based on SIP. 10
•
Authentication, Authorisation, Accounting Broker (AAAB) – The AAAB provides third party
trust relationship establishment functionality between different AAA services. Since neither SIP,
nor E2ENP currently consider the implementation of such a brokerage domain, this functionality
should be provided over some other AAA specific protocol. This AAA services are considered
as given by describing the respective E2ENP scenarios and indicated as “AAA Functionality”.
Since E2ENP is an application level protocol, it depends on an already successfully established network
configuration and relies on the network management of the lower protocol levels to establish
connectivity. From the point of view of E2ENP, the AN, CN, and IAN have similar functionality in terms
of routing and proxying. The application level functionality in those entities depends on the SPN
functionality and rules, and on the interrelation with other AAA specific protocols and mechanisms.
4.2 Service Domain and Transport Domain
In this section, we introduce a fundamental function split between connectivity (transport) and services.
In a global view, a provider may not only provide pure connectivity but may also offer services to its
10
Currently E2ENP does not consider proxy specific E2ENP functionality. This problem is left for future studies.
This chapter only mentions some of the issues which may affect E2ENP by performing proxy functionality without
going into detail.
Page 79
MIND
1.2
customer. Therefore, we can split each domain in a transport domain, which is responsible for packet
forwarding, and a service domain, which provides higher layer services for the customer. Figure 4-2
below shows the interaction between the services and the transport within a single provider domain.
Figure 4-2 The Current Internet Model in the View of the Domain Model
The Service Domain includes all higher layer services (e.g. AAA services – registration, user profile
management, application services – SIP, E2ENP protocol support, etc.). Thus the Service Domain spans
over SPN and ASPN domains. Since the Service Domain may include services of multiple sub-providers,
the Service Domain may encompass multiple SPNs and ASPNs.
The IAN/AN/CN provide the network infrastructure indicated as Transport Domain. The functionality of
a Transport Domain can be different due to different interconnection scenarios, e.g. Ad Hoc, mobile
usage, sedentary usage, access network provisioning, network relaying, etc. The Transport Domains
which only relay connections include only CNs.
Each Transport Domain may implement its own QoS provisioning and management mechanism at
transport layer (i.e. packet forwarding across the domain), which makes the provisioning of true end-toend QoS extremely hard. Considering the example in Figure 4-2,
•
Transport Domain 1 could manage its internal resources and provide end-to-end QoS (only
across Transport Domain 1) based on IntServ architecture. Therefore, each router in
IAN/AN/CN would host a RSVP (Resource ReSerVation Protocol) [RFC2205] daemon to
reserve per application flow resources. RSVP would be passed from the ingress router in
Transport Domain to the egress router towards Transport Domain 2.
•
Transport Domain 2 could be an over-provisioned core network and provide end-to-end QoS
(only across Transport Domain 2) based on excess resource availability. Therefore, RSVP would
not be processed within this domain. Another option could be that Transport Domain 2 is based
on Multi Protocol Label Switching (MPLS) or Asynchronous Transfer Mode (ATM)
infrastructure and the RSVP messages initiated by the LN are used to map the users request for
transport resources to MPLS tunnels. An option could be to use pipes across the Transport
Domain 2 that adapt its capacity dynamically based on users requests for transport resources.
•
Transport Domain 3 could provide end-to-end QoS (only across Transport Domain 3) based on
Differentiated Service (DiffServ) architecture. Therefore, some central reservation agent in
Transport Domain 3 would inspect reservation messages and configure each routers traffic
Page 80
MIND
1.2
conditioning and marking mechanisms in IAN/AN/CN using e.g. Common Open Policy Service
Protocol (COPS).
Based on the differentiation in service domain and transport domains, two different planes are identified
that carry signalling data and user data – Application Plane and Transport Plane.
4.2.1 Application Plane
The Application Plane carries application specific signalling messages for e.g. call setup. For example, a
message exchange is necessary to negotiate a common set of codecs and capabilities between peers, to
negotiate the supportable QoS for those codecs, etc. The protocols specific for this plane are e.g. SIP
based on the model described in [OA02], or E2ENP as an extension of these mechanisms, etc. The
Application Plane corresponds to the high level application controls and can be considered as part of the
Control Plane defined in the Domain Model 3 “Domain Model”.
The authentication mechanisms at the Application Plane correspond to the mechanisms of the respective
protocols, e.g. in case of SIP this would be the SIP specific authentication as described in [RFC3261].
Since E2ENP is XML based, the authentication mechanism of E2ENP may contain XML Signatures
[XMLSIG] as identified in [GUE00] 11.
4.2.2 Transport Plane
The Transport Plane is divided into two sub-planes: the control plane (transport level QoS signalling) and
the user plane (media transport). The Transport Plane belongs partially also to the Control Plane as
defined in the Domain Model and to the User Plane (see Section 3.2.2 - footnotes). This separation is
determined by the specific protocols used at the Transport Plane.
4.2.2.1 Control Plane
The Control Plane (see Section 3.2.2 - footnotes) within the Transport Plane carries the signalling
messages necessary for reservation of network resources. For example, RSVP or signalling protocols for
MPLS tunnel establishment (Constraint-based Routed Label Distribution Protocol (CR-LDP), Resource
ReserVation Protocol - Traffic Engineering (RSVP-TE)) belong to this plane. Interworking between
Transport Plane and Application Plane for coupling call-setup and network resource reservation can be
achieved using e.g. E2ENP specific commands based on the model presented in [SIPRES07]. The Control
Plane may also carry authentication data that can be used to authorise resource reservation requests.
4.2.2.2 User Plane
The User Plane (see Section 3.2.2 - footnotes) consists of the media carrier protocols and mechanisms at
the Transport Plane, e.g. the Transmission Control Protocol / Internet Protocol (TCP/IP) suite. For
multimedia streams transported over IP based networks, in particular the RTP/RTCP is important, which
uses UDP to carry compressed realtime data. The E2ENP allows to negotiate how these mechanisms
should be configured within the end-system.
4.2.3 Interactions between Service Domain and Transport Domain
In the current internet model, the Service Domain with respect to the QoS application signalling is either
absent or can be based on the SIP infrastructure, i.e. QoS signalling is either available only at the
Transport Domain (transport QoS) or with the means of SIP can also be carried out in the Service Domain
(application QoS) ahead of establishing QoS specific calls at the Transport Domain. The applications can
negotiate application level QoS and configurations (like codecs and media stream quality) via SIP, using
the model proposed in [OA02]. In those cases where SIP is used, co-ordination of call signalling and
transport resource reservation is done at the LN nodes based on the model proposed in [SIPRES07].
LN-to-LN QoS signalling for transport resources is done on the Transport Domain using RSVP. The
packet flow follows the same path from Transport Domain to Transport Domain as the QoS signalling.
When each Transport Domain implements its own QoS provisioning mechanisms and its own resource
11
This E2ENP feature is currently left for future studies.
Page 81
MIND
1.2
allocation policy, a consistent end-to-end QoS treatment is not possible. Also, there is currently no
mechanism to select specific alternative Transport Domains on the basis of the QoS that the user at the
LN requested. Finally, as there is no interaction between Service Domain and Transport Domain with
respect to QoS signalling (in essence, there is no Service Domain), so a provider is not able to control the
LNs QoS requests. Thus the provider has problems to control the QoS levels offered to the customers
within this domain. The only possibility to control and guarantee the QoS levels of the already running
connections in this case is simply to reject the new incoming resource reservation requests. Clearly, a
business model for managing the internal available resources of the provider is needed. It would allow the
provider to control the QoS offered to the customers. This model would help to provide consistent end-toend QoS and would enable the easier “charging of the customers” management for the offered services.
For example, a provider would only like to accept resource reservation requests, if these have been
properly authorised beforehand. Thus the provider can assume, that the customer is not oversubscribing
resources in contradiction to the user contract policy rules with this provider. The provider can therefore
manage its internal resources by monitoring the customers resource requests and verifying if the customer
is compliant with the contract. Since only properly authorised requests are admitted to resource
reservation processing, the provider always has an overview on the available resources.
In Figure 4-3, the provider may want to establish rules for using his/her Transport Domains, though the
Transport Domains may actually belong to different providers and could be leased, e.g. AOL using the
infrastructure of the Deutsche Telekom, France Télécom, SPRINT, etc.
Figure 4-3 Responsibilities within a Single Provider Domain
In order to achieve controlled QoS reservations, there has to be interworking between the Service Domain
and the Transport Domains. A Service Domain would now be able to actively participate in call setup
procedures and authorise requests for transport resources directed towards the Transport Domains. The
details depend on usage scenarios that are described throughout the rest of this chapter. The Service
Domain would need mutual authentication of the domains SPN and ASPN, by using some AAA
Functionality, in order to be able to enforce authentication between different applications. Additionally,
the Service Domain can use the AAA Functionality to enforce the application AAA rules also on the
network infrastructure considering the infrastructure specific rules (IAN/AN/CN). For example, the
Service Domain would authorise requests for resources, which are carried either implicit (through the
specification of codecs and application layer QoS parameters) or explicit (as an explicit request for
specific resource reservations) in the call setup messages using the AAA Functionality.
Page 82
MIND
1.2
There are three possibilities, how such an authorisation for resources is established:
1.
The Service Domain authorises resources using the AAA Functionality during call setup. Once
the call is established at application plane and the LN requests resource reservation, the
Transport Domain would query the AAA Functionality, if the resource request has been granted.
This requires interaction between Service Domain and the AAA Functionality and between
Transport Domain and the AAA Functionality.
2.
The Service Domain authorises resources using the AAA Functionality during call setup and
instructs, during call setup, the Transport Domain to grant the resources. Once the call is
established at application plane and the LN requests resource reservation, the Transport Domain
knows already, if the resource request can be granted. This requires interaction between Service
Domain and the AAA Functionality and between Service Domain and Transport Domain.
3.
The Service Domain authorises resources using the AAA Functionality during call setup and
derives an authorisation token. Once the call is established at application plane and the LN
request resource reservation, the LN has to include the token in the resource reservation requests.
The Transport Domain then knows based on the token, if the resource request can be granted.
This requires interaction between Service Domain and the AAA Functionality and a token
passing mechanism between LN and Transport Domain.
The details of the procedures can be found in the scenario sections below. In addition to resource
reservation authorisations, there is a need to activate resource reservations that have been established
based on authorisation information (as described above). This is particularly important, if billing
mechanisms have to be integrated. This is necessary, as only after a completed call-setup (indicated in the
case of SIP by receiving a 200 OK for an initial call setup INVITE) the complete information regarding
which QoS has been reserved is available at both the offerer and the answerer [OA02]. Thus, an
activation of already reserved resources during the call setup makes sense only if both parties accept the
call setup, and only then actual billing should start. The details of the procedures can be found in the
scenarios Section 4.4. Nevertheless, the Transport Domain may use the AAA Functionality to correctly
identify the credentials of the services using the respective network nodes, but the network nodes should
follow the rules of the respective Service Domain. When two different service providers are involved in
the establishment of the communication between two or several end-systems within their domains, the
responsibilities are similar to the situation above (see Figure 4-4).
In case of communication within multiple Services Domains (SPN/ASPN) the respective domains have to
either mutually identify their credentials by using the AAA Functionality or make sure that the
authorisation tokens can be understood and interpreted by all transport domains involved in the end-toend transmission.
Page 83
MIND
1.2
Figure 4-4 Responsibilities within Multiple Provider Domains
4.3 Service and Transport Validating Facilities
Within this section, we are interested in specific functionality within the providers’ service and transport
domains to assure that the users correctly validate and utilise the QoS contracts respective their QoS
profiles (the single steps of the validation process are described in Section 2.1). This functionality can be
both assigned to the Service Domain and the Transport Domain intermediaries. The mechanisms for
applying this functionality at the different domains and planes depends on the considered actions (e.g.
QoS signalling, reservation, etc.) and on the respectively used protocols.
Some examples for clarifying the idea about these AAA control intermediaries are shown considering SIP
Proxy functionality and RSVP resource reservation mechanisms. Discussions on how E2ENP could be
used also in 3GPP scenarios are provided in Section 4.4.
4.3.1 Registration Processing
Figure 4-5 and Figure 4-6 show the parties involved in peer registration and validation of QoS contracts
as identified for E2ENP in Section 2.1.
Since E2ENP can be used only after connectivity has been successfully established, the registration
functionality is considered to be a part of the Service Domain, which is responsible for registering the
LNs by an initial contact with the network (Home/Roaming-Provider system). The Service Domain
manages the user profile and the registration information of the user. If the Service Domain is a RoamingProvider it may retrieve the respective user profile information from the home system of the respective
LN by using the AAA Functionality or generate its own user QoS profile respective the registration
credentials delivered by the user by registration. The user authorises himself by the Service Domain over
some user specific authorisation information (e.g. Subscriber Identity Module (SIM) of the LN). The
Service Domain may supply the user with authentication tokens for accessing the Service and the
Transport Domains of the respective provider. In case of SIP, the Service Domain can include SIP
Registrar among other services.
The authentication tokens generated and provided by the Service Domain are used by the Service and the
Transport Domains to identify the respective user and his/hers credentials to use certain QoS levels (QoS
Page 84
MIND
1.2
profile). The tokens at the Service Domain can be associated with the usage of certain codecs and the QoS
configurations thereof. The tokens at the Transport Domain can be associated with an upper bound
limitation of the bandwidth consumption and the priority of the traffic (e.g. packet loss, jitter, etc.) of a
given user either on a per flow basis or for the given user as a whole. These tokens are typically based on
subscription information, e.g. user X is only allowed to use up to 128 kBit/s video streams, or user X is
only allowed to use codec X1, X2, X3, or user X is only allowed to use the bronze QoS class.
The LN, by having correctly registered at the Service Domain, may establish connections to the Service
and the Transport Domains for performing multimedia calls. The LN may include the authentication
tokens provided by the Service Domain during registration to validate its QoS contracts for accessing the
Service Domain (for negotiating with peer LNs) and for performing reservations at the Transport Domain.
The Validating Facilities are associated with the first proxy accessible by a LN, which has AAA control
functionality. The Validating Facilities either verify, if the LN has correctly validated its QoS contracts
according to the provider policies of the currently used network by call setup establishment, or mark the
E2ENP payloads with the validation tokens themselves. The Validating Facilities prove the validity of the
E2ENP payloads (the QoS contracts) and the associated protocol credentials (e.g. SIP and/or E2ENP
authorisation tokens at Application Plane, or RSVP authorisation tokens at Transport Plane). The
implementation of the Validating Facility at application and transport plane is different due to the
protocol specification needed for validation. The Validating Facility is a functional entity that can be
mapped to one or several physical devices.
The E2ENP payload checks are performed only at the first accessible home/roaming-home access-proxy.
All other proxies should check only the credentials of the messages (e.g. only the SIP authorisation tokens
for the E2ENP payloads). This requirement is necessary for backward compatibility, processing
simplification and compatibility with standard SIP proxies [RFC3261] (non-E2ENP proxies).
Figure 4-5 Registration and AAA Controls in a Single Service Domain
The associations indicated with numbers on Figure 4-5 have the following meaning:
1.
LN1 starts a call set up and this call is intercepted by the Service Validating Facility 1 (this could
be an enhanced SIP proxy) within the Service Domain 1.
Page 85
MIND
1.2
2.
If both LN1 and LN2 are at their home domain the Service Validating Facility 1 can check the
respective QoS usage credentials and tokens at the local registry. In case one of the LNs is in a
visiting domain, the Service Validating Facility 1 would need to prove the credentials at some
foreign system by using the AAA Functionality.
3.
After proving the credentials the Service Validating Facility 1 forwards the call.
The answer to the call undergoes the same procedure (1 to 3) in the reverse direction.
4.
After getting an answer, the LN1 starts reservation set up at the transport plane and this call is
intercepted by the Transport Validating Facility 1 (this could be an enriched bandwidth broker)
within the Transport Domain 1.
5.
If both LN1 and LN2 are at their home domain, the Transport Validating Facility 1 can check the
respective QoS usage credentials and tokens at the local registry. In case one of the LNs is in a
visiting domain, the Transport Validating Facility 1 would need to prove the credentials at some
foreign system by using the AAA Functionality.
6.
Once the network resources are validated, resources are reserved at the respective IAN/AN/CN.
7.
After proving the credentials, the Transport Validating Facility 1 forwards the reservation
message.
If two way connections should be established, LN2 needs to perform the steps from 4 to 7 in the reverse
direction, otherwise the LN2 responds with a reservation confirmation message. For this scenario it is
assumed that the LN1 initiates the call.
In cases that multiple service and transport domains are involved, the Validating Facility verifies the
payload content validity before letting it through the provider domain border (Figure 4-6). The Service
Validating Facility corresponds to SIP enhanced proxies (E2ENP proxies), which may understand and
interpret the body of the message. The Validating Facility guarantees for the correct behaviour of the LN
by inter-/intra-domain connections. This means „really“ valid E2ENP payloads and „really“ allowed
reservation processing at the application plane. For the validation purposes both Service and Transport
Validating Facilities can use either the local registries (for identifying LNs at their home system) or the
AAA Functionality for identifying foreign LNs, which are either visiting or are at home at the foreign
domain.
As we will see later, there are scenarios (see Sections 4.4.3 and 4.4.4), where reservations of network
resources are performed from the Application Plane and thus all Application Plane Validating Facility
(also called Service Validating Facility) should be able to interpret the E2ENP payloads in order to be
able to enforce them. This means that the Service Validating Facility of the domains where the LNs are
currently connected is responsible for the reservations. Additionally, all the proxies on the way of the
E2ENP message should be E2ENP and SIP stateful proxies, since the processing state should be known at
all stages of the session life, due to the reservation processing at those proxies.
However, when using non-integrated scenarios (see Sections 4.4.1 and 4.4.2), the E2ENP and SIP proxies
can be stateless.
Page 86
MIND
1.2
Figure 4-6 Registration and AAA controls in Multiple Service Domain
During the verification process, the Validating Facility uses the AAA Functionality for verification of the
tokens associated with the QoS specific payloads for QoS levels indication (E2ENP, see “Security
Considerations” in Annex A and network resource reservation (RSVP).
4.3.2 Service Validating Facility
Figure 4-7 shows a negotiation scenario at application plane as defined in Section 2.1, which is based on
the SIP Offer/Answer model [OA02]:
The scenario corresponds to the SIP specific AAA functionality [RFC3261] where the Service Validating
Facility can be a SIP enhanced proxy, which understands the E2ENP payloads.
Note, that in the standard E2ENP scenario as defined in Section 2.1, the provider has to trust the LN, as
the LN is responsible for validating the offer, i.e. the LN must make sure that the offer does not violate
the rules of the provider, which have been supplied at login during step 1. In those cases where the LNs
do not correctly validate their payloads (e.g. a user tries to setup a video conference at high quality but the
contract with the provider only allows a low quality conference), the Service Validating Facility would
challenge the LN to correctly validate and authenticate its contracts (Figure 4-8 and Figure 4-9) as
specified by [RFC3261]. If multiple Service Validating Facilities are involved they need to have trust
relationship between them established, because only the first Service Validating Facilities checks the
compliance of the Offer/Answer with the contract/-s and all others only verify the correctness of the
credentials.
Page 87
MIND
1.2
Figure 4-7 QoS Contract Validation and Negotiation at the Application Plane
Figure 4-8 Wrong Validation by the Offerer
Page 88
MIND
1.2
Figure 4-9 Wrong Validation by the Answerer
The scenarios above (Figure 4-7, Figure 4-8, and Figure 4-9) assume that Application and Transport
Planes are decoupled. In contrast, more integrated scenarios assume that transport QoS control and
resource reservations interact with the Service Domain (see Sections 4.4.3 and 4.4.4). In such cases a
common negotiation scenario as defined by 3GPP [3GPPSIP] should be used. In order to validate the
offer and the answer, the offer and the answer have then to carry either codec/quality descriptions and the
Service Validating Facility must be able to derive transport QoS parameters necessary for fulfilling the
offer/answer or the offerer/answerer must include transport QoS parameters in addition to codec/quality
descriptions.
According to the SIP proxy definition [RFC3261] and the E2ENP Intermediate Component behaviour as
defined in Section 2.1, the intermediaries are not allowed to change the contents of the message bodies.
The SIP and E2ENP definitions suppose that the provider trusts its users and it is responsibility of the
user to correctly apply QoS according to known policies of the provider. On the other hand the 3GPP SIP
[3GPP] usage model supposes that the provider does not trust the end-user for the validation process and
the provider actively participates in the validation process. The 3GPP Proxy - Call Session Control
Function (P-CSCF) and Serving - Call Session Control Function (S-CSCF) proxies change the contents of
the SIP message bodies by removing the payloads (e.g. capabilities, QoS contracts) which are notsupported by the provider for the given session based on provider policies and user contractual issues.
The 3GPP solution contains several problems with respect to a conformant application of SIP:
1.
2.
The 3GPP SIP solution works only in 3GPP conformant environment.
•
With 3GPP, the message body contents must not be end-to-end encrypted.
•
3GPP SIP would cause security problems in cases of mixed “original SIP” / “3GPP SIP“
environment, since SIP own security for message integrity is no more applicable. According
to [RFC3261], SIP User Agents can perform integrity checks also of the message body, if
the message body is within the secure part of the SIP message. Additionally, the 3GPP own
security mechanisms may cause denial of service by “original” SIP Proxies.
The 3GPP SIP solution is not really suitable for supporting fast vertical handovers (provider
and/or technology handovers). The 3GPP P-CSCF and S-CSCF proxies limit the possibility for
QoS adaptation by changing the negotiated message bodies. In fact, the CSCFs remove the
codec configurations that is currently not supported in the current providers domain. Therefore,
the principal capabilities of the offerer’s LN would never reach the answerer (as some of them
may have been removed by the CSCF). The same holds true for the capabilities/QoS wishes of
the answerer as some of these would be removed by intermediate CSCFs. Therefore, at the end
of a negotiation round, both LNs – the offerer and the answerer – only have a picture of what can
Page 89
MIND
1.2
be enforced with respect to codecs/capabilities and media qualities, given the currently attached
CSCFs. But the offerer/answerer has no knowledge about what would be possible in the best
case, where only the LNs are the limiting factor. This situation would lead to full re-negotiations
during vertical handovers when, e.g. moving from a GPRS network to a wireless LAN, which is
contradictory with the E2ENP idea for speeding up the re-negotiations. By already running
sessions, the E2ENP User Agents exchange only reference tokens to pre-negotiated data, in
order to limit the time of a QoS violation situation.
Therefore the E2ENP should be applied to 3GPP based solutions in integrated scenarios (see Sections
4.4.3 and 4.4.4) as a relaxed version of the 3GPP SIP solution. In this case, an E2ENP proxy would
validate the message body contents by only marking the QoS contracts (pre-negotiation, negotiation) as
applicable or non-applicable as defined in Section 2.1, including its authentication key in the SIP
Authentication-Info header field [RFC3261]. This authentication key would be saved at the LNs for the
needs of re-negotiation procedure by horizontal handovers, since re-negotiation procedures also need to
be authenticated as belonging to the same call sequence and the proxies (Service Validating Facility of
the respective access networks) should control that the LNs correctly switch between the QoS states by
verifying the references in the re-negotiation message. The proxies (Service Validating Facilities) in the
integrated scenarios are stateful and they can recognise which reference corresponds to which negotiated
data (the Service Validating Facilities of the access network would have to store the QoS contracts for all
negotiations). The proxies of the intermediate networks would only have to verify the authentication keys
of the messages, since as mentioned above the Service Validating Facilities guarantee for the correct
behaviour of the clients.
In case of vertical handovers, the E2ENP user agents at the LN would send complete negotiation
information. The complete description reaches only the first access proxy (Service Validating Facility) in
the chain, thus causing proxy state migration between the access network Service Validating Facilities.
The new access Service Validating Facility gets the complete information about the session from the LN,
also with the blocked states descriptions. Being intercepted by the SIP/E2ENP proxy (Service Validating
Facility) this information would be respectively marked and authenticated (proxy validation). The proxy
would then return the changed information to the initial LN using “401 Unauthorised” [RFC3261]. The
peer can then send only a reference to the data marked with the respective proxy authentication key. Since
the proxy/Service Validating Facility is stateful and the other negotiation partners already know about the
complete session description from the initial negotiation, both the proxies and the partner LNs would
know how this reference is to be interpreted. Common scenario by roaming and vertical handovers is
described for 3GPP Registration and Call setup/management procedures in foreign networks [3GPPSIP] .
According to the 3GPP scenario only the proxies (P-CSCF, S-CSCF) of the access network change the
contents of the message bodies, since the end-to-end resource management is only responsible of the
access networks. Therefore, by vertical handovers only the access network Service Validating Facilities
are affected by the state migration. By vertical handovers a re-negotiation process continues after the first
proxy authorisation procedure with sending a complete set of contract references end-to-end to be
respectively marked by the access network Service Validating Facilities of the both communication
partners as applicable or not-applicable. The access network Service Validating Facilities are already
informed about what is being negotiated ahead and can understand the contents of the references. This
marking process delivers the LNs the knowledge which previously blocked contracts are available for the
new provider connection and can respectively be used by the initial vertical handover re-negotiation and
the following re-negotiations within the new access network/-s.
When adopting the E2ENP solution for 3GPP as described above, a validation procedure at the LN side
with respect to Provider specific issues would not be needed. The Registry would then no longer supply
the LNs with tokens necessary for the validation. It is the Service Validating Facility which performs the
validation. This solution would lead to two additional messages between the Service Validating Facility
and the LN for exchanging correctly validated and authenticated data. In addition, the re-negotiation by
vertical handovers has two phases: Contract blocking/de-blocking phase and standard re-negotiation
signalling as described in Section 2.1.
4.3.3 Transport Validating Facility
The functionality of the Transport Validating Facility (Figure 4-10) corresponds to the RSVP resource
reservation processing at the network nodes. According to [RFC2205] , the receiver starts the reservation
process, which ends by the sender of the media data.
Page 90
MIND
1.2
Figure 4-10 QoS Reservation at the Transport Plane
It is only the access networks first RSVP daemon or bandwidth broker in the reservation path which
needs to check the reservation authentication token of the LN (and decide to initiate a reservation based
on the authentication information), since the reservation message is forwarded hop-by-hop with hop-byhop mutual authentication of the neighbouring routers on the reservation path. This means that every
router participating in a reservation should know the authentication tokens of its neighbours and
respectively be able to apply them (by message forwarding) and verify them (by message reception).
The authentication token is applied by the LN in the non-integrated scenarios (Sections 4.4.1 and 4.4.2)
and by the reservation/activation proxies in the integrated scenarios (Sections 4.4.3 and 4.4.4).
4.4 Interworking Scenarios
In this section we elaborate on four scenarios that present interworking of call setup and resource
reservation in the network. The scenarios are denoted as “No Coupling”, “Loose Coupling”, “Tight
Coupling” and “Integrated” according to the amount of interactions between call setup and resource
reservation. The E2ENP protocol can be applied only to some of them, since also legacy applications
(that do not use SIP) are taken in account. The four scenarios consider different interworking possibilities
between the DM (Chapter 3) domains. The general view on the discussed scenarios is summarised in
Table 4-1
.
Page 91
MIND
1.2
Table 4-1 E2ENP Scenarios Respective the MIND AAA Components
Scenario
Name
LN
Application
Plane
Signalling
party
LN
QoS Policy Export LN
Resources
3rd
Transport
synchronisation activation/ call control
possible
Plane
(Service DomainÆ
Signalling Transport Domain)
deactivation
No Coupling No
Yes
Yes
No
No
No
Loose
Coupling
Yes
Yes
Yes
Yes
No
No
Tight
Coupling
Yes
Yes
Yes
Yes
Yes
Yes
Integrated
Yes
No
No
No
Yes
Yes
The following sections describe these features in detail.
4.4.1 No Coupling
In the “No Coupling” scenario (Figure 4-11) we assume that there is no session setup signalling or that
the session setup signalling is not intercepted by application plane entities. In this case, no interactions
(neither directly nor indirectly via LN) between Service Domain and Transport Domain take place. Thus,
the Service Domain can not authorise or activate/de-activate Transport Domain resource reservations. The
only communication concerning resources occurs between LN and Transport Domain via a resource
reservation signalling protocol like RSVP. The “No Coupling” scenario is applicable to e.g. legacy
applications.
Figure 4-11 General Architecture for Applying the No Coupling Scenario
Page 92
MIND
1.2
LN 1
Transport Domain 1
Service Domain 1
Service Domain 2
Transport Domain 2
LN 2
1: register()
2: register_ACK()
3: register()
4: register_ACK()
5: Negotiate Application Level QoS
6: Negotiate Application Level QoS
7: RSVP_PATH
8: RSVP_PATH
9: RSVP_PATH
10: RSVP_RESV
12: RSVP_RESV
14: RSVP_RESV
11: reserve_resources()
13: reserve_resources()
15: call_setup_done
16: call_setup_done
17: call_setup_done
Figure 4-12 No Coupling Scenario - Call Setup and Network Reservation are not Coupled
In this scenario the Service Domain is responsible only for the registration of the LN. The QoS signalling
is used only at the Transport Plane. Figure 4-12 shows message sequences, where LNs register at the
Service Domains, negotiate directly using legacy mechanisms and reserve resources using Transport
Domains.
There is no communication between the LN and the Service Domain except for the registration. Every
communication necessary to establish resource reservations is handled via Transport Plane signalling (e.g.
using RSVP) directly between LN and Transport Domain. Nevertheless, there is the possibility that the
Service Domains registration information is available by some mean at the Transport Domain. This would
allow the Transport Domain to check, if a resource reservation request of a specific LN would be
processed or not. For example, a Transport Domain could then be able to block reservations of a customer
who is not registered. Note, that there are two options to solve this problem:
•
The Service Domain and the Transport Domain exchange information about registered LN. Once
a LN is registered at the Service Domain, the Transport Domain would process resource
reservation requests for the specific LN. Note, that this is only applied once during registration
and not for each call setup.
•
The Service Domain provides authorisation tokens for the LN to be used for resource
reservations for the associated Transport Domain. The Transport Domain would have to know
the authorisation tokens and only process reservation messages that contain the correct token.
More specifically:
o
LN gets policy token/-s from the Registry by authorising itself over its user
authorisation key e.g. Subscriber Identity Module (SIM). If by registration the system
does not generate policy tokens, these tokens can be added by the respective first access
proxy.
o
LN authenticates itself with the policy token/-s before the Transport Domain or the first
access proxy authenticates its user by first verifying the user’s identity at the local
registry.
o
The SPN/ASPN associated with the transport can verify the policy token/-s at the local
Registry servers and/or can use the AAA Functionality to access foreign registries,
before SPN activates the transport AN/CN (reservation, forwarding).
Page 93
MIND
1.2
4.4.2 Loose Coupling
The Loose Coupling scenario (Figure 4-13) corresponds to Internet applications, where the application
signalling (e.g. SIP, E2ENP) and the data transport can take different paths (Figure 4-13). The services
controlling the negotiation at application plane and the reservation processes at transport plane are
different, associated with different SPN/ASPN at the Application Plane. This is also a typical SIP
[RFC3261] / E2ENP scenario with reservation co-ordination at the LNs according to [SIPRES07] and
where the application plane and the transport plane signalling is completely separated. There is no
interaction between Service Domain and Transport Domain during call setup signalling.
The authorisation of resource reservation requests is performed by generating authorisation tokens at the
Service Domain and passing those authorisation tokens to the LNs during call setup procedure in the
application plane (in the session offer or session answer, respectively). The LNs include these tokens into
the QoS reservation requests sent to the Transport Domain. The Transport Domains resource reservation
agents check the validity of the tokens using internal policies that they may have imported from the
Service Domain earlier or that have been statically configured at start-up. In contrast to authorisations
used in the “Tight Coupling” scenario below, such policies are not generated and forwarded per session.
Instead, activation and deactivation of resource reservations has either to occur via direct signalling
between LNs and Transport Domain, if the reservation protocol used offers such a possibility, or
automatically at resource reservation/teardown, if the protocol does not offer such features (as in case of
standard RSVP).
The AAA/Reservation process is the following:
•
LN gets policy token/-s from the Registry by authenticating itself over its e.g. SIM, LOGIN
INFO (by e.g. REGISTER).
•
LN includes the policy token for validating the QoS requests at the Service Domain SPN/ASPN
(e.g. INVITE) – SIP Proxies with authorisation (Service Validating Facility). Access network
Service Domains may indicate for each codec/capability/quality level if it is supported or not, in
case they have knowledge about the policies of the end-to-end traffic support in the Transport
Domains (But this might not be the case in a typical SIP model scenario).
Figure 4-13 General Architecture for applying the Loose Coupling Scenario
Page 94
MIND
1.2
Figure 4-14 Loose Coupling Scenario - Negotiation and Reservation Model
•
LN includes the policy token in reservation requests to the Transport Plane (IAN/AN)
•
The transport plane IAN/AN (router reservation managers in Figure 4-14) can verify the policy
token/-s at the local Registry servers and/or uses the AAA Functionality to access foreign
registries, or use static configuration information.
•
The IAN/AN/CN take care for correct authentication token change between different Transport
Domains by performing the reservation hop-by-hop.
The overall message exchange for the call setup procedure is summarised in the next Figure 4-15 based
on the E2ENP model. It is assumed, that the LNs registered beforehand (the registration procedure is not
shown in the Figure 4-15) and E2ENP-capable access-network proxies may indicate, which
codecs/configurations are supported or not (similar to the 3GPP model).
The LN initiates the session setup by sending an ‘invite’ message containing a session offer to the E2ENP
Proxy in the Application Plane (Service Domain) it is registered with. The E2ENP proxy authorises the
request and optionally indicates which codec/configurations/QoS levels are applicable or non-applicable
as defined in Section 2.1, including its authentication key in the SIP Authentication-Info header. This is
denoted as process (offer). The proxy then propagates the E2ENP QoS request (potentially modified
offer*) to the next E2ENP proxy and so on. Each proxy processes the codec/configurations/QoS levels.
Afterwards the last proxy informs the answering LN about the session E2ENP QoS request (indicated as
offer**). The answering LN drafts an answer as QoS response from the information that it has received
with the session offer and its local capabilities and resource availability. This answer is passed along to
the last proxy, who then again processes the answer similar as the offer has been processed and authorises
it. The authorised answer* is passed finally to the first hop proxy of the offerer, who in turn indicates
which codec/configurations/QoS levels are applicable or non-applicable of the answerers description and
authorises the answer. Finally, the E2ENP QoS response arrives at the offerer (as answer**), who has
now complete knowledge of what codec/configurations/QoS levels are applicable or non-applicable by
which party. The offerer LN sends RSVP PATH message to the answerer LN that returns a RSVP RESV
message. The RSVP message contains the authorisation tokens received during the E2ENP QoS response.
Finally, when the offerer LN receives the RSVP RESV message, it sends a “E2ENP command-readyreservation” message to the answerer indicating the successful completion of the network resource
reservation, which is answered using a ready_reservation_ACK (200 OK of an initial INVITE). The call
setup ends using a call_setup_done (SIP ACK) as defined in Section 2.1.
Page 95
MIND
1.2
LN 1 (Offerer)
Transport Domain 1
Service Domain 1
Service Domain 2
Transport Domain 2
LN 2 (Answerer)
1: Invite(offer)
2: process(offer)
3: invite(offer*)
4: process(offer*)
5: invite(offer**)
7: propose(answer)
9: propose(answer*)
11: propose(answer**)
12: process(answer**)
13: RSVP_PATH
6: process(offer**)
8: process(answer)
10: process(answer*)
14: RSVP_PATH
15: RSVP_PATH
17: RSVP_RESV
19: RSVP_RESV
21: RSVP_RESV
16: ResoureCfm()
18: reserve_resources()
20: reserve_resources()
22: ResourceCfm()
23: E2ENP_command_ready_reservation
24: E2ENP_command_ready_reservation
25: E2ENP_command_ready_reservation
27: ready_reservation_ACK
26: ProcessReservation()
28: ready_reservation_ACK
29: ready_reservation_ACK
30: ProcessReservation()
31: call_setup_done
32: call_setup_done
33: call_setup_done
Figure 4-15 Call Setup for the Loosely Coupled Scenario
4.4.3 Tight Coupling
The Tight Coupling scenario (Figure 4-16) corresponds to the 3GPP model, where the LNs implement the
reservation protocol (e.g. RSVP) themselves but the Service Domain interacts with the Transport Domain
during call setup for reservation processing. Here, the Service Domain ASPN are related both to QoS
Signalling and resource reservation activation and should be integrated (Resource reservation
activation/deactivation should be performed from within the Application Plane). The QoS signalling is
performed both at the Application (e.g. SIP, E2ENP) and the Transport Planes (e.g. RSVP) and the LNs
coordinate resource reservations using [SIPRES07], which is also the model for E2ENP (see Figure
4-18).
Call setup signalling and resource reservation signalling are tightly coupled. In contrast to the “Integrated
scenario” described below, a reservation request for network resources is sent directly using Transport
Plane signalling (RSVP or a similar protocol) from the LN to the Transport Domains reservation agents.
A tight coupling between the Application Plane and the Transport Plane is given because the resource
reservation is authorised and resource reservations are activated by the Service Domain (e.g. E2ENP or
SIP proxy) through special messages to the Transport Domain. In case of session teardown, the Service
Domain can also directly teardown reserved resources by sending a teardown request to the Transport
Domains resource reservation agents rather than leaving this task to teardown requests issued by the LN.
Page 96
MIND
1.2
Figure 4-16 General Architecture for applying the Tight Coupling Scenario
The initial session offer and answer exchange between LN, Service Domain and Transport Domain is
very similar to the “Loosely coupled scenario”, with the main difference being that the Service Domain
entities (E2ENP proxies) authorise resources based on actual resource availability of the Transport
Domain. This requires an interaction during the authorisation process between Service Domain and
Transport Domain. The Figure 4-17 below illustrates the call setup process. Again, it is assumed that a
registration procedure has been carried out beforehand and the 3GPP model is assumed, where proxies
may modify the session offer (but only indicate if applicable or not, they do not remove session
descriptions).
The resource reservation itself is achieved directly between the LNs and the Transport Domain via RSVP
signalling. The LN sends a RSVP_PATH message which is propagated along the Transport Domains to
the peer LN. The peer LN answers with a RSVP_RESV message. Each Transport Domain reserves the
resources upon receipt of this message. This can only be done successfully if the resources have been
authorised beforehand by the Service Domain.
The confirmation of the reservation and the resource reservation activations are performed after the
offerer sent a “E2ENP command-ready-reservation” message to the answerer indicating the successful
completion of the network resource reservation, which is answered using a “ready_reservation_ACK”
(200 OK of an initial INVITE). Whenever the “ready_reservation_ACK” for the “E2ENP commandready-reservation” is received at an E2ENP proxy, it activated the resource reservations with the transport
domain.
Page 97
MIND
1.2
LN 1 (Offerer)
Transport Domain 1
Service Domain 1
Service Domain 2
Transport Domain 2
LN 2 (Answerer)
1: Invite(offer)
2: admit(resources)
3: admit_ACK
4: process(offer)
5: invite(offer*)
6: admit(resources)
7: admit_ACK
8: process(offer*)
9: invite(offer**)
11: propose(answer)
10: process(offer**)
12: authorize(resources)
14: authorize_ACK
13: update(policy)
15: propose(answer*)
16: authorize(resources)
17: update(policy)
18: authorize_ACK
19: propose(answer**)
20: process(answer**)
21: RSVP_PATH
22: RSVP_PATH
23: RSVP_PATH
25: RSVP_RESV
27: RSVP_RESV
29: RSVP_RESV
24: ResoureCfm()
26: reserve_resources()
28: reserve_resources()
30: ResourceCfm()
31: E2ENP_command_ready_reservation
32: E2ENP_command_ready_reservation
33: E2ENP_command_ready_reservation
35: ready_reservation_ACK
36: activate(resources)
37: activate_ACK
38: ready_reservation_ACK
39: activate(resources)
40: activate_ACK
41: ready_reservation_ACK
42: ProcessReservation()
43: call_setup_done
44: call_setup_done
45: call_setup_done
Figure 4-17 Call Setup for the Tightly Integrated Scenario
Page 98
34: ProcessReservation()
MIND
1.2
Figure 4-18 Tight Coupling Scenario - Negotiation and Reservation Model
The AAA/Reservation/Activation process is the following:
•
LN gets policy token/-s from the Registry by authenticating itself over its e.g. SIM, LOGIN INFO
(by e.g. REGISTER). If by registration the system does not generate policy tokens, these tokens can
be added by the respective first access proxy as described above.
•
LN includes the policy token for validating the QoS requests at the service plane SPN/ASPN (e.g.
INVITE) – SIP Proxies with authorisation (Service plane Validating Facility) or the first access
proxy authenticates its user by first verifying the user’s identity by the local registry.
•
LN includes the policy token in reservation requests to the Transport Plane IAN/AN or the first
access proxy authenticates its user by first verifying the user’s identity by the local registry.
•
The transport plane IAN/AN can verify the policy token/-s at the local Registry servers and/or uses
the AAA Functionality to access foreign registries. The IAN/AN/CN takes care for correct
authentication token change between different Transport Domains by performing the reservation
hop-by-hop. The integrated service and transport plane ASPN can perform flow activation and flow
teardown at the transport plane SPN. Additional control on transport AN/CN.
4.4.4 Integrated
This scenario is denoted as ‘Integrated Scenario’ because session setup signalling and resource
reservation signalling are integrated. In this scenario, the LN only communicates with the Service
Domain who in turn communicates with its associated Transport Domains. There is no direct
communication between the LNs and the Transport Domain.
The Integrated scenario (Figure 4-19) corresponds to the 3GPP model, where the LNs do not implement
the reservation protocol themselves. Instead, the Service Domain SPN/ASPN implement QoS signalling,
traffic activation and reservation on behalf of the LNs. Reservation and resource activation/deactivation is
performed from the Application Plane within the Service Domain. The reservation co-ordination
[SIPRES07] is still necessary so that the reserving proxies can inform the LNs about the reservation
results (Figure 4-21). In addition to marking and authenticating the QoS contracts, the proxies add
information about the reserved network resources in their answers to the LNs. The scope of this
reservation marking can be performed according to the XML-syntax described in [BOS02] as suggested
in Section 2.1.
Page 99
MIND
1.2
Figure 4-19 General Architecture for Applying the Integrated Scenario
The Figure 4-20 illustrates the call setup procedure for the integrated scenario. Again, it is assumed that
the LNs registered before at the corresponding service domain. In the ‘Integrated Scenario’ the offerer LN
initiates the session setup by sending an ‘invite’ message containing a session offer to the Service Domain
it is registered with (Service Domain 1). The Service Domain checks if enough resources are available at
the associated Transport Domain (Transport Domain 2) and process the codec/capabilities/qualities as
already explained above. It then propagates the session offer (denoted as offer* as the service domain
annotated which capabilities are supported) to the next Service Domain, in our case the Service Domain
2. The Service Domain 2 performs the same checks with its Transport Domain 2 and again processes the
offer. Afterwards it informs the answerer LN 2 about the session invitation. The LN2 prepares an answer
from the information that it has received within the session offer and its own capabilities/codecs. This
answer is passed along to Service Domain 2 who then reserves the resources with the Transport Domain
according to this session proposal. The Transport Domain is also updating its policies to accommodate
the resource reservation.
The Service Domain 2 then passes the session answer to the Service Domain 1, who in turn reserves the
resources with the Transport Domain 1. After the resource reservation, the Service Domain 1 sends the
session proposal to LN1.
The LN1 answers to this proposal by sending a “E2ENP_command_ready_reservation” message to the
LN2 via the Service Domains. The LN2 then answers with a “ready_reservation_ACK” to the Service
Domain 2. The Service Domain 2 activates the resources with Transport Domain 2 and propagates the
message to Service Domain 1 who in turn activates the resources with Transport Domain 1. After the
activation, the Service Domain 1 sends the “E2ENP_command_ready_reservation” message to the LN1.
Page 100
MIND
1.2
LN 1 (Offere Transport Domain
Service Domain
Service Domain
Transport Domain LN 2 (Answere
1: Invite(offer)
2: admit(resources)
3: admit_ACK
4: process(offer)
5: invite(offer*)
6: admit(resources)
7: admit_ACK
8: process(offer*)
9: invite(offer**)
11: propose(answer)
10: process(offer**)
12: reserve(resources)
14: reserve_ACK
13: update(policy)
15: propose(answer*)
16: reserve(resources)
17: update(policy)
18: reserve_ACK
19: propose(answer**)
20: process(answer**)
21: E2ENP_command_ready_reservation
22: E2ENP_command_ready_reservation
23: E2ENP_command_ready_reservation
25: ready_reservation_ACK
24: ProcessReservation()
26: activate(resources)
27: activate_ACK
28: ready_reservation_ACK
29: activate(resources)
30: activate_ACK
31: ready_reservation_ACK
32: ProcessReservation()
33: call_setup_done
34: call_setup_done
35: call_setup_done
Figure 4-20 Call setup for the Integrated Scenario
The AAA/Reservation/Activation process is the following:
•
LN gets policy token/-s from the Registry by authenticating itself over its e.g. SIM, LOGIN
INFO (by e.g. REGISTER). If by registration the system does not generate policy tokens, these
tokens can be added by the respective first access proxy as described in Section 4.3.
•
LN includes the policy token for validating the QoS requests at the service plane SPN/ASPN
(e.g. INVITE) – SIP Proxies with authorisation (Service plane Validating Facility) or the first
access proxy authenticates its user by first verifying the user’s identity by the local registry.
•
SPN/ASPN activates/deactivates reservation process at and transport AN/CN (e.g. COPS
processing).
•
The SPN/ASPN can verify the policy token/-s at the local Registry servers and/or uses the AAA
Functionality to access foreign registries.
•
The integrated service and transport plane ASPN can perform flow activation and flow teardown
at the transport plane SPN. Additional control on transport AN/CN.
Page 101
MIND
1.2
Figure 4-21 Integrated Scenario - Negotiation and Reservation Model
Page 102
MIND
1.2
5. Security Analysis
With Ad Hoc networks and vertical hand-over techniques deployed in MIND, the business models used
in the scenarios are complicated and very different from the ones generally known in mobile networking.
The increased problem complexities require a structured approach to solve the task of sketching security
solutions. The methodology used here consists of two straightforward stages: After and based on the
identification of security goals, reference points and protocol stack, security threat analysis (first) and
mechanisms (second) are delineated. In threat analysis, the assets of each participant, which must be
legally protected, are investigated and expressly described in order to clarify all the targets of possible
threats. Then appropriate technical or operational security mechanisms can be designed and adopted at the
correct level of the protocol stack modelling in order to assure that the scenarios are able to work without
compromise of defined security goals. This adoption is coherent with the methodology and architecture
found in MIND Deliverable 2.2.
Although a specific section of this document deals with accounting, we found it appropriate to discuss a
little in this place about AAA since its fundamental role is the support and justification of any trust
distribution model. And, in turn, security with parties that have no trust relationship is an oxymoron.
5.1 Methodology
From security engineering point of view, the security tools, processes, and measures are designed and
deployed to protect the predefined functional and security goals of the object system (here it is MIND
networks) against security vulnerabilities and threats. Therefore, a rather good understanding of the
functional and security goals, which stand as the basic security requirements, is certainly necessary. Since
MIND includes not only the technology of radio interface and mobile communication networks, but also
a few quite promising usage scenarios, an Open Distributed Processing (ODP) approach of analysing the
object system is definitely very helpful.
The Figure 5-1 gives an idea of how to understand MIND networks from different viewpoints, which are
inspired by ODP and helpful to identify security issues in each aspect. This figure is referred by the
methodology we adopt.
Figure 5-1 Different Viewpoints to Understand MIND Networks
Page 103
MIND
1.2
The objective of security analysis is to investigate security vulnerabilities of MIND scenarios and
networks, and then propose appropriate security mechanisms to achieve the predefined security goals.
The methodology is detailed here and some illustrative results of the security analysis are provided.
The authors would like to remind that the rest of this section indeed presents a general methodology,
which should not get confused with the concrete approach followed by the project team. Indeed, the
methodology was followed but somehow adapted and mapped to the numbering section (5.x) of this
chapter.
1. Define security goals
Security goals should be proposed based upon the system requirements, the limitation of current
techniques and the understanding of the system.
The security goals to be identified will represent the mix of interests that the involved roles have in
confidence, integrity and accountability. This defines the threat analysis’ scope. It is limited and it
does not encompass e.g. privacy management. The goals are to be elaborated and seen in the context
of accounting with respect to connectivity services, but not with respect to application oriented
services being used.
2. Identify assumptions: detail scenario and value chain
Describe the investigated scenario from asset point of view, e.g. who owns what in the scenario and
how the assets are exchanged and transferred, which is partially defined in the business value chain.
This is done in Section 5.2.
3. Identify roles & assets
Identify the appropriate roles of each participant in the scenarios. A role generally refers to the
characteristic and expected social behaviour of an individual, with special consideration of its
responsibilities, rights, and interests in our investigations and can be regarded as an abstracted entity
that always behaves in a specific way.
Identify the involved assets of each role in the scenarios. Assets are actually what the security
mechanisms are going to protect. Usually, the value of each asset presents itself in different ways,
like the confidentiality and integrity of a secret document, each of which needs to be studied and
determined if it must be protected. In order to organise the identification and presentation of assets, a
grouping is suggested in terms of asset categories. Additionally, as far as this is possible the number
of roles can be reduced when interests of roles do allow for this kind of grouping.
This results in a matrix of (asset categories) x (roles), which serves to understand the completeness
of assets to be identified. Risks and vulnerabilities shall later on be reduced by means of adequate
security, i.e. through authentication, authorisation, data integrity, logging/auditing or administration.
Sets of assets are therefore identified having an eye on these security services.
It can be expected that some of the identified sets of assets will be more important than other assets.
Also, there will be basic security mechanisms assumed allowing, for example, having authentication
and authorisation. Their selection is meaningful, as it is realistic since the systems used in the MIND
scenarios will not be widely open and unprotected. Their selection is also helpful, as on one side this
reduces the threats to be considered and on the other side will help to identify the properties of the
selected basic security mechanisms. Asset categories of MIND scenarios include electronic data,
cost, service usage, infrastructure resources, reputation, etc. This task is also done in Section 5.2.
4. Develop domain model (domains & reference points), map roles to domains
A domain model identifies different administrative domains and their respective responsibilities, the
reference points, which describe trust, relationships and interaction interfaces between them.
Technical realizations of domains encompassing functionalities and restrictions on network
components are also described in domain model. Therefore, domain model is very important when
analysing security threats and to prove proposed security and accounting mechanisms.
Administrative domains, representing functional or non-functional responsibilities and obligations
and their relationships in terms of reference points have been used to define domain models. To
Page 104
MIND
1.2
present network architecture on a high level, they abstract from technical realizations, restrictions on
network components and even domain internal details.
Roles will later be mapped to domains, which one role is allowed to hold two or more domains
simultaneously. This task is done in Chapter 3.
5. Identify protocol stacks at reference points
The protocol stacks at reference points are identified. The general communication protocols can be
roughly divided into two categories: control signalling and user data transmission. Security specific
protocols are not necessarily required to be identified at this stage. Section 5.3 deals with that aspect.
6. Perform threat analysis: who causes what threat to asset of whom
After roles/domains and their assets have been identified, the only thing left to threat analysis is to
connect asset to the other domains and then determine if this threat is possible in theory if possible,
how it may be carried out? Since value of an asset may be presented in more than one way, the
threats attacking any aspect of the value should be studied separately. Based on the assumption that
each participant does not trust any other participants, the threat(s) from every other participant to
each asset of the specific participant should be studied.
The consequences of threats are typically described as vulnerabilities. Examples of such threats are
denial of service, eavesdropping, masquerading (“spoofing”), replay, modification of information,
etc. In most cases a ranking according to a probabilistic model (probability of risk x costs of vulnerabilities) should be formulated. Instead of that, a prioritisation model will be used in MIND.
Threat analysis could be found at the very end of Section 5.2.
7. Identify necessary security services/mechanisms to counter the threats
Some general security services/mechanisms (authentication, authorisation, integrity, non-repudiation,
etc.) are proposed to counter the identified threats. This gives hints for later proposing security
solutions. This is the aim of Section 5.4.
8. Evaluate protocol stacks from security point of view
The protocols are evaluated from two sides: which threats can be countered by the protocols and
what new security vulnerabilities are introduced when deploying the protocols. This evaluation will
help further proposal of security solutions.
9. Propose security solutions
To prevent the threats, which may break the security goals, some security mechanisms and protocols
shall be used. These countermeasures should be carefully observed especially the prerequisites of
each mechanism to assure it can work properly.
With consideration that the deployed security mechanisms and protocols will not only be a part of the
whole system, but also the most possible targets of intruders, it is necessary to do security analysis
again after new security mechanisms or protocols have been proposed and deployed in the system.
The two latest aspects are left open to further investigations, as reminded in Section 5.4.
5.2 Threat Analysis
In this section we will first identify the assets of roles and domains identified in Chapter 3 and then
perform threat analysis. The presumed business model of threat analysis is presented in [TOM02] with an
exception of value chain that NP and SPN are not responsible directly of each other. Thus SPN does not
pay any charges to NP. We think that SPN will pay to AN and AN will pay to NP both for the services it
receives and on behalf of SPN.
Page 105
MIND
1.2
5.2.1 Identification of Assets
5.2.1.1 Context for Roles/Domains and Assets Identification
A security threat in risk assessment is one that is regarded as a possible danger to one asset of a
participant, which is generally taken by one of the (other) participants. A security threat comprises three
basic components: who threats what by which means. As a consequence this leads to identification of
roles (who), assets (what) and then technical means (which means). In order to organise the identification
and presentation of assets, a grouping is made in terms of asset categories.
This results in a matrix of (asset categories) x (roles) (Figure 5-4), which serves to understand the
completeness of assets to be identified.
Å asset categories Æ
Å roles Æ
< identified sets of assets >
Figure 5-2 Matrix of Asset Categories and Roles
Although we only discuss roles in this section, we will also use domains for threat analysis. Mapping of
roles to domains is given in Chapter 3.
Risks and vulnerabilities shall later on be reduced by means of adequate security mechanisms. These are
authentication, authorisation, data integrity, logging/auditing or administration. Sets of assets are
therefore identified having an eye on these security services.
Within the scenarios of WP1, it can be expected that some of the identified sets of assets will be more
important than other assets. Also, there will be basic security mechanisms assumed allowing, for
example, having authentication and authorisation. Their selection is meaningful, as it is realistic since the
systems used in the MIND WP1 scenarios will not be widely open and unprotected. Their selection is also
helpful, as on one hand this reduces the threats to be considered and on the other hand will help to
identify the properties of the selected basic security mechanisms.
5.2.1.2 Asset Identification
Assets considered in the MIND scenarios can be generally identified as
• Information/data12;
• Cost;
• Service usage;
12
Data here mainly means the user’s data and not related to the network management. It can be in different forms, in
a file or transmitted through the network. There are other data, like management information (usage record),
control signalling information (routing information). From OSI 7 layers point of view, the management and control
signalling of high layer usually are processed as part of normal user data in low layer. However, the network
management and control information are still separated from user’s data and have been put into the infrastructure
resource category even though overlap cannot be completely avoided.
Page 106
MIND
1.2
• Infrastructure resource; (e.g. hardware and software of communication system, network
management and control signalling, security subsystem, metering/charging record)
• Reputation13;
• Other assets;
An asset discussed here should be owned by a specific participant in the scenario. A few general
descriptions of common properties of assets are:
• The value of asset, which is meaningful to its owner, must not be decreased by any intervention
of the other participants without a permission of the owner, especially if the asset is a kind of
information, it must not be disclosed to any other (non-trusted) participants, because disclosure
will naturally lead to depreciation of the information. Therefore, asset itself must not be
consumed or destroyed by any other participants without permission of its owner.
• Asset’s value is not a simple concept. From different points of view, different kinds of value of
an asset can be evaluated. For example, a secret file has at least two different types of values:
confidentiality and integrity, both of which are important in the analysis. A clear description
distinguishing different type of values is necessary.
• Owner of an asset may change during the observed scenarios. The transfer of an asset’s
ownership usually accompanies another asset’s ownership transfer, e.g. when Stephanie is
working in the train with her PWA wirelessly communicating with her colleagues, the
ownerships of the usages of many kinds of services are transferred to her from their providers
respectively and are consumed by her immediately, the ownership of the money in her prepaid
account is also transferred to her Service Provider simultaneously. When the asset is transferred
to other participants, generally it is for exchanging for some other equal value assets. The
exchanging should be done fairly with respect to the contract between them or under the public
understanding. We assume such transfer takes place through a given transaction.
• An analysis of the relationships between different assets may also be important and interesting;
5.2.1.3 Assets for Roles and Domains in the Train Scenario
The assets and some remarkable properties of each participant in the observed scenario are listed in the
following. The security mechanisms and services, which can protect the identified assets (in general), are
mentioned after them in brackets.
5.2.1.3.1 LN (Leaf Network)
• The electronic data/file of LN’s work, which belongs to LN and the employer that is the actual
subscriber (S); these data/file are stored in the PWA and/or transmitted through the
communication networks;
o The data can only be viewed by the participants who need to know; in detail, the content
(and even the existence) of the data/file of their work must be kept secretly to everyone
except themselves and their colleagues who have been authorised to view the data.
(classification of data, authentication of participants)
o The data must not be changed by any unauthorised participants, especially in
communications (integrity of the data).
• The information which may describe the configuration or other properties of the PWA, etc., like
the existence, size or name of working data/file, or privacy, must only be disclosed to the
participants who need to know;
• The services delivered by the providers, for which LN/S have paid. The services can be access,
content, application, etc. with QoS levels specified in respective SLAs. Availability is an issue in
the SLA;
13
Reputation of a participant/role simply describes that she does not want anyone else to doubt if she breaks the
security regulations, which means she violates someone else’s assets.
Page 107
MIND
1.2
o The delivered services must be charged correctly, which means not be charged more,
with respect to the contract and SLA between LN and SPN; (quality and quantity of the
service versus the money deducted from the prepaid account, logging/auditing)
o The delivered services must not be consumed by any other participants without LN’s
permission; (authorisation)
o The services can be divided into clusters (access, content, application services), some of
which are out of scope of our analysis.
• The money in LN’s prepaid account, which must not be transferred to any other participants
without her permission; (authorisation)
• Temporary session key; since it is the key to join the Ad Hoc networks, it should be kept secretly
from anyone who is not authorised to join the meeting.
• the secret data which a participant exchanges with his/her company by accessing the Internet
through other IAN;
o The data can only be viewed by him/her and must be kept secretly to anyone else,
especially to IAN (Stephanie). (classification of data, authentication of participants)
o The data must not be changed by any unauthorised participants, especially in
communications (integrity of the data).
•
LN’s reputation; this asset simply describes that Stephanie does not want anyone else to doubt if she
breaks the security regulations, which means she violates someone else’s assets (non-repudiation).
5.2.1.3.2 IAN (Intermediary Access Network)
• IAN’s own sensitive data; which must not be stolen by anyone else when she is acting as an IAN.
• Network resources which will be provided to LN; anyone who wants to use these resources
should be authenticated at first to assure that the corresponding charge can be collected
(authentication).
• Reputation
5.2.1.3.3 S (Subscriber)
• Its employee’s working data, which is usually very important (valuable) and is managed by its
employee, Stephanie (LN); (authentication and integrity)
• Contents of the contract is the privacy of S, which is out of range of MIND;
• The services delivered to its employee, with respect to the contract; (quality and quantity of the
service, logging/auditing)
• The money reimbursed to its employees for the costs of usage of network services;
o The type of services, which will be reimbursed, should be agreed by the employer (S) in
advance; (authorisation)
o The reimbursed money should only cover the costs of the service usage which supports
her work for the employer (S); (logging/Auditing)
• Reputation; (non-repudiation)
Note: We may assume an utopian trustfully relationship between employee and workers. Without this
assumption, some security mechanisms should be deployed to regulate the interactions between S
and LN.
5.2.1.3.4 SPN (Service Provider Network)
• The charge from S for the delivered service, which may be deducted directly and nearly instantly
from LN/S’s prepaid account or be settled by LN/S periodically;
• The service fees which will be paid to AN, NP, and VASP because of the service usage of its S;
Page 108
MIND
1.2
o SPN should assure that the service fees it will pay to the other providers are worth the
usage of services which S/LN received; (quality and quantity of the service,
logging/auditing)
o The service usage metering records which contain the metering/charging information
and can be regarded as voucher of the usage of service;
• Reputation; (non-repudiation)
5.2.1.3.5 AN (Access Network)
• Network resources which will be provided to LN; anyone who wants to use these resources
should be authenticated at first to assure that the corresponding charge can be collected;
(authentication)
• The charge for LN’s usage of its network resources, which will be compensated by her SPN;
(logging/Auditing)
• The access service and other auxiliary services, e.g. network management, provided by NP with
QoS level specified in the SLA;
o The usage of services must be charged correctly, which means not be charged more,
with respect to the contract and SLAs between AN and NP; (QoS with respect to SLA
& fees, logging/Auditing)
o The usage of services must not be consumed by any other participants without
permission (authentication).
• Some other assets involved in the contract between itself and the NP;
• Network resource/service which is charging free for authenticated participants.
o The free charging network resource/service may include some network management
service and some introductory or basic information; Though they are charging free,
some of them are very important to the network operating, e.g. DNS (Domain Name
Service) which LN may use before she starts the video conference.
o Only permitted/authenticated participants can use this service/ resource;
o The participants who use this network resource/service have to obey some regulations,
e.g. generally too much usage of free charging service is prohibited because of potential
Denial of Service Attack.
• Metering data;
• Reputation; (non-repudiation)
5.2.1.3.6 NP (Network Provider)
• Network resources which will be provided to LN; anyone who wants to use these resources
should be authenticated at first to assure that the corresponding charge can be collected; or
perhaps from the NP point of view, this access service is provided to the AN and it does not care
whether the service has been consumed by which LNs, then there’s no necessity to authenticate
LN (authentication).
• The charge for LN’s usage of its network resources, which will be compensated by SPN.
However, in threat analysis we assume that this part of charge will be paid by AN on behalf of
SPNs, i.e. it is not necessary to ask SPN to contact NP and vice versa.
• The access service and other auxiliary services, e.g. network management service, which will be
provided to AN with QoS level specified in SLA.
o The usage of services must be charged correctly, which means not be charged less, with
respect to the contract and SLAs between AN and NP; (QoS with respect to SLA &
fees)
o The usage of services must not be consumed by any other participants without
permission (authentication).
• Metering data;
Page 109
MIND
1.2
• Reputation; (non-repudiation)
• Some other assets with respect to the contract between itself and AN
5.2.1.3.7 VASP (Value Added Service Provider)
• Application service and content which will be provided to LN; anyone who wants to get these
content should be authenticated at first to assure that the corresponding charge can be collected;
(authentication);
• The charge for LN’s usage of its content service, which will be compensated by SPN;
• Metering data;
• Reputation (non-repudiation)
5.2.2 Identification of Threats
In this section we present threat analysis for assets of a given domain or role with intruder (I) and other
domains or roles as attacker. While identifying the threats:
1.
We do not consider threats inside a domain i.e., threat of component(s) against other
component(s) in the same domain
2.
When two or more domains are administrated by one organisation, new type of threats against
other domains may exist, but are not yet considered in this analysis.
5.2.2.1 Catalogue of Threats
Table 5-1 is a catalogue of some of the security threats known and considered to be relevant. We will use
this catalogue while performing threat analysis in the following sections.
Table 5-1 A Catalogue of Threats
Threat
Passive Threat
Eavesdropping
Traffic Analysis
Reroute (man in the
middle)
Active Threat
Denial of Service
Session stealing Attacks
(Takeover, Connection
hijacking)
Masquerading; " Source
NAT" (“Spoofing”)
Replay Attacks
Modification of
Information
Network Flooding
Repudiation
Unauthorised access
Theft of Service Attacks
A potential violation of security
To listen in the line to get detailed information (Passwords, etc)
To find out which kind of communication takes place
Reroute from data streams over the own computer with the goal to
analyse the data streams
Threat with an overflow of requests to a network node. This can be
based on real or false requests, which can bring the node down.
Monitoring of the air-interface by a mobile node and his Core
Network. By recognizing an interesting communication, the attacker
flooded the mobile node with useless packets and the mobile node
stops the session. At the same time the attacker sends packets to the
core node and continues the session.
Concealing the source by using a wrong origin IP- address . NATGateways.
Interception of registration request/replay messages and send them
later with wrong Care-of-Addresses
Threats to the integrity of information could include unauthorised
message modification, message deletion, message misrouting including
rerouting, message replay, and/or the insertion of false messages.
Part of "Denial of Service"
The interception of password and authentication information of a
mobile node to get access to Mobile IP services of a service provider.
Disclosure of
information
Time falsification
Page 110
MIND
1.2
5.2.2.2 From LN’s Point of View
In general, confidentiality of LN’s electronic data that is transmitted through the communication network
or stored on its PWA may be its most important concern. Besides, LN also fears an unjustified bill, either
too high for a service he has used or for services he has not used at all. From the LN's point of view, the
threats that exist are:
Asset
Attacking
domain/role
Threat
Possible
security service
Eavesdrop the LN’s data from the air
Confidentiality
Collect general information of the LN to help
further attacks, e.g. OS version, filename, open
ports, etc.
Privacy and
management
Eavesdrop LN’s data when it passes through
Confidentiality
Tamper LN’s data when it passes through
Integrity
Collect general information of LN to help further
attacks
Privacy and
management
Eavesdrop LN’s data when it passes through
Confidentiality
Tamper LN’s data when it passes through
Integrity
Collect general information of LN to help further
attacks
Privacy,
management
Eavesdrop LN’s data when it passes through
Confidentiality
Tamper LN’s data when it passes through
Integrity
Collect general information of LN to help further
attacks
Privacy,
management
Eavesdrop LN’s data from the air
Confidentiality
Collect general information of LN to help further
attacks
Privacy,
management
Masquerade as NIP to eavesdrop/tamper LN’s data,
e.g., install a roguish access point in public area
Authentication
Fraudulently charge LN, either too high for a
service it has used or for services it has not used at
all
Non-repudiation
IAN
Fraudulently charge LN, either too high for a
service it has used or for services it has not used at
all
Non-repudiation
AN
Fraudulently charge LN, either too high for a
service it has used or for services it has not used at
all
Non-repudiation
SPN
Other LN
IAN
Data/
information
AN
NP
I
Costs
Page 111
MIND
1.2
VASP
Fraudulently charge LN, either too high for a
service it has used or for services it has not used at
all
Non-repudiation
Make LN to use its service without permission of
LN, e.g. to install a roguish agent on LN
Access control,
(firewall)
Deny to serve LN14
Authentication,
integrity
Defraud LN by providing quality-insufficient
services
Non-repudiation
IAN
Impersonate LN
Integrity,
Authentication
and nonrepudiation
Inject erroneous routes in the LN
Integrity
Cause denial of service e.g. ping very often which
leads to battery down or in some other way
Integrity
Impersonate as IAN to gather information about LN
Integrity and
Authentication
Impersonate as the LN
Integrity,
Authentication
and Nonrepudiation
deny to serve LN
Authentication,
Integrity
Other LN
Usages
service
of
AN
defraud LN
services
by
providing
quality-insufficient
Non-repudiation
SPN
defraud LN
services
by
providing
quality-insufficient
Non-repudiation
VASP
Defraud LN by providing quality-insufficient
services
Non-repudiation
Interfere LN’s usage of service, e.g. DoS attack,
user de-registration request spoofing
Authentication,
Integrity
I
Cause denial of service to LN
Masquerade as LN to request service
Authentication
I
Intrude LN’s Personal Wireless Assistant
Access control
Other LN
Intrude LN’s Personal Wireless Assistant
Access control
Resources
14
The judgement of whether it is a security threat depends on the agreement between IAN and AN. In case that IAN
is allowed to provide routing service only to the LNs it likes, this is not a threat.
Page 112
MIND
1.2
Reputation
I
Masquerade as LN to commit other attacks
Authentication
Other LN
Masquerade as LN to commit other attacks
Authentication
IAN
Masquerade as LN to commit other attacks
Authentication
5.2.2.3 From IAN’s Point of View
IAN’s main concern is to collect billings from SPN correctly and in time.
Asset
Attacking
domain/role
Threat
Possible
security service
LN
Reject a correct billing by claiming that the bill is
not correct
Non-repudiation
SPN
Reject a correct billing by claiming that the bill is
not correct
Non-repudiation
LN
Tries to use services it is not allowed to use
Authorisation
Prevent IAN from providing promised QoS to LN,
e.g., send wrong routing information to LN
Integrity
Costs
Other IAN
Usages
service
Impersonate IAN
Integrity,
Authentication
and nonrepudiation
Prevent IAN from providing promised QoS to LN
Integrity
Cause denial of service to IAN
Integrity
Prevent IAN from providing promised QoS to LN
Integrity
Masquerade as LN to request IAN’s service
Authentication
Tamper IAN’s usage metering records
Integrity
Intrude IAN’s system to e.g. change router or
routing characteristics
Authorisation
Tamper IAN’s usage metering records
Integrity
Intrude IAN’s system to e.g. change router or
routing characteristics
Authorisation
Masquerade as IAN to commit other attacks
Authentication
of
AN
I
I
Resources
LN
Reputation
I
5.2.2.4 From AN’s Point of View
AN’s main concern is to collect billings from SPN correctly and in time. One point is not included in the
following table: the assets involved in the contract between itself and NP.
Page 113
MIND
1.2
Asset
Attacking
domain/role
Threat
Possible security
service
LN
LN rejects a correct billing from SPN by claiming
that the bill is not correct
Non-repudiation
SPN
SPN reject a correct billing by claiming that the bill
is not correct
Non-repudiation
LN
Tries to use services it is not allowed to use
Authorisation
IAN
Tries to access service it is not allowed to access
Authorisation
Prevent AN from providing promised QoS to LN
Integrity
Masquerade as LN to request services of AN
Authentication
Tamper AN’s usage metering records
Integrity
Intrude AN’s system to e.g. change router or
routing characteristics
Authorisation
I
Masquerade as AN to commit other attacks
Authentication
IAN
IAN does not provide the QoS requested by LN and
blames AN
Non-repudiation
Costs
Usages
service
of
I
Resources
I
Reputation
5.2.2.5 From SPN’s Point of View
Usually SPN does not trust its LNs, therefore to collect billings from LN without contention may be its
main concern. However, attacks against its LN by other participants are definitely unacceptable since the
affected LNs mostly will change their subscriptions to other SPN, which means profits lost of the SPN.
Asset
Attacking
domain/role
Costs
LN
IAN
Threat
Possible
security service
Doesn't pay for its account
Management
Defraud SPN by falsely claiming that a bill is not
correct
Non-repudiation
Defraud SPN by presenting wrong accounting
information for a subscriber’s LN
Non-repudiation
Masquerade as a subscriber of SPN to request NIP
or VASP services in order to obtain service fees
from subscribers via the SPN
Authentication,
Management
Page 114
MIND
1.2
Defraud SPN by presenting wrong accounting
information for a subscriber’s LN
Non-repudiation
Masquerade as a subscriber of SPN to request NIP
or VASP services in order to obtain service fees
from subscribers via the SPN
Authentication,
Management
Defraud SPN by presenting wrong accounting
information for a subscriber’s LN
Non-repudiation
Masquerade as a subscriber of SPN to request NIP
or VASP services in order to obtain service fees
from subscribers via the SPN
Authentication,
Management
Other SPN
Defraud the SPN by presenting wrong accounting
information for its LN
Non-repudiation
VASP
Masquerade as a subscriber of SPN to request NIP
or VASP services in order to obtain service fees
from subscribers via the SPN
Authentication,
Management
I
Masquerade as a subscriber of SPN to request NIP
or VASP services in order to obtain service fees
from subscribers via the SPN
Authentication,
Management
IAN
Defraud SPN’s subscribers by providing qualityinsufficient services
Integrity,
Management
AN
Defraud SPN’s subscribers by providing qualityinsufficient services
Integrity,
Management
NP
Defraud SPN’s subscribers by providing qualityinsufficient services
Integrity,
Management
VASP
Defraud SPN’s subscribers by providing qualityinsufficient services
Integrity,
Management
I
Preventing NIP or VASP from providing promised
QoS to LN
Integrity
I
Tamper SPN’s usage metering records
Integrity
LN
Cause any other problem such that people do not
use the SPN
Authentication
I
Cause any other problem such that people do not
use the SPN
Authentication
AN
NP
usages
service
of
Resources
Reputation
5.2.2.6 From NP’s Point of View
As mentioned in Section 5.2.1.3.6 the charge for usage of NP’s network resources will be compensated
by AN on behalf of SPNs. Therefore, the threats against NP are mainly related to the contract between
itself and AN.
Page 115
MIND
1.2
Asset
Attacking
domain/role
Costs
Usages
service
of
Threat
Possible security
service
AN
Reject a correct billing by claiming that the bill
from SPN is not correct
Non-repudiation
AN
Tries to use services it is not allowed to use
Resources
I
Reputation
I
Authorisation
Tamper NP’s usage metering records
Integrity
Intrude NP’s system to e.g. change router or routing
characteristics
Authorisation
Cause problem e.g. degradation of service quality,
leading to customers not using services of NP
Authentication
5.2.2.7 From VASP’s Point of View
Attacking
domain/role
Asset
Costs
Usages
service
of
Resources
Threat
Possible security
service
LN
Reject a correct billing from SPN by claiming that
the bill is not correct
Non-repudiation
SPN
Reject a correct billing by claiming that the bill is
not correct
Non-repudiation
I
Masquerade as LN to request service of VASP
Authentication
LN
Tries to use services it is not allowed to use
Authorisation
I
Prevent VASP from providing promised QoS to LN
Integrity
I
Tamper ASP’s usage metering records
Integrity
I
Cause problem e.g. degradation of service quality,
leading to customers not using services of VASP
Authentication
SPN
Cause problem e.g. degradation of service quality,
leading to customers not using services of VASP
Integrity
Reputation
Page 116
MIND
1.2
5.2.3 Summary of Threat Analysis
A summary of all the threats from and to various roles or domains and Intruder (I) are given in Table 5-2.
Table 5-2 Summary of Threats.
Page 117
MIND
1.2
5.3 Protocol Stacks
This section identifies the protocol stacks at network layer for reference points (RPs) of the train scenario
domain model (Figure 2-2). Threat analysis done in Section 5.2 can be used to find the weakness of
protocols at each RP this information can then be used to modify the protocols to counter the threats.
We focus our work on mobility and security issues so signalling protocols related to QoS are not
considered here.
5.3.1 Protocol Stacks and Reference Points
The protocol stacks can be divided in two categories (Figure 5-3): control plane protocols (CPs) and User
Plane protocols (UPs). The formers are those used for signalling, session management etc. while the latter
are used for actual data transmission.
Control plane protocol stacks can either be Ad Hoc protocols, which can lie at any point in protocol stack
from above Layer-1 onwards or Mobile Node – BRAIN Access Router (MN-(B)AR) which lies over Ad
Hoc protocols.
User plane protocol stack can be same for all RPs. By TCP/IP (Transmission Control Protocol / Internet
Protocol) protocol suite in user plane protocol stack we mean any protocol defined by Internet
Engineering Task Force (IETF) that can be used for data transmission.
Figure 5-3 Control Plane and User Plane Protocol Stacks.
Figure 5-4 Control Plane Protocol Stacks at Various Reference Points
Page 118
MIND
1.2
In Figure 5-4 the protocol stacks at different RPs are given. Please note that even if the protocol stacks at
various RPs are identical it does not implicate at all that the RPs themselves are the same. Threat analysis
is in any case needed in order to evaluate in which terms multiple RPs differentiate one with each others.
5.3.2 AAAB Considerations
The Domain Model (Figure 5-1) introduced above contains the concept of AAAB. For the sake of clarity,
this section extracted from [GLA00] introduces the role and functions of such a component and is a first
step towards the identification of protocols or protocol requirements that should be put into this protocol
stack model.
In order to be pragmatic and since AAA, as security, is almost never a feature per se but rather an add-on
feature (in case of AAA it enables roaming outside a restrictive area), we consider AAA used in
conjunction with a network layer mobility management protocol like Mobile IP, our illustrative protocol
in the rest of this section. In other words and for stating the rational: It is because of mobility that we need
roaming. Although a specific section of this document deals with accounting, we found it appropriate to
discuss in that place about AAAB since its fundamental role is the support and justification of any trust
distribution model.
It should be emphasised that MIND indeed uses another mobility management protocol (BCMP) but for
the sake of our discussion here around AAAB benefits and function we can in a first approximation
confuse them.
The MIND Domain Model assumes that the various components of the domain trust each other.
Depending on the security model used, this configuration can cause a quadratic growth in the number of
trust relationships, as the number of AAA authorities (AAAL and AAAH) or, respectively with respect to
Figure 5-1, the number of ANs and SPNs increases. Any AAA proposal (i.e. the ones discussed in the
IETF) must solve this problem. Using brokers solves many of the scalability problems associated with
requiring direct business/roaming relationships between every two administrative domains. In order to
provide scalable networks in highly diverse service provider networks in which there are many domains
(e.g., many service providers and large numbers of private networks), and multiple layers of brokers must
be envisaged.
Integrity or privacy of information between the home (SPN) and serving domains (AN) may be achieved
by either hop-by-hop security associations or end-to-end security associations established with the help of
the broker infrastructure. A broker may play the role of a proxy between two administrative domains that
have security associations with the broker, and relay AAA messages back and forth securely.
Alternatively, a broker may also enable the two domains (SPN and AN) with which it has associations,
but the domains themselves do not have a direct association, in establishing a security association, thereby
bypassing the broker for carrying the messages between the domains. This may be established by virtue
of having the broker relay a shared secret key to both the domains that are trying to establish secure
communication and then have the domains use the keys supplied by the broker in setting up a security
association.
Assuming that AAAB accepts responsibility for payment to the serving domain on behalf of the home
domain, the serving domain is assured of receiving payments for services offered. However, the
redirection broker will usually require a copy of authorisation messages from the home domain and
accounting messages from the serving domain, in order for the broker to determine if it is willing to
accept responsibility for the services being authorised and utilized. If the broker does not accept such
responsibility for any reason, then it must be able to terminate service to a mobile node in the serving
network. In the event that multiple brokers are involved, in most situations all brokers must be so copied.
This may represent an additional burden on Foreign Agents and AAALs.
Though this mechanism may reduce latency in the transit of messages between the domains after the
broker has completed its involvement, there may be many more messages involved as a result of
additional copies of authorisation and accounting messages to the brokers involved. There may also be
additional latency for initial access to the network, especially when a new security association needs to be
created between AAAL and AAAH (for example, from the use of IPSec keying mechanisms). These
delays may become important factors for latency-critical applications.
Page 119
MIND
1.2
IAN
AAA
B
LN
AN
AAAL
AAAB:
AN:
IAN:
LN:
SPN:
SPN
AAAH
Reference Point
Authentication Authorization and Accounting Broker
Access Network
Intermediary Access Network
Leaf Network
Service Provider Network
Figure 5-5 AAA Entities in the MIND Domain Model and Reference Point.
The AAAB in Figure 5-5 is the broker's authority server. The broker acts as a settlement agent, providing
security and a central point of contact for many service providers and enterprises.
The AAAB enables the local and home domains to cooperate without requiring each of the networks to
have a direct business or security relationship with all the other networks. Thus, brokers offer the needed
scalability for managing trust relationships between otherwise independent network domains. Use of the
broker does not preclude managing separate trust relationships between domains, but it does offer an
alternative to doing so. Just as with the AAAH and AAAL, data specific to Mobile IP control messages
must not be processed by the AAAB. Any credentials or accounting data to be processed by the AAAB
must be present in AAA message units, not extracted from Mobile IP protocol extensions.
The following requirements discuss use of brokers in the particular case of authorisation for roaming dialup users but could be extended for our project framework.
•
Allowing management of trust with external domains by way of brokered AAA.
•
Accounting reliability. Accounting data that traverses the Internet may suffer substantial packet
loss. Since accounting packets may traverse one or more intermediate authorisation points (e.g.,
brokers), retransmission is needed from intermediate points to avoid long end-to-end delays and
unnecessary network traffics.
•
End to End security. The Local Domain and Home Domain must be able to verify signatures
within the message, even though the message is passed through an intermediate authority server.
Since the AAAH in the home domain may be sending sensitive information, such as registration keys, the
broker must be able to pass encrypted data between the AAA servers.
The need for End-to-End security results from the following attacks which were identified when brokered
operation uses RADIUS [RIG97] (see [ABO99] for more information on the individual attacks):
•
Message editing
•
Attribute editing
•
Theft of shared secrets
•
Theft and modification of accounting data
•
Replay attacks
•
Connection hijacking
•
Fraudulent accounting
Page 120
MIND
1.2
These are serious problems that cannot be allowed to persist in any acceptable AAA protocols and
infrastructure and the MIND solution framework as found in Chapter 4 or in the MIND Deliverable 2.2
document does not allow them to occur.
5.4 Security Mechanisms
After the respective descriptions of the situation of mobile networking environment and the potential
menace, this section proposes counter measures that could be adopted by the various parties identified in
Section 5.2.
As the Internet moves towards a picture where mobility is predominant, we can identify two opposite
approaches adopted by engineers and protocol developers: either they choose to adopt (or re-shape)
existing standard Internet protocol, more or less trying to save the original end-to-end paradigm, or they
create an entirely set of standards applicable only to the wireless world (and, more generally, only to a
specific architecture). In-between solutions are seldom. We use this taxonomy through the three following
sections and conclude about pertinence regarding applicability to MIND.
We found it inappropriate to come again with a newly security solution that in turn will be only MINDspecific. Instead of an explicit action plan, a suggestive list is therefore submitted; there are namely just
too many (well defined indeed) solutions found in the literature, projects, and standardization areas for
securing the mobile ubiquitous networking environment.
As the Internet moves towards a picture where mobility is predominant, we can identify two opposite
approaches adopted by engineers and protocol developers: either they choose to adopt (or re-shape)
existing standard Internet protocol, more or less trying to save the original end-to-end paradigm, or they
create an entirely set of standards applicable only to the wireless world (and, more generally, only to a
specific architecture). We use this taxonomy in the rest of this section and conclude with the possibility of
merging both approaches.
5.4.1 The Internet Approach
The so-called Internet approach is best represented by the IETF. But also around this forum, various
approaches (merely incarnated by working groups) could be selected for the one wanting to secure all or
only some segments, either according to threats or reference points of the mobile computing framework.
We here present a non-exhaustive listing of existing solutions, whose maturity is highly variable.
5.4.1.1 Mobile IP and IPSec
Mobile IP is a layer 3 protocol and an IETF standard [PER02] designed to serve the mobile users who
wish to connect to the Internet and maintain communications as they move around. Mobile IP is based on
the idea of IP-in-IP encapsulation and use of a Home Agent (HA) to forward packets from a mobile host's
original location to its current location i.e. its IP care-of-address which can be collocated to the MN itself
or points towards a local attendant in the visited network called Foreign Agent (FA). The version for IPv6
networking, Mobile IPv6 is not yet finalized.
IP Security (IPSec) [ATK95] is a generic name for the concept of “full” security services (data origin
authentication, connectionless data integrity authentication, data content confidentiality, anti-replay
protection) and a method of protecting IP datagrams for IPv4 as well as IPv6 nodes.
An Internet Draft [TES02] highlights some of the issues that should be considered when IPSec and
Mobile IP inter-work with each other. This work finds some applications in the following fields: VPN
traversal requirement [ADR02], IPSec Remote access client co-located with a Mobile Node, IPSec
security Gateway running in parallel with a Home Agent or a Mobile Internet Protocol (MIP) Proxy
[IYE02] .
5.4.1.2 Mobile Router Support with Mobile IP
Another Internet draft [KNI02] (and, subsequently, another problem) addresses how to support mobile
networks with Mobile IP or Mobile IPv6 and proposes a solution for it. Within the context of this
document, a Mobile Router is defined as a node which operates as a Mobile Node as detailed in Mobile
Page 121
MIND
1.2
IP or Mobile IPv6, but has the additional capability of routing between its point of attachment (Care-of
Address), and a network fragment (subnet) which moves with the mobile router.
Providing a generic scalable solution for the address ownership problem may prove to be complicated. A
problem is, how can a mobile router or an intermediate agent efficiently authorise multiple fixed and
mobile nodes to communicate with their peers, when all these may be from multiple different domains,
and the mobile router is not an end node for their communication. Other solutions using inter-domain
routing protocols may be possible, depend on the willingness of the routing infrastructure to trust mobile
routers.
5.4.1.3 Global Connectivity for IPv4 Mobile Ad Hoc Networks
Belding-Royer et al. elaborate in [BEL01] Mobile Ad Hoc Networking (MANET) and mobile networking
(i.e. the problem raises by a network that moves as a whole).
This document describes how to provide Internet connectivity to mobile Ad Hoc networks (an Ad Hoc
network is a group of wireless mobile computers (or nodes), in which individual nodes cooperate by
forwarding packets for each other to allow nodes to communicate beyond direct wireless transmission
range). It describes a mechanism whereby the Ad Hoc On-Demand Distance Vector (AODV) Routing
protocol can cooperate with the Mobile IP protocol such that mobile nodes within an Ad Hoc network,
which are out of direct transmission range of a Foreign Agent, can obtain a care-of address and register
with the Foreign Agent to obtain Internet connectivity. Mobile IP is used for mobile node registrations
with a Foreign Agent, while AODV is used for routing within the Ad Hoc network and for obtaining
routes to the Foreign Agent. Once a MANET node has a care-of address, it may send data packets to
destinations in the Internet by routing through the Foreign Agent.
5.4.1.4 Extensible Authentication Protocol over IP (EAPoIP)
Extensible Authentication Protocol over IP (EAPoIP) [ENG02] is basically a variation of the Extensible
Authentication Protocol (EAP). Unlike EAP, it runs over IP. EAPoIP is intended primarily for
authentication of hosts in an access domain. EAPoIP assumes that the host has established a link-layer
connection to an access router and has configured a valid IPv4 or IPv6 address for itself on the subnet by
DHCP, by address auto-configuration, or by other means. Dynamically configurable firewalls may be
used to shield unauthenticated and unauthorised hosts on the access subnets from resources in the inner
parts of the access domain. This solution elaborates on Protocol for carrying Authentication for Network
Access (PANA), which is a general authentication protocol (requires using PPP framing for the data
packets and 802.1x provides EAP authentication limited to IEEE 802 link layers) between a user's device
and a device at the network access point developed within the IETF PANA working group. The network
access device itself might be a client of the AAA infrastructure.
A PANA Authentication Agent (PAA), which is an Authentication Server located somewhere in the
access domain, authenticates the host. The host may also authenticate the PAA.
5.4.1.5 Secure Socket Layer (SSL)
On the contrary to Mobile IP and IPsec, Secure Socket Layer (SSL co-founded here with TLS defined in
[DIE99]) is a protocol running above transport layer which provides encryption, source authentication
and integrity protection of application data over insecure public network. SSL is commonly perceived as
being too heavyweight for weaker CPUs and low bandwidth high latency wireless networks, though
improvements are perceived both in PDA’s technology side as well as wireless network speed one.
Moreover, even if none of the popular wide-area wireless data services today offer SSL on a handheld
device, developers [SUN01] have implemented SSL client on small wireless devices.
Those ‘Internet’ standards are widely adopted and are justified by the success of the IP Protocol. Though ,
they are not well suited for a world were the end-to-end paradigm is barely applicable (many players on
the MIND playground may deploy some type of ‘walled-garden’). Somehow, we believe that the highly
unpredictable nature of the MIND environment as well as the atomisation of trust distribution induced by
the rich MIND domain model (not to mention the inherent limitation of the mobile computing
environment like e.g. battery life) make those protocols inappropriate.
Page 122
MIND
1.2
5.4.2 Wireless and Architecture-Specific Approaches
Far previous to the Internet activity around security and mobility, the wireless world, in particular GSM,
standardized solution relying on the security module (or Subscriber Identity Module) for authentication to
the network based on a long-term subscriber authentication key before a user is allowed to use any service
from that network. The security module is required to encrypt the voice call with the symmetric key
generated in the Subscriber Identity Module (SIM). The SIM therefore is an integral part of the GSM
architecture, providing security data storage and cryptographic processing.
Besides cellular solutions, the so-called Wireless Fidelity (Wi-Fi) sector also provides proprietary
solution addressing the threats described above. So we kindly point the reader to the references found in
the subsequent section below.
5.4.2.1 GSM and UMTS
Providing services to networks is the most common use for security modules today. The Universal
Subscriber Identity Module (USIM) is the 3G version of the SIM to work with the Universal Mobile
Telecommunications System (UMTS) network. It supports 3G protocols and is backward compatible to
support 2G authentication methods for access to 2G networks. Although the USIM is not regarded as a
physical entity, it is seen as a logical application that resides on a Universal Integrated Circuit Card
(UICC). The UICC contains one or more USIMs and possibly other applications (e.g. credit card
functionality or WIM). By inserting the USIM-card into a UMTS terminal, the user is recognised by the
UMTS network and can be addressed on this terminal via his personal telephone number (MSISDN).
5.4.2.2 CHOICE Service Platform
‘CHOICE’ [BAH02] is a service platform on which any number of network providers can offer network
services, enabling users to choose the kind of services that best feed their need.
Here, the lack of an implicit trust relationship between the users and the public network is solved by the
fact that the AAA infrastructure is agnostic of the authentication protocols used (all users may not prefer
the same way of authentication). CHOICE namely supports multiple authentication modes like E-Cash
systems, credit card, digital certificates and so on. Once authenticated CHOICE returns a key used for
encryption/decryption services, a key_id (an index into an array of valid (key, token) pairs) and a security
token to the user’s mobile device for identification purpose (the token is the value that is tagged to very
packets before encrypting it with the key). The client module receives and stores the (key, token) pair and
sets the default gateway to an advertised Gateway address. The mobility management is solved in the
sense that when living the public network area, the client, though restoring default network setting still
has the un-expired (key, token) pair stored in a table indexed by the advertised network identifier which
can be re-used by further reconnection to the public network.
5.4.2.3 802.1x
802.1x [802.1x] defines a standard mechanism for Port-based network access control that makes use of
the physical access characteristics of IEEE 802 LAN infrastructures in order to provide a means of
authenticating and authorizing devices attached to a LAN port that has point-to-point connection
characteristics, and of preventing access to that port in cases in which the authentication and authorisation
process fails.
As described in MIND, IEEE 802 LANs are often deployed in environments that permit unauthorised
devices to be physically attached to the LAN infrastructure, or permit unauthorised users to attempt to
access the LAN through equipment already attached. Examples of such environments include corporate
LANs that provide LAN connectivity in areas of a building that are accessible to the general public, and
LANs that are deployed by one organisation in order to offer connectivity services to other organisations
(for example, as may occur in a business park or a service office building). In such environments, it is
desirable to restrict access to the services offered by the LAN to those users and devices that are
permitted to make use of those services. 802.1x
Those ‘wireless’ solutions suffer from what is considered as advantages from the Internet point of view:
They are too proprietary and do not encompass a global picture like ours. Therefore, as we stated in the
previous section, we cannot adopt these solutions for the MIND framework.
Page 123
MIND
1.2
5.4.3 Merging the Two Worlds
This section proposes some solutions developed to bridge specific architecture to the whole Internet
picture frame, in a similar movement to the one perceived, in the mobile telecommunication place, with
the recent 3GPP’s ‘All-IP’ initiative.
Of course, reading the critics previously addressed to the Internet as well as the wireless world, the need
of such bridging initiative was evident and it is not so pertinent to conclude with saying that the truth is
‘somewhere in the middle between the two worlds’. But the facts are quiet ‘têtus’ and here they show, as
the existence of proposals and products listed below proves it, that indeed combining in an intelligent way
benefits from the two sides (Internet and wireless) is the solution for the secured MIND framework.
5.4.3.1 GSM SIM Key Generation for Mobile IP
The document from Haverinen [HAV01] specifies a mechanism for Mobile IP network access
authentication and key distribution using the GSM Subscriber Identity Module (SIM). The mechanism
uses new subtypes of the generalized key distribution extensions for Mobile IP Registration Request and
Registration Reply. After the registration keys have been generated, the default Mobile IP authentication
with these keys can be used (MD5 in prefix + suffix mode). The keys can be used for several subsequent
registrations. However, there are lifetimes for the keys and before the lifetimes expire, new keys can be
generated with the same procedure.
So the SIM feature is only used for key generation (the credential of the SIM card are not use for
authenticating Mobile IP registration messages).
By using the SIM key exchange, no other pre-configured security association besides the SIM card is
required on the mobile node.
5.4.3.2 Windows for SMART Cards
In contrast to GSM there will be a multitude of different types of terminals in UMTS, e.g. multi-mode or
multi-band handsets, notebook-like communicators or UMTS-laptops with camera, speakers, and
microphone all equipped with a USIM-card (see above). There will be terminals too where more than one
USIMcard can be inserted. This means that some terminals (e.g. fax terminals) shall be used by several
UMTS-customers simultaneously. The USIM stores the identity of the subscriber (user), operator, and
service provider and (at least one) user service profile. This service profile defines the services that a
customer is subscribed to, the time and the network where he can use them. LAN services have also
adopted the use of security modules for secure log on. The security module like in the GSM world
authenticates the user to the network in order for the user to use the services offered by the network. The
security module can also be used to sign e-mails and hold encryption keys to encrypt e-mails and other
data. An example of this is the Windows for smart cards platform [WIN01] . It allows smart card
authentication and encryption with the current windows operating systems. Windows for smart cards can
be programmed for one or more users, a user can not have concurrent account usage, and smart cards will
be used to authenticate a user on to a PC or a network. The security credential such as a password or a
biometric value is stored on the smart card, this is compared to the template stored on the network as with
an ordinary secure log-on system.
5.4.3.3 IEEE 802.1X RADIUS Usage Guidelines
IEEE 802.1X (see above) enables authenticated access to IEEE 802 media, including Ethernet, Token
Ring, and 802.11 wireless LANs. Although RADIUS support is optional within IEEE 802.1X, it is
expected that many IEEE 802.1X Authenticators will function as RADIUS clients.
The document draft [CON02] provides suggestions on RADIUS usage by IEEE 802.1X Authenticators.
Support for any AAA protocol is optional for IEEE 802.1X Authenticators, and therefore this
specification has been incorporated into a non-normative Appendix within the IEEE 802.1X specification.
IEEE 802.1X does not require use of a backend authentication server, and thus can be deployed with
stand-alone switches or access points, as well as in centrally managed scenarios.
Page 124
MIND
1.2
In situations where it is desirable to centrally manage authentication, authorisation and accounting (AAA)
for IEEE 802 networks, deployment of a backend authentication and accounting server is desirable. In
such situations, it is expected that IEEE 802.1X Authenticators will function as AAA clients.
This document provides therefore suggestions on RADIUS usage by IEEE 802.1X Authenticators.
Support for any AAA protocol is optional for IEEE 802.1X Authenticators, and therefore this
specification has been incorporated into a non-normative Appendix within the IEEE 802.1X specification.
As a testimony of the good work between standardisation bodies, this document is currently being revised
as part of the IEEE 802.1aa effort, and is being presented to the IETF for informational purposes.
5.4.3.4 Inter-working Between IP Security and Performance Enhancing Proxies for Mobile
Networks
Motivated by the convergence of Internet and wireless multimedia and in an attempt to make IP more
suitable to 3G mobile networking, [ASS02] suggest a scheme that allows the coexistence of IPSec and
Performance enhancing proxies (or PEPs). The usage of PEPs, though improving TCP/IP performance
over wireless link, compromises end-to-end security. PEP module acts on the TCP headers and
manipulates the flow of acknowledgements. Within the UMTS architecture, PEP is usually implemented
in the RNC.
In most cases PEP can handle traffic applying security protocol above the transport layer such as SSL.
However, only a limited number of applications (mostly Hyper Text Transfer Protocol over Secure
Socket Layer (HTTPS)) include support for the use of transport layer security nowadays. IPSec, on the
contrary, can be transparently used by any application. The major problem of inter-working between PEP
and IPSec is that PEP cannot act on traffic protected by IPSec because it cannot examine the encrypted
TCP headers of IP packets.
The solution described in [ASS02] is roughly an intelligent switch that recognizes and discriminates IP
Packets: If IP packets are unencrypted, the PEP can read the TCP headers. In the encrypted IP packet
case, there are two options: either the packets bypass the PEP module and are directly forwarded to the
mobile hosts, in which case PEP will not bring any benefits; or the user can trust the PEP in the middle,
and IPSec can be used between each end system and the PEP. In general, though, the end user cannot
trust PEPs, or the trust distribution is too heavy weight, and this is not as secure as end-to-end security, as
many security experts believe, primarily because the traffic might be exposed when it is decrypted for
processing.
Research activities are underway for investigating the possibility of changing the implementation of
IPSec to more easily use PEP.
All these proposals, trying to merge two worlds, broadly speaking, have in common the fact that they
force heterogeneous building components to talk with each other. This of course requires mapping
functions and protocols, meaning in turn Inter Working Function, Gateway and common interfaces.
The wise conclusion sounds therefore: If you are an actor of the MIND domain model, in order to open
yourself to a secured mobile communicating scenario you should be ready to accept the necessary
compromising with other entities you are not usually used to communicate with.
Page 125
MIND
1.2
6. Accounting and Billing
Accounting consists traditionally of the operations of metering resource consumption, collection of
metered data and definition of pricing schemes to perform the charging and finally, the billing of
customers. Usually these operations take place within the domain administrated by the same authority
(Figure 6-1).
Figure 6-1 Information Flow in the Accounting Process
However, the traditional accounting architectures developed today do not pay special attention to mobility
problems through heterogeneous networks or through different administrative domains, and to the
inclusion of Ad Hoc sub-networks, as considered in the MIND scenarios. Existing accounting
architectures do not cover the future mobile multimedia users requirements, where a customer may have
the ability to move easily from place to place, from access provider to access provider and retain access to
a rich set of information and communication services like, for example, receiving information during his
session about the current costs (hot billing) and where there will be multiple business relationships among
the actors. The basic characteristics of such a system from the end-user point of view are location
independence, device independence, motion independence, and ease of use.
Because the MIND scenarios include such provocative challenges, an administrative domain model was
build in order to trace the boundaries, the roles and the responsibilities between the various players (see
also Chapter 3 for details).
The Accounting and Billing issues have been introduced in [ALEJ02], analysing the problem only from
the transport domain point of view. Main differences between service layer accounting and transport layer
accounting are related to the different roles of each of the players in both layers and to the differences in
negotiating and metering the events. There exist many distinctions between how to perform the
accounting in both layers, and there are multiple relationships among the service and transport domain
providers.
Page 126
MIND
1.2
Figure 6-2 MIND Basic Domain Model
In this chapter, an accounting and billing high level architecture will be outlined for an integrated telecom
environment following the value chain model explained in [ALEJ02]; moreover, the possible scenarios of
collaboration between service layer players and transport layer will be analysed ones following the
domain model approach exposed in [ALEJ02].
The methodology to be used will be the following: The value chain provided in [ALEJ02], will be
analysed from the point of view of the business relationship among players, and the conclusions will be
mould in the Domain Model (Figure 6-2). Later on a first accounting and billing architecture skeleton for
the MIND domain model will be proposed and an example will be extracted from Chapter 4 related to
interworking scenarios.
As will be explained below, relationships among Applications Service Providers (ASP), Service
Providers Networks (SPN), Core Network providers (CN), and Access Providers (AP) for a specific
service, will be driven by a business model; a high level accounting architecture cannot be defined
without studying first the business relationship among those entities.
6.1 Value Chain Analysis
The main purpose of the value chain analysis is to provide a guideline for the discussion about the
business relationship among the players in a service and transport collaborative environment. This value
chain will be the main driver model for the selection of the business model that will be proposed in the
next section.
In this value chain several actors can be identified.
The first actor that takes part is the end user. In the value chain the end user has two roles, end-user and
subscriber. The end user will use the service, receive the bill, and pay for it. In the value chain it can be
observed how the user pays to the service provider for the use of both service and transport services. So, it
is supposed that the network provider and the service provider will deliver just one unified bill, and in the
value chain the service provider delivers the bill to the end user.
The Value Chain (Figure 6-3) shows how net revenues paid by the end-user are shared between the wellknown providers. The percentages base on the present split in mobile Internet world.
Page 127
MIND
1.2
Figure 6-3 MIND Basic Value Chain for the Nomadic Working Scenario
Currently the service provider offers service or a bundle of services and earns the money from the enduser. From these revenues he has to pay the network provider (i.e. Access and Core Network provider),
the ASP and the content provider. In our example the network provider gets a share of 10% of the whole
revenue. With this amount he has to cover all his costs and has to realise profit. The application provider
who develops software for service-applications receives 20% of the service providers’ income for
supplying the special applications. The content provider receives 40% for his service what is the major
part of the income.
The mentioned percentages should only be used for orientation. It is very hard to estimate how the
revenue for services discussed in this paper will be split in future times. But it is quite clear that market
shares will move. All European network providers have to recognise that margins in core business of
voice communication become even smaller. The smaller margins and the current competitive situation of
network providers will substantially influence the telecommunications industry in the next years.
6.2 Mobile Internet Roles Analysis
This section deals with general business models driving a relationship between services providers and
transport providers. An accounting architecture is strongly related to the business relationships among the
companies involved in the delivering of that services, as was shown in the last section, and the role of
each of the entities involved in these relationships. In this section a role analysis of the operator will be
explained and later on an analysis of the possible business relationship will be provided.15
15
Definition of operator – public land mobile network (PLMN): A network that is established and operated by an
administration or by a recognized operating agency (ROA) for the specific purpose of providing land mobile
telecommunications services to the public. Note: A PLMN may be considered as an extension of a fixed network,
e.g. the Public Switched Telephone Network (PSTN) or as an integral part of the PSTN. Institute for
Telecomunications Science.
Page 128
MIND
1.2
Before analysing different business relationship scenarios, it is mandatory to introduce the basic business
roles that define how a company is perceived when working with services within a mobile internet
environment, i.e. ASP, Service Network Provider’s entities and operators, etc. Generally speaking
transport providers have had the role of the traditional telecom operators, and service providers have been
Internet ASPs. Nowadays transport providers want to provide value added service too, and the business
models described below help to understand how that relationship can be managed.
Operators are going to play different business roles depending on the services offered. The following
roles can be identified (Figure 6-4):
•
Bit-Pipe Provider, meaning that the operator just provides connectivity enabling end-to-end
communication between external Service Providers and end-users.
•
Channel Provider, meaning that the operator provides enabler services (Positioning, Messaging,
…) and eventually Charging Services to external Service Providers who directly interact with the
end-users (i.e. handle the customer relationship for those services),
o
•
Application Service Provider, meaning that the operator will have the role of Applications
Service Provider too. This role can be a super-set of the channel provider model when the
ASP is the operator. In the picture it can be assimilated to the channel provider role.
Service Provider, meaning that it is the operator who acts as the counterpart for services to endusers.
Service Provider
From those three business roles the most attractive to operators as well as the most challenging to
implement in his full extent is that of the Service Provider, and that is the reason why this scenario
requires more attention.
It is extremely important to understand that this is the general scenario that operators are facing where
obviously Service Provider is not equivalent to Walled-Garden. Service Provider is a business role
towards the subscriber and Walled-Garden is just one out of a lot of different types of environment
allowing operators to implement this role.
Figure 6-4 Business Roles
Page 129
MIND
1.2
Operators will implement this Service Provider role in different ways for different cases, with the
following possible configurations:
•
ASP Configuration: Services exploited in this configuration are hosted by ASPs but offered by
the operator to the end-users. This configuration has in turn several variants according to
organisational, ownership and trust models.
•
Walled-garden: Services in the Walled-garden are directly run by the operator and hosted in
operator’s sites.
Summarising operators will play the role of Service Providers towards their subscribers no matter who
hosts these services and this must be transparent to the end-user. The architectural implications of the
implicit need of the operator to create the necessary trust for the end-user in scenarios where Services can
be hosted by operators, distributed across the global group or hosted and operated by partners and yet
guaranteeing End-to-End Service Assurance to the end-user is the key issue to concentrate on.
Channel Provider
In a number of cases operators play today, and will play in the future, the Channel Provider role. This is
the business scenario advisable for the case of external Service Providers with a huge branding
themselves and a broad customer base of their own. The operator itself can be an Application Service
Provider to other operators or Service Providers.
Bit-Pipe Provider
Finally, of course, operators may in some cases just play the bit-pipe provider role, which is not restricted
at all. This provides with traffic revenues and market penetration on the mobile side.
It is important to remark that the Channel Provider role and the Bit-Pipe Provider role can be, but are not
in general, strategies or steps towards the Service Provider role. All business roles and configurations
must coexist and the one applied for a particular service or case will be that judged most appropriate
according to business, strategic, competence, and technical criteria.
The first priority for the operators to supporting a variety of business models is derived from the fact that
operators cannot compromise to a given architectural solution for the Service Layer that makes it
impossible for them to distribute services in different domains as they like or restricts the right to
implement different business models. Such freedom is mandatory when different approaches for different
types of customer segments, services, and markets where operators need to gain market share of data
services must be possible. This is in the end an ambitious structural requirement on the solution: that
different business models can be flexibly supported and coexist.
There are several ways of combining these business roles in a real services environment. Some of the
relationships among players are illustrated in the Table 6-1 following. Partners belonging to the same
company or group of companies are coloured and shaded in the same way. The role of the traditional
mobile telephony operator is marked in green (or diagonal) cells.
Table 6-1 Partners Business Relationship
Case 1
Case 2
Case 3
ASPN
SPN
CN
AN
Page 130
Case 4
Case 5
Case 6
MIND
1.2
The meaning of the relationship of each of the columns in the table can be analysed matching with the
business roles explained above for a service. The role of the partnerships can change depending on the
type of service delivered.
Case 1
In this relationship model the role of the operator can be associated to the bit pipe provider. The
business model consists of one or several companies providing application or services. Other
entities provide SPN services while others provide CN and AN services (operator). Then it can
be concluded that the user should have a contract for each of the companies outlined above from
where he uses his services. This is not a good model for beyond 3G systems (including users and
operators) in the case that the user could have at least two or more contracts and then the value
chain is very fragmented.
Case 2
This model for the operator could be assimilated to the channel provider and to the bit pipe
provider, where the operator acts as SPN, CN, and AN and provide services as OSA/PARLAY
to third ASPN companies. This model can be seen as similar to the model 6 because the
OSA/PARLAY services can be offered to other companies using an Application Service
Provider located within the same operator. In this case the ASPN will pay to the operator the use
of its services.
Case 3
This is the implementation where the operator plays all roles for a service. In this model the
operator matches the Service Provider role in a Walled-garden environment. The operator offers
all value chain services. From the point of view of a business approach this model alone is not a
good approach because of the limitations not allowing to third possible access network providers
(i.e. big mall centres, airports, etc.) to use their own access networks and because of the lack of
applications provided by third parties providers.
Case 4
From the point of view of the operator this model is related to a pure big pipe provider role,
where the operator provides only transport services to the user and other companies provide
other services and play other roles. Each of the providers has its own legal entity and the
relationship with the end-user is, generally speaking, different. The problem inherent to this
model for the operator is similar to the problems explained in the case one, where the user could
sign a contract with several providers.
Case 5
For this relationship model, the operator matches with the big pipe provider role and with
channel provider one, but the main difference with case one is that the transport provider does
not provide the access network either, having a more restricted role in the business relationships.
In this business model, the operator can sign agreements with third parties to be provided with
access networks and with applications to his customers. But again the problem raises when the
user signs different contracts with the companies.
Case 6
This case is matched, from the point of view of the operator, to the Application Service Provider
model. The operator plays the role of ASP just to provide other SNP with services. One example
of this roles are the OSA/PARLAY services. This case is an extension of case 2.
The way in which relationships among different actors in the telecom and IT world are managed will be
the key for the success in future scenarios. It seems clear that companies inside the mobile world will be
forced to have agreements among them just to offer to their customers a wide variety of services,
applications, contents, and access technologies.
Page 131
MIND
1.2
6.3 Domain Model Implementation
In this section, a general case for an operator will be analysed from the point of view of the extended
domain model, mixing the best cases exposed in the last section (Section 6.2).
From the Domain Model’s point of view, the cases that fit best with the model are 3 and 5. If both cases
are mixed then the operator will play the role of a Service Provider with contract with third parties.In the
following this case is introduced in the extended domain model (Figure 4-1). Colours and shadows are
completing the domain model and will not only illustrate the functional relationships among the partners
but also the business relationships among them.
The extended business domain model reflects the functional and business relationships that from the
MIND point of view represents the key for success in the future market. The vision is extracted from the
value chain analysis and from the business relationship related to the service provider model explained in
Section 6.2.
Figure 6-5 Extended Business Domain Model
In Figure 6-5 can be seen how different actors in a telecom environment are linked. The entities with
diagonal shadowing are the same operator or companies with a strong business relationship (i.e. global
operators or strong telecom companies). The entities with blue plain shadowing are third parties
companies, who have business relationships with the main operator. This schema is chosen because it fits
with the value chain proposed in D1.1 and with the business relationship model chosen in Section 6.3. In
this domain model, the operator plays the roles of: Service Provider, Bit pipe provider, and application
service provider.
Main advantages of this model are the following:
•
The user has a contract with just one company, avoiding multiple subscriptions and multiple
billings.
•
The user has the freedom when he selects the access network that he wants to use. The main
contractor should negotiate with access network providers, for example railway companies,
airports, etc.
•
The user has access to multiple applications service providers and multiple contents negotiated
by the main contractor.
•
The user can have services like single sign on, integrated security, etc. because of the special
application service provider relationship with the operator.
•
The operator can open his network to third parties developments, and can offer to the
Applications Service providers a wide range of services and access to a huge amount of endusers,
Page 132
MIND
1.2
•
The operator can offer different types of access technologies to their users, i.e. Wireless LAN,
Bluetooth, etc.
•
Operators can sign agreements with companies just to provide a global connection worldwide.
6.4 Billing and Accounting Architecture
6.4.1 Architecture Skeleton
The accounting architecture that will be developed in this section is an abstract model built for the basic
domain model (Figure 6-2). The skeleton architecture manages interactions between network devices
(belonging to LN, AN, or SPN), accounting servers, and billing servers. The network device collects
resource consumption data in the form of accounting metrics. This information is then transferred to an
accounting server (AAAL). Typically this is accomplished via an accounting protocol, although it is also
possible for devices to generate their own session records.
The accounting server (AAAL) then processes the accounting data received from the network device.
This processing may include summarisation of interim accounting information, elimination of duplicate
data, or generation of session records.
The processed accounting data is then submitted to a billing server, which typically handles rating and
invoice generation, but may also carry out auditing cost allocation or capacity planning functions.
Session records may be batched and compressed by the AAAL server prior to submission to the billing
server in order to reduce the volume of accounting data and the bandwidth required to accomplish the
transfer. In order to support the prepaid charging, a near real time transfer of billing records should be
possible.
One of the functions of the AAAL server is to distinguish between inter and intra-domain accounting
events and to route them appropriately. If the users identifier corresponds to the local domain, then the
session record is treated as an intra-domain accounting event. Otherwise, it is treated as an inter-domain
accounting event.
Intra-domain accounting events are typically routed trough the AAAL server to the Local Billing server
(BL), while inter-domain accounting events will be routed to the AAAH. While it is not required that
session record formats used in inter and intra-domain accounting is the same, this is desirable, since it
eliminates translations that would otherwise be required.
The metering device which meters the network resource traffic will typically speak an accounting
protocol to the AAAL, which may then either convert the accounting packets to session records, or
forward the accounting packets to another domain. In either case, the AAAL that sorts the session
records or accounting messages by destination typically achieves domain separation.
Figure 6-6 illustrates the billing and accounting architecture.
Additional security services may be required when data is being transferred between administrative
domains. For example, when information is being collected and analysed within the same administrative
domain, integrity protection and authentication may be used in order to guard against collection of invalid
data. In inter-domain applications confidentiality may be desirable to guard against snooping by third
parties.
Page 133
MIND
1.2
Network
Device
Metering
Accounting
Protocol
Local
Accounting
Server
(AAAL)
Intra-domain
session
Inter-domain session
records or accounting
protocol
Home
Accounting
Server
(AAAH)
Data collection,
pricing,
charging
Inter-domain
session records
records
Local Billing
Server (BL)
Billing
Home Billing
Server (BH)
Billing
Figure 6-6 Billing and Accounting Architecture
6.4.2 Security measures for intra-domain and inter-domain accounting
Inter-domain accounting differs from intra-domain accounting in several important ways. Intra-domain
accounting involves the collection of information on resource consumption within an administrative
domain, for use within that domain. In intra-domain accounting, accounting packets and session records
typically do not cross administrative boundaries. As a result, intra-domain accounting applications
typically experience low packet loss and involve transfer of data between trusted entities.
In contrast, inter-domain accounting involves the collection of information on resource consumption
within an administrative domain, for use within another administrative domain. In inter-domain
accounting, accounting packets and session records will typically cross administrative boundaries. As a
result, inter-domain accounting applications may experience substantial packet loss. In addition, the
entities involved in the transfers cannot be assumed to trust each other.
Since inter-domain accounting applications involve transfers of accounting data between domains,
additional security measures may be desirable. In addition to authentication, replay, and integrity
protection, it may be desirable to deploy security services such as confidentiality and data object integrity.
6.5 Billing requirements
When accounting data is used for billing purposes, the requirements depend on whether the billing
process is usage-sensitive or not:
•
Since by definition, non-usage-sensitive billing does not require usage information, because the
billing process is not based on usage information, in theory all accounting data can be lost
without affecting the billing process. However, wholesale data loss is not acceptable because this
could affect other tasks like auditing.
•
For usage-sensitive billing processes, which depend on usage information, packet loss may mean
paying loss. Therefore, an archival accounting approach is needed to enable the billing process
to conform to financial reporting and legal requirements.
In conclusion, because in usage-sensitive systems, accounting data translates into revenue, the security
and reliability requirements are greater. Due to financial and legal requirements such systems need to be
able to survive an audit, in order to verify the correctness of an invoice submitted by a service provider, or
the conformance to usage policy, service level agreements, or security guidelines. Thus security services
Page 134
MIND
1.2
such as authentication, integrity, and replay protection are frequently required. Confidentiality and data
object integrity may also be desirable. Application-layer acknowledgements are also often required so as
to guard against accounting server failures. In addition, usage-sensitive systems may also require low
processing delay.
6.6 Cost Allocation Model
With the convergence of telephony and data communications, there is increasing tendency in applying for
networks the cost allocation and billback procedures actually in use with telecommunications networks.
Cost allocation models often have profound behavioural and financial impacts. As a result, systems
developed for these purposes are typically as concerned with reliable data collection and security as are
billing applications. Due to financial and legal requirements, archival accounting practices are frequently
required in this application.
6.6.1 Accounting Records
Typically, a single accounting record is produced per session, or in some cases, a set of interim records
that can be summarised in a single record for billing purposes. However, to support deployment of
services such as wireless access or complex billing regimes, a more sophisticated approach is required.
It is necessary to generate several accounting records from a single session when pricing changes during a
session. For instance, the price of a service can be higher during peak hours than off-peak. Peak hours are
not the only factor requiring this approach. For instance, in mobile access networks the user may move
from one network to another while still being connected in the same session. If handover causes a change
in the tariffs, it is necessary to account for resource consumed in the first and second areas. Another
example is where modifications are allowed to an ongoing session. For example, it is possible that a
session could be re-authorised with improved QoS. This would require production of accounting records
at both QoS levels.
For a session continuing from one tariff period to another, it becomes necessary for a device to report the
packets sent during both periods. In most cases, the network device will determine when multiple session
records are needed, as the local device is aware of factors affecting local tariffs, such as QoS changes and
handovers.
In inter-domain accounting or when local domains do not have tariff information the home domain should
control the generation of accounting records. The centralised control of accounting record production can
be realised, for instance, by having AAAH servers requiring re-authorisation at certain times and
requiring the production of accounting records upon each re-authorisation.
In conclusion, in some cases it is necessary to produce multiple accounting records from a single session.
It must be possible to do this without requiring the user to start a new session or to re-authenticate. The
production of multiple records can be controlled either by the AAAL or AAAH servers.
6.7 Accounting & Billing Issues Related to Chapter 4
In this section, an example will be provided taken from Chapter 4, and an event management will be
proposed in an integrated environment. In this example, the two partners are the service provider network
and the transport provider network.
Page 135
MIND
1.2
Figure 6-7 Flow Chart in an Integrated Environment
As can be seen, the applications located in the Application Service Provider Network, use the Service
Provide Network just to negotiate the capabilities at the service domain and the service layer control the
resources reservation and the resources activation. This model fits with case 7 that was discussed above.
In the following picture it can be seen within a red ellipse.
In Figure 6-7 can be seen how the accounting events are introduced following the reservation and
activation events. These events happen within the service provider and within the transport provider. An
integrated accounting and billing architecture need to be given in order to deliver to the user just one bill
and a unified information.
The following architecture, Figure 6-8, customised from the generalised one proposed in Section 6.4.1
provides a first solution about how to manage the accounting issues in those environments.
In this example, it will be supposed that the company that administrates the service provider and the
transport provider are one and the same, or they are federated companies. This business model
corresponds to the service provider model, the service provider and the transport provider are the same
entity. In this case the AAAB has to negotiate the interchange of information between service layer AAA
and transport layer AAA in a trusted environment, both from the same company or federated one.
In the architecture AAAL will be the AAA from the transport layer, this is the domain which has
metering devices, and the AAAH will be the AAA of the services domain. The service domain will
deliver the bill, so all the accounting packets generated in the transport layer will be diverted to the billing
server located at the service layer. This billing service will be completely transparent for the user.
Page 136
MIND
1.2
Network
Device
Accounting
Protocol
Local
Accounting
Server
(AAAL)
Transport Layer
Metering
Service Layer
Inter-domain session
records or accounting
protocol
Home
Accounting
Server
(AAAH)
Data collection,
pricing, charging
Inter-domain
session
records
Home Billing
Server (BH)
Billing
Figure 6-8 Accounting and Billing Architecture.
This model that offers a lot of advantages to users and operators, seems to be the best to work in the given
environment, and represents a possible way in which the telephony operators could plan future business.
Page 137
MIND
1.2
7. Support of User Trials
The MIND Work Package 6 was in charge of the deployment of a trial network infrastructure and the
demonstration of the MIND network and service concepts. This section describes the collaboration
between WP1 and WP6 in order to describe the implemented parts of the BRAIN service concepts that
were implemented and demonstrated by WP6.
One of the most important contributions from the IST Project BRAIN was the BRAIN End Terminal
(BRENTA) [BRA01] from legacy applications to future middleware solutions; Openness, to being
interoperable with other architectures and IETF protocols; and Flexibility, to cope with multi-stream,
multi-session multimedia data, and to enable a dynamical upgrade of the system during runtime. The
problem is that most of the advanced BRENTA functionalities are based on the ESI and it is a very
resource consuming task to be accomplished both in WP1 or WP6. Thus, WP1 has assisted WP6 during
the “Trials pre-study” phase identifying different ways to implement some of the service concepts,
analysing the different WP6 approaches to implement these concepts and offering theoretical solutions to
these problems. WP6 has found it very difficult to demonstrate all of the BRAIN service concepts as most
of the components would have required implementation from the scratch. So in WP1, we have studied
different alternatives to simulate part of these service concepts using and integrating existing
technologies.
As showing all the service concepts would be very costly, WP6 has finally focussed on an extended
version of the ISABEL [ISA01] application supporting auto-adaptation facilities and interfaces towards
QoS and micro-mobility brokers. The use of interfaces from the applications towards these brokers allows
us to overcome the limitation of not having an ESI. Thus, WP6 has selected as the service concepts to
demonstrate end-to-end QoS, multimedia adaptive applications, and user perceived QoS.
The main concepts to be demonstrated during MIND trial have been identified from the original BRAIN
scenarios. According to [MIN63], the demonstrations which have been performed have achieved the
following goals:
•
To integrate a trial environment including systems such as WLAN (e.g. HIPERLAN/2), UTRA
and IPv6 based core network test beds.
•
To validate and evaluate basic functions and protocols specified by BRAIN: vertical (at IP layer)
and horizontal handover mechanisms and QoS related aspects.
•
To show some key mobile applications and service aspects selected from the scenarios
developed in the BRAIN project.
The MIND trial concepts have been defined in Deliverable 6.1 and the trial infrastructure of the various
test-beds was defined in Deliverable 6.2. Tested issues include the ISABEL application and adaptation
mechanisms to varying connectivity conditions, QoS management in the BRAIN access network,
mobility management with the Brain Candidate Mobility Protocol (BCMP) and Hierarchical Mobile IP
(HMIP) protocols and vertical handover between various link technologies.
The next section is describing the MIND implementations as follows:
•
Audio-/ Video encoder switching depending on available bandwidth (ISABEL)
•
Graphical user Interface (GUI) to switch between certain predefined QoS profiles (QoS Broker)
•
Monitoring of available bandwidth of the interfaces – WIC / LMT (QoS Interface)
•
Micro mobility protocol (BCMP)
•
Communication between application and routing protocol (Mobility Interface)
ISABEL CSCW is a configurable Computer Supported Cooperative Work application supporting
synchronous group collaboration over IPv4/6. ISABEL sessions support effectively multipoint
configurations with over 15 interactive points. In each session, all participants can share the relevant
Page 138
MIND
1.2
videos, audios, presentations, whiteboard, application, etc. in easily controlled configurations. For the IST
project MIND, a light version of ISABEL has been used which comprises only audio and video
capabilities. Some interfaces have been developed, in order to enable the application react to changes in
network characteristics and enforce QoS parameters, as well as proactively prevent major disruptions
caused by handoffs.
As previously commented, the BRENTA design within BRAIN is split in two major planes: the usual
data networking plane, and the QoS- and resource-management one. Further one of the key points in
BRENTA is the idea of auto-adaptation when QoS violations occur. To overcome the limitation of not
being able to implement the ESI, WP1 proposed to WP6 to implement a QoS interface between the
application and a new entity called QoS-Broker. The QoS Broker is in charge of abstracting the
application from the specific QoS network mechanisms. This QoS Broker was implemented and included
in the adaptive application ISABEL and is able to change the QoS capabilities of audio and video stream
in real-time in a mobile environment. This means, the server which is hosting the QoS profile is
delivering this profile to each access router.
The QoS interface implemented between the application and the lower layers is able to process
information related to the actual bandwidth of the network in use, extracted from lower layers. Testing the
advantages of such interface involves testing over a wireless network or UMTS, where changes in
bandwidth are common or can be forced. Two implementations were developed in order to provide the
application with the needed layer 2 data, WIC (Wireless Interface Control) for the WLAN interface and
an extension of the LMT (Local Management Tool) for the UMTS interface.
One of the used mobility protocols was the BRAIN Candidate Mobility Protocol, for which a software
implementation was already available at KCL from BRAIN. So the intention was to port the software
functions on a hardware platform by performing the necessary modifications. The main functionalities
developed are the BCMP Handover Management and BCMP Path Updates. This function of the protocol
includes the various types of supported handovers, planned, unplanned, and inter-Anchor.
The Mobility interface was implemented on top of BCMP. BCMP is required to inform about the
characteristics of the network, which are being used, as well as the new network situation prior to or after
a vertical handover has taken place. BMCP is intended for micro-mobility, so it may operate with
traditional macro-mobility protocols such as MIP for such vertical handover.
Specific tests: Concerning the tests, small standalone test-beds of routers have been built and several
micro- and macro mobility protocols have been installed to provide mobility. The first set of tests of the
quality of service has been done on a mobile network without any QoS support. The second set of tests
has been done on the base-line architecture. These have enabled us to quantify the benefits offered by
each further concept. Each of the concepts has been tested in a scenario where a handover occurs. Key
measurements have performed including packet delay, loss, and jitters. These measurements have been
taken on two flows - a real-time QoS enabled flow and a high priority QoS enabled flow - as the load of
background best effort traffic increases.
Interconnection of test-beds: In order to demonstrate all implementations together in an almost realistic
environment, we have connected three of the standalone test-beds via an IPv6 tunnel through the internet;
the first from ASSA at Madrid where the Home Agent was located, the second at Berlin, where the
standalone test-bed from T-Systems Nova and Siemens was located. Here, the vertical handover was
demonstrated at IP-layer between WLAN-UMTS which was triggered by the QoS interface developed in
MIND. The third test-bed was situated at KCL in London, here the extended micro mobility protocol
BCMP was tested. For all the tests, the adaptive application ISABEL lite was used in order to show very
clear the results of the implementation work in MIND. The Video session was running on two mobile
nodes, one in London and the other in Berlin, whilst performing horizontal and vertical handover on both
sites.
Implementing the whole BRAIN terminal architecture has shown to be impossible within the MIND WP6
framework. This was mainly caused due to the need of implementing most of the components from
scratch. WP1 has assisted WP6 in evaluating the difficulty of implementing these layers and finding
alternatives to show using existing technology some BRAIN concepts.
Page 139
MIND
1.2
Finally WP6 uses existing technology to get the same functionality than some of the BRENTA
components. Thus, a videoconferencing application like ISABEL is being extended to support micromobility and QoS interfaces which provides these functionalities allowing us to test BRAIN concepts.
The results look very promising and indicate that running sensitive services, e.g. multimedia services with
the ISABEL application, in a wireless access network with mobile hosts are indeed possible with very
good quality.
Page 140
MIND
1.2
8. Conclusion
The MIND project aims to facilitate the rapid creation of broadband multimedia services and applications
that are fully supported and customised when accessed by future mobile users from a wide range of
wireless access technologies. This MIND project also extends the concepts of IP mobile networks. This
includes new network topologies, like Ad Hoc, self-organising and meshed networks and to enhance the
support for Quality of Service, Ad Hoc networks, and self-organisation at all layers. The MIND project
also includes QoS support in IP-based mobile networks and the investigation of the spectrum
requirements for systems beyond 3G. Further the project researches the use of WLAN and an IP-based
access networks as a complement to UMTS for high bandwidth provision in hot spot areas.
This document has introduced enhancements to the BRENTA architecture with respect to the application
layer QoS session protocols (E2ENP). Different operating systems are being studied with respect to their
interfaces for QoS support, necessary for the application of the systems beyond 3G. A domain model
provides the view of the administrative domains within the BRAIN/MIND architecture. Further
enhancements to this model show the utilisation of the QoS application level protocols, the possibilities
for applying accounting and billing within the BRAIN/MIND architecture and the security issues of the
BRAIN/MIND model. The problem, addressed in this document, is to decide how MIND systems can be
used, what users can or cannot expect from such systems. We present therefore a top-level architecture
for which we describe selected functional entities, but also the effort that has been spent for the trial of the
MIND project. The results are presented in the following. Subsequently, the conclusions on the material
presented in this document are drawn.
The study of the session negotiation features of the BRENTA Session Manager (SM) has led to the
introduction of the End-to-End QoS Negotiation Protocol (E2ENP) (Section 2.1). The requirements of
this protocol are discussed. The E2ENP is a signalling mechanism for effectively and efficiently
performing end-to-end QoS negotiations/re-negotiations and resource management co-ordination, when
dealing with multiparty multimedia services under unstable network conditions. Special features are the
negotiation of common vocabulary and adaptation paths, which describe alternative QoS contracts to be
applied, when QoS violations occur. Furthermore, the E2ENP allows developers and/or users to capture
and enforce time synchronisation and QoS correlation (and even more complex) constraints among
multiple streams, thus allowing adaptation at different levels. This is envisioned to be a key benefit in
terms of QoS for current and future applications. By modularly extending SDPng, and by properly
defining SIP usages, the authors expect that the induction of the E2ENP concept smoothly blends with
legacy solutions, along the path towards the next generation of QoS aware multiparty, multimedia
services. The authors have followed and participated in the discussion in the IETF MMUSIC WG
concerning QoS and capabilities negotiation and the on-going SDPng specification. However, in this
work a specification based on an original use of SDPng is drafted, which partially diverges from the
current status of the discussion in MMUSIC. This decision is taken for the sake of explaining the E2ENP
concepts in more concrete terms, without waiting for the SDPng specification to be finalised. Additional
SDPng inherent problem by the convergence of the E2ENP and the SDPng descriptions is, that SDPng is
too RTP-centric. This makes it difficult to introduce general QoS definitions (within SDPng) from the
application point of view, which are applicable for bigger variety of codecs and not only for the RTP
specific profile. Furthermore, the SDPng stream configuration definition is quite fix, when it comes to
describing vertical handovers and session mobility. The E2ENP specification gives some hints on how
this SDPng problems could be fixed. To this extent, the authors plan in any case to harmonise the E2ENP
specification with the final SDPng version, or even contribute to the preparation thereof, once the E2ENP
concepts have been properly reviewed after a necessary testing phase. The complete specification of the
E2ENP can be found in Annex A.
The study of the possible Enhanced Socket Service (ESI) enhancements with respect to the usage within
different operating systems (Section 2.2) leads to the definition of the service primitives for this interface.
These primitives can be mapped to functional interface calls for QoS support in popular operating
systems like Linux and Windows. ESI is a QoS supporting transport service interface independent of any
platform, QoS architecture, and transport service provider. It is used in BRENTA to enhance well-known
transport primitives by introducing primitives to give applications the ability to use the available QoS
service provider. We explained in detail how the QoS is provided in Linux and Windows OSs and
introduced different interfaces like Traffic Control of Linux (TC), ISI RAPI and GQOS that have been
proposed and implemented in these OSs to request Quantitative and Qualitative QoS. Finally the mapping
Page 141
MIND
1.2
of ESI services primitives to these functions calls are done to demonstrate the viability of a future
implementation.
Extensions to the BRAIN project have been studied and developed within MIND introducing the Ad Hoc
network features Section 2.3. Due to the spontaneous creation of these networks, their decentralised
management and fast variable topology configurations, the provision of QoS in these networks represent a
considerable challenge at each level of the end system architecture. The QoS issues have been described
and their influences on the end system have been identified.
In Chapter 3 the Domain Model has been introduced for the purpose to describe in an abstract way the
MIND access network architecture to leave out technical details irrelevant for the work presented in this
document, while still describing sufficiently and precisely the resulting MIND access network
architecture. It helps in the analysis of threats and payment relations so that suggestions for security,
accounting and billing mechanisms or the E2ENP have been expressed. In general, the DM supports a
methodological approach to reason about the relations between involved roles, and the resulting impacts
of these relations on the technical solutions shall support their interaction when interoperating.
The usage scenarios that have been described in another document [MIT02], [TOM02] guided developing
the DM as presented here to model the administrative region of a controlling object and its ability to cooperate with its surrounding. In a first stage a minimalistic view is taken resulting in the basic domain
model. It concentrates on the user devices, the access network, and the domain that holds a subscription
relation to the user. In a subsequent step this domain model is extended to cope also with the mobile Ad
Hoc networks. Based on this domain model further refinements are presented in other chapters of this
document.
Within Chapter 4, we have presented the E2ENP and showed its relations to the MIND domain model.
We have introduced the concept of Service Domain and Transport Domain and studied interactions
thereof. Refinements to the DM have been introduced with respect to their specific functionality for
negotiation signalling and reservation processing. Four possible scenarios, based on the tightness of
interactions between Transport Domain and Service Domain during call setup have been introduced and
discussed. These scenarios can serve as a basis for developing different heterogeneous scenarios in cases
of different provider architectures and for interoperability between these architectures.
Subsequently, and based on the identification of security goals, reference points and protocol stacks, a
security threat analysis and mechanisms resulting from this analysis were delineated in Chapter 5. Some
considerations around AAA infrastructure are also included. We paid much attention to the initial
description of our methodology, since a careful description of the security problem is the necessary
milestone towards a useful security mechanism.
The chapter concludes that even if they are starting to be considered through various initiatives, security
mechanisms are still lacking at addressing the whole problematic of MIND. These early activities are
promising for future projects since they prove that attention is paid to enhance MIND networks with
respect to security.
One should mention that the security analysis performed in this chapter is not suited for pure Ad Hoc
network, where participants are cut off from any upper infrastructure and, without previous knowledge
and trust among each other, decide to spontaneously create a mesh network. This issue is challenging and
requires more effort and time to be addressed.
Chapter 6 has followed a business case approach based on the value chain given in [ALEJ02]. Starting
from this, a model of the relationship among different players from the service and transport scene was
chosen. Roles of involved parties have been studied in order to identify the mechanism that drives the
associations within the entities identified in the domain model. Derived from the value chain and business
analysis, a choice for one particular model considered as the most realistic scenario for the future was
made. Because the DM developed before was based on the nomadic worker scenario it does not include
all possible cases that could be imagined. However, an abstract skeleton for Accounting and Billing
architecture has been introduced in order to give an idea about how the money flows for service and
resource consumption across different environments could be handled. Although an instance of the
architecture exemplifying the integrated scenario provided in Chapter 4 was finally introduced to light on
the abstract skeleton, this should not be shown as a restriction while other scenarios could take place in
practice.
Page 142
MIND
1.2
Finally in Chapter 7 the Work Package 6 was in charge of the deployment of a trial network infrastructure
and the demonstration of the MIND network and service concepts. The collaboration between WP6 and
WP1 has shown, that the results are looking very promising and indicate that running sensitive services,
e.g. multimedia services with the ISABEL application, in a wireless access network with mobile hosts are
indeed possible with very good quality.
Page 143
MIND
1.2
9. References
[3GPPSIP]
3GPP TS 24.228 V5.1.0, Signalling flows for the IP multimedia call control based on
SIP and SDP, Technical Specification, June 2002.
[802.1x]
IEEE Standards for Local and Metropolitan Area Networks: Port based Network
Access Control, IEEE Std 802.1X-2001, June 2001.
[ABO00]
B. Aboba, J. Arkko, D. Harrington, “Introduction to accounting management”, RFC
2975, October 2000
[ABO99]
Aboba, B. and J. Vollbrecht, “Proxy Chaining and Policy Implementation in Roaming”,
RFC 2607, June 1999
[ACVS02]
Gahng-Seop Ahn, Andrew T. Campbell, Andras Veres and Li-Hsiang Sun, Supporting
Service Differentiation for Real-Time and Best-Effort Traffic in Stateless Wireless Ad
Hoc Networks (SWAN). IEEE TRANSACTIONS ON MOBILE COMPUTING, VOL.
1, NO. 3, JULY-SEPTEMBER 2002
[ADR02]
Adrangi, F., Leung, K., Kulkarni, M., Patel, A., Zhang, Q., Lau., J. „Problem Statement
and Requirements for Mobile IPv4 Traversal Across VPN Gateways“ draft-ietfmobileip-vpn-problem-statement-00.txt (work in progress), March 2002
[ALE99]
Alexey Kuznetsov. RSVP and traffic scheduling distribution based on ISI 4.2a4 for
Linux 2.1.108. http://www.linuxgrill.com/anonymous/fire/alexey/rsvp/
[ALEJ02]
Alejandro Bascuñana, Octavian Tirla, Serge Tessier, Peter Schoo. Accounting
management in heterogeneous mobile access networks: The MIND approach. The
13TH IEEE International symposium on personal, indoor and mobile radio
communications, PIMRC 2002
[ALM98]
Almesberger, W. “Linux Traffic Control – Implementation Overview”. November 30,
1998
[ALM99]
Almesberger, W. “Differentiated Services in Linux”. June 25, 1999
[ASS02]
Assaf, N. et al., Interworking Between IP Security and Performance Enhancing Proxies
for Mobile Networks, IEEE Communication Magazine, May 2002
[ATK95]
Atkinson R., “Security Architecture for the Internet Protocol“, RFC 1825, August 1995
[AUR98]
Aurrecoechea, C., Campbell, A.T. and L. Hauw, "A Survey of QoS Architectures",
ACM/Springer Verlag Multimedia Systems Journal, Special Issue on QoS Architecture,
Vol. 6 No. 3, pg. 138-151, May 1998
[BAH02]
Bahl, P., PAWNs: Satisfying the need for ubiquitous secure connectivity and location
services, IEEE Communication Magazine, February 2002
[BCS94]
R. Braden, D. Clark, S. Shenker, Integrated Services in the Internet Architecture: an
Overview, IETF RFC 1633, June 1994.
[BD12]
BRAIN Project, Concepts for Service adaptation, scalability and QoS handling on
mobility enabled networks, Deliverable D1.2, The BRAIN project IST-1999-10050,
March 2001.
[BD22]
BRAIN Project, BRAIN architecture specifications and models, BRAIN functionality
and protocol specification, Deliverable D2.2, The BRAIN project IST-1999-10050,
March 2001.
[BEL01]
Belding-Royer, E. et al., “Global Connectivity for IPv4 Mobile Ad Hoc Networks”,
draft-royer-manet-globalv4-00.txt (work in progress), November 2001
[BER00]
Bernet, Y. “RFC2996: Format of the RSVP DCLASS Object”. IETF Network Working
Group, November 2000
[BER98]
Bernet, Y. et al. “Winsock Generic QOS Mapping. Version 3.1” Windows Networking
Group. September 1998
[BER99]
Berson, S. “RSVP Software”. March 1999, http://www.isi.edu/div7/rsvp/release.html
Page 144
MIND
1.2
[BH98]
R. Braden and D. Hoffman. “RAPI -- An RSVP Application Programming Interface.
Version 5”. IETF Internet Draft. August 11, 1998
[BOS01]
L. Bos, et al: A Framework for End-to-End User Perceived Quality of Service
Negotiation, IETF Internet-Draft, Work-in-progress,<draft-bos-mmusic-sdpqosframework-00.txt>.
[BOS02]
L. Bos, et al: SDPng extensions for Quality of service negotiation, IETF Internet-Draft,
Work-in-progress,<draft-bos-mmusic-sdpng-qos-00.txt>.
[BRA01]
IST-1999-10050 BRAIN Deliverable 1.2, “Concepts for Service adaptation, scalability
and QoS handling on mobility enabled networks”, 31.03.2001 http://www.ist-brain.org
[BRA94]
Braden, R. et al. “RFC1633: Integrated Services in the Internet Architecture - an
Overview”. IETF Network Working Group, June 1994
[BRAIN1.2]
Andreas Kassler, et al, Concepts for Service adaptation, scalability and QoS handling
on mobility enabled networks, IST-1999-10050 BRAIN, Deliverable D1.2
[BRAIN2.2]
Alberto Lopez, et al, BRAIN architecture specifications and models, BRAIN
functionality and protocol specification , IST-1999-10050 BRAIN, Deliverable D 2.2
[BZ97]
Braden, R. and L. Zhang. “RFC2209: Resource ReSerVation Protocol (RSVP) -Version 1 Message Processing Rules”. IETF Network Working Group, September
1997.
[CHEN99]
Shigang Chen. Routing Support for Providing Guaranteed End-to-End Quality-ofService. PH. D. Thesis. University of Illinois at Urbana-Champaign. USA. 1999.
[CN01]
K. Chen and K. Nahrsted. “An integrated data lookup and replication scheme in mobile
Ad Hoc networks”. Computer Science Department. University of Illinois at UrbanaChampaign.
[CON02]
Congdon, P., Aboba, B. et al., “IEEE 802.1X RADIUS Usage Guidelines”, draftcongdon-radius-8021x-20.txt (work in progress), June 2002
[CRVP01]
Chandran, Kartik et al. A Feedback-Based Scheme for Improving TCP Performance in
Ad Hoc Wireless Networks. IEEE Personal Communications. February 2001.
[DIE99]
Dierks, T., Allen, C., “The TLS Protocol Version 1.0”, RFC 2246, January 1999
[ENG02]
Engelstad, P., “Extensible Authentication Protocol over IP (EAPoIP)”, draft-engelstadpana-eap-over-ip-00.txt (work in progress), January 2002
[FEE99]
L. M. Feeney. A Taxonomy for Routing Protocols in Mobile Ad Hoc Networks. SICS
Technical Report T99/07. Swedish Institute of Computer Science. October, 1999
[GF98]
Gene Gaines and Marco Festa. “A Survey of RSVP/QoS Implementations. Update 2.”
IETF RSVP Working Group. July 1, 1998.
http://www.isi.edu/rsvp/DOCUMENTS/ietf_rsvp-qos_survey_02.txt
[GLA00]
Glass, et al, “Mobile IP AAA Requirements”, RFC 2977, October 2000
[GUE00]
T. Guenkova-Luy et al, Efficient End-to-End QoS Signalling - concepts and features,
IETF Internet-Draft, Work-in-progress, <draft-guenkova-mmusic-e2enp-sdpng-00.txt>
[GW02]
Andrea Goldsmith and Stephen Wicker. Design Challenges for Energy-Constrained Ad
Hoc Wireless Networks. IEEE Wireless Communications. August 2002.
[HAV01]
draft-haverinen-mobileip-gsmsim-02.txt
[HUB02]
Hubert B., et all. “Linux Advanced Routing & Traffic - Control HOWTO” April 4,
2002.
[INSIG]
The INSIGNIA Project of Columbia Univ., http://comet.columbia.edu/insignia/
[ISA01]
The ISABEL application. http://.isabel.dit.upm.es
[IYE02]
Adrangi, F., Iyer, P., Leung, K., Kulkarni, M., Patel, A., Zhang, Q., Lau, J. „Mobile
IPv4 Traversal Across IPsec-based VPN Gateways“ draft-adrangi-mobileip-vpntraversal-02.txt (work in progress), June 2002.
Page 145
MIND
1.2
[JIC99]
Lusheng Ji, Mary Ishibashi and M. Socott Corson. “An approach to Mobile Ad Hoc
Network Protocol Kernel Design”. IEEE Wireless Communications & Networking
Conference (WCNC). 1999.
[KAZ99]
Manthos Kazantzidis et al. "Experiments on QoS Adaptation for Improving End User
Speech Perception over Multi-hop Wireless Networks". Proceedings of QoS Mini
Conference in conjunction with IEEE ICC'99. Canada, 1999
[KKS01]
A. Kassler, C. Kücherer, A. Schrader, Adaptive Wavelet Video Filtering, in: Proceeding
of the QofIS 2001, Coimbra, Portugal, September 2001.
[KNI02]
T.J. Kniveton et al., “Mobile Router Support with Mobile IP”, draft-kniveton-mobrtr02.txt (work in progress), July 2002
[KT00]
Kapoor, Ashish and Pankaj Thakkar. Multimedia over Ad Hoc Networks. Indian
Institute of Technology. Delhi. 2000.
[KUT01]
D. Kutscher et al., “Requirements for Session Description and Capability Negotiation”,
IETF Internet-Draft, Work-in-progress, <draft-kutscher-mmusic-sdpng-req-01.txt>.
[KUT02]
D. Kutscher et al. “Session Description and Capability Negotiation”, IETF InternetDraft, Work-in-progress, <draft-ietf-mmusic-sdpng-05.txt>.
[LAZC99]
Seoung-Bum Lee, Gahng-Seop Ahn, Xiaowei Zhang and Andrew T.
Campbell"INSIGNIA",draft-ietf-manet-insignia-01.txt,Work in Progress, November
1999.
[LS01]
Liu, Jian and Suresh Singh. ATCP: TCP for Mobile Ad Hoc Networks. IEEE Journal
on Selected Areas in Comunications, Vol. 19, No. 7, July 2001
[MAN]
IETF Mobile Ad Hoc Networks Working Group.
http://www.ietf.org/html.charters/manet-charter.html
[MAR01]
W.Marshall et al., “SIP Extensions for Resource Management”, IETF draft <draft-ietfsip-manyfolks-resource-00>, November 2000.
[MAR02]
W. Marshall et al., “Integration of Resource Management and SIP - SIP Extensions for
Resource Management”, IETF SIP working group, Work-in-progress, <draft-ietf-sipmanyfolks-resource-07.txt>.
[MBJ01]
Maltz, David B. et al. Lessons from a Full-Scale Multihop Wireless Ad Hoc Network
Testbed. IEEE Personal Communications. February 2001.
[MD21]
MIND Project, MIND access network architecture, requirements, supporting multihomed terminals, Deliverable D2.1, The MIND project IST-2000-28584, 2002.
[MD22]
MIND Project, MIND protocols and mechanisms specification, simulation and
validation, Deliverable D2.2, The MIND project IST-2000-28584, 2002.
[MIC00]
“Enabling Quality of Service Windows Sockets-based Mission-Critical Applications”.
Microsoft Corporation. May 2000.
http://www.microsoft.com/windows2000/techinfo/howitworks/communications/traffic
mgmt/enablingqos.asp
[MIC00a]
Windows 2000 Network Architecture, Microsoft Corporation.
http://www.microsoft.com/windows2000/techinfo/reskit/enus/default.asp?url=/WINDOWS2000/techinfo/reskit/en-us/cnet/cnad_arc_sagr
[MIC00b]
Windows 2000 Network Architecture, Microsoft Corporation.
http://www.microsoft.com/windows2000/techinfo/reskit/enus/default.asp?url=/WINDOWS2000/techinfo/reskit/en-us/cnet/cnad_arc_sagr .
[MIC02]
Microsoft Corporation. 2002.
http://msdn.microsoft.com/library/default.asp?url=/library/enus/qos/qos/qos_documentation_structure.asp
[MIC99a]
Microsoft Windows 2000 Server - An Overview of QoS, Microsoft Corporation. 1999
[MIN61]
MIND project, Work Package 6, Deliverable 6.1: “MIND trials concepts”.
http://www.ist-mind.org/
Page 146
MIND
1.2
[MIN63]
MIND project, Work Package 6, Deliverable 6.3: “MIND Stand-alone testbeds reports”.
Http://www.ist-mind.org
[MIND1.1]
Andreas Kassler, et al, Scenarios beyond 3G, flexible service creation and business
models for an IP based broadband wireless solution, IST-2000-28584 MIND,
Deliverable D1.1
[MIS99]
P. Misra. Routing Protocols for Ad Hoc Mobile Wireless Networks. Student Report.
CIS of The Ohio State University. 1999
[MIT02]
E. Mitjana, D. Wisely, Research item: Towards scenarios and business models for the
wireless world Contribution to WWRF#5
[MST01]
Mirhakkak, M; Schult, N.; and Thomson, D. Dynamic Bandwidth
management and adaptative applications for a variable Bandwidth wireless
environmet. IEEE Journal Selected Areas in Communications, Volume:19, Issue:
10, Oct 2001.
J.Rosenberg, H.Schulzrinne: An Offer/Answer Model with SDP, IETF Internet-Draft,
Work-in-progress, <draft-ietf-mmusic-sdp-offer-answer-02.txt>
[OA02]
[OLS02]
David Olshefski et al. “TC API, Beta 1.5 - Work in Progress”. May 16, 2002.
Http://oss.software.ibm.com/developerworks/projects/tcapi
[PER97]
C. Perkins et al., “RTP Payload for Redundant Audio Data”, IETF RFC 2198, Network
Working Group, September 1997.
[PER00]
Perkins, Charles E. (Editor). Ad Hoc Networking. Addison-Wesley. USA. 2001.
[PER02]
Perkins, C., “Mobility Support for Ipv4”, FC 3220, January 2002
[PET02]
Peter Schoo, Requirements on Domain Model, IST-200028584/DoCoMo/WP1/PI/I/013/c1, WP1-DoCoMoS013-1c-PI.doc
[RAD98]
Radhakrishnan, S. “Linux - Advanced Networking Overview Version 1”. Information
and Telecommunications Technology Center. University of Kansas. August 1998
[RFC2205]
IETF RFC 2205, Resource ReSerVation Protocol (RSVP) - Version 1 Functional
Specification, R. Braden et al, Network Working Group, September 1997.
[RFC3261]
IETF RFC 3261, SIP: Session Initiation Protocol, J. Rosenberg et al, Network Working
Group, June 2002.
[RIG97]
Rigney, C., Rubens, A., Simpson, W. and S. Willens, “Remote Authentication Dial In
User Service (RADIUS)”, RFC 2138, April 1997
[RM-ODP1]
ITU-T X.901 | ISO/IEC 10746-1 ODP Reference Model Part 1. Overview,
http://www.dstc.edu.au/Research/Projects/ODP/standards.html
[RM-ODP2]
ITU-T X.902 | ISO/IEC 10746-2 ODP Reference Model Part 2. Foundations, H
Http://www.dstc.edu.au/Research/Projects/ODP/standards.html
[ROB02]
Ròbert Párhonyi, “Status of the provider based architecture (PBA arch)”, January 2002
[ROH02]
Robert Hancock, Towards a MIND Domain Model, IST-200028584/SM/WP2/PI/659/a1, WP2-SM659-1a.doc
[ROJ02]
J. Rojas et al., “Requirements for the QoS negotiation at the Application Layer”, IETF
Internet-Draft, Work-in-progress, <draft-rojas-mmusic-qosreq-00.txt>, June 2002.
[ROS01]
Rosenberg et al. “SIP: Session Initiation Protocol”, IETF RFC 3261, Standards Track,
June 2002.
[ROS02]
J.Rosenberg, H.Schulzrinne, “An Offer/Answer Model with SDP”, IETF Internet-Draft,
Work-in-progress, <draft-rosenberg-mmusic-sdp-offer-answer-00.txt>.
[ROS03]
J. Rosenberg et al., “Models for Multi Party Conferencing in SIP”, IETF SIPPING
working group, Work-in-progress, July 2001
[RT99]
E. Royer, C-K Toh. A Review of Current Routing Protocols for Ad Hoc Mobile
Wireless Networks. IEEE Personal Communications. April 1999
Page 147
MIND
1.2
[SCH01]
H. Schulzrinne et al., “RTP Profile for Audio and Video Conferences with Minimal
Control”, Columbia U., Work-in-progress, <draft-ietf-avt-profile-new-12.txt>.
[SIPRES07]
G. Camarillo et al.: Integration of Resource Management and SIP, IETF SIP working
group, Work-in-progress, <draft-ietf-sip-manyfolks-resource-07.txt>
[SUN01]
Mobile Information Device Profile (MIDP); Http://java.sun.com/products/midp
[TCng]
Traffic Control Next Generation. http://tcng.sourceforge.net/
[TES02]
Tessier, S., “Guidelines for Mobile IP and IPSec VPN Usage“, draft-tessier-mobileipipsec-00.txt (work in progress), June 2002
[TOH01]
C.-K. Toh. Maximun Battery Life Routing to Support Ubiquitos Mobile Computing in
Wireless Ad Hoc Networks. IEEE Communications Magazine. June 2001
[TOM02]
T. Robles, E. Mitjana, P. Ruiz, Usage scenarios and business opportunities for systems
beyond 3G (Paper available at IST MOBILE & WIRELESS SUMMIT2002) IST
Summit 2002 Thessaloniki, Greece, June 2002
[VM00]
Vaddi, G. and Malipatna, P. “An API for Linux QoS support”. Information and
Telecommunications Technology Center. University of Kansas. February 2000.
http://www.ittc.ukans.edu/~pramodh/courses/linux_qos/mainpage.html
[WIN01]
Windows for smart cards,
Http://www.microsoft.com/windowsce/smartcard/start/intro.asp
[XMLSIG]
Donald E. Eastlake et al, XML-Signature Syntax and Processing, W3C
Recommendation 12.02.2002
http://www.ittc.ukans.edu/~pramodh/courses/linux_qos/mainpage.html
[XSLC00]
Hannan XIAO, Winston Seah, Anthony Lo and Kee Chua. “A Flexible QoS Model for
Mobile Ad Hoc Networks” VTC2000-spring, Tokyo, 2000.
Page 148
MIND
1.2
10. Abbreviations
3GPP
3rd Generation Partnership Project
(B)AR
(BRAIN) Access Router
AAA
Authentication, Authorisation and Accounting
AAAB
Authentication, Authorisation and Accounting Broker
AAAH
AAA Home server
AAAL
AAA Local server
ACS
Admission Control Services
AN
Access Network
ANP
Auxiliary Network Provider
AODV
Ad Hoc On-Demand Distance Vector
AP
Adaptation Path
API
Application Programming Interface
AR
Access Router
ASP
Application Service Provider
ASPN
Application Service Provider Network
ATM
Asynchronous Transfer Mode
BCMP
Brain Candidate Mobility Protocol
BQ
Base QoS
BRAIN
Broadband Radio Access for IP Based Network
BRAN
Broadband Radio Access Network
BRENTA
BRain ENd Terminal Architecture
CBQ
Class Based Queue
COPS
Common Open Policy Service Protocol
CNP
Core Network Provider
CP’s
Control Plan
CP
Content Provider
CPU
Central Processing Unit
CR-LDP
Constraint-based Routed Label Distribution Protocol
CSCW
Computer Supported Cooperative Work
CSZ
Clark-Shenker-Zhank
DARPA
Defence Research Projects Agency
Dev
Device
DiffServ
Differentiated Services
DM
Domain Model
DNS
Domain Name Service
dRSVP
Dynamic Resource Reservation Protocol
DSBM
Designated Subnet Bandwidth Manager
DSCP
Differentiated Services Code Point
E2ENP
End to End Negotiation Protocol
Page 149
MIND
1.2
EAPoIP
Extensible Authentication Protocol
EAD
Extensible Authentication Protocol
ECN
Explicit Congestion Notification
ENP
Extended Network Provider
EQ
Enhanced QoS
ESI
Enhanced Socket Interface
ESL
Enhanced Service Layer
ETSI
European Telecommunication Standards Instituts
FA
Foreign Agent
FIFO
First In First Out
FQMM
Flexible Quality of Service Model for MANET
GPC
Generic Packet Classifier
GPRS
General Packet Radio Service
GQoS
Generic Quality of Service
GRED
Generalised Random Early Detection
GUI
Graphical User Interface
HA
Home Agent
HIPERLAN/2
High Performance Radio LAN, version 2
HMIP
Hierarchical Mobile IP
HTTPS
Hyper Text Transfer Protocol over Secure Socket Layer
I
Intruder
IAN
Intermediary Access Network
IEEE
Instituts of Electrical and Electronic Engineers
IETF
Internet Engineering Task Force
IM
Intermediate Components
IMEP
Internet MANET Encapsulation Protocol
INSIGNIA
IN-band SIGNalling support for QOS In mobile Ad Hoc networks
IntServ
Integrated Services
IP
Internet Protocol
ISI
Information Sciences Institute
ISSLOW
Integrated Services over SLOW links
IST
Information Society Technologies
LAN
Local Area Network
LMF
Local Management Functionality entity
LMI
Local Management Interface
LMT
Local Management Tool
LN
Leaf Network
LSP
Layered Service Provider
MAC
Medium Access Control
MANET
Mobile Ad Hoc NETworks
MIND
Mobile IP Network Developments
MIP
Mobile IP
MMUSIC WG
Multiparty Multimedia Session Control Working Group
MN
Mobile Node
Page 150
MIND
1.2
MN-(B)AR
Mobile Node-BRAIN Access Router
MPLS
Multi Protocol Label Switching
MSISDN
Mobile Subscriber ISDN Number
MTU
Maximum Transmission Unit
NP
Network Provider
OS
Operating System
PAA
PANA Authentication Agent
PAN
Personal Area Network
PANA
Protocol for carrying Authentication for Network Access
P-CSCF
Proxy - Call Session Control Function
PDA
Personal Digital Assistant
PEP
Policy Enforcement Point
PEP
Performance Enhancing Proxy
PS
Packet Scheduler
PWA
Personal Wireless Assistant
QoS
Quality of Service
QoSPS
QoS Packet Scheduler
QoSSP
QoS Service Provider
RAPI
Resource ReSerVation Protocol Application Programming Interface
RED
Random Early Detection
RES
REServation mode
RM-ODP
Reference Model of Open Distributed Processing
RNC
Radio Network Controller
RP
Reference Point
RSVP
Resource ReSerVation Protocol
RSVPD
Resource ReSerVation Protocol daemon
RSVP PATH
RSVP commando method for establishing reservation path
RSVP RESV
RSVP commando method for reservation confirmation
RSVP-TE
Resource ReserVation Protocol - Traffic Engineering
RTCP
RTP Control Protocol
RTP
Real-time Transport Protocol
S
Subscriber
SBM
Subnet Bandwidth Manager
S-CSCF
Serving - Call Session Control Function
SDP
Session Description Protocol
SDPng
Session Description Protocol new generation
SI
Sensitivity Information
SIM
Subscriber Identity Module
SIP
Session Initiation Protocol
SIP ACK
SIP session establishment acknowledgement method
SLA
Service Level Agreement
SM
Session Manager
SP
Service Provider
SPI
Service Provider Interface
Page 151
MIND
1.2
SPN
Service Provider Network
SSL
Secure Socket layer
SWAN
Stateless Wireless Ad Hoc Networks
TBF
Token Bucket Flow
TC
Traffic Control
TCP
Transmission Control Protocol
TCP/IP
Transmission Control Protocol / Internet Protocol
TDI
Transport Driver Interface
TEQL
Traffic Equaliser
TI
Traffic Information
TOS
Type of Service
U
User
UDP
User Datagram Protocol
UICC
Universal Integrated Circuit Card
UMTS
Universal Mobile Telecommunications System
UP
User Plan
USIM
Universal Subscriber Identity Module
UTRA
UMTS Terrestrial Radio Access
VASP
Value-Added Service Provider
VPN
Virtual Private Network
WAN
Wide Area Network
WG
Working Group
WIC
Wireless Interface Control
Page 152
MIND
1.2 / 0.1
11. Figures and Tables
11.1 Figures
Figure 1-1 Coverage of a QoS Framework.................................................................................................14
Figure 1-2 Architecture of the BRAIN End Terminal – BRENTA ............................................................16
Figure 2-1 The Packet Flow in the System.................................................................................................26
Figure 2-2 An Elaborate Queuing Discipline with Multiple Classes..........................................................27
Figure 2-3 Matching a Structure of Filters (each filter with a list of elements)..........................................28
Figure 2-4 The Operation of tc...................................................................................................................29
Figure 2-5 Relation of Elements of IntServ and DiffServ Architecture to Traffic Control in Linux .........30
Figure 2-6 General DiffServ Forwarding Path in a Node...........................................................................31
Figure 2-7 Micro-flow Classification in DiffServ Sources.........................................................................31
Figure 2-8 RAPI’s Implementation Model.................................................................................................33
Figure 2-9 Areas of Influence of the Windows 2000 QoS Components ....................................................35
Figure 2-10 Windows Host Protocol Stack ................................................................................................36
Figure 2-11 Detailed Architecture of GQoS...............................................................................................36
Figure 2-12 Enhanced Socket Interface and General BRENTA Architecture............................................44
Figure 2-13 Abstract Model of Confirmed and Unconfirmed Services......................................................45
Figure 2-14 Abstract Model of Notification Service ..................................................................................45
Figure 2-15 a) Fast Restoration of Reservations with INSIGNIA, b) INSIGNIA IP Option Field ............60
Figure 2-16 a) Fixed Internet Protocol Design b) MANET Protocol Design Approach .........................63
Figure 2-17 Components Subject to Extension to Adapt BRENTA to Ad Hoc network for QoS Support 65
Figure 3-1 Basic Domain Model ................................................................................................................72
Figure 3-2 Domain Model with Mobile Ad Hoc Networks........................................................................75
Figure 4-1 MIND Extended Domain Model ..............................................................................................78
Figure 4-2 The Current Internet Model in the View of the Domain Model ...............................................80
Figure 4-3 Responsibilities within a Single Provider Domain ...................................................................82
Figure 4-4 Responsibilities within Multiple Provider Domains .................................................................84
Figure 4-5 Registration and AAA Controls in a Single Service Domain ...................................................85
Page A.153
MIND
1.2 / 0.1
Figure 4-6 Registration and AAA controls in Multiple Service Domain ...................................................87
Figure 4-7 QoS Contract Validation and Negotiation at the Application Plane .........................................88
Figure 4-8 Wrong Validation by the Offerer..............................................................................................88
Figure 4-9 Wrong Validation by the Answerer ..........................................................................................89
Figure 4-10 QoS Reservation at the Transport Plane .................................................................................91
Figure 4-11 General Architecture for Applying the No Coupling Scenario...............................................92
Figure 4-12 No Coupling Scenario - Call Setup and Network Reservation are not Coupled.....................93
Figure 4-13 General Architecture for applying the Loose Coupling Scenario ...........................................94
Figure 4-14 Loose Coupling Scenario - Negotiation and Reservation Model............................................95
Figure 4-15 Call Setup for the Loosely Coupled Scenario .........................................................................96
Figure 4-16 General Architecture for applying the Tight Coupling Scenario ............................................97
Figure 4-17 Call Setup for the Tightly Integrated Scenario .......................................................................98
Figure 4-18 Tight Coupling Scenario - Negotiation and Reservation Model.............................................99
Figure 4-19 General Architecture for Applying the Integrated Scenario .................................................100
Figure 4-20 Call setup for the Integrated Scenario...................................................................................101
Figure 4-21 Integrated Scenario - Negotiation and Reservation Model ...................................................102
Figure 5-1 Different Viewpoints to Understand MIND Networks...........................................................103
Figure 5-2 Matrix of Asset Categories and Roles.....................................................................................106
Figure 5-3 Control Plane and User Plane Protocol Stacks. ......................................................................118
Figure 5-4 Control Plane Protocol Stacks at Various Reference Points ...................................................118
Figure 5-5 AAA Entities in the MIND Domain Model and Reference Point...........................................120
Figure 6-1 Information Flow in the Accounting Process .........................................................................126
Figure 6-2 MIND Basic Domain Model...................................................................................................127
Figure 6-3 MIND Basic Value Chain for the Nomadic Working Scenario..............................................128
Figure 6-4 Business Roles ........................................................................................................................129
Figure 6-5 Extended Business Domain Model.........................................................................................132
Figure 6-6 Billing and Accounting Architecture ......................................................................................134
Figure 6-7 Flow Chart in an Integrated Environment...............................................................................136
Figure 6-8 Accounting and Billing Architecture. .....................................................................................137
Page A.154
MIND
1.2 / 0.1
11.2 Tables
Table 2-1 List of the QoS Components According to its Areas of Major Influence ..................................35
Table 2-2 Mapping of Parameters from the Winsock2 QoS Flowspecs to RSVP Tspecs and Rspecs.........38
Table 2-3 List of Traffic Control Providers Implemented by Microsoft ....................................................40
Table 2-4 Mapping between Service Type and the Configuration Mode of the Packet Scheduler ............41
Table 2-5 Default Mapping Between Service Type Requested and DSCP and 802.1p mark ....................42
Table 2-6 Service Primitives of the Enhanced Socket Interface.................................................................46
Table 2-7 Parameters that Compose the ESI Flowspec..............................................................................49
Table 2-8 Mapping of ESI confirmed service primitives and violation notifications to RAPI Calls .......................49
Table 2-9 Mapping of the ESI primitives and RAPI Calls for the Release of Reservations ......................51
Table 2-10 Mapping of ESI Confirmed Service Primitives and Violation Notifications to GQoS Calls. ..52
Table 2-11 Mapping of AssignQoS Unconfirmed ESI Primitive and GQoS Calls ...............................................54
Table 2-12 Mapping of the ESI Primitives and GQoS Calls for the Release of Reservations ................................55
Table 3-1 Roles in MIND Scenarios ..........................................................................................................69
Table 3-2 Identified Roles of Participants in the Train Scenario................................................................70
Table 3-3 Map of Roles to Domains ..........................................................................................................71
Table 4-1 E2ENP Scenarios Respective the MIND AAA Components.....................................................92
Table 5-1 A Catalogue of Threats ............................................................................................................110
Table 5-2 Summary of Threats.................................................................................................................117
Table 6-1 Partners Business Relationship ................................................................................................130
Page A.155
MIND
1.2 / 0.1
12. Annex
Page A.156
MIND
1.2 / 0.1
ANNEX A – End-To-End Negotiation Protocol Specification
Table of Contents
A.1. ........................................................................................... Scope of this Annex A 5
A.2. ................................................................................................. Definition of Terms 6
A.3. ......................................................................................Use Cases for the E2ENP 10
A.3.1 The communicating parties ....................................................................................................... 10
A.3.1.1
The negotiation parties ............................................................................................. 10
A.3.1.2
Supporting parties..................................................................................................... 10
A.3.2 The connection structures and modes........................................................................................ 11
A.3.3 Some examples of communication scenarios ............................................................................ 12
A.3.3.1
One-to-one communication scenario – A session switch situation........................... 12
A.3.3.2
One-to-many communication – lecture case............................................................. 13
A.3.3.3
Many-to-many communication................................................................................. 13
A.3.3.3.1 A simple case of videoconference ......................................................................... 13
A.3.3.3.2 A complex case of videoconference ...................................................................... 14
A.3.3.3.3 Some additional aspects of the multiparty communication.................................... 15
A.4. ...................................................................................... Requirements for E2ENP 17
A.4.1 Handling of QoS........................................................................................................................ 17
A.4.2 Coping with unstable environment conditions .......................................................................... 17
A.4.3 Multimedia Applications: Time-Synchronization and QoS Correlation issues ......................... 17
A.4.4 Hierarchical QoS Specification ................................................................................................. 18
A.4.5 End-to-End Negotiation Protocol .............................................................................................. 19
A.4.5.1
Planning counteractions ahead: pre-negotiation of alternative QoS contracts.......... 19
A.4.5.1.1 Coping with Handover Scenarios .......................................................................... 20
A.4.5.1.2 Adaptation Path...................................................................................................... 21
Page A.157
MIND
1.2 / 0.1
A.4.5.1.3 QoS Context........................................................................................................... 23
A.4.5.1.4 The (re)negotiation process.................................................................................... 24
A.4.5.2
Planning counteractions ahead: distributed resource management........................... 25
A.4.5.2.1 Interaction between local, remote, and network resource reservation ................... 26
A.4.5.3
Independence from network aspects......................................................................... 28
A.4.5.4
Mapping of the quality settings on codec definitions ............................................... 29
A.4.5.5
Management of different video frame types ............................................................. 30
A.4.5.6
Resource Management Policy and its Negotiation ................................................... 30
A.4.5.7
Third-Party-Assisted Negotiation ............................................................................. 31
A.4.5.8
Consideration of possible failure conditions............................................................. 32
A.4.6 List of Requirements ................................................................................................................. 32
A.5. ................................................................................... Current Trends and Needs 36
A.6. ...................................................................... Proposed Solution for the E2ENP 37
A.6.1 Assumptions .............................................................................................................................. 37
A.6.1.1
One-to-one communication ...................................................................................... 37
A.6.1.2
One-to-many communication ................................................................................... 38
A.6.1.3
Many-to-many communication................................................................................. 38
A.6.2 The E2ENP Phases .................................................................................................................... 38
A.6.2.1
The End-to-End QoS Pre-Negotiation Phase............................................................ 39
A.6.2.2
The Multi-stream QoS Correlation and Time Synchronization Enforcement Phase 40
A.6.2.3
The End-to-End QoS Compact Negotiation Phase ................................................... 40
A.6.2.4
The End-to-End QoS Compact Re-Negotiation Phase ............................................. 41
A.6.2.4.1 Fast Vs. Structured Re-negotiation ........................................................................ 41
A.6.2.4.2 The use of spare contracts...................................................................................... 42
A.6.2.5
Resource management .............................................................................................. 42
A.6.3 The underlying model: hierarchical Finite State Machine......................................................... 42
A.6.4 The negotiation process ............................................................................................................. 43
A.6.5 Incremental Negotiations - Concept of Micro-phases ............................................................... 44
A.6.6 Protocol features to meet the requirements................................................................................ 44
Page A.158
MIND
1.2 / 0.1
A.7. .......................................................... Proposed Implementation of the E2ENP 48
A.7.1 User-Level QoS and Application-Level QoS Specification ...................................................... 48
A.7.2 Transport level QoS Specification............................................................................................. 50
A.7.2.1
The Traffic Information – TI .................................................................................... 50
A.7.2.2
The Sensitivity Information – SI .............................................................................. 51
A.7.3 E2ENP as SDPng extension ...................................................................................................... 51
A.7.3.1
Overview .................................................................................................................. 52
A.7.3.2
The <e2enp:purpose> element.......................................................................... 53
A.7.3.2.1 The <e2enp:session> element ................................................................................ 54
A.7.3.2.2 The <e2enp:use> element ................................................................................ 54
A.7.3.2.3 The <e2enp:description> element.......................................................................... 55
A.7.3.2.4 The <e2enp:caching> element ............................................................................... 56
A.7.3.2.5 The <e2enp:mediation> element............................................................................ 56
A.7.3.3
The <e2enp:alternative_service> element ................................................................ 58
A.7.3.3.1 An example for the usage of the <e2enp:alternative_service> element58
A.7.3.4
Information that users pre-negotiate among themselves on a peer-to-peer basis...... 60
A.7.3.4.1 The <e2enp:qosdef name="capabilities"> element................................................ 61
A.7.3.4.2 The <e2enp:qosdef name="contracts"> element ................................................... 63
A.7.3.5
QoS Context- and stream grouping-related information, pre-negotiated among users
on a peer-to-peer basis ...................................................................................................... 68
A.7.3.5.1 The <cfg> element............................................................................................... 69
A.7.3.5.2 The <e2enp:qoscfg> element................................................................................. 74
A.7.3.6
Enforcement of QoS correlation and time synchronization constraints at higher
levels of abstraction .......................................................................................................... 78
A.7.3.6.1 Session Level ......................................................................................................... 78
A.7.3.6.2 Application Level .................................................................................................. 79
A.7.3.7
Support for the End-to-End QoS Compact Re-Negotiation Phase ........................... 80
A.7.3.7.1 The <e2enp:enforce> element ....................................................................... 80
A.7.3.7.2 The <e2enp:block> element............................................................................ 83
A.7.3.7.3 The <e2enp:unblock> element ....................................................................... 83
Page A.159
MIND
1.2 / 0.1
A.7.3.8
Other E2ENP elements ............................................................................................. 84
A.7.4 Possible sources of failure and the ways of error recovery by the E2ENP phases .................... 84
A.7.4.1
No common profile base........................................................................................... 84
A.7.4.2
Non-expired pre-negotiated data is no longer valid.................................................. 85
A.7.4.3
The called peer does not supports all of the negotiation modes (push/pull/push-pull)86
A.7.4.4
The received message is malformed ......................................................................... 86
A.7.4.5
A third party interferes with the negotiation wishing to start a negotiation.............. 86
A.7.4.6
Components do not understand E2ENP or the version of the E2ENP...................... 87
A.7.4.7
A communication peer lies within a screened sub-network (Proxies, Firewalls) or the
network is not transparent................................................................................................. 87
A.7.5 E2ENP addressing ..................................................................................................................... 87
A.8. ...................................................................................Examples for using E2ENP 89
A.8.1 Videoconference scenarios ........................................................................................................ 89
A.8.1.1
One-to-one communication scenario ........................................................................ 90
A.8.1.1.1 Pre-Negotiation...................................................................................................... 90
A.8.1.1.2 Negotiation and resource reservation..................................................................... 98
A.8.1.1.3 Re-negotiation and resource reservation.............................................................. 111
A.8.1.2
One-to-many communication scenario ................................................................... 116
A.8.1.2.1 Pre-Negotiation.................................................................................................... 116
A.8.1.2.2 Negotiation and resource reservation................................................................... 117
A.8.1.2.3 Re-negotiation...................................................................................................... 119
A.8.2 Third-Party-Assisted Negotiation Scenario ............................................................................. 120
A.8.2.1
Pre-negotiation........................................................................................................ 121
A.8.2.2
Negotiation ............................................................................................................. 121
A.8.2.3
Re-negotiation ........................................................................................................ 122
A.8.3 Many-to-many communication scenario ................................................................................. 122
A.8.4 Some examples on failure cases .............................................................................................. 127
A.8.4.1
One-to-one communication .................................................................................... 127
A.8.4.2
One-to-many communication ................................................................................. 128
A.8.4.3
Third-party-assisted E2ENP ................................................................................... 129
Page A.160
MIND
1.2 / 0.1
A.9. ........................................................................................Security Considerations 132
A.10.
Related Work ............................................................................... 133
A.11.
Conclusions ................................................................................. 140
A.12.
References ................................................................................... 141
Page A.161
MIND
1.2 / 0.1
A.1. Scope of this Annex A
This Annex provides the technical specification of the End-to-End Negotiation protocol (E2ENP)
described in Chapter 2. The E2ENP can be used to negotiate Application level QoS, capabilities and
adaptation paths for multistream multimedia sessions. It is based on extensions to the SDPng and uses SIP
as transport mechanism. The intention is not to define a brand new protocol whatsoever; rather hereby it
is attempted to map a set of requirements (given in Chapter 2) detailing the aforementioned idea onto
existing protocols.
In particular, one should note that the negotiation of capabilities (like e.g. codecs) is hereby regarded as a
separate issue, complementary to the negotiation of user's QoS preferences and profile information.
Intelligent, adaptive applications and/or middleware can thus make effective use of any such information
negotiated end-to-end by the peers, in order to choose the best adaptation strategy in reaction to a given
QoS change/violation [BRAIN]. Furthermore, both the application and the transport level QoS are
considered as two orthogonal issues of the QoS delivery. These two dimensions are important part of the
resource reservation synchronisation and the QoS management at all abstraction levels of the QoS supply.
The concept hereby described has been originally identified in [BRAIN], together with a reference
architecture. In this document the authors elaborate on that proposal, and draw a set of requirements.
Based on such requirements, a reference solution is then proposed, namely the End-to-End Negotiation
Protocol based on SIP/SDPng technology, including detailed examples. The requirements and the
proposed solution are finally compared against the state of the art.
The authors have followed and participated to the discussion in the IETF MMUSIC WG concerning QoS
and capabilities negotiation and the on-going SDPng specification. However, in this work a specification
based on an original use of SDPng is drafted, which partially diverges from the current status of the
discussion in MMUSIC. This decision is taken for the sake of explaining the E2ENP concepts in more
concrete terms, without waiting for the SDPng specification to be finalized. To this extent, the authors
plan in any case to harmonise the E2ENP specification with the final SDPng version, or even contribute
to the preparation thereof, once the E2ENP concepts will have been properly reviewed after a necessary
testing phase.
Page A.162
MIND
1.2 / 0.1
A.2. Definition of Terms
In addition to the terms given in Section 2.1.1 here additional terms relevant for the specification of the
E2ENP in this Annex are defined.
•
Answerer
The Answerer is a participant of a signalling session (e.g. a SIP-session), which generates a response
to a proposed multimedia session description of an Offerer (see Offerer). The response contains a
description of the conditions under which the proposed session description of the Offerer can be
supported. [SDPOA00], [SDPOA02]
•
Association
A group of streams associated with a given peer. As sub-case of streams grouping, an Association
groups all the streams originating from and/or terminating on the given user's terminal device, and
connecting to a given peer within the given session. Therefore the specification of Association shall
include an identifier of the peer (e.g. a URL, a phone number, or a pair of IP-address and port
number).
•
Association or Groups Adaptation Paths
Modelled as an Adaptation Path, a configuration of alternative associations or groups, along with
their QoS Contexts and steam-level QoS Contracts, can be used for allowing applications and/or
middleware to take adaptation strategies in a pre-planned way.
•
Connection Mode
The Connection Mode refers to an actual data stream exchanged by the peers. This information is the
media (audio, video, etc.) directly perceivable by the end-user. The Connection Mode states who are
the sender and who are the receiver parties of the media streams.
•
Data Path
The network path taken by the media data (audio, video, text, etc.).
•
Economy Principle
The Economy principle dictates the order of resource reservation. As network resources are shared
and are thus more expensive as terminal resources, it is better to first reserve resources on all
terminals and then proceed with network resource reservation.
•
End-to-End QoS Pre-Negotiation
A process that end-peers can perform before the actual start of a session, and independently of the
session itself, for exchanging - in a non-obliged manner - information about configurations of QoS
specifications, deduced from their QoS profiles.
These configurations include Adaptation Paths, so that the end-peers can proactively agree on the
way to react to possible QoS changes or QoS Violations in an effective and efficient manner.
The pre-negotiation message-exchange has informational character for the end-peers, and is used not
only for informing each other ahead about the capabilities and performance possibilities applicable to
the given set of peers, but also for reaching agreements on redefining some of those configurations.
In this way, the peers are thus able to establish a common vocabulary, a priori of any specific
business.
Page A.163
MIND
1.2 / 0.1
The results of this process are scoped in time, and can be used multiple times within their validity
interval.
•
End-to-End QoS Compact Negotiation
A process that end-peers can perform either before or at the actual start of a session, in order to agree
on a given QoS level to be enforced for the given session and streams, based on results of a
previously applied End-to-End QoS Pre-Negotiation process, (assumed the validity of those results
still applies at the time this process is run).
This process is considerably faster compared to the case of the End-to-End QoS Full Negotiation,
since only references of pre-negotiated information are actually exchanged among peers.
At completion of the End-to-End QoS Compact Negotiation process, the end-peers have agreed on
the QoS profiles they are going to use for the communication.
•
End-to-End QoS Full Negotiation
A process that end-peers can perform either before or at the actual start of a session, in order to agree
on a given QoS level to enforce for the given session and streams, eventually by redefining some of
the originally proposed configurations of QoS specifications.
At completion of the End-to-End QoS Full Negotiation process, the end-peers have agreed on the
QoS profiles they are going to use for the communication.
•
End-to-End QoS Compact Re-Negotiation
A process that end-peers can trigger upon detection of either a QoS change or a QoS Violation, in
order to agree on a given QoS level to be enforced for the given session, based on results of a
previously applied End-to-End QoS Pre-Negotiation process, (assumed the validity of those results
still applies at the time this process is run).
This process is considerably faster compared to the case of the End-to-End QoS Full Re-Negotiation
one, since only references of pre-negotiated information are actually exchanged among peers.
At completion of the End-to-End QoS Compact Re-Negotiation process, the end-peers have agreed
on new QoS profiles they are going to use for the communication.
•
End-to-End QoS Full Re-Negotiation
A process that end-peers can trigger upon detection of either a QoS change or a QoS Violation, in
order to agree on a given QoS level to be enforced for the given session and streams, eventually by
redefining some of the originally proposed configurations of QoS specifications.
At completion of the End-to-End QoS Full Re-Negotiation process, the end-peers have agreed on
new QoS profiles they are going to use for the communication.
•
Flow
A flow is a set of packets passing an observation point in the network during a certain time interval.
All packets belonging to a particular flow have a set of common properties derived from the data
contained in the packet and from the packet treatment at the observation point [Quit00]. As an
example, all packets for a given flow should have the same 5-tuple (Protocol ID, Source Network
Address, Destination Network Address, Source Port Number, Destination Port Number).
Simple streams (i.e. those without multiplexed layers) and layers get mapped to flows at transport
layer, where they are used for reservation. One flow can carry one layer of a given stream, or a given
simple media stream en-bloc.
Page A.164
MIND
•
1.2 / 0.1
Group of Streams
Based on various criteria, streams can be logically grouped for enforcing some constraints. For
instance:
-
Grouping all audio streams for enforcing translation
-
Grouping all streams opened by a given user on a multi-user terminal, in order to
enforce quotas
A group may also contain only one stream.
Groups are useful for representing bundles of Streams, which QoS aware applications can handle as
a whole when trading off quality to resource availability, among a multiplicity of equivalent bundles
and within a given QoS Context. Each group is associated with a QoS Context.
•
Layer
Streams can be coded into multiple Layers, where each Layer enhances incrementally the level of
detail relative to the given base information (carried by the so-called Base Layer). This means that
adding Layers can progressively increase the level of detail of the base information. Each layer can
be mapped to a given flow.
•
Negotiation Mode
The Negotiation Mode refers to the signalling path and the negotiation information used by the peers
for exchanging information on the management and the control of the data streams. The Negotiation
Mode states who are the Offerer and who are the Answerer parties by the negotiation.
•
Offerer
The Offerer is a participant of a signalling session (e.g. a SIP-session), which generated a multimedia
session description the Offerer wishes to use by opening the multimedia session. This description is
conveyed to the Answerer (see Answerer). [SDPOA00], [SDPOA02].
•
QoS Context
An arrangement of QoS parameters that shall be enforced throughout a given set of streams. A QoS
context is a logical entity modelled as a specialization of the QoS contract concept. QoS contexts can
be recursively defined in a hierarchical scheme.
•
QoS Contract Type
Captures the structure of a class of QoS Contracts, by identifying how individual QoS Contracts
specify the QoS properties over a given set of QoS parameter types (also known as dimensions in
[Frolu98]). Each parameter type consists of a name and a domain of values. QoS specifications can
be simply intended as a set of constraints over said domains, one per parameter type.
•
QoS Specification
General term for identifying set of QoS parameters and constraints specified by a user for a given
service.
•
Session
Page A.165
MIND
1.2 / 0.1
A set of lasting connections between two or more peers (user end-devices or servers), usually
involving the exchange of many packets of “associated information” (the information of a session is
concerned with a certain topic) among the peers.
"A multimedia session is a set of multimedia senders and receivers and the data streams flowing from
senders to receivers. A multimedia conference is an example of a multimedia session." [Handl98].
Here two types of session with respect to their context are being recognized:
o Media Session – The Media Session has the context of transferring user perceivable
data between peers
o Signalling Session – The Signalling Session has the context of negotiation of media
session settings and stays in general invisible for the end-user. SIP and other signalling
protocols can be used to perform a signalling session. The Signalling session is visible
for the application and may become visible for the user only if the application requires
some user intervention or user event generation (e.g. popping up a GUI-window with
requirement to press one or another virtual button.).
Note: Some protocols (e.g. RTP - Real-time Transfer Protocol) can carry both the media data and the
media description thus performing in parallel the media transfer and the signalling.
•
Signalling Path
The network path taken by the signalling messages.
•
(Media) Stream
The continuous unidirectional exchange of information between two peers at application level.
Different types of Streams may exist: audio, video, data, text, or any combination thereof. A given
party may act as a pure stream Source (i.e. it exclusively sends out information), as a pure stream
Sink (i.e. it collects streamed information from the other party)16, or as both stream Source and
stream Sink (typical of a conversational mode)17. One stream can be mapped to one or multiple
flows.
16
A typical example is a Video on Demand service.
17
A typical example is a videoconference service.
Page A.166
MIND
1.2 / 0.1
A.3. Use Cases for the E2ENP
This section describes different possible communication scenarios, which can occur in a multimedia
environment, and which will benefit from the use of an End-to-End QoS negotiation protocol that
negotiates capabilities and application layer QoS parameters for multistream multimedia applications.
The section first introduces key definitions of the parties and the components considered for the
communication, as well as the structures that they build to form the communication architecture.
The described architectures are associated with some specific services. Different communication modes
the participants use for negotiating QoS are considered. For defining the use cases, the following aspects
are taken into account:
•
Who the communicating parties are.
•
Who initiates the connection.
•
How many the communicating parties are.
•
What kind of structure the communicating parties build.
•
What kind of connection mode (unicast/multicast) it is used.
Some examples are finally provided to show the working idea of the scenarios.
A.3.1 The communicating parties
A.3.1.1
The negotiation parties
The end-system communicating parties - Offerers and Answerers - are the active components of any endto-end negotiation. According to the definitions set forth in Section A.2, the Offerers and the Answerers
are peers.
The Offerer is the party, which starts the connection negotiation process.
The Answerers are the parties contacted by the Offerer, which the Offerer wishes to establish a
connection with.
The various parties may take in the actual communication an active role, as a sender (i.e. sending or
sending/receiving streams), or a passive role, as a receiver (i.e. receiving streams).
A.3.1.2
Supporting parties
Another type of communication party is the Intermediate Component.
These components can differ in terms of complexity to various extents and can be employed on different
levels of the network connection.
The intermediate components can be all the devices (proxies, router, etc.) and services within the network
(e.g. SIP Proxy, Naming, Allocation, Presence, etc.).
It is considered that the supporting parties for the building of the negotiation connection between two
end-peers are the out-band intermediate components.
The assumption of the E2ENP is that intermediate components take part in the negotiation process to a
limited extent, rather, they may influence some of the negotiated information before or after the
Page A.167
MIND
1.2 / 0.1
negotiation has taken place. Intermediate components in the service domain participating in the
negotiation process should only indicate, if they support a given QoS level or not. They should not change
the description itself. That is why it is necessary to consider intermediate components with respect to their
functionality and influence on the negotiated information. The problem that arises when intermediate
components change quality descriptions can be explained by the following example. Let us assume that a
mobile node A has to access networks available, UMTS and WLAN. The contract with UMTS would
allow a maximum data-rate of 128 kbps. Let us assume that A negotiates with peer B to setup a session
using MPEG-4, 25 fps, CIF size at 768 kbps and there is no restriction wrt. local resource availability (so
A and B can handle a MPEG-4 stream, at 25 fps, CIF size). If the intermediate component (a SIP proxy
with subscription information) changes the session description to allow only 128 kbps (which would
require a decrease in frame rate to 10 fps and in frame-size to QCIF), the peer B would never know that
peer A would like to setup a session using MPEG-4, 25 fps, CIF size at 768 kbps. Let us assume now, that
after the session has been established, peer A performs a handover to a corporate WLAN. It would take a
full round of negotiation to increase the quality of the already established session from MPEG-4, 10 fps,
QCIF size at 128 kbps to MPEG-4, 25 fps, CIF size at 768 kbps. If, instead, peer A would in his offer
indicate a set of alternate quality levels together with several sets of transport layer QoS parameters,
intermediate components would simply mark the QoS level they support at transport layer (in this
scenario, while connection to UMTS is established, only the 128 kbps would be marked as supported).
After a handover, peer A would only tell peer B to switch to the MPEG-4, 25 fps, CIF size at 768 kbps
because he already knows that both peers support it and that his contract with the WLAN provider does
also allow him to use 768 kbps. It is important to note, that intermediate components would not change
the values (especially not the application level QoS description) as otherwise the peers could never
establish knowledge about the quality levels that the peers could support without considering the network
as limiting factor.
A.3.2
The connection structures and modes
By establishing a connection it is important to state:
1.
The Negotiation Mode describes the sequence of exchanging capability- and QoS contract
information and which party sends first its contract. To this extent the following modes should
be differentiated:
a.
Push mode is used when an Offerer makes an offer to the Answerer about how the
connection settings should be made and declares ahead its capabilities and QoS wishes.
The push mode can be used with one-to-one telephone-like (VoIP) communication.
b.
Pull mode is used when an Offerer calls the Answerer without declaring wishes about
the connection settings. The Offerer retrieves this information from the Answerer and
adapts its wishes upon the received profile. This mode can be used for different services
like “video on demand” or by “virtual lecturing” when the central peer (“VoD-server”
or the lecturer) predefine profiles to be used.
c.
In some cases it may be necessary to use push-pull mode whenever the Offerer not
only makes an offer about the connection settings to the Answerer, but also retrieves
simultaneously the Answerer's settings.
2.
The Connection Mode - The knowledge which peer is the sender and which the receiver serves
to establish, which of the negotiation modes (push/pull) is more reasonable to use by starting a
negotiation
3.
How the connection works? (Especially in cases where there are more then one participant.)
a.
As a multicast to a group of receiver parties
b.
As a unicast to every receiving party
Page A.168
MIND
1.2 / 0.1
4.
What is the number of the communication parties? – Upon this information it can be established
which of the negotiation modes (push/pull) is more reasonable to use and in what sequence the
negotiation sub-processes would take place. The communication parties can form the following
connection structures:
a.
One-to-one – This can be a telephony case between two parties. A typical service
example here is VoIP (see example in Section A.3.3.1).
b.
One-to-many – This is the case of VoD-service or on-line lecturing (see example in
Section A.3.3.2).
c.
Many-to-many – A typical example here is the virtual conferencing (see example in
Section A.3.3.3).
A.3.3 Some examples of communication scenarios
In this section some examples to better recognize the needs of a negotiation protocol are introduced. Since
the very simple peer-to-peer (one-to-one) communication is already thoroughly discussed in the literature
[SDPOA00], [SDPOA02] the following scenarios consider some more complex communication patterns.
The scenarios describe some typical situations that may occur by dynamic communications and by multiparty connections. The influence of the mobility of devices and persons with respect to mobile networks
is shown. Some ideas of possible information dependencies and the way of describing this are introduced.
The examples show some aspects of the multiparty communication in which the usage of intermediate
components as passive communication parties may be involved.
A.3.3.1
One-to-one communication scenario – A session switch situation
This example shows the idea of how the future phone-like communication can be arranged (Figure A.1):
Figure A.1: Call Relocation
Mary receives on her internet-enabled watch a call from her friend Kate. The call carries a message
indicating “who is calling”(Caller’s identification) and “what the call is all about” (i.e. subject
information -, e.g. Kate wants to tell about her new boyfriend).
Mary’s watch cannot show the high-resolution pictures since its monitor is quite small and monochrome,
so it starts automatically to search a device, which can do that. It connects to the home central server and
finds out that Mary's profile indicates she is authorized to use a smart terminal device in her room. The
watch contacts the room device for relocating the session and informs Mary that there is a call waiting
for her at “her room”-terminal device. Therefore, Mary moves to her room to pick up the call.
Page A.169
MIND
1.2 / 0.1
Meanwhile Kate knows that Mary has accepted her call but needs some time for the relocation (this
information is forwarded by an appropriate protocol). She also knows that Mary will be able to accept
the call on a video-enabled terminal device, so that they could exchange the pictures.
Once in her room Mary can access her smart terminal device to speak with her friend.
M.: ”Hi, Kate! Well, you have a new boyfriend”
K.: ”Hi, I have also some great pictures of him” ….
Kate can finally send to Mary digital pictures and even short video clips of her preferred rock band.
This scenario relates to the case of a Personal Area Network (PAN), whereby third-party-assisted
negotiation of capabilities and QoS needs to be carried out on an end-to-end basis. This means that Mary's
terminal shall be able to negotiate on behalf of the fresh discovered smart device (proxying mechanism).
Alternatively, the negotiation process could be carried out directly by Mary's room smart terminal device
with Kate's one: in such a case, the relocation mechanism would completely hand over the new device the
complete connection establishment process (redirect mechanism).
As a sub-case of this scenario, is of course also possible that no relocation is required at all, in which case
the negotiation process could be carried out directly by Mary's terminal device with Kate's one. Such a
sub-case corresponds the very simple one-to-one communication as described in [SDPOA00],
[SDPOA02]. This case is shown on Figure A.8 together with the negotiation phases of the signalling
protocol.
A.3.3.2
One-to-many communication – lecture case
The following is a virtual lecturing scenario showing the one-to-many communication (Figure A.2):
Prof. T. Martin is in Rome attending a conference, while at that very same time he should have his usual
lecturing schedule at the university of Berlin. He has arranged with his students that he would be giving
the lecture on line, by taking advantage of a free slot in the conference schedule, and has thus announced
that the session will start at 14:00 o’clock.
To this extent, Prof. T. Martin has configured his hotel-room computer to support several different
sending profiles corresponding to the devices of his students. At 13:00 o’clock his PDA informs him that
the first students have started a negotiation for opening a connection session with his computer in his
hotel-room. Prof. T. Martin goes to his room and at 13:55 o’clock he makes a round the table check of
the participants before finally starting the lecturing session.
The lecturing connection carries identification information as being of academic importance and that is
why it is not charged for, or the charges are accounted on a university account.
Page A.170
MIND
1.2 / 0.1
Figure A.2: Virtual lecturing
This example describes the case of one-to-many communication. Such kind of communication is
equivalent also to the case of a “video on demand”-service, with the major difference that in the example
described above the transmission is live rather than pre-recorded as in the VoD case. Therefore, each
receiver in the present example will be able to receive only the same information at (nominally) the same
time.
A.3.3.3
Many-to-many communication
A.3.3.3.1
A simple case of videoconference
This example can be treated as a very simple form of a conference (Figure A.3):
Figure A.3: A simple conference example
Caroline and Martha are employees of a fashion design corporation in Los Angeles. They are working on
a joined project concerning a new collection with their French colleague Miranda. Every week the ladies
make a videoconference on the current state of the development of the collection. Caroline and Martha
send their designs to Miranda for check and approval. Since Miranda is travelling quite a lot and has not
enough time for writing nice reports for her boss, she has authorized her secretary to arrange her models
review in order to prepare a presentation for the boss. When the conference finally starts takes place
Miranda, Caroline and Martha can start exchanging audio and video content, as well as still-images and
text messages concerning the models. The secretary is listening on line writing minutes of the conference
as well as Miranda remarks.
This scenario addresses the case of information originating from different sources. This is the case of a
group of related information streams, whereby the users may require correlation among exchanged
streams (e.g. at the secretary endpoint).
Page A.171
MIND
A.3.3.3.2
1.2 / 0.1
A complex case of videoconference
The second example of communication groups is the following (Figure A.4):
Susanne Jones is making a public opened PhD pre-exam and she has invited her dad to passively
participate to her online examination session, by giving him a session connection key for joining the
examination session as a listener. She is making an on-line presentation, which is multicasted to her
supervisors and to a group of listeners. The initial arrangements of the session are made between
Susanne’s terminal and the supervisors’ terminals, since the supervisors exchange on-line notes about the
presentation, in order to be able to guide Suzanne for her real exam and to point out the positive and the
negative sides of this presentation. The remarks are written directly over the presentation pages or on a
common white board. The notes are conjoint with the running presentation and the initial arrangements
define this correspondence (correlation).
As soon as the initial arrangements are met the exam starts.
The listeners can join at a later moment since they do not interfere with the running exam as active
participants. Any of the listeners joining the session can get information on the current rating of the
presentation. Susanne’s dad terminal joins the session signing to get the presentation itself and the
ratings, which her PhD supervisors give.
The terminal makes the corresponding arrangements with the Susanne’s terminal and the terminals of the
supervisors, according to preset profiles corresponding to the wishes of Suzanne's dad, so that he joins
the presentation multicast and gets the ratings as unicasts.
For this scenario to properly operate it is necessary to have a notion of how to group the single streams
and who the interested parties for a running stream are.
In such scenarios it is important to define groups of participants and groups of streams in a session. It is
possible also that hierarchical grouping structures for communication are formed.
This scenario also shows that sometimes not only real-time traffic but also non-real-time traffic should be
treated as high priority traffic: for example, the stream of subtitles carrying live-translation of the exam
for a foreign participant, is to be considered as pseudo-real-time, insofar as if it did not pace with the
content - or did not get delivered at all - it would be of no use. In this case, the non-real-time traffic (subtitles) is associated to a given degree with the real-time one (live video).
This scenario can also apply to network games and online conferences with several working groups.
Considering the complexity of such a scenario it may or may not be necessary to make certain
prearrangements and planning of the multiparty connection.
Page A.172
MIND
1.2 / 0.1
Figure A.4: A conference example
A.3.3.3.3
Some additional aspects of the multiparty communication
The example (Figure A.5) of this section shows some aspects of the multiparty communication
considering also the usage of some services that support the discovery of the communication parties and
services and the start of the negotiation.
Figure A.5: Intermediate services
Dr. R. Harris is travelling from Frankfurt to Paris and has to take join a videoconference with his French
colleagues concerning the performance of a brain operation of a patient in Paris. His colleagues are
sending him on-line current monitoring information of the patient. They make also a discussion about the
performance of the operation in order to be able to start as soon as Dr. R. Harris arrives at the hospital
in Paris.
As Dr. R. Harris enters the train and wirelessly plugs his terminal into the train LAN. The train server is
now informed that Dr. R. Harris is present within the train LAN.
Albert Frank - one of Dr. R. Harris' assistants - gets on the train in Strasbourg. By entering the train he
also wirelessly plugs his terminal on the train LAN and thus discovers that his boss is already in the train,
in some other wagon (the train is completely booked, and therefore Albert had no chance to reserve a
seat close to Dr. R. Harris).
Page A.173
MIND
1.2 / 0.1
F. Albert issues a call to join the running conference, too. The terminals of Dr. R. Harris and A. Frank
build an ”ad hoc”-network and use the terminal of Dr. R. Harris as a connection to the “outside world”
re-transmitting the conference streams to the terminal of A. Frank.
This scenario is an example of virtual presence by using the train server as a discovery service. But it is
also possible to have some other intermediate services like Naming, Allocation, etc. services, or devices
like Proxies or Registrars. In this case the intermediate components only support the building of the
connection between the end-peers without actively participating in the negotiations that the end-peers
perform.
Page A.174
MIND
1.2 / 0.1
A.4. Requirements for E2ENP
This section first discusses the issues concerning how to handle QoS in multimedia applications dealing
with multiple type and number of streams concurrently. The key aspects of this proposal, the prenegotiation of application-level QoS and the co-ordination of distributed resource management according to the so-called “Economy Principle” - are then presented in detail.
The requirements identified in this section are collected in Section A.4.6, in a requirement list containing
also information about dependencies among the identified requirements.
"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 RFC 2119." [RFC2119]
A.4.1 Handling of QoS
This section identifies a set of general requirements concerning the handling of QoS in multiparty,
multimedia services, eventually dealing with multiple types and number of streams concurrently and the
handling process itself.
Requirement 1. The “handling of QoS” SHALL be achieved through the negotiation and enforcement of
QoS-contracts, which contain configuration and constraints information.
Requirement 2. The QoS-contract SHALL capture configuration information concerning network resources,
as well as the resources and capabilities of the involved QoS-aware end-systems.
For instance, some codecs can be differently preset to produce different perceivable QoS the user can
directly perceive: the sheer definition of codecs is thus not sufficient for determining the amount of
network resource to reserve.
Requirement 3. The QoS-contract SHALL capture user’s QoS expectations, as well as network provider
policies, in order to enable a comprehensive QoS adaptation process.
This means for example to control that the QoS-levels fit into the predefined policies, or to control the
amount of resources by up-/downgrading QoS and detection of QoS- changes/violations.
A.4.2 Coping with unstable environment conditions
The Internet has proven to be a successful architecture for delivering a broad set of electronic services
(including - among many others - telephony, electronic messaging, and audio/video services), not only to
sedentary but also to nomadic users.
Micro/macro IP mobility and wireless IP technologies in fact pave the way to the full integration of the
Internet with the 2nd and 3rd generation of mobile phone systems. In order to achieve this goal, next
generation IP networks and applications will have to address the increasingly important challenges of
wireless access, mobility management, the provision of Quality of Service (QoS), and multimedia
services.
A paramount problem that mobile users will most likely face within this context is how to cope with
limited amount resources at the end-systems and in the network, and unstable environment conditions.
Requirement 4. Developers and users of mobile and/or fixed terminals MAY deal with unstable environment
conditions, especially when enforcing QoS.
Page A.175
MIND
1.2 / 0.1
A.4.3 Multimedia Applications: Time-Synchronization and QoS Correlation
issues
Multi-media sessions may contain several streams of basic types (i.e. audio, video, and data). As an
example, one session for a given user's perspective could consist of two video streams and four audio
streams generated from different peers (or even from one peer in a surround scenario). The given user
would then wish to specify the QoS s/he wants to get for each single stream, and in addition any
parameter that might determine the inter-stream behaviour. Typically, videoconference applications deal
with voice and video streams, which must be synchronized at the end-terminal. Non-synchronized
videoconferences may not be satisfactory in some scenarios.
Additionally, some level of correlation may be required between some or all of the aforementioned
streams, on a time and/or QoS basis. This correlation constitutes a generalization of the time
synchronization problem. For instance, electronic game applications and/or media-rich interactive
applications might feature bundles of audio and video streams, which are associated with objects to be
presented to the user. For example, a moving and/or rotating cube can be displayed on a monitor with its
faces textured with images from video streams; and different audio streams, each associated with a cube
face, can be played whenever the corresponding face is oriented to a certain direction.
To this extent, applications shall be able to guarantee not only that related streams are played within given
temporal relationships (sheer time-synchronization), but also that the combined QoS of a given bundle of
streams lies within some given constraints (QoS correlation). For instance, just continuing the game
application example, it might make no sense to have some facets of the cube being displayed in black and
white videos, and the others as high quality colour videos at higher frame rates, even though the images
were completely synchronized from a sheer temporal perspective. It would rather make more sense to
display all facets displaying black and white movies at the highest available frame rate, thus avoiding the
pointless consumption of resources to get colour images to the detriment of the frame rate at which said
images would be displayed.
Of course the decision of what level of correlation should be enforced at QoS level among a set of
streams is left to the developers' and even to the user's discretion.
Therefore multi-stream applications may require in addition to the specification of timing relationships
among groups of streams, also a specification of QoS correlation. Actually this distinction is not
completely identifying two orthogonal aspects, since time-synchronization can be regarded as a special
case of QoS correlation. In the case that a given media stream is composed of a number of distinct
transport layer flows (e.g. as generated by multi-layered codecs), these issues are even more obvious.
Requirement 5. Developers and users of multimedia applications dealing with multiple streams MAY
augment their QoS specifications by including QoS correlation and time-synchronization
aspects.
A.4.4 Hierarchical QoS Specification
One should note that the bundling of streams is not only application- or user- dependent, but it can also be
structured according to a hierarchical scheme.
For instance, in videoconference applications it can make sense to distinguish (and therefore treat
differently) different groups of streams, so as to identify multiple concurrent instances of the
videoconference and, within each videoconference session, the various associations of the given user with
multiple peers (each association being a bundle of correlated streams).
This proposal thus models multi-stream Time Synchronization and QoS Correlation constraints as highlevel QoS Contracts, associated with the list of the affected streams. Furthermore, it allows recursively
bundling such high-level QoS Contracts among themselves, thus leading to a hierarchical QoS
Specification scheme, i.e. equivalent to a tree. Each such leaf represents a stream and has a QoS Contract
associated. Parent node are associated with a high-level QoS Contract, specifying for their children QoS
levels in terms of multi-stream, Time Synchronization and QoS Correlation constraints.
Page A.176
MIND
1.2 / 0.1
Furthermore, users may prioritise and grant different amounts of resources to various (multimedia)
applications. This is especially important for handheld devices with limited resources, like memory,
battery-power [BRAIN]. This approach leads to even higher-level Time Synchronization and QoS
Correlation constraints, which are to be enforced locally by the terminal device. The corresponding highlevel QoS Contracts extend the tree data model at the root. Such additional high-level QoS Contracts are
however not meant to be negotiated with peers. Rather, each peer can enforce high-level QoS Contracts
independently. Alternatively, high-level QoS Contracts can be enforced globally throughout a given
closed set of peers, once a coordinator has been selected.
Requirement 6.
Developers and users of multimedia applications dealing with multiple streams MAY
advantageously structure their QoS specifications in a hierarchical manner.
A.4.5 End-to-End Negotiation Protocol
A possible way to cope with QoS violations and QoS changes is to enable the mobile users' applications
to efficiently and timely react to those events, by planning counteractions ahead.
In this manner, whenever QoS violations occur, agreements on how to most effectively adapt to the
mutated conditions can be timely reached among the peers.
The overall solution combining these two planning mechanisms is hereby-called End-to-End Negotiation
Protocol (E2ENP).
Requirement 7.
A.4.5.1
The E2ENP SHALL include mechanisms and means for planning ahead proper
counteractions, coping with otherwise unpredictable events resulting from QoS violations
(e.g. handovers) or QoS changes (e.g. user changing profile information when roaming).
Planning counteractions ahead: pre-negotiation of alternative QoS contracts
The hierarchical QoS specification can be enhanced for helping peers deciding how they should react
during overload situations, in order to be compliant with the users' preferences.
Requirement 8.
The E2ENP SHALL include mechanisms and means for quickly and efficiently performing
QoS negotiations and QoS re-negotiations.
The idea is to plan ahead a set of QoS contracts, so as to cope with current and future resource
availability.
Requirement 9.
The E2ENP SHALL include mechanisms and means for specifying and negotiating
multiple alternative QoS levels.
Requirement 10. Each QoS level SHALL be described by a specific QoS contract.
Since the user expresses his/her QoS preferences through the means offered by an application, it is up to a
QoS aware application to express the user perceivable QoS in an appropriate manner. With this respect it
is considered that the User Level QoS specification is an application-specific issue, which depends on
user interface aspects. With respect to the building and negotiation of QoS contracts between end-peers the Application Level QoS - a system internal representation (e.g. XML description) derived from UserLevel QoS specification is used. In these terms, QoS contracts are intended in the rest of this document as
Application Level QoS contracts.
Requirement 11. Bid QoS contracts SHALL describe Application Level QoS from receiver’s perspective.
QoS information derives from the knowledge of available resources. Since any given user-perceivable
quality may be achieved by using different resources (e.g. codecs), it is necessary to gather information
about resources in order to be able to create QoS contracts. Furthermore, information about resources is
also used for carrying out resource reservations.
Page A.177
MIND
1.2 / 0.1
Requirement 12. The E2ENP MUST derive QoS information (peer, local, network supportable QoS) from
knowledge about available resources.
The elements of a negotiated set of QoS contracts can be efficiently referenced during QoS renegotiations, by associating each element with a unique identifier.
Requirement 13. The E2ENP SHALL include mechanisms and means for uniquely referencing each QoS
contract during QoS negotiations and QoS re-negotiations, in order to keep signalling
minimal.
Special features of the end-applications and services may require different signalling sequences for
exchanging capability and QoS contract information among peers. The following modes are envisioned:
o
Push mode: used when an Offerer sends a bid to the Answerer. The Answerer selects a subset thereof
and sends back a counter-proposal. This mode (equivalent to the “offer-answer” model in
[SDPOA00], [SDPOA02]) can be used for instance in one-to-one VoIP services.
o
Pull mode: used when an Offerer calls the Answerer without sending any bid. The Offerer retrieves a
bid from the Answerer and selects a subset thereof. This mode (equivalent to the use of the
DESCRIBE method in [SRL98]) can be used for instance in “video on demand” services. Common
scenario is also described in the Offer/Answer enhancement with provisional acknowledgements
[100rel06].
o
Push-pull mode is used whenever the Offerer not only sends a bid to the Answerer, but also retrieves
simultaneously the Answerer's information. This information might be a counter-proposal (e.g. the
“offer/counter-proposal/answer” model in [Bos02] – this model considers a three way SIP message
exchange, e.g. INVITE, 200OK, ACK with different SDPng bodies) and/or an additional bid
concerning the streams that the Answerer wishes to receive from the Offerer. Common scenario is
also described in the Offer/Answer enhancement with provisional acknowledgements [100rel06].
Requirement 14. The E2ENP SHALL include mechanisms and means for enforcing various negotiation
modes (push, pull, push-pull), since services may require different negotiation schemes.
Since the changing conditions (e.g. handovers) may occur in an unpredictable manner, in order to achieve
efficiency it is necessary that any of the peers discovering a change might immediately trigger an
adaptation process and inform the other peers, irrespectively of its role in the communication process.
This means that peers should apply symmetrically the E2ENP signalling protocol.
Requirement 15. The E2ENP SHALL be symmetrical with respect to QoS re-negotiation signalling.
If E2ENP is expressed by the means of SIP [SIPBIS09], [RFC3261] , the SIP INVITE method used in a
SIP dialog can be utilized for such symmetrical signalling.
Failure cases of the protocol also constitute an important example of symmetry.
Requirement 16. The E2ENP SHOULD be able to offer the same possibility to signal both internal and
external failure conditions, exceptions, and errors occurring by any of the peers involved in
the E2ENP signalling.
Requirement 17. The E2ENP SHOULD offer mechanisms for error recovery.
A.4.5.1.1
Coping with Handover Scenarios
Mobile users must be prepared to experience dramatic QoS violations whenever handovers occur, but also
to advantageously leverage any potential improvement, whenever during such handovers the users access
networks with more resources and/or less restrictions.
Page A.178
MIND
1.2 / 0.1
Given that users typically have business relationships with a specific network provider (e.g. a subscription
with an ISP or a prepaid card with a Telecom operator), three possible types of handover may occur:
•
Horizontal Handover: the handover takes place within a given administrative domain of a network
provider, and within the same type of access network.
•
Vertical Handover:
the handover takes place between two different types of access networks
and/or across the administrative boundary between two network providers.
When dealing with handovers, users must be prepared to face changes in network resource availability,
depending not only on the type of access network accessed, but also on the type of business relationships
the users may have with the various network operators accessed. In some extreme cases, the users might
try in fact to access the network owned by a network operator, with which the users have no business
relationship at all, or which can restrict users' access or limit the amount of resources allotted to said
users. Pricing aspects also play a key role.
All this means that the users must be prepared to experience dramatic QoS Violations whenever
handovers occur, but also to advantageously leverage any potential improvement, whenever during such
handovers the users access networks with more resources and/or less restrictions.
The E2ENP assumes that the validation process for the contracts is preventively enforced by other means,
therefore the E2ENP uses already validated contracts.
Requirement 18. The E2ENP SHALL assume that users will have preventively validated their preferred set
of QoS contracts against what their preferred access network provider can actually support.
A.4.5.1.2
Adaptation Path
Following the rationale set forth in the previous paragraph, peers could manage to agree not only on a
given QoS Contract, but also on alternative ones, which can be advantageously used whenever the
network and/or terminal resource availability changes over time.
In such a way, each peer would exactly know which alternative QoS Contract (and under what
conditions) shall be enforced, in order to cope with a critical QoS Change or with any QoS Violation with
respect to the currently enabled QoS Contract. In addition, transport layer QoS parameters could be part
of a single application layer QoS Contract.
The concept of Adaptation Path prescribes the specification of alternative QoS Contracts in addition to
the nominal one, along with a set of rules indicating which alternative QoS contract should be enforced
upon which circumstance.
The alternative QoS Contracts typically describe lower levels of QoS compared to the one specified by
the nominal QoS Contract. More specifically, adaptation policies will identify well-defined adaptations of
the nominal QoS Contract to a set of alternate degraded QoS specification (i.e. lower levels of QoS), in
correspondence to well-defined sets of QoS changes and/or violations, as monitored by the overall
middleware [Loyal].
In this writing, it is preferred to follow the terminology indicated in [BRAIN], whereby Adaptation Path
(AP) is used instead of Degradation Path, in order to highlight that adaptation could actually be used also
to upgrade a given quality, should more resources become available at a later time (e.g. in the case of
hand-over).
The concept of Adaptation Path enriches the notion of alternative QoS contracts, by identifying a default
QoS contract and a set of rules indicating which alternative QoS contract should be enforced upon which
circumstance.
Page A.179
MIND
1.2 / 0.1
The alternative QoS contracts typically describe lower QoS levels compared to the default one.
Adaptation policies identify well-defined adaptation steps from the currently enforced QoS level to one of
the alternate QoS levels, in correspondence to well-defined QoS violations.
Requirement 19. The E2ENP SHALL allow users negotiating Adaptation Paths (AP).
Requirement 20. Each element of an AP SHALL be a prioritised, uniquely-identifiable QoS contract.
Requirement 21. Each AP SHALL define a default QoS contract that SHALL be enforced when starting
streaming.
Requirement 22. An AP COULD include the specification of rules defining the circumstances under which
different QoS contract, out of the given AP, shall be enforced.
A.4.5.1.2.1
Stream Adaptation Path
Requirement 23. The E2ENP SHALL include mechanisms and means for specifying APs at stream level.
A.4.5.1.2.2
Group Adaptation Path
By applying the AP at any level of the aforementioned hierarchical QoS specification, the adaptation
process can be further improved by including both time-synchronization and QoS correlation
specifications.
In this model, each alternative time-synchronization and QoS correlation specification is associated with a
specific QoS Contract.
The use of alternative QoS Contracts structured in a hierarchical format so as to capture various
correlation aspects, allows in fact peers agreeing a priori (at pre-negotiation time) on a common,
structured "QoS vocabulary", without requiring the intervention of the network provider during the prenegotiation process.
To this extent, peers may advantageously use profile information pre-negotiated with network providers
at subscription time18, whenever participating to the End-to-End pre-negotiation process.
The enforcing of QoS correlation and/or time synchronization constraints implies the logical grouping of
streams, based on various criteria. For instance:
•
grouping all audio streams for enforcing synchronized translation;
•
grouping all streams opened by a given user on a multi-user terminal, in order to enforce quotas.
A group of stream could eventually contain just one stream: in such a case, the basic stream QoS Contract
would simply be augmented with higher-level (e.g. application specific) QoS constraints.
Groups are mainly useful for representing bundles of streams, which QoS aware applications can handle
as a whole when trading off quality to resource availability, among a multiplicity of equivalent bundles in
a given set of environmental conditions.
To this extent, peers can proactively agree not only on the AP of each individual stream, but also on
alternative compositions of the given whole bundle, along with specific QoS correlation and/or time
synchronization constraints for each of the resulting configurations.
18
In case of roaming, network providers could make provisions (via Service Level Agreements) that the users' profile
information still holds (entirely or partly) when the users visit a new network domain.
Page A.180
MIND
1.2 / 0.1
Consequently, the applications (and/or middleware) will be able to adapt to given QoS changes and/or
violations, based on predefined rules, dictating which streams should be adapted19, and which new QoS
correlation and/or time synchronization constraints should be enforced in the new situation.
Requirement 24. The E2ENP SHALL allow end-peers negotiating Group APs, expressed in terms of
alternative configurations of a given group of streams.
A.4.5.1.2.3
NULL-Stream
It is also reasonable to define a “NULL”-stream20 QoS Contract for taking into account, during the
adaptation process, the possibility that in critical situations some of the streams of a group might be no
longer supported. In this way, one can prevent the complete re-negotiation of the QoS settings of the
whole group of streams, thus leaving those streams within the group running, for which the boundary
conditions are still valid. The definition of the boundary conditions is application specific and depends on
the context of the session. In general the application of the NULL-stream within a group should not affect
the context of the session. This means that the still running streams of a stream-group within a session
should be meaningful enough for the end-parties to keep the stream-group upright and not cancel it and
re-negotiate it anew. Thus the application of the “NULL”-stream is just a tool for avoidance of full renegotiations and serves the meaningful adaptation of a stream-group.
For example, let us consider the case of a group of stream containing an audio and a video stream. The
corresponding Group AP may then include an option, whereby the video-stream is associated with a
“NULL”-stream QoS Contract, in order to account for the occurrences of marginal conditions like
dropping of the bandwidth under a given threshold. In such a case the video stream would be stopped but
the audio would continue being streamed.
Requirement 25. The E2ENP SHOULD allow end-peers negotiating NULL-stream QoS contracts in Group
APs.
Requirement 26. The application of the “NULL”-stream MUST NOT affect the context of the running
session.
The consideration for starting and stopping streams explicitly over the negotiation protocol is also
mentioned in [Even00]. Thus it is possible to control the media encoding/decoding utility at a peer even
without having in-band RTCP signalling.
A.4.5.1.2.4
Association Adaptation Path
The association is a particular type of stream grouping, associating all of the streams between the given
user and a given peer. This form of grouping is the most intuitive one and probably the most used one.
Requirement 27. The E2ENP SHALL allow end-peers negotiating APs for Associations of streams.
19
Including actions like stopping or restarting a stream.
20
The idea behind the NULL-stream is to allow end-peers implicitly triggering a "PAUSE-STREAM" command due
to a detected QoS violation/change. By saving information about the negotiated QoS levels before the pause
occurred, one could use such information for correctly and quickly renegotiating QoS at a later time, should the QoS
violation/change condition do not exist any more.
For instance, let us assume that Mary is watching video clips on her mobile device, and that she has indicated in her
user profile that, should the connection quality decrease, she would prefer to pause the video streaming so as to save
resources for listening to the musical score. During a handover, a QoS violation occurs and the device consequently
signals the VoD-server to pause the video stream. The VoD-server pauses the video streaming and saves prenegotiated QoS information, in order to be able to resume the stream as soon as the handover is completed, according
to the pre-negotiated QoS (including time synchronization issues with respect to the audio stream). Mary's device
also has to remember the existence of the video stream in order not to full-renegotiate QoS for it anew, when
resuming it.
Page A.181
MIND
A.4.5.1.3
1.2 / 0.1
QoS Context
A QoS Context identifies an arrangement of QoS parameters that shall be enforced throughout a given
group of streams. A QoS Context is a logical entity modelled as a specialization of the QoS Contract
concept.
This means that whatever the QoS specification of individual streams might be, the QoS Context forces a
set of QoS constraints to be applied to all of the streams belonging to the given group.
QoS Contexts can also capture those QoS parameters derived from the QoS Contracts of the individual
streams belonging to the groups associated with the given QoS Contexts [ISOX641]. Examples are the
total amount of memory or the average bandwidth used by the given set of streams.
To sum up, QoS Contexts deal stream grouping, QoS correlation, and time-synchronization issues,
focusing more precisely on the specification of:
•
common QoS level for a group of streams;
•
derived QoS parameters;
•
QoS parameters indirectly affecting QoS specifications of bundled streams.
Of course, the decision about what level of QoS correlation and/or time synchronization should be
enforced among a group of streams, may be taken not only by the developer but also by the user.
Requirement 28. The E2ENP SHALL allow end-peers negotiating QoS Contexts.
A.4.5.1.3.1
QoS Context Hierarchy
According to the aforementioned hierarchical model, tree-based hierarchies of QoS contexts may be
defined: QoS Contexts can be recursively defined out of other lower-level ones.
The leaves of any such tree data structure would then be represented by the Stream APs: associated with
the individual streams belonging to a given group of streams.
Any internal node of any such tree data structure would instead be represented by a QoS Context, which
indirectly affects the QoS specification of all the streams, belonging to the sub-tree rooting from that
internal node. This means that QoS Contexts can thus address specific QoS parameters that indirectly
affect all of the underlying streams (e.g. system-level reliability issues).
Furthermore, at higher level in any such tree data structure, QoS Contexts can be recursively defined out
of other lower-level ones.
In this way, any such tree data structure may be used for aggregating not only individual streams, but also
a multiplicity of already defined group of streams, based on QoS correlation, and time-synchronization
criteria.
Requirement 29. The E2ENP SHALL allow end-peers negotiating QoS Contexts associated with
aggregations of streams at various levels of abstraction.
Each QoS Context can be assigned a priority, which QoS aware applications can use to determine the
relative importance of sibling QoS Contexts.
Requirement 30. The E2ENP SHALL allow end-peers negotiating relative priorities among those QoS
Contexts, which happen to be siblings in a given tree-based hierarchy of QoS Contexts.
Page A.182
MIND
A.4.5.1.3.2
1.2 / 0.1
Specification of Group Adaptation Paths in terms of QoS Contexts
By leveraging the concepts of QoS Context and hierarchical QoS specification, peers may enforce the
aforementioned concept of Group AP (GAP).
Of course the enforcing of QoS correlation and time-synchronization constraints is possible only when
the peers involved in the negotiation process agree a priori on a given business (which application to use,
whom to contact, which other sessions are to be opened etc.).
Practically, in most of the cases users enforce these constraints locally and do not disclose this
information to their peers. The only case where these constraints may be enforced throughout a given set
of peers is only when third party control units, like a Conference Control Unit, are provided (typically in
the case of online conference scenarios).
Requirement 31. The E2ENP SHALL allow end-peers negotiating uniquely-identifiable QoS Contexts, each
associated with a specific element of a Group AP (GAP).
Requirement 32. Each GAP SHALL define a default QoS Context that SHALL be enforced when starting
streaming.
A.4.5.1.4
The (re)negotiation process
The (re)negotiation process typically involves an Offerer and one or multiple Answerers, and can be
performed in one shot or on an iterative basis [Loyal].
The Offerer offers a bid to the Answerers, who examine it and return a counter-offer to the Offerer. The
latter collects the counter-offers and determines the one (if any), which satisfies the requirements of all
the involved parties. Once such optimal counter-offer has been sorted out, the Offerer sends it as a new
bid to each Answerer.
In an iterative scheme, the process could at this point restart, should one of the Answerer still do not
accept the new bid. The iterative approach must however be constrained with an upper limit of iteration,
and it is in any case quite complex and not efficient.
The re-negotiation by the multiparty connection scenarios should be made by possibility on a single basis
like by the one-to-one re-negotiation, since the occurrence of changes by a single communication party
might not influence the connections of the other parties involved, i.e. if a peer discovers problems by its
connection this does not mean that other peers also have problems with their connections. Therefore by
multiparty connections it is better to re-negotiate the independent streams on a single basis, in order
minimize the necessary signalling. The streams of a group (dependant streams) may also be re-negotiated
on a single basis in case this re-negotiation does not influence the contexts of the group.
Requirement 33. The E2ENP SHALL enforce basic, non-iterative pre-negotiation, negotiation, and renegotiation schemes.
Requirement 34. The E2ENP MAY allow more complex negotiation schemes only by employing third-party
control units (e.g. Conference Control Units).
Requirement 35. In general the E2ENP SHOULD be used for performing negotiations and re-negotiations
only between the end-peers involved in a session. Should this requirement be not
applicable due to service specific reasons, the previous requirement would take
precedence..
Requirement 36. By complex negotiation scenarios (e.g. conference like) the end-peers engaged in a E2ENP
process MAY publish the already pre-negotiated QoS Contracts and user profile
information in some registration services thus allowing a short negotiation process for the
later joining parties.
Page A.183
MIND
1.2 / 0.1
Requirement 37. It SHOULD be possible to re-negotiate a single stream of a group, if this is not
contradictory with the context of the group, in order to minimize the signalling for the renegotiation.
Requirement 38. In case a stream is being correlated with other streams, it SHOULD be the responsibility of
the correlating party to perform re-negotiation with all affected parties.
A.4.5.1.4.1
The role of senders/receivers
The negotiation rationale hereby proposed is to allow the receivers specifying what QoS level they want
to receive.
The difference between this proposal and current trends (e.g. SDP/SDPng) consists in that the latter do
not focus primarily on QoS negotiation, rather on capability negotiation. For instance, both SDP and
SDPng allow a sender giving information to the receiver(s) about format and transport information that
the sender intends to use for sending.
Trying to match E2ENP with this well-known approach, the aforementioned rationale can be relaxed as
follows: both senders and receivers can specify what QoS level they want to send/receive at stream level,
but only receivers are allowed to specify what APs/high-level QoS level they want to enforce for
receiving. This because is more likely that the receivers do care of QoS correlation and time
synchronization constraints among multiple received streams, whereas this is not generally of relevance
for senders.
Requirement 39. The E2ENP SHALL allow both senders, receivers, and sender/receivers specifying what
QoS level they want to send/receive at stream level.
Requirement 40. The E2ENP SHALL allow only receivers and sender/receivers specifying what Group APs
/ QoS Contexts they want to enforce.
However, the extension of this proposal to allow senders specifying QoS correlation and time
synchronization constraints among the streams they send is left for further study.
A.4.5.2
Planning counteractions ahead: distributed resource management
Peers can follow a specific procedure for effectively enforcing the negotiated QoS specification, not only
at connection establishment time, but also whenever QoS violations take place.
To this extent, [BRAIN] suggests to coordinate the actual reservation of local resources as well as
network resources, in order to avoid waiting for network resource reservation until the resources at all the
end-points are reserved. More precisely, the term economy principle is used in the present document to
describe the order of reservation described in [Nahr95].
Therefore it is proposed to integrate the aforementioned QoS pre-negotiation, QoS negotiation, and QoS
re-negotiation processes, with the economy principle: the idea is to reserve the more expensive resources
at the last step. As network resources are shared among several clients and typically one has to pay for
them, it is better to first reserve resources on all end-systems and then resource network resources as the
last step.
The sequence of actions looks then like the following:
1.
First, local resources are reserved.
2.
Then negotiation with the peer entity leads to a configuration that can be mapped to resource
requirements at the peer, which are then reserved.
3.
Finally, reservation of network resources is done in the last step, because network resources are
expensive and shared among multiple users.
Page A.184
MIND
1.2 / 0.1
Requirement 41. The E2ENP SHALL provide mechanisms and means for enforcing the co-ordination of
distributed resource management.
Requirement 42. According to the "Economy Principle", remote resources at the peer SHALL be reserved
only after local resources have been successfully reserved.
Requirement 43. According to the "Economy Principle", network resources SHALL be reserved only after
local resources have been successfully reserved at all peers.
Sometimes it is not necessary to perform network resource reservation, because of the fact that the access
network can be over-provisioned (e.g. LAN). The negotiation process on the other hand needs at least
fake execution of the reservation coordination to synchronize the reservation process at the negotiating
parties in cases that not all the negotiating peers belong to an over-provisioned network. The resource
reservation coordination process for the E2ENP can thus utilize the mechanisms described in
[SIPRES07] in order to be able to cope with the network reservation coordination in cases of overprovisioned networks. By the negotiation process a QoS precondition can be set for informing the
negotiation partner/-s of the necessity of performing network reservations.
Although E2ENP claims explicitly that the Economy Principle is required always, the application of
[SIPRES07] is a desired concept allowing both end-to-end and segmented reservations. In the latter case,
enforcing the Economy Principle might be not always desirable. In fact there might be in situations where
reservation can be as well done locally on beforehand with no cost/major impact on session
establishment. For instance, some users might be attached to an intranet or wireless LAN, where network
resource reservation might be free and starving other users might be flexibly handled. Therefore the
original E2ENP shall accommodate this case and rely on the applicability of the Economy Principle to
allow the aforementioned case.
One should though note that the E2ENP does not imply that a direct interface to reservation entities is
available: it is up to the applications/QoS Broker to access those entities. If the latter wishes to do a "prereservation" of network resources, it might well do that, but the E2ENP signalling would still give the
right timing to the applications/QoS Broker, informing it when the reservations at all sides have been
accomplished, according to the Economy Principle: which signal the users the exact moment they have
finally reached the level of QoS desired (even though best effort communications might well have been
started on beforehand, should the applications/QoS Broker specify so).
A.4.5.2.1
Interaction between local, remote, and network resource reservation
In order to properly coordinate local, peer, and network resource reservation according to the
aforementioned "Economy Principle" between more than two peers, special care must be taken while
specifying the corresponding protocol, in order to provide consistency (which also leads to better resource
utilization) and avoid deadlocks. Consistency will lead also to better resource utilization.
The rest of this section presents two example scenarios, motivating these requirements.
A description of the general prerequisites applying to the example scenarios is given first. These
prerequisites illustrate the problem domain. However, they do not limit the applicability of the scenario.
A.4.5.2.1.1
Prerequisites of the Example Scenarios
Assume there are three equivalent terminal devices, each equipped with the same video codec. The
processing power of the terminal devices is such that each of them is able to manage 25 frames per
second for either sending or receiving.
That is, the CPU power allows to either process 25 fps in the transmitting mode (capture, compress,
packetise and send) or in the receiving mode (receive the packets, re-assemble, decompress and render).
However, the terminal has not enough resources to simultaneously send and receive 25 fps.
Page A.185
MIND
1.2 / 0.1
Also, it is assumed, that the resource consumption scales linearly with the number of frames per second.
As an example, the terminal devices may simultaneously send a stream at 10 fps and receive a different
stream at 15 fps so as to process 25 fps in total.
A.4.5.2.1.2
Scenario 1: consistency
This scenario shows why it is necessary to provide consistency.
Let us assume that at time t0 peer A initiates a negotiation with peer B for managing peer A sending a
stream to peer B at a frame rate of 15 fps (see Figure A.6).
Figure A.6: Consistency example
Peer A successfully reserves local resources for processing 15 fps, sends the negotiation request to peer
B, which already has a ongoing similar session that consumes 20 fps with a different peer. Thus peer B
reserves resources for 5 fps for processing the incoming stream because that is all it can support. This
information is propagated back to peer A, which releases previously reserved resources for sustaining the
negotiated frame rate value of 5 fps, and then starts reserving network resources equivalent to 5 fps at
time t1.
Assume that the network is not the limiting factor and finally peer A, peer B, and the network are able to
sustain 5 fps for the given session.
If at any point between t0 and t1 peer C wants to create a session with peer A, peer A would only be able
to allow peer C to admit 10 fps (=25 fps - 15 fps) locally.
However, if peer A receives the request from peer C at any point in time after t1, peer A would be able to
admit at least 20 fps (=25 fps - 5 fps) for the new session with peer C, because the resource requirements
for the first session have dropped due to constraints imposed on peer B, which are outside the control of
peer C.
From this scenario the requirement is derived, that any such protocol that manages local, remote, and
network resources between two peers shall not serve requests for resource requirements from another
peer, until the protocol has succeeded in establishing an on-going communication session. This
requirement is denoted as consistency.
Page A.186
MIND
1.2 / 0.1
Requirement 44. The E2ENP SHALL enforce a consistent application of the “Economy Principle” among
multiple peers.
A.4.5.2.1.3
Scenario 2: avoidance of deadlocks
This scenario shows why it is necessary to avoid deadlocks, i.e. why the ENEP must assure that there is
no Hold-and-Wait condition or that such a condition may be present only for a limited amount of time.
Let us assume that peer A wants to send a video stream at 25 fps to peer B and vice versa (see Figure
A.7).
Figure A.7: Deadlock example
At time t0, peer A reserves the local resources, and sends the negotiation request to peer B, which receives
this request at time t2. Meanwhile, peer B reserves the resources at time t1 for sending a stream to peer A.
Peer A receives this request at time t3.
Therefore, peer A waits for the response from peer B starting from time t0, whereas peer B waits for the
response from peer A starting from time t1. As a consequence, when both peers try to reserve their local
resources at time t2 (peer B) and time t3 (peer A) for serving the remote requests, they will both fail.
From this scenario, the requirement follows, that any protocol that manages local, remote and network
resources between two peers shall avoid deadlock situations or at least allow them to occur only for a
limited amount of time, after which the protocol shall be able to recover in any case.
Requirement 45. The E2ENP MUST ensure that at any given time the application of the “Economy
Principle” does not lead to deadlock conditions.
Requirement 46. The E2ENP MUST ensure that recovery mechanisms are put in place in order to cope with
possible colliding applications of the “Economy Principle”.
Page A.187
MIND
A.4.5.3
1.2 / 0.1
Independence from network aspects
The end-peers are in general connected over one or a multiplicity of interconnected networks, including
different intermediate components.
Requirement 47. The E2ENP SHOULD operate based on an abstraction of the underlying network.
Intermediate components offer services that not only may influence the information that peers eventually
negotiate via e2enp at later time, but also may enforce the results of the e2enp process. For example,
some specialized SIP proxies would be able to reserve network resources on behalf of the peers.
Intermediate components SHOULD be informed about the decision taken by the end-peers. The way of
informing intermediate components MAY be by supporting them with some standard-profile information
before the start of E2ENP and/or by publishing the agreed QoS contracts on some registration service.
Requirement 48. The E2ENP SHOULD be able to be used in combination with (but independently from)
intermediate components, which may result effective in preparing and/or guaranteeing the
QoS Contracts agreed by the end-peers.
Some of the QoS related issues like security, authentication, provider policies, etc. represent the boundary
conditions for creating QoS contracts. Such kind of profile information can restrict the amount of the
resources (peer, network) usable but do not influence the performance of those resources as long as the
multimedia process runs within the setup boundaries. These conditions only influence the end-to-end
negotiated information in terms of validation of the QoS contracts and SHOULD be applied before a
negotiation for setting up a session. Additionally an end-peer can apply locally and within its
administrative domain policies which are of no interest to the corresponding negotiating parties, since
their local policies might be different. The end-peers are interested only in the result of applying the
policies and overloading the E2ENP with policy information might result in ineffective performance.
Requirement 49. The exchange of information (e.g. profiles, security, authentication, provider policies, etc.)
not directly affecting the E2ENP-process, rather influencing the information that is going
to be negotiated, SHOULD be carried out ahead of the E2ENP start.
In general the flows carrying E2ENP messaging (the path-path) and the flows carrying the actual streams
(the data-path) could be routed differently, depending not only on network-related issues, but also on
application/service specific reasons.
Requirement 50. The E2ENP paths-paths and the corresponding data-paths between any two given endpeers SHOULD be in general considered different.
Every time a path-path and/or data-path is built, there may be some intermediate components (router,
proxies, etc.) located along the path, whose usage is application-specific, and which might "understand"
partly the protocols used by the end-peers. These entities would be in a position to "interfere" also with
the E2ENP, thus disrupting the very "End-to-End" nature of the E2ENP.
In order to avoid this threat, hereby a requirement is set forcing the out-band intermediate components to
be always passive with respect to E2ENP:
Requirement 51. With respect to the E2ENP, the out-band intermediate components SHOULD operate
based only on information provided - directly or indirectly - by the peers, in order to carry
out application specific tasks.
For instance, this can be achieved by putting an explicit remark in E2ENP messages indicating that the
out-band intermediate components should never alter E2ENP content during the E2ENP process. Or by
publishing some of the E2ENP-related information ahead in a registry service, which the out-band
intermediate components may then question for planning actions.
Page A.188
MIND
1.2 / 0.1
Exception cases when the involvement of the out-band intermediate components is inevitable are covered
by the following requirement:
Requirement 52. The out-band intermediate components SHOULD be allowed to interfere with the E2ENP
only by explicitly signalling the end-peers and only in cases of end-peer misbehaviour,
when the end-peer(s) disregard system policies, and/or by system failure conditions.
A.4.5.4
Mapping of the quality settings on codec definitions
When user-defined audio quality should be applied to a codec according to the standard payload-type
definitions of the codecs [RTP-Prof], one specific quality can be mapped to just one payload type
expressing this quality.
There is a unique one-to-one mapping between an audio quality and a capability (payload type).
On the other hand a single video codec can produce multiple qualities. The quality of a compressed video
denotes the quality as passed to the encoder (codec). It represents the overall visual quality of the single
frames. This means that by applying some user-defined quality to a video it is possible to define this
quality as a compression percentage for the performance of the video codec. Additionally it is possible for
some codecs (e.g. WaveVideo, format name – “WAVI”)[WAVI] to specify the overall visual quality of
the chrominance planes of the single frames thus separating between the overall luminance quality and
the colour quality. The colour quality can also be expressed as a percentage. The different video codecs
have different number of compression levels. When a user specifies visually perceivable quality this
quality should be uniquely mapped to a number expressing the compression level of the video codec. If
the user specifies his perceivable quality as a number or a range of numbers, this setting should have
enough resolution to map uniquely to a certain compression level of a codec. Thus two requirements
concerning the video quality setting are defined:
Requirement 53. The numbering range for the user perceivable quality specification (overall visual quality
and colour quality, if the colour quality is applicable) SHOULD be uniquely
understandable for the application and the E2ENP in order to be able to uniquely map
video quality to a given codec.
Requirement 54. The numbering range for the user perceivable quality specification (overall visual quality
and colour quality, if the colour quality is applicable) SHOULD have enough resolution to
uniquely map to the compression levels of a given codec.
A.4.5.5
Management of different video frame types
Since some codecs support different format for the video frames (e.g. H.261 and H.263 from ITU-T) it is
necessary to be able to support also such different frame format descriptions by the parameterisation of
the codecs. Such a requirement is defined and respective parameters are described for SDP in [Even00].
These parameters – MB(Macro Block), GOB (Group of Blocks) and arbitrary slices – can also be adopted
for E2ENP, following the requirement of [Even00].
These different frame type descriptions are useful for controlling the respective codec supporting such
parameters without using the underlying in-band signalling (e.g. RTCP) and by running a re-negotiation
process.
A.4.5.6
Resource Management Policy and its Negotiation
Peers should pre-negotiate a resource management policy, in order to avoid instabilities at runtime
whenever handling QoS re-negotiations.
Otherwise, should two or multiple peers, joined to - say - a videoconference, detect a usage of resources
violating some proprietary resource management policy, the decisions that each peer would independently
take could influence the remaining ones, in way that might contradict the decisions that those other peers
Page A.189
MIND
1.2 / 0.1
may concurrently try to take. This would lead to "oscillations" in the resource configuration space, which
would impact on overall system performance and user-perceived QoS.
For the same reason, only the sender should take the decision to trigger the re-negotiation process. Should
however a receiver detect concurrently a degradation of resource availability, it could trigger a renegotiation, and any eventual collision with other peers (including the sender) would be resolved by
grating the right to continue this process to the sender only.
To this extent, a set of well-defined resource management policies is proposed, which the peers can agree
upon by negotiation. In this way, the peers can still independently manage at runtime their own resources,
but in a coordinated manner.
Such policies should cover any logical combination of, at least, the following aspects:
•
Optimisation of memory resources
•
Optimisation of processing power
•
Optimisation of network resource performance
•
Optimisation of power consumption
More specifically, the optimisation of power consumption is correlated with all other types of resource
management: e.g. a memory swap drains power.
Should a policy not specify explicitly the optimisation of power consumption, the policy would thus
optimise the usage of other types of resource, without caring much of power (this may make sense e.g. for
a desktop PC permanently plugged to the mains, which would have plenty of power to optimise any type
of resources except power).
Should a policy do specify explicitly the optimisation of power consumption, this policy criterion would
affect all other optimisation criteria.
The use of policies allows applications and/or middleware to flexibly take their own adaptation decisions,
as long as the conditions imposed by the negotiated QoS contracts and resource management policies are
met. Therefore the definition and negotiation of priorities for QoS Contracts are not required.
Furthermore, also the definition and negotiation of priorities for codecs/capabilities are not required21.
Requirement 55. The E2ENP SHALL provide mechanisms and means for specifying and pre-negotiating
resource management policies.
Requirement 56. Resource management policies SHALL include, but be not limited to, any logical
combination of the following criteria: Optimisation of memory resources, Optimisation of
processing power, Optimisation of network resource performance, Optimisation of power
consumption.
Requirement 57. The applications and/or middleware using the E2ENP may autonomously prioritise list of
codecs/capabilities, based on pre-negotiated resource management policies and current
resource availability
21
The reason for such a prioritisation would be in fact due to the fact that capabilities like codecs consume resources
differently from one another. Besides, codecs that typically perform less well than other, may still more
conveniently optimise resource usage when used in specific configurations.
Page A.190
MIND
A.4.5.7
1.2 / 0.1
Third-Party-Assisted Negotiation
The dynamical communication environment requires not only adaptability by the establishment and the
management of the data connections, but also by performing of negotiations. The scenario in Section
A.3.3.1 shows such special negotiation case of the one-to-one communication, where the peer-to-peer
data connection is being “third-party-assisted” negotiated. Such kind of negotiation may take advantage
of using registration, allocation, presence, etc. services, thus allowing the more thorough satisfaction of
the users requirements for QoS and the possibility to discover and utilize multiple devices within the
vicinity of a user.
By starting a negotiation the called device may discover that it has no possibility to handle the call. Since
the device cannot adapt, the call may simply not happen. One kind of adaptation which can be applied in
this case without changing the capabilities of the peer would be to delegate the call to another peer
according to a profile definition of the user. Such functionality is named here Mediator and describes the
ability of a peer to negotiate on behalf of some other peer and according to a preset user profile definition
This type of negotiation is called “third-party-assisted negotiation”.
The Mediator participates actively in the negotiation between two peers but does not take part into the
data connection. If the Mediator should actively participate into a data connection it would additionally
need bridging functionality which in some cases may result in necessary transcoding, thus running into
multiparty connection and requiring the negotiation there of. Additional problem of a Mediator situated
on the data path may be that the device causes a bottle-neck, thus negatively influencing the possibility to
support the required QoS. Considering these problems, such kind of adaptability may only be preformed,
if all the peers (Mediator inclusive) exchange information on their capability profiles (e.g. device bitrate
throughput), this means that multiparty connection should be negotiated which is being later on discussed.
Thus for the case of negotiation mediation it is considered that the Mediator does not participate in the
data media streaming.
The facilitating functionality of a Mediator is triggered when an Offerer issues a call which the device
cannot handle. In this case the Mediator searches for an appropriate Answerer and delegates the call by
also informing the user and asking for acceptance of the delegation state. Consequently the Offerer and
the Answerer receive profile information about each other over the Mediator, thus speeding up the
discovery and the direct negotiation process between them at later time.
The Mediator functionality needs to be able to use additional services supporting its facilitating
capability. The specific application of such services is out of scope of this document, here it is recognized
only the advantage of their usage and how the E2ENP is being there from affected.
The Mediator should take care not to refer session information unknown to the one (Offerer) or the other
(future Answerer) party for which the mediation is being done. The Mediator should be allowed to
perform the facilitation by eventually restructuring the session information coming from a peer, when
information about multiple sessions is only referred by calling the Mediator, but not explicitly contained
in the message. Thus the Mediator cares for completing the information set about a session by the parties
for which the facilitation is being done. The Mediator does not change the contents of the session
information but eventually adds complete description parts to its calls, in order to round up the
information set by the other negotiation parties.
Requirement 58. By third-party-assisted negotiation a pure Mediator SHOULD only facilitate the
delegation of a connection without actively taking part in it.
Requirement 59. A Mediator MAY leverage services like directory, allocation, presence etc. for preparing
E2ENP message content only.
Requirement 60. The Mediator SHOULD be able to generate new E2ENP content out of the original ones,
without changing the content of the information but just restructuring it for the needs of
the facilitation.
Page A.191
MIND
A.4.5.8
1.2 / 0.1
Consideration of possible failure conditions
By taking into account SIP and SDPng as protocols upon which the E2ENP could be mapped onto, it is
necessary to point out that SIP is a non-symmetrical protocol with respect to the message exchange
between the affected peers. The SIP Offerer - Answerer model gives no possibility for signalling errors,
failure conditions or exceptions (unexpected state-changes) at their occurrence at the Offerer’s side. The
E2ENP requires several SIP-message round-trips within its phases and every one-way message of a
round-trip should be proved both on its correctness and acceptability at all involved peers in the E2ENP
signalling. Additionally, state changes of the end-peers within the runtime of a E2ENP-phase should be
considered. These changes may concern a peer being involved into:
•
higher priority negotiation/-s;
•
the starting of higher priority internal processes of the peer, which affect the resource
management and the E2ENP profile settings;
•
hardware- and/or software-crashes, resulting in resource drop-outs.
To this extent an E2ENP implementation based on SIP/SDPng should carry, within its SDPng body,
error-codes indicating failures occurring at the Offerer and reasons for the failure and/or the SIP errorcode for both the Offerer and the Answerer.
It should also be considered that some intermediate components interacting with end-peers along the
E2ENP signalling path might cause disturbances of the protocol if they do not understand it. In this case,
there should be mechanisms for detecting and recovering such disturbances.
Requirement 61. The E2ENP SHOULD be able to offer the same possibility to signal both internal and
external failure conditions, exceptions, and errors occurring by any of the peers
involved in the E2ENP signalling.
The requirements on E2ENP symmetry (see Section A.4.5.1) also partially cover the problem with
treating the E2ENP errors.
A.4.6 List of Requirements
ID
Description
[1]
The “handling of QoS” SHALL be achieved through the negotiation and enforcement of QoScontracts, which contain configuration and constraints information.
[2]
The QoS-contract SHALL capture configuration information concerning network resources, as
well as the resources and capabilities of the involved QoS-aware end-systems.
[3]
The QoS-contract SHALL capture user’s QoS expectations, as well as network provider
policies, in order to enable a comprehensive QoS adaptation process.
[4]
Developers and users of mobile and/or fixed terminals MAY deal with unstable environment
conditions, especially when enforcing QoS.
[5]
Developers and users of multimedia applications dealing with multiple streams MAY augment
their QoS specifications by including QoS correlation and time-synchronization aspects.
[6]
Developers and users of multimedia applications dealing with multiple streams MAY
advantageously structure their QoS specifications in a hierarchical manner.
[7]
The E2ENP SHALL include mechanisms and means for planning ahead proper counteractions,
coping with otherwise unpredictable events resulting from QoS violations (e.g. handovers) or
QoS changes (e.g. user changing profile information when roaming).
Page A.192
MIND
1.2 / 0.1
[8]
The E2ENP SHALL include mechanisms and means for quickly and efficiently performing
QoS negotiations and QoS re-negotiations.
[9]
The E2ENP SHALL include mechanisms and means for specifying and negotiating multiple
alternative QoS levels.
[10]
Each QoS level SHALL be described by a specific QoS contract.
[11]
Bid QoS contracts SHALL describe Application Level QoS from receiver’s perspective.
[12]
The E2ENP MUST derive QoS information (peer, local, network supportable QoS) from
knowledge about available resources.
[13]
The E2ENP SHALL include mechanisms and means for uniquely referencing each QoS
contract during QoS negotiations and QoS re-negotiations, in order to keep signalling minimal.
[14]
The E2ENP SHALL include mechanisms and means for enforcing various negotiation modes
(push, pull, push-pull), since services may require different negotiation schemes.
[15]
The E2ENP SHALL be symmetrical with respect to QoS re-negotiation signalling.
[16]
The E2ENP SHOULD be able to offer the same possibility to signal both internal and external
failure conditions, exceptions, and errors occurring by any of the peers involved in the E2ENP
signalling.
[17]
The E2ENP SHOULD offer mechanisms for error recovery.
[18]
The E2ENP SHALL assume that users will have preventively validated their preferred set of
QoS contracts against what their preferred access network provider can actually support.
[19]
The E2ENP SHALL allow users negotiating Adaptation Paths (AP).
[20]
Each element of an AP SHALL be a prioritised, uniquely-identifiable QoS contract.
[21]
Each AP SHALL define a default QoS contract that SHALL be enforced when starting
streaming.
[22]
An AP COULD include the specification of rules defining the circumstances under which
different QoS contract, out of the given AP, shall be enforced.
[23]
The E2ENP SHALL include mechanisms and means for specifying APs at stream level.
[24]
The E2ENP SHALL allow end-peers negotiating Group APs, expressed in terms of alternative
configurations of a given group of streams.
[25]
The E2ENP SHOULD allow end-peers negotiating NULL-stream QoS contracts in Group APs.
[26]
The application of the “NULL”-stream MUST NOT affect the context of the running session.
[27]
The E2ENP SHALL allow end-peers negotiating APs for Associations of streams.
Page A.193
MIND
1.2 / 0.1
[28]
The E2ENP SHALL allow end-peers negotiating QoS Contexts.
[29]
The E2ENP SHALL allow end-peers negotiating QoS Contexts associated with aggregations of
streams at various levels of abstraction.
[30]
The E2ENP SHALL allow end-peers negotiating relative priorities among those QoS Contexts,
which happen to be siblings in a given tree-based hierarchy of QoS Contexts.
[31]
The E2ENP SHALL allow end-peers negotiating uniquely-identifiable QoS Contexts, each
associated with a specific element of a Group AP (GAP).
[32]
Each GAP SHALL define a default QoS Context that SHALL be enforced when starting
streaming.
[33]
The E2ENP SHALL enforce basic, non-iterative pre-negotiation, negotiation, and re-negotiation
schemes.
[34]
The E2ENP MAY allow more complex negotiation schemes only by employing third-party
control units (e.g. Conference Control Units).
[35]
In general the E2ENP SHOULD be used for performing negotiations and re-negotiations only
between the end-peers involved in a session. Should this requirement be not applicable due to
service specific reasons, the previous requirement would take precedence.
[36]
By complex negotiation scenarios (e.g. conference like) the end-peers engaged in a E2ENP
process MAY publish the already pre-negotiated QoS Contracts and user profile information in
some registration services thus allowing a short negotiation process for the later joining parties.
[37]
It SHOULD be possible to re-negotiate a single stream of a group, if this is not contradictory
with the context of the group, in order to minimize the signalling for the re-negotiation.
[38]
In case a stream is being correlated with other streams, it SHOULD be the responsibility of the
correlating party to perform re-negotiation with all affected parties.
[39]
The E2ENP SHALL allow both senders, receivers, and sender/receivers specifying what QoS
level they want to send/receive at stream level.
[40]
The E2ENP SHALL allow only receivers and sender/receivers specifying what Group APs /
QoS Contexts they want to enforce.
[41]
The E2ENP SHALL provide mechanisms and means for enforcing the co-ordination of
distributed resource management.
[42]
According to the "Economy Principle", remote resources at the peer SHALL be reserved only
after local resources have been successfully reserved.
[43]
According to the "Economy Principle", network resources SHALL be reserved only after local
resources have been successfully reserved at all peers
[44]
The E2ENP SHALL enforce a consistent application of the “Economy Principle” among
multiple peers.
[45]
The E2ENP MUST ensure that at any given time the application of the “Economy Principle”
does not lead to deadlock conditions.
Page A.194
MIND
1.2 / 0.1
[46]
The E2ENP MUST ensure that recovery mechanisms are put in place in order to cope with
possible colliding applications of the “Economy Principle”
[47]
The E2ENP SHOULD operate based on an abstraction of the underlying network.
[48]
The E2ENP SHOULD be able to be used in combination with (but independently from)
Intermediate Components, which may result effective in preparing and/or guaranteeing the QoS
Contracts agreed by the end-peers.
[49]
The exchange of information (e.g. profiles, security, authentication, provider policies, etc.) not
directly affecting the E2ENP-process, rather influencing the information that is going to be
negotiated, SHOULD be carried out ahead of the E2ENP start.
[50]
The E2ENP paths-paths and the corresponding data-paths between any two given end-peers
SHOULD be in general considered different.
[51]
With respect to the E2ENP, the out-band intermediate components SHOULD operate based
only on information provided - directly or indirectly - by the peers, in order to carry out
application specific tasks.
[52]
The out-band intermediate components SHOULD be allowed to interfere with the E2ENP only
by explicitly signalling the end-peers and only in cases of end-peer misbehaviour, when the endpeer(s) disregard system policies, and/or by system failure conditions.
[53]
The numbering range for the user perceivable quality specification (overall visual quality and
colour quality, if the colour quality is applicable) SHOULD be uniquely understandable for the
application and the E2ENP in order to be able to uniquely map video quality to a given codec.
[54]
The numbering range for the user perceivable quality specification (overall visual quality and
colour quality, if the colour quality is applicable) SHOULD have enough resolution to uniquely
map to the compression levels of a given codec.
[55]
The E2ENP SHALL provide mechanisms and means for specifying and pre-negotiating
resource management policies.
[56]
Resource management policies SHALL include, but be not limited to, any logical combination
of the following criteria: Optimisation of memory resources, Optimisation of processing power,
Optimisation of network resource performance, Optimisation of power consumption.
[57]
The applications and/or middleware using the E2ENP MAY autonomously prioritise list of
codecs/capabilities, based on pre-negotiated resource management policies and current resource
availability.
[58]
By third-party-assisted negotiation a pure Mediator SHOULD only facilitate the delegation of a
connection without actively taking part in it.
[59]
A Mediator MAY leverage services like directory, allocation, presence etc. for preparing
E2ENP message content only.
[60]
The Mediator SHOULD be able to generate new E2ENP content out of the original ones,
without changing the content of the information but just restructuring it for the needs of the
facilitation.
[61]
The E2ENP SHOULD be able to offer the same possibility to signal both internal and external
failure conditions, exceptions, and errors occurring by any of the peers involved in the E2ENP
signalling.
Page A.195
MIND
1.2 / 0.1
A.5. Current Trends and Needs
Before we continue to define the E2ENP we briefly take a look at desiderata within the internet and the
telecom communities (IETF – Internet Engineering Task Force, ETSI – European Telecommunication
Standards Institute) with respect to capabilities and QoS support, the negotiation of session descriptions
and the requirements set fort to provide those. Some hints of how E2ENP can meet these requirements are
discussed.
The current possibility to describe sessions with SDP are recognized as cumbersome and inefficient
[MMUS_53], [SDPngT00], especially when it comes to session descriptions for different purposes to be
used with different protocols. The MMUSIC considers a transition from SDP to SDPng using a new more
flexible syntax (XML) for their descriptions. With respect to the desiderata that SDPng should support
different scenarios and work with different carrier protocol profiles [SDPngT00], the E2ENP can meet
this requirement over the proposed header of SDPng for supporting different profile dependant SDPng
dialects. Additionally the security relevant protocol elements as a general problem of SDPng
[MMUS_53] can also be incorporated in such a general SDPng header. [MMUS_53] sets the
requirements:
•
SDPng must be simpleSDPng must not yield too large messages
•
SDPng mechanism must be extensible
Additionally [SDPOA02] and [SDPngT00] recognize the need of retrieving and pre-negotiating session
relevant information before the start of any common business and the necessity of intra-messagereferencing. Since E2ENP as an extension to SDPng is also based on XML and includes PDU header,
E2ENP can support due to this inter- and intra-message-referencing different protocol phases and reduces
the signalling due to the possibility of exchanging keys of already pre-negotiated information instead of
exchanging complete descriptions anew with every new message. According to [MMUS_53] SDPng
should support:
•
Single round-trip negotiation as in offer/answer
•
Multiparty negotiations
•
Possibly QoS
E2ENP as a parallel model of the Offer/Answer model [SDPOA02], incorporating the ideas of
[SDPOA02] but enhancing it with QoS, would be usable both as a peer-to-peer and a multiparty
negotiation model at application level.
ETSI [ETSIWS02] desiderata include:
•
The separation of the user and the application level QoS
•
The separation of the application and transport levels
•
Signalling at both application and network levels incorporating SIP [SIPBIS09], [RFC3261] and
H.323 [H323]
With respect to these requirements E2ENP is a pure application level protocol which can support QoS at
application level and be used to control and synchronize the signalling at network level. Considering the
requirement of ETSI for support of QoS Classes, E2ENP can also support such descriptions if they are
standardized and available, due to the flexibility of the E2ENP description with XML. But the question of
QoS Classes stays open, especially in cases of video support, since video codecs can be configured in
many different ways and some of the video codecs generate dynamic streams. The configuration of video
in sense of QoS might lead to enormous multiplicity of profiles, which in general is not a flexible and
simple solution. ETSI raises the question of Firewalls, with this respect E2ENP with SIP is an acceptable
Page A.196
MIND
1.2 / 0.1
solution, since E2ENP is an interpretable and not executable protocol and can be by necessity analysed
also by the Firewall-Proxies.
Page A.197
MIND
1.2 / 0.1
A.6. Proposed Solution for the E2ENP
In order to meet the requirements set forth in the Chapter A.4, we hereby propose a new protocol called
End-to-End QoS Negotiation Protocol (E2ENP), based on extensions to SIP/SDPng.
A.6.1 Assumptions
Before proceeding with the description of the E2ENP concept, some keys assumptions, completing the
generic description of actors and scenarios provided in Section A.3, are hereby presented.
A.6.1.1
One-to-one communication
The usage of the communication modes (push, pull and push-pull) may be situation and application
dependant with respect to the senders and the receivers. Some standard usages of the modes are here
described:
•
If the Offerer has no notion how the profile of the Answerer looks like, the Offerer may use
“pull” mode to first retrieve the settings of the Answerer and eventually adapt Offerer’s own
settings.
•
If the Offerer has no possibilities to adapt (or whatever other reason), the Offerer may “push”
her/his settings to the Answerer thus eventually enforcing her/him to adapt and using “push”–
mode.
•
If adaptation at the both sides may be necessary the “push-pull” mode might be used to enable
three-way exchange of the Offerer’s proposal. This mode can be used for agreeing on two way
communication.
By an assumption that the “receivers” should tune into given “senders”, the “receivers” should be those
who adapt. If the “senders” should match given “receivers”, the adaptation takes place by the “senders”.
There are three scenarios for the case of the simple one-to-one communication considering which party is
the Offerer and which the Answerer, which party is Sender or Receiver and if the both parties may send
and receive:
•
Sender (Offerer) – receiver (Answerer)
In general both “push” and “pull” modes can be used for this scenario according to the adaptation
possibilities and rules of the sender and/or the receiver. If the Offerer is the one who should adapt,
the Offerer should use a “pull”-mode, otherwise “push” mode should be used. The usage of “pushpull” mode may also be applied but by expected one-way data stream this would only complicate the
signalling protocol and with be contradictory with the requirement for E2ENP-simplicity.
•
Receiver (Offerer) – sender (Answerer)
Also in this case both “push” and “pull” modes can be used according to the adaptation possibilities
and rules of the sender and/or the receiver. If the Offerer is the one who should adapt, the Offerer
should use a “pull”-mode, otherwise “push” mode should be used. The usage of “push-pull” here is
also not recommendable for the same reasons as the scenario above.
•
Sender-receiver (Offerer) – sender-receiver (Answerer)
When all peers plan to both send and receive streams, the Offerer gathers information about the
Answerer’s receiving capabilities and QoS desires, before the Offerer issues an invitation to the
given Answerer.
Page A.198
MIND
1.2 / 0.1
In this way, by invitation time the Offerer can send to the Answerer a proposal including:
-
information about the Offerer’s capabilities for sending and receiving streams;
-
Offerer’s own desired QoS specification for receiving streams, tailored on Answerer’s
preferences; and
-
QoS proposals for sending streams, tailored on Answerer’s preferences.
The Answerer replies then to the Offerer with a subset of the Offerer’s bid.
This scenario most probably uses the “push-pull” mode since a bi-directional communication should
be established.
A.6.1.2
One-to-many communication
By one-to-many communication not all the combinations of connection modes and negotiation modes are
possible and reasonable. For instance, the "Single Receiver and Many Sender " scenario can cause
overloading at receiver side, and this is why this case should be treated by forcing the receiver carrying
out multiple negotiations on a separate basis with every sender, like in the "Sender (Offerer) – receiver
(Answerer)" scenario described in Section A.6.1.1.
Some well-known connection scenarios corresponding to the one-to-many scenario are:
•
pure multicast: receivers "tune" into given senders by selecting a given multicast group, based on
pre-disseminated information (e.g. via SAP). In this case the sender acts as a sort of Offerer.
•
This scenario would work like the "Receiver (Offerer) – sender (Answerer)" scenario described
in Section A.6.1.1. This allows flexibility of joining and leaving the session. The Answerer can
then adapt the session on a single basis for every participant, but taking into account also the
resources used by already existing sessions. Had instead the sender taken the role of Offerer,
some of the receivers might not have been able to cope with such requirements.
In both cases, the Offerer (either sender or receiver) could advantageously use offline pre-negotiated
information for speeding up the communication setup at run time. Eventually this could be carried out
through user agents [FIPA], or through a broker (but these cases are outside the scope of this document).
All the scenarios where the single party is a receiver should be considered as one-to-one negotiation since
some separate resource management for every incoming stream may be necessary.
A.6.1.3
Many-to-many communication
This case could be treated like the superposition of multiple negotiations, as described in Section A.6.1.1
and Section A.6.1.2, should the peers agree at the beginning on the choice of a conference leader, who
orchestrated the negotiations for joining/leaving the session and managed the running of it. The peers
could also make some a priori arrangements about how to configure the communication environment
before they negotiate the real connections. The parallel and/or sequential negotiation runs between the
negotiating peers are application dependent and thereof out of the scope of this writing.
A.6.2 The E2ENP Phases
The E2ENP comprises four key phases, namely (Figure A.8):
1.
End-to-End QoS Pre-Negotiation Phase;
2.
Multi-stream QoS Correlation and Time Synchronization Enforcement Phase;
Page A.199
MIND
1.2 / 0.1
3.
End-to-End QoS Compact Negotiation (with Economy Principle)22 Phase; and
4.
End-to-End QoS Compact Re-Negotiation (with Economy Principle)23 Phase.
All the four phases can be concatenated within the lifetime of a given media session. Alternatively, the
first two phases may be executed independently of the latter two and at different times, but strictly
following the given order. As a consequence, given that the results of the various E2ENP phases are valid
within a limited amount of time, the corresponding validity timescales may differ from phase to phase.
Figure A.8: Phases and actors of the E2ENP
A.6.2.1
The End-to-End QoS Pre-Negotiation Phase
More specifically, the End-to-End QoS Pre-Negotiation Phase can be executed a priori, and the results
can then be applied to the remaining phases of multiple successive communication sessions at later times.
This phase is characterized by a process that end-peers can perform before the actual start of a media
session, and independently of the session itself. The goal of this phase is to enable the exchange - in a
non-obliged manner - of information among peers, concerning configurations of capabilities and QoS
Contracts, as deduced from their QoS profiles.
These configurations include Adaptation Paths, so that the end-peers can proactively agree on the way to
react to possible QoS changes or QoS Violations in an effective and efficient manner. Optionally, this
phase allows each couple of peers negotiating Group Adaptation Paths at Association level, i.e. enforcing
QoS correlation and time Synchronization across all the streams established between the given couple of
peers.
22
Or, more shortly, "Fast Negotiation".
23
Or, more shortly, "Fast Re-negotiation".
Page A.200
MIND
1.2 / 0.1
This information exchange has informational character for the involved peers, and is used not only for
informing each other ahead about the capabilities and performance possibilities applicable to the given set
of peers, but also for reaching agreements on redefining some of those configurations.
In this way, the peers are thus able to establish a common vocabulary, a priori of any specific business.
The usage of the pre-negotiation phase should actually be connected with some context for which the prenegotiation is reasonable. In general it should be considered that if there is a business, there might be
preferences how this business should be preformed and these preferences might be exchanged and
considered before the start of the peers’ common business. The so created common vocabulary might be
interoperable between different applications like electronic phone-books24, time-tables25, etc.
In order to support interworking of service domain and transport domain, it might be necessary to include
QoS definitions at transport layer for negotiations at application layer (see Chapter 4 of this deliverable).
Then, service domain validating entities (like enhanced SIP proxies) should be able to mark a given QoS
definition as compliant with the contract or non-compliant. Depending on the different scenarios in
Chapter 4, according actions can be taken. It is however important to note, that in contrast to [Bos01] and
[Bos02], service domain entities are not allowed to change the QoS definition provided by the endsystem. This is necessary as the end-system might have reserved proper resources on the local terminal
for handling given QoS levels at transport layer. If the service domain entities change QoS parameters
provided by the end-system the end-system can not coordinate terminal and network resources.
End-terminals may already provide proposed QoS contracts at transport layer in initial session
descriptions. Service domain entities may, during pre-negotiation phase, indicate if they support a given
transport layer QoS contract or not, e.g. based on subscription information. An end-terminal should not
try to enforce during negotiation a session quality that requires network resources, where the service
provider already indicated that it does not support this amount of resources, because it is highly possible
that the transport domain will not support this level when reserving network resources during call set-up.
A.6.2.2
Phase
The Multi-stream QoS Correlation and Time Synchronization Enforcement
The Multi-stream QoS Correlation and Time Synchronization Enforcement Phase is optional, insofar as it
is required only if peers are planning to establish multiple streams needing to be correlated and
synchronized. The individual peers solely apply such a phase. As an exception, a separate entity (e.g. an
intermediate component like a conference call bridge) could also employ this phase, should the various
peer delegate it to carry out complex negotiations among them26.
A.6.2.3
The End-to-End QoS Compact Negotiation Phase
The third phase is characterized by a process that end-peers can perform either before or at the actual start
of a media session, in order to agree on a given QoS level to be enforced for the given session and
streams, based on results of a previously applied End-to-End QoS Pre-Negotiation process.
24
A phone-book might contain not only the phone-number entries but also the pre-negotiated QoS, corresponding the
quality preferences of the owner of the saved number.
25
A monthly audio-conference concerning some joint venture might have pre-negotiated QoS parameters which are
long term saved for the time of the existence of this joined venture.
26
The case of intermediate components is out of the scope of this writing, and it is only mentioned for the sake of
completeness.
Page A.201
MIND
1.2 / 0.1
This process is considerably faster compared to the case of a End-to-End QoS Full Negotiation27, since
only references of pre-negotiated information are actually exchanged among peers.
At completion of the End-to-End QoS Compact Negotiation process, the end-peers have agreed on the
QoS profiles they are going to use for the communication.
Also in this phase (and during re-negotiation, see next section), service domain entities may indicate if
they support a given QoS definition at transport layer. Note, that the reason is different compared to the
pre-negotiation phase. During the pre-negotiation phase, service domain entities may check a transport
layer QoS contract with its compliance with a user profile (e.g. a user may have a profile that allows him
to use max. 64 kbps for each call). During compact negotiation phase, short before the streaming process
is established, the service domain entities (if they have knowledge about actual network resource
utilization by tightly coupling service and transport domain) may temporarily block a QoS contract at
transport level, even if the contract would be supported by the users subscription information, given a
very high load in the network. By blocking e.g. low priority sender/receivers, more resources can be
given to higher priority sender/receivers and the service domain can thus implicitly influence resource
distribution. Again, a QoS contract should not be changed by intermediate entities, only indications could
be provided, if the contract is supported or not.
End-terminals may already provide proposed QoS contracts at transport layer in initial session
descriptions. Service domain entities may, during pre-negotiation phase, indicate if they support a given
transport layer QoS contract or not, e.g. based on subscription information. An end-terminal should not
try to enforce during negotiation a session quality that requires network resources, where the service
provider already indicated that it does not support this amount of resources, because it is highly possible
that the transport domain will not support this level when reserving network resources during call set-up.
A.6.2.4
The End-to-End QoS Compact Re-Negotiation Phase
The fourth phase is characterized by process that end-peers can trigger upon detection of either a QoS
change or a QoS Violation, in order to agree on a given QoS level to be enforced for the given media
session, based on results of a previously applied End-to-End QoS Pre-Negotiation process.
This process is considerably faster compared to the case of a End-to-End QoS Full Re-Negotiation28,
since only references of pre-negotiated information are actually exchanged among peers.
At completion of the End-to-End QoS Compact Re-Negotiation process, the end-peers have agreed on
new QoS profiles they are going to use for the communication.
The End-to-End QoS Compact Re-Negotiation Phase can be applied several times during the lifetime of
any given media session.
A.6.2.4.1
Fast Vs. Structured Re-negotiation
Based on the requirements set forth in Section A.4.5.6, peers can pro-actively pre-negotiate a common
resource management policy, in order to avoid instabilities whenever the conditions leading to renegotiations are met.
27
A process that end-peers can perform either before or at the actual start of a session, in order to agree on a given
QoS level to enforce for the given session and streams, eventually by redefining some of the originally proposed
configurations of QoS specifications. At completion of the End-to-End QoS Compact Negotiation process, the endpeers have agreed on the QoS profiles they are going to use for the communication.
28
A process that end-peers can trigger upon detection of either a QoS change or a QoS Violation, in order to agree on
a given QoS level to be enforced for the given session and streams, eventually by redefining some of the originally
proposed configurations of QoS specifications. At completion of the End-to-End QoS Compact Re-Negotiation
process, the end-peers have agreed on new QoS profiles they are going to use for the communication.
Page A.202
MIND
1.2 / 0.1
To this extent, peers can perform re-negotiations at two different levels:
•
a fast, in-band signalling process (by e.g. changing at runtime in the RTP packet header the RTP
payload type, without affecting the currently enforced application-level QoS Contracts); and
•
a more structured process, based on the End-to-End QoS Re-negotiation Phase (whenever the
former process is not sufficient to cope with a given QoS Violation/Change).
More specifically, peers can dynamically choose to use any payload type applicable for a given user-level
QoS Contract, as described below. This choice would reflect in an instance of the usual RTP in-band
signalling as a form of very fast re-negotiation. Whereas, should QoS Violations or QoS Changes occur,
requiring enforcing a new user-level QoS Contract, the End-to-End QoS Re-negotiation Phase would take
place.
The RTP Payload Type field contained in the RTP headers may be used by senders for signalling in-band
to their receivers the decision to use another (negotiated) codec. This is a form of re-negotiation, which
per se would be transparent to the E2ENP. However peers using this in-band signalling may still
advantageously use E2ENP for reacting effectively and efficiently to QoS violations/changes. Within this
context, we can easily harmonize the use of in-band RTP signalling, by forcing peers to validate the new
proposed codec against any pre-negotiated information, not only in terms of capabilities but also of QoS
Contracts).
This means that the sender would first of all validate (and pre-book resources accordingly) the new
capability, as well a new QoS Contract (optimising the use of that capability), with respect to the prenegotiated information. On the other hand, each receiver would validate the new capability signalled inband by the sender, against the pre-negotiated information.
There may be cases, where the receiver detects that not enough resources are available for activating the
given codec, whereas the sender has already switched codec and sent packets encoded with it. The
receiver can therefore not decode those packets, or decode them at a lower QoS level (e.g. at lower
speed/frame-rate). To work around this problem, we can assume the receiver chooses the latter option
(decoding at lower QoS level), but signals explicitly to the sender to select a lower QoS level (via E2ENP
compact re-negotiation), for example an intermediate one (assuming pre-negotiated information is
available). To this extent it is necessary to mention that losing or not interpreting a single video packet,
for the time of the QoS switch between the sender and the receiver, is not so critical, since from the
perspective of the human user the missing single video frame is not easily noticed. Thus the user
perceived video QoS should not be considered severely affected by such minor video disturbances. On
the other hand losing or not interpreting a single audio packet results in audible cracks which should be
considered a violation from the user perspective. A possible solution to this problem can be the sending of
redundant audio data with the same or different quality in the same audio packet as described in
[RFC2198]. The packets carry thus the audio data twice and if a single audio packet gets lost the
following one redundantly supersedes the lost data. For supporting the user perceived audio QoS such
duplicated information should be delivered with respect to the agreed capabilities and QoS contracts
between the peers, thus enabling the sender to deliver in parallel differently coded audio data. The
receiving of single audio packets with lower quality should not be considered a violation from the user
perspective, since a human would rare perceive such changes as e.g. singularity switches between mono
and stereo, if the mono signal is played simultaneously on all the audio boxes of the device. In general
terms the accumulation of audio and video singularity disturbances should be considered a violation and
should be allowed only for the time of a running re-negotiations. The treatment of the occurring media
singularities is a problem of the realization of the resource management; the tolerance and control
mechanisms, etc. and may be application and heuristics dependant.
Key issues for realizing the mechanism described above, are:
•
The in-band signalling does not suffice to allow peers agreeing on QoS Contracts to enforce: the
complete re-negotiation mechanism is in fact achievable by using more structured approaches, like
the E2ENP. However, as an alternative to using E2ENP, the receiver may monitor the current QoS
level, eventually by leveraging RTCP monitors, and thus identify which of the pre-negotiated QoS
Contracts the sender is currently enforcing.
Page A.203
MIND
•
1.2 / 0.1
Network resource reservations: should not be committed until both peers have agreed on what codec
and what QoS Contract to enforce. The E2ENP guarantees this, thanks to the "Economy Principle".
A.6.2.4.2
The use of spare contracts
Based on requirements set forth in Section A.4.5.1.1, all those QoS Contracts not supported by the given
users' preferred network provider could be advantageously considered as spare ones.
These contracts would have to be negotiated, insofar as the Offerer and the Answerer could
advantageously agree a priori on similar contracts, so as to take into account agreements between the
other peers and their currently used network providers.
When a vertical handover occurs, either peer can try to validate all of her/his contracts, including the
spare ones, which might eventually become applicable with respect to the new network provider and/or
new type of access network.
This means that the peer detecting a QoS Violation/Change can, upon finding that some spare contracts
are now validated, initiate a End-to-End QoS Compact Re-Negotiation Phase, not only for indicating the
new QoS Contract to enforce, but also to “unblock” said pre-negotiated spare contracts.
Furthermore, one should note that after a vertical handover some of the previously valid contracts might
be no longer applicable. This means that the “blocking” of such contracts should also be taken into
account during the End-to-End QoS Compact Re-Negotiation Phase.
A.6.2.5
Resource management
The E2ENP interacts with the local resource management functions during all the four phases. More
specifically, the E2ENP interacts with the local and network resource management functions during both
the End-to-End QoS Compact Negotiation Phase and the End-to-End QoS Compact Re-Negotiation
Phase, according to the "Economy Principle", and based on the resource management policies prenegotiated during the End-to-End QoS Pre-negotiation Phase.
A.6.3 The underlying model: hierarchical Finite State Machine
Given the hierarchical structure of the QoS specification prescribed by the requirements set forth in
Section A.4, we hereby envision that a model meeting nicely those requirements is the one based on the
concept of hierarchical Finite State Machine (FSM) [Booch99].
In such a model, each QoS Contract corresponds to a state of a hierarchical FSM. At the lowest level of
this hierarchical structure, states map to QoS Contracts of individual streams. The nominal QoS Contract
(i.e. the one, which the user wishes to enable by defaults) corresponds to the Initial state of the FSM
associated with the given Adaptation Path.
Each Adaptation Path corresponds to an elemental FSM, whereby states are mutually exclusive.
States and/or complete elemental FSMs can be nested within higher-level states, which in turn are
associated with QoS Contracts, as indicated above: this represents the concept of QoS Context.
Within a given higher-level state, concurrent nested FSMs can co-exist: this represents a group of
Adaptation Paths being correlated by given QoS Context.
Each transition of such hierarchical FSM describes a peculiar change of QoS Contract in reaction to a
given event, e.g. a QoS violation. The transitions are triggered whenever specific predicates evaluate to
true: this translates in our model to comparing the values of specific monitored QoS parameters against
the corresponding values stated in the given QoS Contracts.
Page A.204
MIND
1.2 / 0.1
Transitions are associated eventually with high-level actions (e.g. drop an existing stream or start a new
stream). These actions can eventually cause the generation of events to the users indicating a temporary
out of service condition, e.g. due to a hand over occurrence.
Differently from QDL [Loyal], the specifications of QoS Contracts (and, to a limited extent, of QoS
Contexts) and of the hierarchical FSM are de-coupled from each other. This introduces modularity and
thus flexibility to the design: one can combine a given QoS Contract with different adaptation policies,
and adaptation policies can be configured with different hierarchical FSMs.
A.6.4 The negotiation process
The negotiation process employed by the E2ENP basically consists of running a non-iterative negotiation
process at connection establishment time, whereby peers simply exchange among themselves a set of
state identifiers, with respect to the hierarchical FSM representing a given pre-negotiated Adaptation
Path.
The Offerer will propose a bid, and each Answerer will validate the bid against its own adaptation
policies, and respond accordingly with a counter-offer. This model limits the scope of the counter-offers
to the definition of a subset of the original bid (in order to limit the complexity of the problem). This
translates at Answerer-level into:
•
a QoS Contract conformance verification [Frolu98] applied to each item in the bid, with respect to
the pre-negotiated QoS Contract Types and QoS Contracts; should the contracts be expressed in an
XML document, conformance verification could be achieved e.g. by enforcing a pre-defined, specific
XML Document Type Definition (DTD) or by customized verification upon a known XML-schema
definition.
•
an optional set of pruning operations applied onto the structure of the original pre-negotiated
hierarchical FSM.
One should note that whenever a new peer joins a group of already communicating peers, the new
peer might act as the Offerer of a new E2ENP process29, following the same mechanisms described
above. Furthermore, any ad hoc creation, modification, or removal of QoS Contexts and/or streams
after that the negotiation process has been successfully completed (and not taken already into account
as a QoS change within the negotiated Adaptation Path), would trigger a new instance of the
negotiation process.
More specifically, one should note that the user might deliberately cause a QoS change on an already
running multimedia application, for example in order to increase or decrease the overall level of QoS,
or some part of it only. This negotiation would reflect in a change in the QoS Contracts associated
with the Adaptation Path, but could also reflect on the structure of Adaptation Path itself.
Since the negotiation process is quite expensive, any successive incremental reapplication of the
E2ENP or parts thereof can cause inefficiencies. To this extent one should however note that:
•
in a video-on-demand scenario, both parties simply agree a priori on an Adaptation Path for a
predetermined set of streams, in order to cope with QoS violations or QoS changes. The variability of
the aforementioned ad hoc changes therefore does not apply to this case.
•
the Offerer can eventually already take into account events like the creation, modification, or removal
of QoS Contexts and/or stream within the Adaptation Path it bids.
29
Eventually starting from the End-to-End QoS Compact Negotiation Phase, should the new peer already have prenegotiated information with the communicating peers.
Page A.205
MIND
•
1.2 / 0.1
after the initial negotiation, all peers can more quickly converge to negotiation agreements compared
to the case of the initial negotiation, since the majority of them are using an already negotiated
hierarchical FSM.
The rules for handling these situations are however heavily dependent on the type of management
applied to the given communication sessions. For instance, in the case of conference services, this
translates into choosing specific conference control policies and protocols. Therefore, the sheer
E2ENP functionality is devised in such a way that it delegates these high level session management
tasks to external mechanisms and protocols, which are thus outside of the scope of this writing.
A.6.5 Incremental Negotiations - Concept of Micro-phases
By extending the E2ENP phased-approach, refinements are envisioned, as the introduction of microphases. This means that peers can incrementally update pre-negotiated information, e.g. for adjusting prenegotiated information in case of vertical handovers, whereby the new access network
technology/capacity and/or new network provider can offer different QoS levels, compared to the prenegotiated ones. To this extent, is necessary a modular description of negotiable items, so that those,
which are not affected by the changes, are kept valid. This means that for such items no full renegotiation would be then necessary, with evident benefits in terms of performance with respect to the
QoS Changes/Violations treatment.
This concept is left for further study. More specifically, aspects like impact on pre-existing state machines
describing pre-negotiated APs must be considered in detail.
A.6.6 Protocol features to meet the requirements
This section describes some general ideas about the E2ENP functionality together with some
implementation-specific issues concerning the process of specifying valid QoS contracts and the E2ENP
negotiation. With this respect new SDPng elements for implementing the E2ENP concept are proposed.
The E2ENP MAY allow end-peers partially performing negotiations about their QoS settings in a nonobliged manner well ahead of the actual communication establishment, in order to co-ordinate long term
relationships and/or agendas among themselves.
The results of such “end-to-end pre-negotiations” MAY thus be used to improve efficiency of the actual
end-to-end negotiation process, by leveraging some results of end-to-end pre-negotiations. Additionally,
the E2ENP COULD allow end-peers negotiating multi-streams aspects, as detailed in the previous
sections.
The E2ENP SHALL allow any of the end-peers performing end-to-end re-negotiations, upon detection of
either a QoS change or a QoS Violation. This process SHALL leverage the results of the previously
applied end-to-end negotiation process.
The E2ENP SHALL negotiate QoS contracts derived as follows (Figure A.9):
1.
Users specify the “User level QoS” – The QoS as users expect to perceive, eventually expressed in
non-crisp terms by non-expert users.
2.
Applications derive “Application Level QoS” by mapping “User level QoS” into QoS contracts
detailing specific aspects (e.g. frame-rate).
3.
The mapping of Application Level QoS on the end-system capabilities (i.e. the end-system hardware
and software configuration - e.g. supported codecs), originates QoS contract Sketches, which
represent the Application Level QoS that the end-system can theoretically support.
4.
The validation of “QoS contract Sketches” against local and network specific policies for supporting
QoS, originates “Validated Application Level QoS contracts”. The validation process assumes the
applying of QoS Broker/QoS Agent trading policies with respect to security, technology policies,
provider policies, etc. The description of these policies is system internal representation and out of
Page A.206
MIND
1.2 / 0.1
scope for the protocol. It is the Broker/Agent who generates the correct results for the negotiation out
of the Contract Sketches and the policies. For the matching between the contracts and the policies an
algorithm as described in [RFC2533], [RFC2703] can be used. The policies are the boundary
conditions for the current applicability of the “Application Level QoS contracts”. The “Validated
Application Level QoS contracts” are in fact indications if a certain contract is currently applicable or
not, and if it would be applicable under some other conditions, corresponding policy changes like e.g.
by vertical handovers.
Figure A.9: Deriving contracts from User Profile and System Configuration Information and validating
them.
The “Application Level QoS contracts” constitute a common vocabulary, which the local and the remote
end-systems can use for negotiating the establishment of QoS aware communications. Those “Application
Level QoS” which have failed the validation, can still be used in special cases like vertical handovers,
dynamic end-system changes (e.g. due to end-system up-/downgrading), etc.
Transport level QoS parameters (necessary for reserving network resources) may be optionally included
in the session negotiation process. This enables intermediate entities to verify if the proposed sessions’
network resource requirements are within the contract that the user has with its provider. The providers
intermediate components may then check the compliance with the contract and indicate, if they support
the session description or not. It is important to note, that the E2ENP is NOT used to reserve network
resources. Rather, this is an integral step in the overall session establishment but delegated to a signalling
protocol like RSVP or NSIS. Nevertheless, the proposed E2ENP allows the coordination of terminal
resource management and network resource management based on the economy principle.
The E2ENP uses only “Validated Application Level QoS contracts”. The process for obtaining them is
considered as given, since it can be implementation-dependent. For the sake of simplicity, this document
refers to “Validated Application Level QoS contracts” as “Application Level QoS”.
A possible E2ENP implementation can be realized by combining special extensions of SDPng
[SDPNG03], [SDPNG04] with a particular use of SIP.
Page A.207
MIND
1.2 / 0.1
With respect to the QoS contract validation and the negotiation processes, the following additional
features are proposed for SDPng/E2ENP:
o
An important part of the implementation is the use of modularity for the elements by applying SDPng
and extensions of it.
o
Compared to the existing SDPng proposal, it is assumed that it is better to distinguish codec
definitions from the RTP payload type definitions and codec parameterisation [SDPNG03],
[SDPNG04], [RTP-Prof]. The negotiating peers would then be able to quickly converge on
agreements, by pruning first all the codecs that are not supported by all peers. Once the commonly
agreed set of codecs has been identified, the negotiating parties can handle the negotiation of payload
types and codec parametrizations. This would result in a new element of SDPng having two separate
elements – one for capabilities description and one for stream level valid QoS contracts
o
For the description of the QoS contracts it is necessary to have an SDPng element for mapping the
Application Level QoS descriptions on the codecs and the payload types. A single QoS contract is in
these terms the QoS settings of a single media stream.
o
It is necessary to distinguish between the different streams (audio, video) and data types (data,
control) by the definition of the contracts for a communication session.
o
Considering the video codecs, the parametrization indicated in [RTP-Prof] is not sufficient to fully
characterize the given codec from a QoS perspective. That is why it is necessary to introduce codec
parametrization attributes like frame-rate, frame-size, colour-quality-range, overall-quality-range, etc.
which should be uniquely interpreted by the end-systems.
o
It is necessary to introduce descriptions and parametrizations for non-streaming data.
o
With respect to the negotiation process it is necessary to introduce an attribute for the QoS contract
indicating if the contract is currently applicable or not applicable and if the contract could be
supported in the near future by changing local system conditions and for the time being of the
running communication. The same attribute can also be used to indicate the support of a given codec.
o
Considering the network validation process it is necessary to introduce an element for the contracts
showing if the QoS contract is respectively blocked or unblocked from a given provider and
eventually carrying a signature of the respective provider to let the network (intermediate
components) verify but not change the contracts.
o
For the means of the common vocabulary it is necessary to introduce an SDPng/E2ENP element
describing the system internal QoS optimisation policy in order to let the communication parties have
additional knowledge on the common adaptation process by running session.
o
For the means of the common vocabulary it is necessary:
a.
To introduce an element describing the system internal QoS optimisation policy in order to
let the communication parties have additional knowledge on the common adaptation process
by a running session.
b.
To introduce elements within the contract for the means of network optimisation. It is
suggested to use common elements to those presented in [Bos02] for the description of the
traffic information. The sender would add this element to a negotiated contract to inform the
receiver on how to reserve network resources. It is the sender that can calculate this
information upon the knowledge of a codec performance and the eventual different layers of
compression that some codecs support. Additionally, the receiver can also add traffic
information to the negotiated contract. In this case the meaning of this information is the
restriction of the service provider on the usage of his/her networks and/or the
technologically possible limit of the access network of the receiver. This is statistical
information which can be retrieved from the service-provider/technology policy applied to
the receiving peer. The sender can then calculate the traffic for the receiver and determine if
the provider/technology policy of the receiver can be covered or not.
Page A.208
MIND
1.2 / 0.1
o
For defining stream grouping it is necessary to introduce specific SDPng/E2ENP elements with
respect to group formation (correlation of the streams) and synchronization aspects.
o
For defining Adaptation Paths it is necessary to introduce specific SDPng/E2ENP elements in order
to formally describe the respective adaptation process in accordance with possible QoS changes
and/or violations.
The following SIP features for implementing the E2ENP processes have been identified:
•
Signalling for carrying out the negotiation and re-negotiation
•
Means for applying the economy principle
•
Enforcing consistency and avoiding deadlocks
Additionally the E2ENP SHOULD be explicitly mentioned by name in the SIP-messages, in order to
avoid the interference of the intermediate components (SIP Proxies) in the E2ENP-sessions. This can be
made in accordance with the definition of the SIP “Subject”-header and the “Content-Type”-Header
[RFC2543], [SIPBIS09] and [RFC3261].
Page A.209
MIND
1.2 / 0.1
A.7. Proposed Implementation of the E2ENP
This section presents possible ways of implementing the proposed solution, by leveraging existing
protocols like SIP and SDPng.
To this extent, the SIP protocol will be used in novel modes but will remain substantially unchanged;
whereas extensions and some changes of the SDPng specification are hereby proposed so as to meet the
requirements set forth in Section A.4. The functionality of E2ENP using SDPng and SIP is shown in
Figure A.10 below.
Figure A.10: Applying E2ENP over SIP
The idea is to extend the usage of SIP and to enhance the SDPng specification (which is currently being
studied within the IETF MMUSIC WG) to include E2ENP requirements, with minimal and modular
changes. This is not yet a full-fledged specification, rather a detailed explanation of the hereby-proposed
idea, aiming to raise interest and stir discussion within the technical community.
The E2ENP Agent simply carries out all the E2ENP signalling procedures: therefore it is up to the
Adaptive Application (or middleware) to enforce the model being negotiated with the E2ENP, and to
enforce resource reservation/release, based on the synchronization signalling handled by the E2ENP
Agent.
Hereby both application level and transport level QoS parameters are considered as two orthogonal issues
of the quality of service. The exact mapping between those two dimensions is carried out by the
application/QoS Broker within the process of QoS supply by monitoring the available system resources
(both local and remote) and applying different system policies (technological, provider, etc.). The
importance of utilizing both application level and transport level QoS in parallel is discussed with respect
to the controls which E2ENP performs for fluently synchronising the resource management process at all
abstraction levels of QoS delivery.
Page A.210
MIND
1.2 / 0.1
A.7.1 User-Level QoS and Application-Level QoS Specification
Users are typically interested in defining what information they want to exchange with peers and with
which quality30, independently of how their requests will be actually carried out by their terminal devices
and the network.
Therefore we expect that users will express their wishes by detailing content description and QoS
contracts. We name this type of QoS specification as User-Level QoS Specification.
Furthermore, we expect that users may want to define a set of QoS contracts as associated with a set of
multiple different contents and/or services.
To this extent, we expect that users will be willing to either specify these QoS contracts on the fly or,
more advantageously, predefine and stored them in so-called user profile information databases.
Applications or middleware will translate the User-Level QoS Specification into Application-Level QoS
Specification, which we hereby consider as input for the E2ENP31. This information can also be pretranslated to save time for the negotiation process.
The following XML document is an example of how application-level QoS contracts can be specified: in
this example, only QoS contracts for audio and video streams are indicated, but the extension to include
other types of streams (like data or control streams) is straightforward. For each type of stream, a set of
application-level QoS parameters are specified in terms of nominal values, nominal sets, or operative
ranges.
The parameters indicated in the QoS contracts for audio streams reflect the audio codec parameters
indicated in [RTP-Prof], with the difference that user profile information will describe ranges rather than
fixed configurations of those parameters. On the other hand, the parameters indicated in the QoS contracts
for audio streams do not reflect the [RTP-Prof] prescriptions; rather, QoS parameters suggested in
[BRAIN] are used.
<profile name="my-preferred-stream-level-QoS-contracts">
<e2enp:contract name="my-audio-contract-1" type=”audio”
sampling_rate_set="4000,8000" channel_set="1"/>
<e2enp:contract name="my-audio-contract-2" type=”audio”
sampling_rate_range="8000,12000" channel_set="1,2"/>
<e2enp:contract name="my-audio-contract-3" type=”audio”
sampling_rate_range="12000,16000" channel_set="1"/>
<e2enp:contract name="my-audio-contract-4" type=”audio”
sampling_rate_range="16000,44100" channel_set="1"/>
<e2enp:contract name="my-video-contract-1" type=”video”
frame_rate_range="10,15" frame_size_set="CIF"
color_quality_range="9100,9700" overall_quality_range="9500,9800" />
<e2enp:contract name="my-video-contract-2" type=”video”
frame_rate_range="15,20" frame_size_set="QCIF,CIF"
color_quality_range="9700,9850" overall_quality_range="9800,9900"/>
30
Especially if they will have to pay not only for the content but also for QoS.
31
We are in fact interested in specifying QoS as the user perceives it [BOS]. We do not care, how the user expresses
this. Clearly, there needs to be a mapping from the users preferences to a set of QoS parameters, which define the
quality of the end-to-end transmission process. We call this set of parameters the application level QoS. This
mapping is application specific and out of scope.
Page A.211
MIND
1.2 / 0.1
<e2enp:contract name="my-video-contract-3" type=”video”
frame_rate_range="20,25" frame_size_set="QCIF"
color_quality_range="9850,9900" overall_quality_range="9900,9960"/>
<e2enp:contract name="my-video-contract-4" type=”video”
frame_rate_range="25,30" frame_size_set="CIF"
color_quality_range="9900,9970" overall_quality_range="9960,9990"/>
</profile>
XML Example A. 1
In user profiles, users may specify QoS with different levels of granularities: specific target values or
operative ranges, either as discrete sets or as continuous intervals.
The frame_size_set indicates the size of the represented frames. It can be both specified as a
standard frame-size (CIF, QCIF, SIF, etc.) or a width-height resolution in pixel (e.g. 352x288).
The frame_rate_set denotes an interval for specifying target frame rate of the peers. For example, if
the frame rate is set to 20 fps, the sender should be able to compress, packetise and send 20 frames per
second. The receiver should be able to decode and render 20 fps. Additional information on the video
codecs mapping with respect to the frame size can be found in [WP-Cod].
The color_quality_range and the overall_quality_range indicate a range of possible
levels of compression for a single frame which may be available for a given codec. The higher the
produced compression of the video data, the lower is the quality. The [RFC2327] suggest expressing the
quality with numbers between 0(lowest quality) and 10(highest quality), indicating that this should be the
quality of a single frame. However, this resolution is quite small considering that the existing codecs and
the codecs to be developed in the future may have more than 10 compression levels. The so defined range
[RFC2327] does not fulfil the requirements from Section A.4.5.4, therefore the proposal for a broader
quality range between 0 and 10000, where 0 is the lowest quality and 10000 the highest. This range
should be applied to both the color_quality_range and the overall_quality_range. Since
the quality of the chrominance planes of a single frame are not relevant for every codec the
color_quality_range should be considered optional.
A.7.2 Transport level QoS Specification
Transport level QoS parameters are related to resource management level in the protocol stack, for
controlling access to network resources (typically using a signalling protocol like RSVP). This section
analyses the necessary information important for enabling service domain entities to validate
transport/network resources for multimedia streams (or even reserve them according to the scenarios in
Chapter 4). Note, that a separation of application level QoS and transport level QoS is required due to the
following observation, i.e. the same degree of application level QoS can be achieved by different levels of
transport level QoS by changing the codec. For example, the same audio quality can be delivered using
PCM codec at 44,1 kHz, 16 bit, stereo resulting in a data rate of 172 kbps or using MPEG Layer 3 audio
codec which results in 19 kbps. However, significantly more terminal resources are required when using
MPEG layer 3 audio codec. For video, the situations is even more complex. Also, a given transport level
QoS can be mapped to many different application level QoS parameters. This also depends on the codec
used and even, for video, on the complexity of the source material (i.e. video streams incorporating
multiple flows). Therefore, it is only the sending host that can derive a proper transport layer QoS from a
application layer QoS description for video together with the codec to be used.
Two types of QoS parameter sets are required, one that describes the amount of traffic that is going to be
injected in the network (Traffic Information or TI, according to [Bos02]) and one set that describes the
treatment that the packets receive from the network (Sensitivity Information or SI, according to [Bos02]).
In contrast to [Bos02], where a codec corresponds to one TI level, we have to support multiple TI per
codec. Also, one TI level supports multiple codecs. In our terms, only the combination (codec, application
layer QoS) results in a single TI parameter set. The end-system should be able to specify per media
stream and per <codec, application QoS, TI>-combination an ordered set of acceptable SI QoS levels. Per
Page A.212
MIND
1.2 / 0.1
<codec, application QoS, TI> a list of SI levels is possible. Similar of [Bos02], the end-system may
propose an ordered list of preferred SI values per TI. However, we both associate tags with TI and SI to
later reference them in different phases of negotiations. The TI and SI parameter are specified by prenegotiation separately from the <codec, application QoS> mappings, since only at the beginning of a
media session (i.e. negotiation) it is possible to estimate the available resources (both local and network)
for associating the traffic information with the application level QoS information.
A.7.2.1
The Traffic Information – TI
The Traffic Information (TI) parameter sets (compare to [Bos02]) identifies the amount of traffic that the
application is injecting for the given multimedia stream into the network. The following parameters are
characterizing TI:
•
peak bit rate (pbr)
•
sustainable bit rate (sbr)
•
maximum packet size (mps)
•
maximum burst size (mbs)
•
QoS type (qtp). – The QoS type defines the type of service that the application requires, for
example GUARANTEED_SERVICE, CONTROLLED_LOAD or BEST_EFFORT
This information is enough to provide intermediate entities (e.g. enhanced SIP proxies) knowledge about
the amount of network resources required by the multimedia data flow and the tightness of QoS guarantee
to apply. If the end-system details this requirements in the session setup message, there is no need for
service domain control entities to derive these parameters from codec descriptions (which is very hard for
real-time video).
A.7.2.2
The Sensitivity Information – SI
The Sensitivity Information (SI) parameter (compare to [Bos02]) identifies the expected treatment that the
network should provide to all packets that belong to a flow with a given TI. The following parameters are
characterizing SI:
•
maximum end-to-end delay in ms (me2ed)
•
maximum end-to-end delay variation (me2edv)
•
maximum packet loss ratio (mplr)
A given combination of (TI, SI) uniquely identifies the transport layer QoS on an end-to-end basis. It can
also be used as an input for signalling protocols like RSVP. Also, proper DiffServ code-points could be
derived from a given (TI,SI) combination. In addition, similar formats like the one in [Bos02] can be
defined. This is for future study.
A.7.3 E2ENP as SDPng extension
This section describes an SDPng extension proposal32 taking into account the requirements set forth in
Section A.4.
32
For the sake of simplicity and readability, in this document we follow the convention of indicating characters like
“&” as is, instead of the escaped version (i.e. “&” for “&”) mandated by the XML standard.
Page A.213
MIND
1.2 / 0.1
The goal is to define modular extensions to SDPng. This can be achieved by introducing a set of new
elements within the new namespace "e2enp". The new elements can be defined either as part of a new
version of SDPng, or in a separate SDPng profile named E2ENP, containing the corresponding XML
schema [XMLSC]. Such a new E2ENP profile would thus feature a header like the following:
<xml:schema targetNamespace="http://www.iana.org/sdpng/e2enp"
xmlns:e2enp="http://www.iana.org/sdpng/e2enp"
xmlns:sdpng:"http://www.iana.org/sdpng"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsd:import namespace="http:www.iana.org/sdpng" schemalocation="sdpng.sd"/>
XML Example A. 2
In any case, some changes to the current SDPng proposal - including the Audio Codec and RTP profiles defined in [SDPNG03], [SDPNG04] and [SDPNG05] are hereby proposed. If accepted, these changes
would therefore affect the original SDPng (and Audio Codec and RTP profiles) XML schema.
The decision whether to move to a new version of SDPng or to define an extension thereof is left for
discussion.
The new namespace "e2enp" shall be indicated in the root element of the SDPng document (i.e. the
<desc> element).
Additional reasons for assigning attributes to the root element of SDPng is the desiderata that SDPng
[SDPNG04], [MMUS_53] should work with several different protocols, support security, be simple and
effective, etc. Over the attributes of the root element it would be possible to define a general header of the
protocol for indication of different SDPng profiles corresponding the needs of the SDPng carrier and the
purpose of this carrier. This separation of the SDPng description purpose in the header can result in
effective processing over customized parsers understanding different SDPng dialects that correspond
different processing purposes, like e.g. negotiation of capabilities, negotiation of QoS in network terms,
negotiation of QoS in application level terms, a combination there of, etc. Additionally such profile
definitions would enable the generation of compact SDPng messages respective the profile needs and
would help the unique differentiation of common elements belonging to different profiles.
Some of the carrier protocols like e.g. MEGACO [MEGACO] do not indicate the type of the carried
content, due to this reason the indication of SDPng profile within a header would help that also such
protocols may perform unmistakably with different attachments.
Since security is a general task within SDPng the elements belonging to security can also be assigned to a
general SDPng header.
Additional problem by both SDPng and E2ENP is how to de-reference XML-Object descriptions which
belong to one and the same or to many different documents. XML has a simple referencing mechanism
for referencing complete XML elements by their name. The problem with this referencing occurs in cases
when not the complete XML element, but only parts of it should be referenced. One bigger problem is the
de-referencing of objects within different documents. There is an XML recommendation [XLINK] for
linking different documents in one, but there is still no existing parser implementing this
recommendation. Additionally, XLink allows two parallel interpretations, namely:
•
Linking of the multiple XML documents into one document and post-processing it to a custom
object (Java, C++, etc.)
•
Pre-processing every XML document separately and generating an aggregated custom object
afterwards.
Page A.214
MIND
1.2 / 0.1
Furthermore an XML processing agent can as well use only well-formed XML messages and implement
by itself the validation logic or the validation logic can be directly implemented within the multimedia
application / QoS broker. The advantage in this case is that the application / Broker can directly work
with its custom objects and use different external representation agents (e.g. XML, SDP, SDPng) by
exploiting the same information contents for different purposes (e.g. negotiation, policy management,
reservation, etc.). In this case there would be only a simple XML Schema definition which is specific for
a certain message type, i.e. only single documents (messages) would be proved for validity without dereferencing at XML level (This corresponds the second XLink implementation possibility).
Due to listed above referencing problems and the still unstable state of the SDPng draft we currently do
not introduce E2ENP XML-specific schema but only well-formed XML examples. The further
convergence of SDPng and E2ENP might as well lead to some schema definition changes and is a topic
of further studies and discussions.
A.7.3.1
Overview
First of all, this proposal introduces the use of a new element <e2enp:purpose>, in order uniquely
identify the E2ENP content as associated with specific E2ENP phases, according to the requirements set
forth in Section A.4. Since the E2ENP information is meant to be piggybacked via SIP standard methods,
this approach allows extending the usage possibilities of SIP, by defining an E2ENP SDPng-based metaprotocol, without changing SIP semantics and grammar.
Furthermore, in order to enforce the E2ENP features, this proposal:
•
defines other two new elements, <e2enp:qosdef> and <e2enp:qoscfg>
•
allows the various resulting sections to be independently delivered by SIP (or other signalling
session protocols) via piggybacking, at different times and via different methods, according to
the various E2ENP phases.
This proposal introduces small changes to the SDPng <cfg> element, and provides detailed guidelines
how the information contained in that element should be linked to the other new elements.
This proposal revises also the SDPng <constraints> element semantics, since the
<e2enp:qoscfg> element, which allows specifying QoS correlation and time synchronization
constraints (according to the model proposed in Section A.6.3), already covers most of the corresponding
features.
This proposal thus attempts to define as much as possible modular extensions of SDPng, so as to allow
easy interoperability with applications not supporting said extensions.
A.7.3.2
The <e2enp:purpose> element
SIP is defined as a signalling session protocol for establishing communication between peers. It considers
in general only the initiation of the connection, leaving aside the usage and/or application-specific
features. These features are described with the means of SDP or SDPng.
In some cases it is necessary for the application to have some additional information about how to treat
the SDP/SDPng information delivered over SIP, especially considering that from application perspective,
the protocol runs as in a modular way33.
33
“The modular way” does not always fulfil the ACID (atomicity, consistency, isolation, durability)-characteristics of
transactions, which is why this SIP procedure should NOT be in general considered a transaction.
Page A.215
MIND
1.2 / 0.1
Since the E2ENP requires three different information exchanges among peers (namely, the End-to-End
QoS Pre-negotiation, End-to-End QoS Negotiation, and End-to-End QoS Re-negotiation phases), it is
necessary to differentiate inside the protocol the corresponding procedures.
E2ENP can explicitly carry the signalling about the type of phase, the start/stop of the given phase, and/or
the resource reservation status, independently of SIP (or whatever signalling session protocol is used for
piggybacking E2ENP information). To this extent, we hereby define a SDPng-based meta-protocol, by
introducing a new XML elements, to be present in all the E2ENP-related SDPng information, at the very
beginning of the E2ENP content, as a form of PDU header. This new element is a different form of a
header compared to the SDPng general header discussed above (Section A.7.2) and serves only the
differentiation of the E2ENP phases and the possibility to reference those.
The following example shows a possible instantiation of the <e2enp:purpose> element:
<?xml version='1.0' encoding='utf-8'?>
<desc xmlns="http://www.iana.org/sdpng"
xmlns:e2enp="http://www.mind.org/e2enp" >
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841001" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="request" name="pre-negotiation"
mode="push"/>
<e2enp:caching cache_results="true"/>
</e2enp:purpose>
<!-- the rest of the message code here -->
</desc>
XML Example A. 3
For simplicity reasons the framing <desc> element is omitted in the all following XML examples.
A.7.3.2.1
The <e2enp:session> element
The <e2enp:session> element uniquely identifies the given E2ENP phase described in the
remaining portion of E2ENP PDU content, and the final results of such phase. The definition of the
<e2enp:session> element is based on the <owner> element proposed in [SDPNG03], [SDPNG04].
It is envisioned to negotiate and use compact session identifiers derived (e.g. via hash) from the
<e2enp:session>, in order to limit the size of E2ENP PDUs: in such a case, the
<e2enp:session> (with the calculated hash) would be used as is in the first PDU of any given
E2ENP phase, or concatenation thereof; afterwards, only the hashed version would be then used.
Page A.216
MIND
1.2 / 0.1
Additionally, it is envisioned to use digests within the <e2enp:session> element for uniquely
identifying every E2ENP session, for more information see Section A.9.
One may notice that this element might be more precisely renamed as <e2enp:phase>, since it
describes an individual E2ENP phase. However, one SIP session may exchange multiple phases, e.g. in
case of push-pull negotiation mode. Therefore there is no one-to-one correspondence between E2ENP
phase and <e2enp:session> element. When multiple contiguous phases are coalesced into one SIP
session, the <e2enp:purpose> element indicates the last one of a series of contiguous phases.
Therefore the E2ENP phase indicated in the <e2enp:session> element of any given
<e2enp:purpose> element is the last one compared to the E2ENP phase sequence.
A.7.3.2.1.1
The <e2enp:expires> child element
The <e2enp:expires> child element indicates for how long the E2ENP information corresponding to
the given <e2enp:session> element is to be considered as valid.
Upon response to the Offerer, each Answerer shall start a timer, set to the value specified in the
<e2enp:expires> element. Should this timer expire, the Answerer should move the corresponding
E2ENP information in a "zombie" state.
In turn, the Offerer shall refresh the given E2ENP information before said timer expires.
Only when no media or signalling sessions referring to that E2ENP information exists anymore, can the
Offerer and/or Answerer silently discard the "zombie" information.
This rationale applies also to the case of other E2ENP information referring to the given obsolete E2ENP
information (see next paragraph): as long as any valid (i.e. not in a "zombie" state) E2ENP information
referring to the given "zombie" one exists, the Offerer and/or Answerer can not silently discard said
"zombie" E2ENP information.
A.7.3.2.2
The <e2enp:use> element
The E2ENP information, which the <e2enp:session> element refers to, can be used in other
instances of E2ENP content, in order to refer to items not defined in the given E2ENP content. The
E2ENP Agent assumes that the correct reference resolution is carried out by the application/ middleware
using the E2ENP services. To this extent, the name of the referenced item could be either completely
specified (thus indicating the <e2enp:session> element pointing to the results of the corresponding
previous E2ENP phase), or not completely specified. In the latter case, the application/middleware or the
XML parser might be designed so as to search any unresolved item within the results of previous phases.
The <e2enp:use> element, allows creating a list of references to known pre-existing instances of the
<e2enp:session> element. Therefore the <e2enp:use> element can be used for:
•
Allowing peers agreeing on which previous E2ENP Phase results to enforce in the given E2ENP
Phase
•
Allowing application/middleware or the XML parser searching any unresolved item in the saved
results of the previous E2ENP Phases uniquely identified by the <e2enp:use> element.
•
Keeping track of active sessions.
For instance, the E2ENP content describing an instance of the End-to-End QoS Negotiation Phase for a
given couple of peers shall reference information pre-negotiated ahead, by indicating in the
<e2enp:use> construct of the <e2enp:purpose> element, the unique <e2enp:session>
element of that pre-negotiated information. This referencing would be of course not necessary (and thus
the <e2enp:use> element would be not present), should the E2ENP content - relative to both phases be jointly piggybacked in one SIP message (i.e. case of phases carried out consecutively in time).
Page A.217
MIND
1.2 / 0.1
A.7.3.2.2.1
The use of the <e2enp:expires> child element
The presence of the <e2enp:expires> child element in the listed <e2enp:session> elements is
not mandatory. If present, though, the meaning would slightly differ from the normal use of the
<e2enp:expires> child element: its presence would in fact signify for how long the given referenced
<e2enp:session> element should be considered as valid (i.e. rest time of validity of the E2ENPsession), from the perspective of the <e2enp:session> element referencing it. Of course, a given
<e2enp:session> element may reference others for a time window no longer than the original value
of the time specific in of the <e2enp:expires> child element of the referenced sessions.
A.7.3.2.3
The <e2enp:description> element
The <e2enp:description> element indicates the nature of the E2ENP information, the given
<e2enp:purpose> element refers to. The "type", "name", and "mode" attributes of the
<e2enp:description> element are defined as follows:
type:=”request” | ”response”
The "type" attribute identifies who is the Offerer and who is the Answerer of a given E2ENP phase.
name:=”standard” | ”pre-negotiation”| ”negotiation” |
”re-negotiation”| ”start-reservation” | ”ready-reservation”|
”cancel-reservation” | ”cancelled-reservation” | ”expire” |
"taken-over"
The "name" attribute defines the type of E2ENP phase, whose description is contained in the remaining
part of the E2ENP content:
• “standard” – standard use of the SIP message piggybacking this E2ENP content, according to
[SIPBIS09], [RFC3261].
• ”pre-negotiation” – the SIP message piggybacking this E2ENP content is used for carrying
out the End-to-End QoS Pre-Negotiation Phase.
• ”negotiation” – the SIP message piggybacking this E2ENP content is used for carrying out the
End-to-End QoS Negotiation Phase.
• ”re-negotiation” – the SIP message piggybacking this E2ENP content is used for carrying out
the End-to-End QoS Re-Negotiation Phase
• ”start-reservation” – the SIP message piggybacking this E2ENP content is used for
signalling the start of a reservation process (during either an End-to-End QoS Negotiation Phase or an
End-to-End QoS Re-negotiation Phase).
• ”ready-reservation” – the SIP message piggybacking this E2ENP content is used for
signalling the completion of a reservation process (during either an End-to-End QoS Negotiation Phase or
an End-to-End QoS Re-negotiation Phase).
• ”cancel-reservation” – the SIP message piggybacking this E2ENP content is used for
signalling the request to release previously reserved resources.
• ”reservation-reservation” – the SIP message piggybacking this E2ENP content is used
for confirming the release of previously reserved resources.
Page A.218
MIND
1.2 / 0.1
• ”expire” – the SIP message piggybacking this E2ENP is used for forcing the expiration of the
E2ENP information identified by the given <e2enp:session> element. Contextually, the attribute
time of the <e2enp:expires> child element of the given <e2enp:session> element shall be set
to zero. When this command is used, the E2ENP contents referencing the given <e2enp:session>
element are forced to be released according to the rationale described in Section A.7.3.2.1.1.
• ”taken-over” – this command is used by the Mediator in third-party-assisted negotiations (see
Section A.4.5.7) for notifying to the peer, whom the negotiation is being redirect to, that such redirection
is taking place.
Should some phase concatenated, the "name" attribute would indicate only the latest phase (according to
the order described in Section A.6.2).
Other definitions of the "name" element could be considered in the future.
mode:=”push” | ”pull” | ”push-pull”
The "mode" attribute indicates the negotiation mode, as described in Section A.3.2. This attribute
applies only the attribute "name" is set to "pre-negotiation" or "negotiation".
The defaults values for the "type", "name", and "mode" elements are, respectively, "request",
"standard", and "push".
Additionally the <e2enp:description> element is used to indicate if the reservation process should
be coordinated at all participating peers or not.
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="start-reservation"
coordination=”true”/>
</e2enp:purpose>
XML Example A. 4
The attribute “coordination” is the indicator for performing the coordination process, it can take
only two values “true” (if it coordination is required) and “false” (if not), see also Section
A.8.1.1.2.1.3
A.7.3.2.4
The <e2enp:caching> element
The <e2enp:caching> element is used to instruct the E2ENP user agent and the QoS aware
application / QoS Broker if the given PDU should be cached or not by processing of the PDUs leasing.
This is necessary if the negotiation/re-negotiation PDUs should be cashed (pre-negotiations are always
cashed). The attribute “cache_results” is the indicator for the cache processing. The negotiation/renegotiation PDUs might be cached in cases of full negotiation/re-negotiation, since those PDUs might
carry information which can be treated as pre-negotiation contents. Additionally, if the multimedia
session description should be considered relative static (i.e. typical negotiation PDU), it can also be long
term saved, e.g. the settings of some chat-room conference environment can be long term leased to save
time by performing multiparty negotiations.
A.7.3.2.5
The <e2enp:mediation> element
The <e2enp:mediation> parameter is optional and can take any of the following values:
Page A.219
MIND
1.2 / 0.1
mediation:=”third-party-assisted" | "external-negotiation”
If it is not applied, the type of the negotiation is simply peer-to-peer. This parameter is used to indicate
that a peer is negotiating on behalf of somebody else. This would be also implicitly indicated over the
header “From” of the SIP message and the element <e2enp:session> of the <e2enp:purpose>
element. The peers negotiating on behalf of somebody else should be generally considered services like
mediating parts of a broker, conferencing services, etc. The mediator uses the parameter
<e2enp:mediation> in order to inform the negotiating parties that it is not the party which is going
to send and/or receive but just a party mediating the negotiation. In this case the mediator should use as
indication of its functionality ”third-party-assisted".
Whenever logging into a network operator (at switch-on time and whenever a vertical handover occurs),
the network operator will validate the user's QoS preferences (already matched against terminal
capabilities) against the network capabilities. However, at this time it is not yet possible to foresee if and
when cases occur whereby two end-peers do not have a chance to agree on a common set of QoS
Contracts whatsoever. In such cases, a solution typically adopted is to insert transcoding units along the
data path.
The possibility to couple such units with SIP proxies and directory services is envisioned, so as to force
the Offerer to use a specific transcoder, or a chain thereof. Whenever the E2ENP session between the two
end peers fails, the Offerer could try to ask support from the network operator or any other service
provider, to provide transcoding services. This means to discover via a directory service any available
transcoder unit(s), meeting the Offerer's given requirements and Answerer's capabilities, and manage
third-party negotiation among the Offerer, the various transcoders in the middle, and the Answerer. The
transcoding service would therefore use the E2ENP analogously to what MEGACO [MEGACO] today
does.
The Transcoding Service would orchestrate the pairing of nodes in the chain of peers, and take care that
resources are properly reserved via the E2ENP economy principle (Similar consideration for resource
release). Should the connection between the two end users span multiple administrative domains and/or
technologies, it may also be possible that transcoding services offered by different providers cooperate,
again by using E2ENP for performing third-party-negotiation. To this extent “externalnegotiation” describes the case whereby the mediator acts as an external third-party, on behalf of an
entity trying to force two peers carry out the E2ENP between themselves. The Transcoding Service
indicated above would control one or multiple such "external mediators" in tandem.
The idea of an external functionality controlling the establishment of a path among several processing
units is well-known in the literature [Mao00]. The goal of the solution hereby proposed is thus to allow
extending the scope of E2ENP protocol to complex cases, whereby intermediate components like
transcoders are required.
The <e2enp:mediation> element might undergo future development with respect to additional
values different from the described above. If active participation of the Mediator in the data streaming
should be considered or if more than one mediation components should take place in the negotiation, e.g.
involvement of Conference Control Units, QoS Broker, etc., this would be indicated via the
<e2enp:mediation> element.
The following example corresponds to the starting message of a SIP session within the E2ENP-session
between the Mediator and the future Answerer:
INVITE sip:mary_fix@195.37.78.173
From: sip:mary_moby@3ffe:1200:3012:c006:290:27ff:fe7d:d024
To: sip:mary_fix@195.37.78.173
.
.
.
.
.
Page A.220
MIND
1.2 / 0.1
Content-Type: application/sdpng/e2enp
.
.
.
.
.
<e2enp:purpose>
<e2enp:session user=”Kate” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="negotiation"/>
<e2enp:mediation mode=”third-party-assisted”/>
</e2enp:purpose>
XML Example A. 5
According to this example the peer “mary_fix@195.37.78.173” would recognize that the peer
“mary_moby@3ffe:1200:3012:c006:290:27ff:fe7d:d024” is just a Mediator for the peer “43.196.180.1”
whose owner is “Kate”.
A.7.3.3
The <e2enp:alternative_service> element
The SIP-response “300 Multiple Choices ”[RFC2543] might be used for redirecting a connection to
another alternative device if the called peer has no capabilities to handle the call, but may take advantage
of using some allocation and presence services to detect another peer within its vicinity which can handle
the call. The process of allocation of devices and services is out of scope of this writing, but in general
existing technologies like Bluetooth [BLUE] and the SIP support for presence [SIPPRE01] might be
taken into consideration.
According to [SIPBIS09], [RFC3261] “The response (300 Multiple Choices) MAY include a message
body containing a list of resource characteristics and location(s) from which the user or UA can choose
the one most appropriate.” A possible E2ENP structure describing the address and the reference to the
profile settings of an alternative service promoted over a mediator is shown below:
<e2enp:alternative_service type=[TYPE]>
<e2enp:service>
<e2enp:service_id id="my-funny-service" protocol="SIP"
version=[SIP VERSION] address=[SIP ADDRESS]/>
<e2enp:session user="Mary" session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="195.37.78.173"/>
</e2enp:service>
</e2enp:alternative_service>
XML Example A. 6
where
SIP_ADDRESS – corresponds the formation of SIP-conform addresses as defined in [RFC2543].
SIP_VERSION – corresponds the SIP-conform version syntax of SIP as defined in [RFC2543].
The element <e2enp:service> is used to describe the alternative service and to refer to already
known or to carried within this E2ENP-message session-descriptions. This multiple carried descriptions
start with a <e2enp:purpose> element. The element <e2enp:service> can be repeated.
Page A.221
MIND
1.2 / 0.1
In the case of mediation the multiple <e2enp:service> elements can have the same
<e2enp:service_id> but address different session descriptions since the Mediator should both
inform the Offerer and the future Answerer about the corresponding negotiations which the Mediator
performs on one hand with the Offerer and on the other hand with the future Answerer without addressing
unknown information as described in the requirements for the Mediator – see Section A.4.5.7.
If the usage is standard according to [SIPBIS09], [RFC3261] the multiple <e2enp:service> elements
describes multiple alternative services.
The current description of the element <e2enp:alternative_service> is only in sense of E2ENP
and mediated negotiation. Additional description of the usage of <e2enp:alternative_service>
in the sense as defined by [SIPBIS09], [RFC3261] would be considered in the future when SIP-enabled
services are taken into account.
A.7.3.3.1
An example for the usage of the <e2enp:alternative_service> element
<e2enp:purpose>
<e2enp:session user="Mary" session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="195.37.78.173"/>
<e2enp:mediation mode="third-party-assisted"/>
</e2enp:purpose>
<e2enp:alternative_service type=”mediation”>
<e2enp:service>
<e2enp:service_id id="my-funny-service" protocol="SIP"
version="SIP/2.0" address="sip:mary_fix@195.37.78.173"/>
<e2enp:session user="Mary" session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="195.37.78.173"/>
</e2enp:service>
</e2enp:alternative_service>
XML Example A. 7
According to the requirements for the Mediator, it is disallowed to use references to unknown sessions.
That is why by implementing a mediator the <e2enp:use> element of a <e2enp:purpose> element
within a referred session from a <e2enp:service> element should be omitted as in the example
above. The mediator should then take care of collecting all the referred information and put it explicitly
(no references) in the current description/-s.
By performing a direct negotiation between themselves at later time the Offerer and the Answerer address
if necessary sessions of the indirect pre-negotiation over the Mediator.
Figure A.11 shows an example of the usage of the <e2enp:alternative_service> element.
Page A.222
MIND
1.2 / 0.1
Figure A.11: Usage of the <e2enp:alternative_service>
The indication of the sip-address and sip-version in the third message within the
<e2enp:service_id> element (Figure A.11) can directly be used by the Offerer (Kate’s device) to
create the new SIP call to the new Answerer (Mary’s home terminal). This information is necessary
especially in cases when the Offerer does not know about the device where the call is being redirected.
A.7.3.4
Information that users pre-negotiate among themselves on a peer-to-peer basis
Compared to the existing SDPng proposal [SDPNG03], [SDPNG04], we hereby propose to distinguish
codec definitions from RTP payload type definitions and codec parameterisation34. This results in the
definition of a new element, and the redefinition of the Audio Codec and RTP profiles.
With this assumption, negotiating parties can quickly converge on agreements, by pruning first all the
codecs that are not supported by all peers. Once the commonly agreed set of codecs has been identified,
the negotiating parties can, as a further step, handle the negotiation of payload types and codec
parametrizations.
The definition of payload types is based on [RTP-Prof] and the RTP Profile defined in [SDPNG03],
[SDPNG04].
With respect to audio codecs, static payload types are associated with fixed codec parameterisations, as
defined in [RTP-Prof]: therefore only for dynamic payload types a detailed specification of codec
parameterisation35 is required.
Concerning video codecs, the parametrization indicated in [RTP-Prof] is not sufficient to fully
characterize the given codec from a QoS perspective. Two possible solutions are envisioned:
34
For codec parameterisation we hereby intend the list of parameters accompanying the definition of a given codec,
e.g. the sampling rate and the number of channels in the case of audio codecs.
35
To this extent, we propose to use the inline format described in [SDPNG03]
Page A.223
MIND
1.2 / 0.1
1.
To pre-negotiate the names, payload types, and (partly) parameterisations36 of codecs, ahead of
any user-specific pre-negotiation.
This means splitting the End-To-End QoS Pre-Negotiation Phase into two distinct sub-phases: in an
early stage, only pre-negotiation of terminal-related information would take place; this sub-phase
would then be followed by one (or many) user-specific pre-negotiation sub-phases37 at later times,
whereby each of these later sub-phases would map user profile information to the results of former
sub-phase.
The reason for pre-negotiating also codec parametrization in the terminal-related pre-negotiation subphase stems from the fact that the negotiating parties may want to narrow down the range of possible
configurations of video codecs, so as to meet feasibility requirements, with respect to the actual
amount of hardware/software resources of the given peers.
2.
Alternatively, to determine which subsets of the user profile match the given capabilities and the
(potential) amount of local resources, and negotiate only those subsets with peers, along with
codec names and the payload types.
Both alternatives are described with the diagram on Figure A.9. In case of negotiating of only codecs, the
“User level QoS” is non-existent and the “QoS Contracts Sketch” is equal to the “System Configuration
File”. Respectively only the system capabilities would be validated for such a case.
By following this rationale, applications can be designed in a simpler way: either they handle codec
parametrization negotiation in an early sub-phase, or they simply handle the negotiation of user-specific
QoS specification.
The codec descriptions can be assimilated to general-purpose capability descriptions that peers can prenegotiate offline among themselves. Pre-negotiated information can also refer to and/or be incorporated
into SDPng profiles [SDPNG03], [SDPNG04].
Furthermore, we introduce intervals in the original SDPng codec parameterisation, in order to reduce the
number of items to negotiate. This approach allows also defining in an intuitive manner the Adaptation
Paths, as well as avoiding ambiguities, especially with respect to video stream characterization.
A new <e2enp:qosdef> element provides means for expressing both capabilities and stream-level
QoS Contracts in a modular way:
•
an instance of <e2enp:qosdef> element qualified with the attribute "name" set to
"capabilities" describes only the terminal-related information concerning capabilities;
whereas
•
an instance of <e2enp:qosdef> element qualified with the attribute "name" set to
"contracts" describes the various parameterisations of those capabilities matching the given
user profile information (see Section A.7.1), in terms of stream-level QoS Contracts.
The application and/or middleware will select the best codec out of the pre-negotiated <e2enp:qosdef
name="capabilities">, and a subset of QoS Contracts out of the given user profile information.
The resulting information (a subset of the cross-product of the <e2enp:qosdef
name="capabilities"> and of the user profile information - see A.7.1) will then form the
<e2enp:qosdef name="contracts"> element, which deals with stream-level QoS Contracts at
application level. This new element differs from the original information contained in the user profile
36
To this extent, we propose to use the inline format described in [SDPNG03]
37
Leveraging user profile information, as indicated in § A.7.1.
Page A.224
MIND
1.2 / 0.1
information, insofar as specific encoding attributes are now specified. This <e2enp:qosdef
name="contracts"> element will then be exchanged among peers during the pre-negotiation phase.
The pre-negotiation of the two types of <e2enp:qosdef> elements can take place among peers at
different times, irrespective of later actual use, and be scoped in time with different timescales, by using
the <e2enp:expires> element of the <e2enp:purpose> element associated with the given
<e2enp:qosdef> element. The limitation in time of E2ENP information validity is necessary, in order
to avoid using obsolete information at a later time.
A.7.3.4.1
The <e2enp:qosdef name="capabilities"> element
The <e2enp:qosdef name="capabilities"> element allows peers agreeing on a common
subset of capabilities to be employed during later media sessions. This element acts as a container of two
classes of elements, codec definitions and payload type definitions, applied to each type of media (audio,
video, etc.). Definitions from the original Audio Codec, RTP, and Video Codec profiles specified in
[SDPNG03], [SDPNG04] are envisioned to be used, but with some extensions, as indicated below.
<e2enp:qosdef name="capabilities">
<e2enp:audio:codec name="PCMU" scope="applicable"/>
<e2enp:audio:codec name="G729" scope="applicable"/>
<e2enp:audio:codec name="G722" scope="possible"/>
<e2enp:audio:codec name="L16" scope="possible"/>
<rtp:pt name="rtp-avp-0" pt="0" format="PCMU"/>
<rtp:pt name="rtp-avp-18" pt="18" format="G729"/>
<rtp:pt name="rtp-avp-9" pt="9" format="G722"/>
<rtp:pt name="rtp-avp-10" pt="10" format="L16"/>
<rtp:pt name="rtp-avp-11" pt="11" format="L16"/>
<e2enp:video:codec name="H263" scope="applicable"/>
<e2enp:video:codec name="H261" scope="applicable"/>
<e2enp:video:codec name="MPV" scope="possible"/>
<e2enp:video:codec name="MP2T" scope="possible"/>
<rtp:pt name="rtp-avp-34" pt="34" format="H263"/>
<rtp:pt name="rtp-avp-31" pt="31" format="H261"/>
<rtp:pt name="rtp-avp-32" pt="32" format="MPV">
<e2enp:video:codec frame_rate_range="30,30" frame_size_set="SIF"
color_quality_range="0,10000"38 overall_quality_range="0,10000"/>
</rtp:pt>
<rtp:pt name="rtp-avp-33" pt="33" format="MP2T">
<e2enp:video:codec frame_rate_range="30,30"
frame_size_set="720x576" color_quality_range="0,10000"
38
This is due to the fact that MPEG-1 supports a constant data-rate (1.2MB) by different quality.
Page A.225
MIND
1.2 / 0.1
overall_quality_range="0,10000"39
overall_quality_range="9500,9800"/>
</rtp:pt>
<rtp:pt name="rtp-avp-100" pt="100" format="WAVI">
<e2enp:video:codec frame_rate_range="5,30"
frame_size_set="QCIF,CIF" color_quality_range="9100,10000"
overall_quality_range="9100,10000"/>
</rtp:pt>
</e2enp:qosdef>
XML Example A. 8
For the sake of simplicity, this example shows the definition of video codecs both with and without codec
parametrization. Otherwise, the <e2enp:qosdef name="capabilities"> element shall either
contain codec parametrization, or contain none of them.
One can easily note that the information conveyed in this section is now equivalent to a sort of
configuration file of the user's terminal device; this information is user-independent, and thus
complementary to the content of the user profile information described in the user profile information, as
well as to the content of the <e2enp:qosdef> element (derived from said user profile information)
dealing with stream-level QoS Contracts.
A.7.3.4.1.1
The attribute "scope"
The attribute scope indicates in a request (negotiation bid) whether the corresponding E2ENP element is
to be considered as a required (applicable) or desired (possible) option; whereas in a response
(negotiation counter-offer), that attribute indicates whether the corresponding E2ENP element has been
validated (applicable) or rejected (not-applicable).
scope:="not-applicable" | "applicable" | "possible"
The Answerer may also indicate in the counter-offer what capabilities it can support, and to what extent.
If a given capability is supported "as is", only the corresponding identifier is indicated, along with the
scope attribute set to "applicable".
If a given capability is not supported, the corresponding identifier is simply omitted.
If the Answerer proposes in the counter-offer a modified version of the parameterisation of a given
capability in the <e2enp:qosdef name="capabilities"> element (as a subset of the original
bid), the entire description with the updates is returned in both types of <e2enp:qosdef> elements. In
any case, the <e2enp:qosdef> element dealing with stream-level QoS Contracts contains in a
response only updated codec parameterisations (see example in Section A.8.1.1.3.1).
Additionally, the Answerer can indicate a new option (unknown to the Offerer at pre-negotiation time):
this will be marked as "possible". The idea is that the Offerer can thus be informed of a potential
option that could be eventually used later, should the Offerer be upgraded with a new capability matching
that option.
For instance, the Answerer might indicate the support of a codec, which the Offerer currently does not
support. Should the Offerer acquire somehow that given codec (e.g. by downloading a software
component), the Offerer could then upgrade its policies to take into account this new capability.
39
This is due to the fact that MPEG-2 supports a constant data-rate (4MB) by different quality.
Page A.226
MIND
1.2 / 0.1
The value "possible" could also indicate the Answerer's state as being partially busy with respect to a
codec proposed by the Offerer. In this way, the Answerer may take into account its current working load.
This could for instance translate in an answer to the Offerer, indicating that generally the Answerer has
high capacity but that only part thereof is available at the moment. The Offerer may then save this
information for future re-negotiations whenever trying to upgrade the connection to work with a different
QoS level.
Should a capability be removed, or reconfigured at a later time, a new instance of the corresponding
<e2enp:qosdef name="capabilities"> pre-negotiation process would take place among
peers, in order to proactively and timely disseminate information about the given change, so that peers
can employ proper adaptation strategies.
Should the Answerer add a capability as "possible", the corresponding parametrization would be
returned directly in the <e2enp:qosdef name="capabilities"> element, in the element
corresponding to that new capability. In this case, the parametrization simply indicates configuration
information relative to that capability. Should the Offerer be upgraded with this extra capability at later
time, the Offerer could draw some contracts from the configuration information for running a new round
of the pre-negotiation process.
Peers can also renegotiate capabilities following the process described above at any time, in order to
inform each other about any change in capabilities availability.
A.7.3.4.2
The <e2enp:qosdef name="contracts"> element
Continuing the example above, the following XML fragment presents an example of codec
parameterisation in the new <e2enp:qosdef name="contracts"> element, as derived from a
mapping process described in the previous paragraph. This section deals with application-level QoS
Contracts, which are generally applicable to any stream of the type of media identified.
This new element contains a number of complex XML elements:
•
a mandatory <e2enp:policy> element, used for negotiating the resource management policy
to enforce;
•
at most one instance of any of the following parameterised elements:
o
<e2enp:qos_contracts for=”audio”> - describing all QoS contracts for
audio streams
o
<e2enp:qos_contracts for=”video”> - describing all QoS contracts for
video streams
o
<e2enp:qos_contracts for=”data”> - describing all QoS contracts for
data streams
o
<e2enp:qos_contracts for=”control”> - describing all QoS contracts
for controls streams
o
<e2enp:qos_contracts for=”transport”> - describing the necessary
transport resources (see Section A.7.3.4.2.1)
where such QoS Contracts are derived from the mapping of user profile information to capabilities,
as described in Section A.7.3.4. At least one of these elements shall be present. Due to simplicity
reasons only contracts for audio, video and transport are considered. The formal description of the
data and control contracts is left for future study.
<e2enp:qosdef name="contracts">
<e2enp:policy name="Let us optimize ((memory && network) || CPU)">
Page A.227
MIND
1.2 / 0.1
<e2enp:predicate id="predicate-1" first_term="optMemoryUsage"
second_term="optNetworkPerformance" function="and"/>
<e2enp:predicate id="predicate-2" first_term="predicate-1"
second_term="optCpuLoad" function="or"/>
<e2enp:criterion type="expression" idref="predicate-2"/>
</e2enp:policy>
<e2enp:qos_contracts for="audio">
<e2enp:contract name="audio-contract-1"
sampling_rate_set="4000,8000" channel_set="1"/>
<e2enp:contract name="audio-contract-2"
sampling_rate_set="8000,12000" channel_set="1,2"/>
<e2enp:contract name="audio-contract-3"
sampling_rate_set="12000,16000" channel_set="1"/>
<e2enp:contract name="audio-contract-4"
sampling_rate_set="16000,44100" channel_set="1"/>
<e2enp:contract name="audio-contract-5"
sampling_rate_set="44100,64000" channel_set="2">
<!--The contents of spare are described in A.7.3.4.2.4-->
<spare provider_id=”my-funny-provider”>
</e2enp:contract>
<rtp:map contract="audio-contract-1" format="rtp-avp-0"
peer_role="receiver"/>
<rtp:map contract="audio-contract-2" format="rtp-avp-18"
peer_role="receiver"/>
<rtp:map contract="audio-contract-3" format="rtp-avp-9"
peer_role="receiver"/>
<rtp:map contract="audio-contract-4" format="rtp-avp-10"
peer_role="receiver"/>
<rtp:map contract="audio-contract-4" format="rtp-avp-11"
peer_role="receiver"/>
<rtp:map contract="audio-contract-5" format="rtp-avp-125"
peer_role="receiver"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=„video“>
<e2enp:contract name="video-contract-1" frame_rate_set="10,15"
frame_size_set="CIF" color_quality_range="9100,9700"
overall_quality_range="9500,9800"/>
<e2enp:contract name="video-contract-2" frame_rate_set="15,20"
frame_size_set="QCIF" color_quality_range="9700,9850"
overall_quality_range="9800,9900"/>
<e2enp:contract name="video-contract-3" frame_rate_set="20,25"
frame_size_set="QCIF,CIF" color_quality_range="9850,9900"
overall_quality_range="9900,9960"/>
<e2enp:contract name="video-contract-4" frame_rate_set="25,30"
frame_size_set="CIF" color_quality_range="9900,9970"
overall_quality_range="9960,9990"/>
Page A.228
MIND
1.2 / 0.1
<e2enp:contract name="video-contract-5" frame_rate_set="30"
frame_size_set="720x576" color_quality_range="9000,10000"
overall_quality_range="9000,10000"/>
<rtp:map nominal=”true” contract="video-contract-1" format="rtpavp-31" peer_role="receiver"/>
<rtp:map contract="video-contract-1" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-1" format="rtp-avp-100"
peer_role="receiver"/>
<rtp:map nominal=”true” contract="video-contract-2" format="rtpavp-31" peer_role="receiver"/>
<rtp:map contract="video-contract-2" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-2" format="rtp-avp-100"
peer_role="receiver"/>
<rtp:map nominal=”true” contract="video-contract-3" format="rtpavp-31" peer_role="receiver"/>
<rtp:map contract="video-contract-3" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-3" format="rtp-avp-100"
peer_role="receiver"/>
<rtp:map nominal=”true” contract="video-contract-4" format="rtpavp-31" peer_role="receiver"/>
<rtp:map contract="video-contract-4" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-4" format="rtp-avp-100"
peer_role="receiver"/>
<rtp:map contract="video-contract-5" format="rtp-avp-33"
peer_role="receiver"/>
</e2enp:qos_contracts>
</e2enp:qosdef>
XML Example A. 9
The description of the color_quality_range and of the overall_quality_range
introduced above in Section A.7.1.
is
In this case the frame_rate_set="10,15" means that the receiver should at most be able to decode
15 fps and at least 10 fps, any decoding resulting in less than 10 fps is considered as a violation of the
contract. The sender does not need to provide more than 15 fps unless a contract change, because of, for
example, the discovery more resources at the receiver side is made and a request for contract change is
done.
A single video QoS contract can correspond to multiple payload types, since different codecs can produce
one and the same visual quality. To this extent the most preferable codec to use is indicated by the
mapping between the QoS contracts and the payload types (parameter nominal=”true”). The
parameter nominal=”true” is not mandatory and is used only in cases when multiple video codecs
are associated with one and the same video QoS contract. This is later on important by indicating with
which video codec the streaming should be started (see also Section A.7.3.5.2).
Page A.229
MIND
1.2 / 0.1
A.7.3.4.2.1
TI/SI Extensions to <e2enp:qosdef name="contracts"> element
The <e2enp:qos_contracts for=”transport”> element within the <e2enp:qosdef
name="contracts"> element allows peers and service domain entities agreeing on a common level
of transport QoS employed during later media sessions. This element acts as a container of TI and SI
elements (see also Section A.7.2). Note, however the difference to the syntax introduced by [Bos02].
<e2enp:qosdef name=”contracts”>
<!--audio and video application contracts according to section
A.7.3.4.2-->
<e2enp:qos_contracts for=”transport”>
<e2enp:contract name="TI-1" pbr="320" sbr="320" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
<!--The contents of spare are described in A.7.3.4.2.4-->
<spare provider_id=”my-funny-provider”>
</e2enp:contract>
<e2enp:contract name="TI-2" pbr="96" sbr="96" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
</e2enp:contract>
<e2enp: contract name="TI-3" pbr="64" sbr="64" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="180" me2edv="10" mplr="2E-4"/>
<suboption name="SI-2" me2ed="220" me2edv="20" mplr="2E-4"/>
</e2enp:contract>
</e2enp:qos_contracts>
</e2enp:qosdef>
XML Example A. 10
Note, that this definition is on per stream basis, since the validation and reservation processes are also
performed per media stream.40 This means that every TI definition corresponds the transport parameters
of a single media stream. The information how many streams with the same transport can be opened in
parallel is delivered by the validation process of the negotiation bids/answers (see Section A.6.6 and
Section A.7.3.5.2). This information results from monitoring the local and network resources and proving
the contracts against provider policies, so that the aggregation of all streams does not exceed certain
resource amount.
For the sake of simplicity, this example shows the definition of three alternative transport QoS contracts,
each of them having two SI options. Note that only a specific sub-option (SI) together with the main
option (TI) defines a complete transport layer QoS parameter set. But for specifying a full session
description for call setup, additional information is necessary. This means that the definition of transport
40
When reserving resources for multiple streams, this can be done in parallel, since the aggregated bandwidth is
already determined by the validation process. See also the constraints description in Section A.7.3.5.2.
Page A.230
MIND
1.2 / 0.1
is coupled on the definitions for audio, video, etc. and cannot exist separately, i.e. the transport definition
should follow some application level QoS definition. In cases of pre-negotiation the exchanged
information is only statistical and there is still no need to map the descriptions on the available resources,
therefore the definition of the transport is separated from the definition of the application level QoS for
audio, video, etc. By pre-negotiation the peers exchange information only on the available transport and
application level QoS contracts, for any possible future session setup. The mapping between the transport
and the application level QoS contracts is done by multimedia session establishment (i.e. negotiation),
since only then, having the knowledge of the currently available local and network resources, it is
possible to map the transport to the application level QoS contracts. The association between the transport
and the application level QoS can be done only by having knowledge about the structure of the
multimedia session, which should be established, e.g. the associations between transport and application
QoS for only audio conference is different as the association – for audio/video session.
The element <spare> may be changed by intermediate entities, or the receiver of the message in order
to indicate the usability of the contract within a specific provider domain. The structure of <spare> is
shown in Section A.7.3.4.2.4.
A.7.3.4.2.2
The <e2enp:policy> element
The <e2enp:policy> element conveys the type of policies to negotiate. The "name" attribute
provides a human readable description of the policy.
The optional <e2enp:predicate> child element allows expressing a Boolean predicate involving
two terms, each drawn from the following set:
•
“optMemoryUsage” – indicates the memory usage optimisation policy.
•
“optNetworkPerformance” – indicates the network performance optimisation policy.
•
“optPowerConsumption” – indicates the power consumption optimisation policy.
•
“optCpuLoad” – indicates the CPU load optimisation policy.
Additional values corresponding to other policies can be added in the future.
Alternatively, the value of the predicate terms can be drawn from the set of other instances of the
<e2enp:predicate> element. The type of Boolean function is indicated via the "function"
attribute, which can take any value out of the set: "and", "or". The "not" function is not used, since
the absence of a policy indicates implicitly that such a policy is not used. The <e2enp:predicate>
child element thus allows specifying combinations of the elemental policies listed above. These
combinations indicate specific correlations among the various policies.
The <e2enp:criterion> child element identifies a given policy via the "type" attribute, which
can take any value out of the set indicated above. Furthermore, an instance of this element can enforce an
instance of the <e2enp:predicate> element, by specifying the string "expression" as value of
the attribute "type", and by using an additional attribute "idref" identifying a given instance of the
<e2enp:predicate> element. The <e2enp:criterion> child element is mandatory and only
one instance of it can appear within a given instance of the <e2enp:policy> element.
A.7.3.4.2.3
The <e2enp:contract> element
This element represents the result of the cross-product process described in Section A.7.3.4. Those
Offerer's application-level QoS requirements matching with the available capabilities are hereby copied
from the Offerer's user profile information, and negotiated among peers. It may therefore results that at
the end of the negotiation process, the original application-level QoS requirements of the Offerer are
narrowed down to a subset thereof.
Page A.231
MIND
A.7.3.4.2.4
1.2 / 0.1
The <spare> element
With respect to the requirements set forth in Section A.4.5.1.1 and to the concept of spare contract
introduced in Section A.6.2.4.2, the <spare> child element of the <e2enp:contract> element is
hereby introduced to indicate those spare contracts, which are not supported by the given users' preferred
network provider. By the validation process those contracts are marked with the current provider
identification to indicate that they currently not usable. By handovers the validation of the contracts leads
to the removing of the spare indication for those contracts which are now usable and the contracts which
are not usable are blocked, see also Section A.7.3.7.41
The <spare> child element would be then an optional element, and its presence indicates that the given
contract is not going to be supported by the preferred network operator of the Offerer. The Answerer
similarly filters off those not indicated as not spare, based on her/his agreements with her/his preferred
network operator.
When a vertical handover occurs, either party can try to validate all of her/his contracts, including the
spare ones, which might eventually become applicable with respect to the new network provider. If the
end-peers cannot perform validation themselves, this can be done by the provider proxies as indicated in
Chapter 4 of this document. In any case the spare contracts are marked by validation with the respective
provider identification.
<spare provider_id=”my-funny-provider”>
XML Example A. 11
The <spare> element can be used also in the context of higher level QoS contract within negotiation
bids and answers. In order to mark which elements are blocked/unblocked by handover the elements
described in Sections A.7.3.7.2 und A.7.3.7.3 are used, the <spare> element indicates only at session
start up which elements cannot be currently used due to the provider policies of the home/visited network.
A.7.3.4.2.5
The <rtp:map> element
This element is proposed as an extension of the SDPng RTP Profile [SDPNG03], [SDPNG04], to
represent the association of a given application-level QoS Contracts with a specific format. The payload
type is specified by the "format" attribute, which references instances of the "name" attribute of the
<rtp:pt> element.
The attribute "contract" identifies the associated application-level QoS, by referencing instances of
the "name" attribute of the <e2enp:contract> element.
The attribute "peer_role" indicates whether the given association application-level QoS
Contract/Stream format is proposed by a receiver, a sender, or a sender/receiver, according to the
requirements set forth in Section A.4.5.1.4.1. In this way, not only receivers, but also senders can proactively disseminate information that will be later used for deciding how to handle re-negotiations, based
on APs (see Section A.7.3.5.2).
A.7.3.5
QoS Context- and stream grouping-related information, pre-negotiated among
users on a peer-to-peer basis
The concepts of QoS Context and stream grouping (and, more specifically, Association) presented in
Section A.4.5.1.3 can be modelled by introducing a new element <e2enp:qoscfg>, as an addition of
the <cfg> element.
41
Note, that the indication can be done directly on the object internal representation by the application/QoS Broker, if
the application/Broker de-reference the PDU references at application and not at the protocol level (E2ENP level).
Page A.232
MIND
1.2 / 0.1
More specifically, the <e2enp:qoscfg> element contains Adaptation Path (AP) description for a
given stream, as well as the definitions of Associations (or, more generally, groupings) thereof. Higher
level QoS Contracts capturing QoS correlation and time synchronization constraints among various
groups of streams, as well as (higher-level) APs thereof, can also be specified with this new element, as
explained later in this paragraph and in Section A.7.3.6.
The information contained in the <e2enp:qoscfg> element can be either pre-negotiated among peers,
irrespective of later actual use, or negotiated at connection set-up time (see Section A.8 for detailed
examples).
A.7.3.5.1
The <cfg> element
Within the context of the E2ENP idea, the scope of the SDPng original <cfg> element needs to be
clarified: the <cfg> element simply defines the mapping of formats (e.g. RTP payload types) with
transport-related information; whereas the full definition of APs (in terms of the capabilities and of the
QoS Contracts defined in the <e2enp:qosdef> elements) is totally supported by the new
<e2enp:qoscfg> element as described in Section A.7.3.5.2.
The only difference between this proposal and [SDPNG03], [SDPNG04] is the introduction of additional
attributes in the <rtp:session> element, for specifying which type of network and version thereof is
used (respectively, the "nettype" and "addrtype" attributes). This change affects the SDPng RTP
Profile [SDPNG03], [SDPNG04] as well.
Furthermore, the addresses are expressed by using the syntax proposed for SDP in [Olson01]. The
proposed E2ENP extensions for the <cfg> element are indicated in the example below in bold face.
<cfg>
<component name="audio-stream-1" media="audio”>
<alt name="AVP-audio-0”>
<rtp:session format="rtp-avp-0">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7800" rtcp-port="7801"/>
</rtp:session>
</alt>
<alt name="AVP-audio-18”>
<rtp:session format="rtp-avp-18">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7800" rtcp-port="7801"/>
</rtp:session>
</alt>
</component>
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
Page A.233
MIND
1.2 / 0.1
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP6"
addr="3ffe:1200:3012:c006:290:27ff:fe7d:d024" rtp-port="7920"
rtcp-port="7921"/>
</rtp:session>
</alt>
<alt name="AVP-video-98”>
<rtp:session format="rtp-avp-98">
<rtp:udp role="receive" nettype="IN" addrtype="IP6"
addr="::ffff:43.196.180.15" rtp-port="7940" rtcpport="7941"/>
</rtp:session>
</alt>
</component>
</cfg>
XML Example A. 12
Please note that the usage of the <cfg> element is for specifying a given address/port pair for every used
RTP payload type. Since some video codecs (video RTP payload types) can generate one and the same
perceivable QoS, the association video QoS contract – transport parameters in not unique, see also the
mappings described in the <rtp:map> element of the <e2enp:qosdef name="contracts">
(Section A.7.3.4.2). That is why <cfg> element associates not the QoS contracts to transport parameters,
but the RTP payload types (e.g. see “AVP-audio-x”, “AVP-video-y” definitions in the example above).
To this extent the <cfg> element is a reference, indicating how many physical media streams (see
<component> element) would be opened and how these streams are associated with payload types, host
addresses and host ports. This reference is used further for the definition of the stream adaptation paths in
the <e2enp:qoscfg> element (Section A.7.3.5.2). The <component> element can thus represent
different types of configurations of transport-related information, whereby each type of configuration has
a specific meaning and specific application field, although in general all these descriptions can be used in
the re-negotiation process. These types of configurations are:
•
A stream is associated with different payload types but the physical stream is running over one
and the same ingress/egress point.
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
Page A.234
MIND
1.2 / 0.1
<alt name="AVP-video-98”>
<rtp:session format="rtp-avp-98">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
</component>
XML Example A. 13
This kind of association gives the possibility to switch between different video payloads, which
generate one and the same visual quality by only using the in-band signalling via RTP as
described in Section A.6.2.4.1 (fast re-negotiation). This description can be used when the QoS
variations are relative small and explicit re-negotiation is not necessary. In such cases, the endpeers do not need in fact to switch between different QoS levels (states), rather they adapt by
only adapting their local resources.
This description can be as well used by explicit re-negotiations when the payload types are
associated with different QoS levels. The usage of single ingress/egress ports in this case leads to
saving of system resources compared to opening multiple ports.
As evident from this example, there is repetition of parameters within every <alt> element. To
this extent, the SDPng description for the fast renegotiation case is not optimal. A short form of
this description is left for further studies.
•
A stream is associated with different payload types and the physical stream is running over
different ingress/egress points on the same host.
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7902" rtcp-port="7903"/>
</rtp:session>
</alt>
<alt name="AVP-video-98”>
<rtp:session format="rtp-avp-98">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7904" rtcp-port="7905"/>
</rtp:session>
</alt>
</component>
Page A.235
MIND
1.2 / 0.1
XML Example A. 14
This kind of association is particularly effective when used for the sake of explicit re-negotiation
and in cases when the streaming needs to be prepared ahead. This means the codec cannot switch
directly but needs some time to be prepared (e.g. to perform explicit reservation process by
signalling its beginning and end over E2ENP), thus in the switching time the media stream
packets can be send for a short time in parallel and filtered at the receiver to avoid streaming
stops (e.g. by handovers between different technologies).
•
A stream is associated with different payload types and the physical stream is running over
different ingress/egress points on different hosts.
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP6"
addr="3ffe:1200:3012:c006:290:27ff:fe7d:d024" rtp-port="7920"
rtcp-port="7921"/>
</rtp:session>
</alt>
<alt name="AVP-video-98”>
<rtp:session format="rtp-avp-98">
<rtp:udp role="receive" nettype="IN" addrtype="IP6"
addr="::ffff:43.196.180.15" rtp-port="7940" rtcpport="7941"/>
</rtp:session>
</alt>
</component>
XML Example A. 15
This kind of association can be used for the sake of explicit re-negotiation, in cases when the
streaming needs to be prepared ahead and in cases of session mobility.
•
As additional alternative meaning, it should be considered the definition of mixed usage
possibilities. In this case the <rtp:udp> element should carry an indication about the
respective usage and the <rtp:session> element should allow multiple <rtp:udp> subelements. This special description case is left for further studies.
The usage purpose of this specification of different alternatives is important by strong peer
mobility, when it is expected that the peer can flexibly perform technology handovers and is
session mobility enabled. Eventually, as by the first case of this list (fast re-negotiation) SDPng
description optimisation is necessary. This can be done by assigning payload types to
ingress/egress points and not vice versa as by the typical SDPng definition.
Page A.236
MIND
1.2 / 0.1
Considering the usage of the <cfg> element, it should be noted that the current SDPng description is too
RTP/RTCP-centric. The future configuration descriptions should also consider other types of media
transport.
A.7.3.5.1.1
The use of the "role" attribute
The difference between this proposal and legacy SDP and SDPng consists in that the latter do not focus
primarily on QoS negotiation, rather on capability negotiation. This means that SDP/SDPng allow a
sender giving information to the receiver(s) about format and transport information that the sender intends
to use for sending.
Trying to match E2ENP with this well-known approach, one should note that sheer capability negotiation
is already taken into account in the End-to-End QoS Pre-Negotiation Phase. In fact we can consider the
pre-negotiation phase as sufficiently general for indicating stream-level-only QoS Contracts that peers
may want to use both when sending and receiving. More specifically, the attribute "peer_role" of the
<rtp:map> element of the <e2enp:qosdef name="contracts"> element allows doing that.
These two attributes are however dealing with two different aspects:
•
the "peer_role" attribute used in the <e2enp:qosdef name="contracts"> element
allows receivers formulating APs and high-level QoS Contracts/APs (see Section A.7.3.5.2)
based also on information/preferences disseminated by the senders.
•
Whereas the "role" attribute of the <cfg> element merely allows application/middleware
configure itself to use streams properly (in terms of capability and transport aspects), as
aforementioned. In this case the "role" indicates in what direction the single stream is being
sent.
A.7.3.5.1.2
QoS as precondition for the reservation
As an additional element, it should be considered the usage of QoS preconditions as described in Section
A.4.5.2, in order to be able to coordinate network resource reservations even in cases of over-provisioned
networks and segmented reservations. The peer indicates if QoS reservation coordination is necessary
within the <e2enp:description> element (Section A.7.3.2.3). For the purpose of this coordination
the E2ENP should accommodate the SDP QoS precondition parameters as described in [SIPRES07] for
the SDPng/E2ENP syntax. This would give the peer the possibility to inform its negotiation partners of
the necessity of performing network resource reservations and to coordinate the network reservation by
segmented reservations. In order to express that QoS is precondition for the reservation process, two
additional elements are introduced <e2enp:reservation> and <e2enp:streaming> within the
<component> element (in the example in bold). Using these elements it is possible to indicate for every
media stream if QoS is a precondition for reserving resources for this stream. These elements are
evaluated by the QoS aware application/middleware when managing the reservation process.
<component name="video-stream-1" media="video”>
<e2enp:reservation precondition=”true” initiator="receiver"
status="e2e"/>
<e2enp:streaming generator="receiver"/>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
Page A.237
MIND
1.2 / 0.1
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7902" rtcp-port="7903"/>
</rtp:session>
</alt>
<alt name="AVP-video-98”>
<rtp:session format="rtp-avp-98">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7904" rtcp-port="7905"/>
</rtp:session>
</alt>
</component>
XML Example A. 16
The meaning of this example is the following:
•
•
The receiver wants to reserve end-to-end resources for using the stream indicated with
name="video-stream-1"
and
it
initiates
the
reservation
process.
(<e2enp:reservation
precondition=”true”
initiator="receiver"
status="e2e"/>)
o
The attribute “precondition” indicates if the network reservation should be
performed or not. If no network resource reservation is necessary the reservation
element is (<e2enp:reservation precondition=”false”/>). The explicit
indication of the reservation is necessary because E2ENP coordinates the reservation
process in any case, thus both the Offerer and the Answerer can indicate if they need
reservation and coordinate this process even if one or both sides are in over-provisioned
network. By over-provisioned networks only the local resource reservation might need
to
be
coordinated.
If
the
“reservation”
element
is
missing,
<e2enp:reservation precondition=”false”/> is the default value. This
means that only local resources are needed and the local resource reservation at all
peers should be if necessary coordinated.
o
The “initiator” indicates the peer which initiates the reservation (By using
different reservation protocols and architectures the value of the “initiator” can be
"receiver" – for RSVP reservation, “sender” – for IntServ or “network” – for
COPS).
o
The “status” indicates if the reservation is end-to-end, segmented, etc. (respective
values of the “status” attribute can be “e2e”, “segmented”). This attribute is
useful for the QoS Brokers if they should coordinate the reservation process out of the
Service Domain as described in Chapter 4.
The description within the session tag are the parameters for receiving as the receiver wants to
have them and the receiver is the generator of this information (<e2enp:streaming
generator="receiver"/>). The sender should apply by reservation these pre-negotiated
parameters. If the element “streaming” is missing as default should be considered the QoS
parameters as the receiver wants to have them.
These two XML elements are adopted from the SDP syntax of [SIPRES07]. For further information on
the specific usage see [SIPRES07]. It should be noted that E2ENP always coordinates the reservation
Page A.238
MIND
1.2 / 0.1
compared to [SIPRES07], which considers only the network reservation process. This is necessary, since
the end-peer should synchronize their local reservations.
A.7.3.5.2
The <e2enp:qoscfg> element
This element allows defining APs as well as QoS correlation and time synchronization constraints at
various levels of abstractions, starting from stream-level QoS Contracts. Each level of abstraction is
identified by the attribute "name" of this element.
An example of this element at stream-level is indicated in the XML document fragment below.
<e2enp:qoscfg level="stream">
<! --adaptation path for single streams -->
<e2enp:adapath name=“audio1” ref_component="audio-stream-1">
<e2enp:alt nominal=”true” name=“initial” ref_contract=“audiocontract-1” transport-contract=”TI-3” suboption=“SI-1”
scope="applicable"/>
<e2enp:alt name=“choice1" ref_contract=“audio-contract-3”
transport-contract=”TI-3” suboption =“SI-2” scope="applicable"/>
</e2enp:adapath>
<e2enp:adapath name=“video1” ref_component="video-stream-1">
<e2enp:alt nominal=”true” name=“initial” ref_contract="videocontract-1” transport-contract=”TI-2” suboption=“SI-1”/>
<e2enp:alt name=“choice1" ref_contract="video-contract-2”
transport-contract=”TI-2” suboption=“SI-1”/>
<e2enp:alt name=“choice2" ref_contract="video-contract-3” />
<event id="video1-e-1" reason="higher-frame-rate">
<path name="upgrade-1" guard=".ge. 15 .and. .le. 20"
source="video-contract-1" target="video-contract-2"/>
<path name="upgrade-2" guard=".ge. 20" source="video-contract2" target="video-contract-3"/>
</event>
<event id="video1-e-2" reason="lower-frame-rate">
<path name="degrade-2" guard=".ge. 15 .and. .le. 20"
source="video-contract-3" target="video-contract-2"/>
<path name="degrade-2" guard=".le. 15" target="video-contract1"/>
</event>
</e2enp:adapath>
<!-- Possible associations of streams between user A and B -->
<e2enp:context name=”association1-1” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1"/>
<e2enp:comp name=”element2” ref_adapath="video1"/>
<e2enp:constraints>
<e2enp:par name=“lipsync-delay” ref_adapath="audio1" max=”2”/>
Page A.239
MIND
1.2 / 0.1
<e2enp:par name=“aggregated-bw” max=”64000”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”association1-2” scope="possible">
<e2enp:comp name=”element1” ref_adapath="audio1”/>
</e2enp:context>
<e2enp:adapath name=“associations-A-B”>
<e2enp:alt nominal=”true” name=“initial”
ref_context="association1-1”/>
<e2enp:alt name=“choice1" ref_context="association1-2”/>
</e2enp:adapath>
</e2enp:qoscfg>
XML Example A. 17
The following subparagraphs detail each element appearing in this element.
A.7.3.5.2.1
The <e2enp:adapath> element modelling stream-level Adaptation Paths
The first two instances of the <e2enp:adapath> element appearing in the example above allow
defining two distinct Adaptation Paths, by collecting a set of stream-level QoS Contracts, drawn from the
set of <e2enp:contract> elements of the <qosdef name=capabilities"> element, and
associated with receivers only (according to the requirements set forth in Section A.4.5.1.4.1). Note, that
it only makes sense to associate audio QoS contracts with audio adaptation paths and video contracts with
video adaptation paths. The combination of audio and video adaptation paths is explained below. Each
<e2enp:adapath> element is associated with a specific <component> of the <cfg> element, via
the "ref_component" attribute42. By using the E2ENP signalling the peer gets first of all, via the prenegotiation, the information about the preferable codec which should be used for a given stream (Section
A.7.3.4.2)43. Afterwards, by the negotiation (see Section A.7.3.5.1), every payload type is associated with
a media stream and its transport parameters (host, ports). The <e2enp:qoscfg> element references all
these parameters for defining the stream adaptation path within its <e2enp:adapath> sub-elements.
Thus the peers can uniquely indicate which codec should be used as first for the streaming process.
Each QoS Contract is an alternative option in the AP: hence the use of the <alt> construct for defining
them (alt stands for alternative). By assuming the Hierarchical FSM model described in Section A.6.3,
each of these APs represent a distinct FSM, whose initial state is explicitly indicated by the attribute
“nominal” of the given <e2enp:adapath> construct.
By assuming the Hierarchical FSM model described in Section A.6.3, the choice of switching from one
QoS Contract to another within a given AP may be dynamically determined by matching monitored QoS
levels against the set of QoS Contracts defined in the given AP, by using for instance fuzzy logic
[Bhatt99], [BRAIN]. Alternatively the <e2enp:adapath> construct may include a predefined set of
state transitions among those QoS Contracts: in this case, the <event> construct indicates which
42
This attribute is mandatory only for <e2enp:adapath> elements describing stream-level APs.
43
Note, that the association “audio QoS contract” and “audio payload type” is unique, whereas the association “video
QoS contract” and “video payload type” is not unique and the preferred codec for video should be indicated, if
there are multiple available possibilities.
Page A.240
MIND
1.2 / 0.1
transitions should be triggered upon detection of given events44. A given <event> can be associated
with multiple paths, whose triggers determine the one that will be activated.
The individual transitions are described in <path> constructs, which describe the trigger condition
(indicated as guard parameters45) and the QoS Contracts involved in the transition (indicated with the
source and target attributes). The source attribute in the <path> construct is optional, insofar as
there might be cases where the specification of that attribute could be omitted on purpose. In those cases,
in fact, the corresponding transition would originate from whichever state the given Hierarchical FSM is
currently set. In this way, we may model for instance the change of any QoS Contract within a given set,
to a defined one in case the corresponding transition is triggered (a sort of default mechanism). In the
example above, the event <e2enp:video1-e-2>, triggered by the detection of a lower frame rate (see
the <reason> attribute), would force the FSM described by the <e2enp:adapath> construct named
video1 to enforce video-contract-1, no matter which contract was enforced at the time the event
was thrown. In order to achieve interoperability, one should note that the peers should agree upon the
semantic of the reason attribute. Terms like "higher-frame-rate" or "lower-frame-rate"
appearing in the example above should thus be subject to standardization, along with their meaning. This
pre-definition of transitions sets is optional.
The explicit triggering of state change within the FSM by already running media streaming is done by
indicating this state in a re-negotiation process – <e2enp:enforce> element (Section A.7.3.7.1).
Additionally, if the initial session establishment reservation process does not completely succeed, it is
possible, instead of performing new negotiation, to switch to another (not the nominal) already negotiated
state of the FSM. The eventual change of parameters and states on the fly at session begin can be
indicated in the reservation results by also using the <e2enp:enforce> element.
Note, that the adaptation path may only include one element so that there is just one single choice of
quality for the given stream. By defining the adaptation path, it is possible to associate the application
level QoS contracts with the transport service TI/SI definitions (provided in Section A.7.2) since only at
session begin it is possible to estimate (for video) what network resources are required and available. For
an example, see also Section A.8.1.1.2. Additionally, a single TI/SI definition can be assigned to more
than one application level contracts, since different codecs can use one and the same transport resources
but different local resources.
A.7.3.5.2.2
The attribute "scope"
The attribute scope indicates in a request (negotiation bid) whether the corresponding E2ENP element is
to be considered as a required (applicable) or desired (possible) option; whereas in a response
(negotiation counter-offer), that attribute indicates whether the corresponding E2ENP element has been
validated (applicable) or rejected (not-applicable).
scope:="not-applicable" | "applicable" | "possible"
The Answerer may also indicate in the counter-offer what capabilities it can support, and to what extent.
If a given capability is supported "as is", only the corresponding identifier is indicated, along with the
scope attribute set to applicable.
If a given capability is not supported, the corresponding identifier is simply omitted.
44
Like frame-rate-increase or frame-rate-decrease, as in the example above. These events designate
well known monitor notifications, which applications and/or middleware may be designed to take into account. To
this extent, both the name and the semantics of events shall be subject to standardization efforts.
45
For the sake of simplicity, we have introduced a notation for expressing Boolean predicates, where operators are
abbreviations delimited by dot characters. For instance ".ge." means "greater or equal than", ".le." means "less or
equal than", ".gt." means "greater than", ".lt." means "less than", ".eq." means "equal", ".and." means the AND
Boolean operator, etc. This is just a proposal, open for discussion.
Page A.241
MIND
1.2 / 0.1
If the Answerer proposes in the counter-offer a modified version of the parameterisation of a given
capability in the <e2enp:qosdef> element (as a subset of the original bid), the entire description with
the updates is returned in both the <e2enp:qosdef name="capabilities"> and
<e2enp:qosdef name="contracts"> elements. In any case, the <e2enp:qosdef
name="contracts"> element contains in a response only updated codec parameterisations (see
example in Section A.8.1.1.3.1).
Additionally, the Answerer can indicate a new option (unknown to the Offerer at pre-negotiation time):
this will be marked as possible. The idea is that the Offerer can thus be informed of a potential option
that could be eventually used later, should the Offerer be upgraded with a new capability matching that
option.
A.7.3.5.2.3
The <e2enp:context> elements
The <e2enp:context> elements define possible associations of the given streams, and thus allow
defining time-synchronization and/or QoS correlation constraints. As such, the <e2enp:context>
elements basically describe high-level QoS Contract, as defined in Section A.4.4.
In the example above, a video stream and an audio stream are defined as correlated in a given context
(”association1-1”), along with both time-synchronization and QoS correlation constraints defined.
Alternatively, a context including only the audio stream (”association1-2”) could also be used.
A.7.3.5.2.4
The <e2enp:adapath> element modelling higher-level Adaptation Paths
When and how to enforce either contexts, is described in the second instance of the
<e2enp:adapath> element appearing in the example above. In this case, the use of the “nominal”
attribute is evident: the combination (”association1-1”) of an audio stream and a video stream is
indicated as the preferred one. The case where only an audio stream is used (”association1-2”)
would then be considered as a backup case, which can be enforced in order to cope with e.g. QoS
violations. The individual child elements of the <e2enp:adapath> element reference the instances of
the aforementioned <e2enp:context> elements via the "ref_context" attribute.
A.7.3.5.2.5
The <e2enp:context>, <e2enp:adapath> pattern
As a general rule, one can thus notice the recurring occurrence of <e2enp:adapath> and
<e2enp:context> elements referencing each other in an acyclic chain of references.
Alternative <e2enp:context> constructs are grouped in an <e2enp:adapath> construct, which
defines a FSM. This AP and any other (concurrent) ones can then be wrapped in turn within a
<e2enp:context> construct, which sets constraints at a higher level. And we may also have
alternative such <e2enp:context> constructs been defined, which we can then collect in a higherlevel AP. This process can be recursively applied.
A.7.3.6
Enforcement of QoS correlation and time synchronization constraints at
higher levels of abstraction
A given user can enforce higher-level QoS correlation and time synchronization constraints - as a form of
extended user profile information - in order to orchestrate resource utilization (and hence QoS) across
given sets of streams established with different peers.
To this extent, the given user does not need to negotiate this information with the peers.
However, should the given user require to enforce some new constraints at a later time, or discover that
the pre-existing constraints can no longer be met, due to the later joining/leaving of some peers to/from
the currently opened communication sessions, new rounds of the E2ENP might be required, according to
the given conferencing policies (which are outside of the scope of this writing).
Page A.242
MIND
1.2 / 0.1
Eventually, peers may also resort on a third party entity managing pre-negotiations, negotiations, and renegotiations (the “full” ones), including higher level specification concerning QoS Correlation & Time
Synchronization aspects. This entity would act as a sort of QoS Broker [BRAIN][Roble01] (which are
outside of the scope of this writing).
A.7.3.6.1
Session Level
Streams can be associated in various manners. In the following example, we propose the concept of
session, to be intended as e.g. an instance of a videoconference (see Section A.8). To this extent, we
cluster in various manners the associations of streams between the given user (user A) and its peers (B, C,
and D) within the context of the given videoconference session. We then associate the resulting clusters
with QoS Contexts, by using the aforementioned <e2enp:context> constructs.
To this extent, each cluster can be associated with a set of constraints dictating specific levels of
correlations among the various associations of streams belonging to the given cluster. This means that the
constraints affect all the streams belonging to each association, independently of the QoS specifications of
the individual streams belonging to the given association. The <e2enp:context> constructs thus
specify QoS correlation for concurrent bundles of streams. Alternative contexts can then be possible, as
described in the <e2enp:adapath> constructs (one per instance of the video conference).
These <e2enp:adapath> constructs are thus comparable to the description of a FSM, whose states
contain in turn other concurrent <e2enp:adapath> constructs, each describing the bundling of
streams between the given user and a given peer. This recursive model allows using State-charts
[Booch99] as described in Section A.6.3.
<e2enp:qoscfg level="session">
<e2enp:context name=”vc-session-1-1” scope="applicable">
<e2enp:comp name=”element-1” ref_adapath="associations-A-B”/>
<e2enp:comp name=”element-2” ref_adapath="associations-A-C”/>
<e2enp:constraints>
<e2enp:par name=“aggregated-bw” max=”140000”/>
<e2enp:par name=“frame-rate” avg=”8”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”vc-session-1-2” scope="applicable">
<e2enp:comp name=”element-1” ref_adapath="associations-A-C”/>
<e2enp:constraints>
<e2enp:par name=“frame-rate” avg=”8”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”vc-session-2-1” scope="possible">
<e2enp:comp name=”element-1” ref_adapath="associations-A-D”/>
</e2enp:context>
<e2enp:adapath name=“videoconference-1” >
Page A.243
MIND
1.2 / 0.1
<e2enp:alt nominal=”true” name=“initial” ref_context="vc-session1-1”/>
<e2enp:alt name=“choice-1" ref_context="vc-session-1-2”/>
</e2enp:adapath>
<e2enp:adapath name=“videoconference-2” >
<e2enp:alt nominal=”true” name=“initial” ref_context="vc-session2-1”/>
<e2enp:alt name=“choice-1" ref_context="vc-session-2-1”/>
</e2enp:adapath>
</e2enp:qoscfg>
XML Example A. 18
A.7.3.6.2
Application Level
Continuing the recursive approach described above, we can further aggregate streams based on a yet
higher-level rationale. For instance, we can associate all the streams managed by all the instances of a
given application, and differentiate the resulting QoS Context from other applications, as well as impose
higher-level QoS correlation specifications.
<e2enp:qoscfg level="application">
<e2enp:context name=”videoconference-tool” scope="applicable">
<e2enp:comp name="choice-1" ref_adapath=”videoconference-1”/>
<e2enp:comp name="choice-2" ref_adapath=videoconference-2”/>
<e2enp:constraints>
<e2enp:par name=“num-active-flows” max=”6”/>
<e2enp:par name=“cpu-load” max=”0.20”/>
<e2enp:par name=“mem-req” max=”110M”/>
</e2enp:constraints>
</e2enp:context>
</e2enp:qoscfg>
XML Example A. 19
This example shows once again the use of the <e2enp:qoscfg> element for expressing the
information described above. In the example we can see how this high-level specification allows easily
expressing constraints on local resource consumption, in line with the BRENTA concept described in
[BRAIN][Roble01].
A.7.3.7
Support for the End-to-End QoS Compact Re-Negotiation Phase
As indicated in Section A.4.5.1, the idea behind the End-to-End QoS Compact Re-Negotiation Phase is to
avoid performing a full re-negotiation during time critical tasks like recovering from a QoS Violation due
to, say, a handover.
According to the solution described in Section A.6.2.4, this goal can be achieved by enabling peers
signalling each other the new (pre-negotiated) QoS Contracts to enforce, and/or by signalling those (prenegotiated) QoS Contracts that - upon handover to a new access network and/or network provider - result
Page A.244
MIND
1.2 / 0.1
applicable and/or no longer applicable. To this extent, specific SDPng-based support for the E2ENP is
required.
A.7.3.7.1
The <e2enp:enforce> element
This new element allows one of the peers (typically the first which detects a QoS Change/Violation – see
Section A.6.2.4.1) signalling the other peers, which QoS Contracts should be enforced, out of the prenegotiated APs.
The idea is to convey signalling information, according to the hierarchical structure of the pre-negotiated
QoS specification: this means to correctly scope each QoS Contract name. At least two alternative
implementations are available: using a name-space for QoS Contracts, using the XPath [XPATH]
standard, or using language for referencing some part of a document, like the not yet standardized
XPointer technology [XPOINT].
The name-space solution is based on assigning fully specified names to QoS Contract, by pre-pending the
names of any higher-level QoS Contract from which the given QoS Contract depends within the given
tree-based QoS Specification, using as separator character e.g. the dot character. This solution requires
however the consistent use of (often quite complex and long) names throughout a multiplicity of E2ENP
elements and of E2ENP PDUs. Furthermore, this solution forces applications to be able to correctly parse
the given name-space.
For instance, with respect to the example shown in Section A.7.3.5, the fully specified name of the
video-contract-2 within the video1 AP, within the association-1-1 QoS Context, out of
the associations-A-B AP, would look like the following:
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association11.video1.video-contract-2”/>
<e2enp:target name="$contract"/>
</e2enp:enforce>
XML Example A. 20
XPath introduces a query language at XML style sheet level, whereby an element of a target XML
document may be referenced by indicating the URI of the target document, and the fully qualified
element name. The structure of the referenced element name is similar to the one described above, with
the exception that the slash character is now used as separator character. XPath compliant, standard XSLT
processor parsing on demand such queries are available.
The XPointer technology (that, as of the underlying invention, has not yet reached the standardization
status) indicates the current trend concerning the unambiguously pointing of elements across various
XML documents.
In this writing we decided to use this latter solution, without any loss of generality compared to the other
one described above (or any other equivalent one), with respect to the concepts described in Section
A.6.2.4.1.
To explain the solution of choice, we introduce the following XML document fragment describing the
same information used in the example above:
<e2enp:enforce>
<xsl:variable name="association">
<xsl:value-of select="//adapath[@name='associations-AB']/alt[@ref_context='association1-1']"/>
</xsl:variable>
Page A.245
MIND
1.2 / 0.1
<xsl:variable name="stream">
<xsl:value-of
select="//context[@name="$association"]/comp[@ref_adapath='video1'
]/"/>
</xsl:variable>
<xsl:variable name="contract">
<xsl:value-of
select="//adapath[@name="$stream"]/alt[@ref_contract='videocontract-2']/"/>
</xsl:variable>
<e2enp:target name="$contract"/>
</e2enp:enforce>
XML Example A. 21
The QoS Contract to enforce is indicated by the element <e2enp:target>.
In this XML document fragment one can easily recognize the use of the name attribute for the root
element of the given tree branch (associations-A-B), whereas the other elements in that branch are
named via the reference attributes (ref_context, ref_adapath, ref_contract) of the
respective parent. This means that only the name of the <e2enp:contract>, <e2enp:context>,
and <e2enp:adapath> elements must be uniquely used across multiple sections/phases, whereas the
names of the XML child elements of the aforementioned elements can be arbitrarily chosen. By using this
methodology, once can enforce signalling not only of stream level QoS Contracts, as in the example
above, but also of any high-level QoS Contract, by terminating the specification above to the given QoS
Context. For instance, the XML document fragment below:
<e2enp:enforce>
<xsl:variable name="association">
<xsl:value-of select="//adapath[@name='associations-AB']/alt[@ref_context='association1-1']"/>
</xsl:variable>
</e2enp:enforce>
XML Example A. 22
could be used for signalling to the other peers that the high level association1-1 should be enforced,
regardless of the currently enforced stream-level QoS Contracts (in this case, default states would dictate
which stream level QoS Contracts to enforce in the new QoS Context).
Furthermore, the <e2enp:enforce> element can also be used for signalling to other peers a specific
AP to enforce, whereby default state would then be used to resolve the remaining lower-level
information. For instance, the following <e2enp:enforce> element:
<e2enp:enforce>
<xsl:variable name="association">
<xsl:value-of select="//adapath[@name='associations-AB']/alt[@name='association1-1']"/>
</xsl:variable>
<xsl:variable name="stream">
Page A.246
MIND
1.2 / 0.1
<xsl:value-of
select="//context[@name="$association"]/comp[@name='video1']/"/>
</xsl:variable>
<e2enp:target name="$stream"/>
</e2enp:enforce>
XML Example A. 23
would force peer A to use "video-contract-1" for the "video1" stream, since that contract
was specified as default in the pre-negotiated <e2enp:qoscfg> element (see Section A.7.3.5).
Since some video codecs (e.g. H.261 and H.263) support frame typing and frame enumeration, it is the
<e2enp:enforce> element which can adopt such features by performing the re-negotiation process.
This would enable such a functionality like “Fast Forward” and “Rewind” by signalling the codec at what
number and kind of frame to start the media after the re-negotiation. This feature can be used in parallel
to RTCP in-band signalling and instead of RTCP, if such an in-band signalling is not available [Even00].
This video frame features can be described as a sub-component of <e2enp:enforce> and with
respect to the codecs which support such media control (media search and frame enumeration) features.
Additionally to performing explicit re-negotiations the E2ENP can also support spontaneous renegotiations which occur on the fly at the end of a negotiation process to convey the results of the
reservation process (especially in cases the reservation resulted with less resources as necessary).
Therefore it might also be necessary to indicate if also the codec is switched on the fly and does not
anymore correspond the default one (as defined in Section A.7.3.4.2).
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association11.video1.video-contract-1.rtp-avp-34”/>
<e2enp:target name="$codec"/>
</e2enp:enforce>
XML Example A. 24
The switching of codecs on the fly at the end of the negotiation process can also be a result of codec
performance failure, which leads to choosing another as the default defined codec. The spontaneous renegotiation for higher-level states of the adaptation path (e.g. contract, stream, association) has the same
contents as by the standard, explicit re-negotiation which occurs after the streaming has begun.
The construct of the example above can be used also by explicit re-negotiation, due to the fact that the
video payload types are not uniquely mapped to video QoS contracts. This would be the case where the
payload types are associated with different ingress/egress streaming points.
A.7.3.7.2
The <e2enp:block> element
Similarly to the case described in Section A.7.3.7.1, the aforementioned XPointer technology can be used
for allowing a peer signalling the others, which QoS Contracts to block, according to the rationale
described in Section A.6.2.4.2.
To this extent, a new element is hereby proposed: the <e2enp:block> element. The following
example depicts the use of such new element.
<e2enp:block>
<xsl:variable name="association">
Page A.247
MIND
1.2 / 0.1
<xsl:value-of select="//adapath[@name='associations-AB']/alt[@ref_context='association1-1']"/>
</xsl:variable>
<xsl:variable name="stream">
<xsl:value-of
select="//context[@name="$association"]/comp[@ref_adapath='video1'
]/"/>
</xsl:variable>
<xsl:variable name="contract">
<xsl:value-of
select="//adapath[@name="$stream"]/alt[@ref_contract='videocontract-2']/"/>
</xsl:variable>
<e2enp:target name="$contract"/>
</e2enp:block>
XML Example A. 25
The QoS Contract to block is indicated by the element <e2enp:target>. By handovers the new
provider can also add such elements for blocking of contracts. The procedure is like the one described in
Chapter 4 (i.e. proxy state migration). The <e2enp:block> element can use as well the alternative
dotted separated notation for indicating the respective contract/-s to block as shown in Section A.7.3.7.1
instead of the XPointer notation.
A.7.3.7.3
The <e2enp:unblock> element
Similarly to the case described in Section A.7.3.7.1, the aforementioned XPointer technology can be used
for allowing a peer signalling the others, which QoS Contracts to unblock, according to the rationale
described in Section A.6.2.4.2.
To this extent, a new element is hereby proposed: the <e2enp:unblock> element. The following
example depicts the use of such new element.
<e2enp:unblock>
<xsl:variable name="association">
<xsl:value-of select="//adapath[@name='associations-AB']/alt[@ref_context='association1-1']"/>
</xsl:variable>
<xsl:variable name="stream">
<xsl:value-of
select="//context[@name="$association"]/comp[@ref_adapath='video1'
]/"/>
</xsl:variable>
<xsl:variable name="contract">
<xsl:value-of
select="//adapath[@name="$stream"]/alt[@ref_contract='videocontract-2']/"/>
</xsl:variable>
<e2enp:target name="$contract"/>
Page A.248
MIND
1.2 / 0.1
</e2enp:unblock>
XML Example A. 26
The QoS Contract to unblock is indicated by the element <e2enp:target>. By handovers the new
provider can also add such elements for unblocking of contracts. The procedure is like the one described
in Chapter 4 (i.e. proxy state migration).
The <e2enp:unblock> element can use as well the alternative dotted separated notation for indicating
the respective contract/-s to unblock as shown in Section A.7.3.7.1 instead of the XPointer notation.
A.7.3.8
Other E2ENP elements
Within the context of the solution presented in this chapter, the semantics of the original SDPng
<constraints> element [SDPNG01] can be interpreted as a form of QoS correlation and/or time
synchronization constraint specification applied to the whole QoS specification described in the
aforementioned new elements.
A.7.4 Possible sources of failure and the ways of error recovery by the E2ENP
phases
The study of the possible SDPng error-codes with respect to E2ENP and their structure should be
thoroughly taken into account. The respective new SDPng XML-elements for describing the E2ENPerror-codes and signalling errors for solving this problem are considered as possible solution but not
shown in the examples for the sake of simplicity. Since E2ENP is applied to SIP via piggybacking,
respective piggybacked error-codes and messages within the SDPng should be taken into account by the
development of the E2ENP. In general the Offerer should consider repeating the calls with reasonsnotification within the SDPng part of the message and the answerer should take advantage of using the
SIP "Status Codes" by also describing reasons in the SDPng message part.
The following is a description of possible errors cases, where some form of notification between the
Offerer and the Answerer is necessary to indicate the changing conditions and the caused disturbances.
The arrow (Æ) indicates possible solutions. The A indicates an answerer and the O an Offerer.
A.7.4.1
No common profile base
1. Push mode
•
The Answerer discovers that the proposal of the Offerer matches none of its capabilities
o
The Answerer has the capabilities to download codecs
ƒ
The Answerer should inform the Offerer that the transaction may last a bit
longer, because she/he needs time for the download and adjustment of his
profile data.
ÆA->O answer with 100 Trying or 183 Session Progress.
o
The Answerer has no capabilities to download codecs
ƒ
If the Answerer is a service Æ A->O answer with 380 Alternative Service if
the Answerer knows such a service. The Offerer may then start a new prenegotiation with the alternative service.
ƒ
Æ The Answerer removes all the Offerers capabilities from the <e2enp:qosdef
name="capabilities"> and makes a counter-offer for the capabilities and the
contracts
(<e2enp:qosdef
name="capabilities">
and
<e2enp:qosdef name="contracts">).
Page A.249
MIND
1.2 / 0.1
ƒ
•
•
If the Offerer can download codecs Æ Offerer downloads codecs,
eventually rearranges profiles, eventually starts a new prenegotiation.
•
If the Offerer cannot download codecs Æ The Offerer should take
into account the usage of a transcoder-service.
Æ The Answerer may also issue 606 Not Acceptable if the Offerer asks for
capability-support that is not available at the moment.
The Answerer discovers that the Proposal of the Offerer matches the Answerer’s capabilities but
the offered contracts cannot be supported.
o
The Answerer trims respectively her/his profile
ƒ
The Answerer should inform the Offerer that the transaction may last a bit
longer because of the profile adjustment.
ÆA->O answer with 100 Trying or 183 Session Progress.
ƒ
o
Æ The Answerer may also issue 606 Not Acceptable if the Offerer asks for
QoS support that is not available at the moment.
The Answerer has no possibility to adjust her/his profile
ƒ
If the Answerer is a service Æ A->O answer with 380 Alternative Service if
the Answerer knows such a service. The Offerer may then start a new prenegotiation with the alternative service.
ƒ
The Answerer makes a counter-offer for the (<e2enp:qosdef
name="contracts">) by trimming the ranges of the contracts of the Offerer or
by proposing completely new ranges Æ It is up to the Offerer to adjust her/his
profile and eventually start a new pre-negotiation.
2. Pull mode
•
The Offerer discovers that the reply of the Answerer matches none of her/his capabilities
o
The Offerer has the capabilities to download codecs
ƒ
o
The Offerer has no capabilities to download codecs
ƒ
•
Æ The Offerer downloads the codecs, adjusts respectively his profile and
starts a new pre-negotiation
Æ The Offerer should take into account the usage of a transcoder-service.
The Offerer discovers that the proposal of the Answerer matches none of her/his “contract”profiles
o
ÆThe Offerer adjusts her/his profile accordingly before creating a counter-offer to the
Answerer
o
ÆThe Offerer start a new pre-negotiation in push-mode in order to enforce the
adaptation of the Answerer
3. Push-Pull mode
Page A.250
MIND
1.2 / 0.1
This case should be treated as a combination of the above two cases.
A.7.4.2
Non-expired pre-negotiated data is no longer valid
It may happen that some of the pre-negotiated and saved data at the Offerer- and/or the Answerer-side
alter due to reasons of changing profile information like:
•
Different users impose their performance policies on the devices (Offerer and/or Answerer)
•
Some higher priority (internal and/or external) processes use the resources so that the prenegotiated profiles are no longer valid
•
Some system configuration changes have taken place, like:
o
Failures by local resource reservation, due to occupation or resource malfunction
o
Failure by network resource reservation if e.g. the network supports only “best effort”
with respect to the lower network QoS levels
o
New codecs and/or hardware sub-devices are being installed thus influencing the
capabilities and the QoS profiles.
The Offerer and/or the Answerer may discover such premature expiry by the time they try to start an
additional pre-negotiation or a negotiation. In such a case the peers should be able to enforce the expiry of
the pre-negotiated data at the side of their communication partners thus pushing it prematurely into
“zombie”-state.
Æ Necessary indication of the premature expiry with following new pre-negotiation. To this extent the
<e2enp:expires> element is set to zero and an additional command expire may be used.
If a profile change occurs within the time of running streaming Æ the side which discovers the violation
should start new Full Re-negotiation E2ENP process.
A.7.4.3
pull)
The called peer does not supports all of the negotiation modes (push/pull/push-
If a called peer receives a message with an indication for a negotiation mode which it does not support a
failure occurs at its side. Æ In such case the Answerer sends 606 Not Acceptable to the Offerer, indicating
in the message body the negotiation mode, which the Answerer supports. The Offerer should start
respectively anew the negotiation phase.
This might be the case by using services, since services should be able to support multiple clients and thus
may have preferences for the negotiation mode.
A.7.4.4
The received message is malformed
Due to peer and/or network failures the body of a SIP message (the SDPng) or the whole SIP message
may be malformed. If the Answerer gets such a message the possible answers may be:
•
400 Bad Request – if the whole SIP message is malformed
•
420 Bad Extension – if only the SDPng message if malformed
If the Offerer gets a malformed message or has received a “malformed-message” notification Æ The
Offerer should repeat the SIP request.
Page A.251
MIND
1.2 / 0.1
A.7.4.5
•
A third party interferes with the negotiation wishing to start a negotiation
The call has the same priority
Æ The peer issues 182 Queued if the peer decides that it can handle the call at later time.
Æ The peer issues 600 Busy if some other peer was quicker with issuing the call and has occupied
all the available capacities of the answering peer. This is especially true by already running
streams when eventual full re-negotiation might be required.
Æ The peer issues 603 Decline if some other peer was quicker with issuing the call and occupied
all the available capacities of the answering peer but the answering peer knows how long the call
shall continue. This is also the case that a similar transaction with respect to priority is being
processed at the moment and the caller has to wait.
Æ
The peer issues 380 Alternative Service if the peer is a service and has information on
common alternative services.
•
The call has higher priority
The Offerer side
Æ
The Offerer should be able to inform the Answerer about the interruption of the
negotiation – some SDPng error code.
The Answerer side
Æ
The Answerer may issue 600 Busy or 603 Decline with some reason indicating the
interruption.
Æ
Depending on the priority of the call and the currently available resources by already
running streams, the peer may perform quick or full re-negotiation, or completely cancel the
streaming.
A.7.4.6
Components do not understand E2ENP or the version of the E2ENP
According to [SIPBIS04]: “Proxies generally do not modify the session description, but MAY do so if
necessary, e.g., for network address translators, and if the session description is not protected by a
cryptographic integrity mechanism”. This means that the Proxies understand the SDPng bodies of the
messages and may change them. In order to protect the E2ENP messages from being altered from
components, which do not understand the protocol, digital signatures and digests should be applied for the
E2ENP-messages. Some additional signalling mechanisms should also be applied in the SDPng for
E2ENP in order to enable the peers to inform each other that an E2ENP-message is being altered by some
network component not concerned in the E2ENP.
The integrity of the messages should be considered a security issue, which is a topic of future studies.
If an Answerer in general understands E2ENP but not the version of it, the Answerer issues 606 Not
Acceptable with SDPng description indicating that the E2ENP version is not supported but that another
E2ENP version is supported. This is also necessary to guarantee backward compatibility of the E2ENP
versions. This means that the XML-part describing the E2ENP version should be uniform for all E2ENP
versions.
A.7.4.7
A communication peer lies within a screened sub-network (Proxies, Firewalls)
or the network is not transparent
The consideration of screened networks is a security issue, which is a topic of future studies. The
following is only a short description on how security may influence the E2ENP error messaging:
Page A.252
MIND
1.
1.2 / 0.1
The screening component does not understand E2ENP but understands SIP/SDPng
In this case a non-E2ENP pre-negotiation with the screening component would be necessary to
make it transparent for the following E2ENP-protocol.
2.
The screening component understands E2ENP
In this case the E2ENP may carry information which concerns the non-transparent components
in form of references to eventually non-E2ENP information (authentication, security, etc.) thus
enabling the non-transparent components to silently check and forward the E2ENP-messages.
The Offerers and the Answerers not interested in this information may simply discard it. This
approach allows silently dealing with non-transparent - with respect to E2ENP – components,
thus making the network explicitly transparent and masking some of the SIP Request Failures
4xx messages, which may negatively influence the E2ENP.
A.7.5 E2ENP addressing
The E2ENP itself does not carry addressing information concerning the identification of the
communicating hosts (e.g. IP address/port), since E2ENP uses the abstraction of the carrier protocol (e.g.
SIP). Nevertheless E2ENP defines an address, the information of which can be won from the carrier
protocol and the <e2enp:purpose> element of the E2ENP. The goal of this address is to uniquely
identify the E2ENP sessions and the communication parties also at the applications using E2ENP.
Therefore the following E2ENP semantic (Table A.1) using augmented Backus-Naur Form (BNF) is
defined.
Table A.1: E2ENP URI Syntax (augmented Backus-Naur Form)
E2ENP-URI
=
"e2enp://" [ userinfo "@" ] hostport
userinfo
=
[ user] [ ":" password ]
user-unreserved
=
"&" / "=" / "+" / "$" / "," / ";" / "?"
escaped
=
"%" HEXDIG HEXDIG
unreserved
=
alphanum / mark
mark
=
"-" / "_" / "." / "!" / "~" / "*" / "'" / "(" /
")"
alphanum
=
ALPHA / DIGIT
user
=
*( unreserved / escaped / user-unreserved)
password
=
*( unreserved / escaped / "&" / "=" / "+" / "$" /
"," )
hostport
=
host / host ":" port
host
=
hostname / hostaddress
hostname
=
*( domainlabel "." ) toplabel [ "." ]
domainlabel
=
alphanum / alphanum *( alphanum / "-" ) alphanum
toplabel
=
ALPHA / ALPHA *( alphanum / "-" ) alphanum
Page A.253
MIND
1.2 / 0.1
hostaddress
=
ipv4-addr / ipv6-addr
ipv4-addr
=
digits"."digits"."digits"."digits
digits
=
1*3DIGIT
ipv6-addr
=
hexpart [ ":" IPv4address ]
hexpart
=
hexseq / hexseq "::" [ hexseq ] / "::" [ hexseq ]
hexseq
=
hex4 *( ":" hex4)
hex4
=
1*4HEXDIG
port
=
1*DIGIT
An example of the E2ENP URI:
e2enp://dave:vG$l809@acme.com/
The respective full or partial usage of the E2ENP address components depends on the domain model
(proxying) and the address resolution mechanisms, which are mainly part of the session layer protocol
(e.g. SIP). An application utilizing E2ENP for its signalling should use at least the domain names to
identify the communicating partners, if the session layer protocol is already offering some proxying
and/or redirection mechanisms to identify the network paths. Full E2ENP addresses should be considered
in cases of missing proxying mechanisms and ad-hoc networks.
Page A.254
MIND
1.2 / 0.1
A.8. Examples for using E2ENP
This section presents some examples depicting how the solution proposed in Section A.7 can be used in
practical cases.
The first example deals with videoconference services, whereby one-to-one and one-to-many scenarios
are used. The second example deals with third-party-assisted negotiation scenarios. The third example
depicts the case of a many-to-many scenario.
A.8.1 Videoconference scenarios
More specifically, we consider the case of a given User A, who simultaneously joins two different
videoconferences. User A is NOT acting as a mixer on behalf of the other peers, rather is simply
participating to two different videoconferences. In our terminology, each instance of the videoconference
application is named "videoconference session".
User A will then open the videoconference session #1 with User B and User C, and the videoconference
session #2 with User D (see Figure A.12).
User B and User C might be e.g. part of the same team as User A, whereby – by continuing the online
game example - User D might be an opponent. Team members might want to remain in contact via live
audio/video streams so as to enhance their team experience. On the other hand, User A might also
communicate with the User D so as to enhance the fighting experience. Please note that Figure A.12 does
not explicitly indicate data/control streams: for the sake of simplicity this example focuses only to (but is
in no way limited to) on the case of A/V media.
Furthermore, this example focuses on the level of QoS requested and perceived by User A. Therefore we
limit this example to the negotiation of the level of QoS that User A wishes to obtain for incoming
streams from her/his peers; furthermore, we may well assume that User A has enough information to
enforce QoS correlation and time synchronization on all of the streams included in both videoconference
sessions.
Figure A.12: Video Conference Example
In the rest of this section we apply the following convention:
1.
Message Sequence Charts are first presented, detailing the protocol procedures to be applied.
The E2ENP content is referenced by keywords: bids are referenced with the keyword bid-x,
Page A.255
MIND
1.2 / 0.1
answers with the keyword answer-y, whereby in both cases x and y stand for an incremental
integer positive value.
2.
Detailed description of the E2ENP content is then collected in a separate sub-paragraph.
A.8.1.1
One-to-one communication scenario
A.8.1.1.1
Pre-Negotiation
•
Push mode
Peer A: Receiver/Offerer - Peer B: Sender/Answerer
A: Local-Admission-Control (bid-1.1 - the initial proposal46):
successful
A: OPTIONS (bid-1.1) -> B
B: Local-Admission-Control (bid-1.1):
answer-1.1
B: 200 OK (answer-1.1) ->A
•
Pull mode
Peer A: Receiver/Offerer - Peer B: Sender/Answerer
A: OPTIONS -> B
B: Local-Admission-Control47 (bid-1.2):
successful
B: 200 OK (bid-1.2) ->A
A: Local-Admission-Control (bid-1.2):
answer-1.2 ⊆ bid-1.2
A: OPTIONS (answer-1.2 ) -> B
B: 200 OK ->A
Note (1):
The Offerer may or may not need to notify the answer to the
Answerer with the second OPTIONS method.
For instance, in the case of a Video on Demand scenario, the
Offerer might equivalently use the RTSP DESCRIBE method to
gather information about QoS contracts associated with a given
46
Derived from the cross- product of user profile information and capabilities - see § A.7.3.4
47
Performs cross-product process described in § A.7.3.4.
Page A.256
MIND
1.2 / 0.1
media. In that case, the Answerer (e.g. a VoD server) would not
need to be informed about the Offerer's (i.e. client's) choice, until
the actual streaming is started. In this document we focus however
on SIP-based conference scenarios, whereby peers are to be
considered substantially on an equal footage: each peer intends to
be informed about other peers for later communication. This is
especially true, if e.g. peer B intends to enforce QoS correlation
and time synchronization. Therefore the scenario depicted above
does apply to the example hereby addressed.
•
Push-Pull mode
Peer A: Sender-Receiver/Offerer - Peer B: Sender-Receiver/Answerer
A: Local-Admission-Control (bid-1.3):
successful
A: OPTIONS (bid-1.3) -> B
B: Local-Admission-Control (bid-1.4):
successful
B: Local-Admission-Control (bid-1.3):
answer-1.3 ⊆ bid-1.3
B: 200 OK (answer-1.3 + bid.1.4) ->A
A: Local-Admission-Control (bid-1.4):
answer-1.4 ⊆ bid-1.4
A: OPTIONS (answer-1.4) -> B
B: 200 OK ->A
Note (2):
Upon receiving a bid from the Offerer, the Answerer first of all
validates its own bid (e.g. based on user profile information), and
then the Offerer's bid, by following a sub-case of the Economy
Principle (commit first to local resources, and then to remote
peer's ones).
Since the pre-negotiation is not a typical SIP feature the mapping of the pre-negotiation can as well be
made by using the SIP MESSAGE method. This feature (whether to use OPTIONS or MESSAGE) is left
for further study. Additionally, it should be considered that several subsequent pre-negotiations can take
place for renewing the contracts leasing. Due to these reasons the recommendation of the authors of this
document is to use OPTIONS for the very first E2ENP negotiation. The MESSAGE method should be
then used from the leasing party to notify the owners of the leased information (previous pre-negotiation
contents) that leasing renewal is required. Since the MESSAGE method is also used by negotiation and
re-negotiation (e.g. multiparty scenarios), the specific meaning can be verified by checking the contents
of the respective <purpose> element of the received bid/answer PDU.
Page A.257
MIND
1.2 / 0.1
A.8.1.1.1.1
E2ENP Content
In this section we describe the SIP message bodies indicated with the keywords bid-x, answer-y in the
previous examples.
A.8.1.1.1.1.1
Bid-1.1
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
</e2enp:session>
<e2enp:description type="request" name="pre-negotiation"
mode=”push”/>
</e2enp:purpose>
<e2enp:qosdef name="capabilities">
<e2enp:audio:codec name48="PCMU" scope="applicable"/>
<e2enp:audio:codec name="G729" scope="applicable"/>
<e2enp:audio:codec name="G722" scope="possible"/>
<rtp:pt name="rtp-avp-0" pt="0" format="PCMU"/>
<rtp:pt name="rtp-avp-18" pt="18" format="G729"/>
<rtp:pt name="rtp-avp-9" pt="9" format="G722"/>
<e2enp:video:codec name="H263" scope="applicable"/>
<e2enp:video:codec name="H261" scope="applicable"/ >
<e2enp:video:codec name="WAVI" scope="possible"/>
<rtp:pt name="rtp-avp-34" pt="34" format="H263"/>
<rtp:pt name="rtp-avp-31" pt="31" format="H261"/>
<rtp:pt name="rtp-avp-100" pt="100" format="WAVI">
<e2enp:video:codec frame_rate_range="5,30"
frame_size_set="QCIF,CIF" color_quality_range="9100,10000"
overall_quality_range="9100,10000"/>
</rtp:pt>
</e2enp:qosdef>
<e2enp:qosdef name="contracts">
<e2enp:policy name="Let us optimize ((memory && network) || CPU)">
<e2enp:predicate id="predicate-1" first_term="optMemoryUsage"
second_term="optNetworkPerformance" function="and"/>
48
We prefer to omit the distinction between name and encoding indicated in [SDPNG01], since the encoding can be
used unambiguously as a name, since we have moved codec characterization to the <e2enp:qosdef> section (see
below).
Page A.258
MIND
1.2 / 0.1
<e2enp:predicate id="predicate-2" first_term="predicate-1"
second_term="optCpuLoad" function="or"/>
<e2enp:criterion type="expression" idref="predicate-2"/>
</e2enp:policy>
<e2enp:qos_contracts for=”audio”>
<e2enp:contract name="audio-contract-1"
sampling_rate_set="4000,8000" channel_set="1"/>
<e2enp:contract name="audio-contract-2"
sampling_rate_set="8000,12000" channel_set="1,2"/>
<e2enp:contract name="audio-contract-3"
sampling_rate_set="12000,16000" channel_set="1"/>
<rtp:map contract="audio-contract-1" format="rtp-avp-0"
peer_role="receiver"/>
<rtp:map contract="audio-contract-2" format="rtp-avp-18"
peer_role="receiver"/>
<rtp:map contract="audio-contract-3" format="rtp-avp-9"
peer_role="receiver"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”video”>
<e2enp:contract name="video-contract-1" frame_rate_set="10,15"
frame_size_set="CIF" color_quality_range="9100,9700"
overall_quality_range="9500,9800"/>
<e2enp:contract name="video-contract-2" frame_rate_set="15,20"
frame_size_set="QCIF" color_quality_range="9700,9850"
overall_quality_range="9800,9900"/>
<e2enp:contract name="video-contract-3" frame_rate_set="20,25"
frame_size_set="QCIF,CIF" color_quality_range="9850,9900"
overall_quality_range="9900,9960"/>
<rtp:map contract="video-contract-1" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-2" format="rtp-avp-31"
peer_role="receiver"/>
<rtp:map contract="video-contract-3" format="rtp-avp-100"
peer_role="receiver"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”transport”>
<e2enp:contract name="TI-1" pbr="320" sbr="320" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
</e2enp:contract>
<e2enp:contract name="TI-2" pbr="96" sbr="96" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
</e2enp:contract>
Page A.259
MIND
1.2 / 0.1
<e2enp:contract name="TI-3" pbr="86" sbr="86" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
</e2enp:contract>
<e2enp:contract name="TI-4" pbr="29" sbr="29" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
</e2enp:contract>
</e2enp:qos_contracts>
</e2enp:qosdef>
XML Example A. 27
Note that <rtp:map> does not contain nominal=”true” attribute (as described in Section
A.7.3.4.2), since the mapping between the video codecs and the video QoS contracts in this case in one to
one. This is valid also for the answer of this bid.
A.8.1.1.1.1.2
Answer-1.1
The counter-offer indicates what capabilities the Answerer supports, and to what extent. If a given
capability is supported "as is", only the corresponding identifier is indicated, along with the scope
attribute set to applicable. The higher level contracts which are taken as they are contain only the
name of the contract as reference to the information coming from the Offerer. Thus the Offerer knows
which contracts are being changed by the Answerer. In any field or element of the contract is changed the
contract should be listed anew from the Answerer, inclusively the fields that are not changed.
If a given capability is not supported, the corresponding identifier is simply omitted (in the example, the
G.729 audio codec, the WAVI video codec.
If a given capability is updated in the <e2enp:qosdef name="contracts"> element, the entire
description with the updates is returned. In any case, the <e2enp:qosdef name="contracts">
contains in a response only updated codec parameterisations. In the example, the PCMU audio codec and
the H.261 video codecs are re-parameterised by the Answerer.
Eventually, the counter-offer may list some capabilities not supported by the Offerer, as described in
Section A.7. In the example, a L16 audio codec and an MPEG-2 video codec.
Counter-offers to the <e2enp:qosdef name="contracts"> part of a bid can be proposed by the
Answerer, independently of the corresponding lines in the <e2enp:qosdef="capabilities">
element, and vice versa. In the example, the scope of the G.722 audio codec is counter-offered as
applicable in the <e2enp:qosdef name="capabilities"> element, but the corresponding
contract in the <e2enp:qosdef name="contracts"> element is kept as is.
As aforementioned, a counter-offer to the contract relative to the PCMU audio codec is proposed in the
<e2enp:qosdef name="contracts"> element, whereas the corresponding bid in the
<e2enp:qosdef name="capabilities"> element is kept as is. This flexibility is due to the
modular definition of the various elements.
Changes with respect to the original bid are indicated in boldface. In this example, the Answerer replies to
the Offerer by indicating that:
Page A.260
MIND
1.2 / 0.1
•
The G729 audio codec cannot be supported (corresponding lines removed)
•
The L16 audio codec could be supported (indicated as "possible" with configuration set)
•
The WAVI video codec cannot be supported (corresponding lines removed)
•
The MPEG-2 video codec could be supported (indicated as "possible" with configuration set)
•
Only network resource optimisation policy shall be used
•
Audio-contract-1: only a subset of the proposed sampling_range can be applied
•
Video-contract-2: only a subset of the proposed frame_rate_range can be applied
• The transport contract TI-1 is omitted by the answerer because such amount of network resources
cannot be accepted by the answerer
• The transport contract TI-2 is marked as <spare> by the answerer or the intermediate entities
because the current provider of the answerer does not support such network level QoS, but in general
the answerer technologically supports it.
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
</e2enp:session>
<e2enp:description type="response" name="pre-negotiation"
mode=”push”/>
</e2enp:purpose>
<e2enp:qosdef name="capabilities">
<e2enp:audio:codec name="PCMU" scope="applicable"/>
<e2enp:audio:codec name="G722" scope="applicable"/>
<e2enp:audio:codec name="L16" scope="possible"/>
<rtp:pt name="rtp-avp-0" pt="0" format="PCMU"/>
<rtp:pt name="rtp-avp-9" pt="9" format="G722"/>
<rtp:pt name="rtp-avp-11" pt="11" format="L16"/>
<e2enp:video:codec name="H263" scope="applicable"/>
<e2enp:video:codec name="H261" scope="applicable"/>
<e2enp:video:codec name="MP2T" scope="possible"/>
<rtp:pt name="rtp-avp-34" pt="34" format="H263"/>
<rtp:pt name="rtp-avp-31" pt="31" format="H261"/>
<rtp:pt name="rtp-avp-33" pt="33" format="MP2T">
<e2enp:video:codec frame_rate_range="30,30" frame_size_set="SIF"
color_quality_range="0,10000" overall_quality_range="0,10000"/>
</e2enp:qosdef>
Page A.261
MIND
1.2 / 0.1
<e2enp:qosdef name="contracts">
<e2enp:policy name="Let us optimize ((memory && network) || CPU)">
<e2enp:criterion type="optNetworkPerformance"/>
</e2enp:policy>
<e2enp:qos_contracts for=”audio”>
<e2enp:contract name="audio-contract-1" sampling-range="5000,7000"
channels="1"/>
<e2enp:contract name="audio-contract-3"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”video”>
<e2enp:contract name="video-contract-1"/>
<e2enp:contract name="video-contract-2" frame_rate_range="15,18"
frame_size_set="QCIF" color_quality_range="9550,9650"
overall_quality_range="9700,9850"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”transport”>
<e2enp:contract name="TI-2" pbr="96" sbr="96" mps="72" mbs="72"
qtp=”GUARANTEED_SERVICE”>
<suboption name="SI-1" me2ed="80" me2edv="10" mplr="2E-2"/>
<suboption name="SI-2" me2ed="120" me2edv="20" mplr="2E-2"/>
<spare provider_id=”my-telecom”>
</e2enp:contract>
<e2enp:contract name="TI-3"/>
<e2enp:contract name="TI-4"/>
</e2enp:qos_contracts>
</e2enp:qosdef>
XML Example A. 28
In this example the contracts "audio-contract-1", "video-contract-1" and "TI-3" are taken
as they are by the Answerer.
A.8.1.1.1.1.3
Bid-1.2 and Answer-1.2
The example in Section A.8.1.1.1 corresponding to these bid and answer differ from the others described
in the previous paragraphs, insofar as the <e2enp:purpose> element indicates in this case the pull
mode.
For the "OPTIONS":
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
Page A.262
MIND
1.2 / 0.1
<e2enp:description type="request" name="pre-negotiation"
mode=”pull”/>
</e2enp:purpose>
For the "Bid-1.2":
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:description type="response" name="pre-negotiation"
mode=”pull”/>
</e2enp:purpose>
… "Bid-1.2" content …
For the "Answer-1.2":
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:description type="request" name="pre-negotiation"
mode="pull"/>
</e2enp:purpose>
… "Answer-1.2" content …
XML Example A. 29
and the final reply from peer B is:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:description type="response" name="pre-negotiation"
mode="pull"/>
</e2enp:purpose>
XML Example A. 30
Page A.263
MIND
1.2 / 0.1
A.8.1.1.1.1.4
Bid-1.3, Answer-1.3+Bid-1.4, and Answer-1.4
The example in Section A.8.1.1.1.1 corresponding to these bids and answers differ from those described
in Section A.8.1.1.1.1.1 and Section A.8.1.1.1.1.2, insofar as the <e2enp:purpose> element indicates
in this case the push-pull mode.
The "Bid-1.3" shall include as <e2enp:purpose> the following:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="pre-negotiation" mode="pushpull"/>
</e2enp:purpose>
XML Example A. 31
More specifically, "Answer-1.3+Bid-1.4" accounts for the case whereby the E2ENP content includes both
the bid and the answer of the Answerer. In order to distinguish the bid from the answer, each of them
shall feature a distinct <e2enp:purpose> element. This means that the push-pull pre-negotiation
results in the interleaving of two pre-negotiation sessions, each with its own identifier.
More concretely, if for instance the "Bid-1.3" features a <e2enp:purpose> element like the one
indicated above, the "Answer-1.3+Bid-1.4" shall then feature two <e2enp:purpose> elements like
the following:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
<e2enp:description type="response" name="pre-negotiation"
mode=”push-pull”/>
</e2enp:purpose>
… "Answer-1.3" content …
<e2enp:purpose>
<e2enp:session user=”Kate” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.145">
<e2enp:expires time="36000"/>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="request" name="pre-negotiation" mode=”pushpull”/>
</e2enp:purpose>
… "Bid-1.4" content …
Page A.264
MIND
1.2 / 0.1
XML Example A. 32
The Answerer's bid references the Offerer's bid via the <e2enp:use> construct, insofar as the Answerer
formulates its bid based not only on Answerer's preferences (e.g. from user profile information) but also
on the Offerer's bid (and eventually based on QoS correlation and/or time synchronization constraints).
Of course, by following the above example, the "Answer-1.4" shall include as <e2enp:purpose> the
following:
<e2enp:purpose>
<e2enp:session user=”Kate” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.145">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="pre-negotiation"
mode=”push-pull”/>
</e2enp:purpose>
XML Example A. 33
A.8.1.1.2
•
Negotiation and resource reservation
Push mode
Peer A: Receiver/Offerer - Peer B: Sender/Answerer
A: Local-Admission-Control (bid-2.1):
successful
A: Local-Resource-Reservation (bid-2.1):
successful
A: INVITE (bid-2.1) -> B
B: Local-Admission-Control (bid-2.1):
answer-2.1 ⊆ bid-2.1
B: Local-Resource-Reservation (answer-2.1):
successful
B: 183 Session Progress (answer-2.1) ->A
A: Local-Resource-Reservation (answer-2.1):
Page A.265
MIND
1.2 / 0.1
successful
A: PRACK (command-start-reservation) -> B
B: 200 OK (of PRACK) (command-start-reservation) -> A
A: Network reservation (based on answer-2.1)
B: Network reservation (based on answer-2.1)
A. UPDATE (command-ready-reservation) -> B
B: 200 OK (of UPDATE) -> A
B: 180 Ringing -> A
B: 200 OK (of INVITE) -> A
A: ACK -> B
Note (1):
•
After having pre-booked local resource with respect to "Bid-2.1",
peer A finally reserves the negotiated subset "Answer-2.1", in
order to release any excess resource.
Pull mode
Peer A: Receiver/Offerer - Peer B: Sender/Answerer
A: INVITE -> B
B: Local-Admission-Control (bid-2.2):
successful
B: Local-Resource-Reservation (bid-2.2):
successful
B: 183 Session Progress (bid-2.2) ->A
A: Local-Admission-Control (bid-2.2):
answer-2.2 ⊆ bid-2.2
A: Local-Resource-Reservation (answer-2.2):
successful
A: PRACK (answer-2.2 - see Note (3))-> B
B: Local-Resource-Reservation (answer-2.2):
successful
B: 200 OK (of PRACK) (command-start-reservation) -> A
A: Network reservation (based on answer-2.2)
Page A.266
MIND
1.2 / 0.1
B: Network reservation (based on answer-2.2)
A. UPDATE (command-ready-reservation) -> B
B: 200 OK (of UPDATE) -> A
B: 180 Ringing -> A
B: 200 OK -> A
A: ACK -> B
•
Note (2):
After having pre-booked local resource with respect to "Bid-2.2",
peer B finally reserves the negotiated subset "Answer-2.2", in
order to release any excess resource.
Note (3):
"Bid-2.2" and "Answer-2.1" are substantially equivalent to
(correspondingly) "Bid-2.1" and "Answer-2.1", except for the
<e2enp:purpose> element, which features the attribute
"mode" set to "pull" and, in the case of "Answer-2.2", the
attribute "type" set to "start-reservation".
Push-Pull mode
Peer A: Sender-Receiver/Offerer - Peer B: Sender-Receiver/Answerer
A: Local-Admission-Control (bid-2.3):
successful
A: Local-Resource-Reservation (bid-2.3):
successful
A: INVITE (bid-2.3)-> B
B: Local-Admission-Control (bid-2.4):
successful
B: Local-Admission-Control (bid-2.3):
answer-2.3 ⊆ bid-2.3
B: Local-Resource-Reservation (bid-2.4):
successful
B: Local-Resource-Reservation (answer-2.3):
successful
B: 183 Session Progress (answer-2.3+bid-2.4) ->A
A: Local-Resource-Reservation (answer-2.3):
successful
Page A.267
MIND
1.2 / 0.1
A: Local-Admission-Control (bid-2.4):
answer-2.4 ⊆ bid-2.4
A: Local-Resource-Reservation (answer-2.4):
successful
A: PRACK (answer-2.4- see Note (6))-> B
B: Local-Resource-Reservation (answer-2.4):
successful
B: 200 OK (of PRACK: command-start-reservation) -> A
A: Network reservation (based on answer-2.3+answer-2.4) (Note (7))
B: Network reservation (based on answer-2.3+answer-2.4) (Note (8))
A. UPDATE (command-ready-reservation) -> B
B: 200 OK (of UPDATE) -> A
B: 180 Ringing -> A
B: 200 OK -> A
A: ACK -> B
A.8.1.1.2.1
Note (4):
After having pre-booked local resource with respect to "Bid-2.3",
peer A finally reserves the negotiated subset "Answer-2.3", in
order to release any excess resource.
Note (5):
After having pre-booked local resource with respect to "Bid-2.4",
peer B finally reserves the negotiated subset "Answer-2.4", in
order to release any excess resource.
Note (6):
"Bid-2.3"/"Bid-2.4"
and
"Answer-2.3"/"Answer-2.4"
are
substantially equivalent to (correspondingly) "Bid-2.1" and
"Answer-2.1", except for the <e2enp:purpose> element,
which features the "mode" element set to push-pull and, in
the case of "Answer-2.4", the attribute "type" set to "startreservation".
Note (7):
The “Answer-2.3” is a TSpec for receiving, the “Answer-2.4” is a
TSpec for sending.
Note (8):
The “Answer-2.3” is a TSpec for sending, the “Answer-2.4” is a
TSpec for receiving.
E2ENP Content
In this section we describe the SIP message bodies indicated with the keywords bid-x, answer-y in the
previous examples.
Page A.268
MIND
1.2 / 0.1
A.8.1.1.2.1.1
Bid-2.1
This bid refers to pre-negotiated information, by indicating the session identifier uniquely indicating that
information via the <e2enp:use> construct in the <e2enp:purpose> element. In this example, the
referred information is "Bid-1.1" (see Section A.8.1.1.1.1.1), which was used for pre-negotiating
capabilities and stream-level QoS Contracts. Alternatively, the peers could have pre-negotiated the AP
information contained in this paragraph, directly in "Bid-1.1" in order to speed up the negotiation phase
(see example in Section A.8.1.1.2.1.5).
Note, that in this example, the association between application level QoS and transport level QoS is
performed in the stream adaptation path. For each element in the adaptation path, the application level
QoS contract is referenced (which references a codec/application level QoS description) and associated
with a reference to a transport level QoS contract that describes the amount of network resources to be
used.
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="request" name="negotiation" mode=”push”/>
</e2enp:purpose>
<cfg>
<component name="audio-stream-1" media="audio”>
<alt name="AVP-audio-0”>
<rtp:session format="rtp-avp-0">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7800" rtcp-port="7801"/>
</rtp:session>
</alt>
<alt name="AVP-audio-9”>
<rtp:session format="rtp-avp-9">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7840" rtcp-port="7851"/>
</rtp:session>
</alt>
</component>
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
Page A.269
MIND
1.2 / 0.1
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7920" rtcp-port="7921"/>
</rtp:session>
</alt>
</component>
</cfg>
<e2enp:qoscfg level="stream">
<! --adaptation path for single streams -->
<e2enp:adapath name=“audio1” ref_component="audio-stream-1">
<e2enp:alt nominal=”true” name=“initial” ref_contract=“audiocontract-1” transport-contract=”TI-4” suboption=“SI-1”
scope="applicable"/>
<e2enp:alt name=“choice1" ref_contract=“audio-contract-3”
transport-contract=”TI-4” suboption=“SI-2” scope="applicable"/>
</e2enp:adapath>
<e2enp:adapath name=“video1” ref_component="video-stream-1">
<e2enp:alt nominal=“true” name=”initial” ref_contract=”videocontract-1” transport-contract=”TI-3” suboption=“SI-1”
scope="applicable"/>
<e2enp:alt name=“choice1” ref_contract=”video-contract-2”
transport-contract=”TI-3” suboption=“SI-1” scope=”possible”/>
</e2enp:adapath>
<! -- Possible associations of streams between user A and B -->
<e2enp:context name=”association1-1” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1"/>
<e2enp:comp name=”element2” ref_adapath="video1"/>
<e2enp:constraints>
<e2enp:par name=“lipsync-delay” reference="audio1" max=”2”/>
<e2enp:par name=“aggregated-bw” max=”64000”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”association1-2” scope="possible">
<e2enp:comp name=”element1” ref_adapath="audio1”/>
</e2enp:context>
<e2enp:adapath name=“associations-A-B” >
Page A.270
MIND
1.2 / 0.1
<e2enp:alt nominal=”true“ name=”initial”
ref_context="association1-1”/>
<e2enp:alt name=“choice1" ref_context="association1-2”/>
</e2enp:adapath>
</e2enp:qoscfg>
XML Example A. 34
A.8.1.1.2.1.2
Answer-2.1
Concerning the SDPng/E2ENP <cfg> element, the Answerer in this example replies to the Offerer by
listing only the transport information upon which agreement has been reached.
Changes with respect to the original bid are indicated in boldface. In this example, the Answerer replies to
the Offerer by indicating that:
• The AVP-video-33 option cannot be supported, due to e.g. IPv6 not supported by the
Answerer (corresponding lines removed).
• association1-1: only a subset of the proposed lipsync-delay can be applied.
• association1-1: only a subset of the proposed aggregated-bw can be applied.
• association1-2: confirmed as applicable.
At this phase, the peers negotiate stream AP and association AP, via the <e2enp:qoscfg> element: in
this example, the Answerer replies with a subset of the bid QoS correlation and time synchronization
constraints (only changed elements are detailed: changes are indicated in boldface).
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="negotiation" mode=”push”/>
</e2enp:purpose>
<cfg>
<component name="audio-stream-1" media="audio”>
<alt name="AVP-audio-0”/>
<alt name="AVP-audio-9”/>
</component>
<component name=" audio-stream-1" media="video”>
Page A.271
MIND
1.2 / 0.1
<alt name="AVP-audio-34”/>
<alt name="AVP-audio-31”/>
</component>
</cfg>
<e2enp:qoscfg level="stream">
<!-- adaptation path for single streams -->
<e2enp:adapath name=“audio1”/>
<e2enp:adapath name=“video1”/>
<! -- Possible associations of streams between user A and B -->
<e2enp:context name=”association1-1” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1"/>
<e2enp:comp name=”element2” ref_adapath="video1"/>
<e2enp:constraints>
<e2enp:par name=“lipsync-delay” reference="audio1" max=”1.5”/>
<e2enp:par name=“aggregated-bw” max=”56000”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”association1-2” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1”/>
</e2enp:context>
<e2enp:adapath name=“associations-A-B”/>
</e2enp:qoscfg>
XML Example A. 35
A.8.1.1.2.1.3
Command-start-reservation
To signal the command to a peer to start reserving resources, the E2ENP content will simply feature a
<e2enp:purpose> element with the attribute name set to start-reservation the peer is also
instructed that the reservation should be coordinated, as in the following example:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="start-reservation"
coordination=”true”/>
</e2enp:purpose>
XML Example A. 36
Page A.272
MIND
1.2 / 0.1
A.8.1.1.2.1.4
Command-ready-reservation
To signal the peer that reservation has been accomplished, the E2ENP content will simply feature a
<e2enp:purpose> element with the attribute name set to ready-reservation, as in the
following example:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="ready-reservation"/>
</e2enp:purpose>
XML Example A. 37
If the reservation ends up with successful reservation the command-ready-reservation contains only
<e2enp:purpose> element. In case the reservation has resulted with less resources as initially
required the command-ready-reservation can convey the results of the reservation using the
<e2enp:enforce> element.
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
<e2enp:description type="request" name="ready-reservation"/>
</e2enp:purpose>
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association11.video1.video-contract-2”/>
<e2enp:target name="$contract"/>
</e2enp:enforce>
XML Example A. 38
A.8.1.1.2.1.5
Leveraging additional pre-negotiated information
As anticipated in Section A.8.1.1.2.1.1, the peers could have pre-negotiated the AP information described
in the rest of this paragraph directly in "Bid-1.1", in order to speed up the negotiation phase. Following is
an example of pre-negotiation bid and answer information (for the simple case of a push mode prenegotiation), and then the negotiation bid and answer (again, push mode). In this example, we omit the
TI/SI information in order to simplify the example.
This example is based on the corresponding ones described in Sections A.8.1.1.2.1.1 and A.8.1.1.2.1.2..
•
Bid-1.1 - with stream AP and Group AP (with respect to stream Associations)
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
Page A.273
MIND
1.2 / 0.1
</e2enp:session>
<e2enp:description type="request" name="pre-negotiation"
mode=”push”/>
</e2enp:purpose>
<e2enp:qosdef name="capabilities">
<e2enp:audio:codec name49="PCMU" scope="applicable"/>
<e2enp:audio:codec name="G729" scope="applicable"/>
<e2enp:audio:codec name="G722" scope="possible"/>
<rtp:pt name="rtp-avp-0" pt="0" format="PCMU"/>
<rtp:pt name="rtp-avp-18" pt="18" format="G729"/>
<rtp:pt name="rtp-avp-9" pt="9" format="G722"/>
<e2enp:video:codec name="H263" scope="applicable"/>
<e2enp:video:codec name="H261" scope="applicable"/ >
<e2enp:video:codec name="WAVI" scope="possible"/>
<rtp:pt name="rtp-avp-34" pt="34" format="H263"/>
<rtp:pt name="rtp-avp-31" pt="31" format="H261"/>
<rtp:pt name="rtp-avp-100" pt="100" format="WAVI">
<e2enp:video:codec frame_rate_range="5,30"
frame_size_set="QCIF,CIF" color_quality_range="9100,10000"
overall_quality_range="9100,10000"/>
</rtp:pt>
</e2enp:qosdef>
<e2enp:qosdef name="contracts">
<e2enp:policy name="Let us optimize ((memory && network) || CPU)">
<e2enp:predicate id="predicate-1" first_term="optMemoryUsage"
second_term="optNetworkPerformance" function="and"/>
<e2enp:predicate id="predicate-2" first_term="predicate-1"
second_term="optCpuLoad" function="or"/>
<e2enp:criterion type="expression" idref="predicate-2"/>
</e2enp:policy>
<e2enp:qos_contracts for=”audio“>
<e2enp:contract name="audio-contract-1"
sampling_rate_set="4000,8000" channel_set="1"/>
<e2enp:contract name="audio-contract-2"
sampling_rate_set="8000,12000" channel_set="1,2"/>
49
We prefer to omit the distinction between name and encoding indicated in [SDPNG01], since the encoding can be
used unambiguously as a name, since we have moved codec characterization to the <e2enp:qosdef> section (see
below).
Page A.274
MIND
1.2 / 0.1
<e2enp:contract name="audio-contract-3"
sampling_rate_set="12000,16000" channel_set="1"/>
<rtp:map contract="audio-contract-1" format="rtp-avp-0"
peer_role="receiver"/>
<rtp:map contract="audio-contract-2" format="rtp-avp-18"
peer_role="receiver"/>
<rtp:map contract="audio-contract-3" format="rtp-avp-9"
peer_role="receiver"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”video“>
<e2enp:contract name="video-contract-1" frame_rate_set="10,15"
frame_size_set="CIF" color_quality_range="9100,9700"
overall_quality_range="9500,9800"/>
<e2enp:contract name="video-contract-2" frame_rate_set="15,20"
frame_size_set="QCIF" color_quality_range="9700,9850"
overall_quality_range="9800,9900"/>
<e2enp:contract name="video-contract-3" frame_rate_set="20,25"
frame_size_set="QCIF,CIF" color_quality_range="9850,9900"
overall_quality_range="9900,9960"/>
<rtp:map contract="video-contract-1" format="rtp-avp-34"
peer_role="receiver"/>
<rtp:map contract="video-contract-2" format="rtp-avp-31"
peer_role="receiver"/>
<rtp:map contract="video-contract-2" format="rtp-avp-100"
peer_role="receiver"/>
</e2enp:qos_contracts>
</e2enp:qosdef>
<e2enp:qoscfg level="stream">
<! --adaptation path for single streams -->
<e2enp:adapath name=“audio1” ref_component="audio-stream-1">
<e2enp:alt nominal=”true“ name=”initial” ref_contract=“audiocontract-1”/>
<e2enp:alt name=“choice1" ref_contract=“audio-contract-3”/>
</e2enp:adapath>
<e2enp:adapath name=“video1” ref_component="video-stream-1">
<e2enp:alt nominal=”true“ name=”initial” ref_contract="videocontract-1”/>
<e2enp:alt name=“choice1" ref_contract="video-contract-2”/>
</e2enp:adapath>
<!-- Possible association of streams between user A & B -->
<e2enp:context name=”association1-1” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1"/>
<e2enp:comp name=”element2” ref_adapath="video1"/>
<e2enp:constraints>
Page A.275
MIND
1.2 / 0.1
<e2enp:par name=“lipsync-delay” reference="audio1" max=”2”/>
<e2enp:par name=“aggregated-bw” max=”64000”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”association1-2” scope="possible">
<e2enp:comp name=”element1” ref_adapath="audio1”/>
</e2enp:context>
<e2enp:adapath name=“associations-A-B” >
<e2enp:alt nominal=”true“ name=”initial”
ref_context="association1-1”/>
<e2enp:alt name=“choice1" ref_context="association1-2”/>
</e2enp:adapath>
</e2enp:qoscfg>
XML Example A. 39
•
Answer-1.1 - with stream AP and Group AP (with respect to stream Associations)
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="36000"/>
</e2enp:session>
<e2enp:description type="response" name="pre-negotiation"
mode=”push”/>
</e2enp:purpose>
<e2enp:qosdef name="capabilities">
<e2enp:audio:codec name="PCMU" scope="applicable"/>
<e2enp:audio:codec name="G722" scope="applicable"/>
<e2enp:audio:codec name="L16" scope="possible"/>
<rtp:pt name="rtp-avp-0" pt="0" format="PCMU"/>
<rtp:pt name="rtp-avp-9" pt="9" format="G722"/>
<rtp:pt name="rtp-avp-11" pt="11" format="L16"/>
<e2enp:video:codec name="H263" scope="applicable"/>
<e2enp:video:codec name="H261" scope="applicable"/>
<e2enp:video:codec name="MP2T" scope="possible"/>
<rtp:pt name="rtp-avp-34" pt="34" format="H263"/>
<rtp:pt name="rtp-avp-31" pt="31" format="H261"/>
<rtp:pt name="rtp-avp-33" pt="33" format="MP2T">
<e2enp:video:codec frame_rate_range="30,30" frame_size_set="SIF"
color_quality_range="0,10000" overall_quality_range="0,10000"/>
Page A.276
MIND
1.2 / 0.1
</e2enp:qosdef>
<e2enp:qosdef name="contracts">
<e2enp:policy name="Let us optimize ((memory && network) || CPU)">
<e2enp:criterion type="optNetworkPerformance"/>
</e2enp:policy>
<e2enp:qos_contracts for=„audio“>
<e2enp:contract name="audio-contract-1" sampling-range="5000,7000"
channels="1"/>
<e2enp:contract name="audio-contract-3"/>
</e2enp:qos_contracts>
<e2enp:qos_contracts for=”video”>
<e2enp:contract name="video-contract-1"/>
<e2enp:contract name="video-contract-2" frame_rate_range="15,18"
frame_size_set="QCIF" color_quality_range="9550,9650"
overall_quality_range="9700,9850"/>
</e2enp:qos_contracts>
</e2enp:qosdef>
<e2enp:qoscfg level="stream">
<!-- adaptation path for single streams -->
<e2enp:adapath name=“audio1”/>
<e2enp:adapath name=“video1”/>
<!-- Possible association of streams between user A & B -->
<e2enp:context name=”association1-1” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1"/>
<e2enp:comp name=”element2” ref_adapath="video1"/>
<e2enp:constraints>
<e2enp:par name=“lipsync-delay” reference="audio1" max=”1.5”/>
<e2enp:par name=“aggregated-bw” max=”56000”/>
</e2enp:constraints>
</e2enp:context>
<e2enp:context name=”association1-2” scope="applicable">
<e2enp:comp name=”element1” ref_adapath="audio1”/>
</e2enp:context>
<e2enp:adapath name=“associations-A-B”/>
</e2enp:qoscfg>
XML Example A. 40
•
Bid-2.1 - only referencing stream AP and Group AP (with respect to stream Associations)
Page A.277
MIND
1.2 / 0.1
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="request" name="negotiation" mode=”push”/>
</e2enp:purpose>
<cfg>
<component name="audio-stream-1" media="audio”>
<alt name="AVP-audio-0”>
<rtp:session format="rtp-avp-0">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7800" rtcp-port="7801"/>
</rtp:session>
</alt>
<alt name="AVP-audio-9”>
<rtp:session format="rtp-avp-9">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7840" rtcp-port="7851"/>
</rtp:session>
</alt>
</component>
<component name="video-stream-1" media="video”>
<alt name="AVP-video-34”>
<rtp:session format="rtp-avp-34">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7900" rtcp-port="7901"/>
</rtp:session>
</alt>
<alt name="AVP-video-31”>
<rtp:session format="rtp-avp-31">
<rtp:udp role="receive" nettype="IN" addrtype="IP4"
addr="43.196.180.1" rtp-port="7920" rtcp-port="7921"/>
</rtp:session>
</alt>
Page A.278
MIND
1.2 / 0.1
</component>
</cfg>
XML Example A. 41
•
Answer-2.2 - only referencing stream AP and Group AP (with respect to stream Associations)
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="negotiation" mode=”push”/>
</e2enp:purpose>
<cfg>
<component name="audio-stream-1" media="audio”>
<alt name="AVP-audio-0”/>
<alt name="AVP-audio-9”/>
</component>
<component name=" audio-stream-1" media="video”>
<alt name="AVP-audio-34”/>
<alt name="AVP-audio-31”/>
</component>
</cfg>
XML Example A. 42
In this case, both the Offerer and the Answerer implicitly agree on enforcing the pre-negotiated APs, by
starting streaming with the contracts indicated by the “nominal” attribute.
Should either peer decide otherwise due to some conditions applying at the time of the negotiation (and of
the start of streaming, which would apply immediately after negotiation), a reduced version of the
<e2enp:qoscfg> could be included, indicating the new default contract(s).
Remember that the default state corresponds, in the Hierarchical FSM model described in Section A.6.3,
to the initial state of a given (eventually nested) FSM.
A.8.1.1.3
Re-negotiation and resource reservation
In case of re-negotiation, the "mode" attribute of the <e2enp:purpose> element is not used.
Page A.279
MIND
1.2 / 0.1
Peer A: Receiver/Answerer - Peer B: Sender/Offerer
B: detected QoS violation/change50:
select new QoS level to enforce from pre-negotiated APs ⇒ bid-3.1
B: Local-Admission-Control (bid-3.1):
successful
B: Local-Resource-Reservation (bid-3.1):
successful
B: INVITE (bid-3.1) -> A (See Note (3))
A: Local-Admission-Control (bid-3.1):
answer-3.1 ⊆ bid-3.1
A: Local-Resource-Reservation (answer-3.1):
successful
A: 183 Session Progress (answer-3.1 - See Note (4)) ->B
B: Local-Resource-Reservation (answer-3.1)
B: PRACK (command-start-reservation) -> A
A: 200 OK (of PRACK)
A: Network reservation (based on answer-3.1)
B: Network reservation (based on answer-3.1)
B. UPDATE (command-ready-reservation) -> A
A: 200 OK (of UPDATE) -> B
A: 200 OK (of INVITE) -> B
B: ACK->A
50
Note (1):
Both peers reserve resources corresponding to the re-negotiated
QoS levels, by adding any required resource and/or releasing any
excessive resource, with respect to the amount of previously
reserved resources.
Note (2):
For a description of the "Command-start-reservation" and
"Command-stop-reservation" please refer to respectively Section
A.8.1.1.2.1.3 and Section A.8.1.1.2.1.4.
Either peer can initiate this sequence.
Page A.280
MIND
1.2 / 0.1
A.8.1.1.3.1
Note (3):
In this case a re-INVITE (as described in SIP [RFC3261], this is
an INVITE within a dialogue) is used enforce the three-way
acknowledgement, which guarantees that the peers begin
streaming with the new QoS level in a coordinated and safe
manner. This can also be utilized for forcing the peer to use
another terminal or for performing a End-to-End QoS Full Renegotiation.
Note (4):
The "Answer-3.1" in this message features the attribute "type"
set to "start-reservation".
E2ENP Content
In this section we describe the SIP message bodies indicated with the keywords bid-x, answer-y in the
previous examples.
A.8.1.1.3.1.1
Bid-3.1
In this example, with respect to the information already negotiated during previous phases (the last of
which is identified by the <e2enp:session> element wrapped by the <e2enp:use> element of the
<e2enp:purpose> element), peer B requests peer A to enforce an alternative QoS Contract. More
specifically, peer B requests peer A to enforce the stream-level QoS contract "video-contract-2",
instead of the default one "video-contract-1", with respect to the video stream "video1" of the
currently active association, "association1-1". This command is expressed via the “enforce”
element 51.
Furthermore, peer A can discover that video-contract-1 is no longer applicable with the new type
of access network/network provider: therefore peer A signal a "block" for that contract. Should spare
contracts be available and now valid, an “unblock” signal could also be included in this bid.
By associating the transport-contract with audio/video QoS contracts (that contain codec
descriptions and application layer QoS parameters, automatically the right transport contract is referenced
in the re-negotiation process. Due to simplicity reasons for the following re-negotiation examples the
dotted-separation form is used as identified in Section A.7.3.7.1.
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="request" name="re-negotiation"/>
</e2enp:purpose>
51
In this XML fragment the use of XPath is shown in a simplified way, in order to capture the concept of the
<e2enp:enforce> section. A rigorously formal description of the overall hereby-proposed SDPng extensions
will be provided at a later time.
Page A.281
MIND
1.2 / 0.1
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association11.video1.video-contract-2”/>
<e2enp:target name="$contract"/>
</e2enp:enforce>
<e2enp:block>
<e2enp:contract_level path=”associations-A-B.association11.video1.video-contract-1”/>
<e2enp:target name="$contract"/>
</e2enp:block>
XML Example A. 43
Alternatively, peer B can also simply indicate to peer A some higher-level information, whereby peer A
would then resolve the remaining lower-level information by resorting to default values. For instance, the
following <e2enp:enforce> element:
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association11.video1”/>
<e2enp:target name="$stream"/>
</e2enp:enforce>
XML Example A. 44
would force peer A to use "video-contract-1" for the "video1" stream, since that contract
was specified as default in the pre-negotiated <e2enp:qoscfg> element.
Furthermore, peer B can request peer A to switch to a totally different group of streams, selected out of
the pre-negotiated information. For instance, assumed the currently active association of streams between
peer A and peer B is "association1-1", peer B can request peer A to select the
"association1-2", like in the following example of <e2enp:enforce> element:
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association1-2"/>
<e2enp:target name="$association"/>
</e2enp:enforce>
XML Example A. 45
A.8.1.1.3.1.2
Answer-3.1
According to requirement [31], the Answerer should limit its reaction to either approve the Offerer's bid,
or simply choose a lower QoS level, to be selected from pre-negotiated information. Following the
example indicated in the previous paragraph, peer A could then choose either to accept the proposal as is,
or select an alternative option out of the pre-negotiated information, which still satisfies the original bid of
the Offerer.
In the former case, the "Answer-3.1" would look like the following:
<e2enp:purpose>
Page A.282
MIND
1.2 / 0.1
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="re-negotiation"/>
</e2enp:purpose>
XML Example A. 46
The absence of the <e2enp:enforce> element in the Answerer's response indicated that the Answer
has agreed on the Offerer's bid.
In the case the Answerer (peer A in this example) preferred a lower QoS level, the "Answer-3.1" would
look like the following:
<e2enp:purpose>
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="re-negotiation"/>
</e2enp:purpose>
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association1-1.video1.
video-contract-3"/>
<e2enp:target name="$contract"/>
</e2enp:enforce>
XML Example A. 47
In this example we assume that a video-contract-3 defining a lower level of QoS compared to the one
defined by the proposed video-contract-1, has been previously negotiated between the two peers (not
shown in the previous examples). Alternatively, peer A can specify a lower level of QoS by specifying
another association, like described in the previous paragraph:
<e2enp:purpose>
Page A.283
MIND
1.2 / 0.1
<e2enp:session user=”Mary” session_id="2890844526"
version="2890842807" nettype="IN" addrtype="IP4"
addr="43.196.180.1">
<e2enp:expires time="3600"/>
</e2enp:session>
<e2enp:use>
<e2enp:session user=”Mary” session_id="2890843112"
version="2890841393" nettype="IN" addrtype="IP4"
addr="43.196.180.1"/>
</e2enp:use>
<e2enp:description type="response" name="re-negotiation"/>
</e2enp:purpose>
<e2enp:enforce>
<e2enp:contract_level path=”associations-A-B.association1-2"/>
<e2enp:target name="$association"/>
</e2enp:enforce>
XML Example A. 48
A.8.1.2
One-to-many communication scenario
A.8.1.2.1
Pre-Negotiation
•
Push mode
Peer A: Offerer - Peers B1 ... Bn: Answerers
A: Local-Admission-Control: (bid-1.1)
successful
A: OPTIONS (bid-1.1) -> Bj
Bj: Local-Admission-Control (bid-1.3):
answer-1.1.Bj
Bj: 200 OK (answer-1.3.Bj) ->A
•
j ∈ {1,n}
Note (1):
the various answers “Answer-1.1.Bj” can coincide, partially
differ, or differ completely from each other. Substantially they
are equivalent to "Answer-1.1" described in Section
A.8.1.1.1.1.2.
Note (2):
after receiving all replies from peer Bj, peer A may enforce QoS
correlation and time synchronization constraints, and thus
renegotiate with peers Bj new lower QoS levels.
Pull mode
Peers A1 … An: Offerers - Peer B: Answerer
Page A.284
MIND
1.2 / 0.1
Aj : OPTIONS -> B
B: 200 OK (bid-1.2) -> Aj
Aj: Local-Admission-Control (bid-1.2):
answer-1.2.Aj
Aj: OPTIONS (answer-1.2.Aj) -> B
Bj: Local-Admission-Control (answer-1.2.Aj):
successful
B: 200 OK (answer-1.2.Aj) -> Aj
j ∈ {1,n}
Note (3):
the various answers “Answer-1.2.Aj” can coincide, partially
differ, or differ completely from each other. Substantially
“Answer-1.2.Aj” are equivalent to "Answer-1.2" described in
Section A.8.1.1.1.1.3. "Bid-1.2" is substantially equivalent to the
one described in Section A.8.1.1.1.1.3 as well.
Note (4):
during local admission control, peer B could enforce QoS
correlation and time synchronization constraints before replying
to each peer Aj, but the various Aj generally carry out this
E2ENP phase independently of each other.
Therefore it is not generally possible to withhold replies to
OPTIONS beyond the corresponding SIP timer duration.
Alternatively, peer B can decide to accept request within a
certain time window, after which peer B can enforce QoS
correlation and time synchronization constraints and
consequently carry out new pre-negotiations with each peer Aj.
In this case, peer B would then take the Offerer role. As an
example, peer B could be a sender like in the lecture scenario
(see Section A.3.3.2), which pre-negotiates QoS with each
receiver first individually, and then eventually reruns some prenegotiation in order to enforce QoS correlation and time
synchronization constraints.
Note (5):
see Note (1) in Section A.8.1.1.1
Pre-negotiating bi-directional connections for the case one-to-many may result in an actual many-to-many
connection; therefore this case is not treated here. As by the pre-negotiation described in Section
A.8.1.1.1 the SIP MESSAGE method can also be used here.
A.8.1.2.2
Negotiation and resource reservation
Bi-directional negotiation is not hereby presented, since this might result in a case of many-to-many
scenario (see Section A.8.3), whereby particular attention to synchronization issues should be paid. The
following scenario are thus valid for the case where the "One" peer of the one-to-many relationship is a
sender (receiver) and each of the "Many" peer of such relationship is a receiver (sender).
•
Push mode
Peer A: Offerer - Peers B1 ... Bn: Answerers
Page A.285
MIND
1.2 / 0.1
A: Local-Admission-Control (bid-2.1 - see Note (1)):
successful
A: Local-Resource-Reservation (bid-2.1):
successful
A: INVITE (bid-2.1) -> Bj
Bj: Local-Admission-Control (bid-2.1):
answer-2.1.Bj ⊆ bid-2.1
Bj: Local-Resource-Reservation (answer-2.1.Bj):
successful
Bj: 183 Session Progress (answer-2.1.Bj) ->A
A: Eventually correlates streams coming from or going to the different Bj
A: Local-Resource-Reservation (answer-2.1.Bj):
successful (Note (2))
A: PRACK (command-start-reservation) -> Bj
Bj: 200 OK (of PRACK) (command-start-reservation) -> A
A: Network reservation (Note (3))
Bj: Network reservation (Note (4))
A. UPDATE (command-ready-reservation) -> Bj
Bj: 200 OK (of UPDATE) -> A
Bj: 180 Ringing -> A
Bj: 200 OK (of INVITE) -> A
j ∈ {1, n}
A: ACK -> Bj
•
Note (1):
"Bid-2.1" is substantially equivalent to the one described in
Section A.8.1.1.2.1.1.
Note (2):
Balance resources upon the answers of Bj by releasing any excess
resource.
Note (3):
By using the command-start-reservation signalling, peer A will
be able to determine if and when network resource reservations
should be carried out based on all {"Answer-2.1.Bj"}, or only on
whatever subset thereof is currently available.
Note (4):
Based on the Bj’s answer-2.1.Bj
Pull mode
Page A.286
MIND
1.2 / 0.1
Peers A1 … Am: Offerers - Peer B: Answerer
Aj: INVITE -> B
B: Local-Admission-Control (bid-2.2):
successful
B: Local-Resource-Reservation (bid-2.2):
successful
B: 183 Session Progress (bid-2.2.Aj) -> Aj
Aj: Local-Admission-Control (bid-2.2.B):
answer-2.2.Aj ⊆ bid-2.2 (Note (5))
Aj: Local-Resource-Reservation (answer-2.2.Aj):
successful
Aj: PRACK (answer-2.2.Aj - see Note (6)) -> B
B: Eventually correlates streams coming from- or going to- the different Aj
B: Local-Resource-Reservation (answer-2.2.Aj):
successful
B: 200 OK (of PRACK) (command-start-reservation) -> Aj
Aj: Network reservation (Note (7))
B: Network reservation (based on all {answer-2.2.Aj})
Aj. UPDATE (command-ready-reservation) -> B
B: 200 OK (of UPDATE) -> Aj
B: 180 Ringing -> Aj
B: 200 OK -> Aj
j ∈ {1, m}
Aj: ACK -> B
Note (5):
the various answers “Answer-2.2.Aj” can coincide, partially
differ, or differ completely.
Note (6):
"Bid-2.2" and "Answer-2.2.Aj" are substantially equivalent to
(correspondingly) "Bid-2.1" and "Answer-2.1", except for the
<e2enp:purpose> element, which features the attribute
"mode" set to "pull" and, in the case of "Answer-2.2.Aj", the
attribute "name" set to "start-reservation".
Note (7):
Based on the Bj’s "Answer-2.2.Aj"
Page A.287
MIND
1.2 / 0.1
Note (8):
By using the command-start-reservation signalling, peer A will
be able to determine if and when network resource reservations
should be carried out based on all {"Answer-2.2.Aj"}, or only on
whatever subset thereof is currently available.
Negotiating bi-directional connections for the case one-to-many may result in an actual many-to-many
connection; therefore this case is not treated here.
A.8.1.2.3
Re-negotiation
In general the re-negotiation of multiparty connections (as the one-to-many connections are), should be
considered equivalent to the case of one-to-one connections. The requirements set forth in Section
A.4.5.1.4 lead to only two special cases, when more than one stream should be re-negotiated
simultaneously. These two cases are determined by the following circumstances:
•
If the central component (the “one”) discovers a violation, it should check if the affected stream
is a stream of a group and if it belongs to a group, is the context of the group in sense of QoS
affected. By single streams and by discovering that the context of the group is not affected the
central component performs one-to-one negotiation with the respective peer, otherwise the
central component performs one-to-many re-negotiation as described in the first case below.
•
If one of the “many” discovers a violation it signals this the central component in one-to-one
fashion, since the “many” do not know about the eventual stream grouping performed by the
central component. In order to decide how to proceed the central component checks the
dependencies of the affected stream:
o
If the stream does not belong to a group or the context of the group is not affected, the
central component continues the negotiation in one-to-one fashion.
o
If the central component discovers dependencies affecting not only the single stream, it
signals the waiting Offerer (as described below – case 2) that from now on it would be
responsible for the re-negotiation. The Offerer should cancel its call and wait for an
offer from the central component.
The following are the examples on the two one-to-many re-negotiation cases:
1.
The central party of a given one-to-many connection discovers a violation affecting a single
stream of the given group thereof and, according to the profile settings (i.e. to the pre-negotiated
high-level APs) of this group, performs the necessary adaptation of the whole stream group. In
the case one-to-many connections, it is in fact only the peer acting as the “one”, who takes care
of stream grouping.
Peer A: The peer acting as “one” discovers the violation - Peers B1.. Bm: Affected peers
A: detected QoS violation/change:
select new QoS level to enforce from pre-negotiated APs ⇒ bid-A|Bj
(bid-1j may be the same or different for every Bj)
A: Local-Admission-Control (bid-A|Bj):
successful
A: Local-Resource-Reservation (bid-A|Bj):
successful
Page A.288
MIND
1.2 / 0.1
A: INVITE (bid-A|Bj) -> Bj
Bj: Local-Admission-Control (bid-A|Bj):
answer-Bj ⊆ bid-A|Bj
every Bj)
(answer-Bj is drawn from pre-negotiated APs, and may be the same or different for
Bj: Local-Resource-Reservation (answer-Bj):
successful
Bj: 183 Session Progress (answer-Bj) ->A
A: Eventual reconfiguration of the stream-group to meet the requirements of the single Bj-s
and avoid eventual multiple-source of failure caused by one or many peers of the affected
group.
A: Local-Resource-Reservation (answer-Bj)
A: PRACK (command-start-reservation) -> Bj
Bj: 200 OK (of PRACK)->A
Bj: Network reservation (based on answer-Aj)
A: Network reservation (based on all answer-Aj)
A. UPDATE (command-ready-reservation) -> Bj
Bj: 200 OK (of UPDATE) -> A
j ∈ {1,m}
Bj: 200 OK (of INVITE) -> A
A: ACK -> Bj
2.
One of the “many“ peers discovers a violation
Peer B: one of the “many”, discovering the violation - Peers A: Responsible for the
stream grouping
B: detected QoS violation/change:
select new QoS level to enforce from pre-negotiated APs ⇒ bid-1
B: Local-Admission-Control (bid-1):
successful
B: Local-Resource-Reservation (bid-1):
successful
B: MESSAGE (bid-1) -> A
A: Check the necessity of the group reconfiguration:
Page A.289
MIND
1.2 / 0.1
Reconfiguration necessary
A: 200 OK(of MESSAGE + answer-1)->B (The answer-1 signalises that A is notified about
the violation and is ready to take care).
… The rest is like the example above
As by the re-negotiation in the one-to-one case (see Section A.8.1.1.3) an INVITE within a dialogue is
used if the coordinating party discovers the QoS violation/change. In case it is the one of the many peers,
which do not coordinate, this peer would send a message to the coordinator using the MESSAGE method.
A.8.2 Third-Party-Assisted Negotiation Scenario
This is an example of how third-party-assisted negotiation as described in Section A.3.3.1 and Section
A.4.5.7 can be performed using E2ENP.
The negotiating parties are:
A – The peer for which the mediation is being done
B – The Mediator peer
C – The Offerer peer, which addresses the Mediator
The third-party-assisted negotiation is being triggered when an Offerer calls a mediating device and this
respective peer discovers that it cannot handle the call itself but has the possibility to delegate the call to
another Answerer. The discovered Answerer is an alternative device from the perspective of the
Mediator, which the calling Offerer may use instead of the Mediator and by respective approval of the
user, which device the Mediator is.
A.8.2.1
Pre-negotiation
The purpose of pre-negotiations with a Mediator is to allow the Mediator gathering information about
those peers, which may be involved in possible future redirections. The Mediator may do this by using
some service discovery mechanism like JINI [JINI], Bluetooth SDP [BLUE], etc., or by directly calling
the affected peers for which the facilitation is being done.
In the latter case, the pre-negotiation can be performed similarly to the case of one-to-one prenegotiations, whereby the Mediator acts as the Offerer and the peer, for which the mediation is done, acts
as the Answerer,. To this extent, a special indication in the <e2enp:purpose> element is required, to
indicate that the Offerer is the Mediator (<e2enp:mediation mode=”third-partyassisted”/>).
In the case that the party for which the mediation is done starts the pre-negotiation with the Mediator the
SIP-scheme is as follows:
A: REFER ->B
B: 202 Accepted ->A
B: OPTIONS -> A
A: 200 OK (answer) ->B
B: NOTIFY (answer or reference to the answer)->A
A: 200 OK
Page A.290
MIND
1.2 / 0.1
The Mediator just picks the settings of A (answer) and uses them to perform the mediation.
The pre-negotiation between the mediating peer and the Offerer is very much the same as by the one-toone pre-negotiation with the indication in the <e2enp:purpose> element that the Answerer is the
mediator (<e2enp:mediation mode=”third-party-assisted”/>). The Offerer should use
push or push-pull mode to trigger the facilitating functionality of the Mediator. Instead of using “200 OK”
as answer for the OPTIONS the Mediator uses “300 Multiple Choices ” thus indicating that it is not the
peer which is going to communicate. The Offerer is already informed on this stage about the existence of
an alternative peer and in some cases, where the called user is informed and agrees on the usage of the
alternative peer, the Offerer may directly start a negotiation with the alternative peer by applying the oneto-one negotiation scheme.
A.8.2.2
Negotiation
The third-party-assisted negotiation should always be performed in push or push-pull mode with the
Mediator in order to trigger the facilitating functionality of the mediating peer in case it cannot support a
bid.
C: Local admission control (bid1):
successful
C: Local resource reservation (bid1):
successful
C: INVITE (bid1)->B
B: Local admission control(bid1): unsuccessful (B cannot support such settings as in
bid1)
B: 183 Session Progress(answer1) ->C (answer1 contains information that B would be a
mediator and C should expect eventually 300 Multiple Choices as a reply later)
C: PRACK ->B
B: 200 OK(PRACK) ->C
B: Check, if alternatives are available (Ask naming, registration service): successful
B: Check alternatives (These are the settings of A, which B eventually knows from a
pre-negotiation): successful
B: Ask if the user agrees on the call: successful (This information can be retrieved from
the user profile or by direct signalling the user on the spot, e.g. by popping up a GUI
window or by playing a tone. )
B: INVITE (bid2) ->A
(bid2 is a combination of bid1 and indication that B is a Mediator)
A: Local admission control(bid2):
answer2 ⊆ bid2
A: 200 OK (answer2)
B: ACK->A
Page A.291
MIND
1.2 / 0.1
B: Inform the user that the call is being redirected and on what device.
B: Reconfigure answer2 to inform C, which is the alternative service:
answer2a
B: 300 Multiple Choices (answer2a) ->C
B: BYE ->A
A: 200 OK ->B
As a result of this negotiation peer C knows who is peer A and the settings of it and can start a normal
one-to-one negotiation with it (see one-to-one negotiation example).
A.8.2.3
Re-negotiation
Performing a re-negotiation over a Mediator makes sense only in case of full re-negotiation when a new
device should be chosen to communicate with, otherwise the re-negotiation would become too complex.
This would in fact contradict the requirement of simplicity of E2ENP, and would be in any case not really
logical, since the Offerer already knows from the Negotiation phase who exactly its Answerer is. By renegotiation going over a Mediator, the Mediator acts as a proxy. In the case of full re-negotiation this
process is the same as the pre-negotiation and negotiation described above. By re-negotiation, the
Mediator should also fulfil the requirement on the completeness of the negotiated data.
A.8.3 Many-to-many communication scenario
The construction and the negotiation of the many-to-many communication are context dependant with
respect to the considered scenarios, e.g. conferencing, gaming, etc. A general solution is not possible for
this case, but taking some ready, topic-dependant scenarios like in [Rosen01] and [Rosen01a] and
developing them in terms of E2ENP should help the understanding how E2ENP functions by multiparty
connections. The following example from [Rosen01a] is connected with ad hoc networking.
The example below (Figure A.13) is called “Transitioning to ad hoc”(see chapter 5 “Ad-hoc Centralized
Conferences” of [Rosen01a] for more details):
Page A.292
MIND
1.2 / 0.1
Figure A.13: Example of Many-to-Many Scenario (partly from [Rosen01])
The places indicated with dashed rectangles (Figure A.13) should be considered as places where
respective network reservations take place. The messages on these places should be changed accordingly
to support the reservations. Considering the numbering in the above diagram the following steps should
be taken to apply the E2ENP:
Page A.293
MIND
1.2 / 0.1
•
At number 1 – A supplies B with its QoS view
•
At number 4 – B supplies the Conference Server with the QoS view of A and B
•
At number 5 – The Conf. Server delivers his view on the conference to B and B makes the
reservations for himself up to the server.
•
At number 7 – A gets to know the Conf. Server view on the conference from B
•
At number 9 – A invites the Conf. Server with the delivered from B server view on the QoS
Page A.294
MIND
1.2 / 0.1
Figure A.14a: Complete Many-to-Many Scenario
Page A.295
MIND
1.2 / 0.1
Figure A.14b: Complete Many-to-Many Scenario
Page A.296
MIND
1.2 / 0.1
Page A.297
MIND
1.2 / 0.1
Figure A.14c: Complete Many-to-Many Scenario
•
At number 10 – A makes the reservations for himself up to the server
•
At number 16 – B supplies C with the view of the server on the conference
•
At number 18 – C supplies the server with his view on the conference restricted according to the
information from B
•
At number 19 – C makes the reservations for himself up to the server
•
At number 20 – C informs B that he is ready
•
Additionally B should inform the conference server that all the partners are ready and the server
should deliver a start command to all.
From this example it is evident that some ideas from the one-to-one scenario concerning the reservations
can be also applied to the peer-to-peer communication between the users and the conference server. With
this respect it is evident that E2ENP negotiation pattern is applicable also to existing solutions (see the
dashed frames in Figure A.13). The complete scenario is shown in Figure A.14a, Figure A.14b and Figure
A.14c. The bids and the answers are common to those in Section A.8.1.1.2. This example depicts the
reservation procedure with SIP-messages in the same manner as by the one-to-one scenario, the only
difference is what kind of messages are put as E2ENP overhead. According to the example above there
are three different roles, which the end-peers can play:
o
Ad-Hoc-conference-initiator – Like B
o
Already-conference-participant - Like A
o
New-conference-participant – Like C
These three roles correspond three different communication patterns with the Conference Server with
respect to the exchanged E2ENP-messages.
The biggest communication overhead has B (the Ad-Hoc-conference-initiator), since it carries all the
E2ENP-messages of the already-conference-participants. This capability of B is a sort of mediation
capability to initialise the conference by enforcing the affected peers to negotiate with the Conferencing
Server and by ending of the negotiating to transfer the controls to the server.
The smallest communication overhead has an already-conference-participant like A, since the Conference
Server is being already informed about the profile of A via B and A needs only to remind the Server
which profile belongs to it (Figure A.14b – message 15).
The new-conference-participant C gets to know the validated from the Conference Server profiles of the
already-conference-participants, thus minimizing its decision set and enabling it to meet a quicker
agreement with the Conference Server. The communication overhead of C is thus approximately the same
as by the one-to-one communication, since it has to meet the agreement with the Server by itself.
A.8.4 Some examples on failure cases
The following examples illustrate some of the failure cases described in Section A.7.4.
A.8.4.1
•
One-to-one communication
Pre-negotiation
Page A.298
MIND
1.2 / 0.1
Peer A: Offerer - Peer B: Answerer
A: Local-Admission-Control (bid-1.1):
successful
A: OPTIONS (bid-1.1) -> B
B: Local-Admission-Control (bid-1.1):
unsuccessful
B: 600 Busy/603 Decline
Note (1):
•
The Answerer answers with 600 Busy if at the moment there is
no capacity to handle any call. Alternatively, the Answerer might
answer with 603 Decline indicating at what later time the call can
take place, should this time is known. The same can be used both
push and pull modes but in the pull mode the OPTIONS call
contains no bid.
Negotiation
Peer A: Offerer - Peer B: Answerer
A: Local-Admission-Control (bid):
successful
A: Local-Resource-Reservation (bid):
successful
A: INVITE (bid) -> B
B: Local-Admission-Control (bid):
not successful
B: 600 Busy/603 Decline/606 Not Acceptable/380 Alternative Service
Note (2):
The Answerer issues 600 Busy if some other Offerer was quicker
with in issuing the call and occupied all the available capacities
of the Answerer.
The Answerer issues 603 Decline if some other Offerer was
quicker with issuing the call and occupied all the available
capacities of the Answerer but the Answerer knows how long the
call shall continue. This is also the case that a similar transaction
with respect to priority is being processed at the moment and the
caller has to wait.
The Answerer issues 606 Not Acceptable if the Offerer asks for
QoS support that is not available at the moment.
The Answerer issues 380 Alternative Service if the conditions
of the Offerer are not acceptable for him but he knows an
Page A.299
MIND
1.2 / 0.1
alternative service, which can support these conditions. This call
should be used with automatic services like VoD.
In any of the above cases the Offerer may start a new call with
OPTIONS since the pre-negotiated conditions may no longer be
valid.
This scheme is applicable for all communication modes (push,
pull, push-pull). The only difference between them is the sending
of an initial bid with the INVITE or sending it later (pull mode).
•
Re-negotiation
The failure cases by the re-negotiation are the same as by the negotiation. The respective error
indications are returned as a reply to the re-INVITE calls of the Offerer.
A.8.4.2
One-to-many communication
The structure of the negotiation phases by the one-to-many scenario is very much like the one-to-one
scenario, to this extent the E2ENP error cases described in the one-to-one scenario (Section A.8.4.1) are
also valid in this case. Since the one-to-many scenario is connected with the possibility of multiple
failures caused by the “many” peers, the central component (the “one”) should have the ability to cope
with such failures. The following are some suggestions how these may be treated:
1. Every negotiation connection between the peer acting as the “one” and each of those acting as the
“many” should be considered as single standalone one, with respect to SIP signalling. In this way the
peers acting as “many” involved in the negotiation phase do not need to know about the failures,
which some peers of the group make. The failure treatment takes place only at the central component.
2. If some of the negotiation connections do not succeed within the time limit, they would be called at
later time for repeated negotiation. The central component would detect this either by time-out of a
SIP call, or by receiving a SIP-error message from the called party. Since, E2ENP has a requirement
for consistency but not for isolation, it would be enough to save the current data of the unsuccessful
calls to have a reference on their current state, before the failure, by the repetition of the call. This
means that no complete state saving of the E2ENP runs is necessary, since no “undo” is necessary.
3. The central party should be able to reconfigure the streams on line. If some of the streams do not
succeed to be renegotiated within the time limit, the central component reconfigures accordingly only
those which have succeeded and tries to renegotiate the unsuccessful ones at later moment. Here again
the successful negotiations do not need to know that some of them failed.
4. The central component tries to call the parties with unsuccessful negotiation several but limited
number of times, e.g. 3 times. If there are parties whose negotiation phases did not succeed after the
3rd call, they would be thrown out of the group and their streams would be eventually cancelled, if for
example the RTP-signalling over the data connection is also nonexistent. This approach should give
possibility to the unsuccessful “many” to have chance to recover and eventually start the negotiation
call by themselves52.
5. The parallel performance of the negotiation calls enables the quick execution of the negotiation. To
this extent the central component should have possibility flexibly to reconfigure its resources. It is
necessary to know how many parties in parallel the central component can serve and if this limit is
exceeded the central component issues 486 Busy Here or 380 Alternative Service (if the central
component is a service and knows an alternative one).
52
This would require additional XML-signalling to inform the unsuccessful parties, when they would be allowed to
the negotiation again, in order not to interfere within a successful negotiation and destroy it.
Page A.300
MIND
A.8.4.3
1.2 / 0.1
Third-party-assisted E2ENP
If the relocation search fails:
A: Local admission control (bid1):
successful
A: Local resource reservation (bid1):
successful
A: INVITE (bid1)->B
B: Local admission control (bid1):
unsuccessful (B cannot support such settings as in bid1)
B: 183 Session Progress (answer1) ->A
(answer1 contains information that B would be a mediator and A should
expect eventually 300 Multiple Choices as a reply later)
A: PRACK ->B
B: 200 OK (of PRACK) ->A
B: Check, if alternatives are available (Ask naming, registration service):
unsuccessful
(the failure may happen also on the next line)
B: Check alternatives (These are the settings of C, which B eventually knows
from a pre-negotiation): unsuccessful
B: 606 Not Acceptable ->A
The Mediator signals that no alternative was found and the Offerer should call again in pull mode,
adapting to the settings of the Mediator.
If the user declines the call relocation, the possible result of the negotiation is:
A: Local admission control (bid1):
successful
A: Local resource reservation (bid1):
successful
A: INVITE (bid1)->B
B: Local admission control (bid1):
unsuccessful (B cannot support such settings as in bid1)
B: 183 Session Progress (answer1) ->A
Page A.301
MIND
1.2 / 0.1
(answer1 contains information that B would be a mediator and A should
expect eventually 300 Multiple Choices as a reply later)
A: PRACK ->B
B: 200 OK (of PRACK) ->A
B: Check, if alternatives are available (Ask naming, registration service):
successful
B: Check alternatives (These are the settings of C, which B eventually knows
from a pre-negotiation): successful
B: Ask if the user agrees on the call: unsuccessful (This information can be
retrieved from the user profile or by direct signalling the user on the spot, e.g.
by popping up a GUI window or by playing a tone, etc.)
B: 480 Temporarily Unavailable / 603 Decline / 606 Not Acceptable ->A
The Mediator replies with:
•
480 Temporarily Unavailable, if the user does not react on the signal or the popped up window
for certain time, she/he should be considered unavailable.
•
603 Decline, if the user explicitly declines the call
•
606 Not Acceptable, if the user declines the delegation of the call
If the negotiation with the expected answerer (the C party) is unsuccessful or the to be delegated to party
does not accept the call.
A: Local admission control (bid1):
successful
A: Local resource reservation (bid1):
successful
A: INVITE (bid1)->B
B: Local admission control (bid1):
unsuccessful (B cannot support such settings as in bid1)
B: 183 Session Progress (answer1) ->A
(answer1 contains information that B would be a mediator and A
should expect eventually 300 Multiple Choices as a reply later)
A: PRACK ->B
B: 200 OK (of PRACK) ->A
B: Check, if alternatives are available (Ask naming, registration service):
successful
Page A.302
MIND
1.2 / 0.1
B: Check alternatives (These are the settings of C, which B eventually knows
from a pre-negotiation):
successful
B: Ask if the user agrees on the call: successful
(This information can be retrieved from the user profile or by direct signalling
the user on the spot, e.g. by popping up a GUI window or by playing a tone,
etc )
B: INVITE (bid2) ->C
(bid2 is a combination of bid1 and indication that B is a Mediator)
….(Something goes wrong with C)
B: Inform the user of B that the relocation was not successful, eventually ask
what to do by popping up a window.
B: 480 Temporarily Unavailable / 603 Decline / 606 Not Acceptable ->A
The meaning of these answers is:
•
480 Temporarily Unavailable, if the user does not react on the signal or the popped up window
for certain time, she/he should be considered unavailable.
•
603 Decline, if the user explicitly declines the call
•
606 Not Acceptable, if the user wants to communicate, but the delegation of the call is gone
wrong. This answer would enable the initiation of a new negotiation with the Mediator as an
Answerer; the Offerer should take care of performing the new negotiation in pull mode in order
to adapt himself to the profile of the Mediator by not triggering its facilitating functionality.
Page A.303
MIND
1.2 / 0.1
A.9. Security Considerations
This chapter discusses some aspects considering security with respect to SDPng and SIP.
If the contents of the SIP message body (SDPng) are private and should be treated according to security
policies they might be encrypted.
The use of Digital Certificates might be used for authenticating the negotiations bids and answers.
Provider-specific Digital Certificates might be as well used to identify the blocked/unblocked QoS
contracts in order to let intermediate components (proxies) verify the authenticity of the calls without
changing them.
Additional techniques for confidentiality and integrity support, with respect to the negotiated information,
should also be considered
Fine-grained requirement analysis should be carried out over the current list of requirements, so as to
identify potential security problems when non-mandatory requirements are not taken into account and/or
when optionally prohibited requirements are taken into account.
On the issue of firewalls, further thorough investigations, definitions and exact specifications on
intermediate components should be made.
Finally, there are many security aspects with respect to the interworking between service domains and
transport domains, when E2ENP is applied. More information can be found in the main document in
Chapter 4.
Page A.304
MIND
1.2 / 0.1
A.10. Related Work
This section indicates why and how the state of art not sufficient either to cope with the all the goals set
forth in Chapter 2, nor to meet the requirements identified in Section A.4.
We have followed and participated to the discussion in the IETF MMUSIC WG concerning QoS and
capabilities negotiation and the on-going SDPng specification. However, in our work we drafted a
specification based on an original use of SDPng, which partially diverges from the current status of the
discussion in MMUSIC. We took this decision, for the sake of explaining the E2ENP concepts in more
concrete terms, without waiting for the SDPng specification to be finalized. To this extent, we plan in any
case to harmonise our specification with the final SDPng version, or even contribute to the preparation
thereof, once the E2ENP concepts will have been properly reviewed after a necessary testing phase.
The [RFC2198] and [RTP-Prof] describe possibilities of quick re-negotiations via in-band signalling.
However this kind of signalling concerns only change of codecs and the redundant support of differently
coded media without considering the respective effects when QoS should be supported. Similar approach
with in-band signalling is also mentioned in [RFC2703].
In [SIPRES01], [SIPRES07], [Marsh00], the authors present a multi-phase call-setup mechanism that
makes network QoS and security establishment a precondition to sessions initiated by the Session
Initiation Protocol (SIP) and described by the Session Description Protocol (SDP). Network resources are
reserved before the session is started using existing network resource reservation mechanisms (like
RSVP). The resource management protocol is interleaved between two phases of call signalling and
participants are invited after resources are available in the network. A confirmation of the preconditions is
explicitly signalled. Resource management is done only for the network resources. An extension to SDP
is introduced to determine whether the preconditions are met. Ongoing work on reservation preconditions
[SIPRES07] makes use of the [100rel06] and [SIPUP01] for establishing the preconditions. Additionally
[SIPRES07] discusses re-negotiation possibilities in accordance with the Offer/Answer model
[SDPOA02]. [SIPRES07] identifies the necessity of meta-information connected with the reservation
preconditions, since the carrier protocol (e.g. SIP) might not explicitly support stream specific
preconditions. Since [SIPRES07] considers SDP as a description model, the proposed meta-information is
not a protocol due to the lack of expressiveness of SDP and this meta-information concerns only the
single media streams.
However [SIPRES01], [SIPRES07], [Marsh00] do not consider pre-negotiation of QoS; the integration of
local and peer resource management; the negotiation of alternative QoS levels and adaptation paths; the
possibility of grouping streams and managing the resources of stream groups.
In [Cama00], an additional direction attribute is introduced to indicate which party sends the
confirmation of the preconditions. Finally, [Cama00] provides a mechanism to perform third party call
control in SIP when SDP preconditions are used.
However [Cama00] does not consider pre-negotiation of QoS and the integration of local and peer
resource management.
In [RFC2533] the authors present a format to express media feature sets that represent media handling
capabilities. In addition, an algorithm is provided that matches the feature sets. It might be used to
determine if the capabilities of a sender and receiver are compatible and for matching with local and
network policies as a trading policy of a QoS Broker/QoS Agent in the process for validation of the QoS
contracts. This matching algorithm is improved in [CONNEG00]. In addition, [RFC2938] describes an
abbreviated format for composite media feature sets that use a hash of the feature representation to
describe the composite. This can be used to provide an abbreviated form for referencing an arbitrary
feature set expression, independent of any particular mechanism for de-referencing. [RFC2533] together
with [Conneg00] and ([RFC2938] or [SDPCN01]) do neither integrate existing internet protocols, nor
include the concept of pre-negotiating alternative QoS Contracts, nor integrate local-, network- and peerresource reservation mechanisms. In fact [RFC2533] and [RFC2938] can be used for QoS Broker/QoS
Page A.305
MIND
1.2 / 0.1
Agent internal descriptions and processing of the capability information by matching different negotiated
information that might have been exchanged over different protocols.
In [Andre00] the authors state the requirement that a capability set should contain a handle (similar to the
hash mentioned above) allowing for easy referencing of the capability set.
In [RFC2703] the authors present an abstract framework for protocol independent content negotiation for
the resources with which it interacts. It does however not provide the content negotiation process. It
identifies the need for expressing the capabilities of the sender and the data resource to be transmitted, the
capabilities of the receiver and the need for a protocol to exchange these capabilities. Negotiation is
carried out by a series of negotiation metadata exchanges in-band. The negotiation stops, as soon as a
specific data file to be transmitted has been found. The sender transfers the data if the sender determines
the file, otherwise the receiver informs the sender. This proposal therefore relates to content negotiation,
instead of dealing with pre-negotiation of configurations QoS contracts and capabilities. The [RFC2703]
proposal also does not integrate local-, peer-, as well as network-resource reservation.
[SDPOA00] describes a complete model for one-to-one capabilities negotiation with SDP. However this
model has problems by the definition of mutually referred information and information on grouping
streams because of the flat-hierarchy structure of the SDP. Additionally this model concerns only
capability negotiation but no QoS support. The "An Offer/Answer Model with SDP" [SDPOA00], states:
" Once the offerer has sent the offer, it MUST be prepared to receive media described by that offer.”.
This approach is not failure-tolerant with respect to the E2ENP and the adaptation mechanisms, since it
should be taken into account the possible dynamic reconfiguration of the peers both in failure and
upgrade cases, when the negotiated data becomes invalid within the time of a running negotiation or
before media streaming has started.
The most recent version of this IETF draft [SDPOA02] is a model in line with the new SIP approach
[SIPBIS09], [RFC3261] of moving the message processing capability from the stack to the user agents.
According to the new [SIPBIS09], [RFC3261] SIP is only a carrier protocol not incorporated in a
framework and additional functionality corresponding a specific system architecture can be achieved over
enhancing the user agent functionality by wrapping the SIP user agents in a framework structure. Thus
SIP can be used to carry session descriptions concerning session setup with respect to negotiation of
capabilities, QoS, etc. This new SIP approach makes E2ENP easily applicable with SIP, due to the
piggybacking possibility. The new Offer-Answer model [SDPOA02] also recognizes the benefits of the
approach. [SDPOA02] identifies the needs for pre-negotiation and applies a re-negotiation with SDP.
Since SDP is not a protocol and supports no referencing, the described negotiation and re-negotiation
signalling is ineffective. With SDP every message carries repeatable complete descriptions that should be
locally filtered every time to recognize the new set up. Such approach can lead to wasting of bandwidth
and to overloading of the peer internal processing, if it comes to complex session descriptions.
[SDPOA02] identifies also the need of supporting dynamic payload types. However, by supporting
dynamic payload types both the Offerer and the Answerer need to have a common view what is the
meaning of the payload type and how it is parameterised. This knowledge should also be negotiable, since
it cannot be expected that it is per se available as [SDPOA02] suggests. The authors of [SDPOA02] also
recognizes the possibility to combine in-band with out-band signalling in order to achieve better
adaptability. [SDPOA02] still considers only the problem of capabilities negotiation but not of QoS.
[100rel06] describes extension scenarios of the Offer/Answer model [SDPOA02] for support of different
negotiation modes (push, pull, push-pull) by using reliable provisional SIP requests and responses.
Additionally [SIPUP01] defines a new SIP method UPDATE, which is also used for different negotiation
modes support. This method can also be used for session descriptions update on the fly within a session
setup procedure and in failure treatment cases for symmetrical signalling between the SIP UAC and UAS.
Ongoing work in [SDPNG01] identifies the requirements of a framework dealing with session description
and endpoint capability negotiation in multiparty multimedia conferencing scenarios. Depending on user
preferences, system capabilities or other constraints, different configurations can be chosen for the
conference. The need of a negotiation process among the peers is identified, but not described, in order to
determine a common set of potential configurations and to select one of the common configurations to be
used for information exchange. This capability negotiation is used to get a valid session description
compatible with the end system capabilities and user preferences of the potential participants. Different
Page A.306
MIND
1.2 / 0.1
negotiation policies may be used to reflect different conference types. They also identify the need for
network resource reservation coupled with session setup. Finally a proposal is drafted for describing
capabilities and providing the negotiation language but not a protocol.
The [SDPNG01] proposal does neither consider the negotiation protocol for determining a common set of
QoS configuration nor integrate local, peer and network resource reservation. In addition, the [SDPNG01]
proposal does neither integrate the process of referencing configurations by handles, nor build upon the
QoS contract concept. Also, the [SDPNG01] proposal deals only with codec negotiation, without
considering also terminal capabilities and network resource reservation mechanisms.
The most recent versions of this IETF draft, the [SDPNG03], [SDPNG04], provide detailed XML Schema
specification and a prototype of the Audio Codec and RTP Profiles. Compared to such a latest, more
complete version of this IETF proposal, the E2ENP features (as an extension of that proposal):
•
Notion of the E2ENP phases
•
New SDPng sections and various configurations thereof, according to the format of the PDUs
associated with the various E2ENP phases.
•
Use of explicit <e2enp:session_id> element in the new <e2enp:purpose> section,
instead of the <owner> element in the <conf> section (which still remain, but for other
purposes).
•
Leasing of negotiated information
•
Concatenation of negotiated information
•
The original <def> now is not used, but two new <e2enp:qosdef> sections are
introduced, due to the specificity of the QoS definition in combination with capabilities.
•
Support of any type of network/protocol version in the <cfg> section.
•
Extensions to the Audio Codec and RTP Profiles.
•
Possibility to model QoS correlation and time synchronization constraints at any level of
abstraction, for local enforcement of the given terminal device or for delegating this to a thirdparty component (e.g. conference bridge)
•
Handling of third-party-assisted negotiation scenarios.
•
Handling video-codec information.
[SDPCO01] and [SDPNG03] identify the necessity of defining which of the communication parties are
with respect to the connection mode – sender, receiver or sender-receiver. Additionally [SDPCO01]
identifies the necessity of denoting that a single port might be used for sending or receiving of the
differently coded media with the same content. This respective definition with SDP is problematic
because of the flat structure of the protocol, on the other hand SDPng [SDPNG03] with the XML-schema
can perform cross references for the respective description. For the needs of QoS negotiations the
identification of the sender and/or the receiver parties may serve the speeding up of the negotiation by
choosing the most appropriate negotiation mode (push, pull or push-pull).
[SDPNG04] describes in addition a capability negotiation process for establishing of a common capability
vocabulary between end-peers. However the proposal [SDPNG04] still does not consider the QoS
specific issues. Additionally [SDPNG04] does not define a validation of the negotiated capabilities
usability against local and network policies but directly processes the end-results of the negotiation
(“Collapsing Algorithm”). This can be a problem for the effective and dynamic application of QoS
Broker/QoS Agent trading policies and for the mapping of the “external” protocol specific representation
Page A.307
MIND
1.2 / 0.1
to an “internal” Broker/Agent representation. On the other hand direct processing of XML descriptions
over the “Collapsing Algorithm” can be performance ineffective.
[SDPNG05] is just a refined version of the [SDPNG04] with improvements in the SDPng XML-Schema
and SDPng document referencing mechanisms.
It is worth to mention that the description of the stream configuration in SDPng [SDPNG05] (the <cfg>
section) is quite RTP/RTCP-centric. This might be a problem for defining codecs which do not fit in the
usual RTP definition. The configuration of media streams should be general enough to fit also non-RTP
specific descriptions as suggested in [MMUS_54].
The authors of [SDPCN00] propose a set of SDP extensions providing a minimal and backward
compatible capability negotiation mechanism. [SDPCN00] adds SDP extensions for capability
negotiation, only.
In [Beser00] the author extends SDP so that the end-points know the codec choices and can agree on a
common set. The communication partner can thus obtain the originators capabilities and preferences. The
[Beser00] proposal only provides SDP extensions necessary for endpoints to negotiate codecs.
In [Ott99] a notation for describing potential and specific configurations of end systems in multiparty
collaboration sessions is given. This enables mechanisms to define end system capabilities, calculate a set
of common capabilities and to express a selected media description for use in session descriptions. They
do not provide a protocol for capability exchange. The [Ott99] proposal however only provides a notation
for configuration description.
In [Bor00] the authors define services for a simple conference control protocol (SCCP) for tightly coupled
conferences. Member management, application/session management and access control rules for
distributed application resources are defined. The conference’s state, which might be established using
SIP, is managed during the lifetime using SCCP. This includes the finding of appropriate configurations,
negotiating for configurations and changing the configuration. However, no interaction with local- and
network-resource management is intended. The SCCP also does not cover the handling of QoS contracts
and how to pre-negotiate configurations thereof.
[Nahr95] presents a model for an end-point architecture based on a QoS Broker, which is a functional
entity that orchestrates resources at the end-points and co-ordinates resource management across layers.
In order to configure the system properly, the broker uses admission control and negotiation. Negotiation
among peer entities leads to a valid configuration, which involves all necessary components of the
communication system.
The model described in [Nahr95] however does neither integrate existing internet protocols nor considers
other resources like battery power or wireless sub-network availability.
Additional works on the problem of a QoS Broker description language are [Xiaohui], [Nahr00],
[Frolu98] and [QuO]. They also use some of the currently wide-spread description technologies, like
XML [Xiaohui], [Nahr00] and CORBA Objects [QuO]. However these descriptions integrate both
capabilities, QoS and Broker internal trading policies. This information is rather an internal description of
the QoS Broker policies as a protocol specific description and can be used only for negotiation between
QoS Brokers belonging to the same type with respect to their performance and their architecture. In
contrast to this E2ENP is an external description, which can be used as an interoperable protocol between
QoS Brokers and applications of different types.
[Levin00] presents a set of requirements for a call-control protocol for real-time multimedia support over
IP. Capabilities have to be expressed, capabilities have to be signalled to identify the amount of resources
that are necessary, and a call control mechanisms is needed to open/close/modify media streams within
the boundaries set forth by capabilities and reserved resources. Also the authors propose to announce new
capabilities (if available) during a session. In addition, the peers have to agree on a common set of codecs
to be used. A session control mechanism to start/stop the streams is put as a requirement. [Levin00] also
recognizes the need of separate treatment of audio and video, since video codecs can generate both static
Page A.308
MIND
1.2 / 0.1
and dynamic network streams and due to this feature the description of video capabilities should be
different and more profound compared to audio.
However [Levin00] does not consider the integration of local, remote and network resource management
into a coherent framework; rather, [Levin00] only provides requirements. Neither specific protocol
mapping nor mechanisms to enforce the requirements are proposed.
Ongoing work on the problem of multimedia and video [Levin01] recognizes the need for video
adaptability and the correlation of video with other streaming types at application level. [Levin01]
identifies some of the video capabilities important to parameterise a codec. Still [Levin01] presents only
requirements for video capabilities exchange and not a methodology about solving the problem.
In [BRAIN], [Roble01], [Kassl00], and [Kassl01], an end-system architecture has been presented that
integrates local, peer and network resource reservation into a framework for end-to-end QoS
management. Whereby User Preferences and adaptation paths are used together with QoS states to
negotiate QoS at application level. Interaction with local resource management is introduced. The layered
architecture provides support for different types of applications.
[Manda00], [Manda01] and [Cama01] discuss the possibility of grouping of media streams but do not
consider criteria for the grouping, the possibility of recursive group building (a group of many groups)
and the treatment of real, pseudo-real and non-real time information streams that also may be grouped.
Additionally, [Cama02] discusses the possibility of using the directly negotiated information for
reservation purposes. To this extent E2ENP only synchronises the reservation process but is not used for
the reservation itself. The advantage of this approach is that E2ENP can be used even in cases when no or
partial network reservation is necessary (e.g. over-provisioned networks, segmented reservations, and
Service Domain reservation processing – see also Chapter 4). The disadvantage of the [Cama02]
approach is the usage of SDP to define multiple RSVP reservation flows, since SDP has flat structure and
the definitions of grouped structures is quite cumbersome. On the other hand the usage of XML based
protocols also by reservation processing would allow the easy definition of media groups and the
performing of the reservation for all groups and single media streams in one shot. Thus the reservation
agents would be able to process multiple reservation requests coming from the same peer within a single
call. The advantage here is that the reservation agents would not need to synchronize multiple reservation
calls.
[Manda00] and [Manda01] define negotiation steps that may or may not run at one shot, but not
independent phases and have no requirement for the consistency of the negotiated QoS information
during a negotiation phase and after it. The treatment of colliding “Economy Principle”-applications is
also not considered.
[Manda00] and [Manda01] describe the possibility of setting and managing adaptation paths for the QoS
adaptation, which is controlled by a third party component (QoS Broker). The possibility that the endparties perform and control the negotiations on their own is not considered.
In [Bos01] an End-to-End User Perceived Quality of Service Negotiation is described, with the
assumption that some IMs and services may strongly be involved in the end-decision about the negotiated
QoS information of the end-peers. The decision about QoS configurations in [Bos01] may be taken over
some standard “contract types”. Although [Bos01] mentions that signalling and data packets may flow
along different paths throughout the network, the authors of [Bos01] suggest that some IMs along the
negotiation path may influence the negotiation, though in general having nothing to do with the data.
According to such a protocol model the network is not transparent.
The negotiation process presented in [Bos01] does not allow incremental negotiations, and furthermore
[Bos01] leverages static APs with fixed transitions among capability configurations/network-level QoS
contracts only. The model of [Bos01] suggests negotiations of QoS only at stream level without
considering some stream dependencies like groups and stream hierarchies.
The most recent work on the problem of User Perceived QoS [Bos02] introduces SDPng schema for
defining traffic throughput and sensitivity information. This information considers only the network
reservation process without taking in account the necessity for local (peer) QoS specific configurations
Page A.309
MIND
1.2 / 0.1
and reservations. The model in [Bos02] is not taking in account the Application Level QoS definitions,
with respect to codec configuration and a flexible adaptation process. However the E2ENP can
incorporate this proposal, by allowing senders to derive TI/SI from Application Level QoS contracts, and
to forward this information as part of a proposal/counter-proposal to the receiver(s). The model of
[Bos02] is static in terms of adaptation, insofar as it reuses the fixed prioritisation of alternative options
derived from SDP, thus losing the powerful flexibility featured by XML. The description of the payload
types in [Bos02] is not in accordance with the payload types as described in [RTP-Prof], since the codec
parametrization of the audio codecs is already pre-defined for the static payload types. One interesting
aspect in [Bos02] is the introduction of QoS Class format as a form of predefined interoperable
application level QoS definition. However such a definition would also need high level QoS specification
considering the usage of different possible QoS configurations of a single codec/payload type.
In [Berg01] a list of key questions (actually, real requirements) are proposed. More specifically, "1) the
exchange of QoS related information and 2) enforcement of QoS related decisions" are indicated as
"enhancements required in order to provide predictable end-to-end QoS". The E2ENP meets both these
requirements, insofar as it:
•
defines an application-level protocol dealing with the first requirement, and
•
enforces resource management according to the Economy Principle. More specifically, with
respect to the second requirement, the E2ENP assumes the existence of the Extended Socket
Interface (ESI), described in [BRAIN], [Roble01], whereby details of network resource
management are hidden to applications. This means that the ESI offers a level of abstraction,
upon which QoS aware middleware and applications can be built. Should however the ESI not
be available, the E2ENP assumes that applications and/or middleware will be able to derive
network-level QoS Contracts from high-level QoS Contracts, as well as use low-level monitored
information for triggering application and/or middleware QoS adaptation mechanisms.
More specifically, [Berg01] lists the following five points:
1.
"The access network: the probability of congestion is the highest in the access network, thus it is
very likely that some kind of mechanism supporting the QoS information is necessary here."
This is exactly the assumption made in [BRAIN], [Roble01] (from which the original concept of
E2ENP originates), whereby the ESI abstraction allows applications and/or middleware
(leveraging the E2ENP), not only to use in general any kind of network architecture available,
but also (more particularly) to make a similar assumption concerning the Access Network
2.
"End-to-end signalling between applications: we believe that a high level information exchange
must be the first of QoS session initiation in several cases."
This is exactly one of the requirements that the E2ENP targets. In addition, the E2ENP deals
with proactive pre-negotiations of alternative QoS Contracts, and of higher-level QoS Contracts
as well. The E2ENP furthermore offers in addition a full-blown set of procedures for handling
re-negotiations.
3.
"Inter-domain communication, particularly on peering link: an automatic service announcement
is needed, something like BGP, but with QoS enhancements. In addition, it is considerable to
have a mechanism, which actually provides inter-domain provisioning of these resources."
The E2ENP is a pure End-to-End application-level protocol, whereby only the peers (and
eventually some intermediate components, like conference bridges or transcoders) are directly
involved. Lower level functionality dealing with intra- and/or inter-domain network resource
management and routing is hidden to the E2ENP, thanks to the ESI, or equivalent abstraction.
This means that the E2ENP is a pure application-level protocol, which peers can use to
communicate over any network architecture.
Page A.310
MIND
1.2 / 0.1
4.
"Identifying, which customer to penalize in case of a network congestion: when a sever
congestion occurs and a contract has to be breached, it should be under the control of the
network."
The E2ENP is compatible with this requirement, since the E2ENP assumes that the detection of
QoS Violation is carried out by the underlying network architecture.
5.
"Providing requirement information for customers: Customers could inform the service
providers about the current and intended network utilization, specifying for example the
expected destinations and traffic volumes. The operator could then use this knowledge to
dimension its network better, and also to calculate the amount of services to buy from the
neighbouring operators."
This is exactly the assumption made in [BRAIN], [Roble01], from which the original concept of
E2ENP originates. More specifically, users can not only provide "current and intended network
utilization, specifying for example the expected destinations and traffic volumes" in terms of
application-level QoS Contracts pre-negotiated with the network provider (during the process
described in Section A.7.3.4), but also exchange with peers sets of alternative QoS Contracts
(the APs), and at different levels of abstractions, so as to take into account inter-stream
relationships (with APs as well).
Finally, [Berg01] mentions to the need of having peers agreeing with their networks provider the type of
Quality of Service, along with pricing information, a priori of any session establishment. This is similar to
the process described in Section A.7.3.4, where however the user specifies Application-level QoS
information, which eventually gets mapped to network level QoS contracts, which are then validated
against pre-arrangements with the network provider, or via direct communication with the latter. How
these low-level processes are accomplished is how of E2ENP scope, thanks to the ESI abstraction (or
similar functionality).
In [Roja00] the importance of having both application and transport level QoS specification is discussed.
The authors of [Roja00] describe the necessity of having this information negotiated, in order to be able
to manage the QoS delivery at all abstraction levels of a QoS aware application. Furthermore, [Roja00]
sets requirements forth that the QoS descriptions should be general enough to fit different systems and
technologies. These requirements are in line with the E2ENP idea.
[Khart01], [Rosen01] and [Rosen01a] introduce models for multiparty conferencing which consider
scenarios like one-to-many and many-to-many connections. The described models take advantage of a
centralized architecture using conference server. In this case there is no direct end-to-end communication
between the end-peers and the application of E2ENP could be performed in several different ways:
•
Direct signalling between the end-peers, data path over the conference server
•
Indirect signalling between the end-peers over the conference server, direct data connection
between the end-peers
•
Indirect signalling between the end-peers over the conference server and data path over it
Such application of E2ENP may require different message sequences and E2ENP-structure for every
different scenario. The models of [Khart01], [Rosen01] and [Rosen01a] are mainly concerned with the
description of the message sequences by a conferencing scenario using a centralized component. By
necessary capabilities- and/or QoS negotiations and respective reservations these sequences may undergo
changes if E2ENP should also be applied to such scenarios. The advantage of E2ENP application in a
scenario with some centralized components is that the communication model can be reduced to one-tomany scenario.
Page A.311
MIND
1.2 / 0.1
A.11. Conclusions
This Annex has introduced the concept, requirements and proposed solution of the End-to-End QoS
Negotiation Protocol (E2ENP). The E2ENP is a signalling mechanism for effectively and efficiently
performing end-to-end QoS negotiations/re-negotiations and resource management coordination, when
dealing with multiparty multimedia services under unstable network conditions. Special features are the
negotiation of common vocabulary and adaptation paths, that describe alternative QoS contracts to be
applied, when QoS violations occur.
Furthermore, the E2ENP allows developers and/or users to capture and enforce time synchronization and
QoS correlation (and even more complex) constraints among multiple streams, thus allowing adaptation
at different levels. This is envisioned to be a key benefit in terms of QoS for current and future
applications.
Additionally, both the application level and the transport level QoS parameters are considered as two
orthogonal issues of the QoS delivery. The necessity of those two dimensions for the aims of the QoS
management at all abstraction levels at which an application performs is thoroughly discussed.
By modularly extending SDPng, and by properly defining SIP usages, it is expected that the induction of
the E2ENP concept will smoothly blend with legacy solutions, along the path towards the next generation
of QoS aware multiparty, multimedia services.
The authors have followed and participated to the discussion in the IETF MMUSIC WG concerning QoS
and capabilities negotiation and the on-going SDPng specification. However, in this work a specification
based on an original use of SDPng is drafted, which partially diverges from the current status of the
discussion in MMUSIC. This decision is taken for the sake of explaining the E2ENP concepts in more
concrete terms, without waiting for the SDPng specification to be finalized. Additional SDPng inherent
problem by the convergence of the E2ENP and the SDPng descriptions is, that SDPng is too RTP-centric.
This makes it difficult to introduce general QoS definitions from the application point of view, which are
applicable for bigger variety of codecs and not only for the RTP specific profile. Furthermore, the SDPng
stream configuration definition is quite fix, when it comes to describing vertical handovers and session
mobility. To this extent, the authors plan in any case to harmonise the E2ENP specification with the final
SDPng version, or even contribute to the preparation thereof, once the E2ENP concepts will have been
properly reviewed after a necessary testing phase.
Page A.312
MIND
1.2 / 0.1
A.12. References
[100rel06]
J. Rosenberg, H. Schulzrinne, "Reliability of Provisional Responses in SIP", IETF SIP
working group, Work-in-progress, <draft-ietf-sip-100rel-06.txt>.
[Andre00]
F. Andreasen, "SDP Simple Capability Negotiation Requirements", IETF MMUSIC
working group, Work-in-progress, <draft-andreasen-mmusic-sdp-simcap-reqts-00.txt>.
[Berg01]
A. Bergsten, K. Nemeth, I. Cselenyi, G. Feher, "Fundamental Questions Regarding End-toEnd QoS", Work-in-progress, <draft-bergsten-e2eqos-questions-00.txt>.
[Beser00]
B. Beser: Codec Capabilities Attribute for SDP, IETF Internet-Draft, Work-in-progress,
<draft-beser-mmusic-capabilities-00.txt>.
[Bhatt99]
S. Bhatti, G .Knight, “Enabling QoS adaptation decisions for Internet applications”,
London, UK, 1999.
[BLUE]
Specification of the Bluetooth System, version 1.1,
http://www.bluetooth.com/files/Bluetooth_11_Specifications_Book.pdf.
[Booch99]
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language User Guide,
Addison Wesley Longman, 1999.
[Bor00]
C. Bormann et al.: Simple Conference Control Protocol, IETF Internet-Draft, Work-inprogress, <draft-ietf-mmusic-sccp-01.txt>.
[Bos01]
L. Bos, et al: A Framework for End-to-End User Perceived Quality of Service Negotiation,
IETF Internet-Draft, Work-in-progress,<draft-bos-mmusic-sdpqos-framework-00.txt >.
[Bos02]
L. Bos, et al: SDPng extensions for Quality of service negotiation, IETF Internet-Draft,
Work-in-progress,<draft-bos-mmusic-sdpng-qos-00.txt >.
[BRAIN]
IST-1999-10050 BRAIN Deliverable 1.2, Concepts for Service adaptation, scalability and
QoS handling on mobility enabled networks, 31.03.2001 (http://www.ist-brain.org/)
[Cama00]
G. Camarillo: Confirmation of SDP preconditions, IETF Internet Draft, Work-in-progress,
<draft-camarillo-manyfolks-confirm-02.txt>.
[Cama01]
G. Camarillo, et al: Grouping of media lines in SDP, IETF Internet Draft, Work-inprogress, <draft-ietf-mmusic-fid-06.txt>.
[Cama02]
G. Camarillo, et al: Mapping of Media Streams to Resource Reservation Flows, IETF
Internet Draft, Work-in-progress, <draft-ietf-reservation-flows-01.txt>
[Conneg00] G. Klyne (ed.): A revised media feature set matching algorithm , IETF media feature
registration WG, Work-in-progress, <draft-klyne-conneg-feature-match-02.txt>.
[ETSIWS02] Mike Buckley: ETSI Workshop on QoS in Next Generation Networks – Workshop
Conclusions, 21.02.2002, (http://www.etsi.org/frameset/home.htm?/QOSWORKSHOP/),
[Even00]
R. Even et al: SDP attributes for Video Media Control, IETF Internet-Draft, Work-inprogress, <draft-even-mmusic-video-media-control-00.txt>.
[FIPA]
THE FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS (http://www.fipa.org/)
[Frolu98]
S. Frolund, J. Koistinien, “QML: A Language for Quality of Service Specification”, HPLab Technical Reports, HPL-98-10, 980210.
Page A.313
MIND
1.2 / 0.1
[H323]
“Recommendation H.323”,
http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-H.323
[Handl98]
M. Handley, V. Jacobson “SDP: Session Description Protocol “, IETF Request for
Comments: 2327, April 1998.
[ISOX641] ITU-T Recommendation X.641 (12/97) | ISO/IEC 13236:1998, Information technology Quality of Service: Framework.
[JINI]
JINI[tm] network technology, http://www.sun.com/jini/
[Kassl00]
Kassler A. et al., BRENTA - Supporting Mobility and Quality of Service for Adaptable
Multimedia Communication, in Proceedings of the IST Mobile Communications Summit
2000, Galway, Ireland, October 2000, pp. 403-408.
[Kassl01]
Kassler A. et al., An Open Endsystem Architecture for Adaptable Multimedia Services with
QoS Support, in Proceedings of the BRAIN workshop, London, 2000.
[Khart01]
H. Khartabil, Conferencing using SIP, IETF Internet-Draft, Work-in-progress, <draftkhartabil-sip-conferencing-00.txt >
[Levin00]
O. Levin, SIP Requirements for support of Multimedia and Video, IETF Internet-Draft,
Work-in-progress, <draft-levin-sip-for-video-00.txt>
[Levin01]
O. Levin, Multimedia Conferencing Requirements for SIP Based Systems, IETF InternetDraft, Work-in-progress, <draft-levin-sip-for-video-01.txt>
[Loyal]
J. P. Loyall et al., “QoS Aspect Languages and their Runtime Integration”, in Lecture Notes
in Computer Science, Vol. 1511, Springer-Verlag.
[Manda00] D. Mandato, A. Kassler, T. Robles, G. Neureiter, Concepts for Service adaptation,
Scalability and QoS concepts on mobility enabled networks, IST Global Summit 2001,
Barcelona, September 2001, pages: 285-293.
[Manda01] D. Mandato, A. Kassler, T. Robles, G. Neureiter, Handling End-to-End QoS in Mobile
Heterogeneous Networking Environments, PIMRC 2001, San Diego, 30/9 - 3/10 2001,
Pages: C-49 - C-54.
[Marsh00]
W.Marshall et al., SIP Extensions for Resource Management, IETF draft <draft-ietf-sipmanyfolks-resource-00>, November 2000.
[Mao00]
Z. M. Mao, R. Katz, “Achieving Service Portability in ICEBERG”, in Proc. Of IEEE `00
CLOBECOMM Workshop “2000 IEEE Service Portability and Virtual Customer
Environments”, IEEE, December 2000
[MEGACO] “Media Gateway
charter.html
Control
(MEGACO)”,
http://www.ietf.org/html.charters/megaco-
[MMUS_53] “Multiparty Multimedia Session Control WG (MMUSIC)” - 53-mmusic-minutes.txt, 53rd
IETF
Meeting,
Minneapolis,
20th
March
2002,
http://www.dmn.tzi.org/ietf/mmusic/53/slides/53-mmusic-slides-ppt.zip
[MMUS_54] “Multiparty Multimedia Session Control WG (MMUSIC)” - 54-mmusic-minutes.txt, 54rd
July
2002,
IETF
Meeting,
Yokohama,
14th
http://www.dmn.tzi.org/ietf/mmusic/54/slides/54-mmusic-slides-ppt.zip
[Nahr95]
K. Nahrstedt and J. M. Smith: The QoS Broker, IEEE Multimedia Magazine, Spring 1995
(2)1, pp. 53-67.
Page A.314
MIND
1.2 / 0.1
[Nahr00]
D. Wichadakul, K. Nahrstedt: Distributed QoS Compiler, Project Report - National Science
Foundation, 2001
[Olson01]
S. Olson, G. Camarillo, A. Roach, "Support for IPv6 in SDP", IETF Internet-Draft, Workin-progress, <draft-olson-sdp-ipv6-02.txt>.
[Ott99]
J. Ott et al.: Capability description for group cooperation, IETF Internet-Draft, Work-inprogress, <draft-ott-mmusic-cap-00.txt>.
[QuO]
BBN TECHNOLOGIES – Quality Objects (QuO), http://quo.bbn.com/
[Quit00]
J. Quittek et. al.: Requirements for IP Flow Information Export, <draft-ietf-ipfix-reqs00.txt>.
[RFC2119] IETF RFC 2119, "Key words for use in RFCs to Indicate Requirements Levels", S. Bradner,
Network Working Group, March 1997.
[RFC2198] IETF RFC 2198, RTP Payload for Redundant Audio Data, C. Perkins et al., Network
Working Group, September 1997.
[RFC2327] IETF RFC 2327, SDP: Session Description Protocol, M. Handley and V. Jacobson,
Network Working Group, April 1998
[RFC2533] IETF RFC 2533, A Syntax for Describing Media Feature Sets, Graham Klyne,
5GM/Content Technologies, March 1999.
[RFC2543] IETF RFC 2543, SIP: Session Initiation Protocol, M. Handley et al, ACIRI, March 1999.
[RFC2703] IETF RFC 2703, Protocol-independent Content Negotiation Framework, Graham Klyne,
5GM/Content Technologies, September 1999.
[RFC2938] IETF RFC 2938, Identifying composite media features, Graham Klyne, Content
Technologies, September 2000
[RFC3261] IETF RFC 3261, SIP: Session Initiation Protocol, J. Rosenberg, DYNAMICSOFT, June
2002
[Roble01]
Tomas Robles, Arndt Kadelka, Hector Velayos, Antti Lappetelainen, Andreas Kassler, Hui
Li, Davide Mandato, Jussi Ojala, and Bernard Wegmann, QoS Support for an All-IP System
Beyond 3G, IEEE Communication Magazine, August 2001, Vol.39, No.8.
[Roja00]
J.C. Rojas et al.: Requirements for the QoS negotiation at the Application Layer, IETF
Internet-Draft, Work-in-progress, <draft-rojas-mmusic-qosreq-00.txt>
[Rosen01]
J. Rosenberg, H. Schulzrinne, Models for Multi Party Conferencing in SIP, IETF SIPPING
working group, Work-in-progress, <draft-rosenberg-sip-conferencing-models-01.txt >
[Rosen01a] J. Rosenberg, H. Schulzrinne, Models for Multi Party Conferencing in SIP, IETF SIPPING
working group, Work-in-progress, <draft-ietf-sipping-conferencing-models-00.txt >
[RTP-Prof] H. Schulzrinne et al.: RTP Profile for Audio and Video Conferences with Minimal Control,
Columbia U., Work-in-progress, <draft-ietf-avt-profile-new-09.txt >
[SDPCN00] F. Andreasen, SDP Simple Capability Negotiation, IETF MMUSIC working group, Workin-progress, <draft-andreasen-mmusic-sdp-simcap-00.txt>.
[SDPCN01] F. Andreasen, SDP Simple Capability Negotiation Requirements, IETF MMUSIC working
group, Work-in-progress, <draft-andreasen-mmusic-sdp-simcap-reqts-00.txt>.
Page A.315
MIND
1.2 / 0.1
[SDPCO01] D. Yon, Connection-Oriented Media Transport in SDP, IETF MMUSIC working group,
Work-in-progress, <draft-ietf-mmusic-sdp-comedia-01.txt >.
[SDPNG01] D. Kutscher et al.: Requirements for Session Description and Capability Negotiation, IETF
Internet-Draft, Work-in-progress, <draft-kutscher-mmusic-sdpng-req-01.txt>.
[SDPNG03] D. Kutscher et al.: Session Description and Capability Negotiation, IETF Internet-Draft,
Work-in-progress, <draft-ietf-mmusic-sdpng-03.txt>.
[SDPNG04] D. Kutscher et al.: Session Description and Capability Negotiation, IETF Internet-Draft,
Work-in-progress, <draft-ietf-mmusic-sdpng-04.txt>.
[SDPNG05] D. Kutscher et al.: Session Description and Capability Negotiation, IETF Internet-Draft,
Work-in-progress, <draft-ietf-mmusic-sdpng-05.txt>.
[SDPngT00] J. Ott, C. Perkins.: SDPng Transition, IETF Internet-Draft, <draft-ietf-mmusic-sdpng-trans00.txt>.
[SDPOA00] J.Rosenberg, H.Schulzrinne.: An Offer/Answer Model with SDP, IETF Internet-Draft,
Work-in-progress, <draft-rosenberg-mmusic-sdp-offer-answer-00.txt >.
[SDPOA02] J.Rosenberg, H.Schulzrinne.: An Offer/Answer Model with SDP, IETF Internet-Draft,
Work-in-progress, <draft-ietf-mmusic-sdp-offer-answer-02.txt >.
[SRL98]
H. Schulzrinne, A. Rao, R. Lanphier, “Real Time Streaming Protocol (RTSP) “, IETF
Request for Comments: 2326, April 1998.
[SIPBIS04] Handley et al.: SIP: Session Initiation Protocol, IETF SIP working group, Work-inprogress, <draft-ietf-sip-rfc2543bis-04.txt>.
[SIPBIS09] Rosenberg et al.: SIP: Session Initiation Protocol, IETF SIP working group, Work-inprogress, <draft-ietf-sip-rfc2543bis-09.txt>.
[SIPPRE01] J. Rosenberg et al., SIP Extensions for Presence, SIMPLE WG, Work-in-progress, <draftrosenberg-impp-presence-01.txt>
[SIPRES01] W. Marshall et al.: Integration of Resource Management and SIP – SIP Extensions for
Resource Management, IETF SIP working group, Work-in-progress, <draft-ietf-sipmanyfolks-resource-01.txt>.
[SIPRES07] G. Camarillo et al.: Integration of Resource Management and SIP, IETF SIP working
group, Work-in-progress, <draft-ietf-sip-manyfolks-resource-07.txt>
[SIPUP01]
J. Rosenberg.: The SIP UPDATE Method, IETF SIP working group, Work-in-progress,
<draft-ietf-sip-update-01.txt>
[WAVI]
G. Fankhauser, M. Dasen, N. Weiler, B. Plattner, and B. Stiller. WaveVideo -- An
integrated approach to adaptive wireless video. in ACM Monet, Special Issue on Adaptive
Mobile Networking and Computing, 1998
[WP-Cod]
White Paper, IP/TV CODECs, File Transfer and Storage Requirement Considerations, Jul
2000, http://www.cisco.com/warp/public/cc/pd/mxsv/iptv3400/tech/ipcod_wp.htm
[Xiaohui]
Xiaohui Gu, K. Nahrstedt, et al, An XML-based Quality of Service Enabling Language for
the Web, Project Report - National Science Foundation, 2001
[XLINK]
W3C, XML Linking Language (XLink) Recommendation Version 1,
http://www.w3.org/TR/xlink/, June 2001.
Page A.316
MIND
1.2 / 0.1
[XMLSC]
W3C, "XML Schema: Primer", "XML Schema: Structures", and "XML Schema:
Datatypes", 2001.
[XPATH]
W3C, XML Path Language Recommendation Version 1, http://www.w3.org/TR/xpath,
November 1999.
[XPOINT]
W3C, XPointer Recommendation, http://www.w3.org/TR/xptr, work in progress 2000
Page A.317
Download