<?xml version="1.0"?> 

<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> 

<?rfc toc="yes" ?> 

<?rfc compact="yes" ?> 

<?rfc sortrefs="no" ?>

<rfc ipr="full3978" docName="draft-romano-dcon-xdsp-reqs-04">

<front>
	<title abbrev="XDSP Requirements">
		Requirements for the XCON-DCON Synchronization Protocol
	</title>

	<author initials="S P" surname="Romano" fullname="Simon Pietro Romano">
		<organization>University of Napoli</organization>
		<address>
			<postal>
				<street>Via Claudio 21</street>
				<code>80125</code> 
				<city>Napoli</city> 
				<country>Italy</country>
			</postal>
			<email>spromano@unina.it</email>
		</address>
	</author>
	
	<author initials="A." surname="Amirante" fullname="Alessandro Amirante">
		<organization>University of Napoli</organization>
		<address>
			<postal>
				<street>Via Claudio 21</street>
				<code>80125</code> 
				<city>Napoli</city> 
				<country>Italy</country>
			</postal>
			<email>alessandro.amirante@unina.it</email>
		</address>
	</author>
	
	<author initials="T." surname="Castaldi" fullname="Tobia Castaldi">
		<organization>University of Napoli</organization>
		<address>
			<postal>
				<street>Via Claudio 21</street>
				<code>80125</code> 
				<city>Napoli</city> 
				<country>Italy</country>
			</postal>
			<email>tobia.castaldi@unina.it</email>
		</address>
	</author>
	
	<author initials="L." surname="Miniero" fullname="Lorenzo Miniero">
		<organization>University of Napoli</organization>
		<address>
			<postal>
				<street>Via Claudio 21</street>
				<code>80125</code> 
				<city>Napoli</city> 
				<country>Italy</country>
			</postal>
			<email>lorenzo.miniero@unina.it</email>
		</address>
	</author>
	
	<author initials="A." surname="Buono" fullname="Alfonso Buono">
		<organization>Ansaldo Trasporti e Sistemi Ferroviari</organization>
		<address>
			<postal>
				<street>Via Argine, 425</street>
				<code>80147</code> 
				<city>Napoli</city> 
				<country>Italy</country>
			</postal>
			<email>alfonso.buono@atsf.it</email>
		</address>
	</author>
	
	<date month="December" year="2008"/>
	<area>RAI</area>
	<workgroup>Network Working Group</workgroup>
	<keyword>Distributed</keyword>
	<keyword>Conferencing</keyword>
	<keyword>Centralized Conferencing (XCON)</keyword>
	<keyword>Protocol</keyword>
	
	<abstract>
		<t>
			The Distributed Conferencing (DCON) framework provides the means to
			distribute Centralized Conference (XCON) information by appropriately
			orchestrating a number of centralized focus entities (clouds). 
			The mechanism	we propose to make each XCON cloud communicate
			with its related DCON peer is based on the use of some kind
			of XCON-DCON Synchronization Protocol (XDSP). This
			document gives the requirements for XDSP.
		</t>
	</abstract>

</front>

<middle>

<!-- Introduction -->
<section title="Introduction" anchor="sec-intro"> 
	
	<t>
	The Distributed Conferencing framework <xref target="I-D.romano-dcon-requirements"/>
	describes the requirements for the overall architecture, terminology, and protocol components needed 
	for distribuited conferencing. DCON is based on the idea that a distributed
	conference can be setup and accessed by appropriately orchestrating the
	operation of a number of XCON "focus" elements, each in charge of
	managing a certain number of participants.	Each pair composed of a centralized
	focus entity (XCON) and its related distributed counterpart (namely, a DCON
	focus) is called "island", or "cloud". These islands are then made part of an
	overlay network composed of several inter-communicating clouds.
	</t>
	
	<t>
	Interaction between each participant and the corresponding conference
	focus is based on the standard XCON framework
	<xref target="I-D.ietf-xcon-framework"/>, whereas	inter-focus interaction
	is based on a peer-to-peer paradigm. The interaction between the
	centralized conference focus and the distributed conference focus, instead,
	has requirements that are defined in this document.
	</t>

</section>

<!-- Conventions -->
<section title="Conventions" anchor="sec-conv"> 

	<t>
	In this document, the key words "MUST", "MUST NOT", "REQUIRED",
	"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",
	"NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
	described in BCP 14, RFC 2119 <xref target="RFC2119"/> and indicate
	requirement levels for compliant implementations.
	</t>

</section>

<!-- Terminology -->
<section title="Terminology" anchor="sec-teminology">

	<t>
		Distributed conferencing uses, when appropriate, and expands on the
		terminology introduced in the both the SIPPING <xref target="RFC4353"/>
		and XCON <xref target="I-D.ietf-xcon-framework"/> conferencing frameworks.
		The following additional terms are defined for specific use within the
		distributed conferencing work.
	</t>

	<list style="hanging">
	
	<vspace blankLines='1'/>
	<t hangText="Conferencing Cloud:">
	<vspace blankLines='1'/>
		
		A specific pair composed of a centralized focus entity (XCON) and
		its associated distributed focus (DCON). We will herein indifferently 
		use both "cloud" and "island" to refer to a conferencing cloud.
		
	</t>
		
	<vspace blankLines='1'/>	
	<t hangText="DCON Focus:">
	<vspace blankLines='1'/>
	
		A specific entity enabling communication of a centralized conferencing
		system with the outside world. A DCON focus allows for the construction
		of a distributed conferencing system as a federation of centralized
		conferencing components.
	
	</t>

	<vspace blankLines='1'/>	
	<t hangText="Focus Discovery:">
	<vspace blankLines='1'/>
	
		The capability to detect the presence of new focus entities in a 
		distributed conferencing framework.
	
	</t>
	
	<vspace blankLines='1'/>	
	<t hangText="Information Spreading:">
	<vspace blankLines='1'/>
	
		The spreading of conference related information
		among the focus entities in a distributed environment.
	
	</t>
		
	<vspace blankLines='1'/>	
	<t hangText="Protocol Dispatching:">
	<vspace blankLines='1'/>
	
		The capabilty of appropriately forwarding/distributing messages of 
		a natively centralized protocol in order to let them spread across a
		distributed environment.	
		
	</t>
	
	<vspace blankLines='1'/>	
	<t hangText="Label Swapping:">
	<vspace blankLines='1'/>
	
		The opportune swap of labels assigned to a specific resource, needed
		to avoid conflicts in the assignment of labels across several point-to-point
		communications regarding the same resource.
	
	</t>
	
	</list>

</section>

<!-- Requirements -->
<section title="XDSP Requirements" anchor="sec-reqs">

	<t>
	This section describes requirements for the XCON-DCON synchronization
	protocol (XDSP).
	</t>
	
	<section title="General Protocol Requirements" anchor="sec-generalreqs">
	<vspace blankLines='1' />
	<list style="format REQ-A%d:" hangIndent='5'>
			<t>
			<vspace blankLines='1' />
				XDSP protocol MUST be a reliable client-server protocol. Hence, it
				MUST have a positive response indicating that the request has been
				received, or an error response in case an error has occurred.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				It MUST be possible for the XCON focus entity, the server, to
				authenticate the related DCON focus entity, the client.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				It MUST be possible for the DCON focus entity to be authenticated by
				the server, the related XCON focus entity.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				It MUST be possible to ensure message integrity between
				each pair of XCON and DCON focus entities.
			</t>
			<vspace blankLines='1' />
		</list>
	</section>
	
	<section title="Requests and responses" anchor="sec-answer">
		<vspace blankLines='1'/>
		<list style="format REQ-B%d:" hangIndent='5'>
			<t>
			<vspace blankLines='1' />			
				It MUST be possible for the involved XCON and DCON entities
				to communicate on a stateless synchronous request-response based
				mechanism.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				An error message MUST be sent back to the entity placing the
				request, in case the message couldn't be processed
				for any reason.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				An authentication mechanism SHOULD be made possible on the basis
				of such stateless synchronous request-response based interaction
				between the two involved entities.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				It SHOULD be possible for the XCON focus entity to request access
				to remote (e.g. avaliable on different islands) resources by means
				of an answer sent to the related DCON focus entity. This includes
				requesting a join to a remote conference for a local user,
				setting up distributed conferences, actively requesting the
				list of all the remote conferences and/or the list of all users
				(remote and local) in a currently running conference, etc..
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				The DCON focus entity SHALL forward any request directed to resources
				available in the related XCON cloud to the related XCON focus entity
				which will manage it and properly answer the request.
			</t>
			<vspace blankLines='1' />
		</list>
	</section>
	
	<section title="Updates and asynchronous notifications" anchor="sec-notify">
		<vspace blankLines='1' />
		<list style="format REQ-C%d:" hangIndent='5'>
			<t>
			<vspace blankLines='1'/>
				It SHOULD be possible for the DCON focus entity to subscribe
				to the related XCON focus entity for events related to the
				conference system state, in order to receive asynchronous
				notifications.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				The XCON focus entity SHALL generate new asynchronous
				notifications every time there is any change in the
				state of any of the conferences it is currently handling.
			</t>
			<vspace blankLines='1' />
			<t>
			<vspace blankLines='1'/>
				It SHOULD be possible for the DCON focus entity to receive
				full state updates from the related XCON focus entity, in case
				some of the events were missed, to make the known
				state consistent with the actual conference system internal state.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				Both partial notifications and full updates SHOULD be
				sent through the same authenticated channel used for XDSP
				communication. In case a separate channel and/or a separate
				protocol are used (e.g. by means of the XCON event package,
				when it is available, or of the already available SIPPING conference
				event package <xref target="RFC4575"/>), the same issues
				about security and integrity SHOULD be addressed to avoid attacks
				and exploits by unauthenticated users.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				Since state changes might happen in both the involved focus entities 
				(even though related to different situations) the same requirements
				just described for notifications generated by XCON focus entities
				should be addressed for their related DCON focus entities. It 
				SHOULD be possible for the XCON focus entity to subscribe
				to the related DCON focus entity for events related to the
				conference system state, in order to receive asynchronous
				notifications.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				The DCON focus entity SHALL generate new asynchronous
				notifications every time there is any change in its internal
				state, e.g. whenever new remote conferences have been created
				or become active, etc.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				It SHOULD be possible for the XCON focus entity to receive
				full state updates from the related DCON focus entity, in case
				some of the events were missed, to make the known
				state consistent with the actual conference system internal state.
			</t>
			<vspace blankLines='1' />			
		</list>
	</section>

	<section title="Centralized protocols routing and dispatching" anchor="sec-dispatch">
		<vspace blankLines='1' />			
		<list style="format REQ-D%d:" hangIndent='5'>
			<t>
			<vspace blankLines='1'/>
				The XCON focus entity MUST forward any centralized protocol message
				to its related DCON focus entity whenever the message is to be
				received by a peer who is not a local entity of the centralized
				system. Natively centralized protocol messages include, but are not
				limited to, any protocol defined and specified in the XCON
				framework (e.g. conference control management and floor control)
				as well as DTMF messages propagation. An example is represented by
				BFCP messages the local floor control server might need to send to a
				user who is	remotely (i.e. a user who does not belong to the current 
				XCON	cloud) participating in the conference. Another example concerns
				BFCP messages a local user might want to send to the remote floor
				control server handling the remote, distributed, conference the user 
				is participating in.
				Any message sent by local entities to local entities has to be treated
				in the usual centralized way according to the relative protocol
				specifications (i.e. dispatching shall not be involved).
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				The DCON focus entity MUST forward any natively centralized protocol
				message it receives from DCON focus peers in the distributed
				overlay (routing) to the related XCON focus entity (dispatching),
				whenever the message is addressed to any of the local entities of
				the centralized cloud.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				The XCON and DCON focus entities MUST establish and mantain
				opportune labels to correctly address and identify local entities
				involved in routed and dispatched messages. These labels MUST
				be appropriately swapped whenever they leave a DCON focus 
				entity and reach a foreign one, so to avoid conflicts upon assigned
				labels in different islands.
			</t>
			<vspace blankLines='1' />			
			<t>
			<vspace blankLines='1'/>
				Message dispatching between the two involved focus entities SHOULD
				occur on an request-response based communication mechanism, and
				opportune errors should be generated in case any exceptional condition
				happens while processing the messages.
			</t>
			<vspace blankLines='1' />			
		</list>
	</section>

</section>

<!-- Security -->
<section title="Security Considerations" anchor="sec-security">
	<t>
		The communication between each DCON focus entity and its related
		XCON	entity contains sensitive information, since it envisages the
		possibility to spread important information that only authorized entities
		should	be aware of (e.g. the full internal state of the centralized conference
		objects and relevant privacy information about users authenticated
		by the system).
	</t>
	
	<t>
		Hence it is very important that protocol messages be protected because
		otherwise an attacker might spoof the legitimate identity of the DCON focus
		entity and/or inject messages on his behalf. Many obvious consequences
		could come out of such an undesirable situation.
	</t>
	
	<t>
		To mitigate the above threats, both the DCON focus entity and the XCON
		focus entity	SHOULD be authenticated upon initial contact.  All protocol
		messages SHOULD be authenticated and integrity-protected to prevent
		third-party intervention and MITM (Man-In-The-Middle) attacks. 
		All messages SHOULD be encrypted to prevent eavesdropping.
	</t>
</section>


<section title="Acknowledgements" anchor="sec-acks">

	<!--
	<t>
		Bla bla.
	</t>
	-->

</section>

</middle>

<back>
	
	<references title="References">    
		<!-- BNF -->
		<?rfc include="reference.RFC.2234"?>
		<!-- Terminology -->
		<?rfc include="reference.RFC.2119"?>
		<!-- IANA Guidelines -->
		<?rfc include="reference.RFC.2434"?>
		<!-- SIPPING conferencing framework -->        
		<?rfc include="reference.RFC.4353"?>
		<!-- SIP Event Package-->
		<?rfc include="reference.RFC.4575"?>
		<!-- DCON-Requirements -->
		<?rfc include="reference.I-D.romano-dcon-requirements"?>
		<!-- XCON-Framework -->
		<?rfc include="reference.I-D.ietf-xcon-framework"?>
	</references>
	
</back>

</rfc>

<!--  LocalWords:  xref PPR PPA SAA RTA RTR LIR LIA CDATA -->
