Internet DRAFT - draft-beck-mboned-ssm-source-discovery-protocol
draft-beck-mboned-ssm-source-discovery-protocol
Network and Protocol Team F. Beck
Internet-Draft M. Hoerdt
Expires: novembre 30, 2003 J-J. Pansiot
LSIIT
June 2003
Source Discovery Protocol in SSM Networks
draft-beck-mboned-ssm-source-discovery-protocol-00.txt
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at http://
www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on novembre 30, 2003.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
This document presents a protocol performing source discovery in SSM
Networks.
Beck, et al. Expires novembre 30, 2003 [Page 1]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Motivation and Goals . . . . . . . . . . . . . . . . . . . . 4
3. Problem Overview . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Problems To Solve . . . . . . . . . . . . . . . . . . . . . 5
3.2 Solution Proposed . . . . . . . . . . . . . . . . . . . . . 5
4. ASM over SSM Emulation . . . . . . . . . . . . . . . . . . . 7
4.1 Protocol Description for Source-Server Interaction . . . . . 7
4.1.1 With a New Source . . . . . . . . . . . . . . . . . . . . . 7
4.1.2 With an Existing Source . . . . . . . . . . . . . . . . . . 8
4.1.3 Message Acknowledgement . . . . . . . . . . . . . . . . . . 9
4.2 Protocol Description for Receiver-Server Interaction . . . . 10
4.2.1 Information Request . . . . . . . . . . . . . . . . . . . . 10
4.2.2 Source Advertising . . . . . . . . . . . . . . . . . . . . . 12
5. Floor Control Capabilities . . . . . . . . . . . . . . . . . 13
5.1 KICK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.2 VOICE . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3 Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
6. Messages Formats . . . . . . . . . . . . . . . . . . . . . . 15
7. Source's States . . . . . . . . . . . . . . . . . . . . . . 16
7.1 ASM over SSM emulation states . . . . . . . . . . . . . . . 16
7.2 Floor Control states . . . . . . . . . . . . . . . . . . . . 17
8. Breakdowns and Consequences . . . . . . . . . . . . . . . . 19
9. Timers and their Default Values . . . . . . . . . . . . . . 20
9.1 ON Validity . . . . . . . . . . . . . . . . . . . . . . . . 20
9.2 ON Forwarding . . . . . . . . . . . . . . . . . . . . . . . 20
9.3 ON Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.4 ON Ack . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.5 ON Src . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.6 OFF Ack . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.7 Kick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
9.8 Mute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.9 ALIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
9.10 ALIVE Cycle . . . . . . . . . . . . . . . . . . . . . . . . 21
10. Security Considerations . . . . . . . . . . . . . . . . . . 22
References . . . . . . . . . . . . . . . . . . . . . . . . . 23
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 24
Intellectual Property and Copyright Statements . . . . . . . 25
Beck, et al. Expires novembre 30, 2003 [Page 2]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
1. Introduction
In his thesis [1], Holbrook considered the case of using multi-source
applications in SSM network only environment. He defined two
schemes, an hybrid approach of them and evaluated them : He proposes
a sender advertisement scheme using a control channel and a session
relaying scheme using a central node, and argues that both of them
have advantages and inconvenients. He measured the startup delay of
the sessions and simulated both propositions but did not define an
architecture for it. That's why we propose an architecture based on
his idea in this paper.
In paper [2] Chesterfield and Schooler propose to modify rtp/rtcp to
have it working under SSM environment. It is aimed at large scale
multimedia distribution and control and dot not consider the case of
medium sized multiparty conferences. Their solution could work under
vic and rat but reduces the informations provided by rtp/rtcp
protocol for conferencing application and could only work with
multicast applications using RTP/RTCP. We try here to define an
architecture aimed at multi-sources applications, as independent as
possible from the application and only providing independent services
for an applicative group.
This paper describes a protocol which could be used in such an
architecture to achieve the source discovery in a SSM Network.
Beck, et al. Expires novembre 30, 2003 [Page 3]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
2. Motivation and Goals
As a first point, we would like to have a quickly deployable
architecture, according to the latest networks and applications
research efforts. This means using SSM service, because it is simple
to maintain for operators. Second, this proposition must be scalable
regarding the number of announced sources. This architecture must be
fault tolerant regarding the sources dynamics.
For application performances, the architecture must be as transparent
as possible compared to the classical ASM model.
On the implementation viewpoint, our architecture must be portable,
independent of the IP version stack used and easy to use for an
application developer.
Beck, et al. Expires novembre 30, 2003 [Page 4]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
3. Problem Overview
In this section, we will describe an architecture that solves the
problems cited, and permits the use of channels in multi-sender
applications. This architecture is partially inspired by Hugh W.
Holbrook's thesis [1].
3.1 Problems To Solve
We aim to use channels in multi-sender applications, but to do so, we
have several problems to solve.
Firstly, in the ASM model described by Deering, a multicast group is
only identified by his IP address. But here, we will work with SSM
multicast channels, which are described by a couple (S,G) composed of
the unicast IP address of a source S and an IP multicast address G.
But then, knowing that at the moment, in most of the applications
like Vic or Rat a multicast group is identified by both its IP
multicast address and the port used to send data to, the problem of
identifying a multicast group appears.
Secondly, on the one hand, in ASM when a receiver joins a group, he
discovers automatically the sources when they send data to the group.
In the same way, when a new source appears, the receivers learn it
simply by receiving the packets sent. On the other hand, with the
SSM model, no such mechanism exists, because we work with channels
(S,G) where S is the single source being able to emit on this
channel.
Consequently, the receivers must have a way of discovering the active
sources and being informed of the arrival of new ones.
To achieve our goal, we have two choices :
o Session Relaying
o Sender Advertising
We will now explain a solution, based on sender advertising.
3.2 Solution Proposed
Our solution uses at least a channel per source, and a global
channel, called control channel, which is used for relaying various
administration information for the group.
This control channel identifies the multicast group, and runs on top
of UDP for sending data. Therefore, to announce a group, it is only
Beck, et al. Expires novembre 30, 2003 [Page 5]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
necessary to advertise this channel and the UDP port used, receivers
having only to join the multicast channel and bind it to obtain all
informations necessary to take part in the session. The source of
this control channel will be called controller for the group, and
will perform the administration operation for this group, like
advertising new sources, giving the list of the existing ones on
demand and optionally making some network floor control.
As it is possible for the same controller to have authority for
several groups, it has been decided to use a single process that
takes care of these groups. This server uses a single UDP socket
listening on a announced port to communicate with the sources or the
receivers which want to learn the existing sources. The source
advertising messages and other administration messages are sent to
all the receivers via the channel of control. This server takes care
on a controller S of all the control channels identified by a channel
(S,...). These channels do not necesseraly use the the same UDP port
to sent data to.
This server is run on the application level of the OSI model, because
it takes care of the interaction with the applications used in
multicast sessions. The advantage of having this server running on
the application layer, is that it is possible to choose its location
so that the performances are the best, and it introduces the
possibility of doing floor control at the application layer.
Moreover to manipulate UDP socket is very easy and allows quick
implementation.
This paper describes a protocol which could be used between the
sources or the receivers and the controller in SSM Networks to manage
sources.
Beck, et al. Expires novembre 30, 2003 [Page 6]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
4. ASM over SSM Emulation
In this section, we describe the ASM over SSM emulation part of the
protocol, which means the way the receivers learn the active sources
for a group at a given time, and the new ones which could appear
during the session.
4.1 Protocol Description for Source-Server Interaction
Now we will describe the interaction between a source for a group,
and the controller (that means the server) for this group. We'll
only take a look at the source advertising, the network floor control
is optionnal and will be described later in this draft.
4.1.1 With a New Source
When a new source wants to announce itself, it must begin by
informing the server. The server then stores the information about
the source in his cache. This announcement is done with a message
composed of this protocol's header with a SDP payload [3][4][5], that
we will call a message ON, sent to the UDP socket of the server.
This message must contain all the necessary informations for a
receiver to join the channel used by the source to send its data to
the group. It is composed of the new source channel information and
possibly transport or protocol over IP information.
As an example if the application transmit data over UDP, this message
ON must contain : the group identifier (S,G,P), the channel and the
port used by the source to send the data to, the dates of beginning
and end of validity of the session and possibly informations which
the receivers could need to decode the data.
It must be noted that the transport information is only destined to
applications and not the protocol described here. In the previous
example, the application behavior is the same than the ASM one. It
means that UDP sources have to send to the same UDP announced port
and that each receiver have to bind on the same UDP port for data
reception.
Once this message ON has been treated, the server must announce the
source to the receivers. To do so, it forwards this message to the
whole group via the control channel, if the source is allowed to send
data to the group. Therefore, all the receivers learn that this
source exists, and are able to join the channel it uses to send data
if desired. See Figure 1 for an illustration of this mechanism.
Beck, et al. Expires novembre 30, 2003 [Page 7]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
+-------+
+---->| Cache |
2. Cache | +-------+
update |
|
| 1. ON((S,G),..)
+--------+ <--------------------- +--------+
| Server | | Source |
+--------+ ---------------------> +--------+
/\ 3b. ON_ACK /\
/ \ / \ Channel
/ \ / \ (SRC,M)
/\ /\ /\ /\
/ \ / \ 3a. Forwarding ON message / \ / \
| |
Channel | -> +----------+ | 4. if desired, joins
(S,G) +----| Receiver |-------------+ (SRC,M)
+----------+
Figure 1 : Interaction Source - Server for a message ON.
4.1.2 With an Existing Source
Periodically, a source must send a message ON to the server, in order
to inform it that it is still active, and the server forwards this
message on its control channel to the receivers. For each source,
the server keeps a timer which gives the time the source entry in his
cache is valid. If the server doesn't receive such a message before
the timer associated with the source ends, it considers that the
source isn't active anymore, removes the corresponding entry in his
cache and sends a message OFF to inform the receivers that this
source no longer exists.
The sources and the receivers also have to maintain some timers in
order to take care of the validity of the various informations and
messages. For example, a source has to run a timer for the validity
of a message ON in order to take care of the periodical sent of this
message.
A source can also explicitly announce that it stops its activity by
sending a message OFF to the server, which removes the corresponding
entry in its cache and forwards this message on the corresponding
control channel in order to inform the receivers, which then leave
this channel. The mechanism is illustrated on figure 2. Note that
some upper layer protocols already have a function to advertise the
end in participating in a session but not advertising that they are
transmitting as control plane and data plane are mixed in classical
Beck, et al. Expires novembre 30, 2003 [Page 8]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
multicast. This is the case with BYE packets from RTCP protocol.
The message OFF is almost identical to the message ON. It is sent to
the announced port of the control channel on an UDP socket and is a
message composed of this protocol's header with a SDP payload, but
all the information given in the message ON aren't necessary : it is
only necessary to give the identifier of the group and the identifier
of the channel used to send data. These two parameters are
sufficient to leave the channel corresponding to the source.
+-------+
+---->| Cache |
2. Cache | +-------+
update |
| 1. OFF((S,G),..)
+--------+ <--------------------- +--------+
| Server | | Source |
+--------+ ---------------------> +--------+
/\ 3b. OFF_ACK /\
/ \ / \ Channel
/ \ / \ (SRC,M)
/\ /\ /\ /\
/ \ / \ 3a. Forwarding OFF message / \ / \
| |
| |
Channel | -> +----------+ \ / | 4. leaves
(S,G) +----| Receiver |------+-------+ (SRC,M)
+----------+ / \
Figure 2 : Interaction Source - Server for a message OFF.
4.1.3 Message Acknowledgement
In order to add functionalities and robustness to our protocol,
message acknowledgements can be very useful. Thus, a new message
ON_ACK is created and is sent in unicast from the server to the
source in response to a ON message. In the same way, if a source
announces its explicit departure by sending a message OFF to the
server, this one responses with a OFF_ACK message.
This acknowledgement gives the possibility to add new functionalities
to our protocol. For example, it can be imagined to combine this
system with MSNIP [6] in order to realize the synchronization between
the sender and the receiver for the data sending on the source's
tree. Another options would be to add an authentification mechanism,
for example by exchanging a key or a session identifier.
Beck, et al. Expires novembre 30, 2003 [Page 9]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
In order to keep the possibility to add these functionalities or
other ones, a field "reserved" has been added in the protocol's
message format.
As we use this acknowledgement system, we have to introduce new
timers. These timers represent the duration the process waits for
the ON_ACK or the OFF_ACK messages before it sends again respectly a
message ON or OFF.
4.2 Protocol Description for Receiver-Server Interaction
Here we describe the interaction between a receiver and the server.
We distinguish the case when a receiver demands informations about
the sources which are active for the group, and the case when a
source has announced itself.
4.2.1 Information Request
The server acts here as a directory of sources. A receiver which
wants to learn the list of the existing sources for a group on which
the server has authority, sends him a unicast message on a known port
from the receiver. This message is an UDP paquet with as payload our
protocol header and a SDP description which contains the group
identifier, which is the couple (S,G). We call this message a
message INFO_REQ.
When the server receives such a message, it takes a look at his
cache, and responses to the receiver in unicast with a message
INFO_RESP giving this list of source and enough informations for the
receiver to join the corresponding channels if wanted.
If the server wants to be able to give these informations, it has to
maintain a cache containing all these. That means that the cache
must contain the group identifier (S,G,P), if there are more than one
controller, the control channels used by these controllers, the dates
of beginning and ending of validity of the session, and the source
list. That gives the table :
+---------------+----------------------+---+---------+------+-------+
|control channel|second control channel|...|beginning|ending|sources|
+---------------+----------------------+---+---------+------+-------+
The source list is composed of zero or several entries. Each entry
describes a source and gives the information that a receiver may need
to join the channel used for sending data to the group and then use
these data. Such an entry is like :
Beck, et al. Expires novembre 30, 2003 [Page 10]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
FLAGS
_____/\_____
| |
+---------------+----+------+-----+-------------------+-----+
|sending channel|port|KICKED|VOICE|coding informations|Timer|
+---------------+----+------+-----+-------------------+-----+
Figure 3 : Interaction receiver - Server.
The flags KICKED and VOICE are used if Floor Control operations are
performed, and are set to 0 by default, and the coding informations
are optional.
This cache is used by the server to store all the informations for a
group, but the receivers have to maintain the same cache, but limited
to one applicative group. This cache is updated thanks to the
messages sent on the control channel.
The message INFO_RESP is an UDP paquet with as payload this
protocol's header with a SDP description describing the session and
the sources. The SDP part contains the group identifier, the dates
of beginning and end of validity of the session, and a list of zero
or more channels and ports used by the sources to send data to the
group, and possibly more information about these sources which the
receivers could need.
When a receiver receives a paquet INFO_RESP, if it hasn't done yet,
it joins the control channel, and does the same with the channels
used by the sources which it has interest in. See Figure 3.
Beck, et al. Expires novembre 30, 2003 [Page 11]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
+----------+ 1. INFO_REQ((S,G),...) +-----------+
| | ------------------------> | |
| Receiver | | Controller |
| | <------------------------ | |
+----------+ 2. INFO_RESP(...) +-----------+
|\ /\
| \ / \ Channel
| \ / \ (S,G)
| \ /\ /\
| \ / \ / \
| \ |
| +-------------------------------+
| 3. JOIN(S,G)
+-------------+
|
+----------+ |
| | |
| Source | | 4. if desired, joins the
| | | sources announced in the
+----------+ | INFO_RESP message.
/\ |
Channel / \ |
(SRC,M) / \ |
/\ /\ |
/ \ / \ |
+-----+
Figure 3 : Interaction receiver - Server.
4.2.2 Source Advertising
When a new source announces its activity to the server, it has to
inform all the receivers. To do so, it forwards the message ON
received from the source on the control channel.
In the same way, when the server detects the explicit or implicit
departure of a source, it forwards or sends, according to the case, a
message OFF for this source on the control channel.
Beck, et al. Expires novembre 30, 2003 [Page 12]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
5. Floor Control Capabilities
This protocol provides the possibility to perform some control
operations on an applicative group. These Floor Control operations
are optionnal. In this section, we give two examples of such
operations, the KICK and MUTE mechanisms, inspired by the control
operations available in the IRC protocol [7][8][9][10][11].
5.1 KICK
The KICK operation consists in forbidding a source to send data to
the group. As we are using channels, the server cannot block the
traffic from the source, but it has the possibility to prevent the
receivers from receiving it. Indeed, if a source isn't wanted
anymore for a group, the flag KICKED is set in the entry
corresponding from the server's cache, and a message KICK is sent on
the control channel for this source. Then, all the receivers learn
that the source isn't desired anymore and have the possibility to
leave the corresponding channel, after having set the flag KICKED in
their cache.
As the source is still active, it sends periodically ON messages to
the server, but as long as the flag KICKED is set for this source,
the server doesn't forward these messages, but instead sends a KICK
message.
If the source is authorized to emit again, it is enough to withdraw
the KICKED flag and to propagate a message ON for this source on the
control channel, the receivers unsetting the KICKED flag in their
cache will have the possibility to join again the corresponding
channel if it has been left.
This mechanism is transparent for the sources : this operation is
done by the receivers which are supposed to leave the channel used by
the source.
5.2 VOICE
This mechanism is less violent than the KICK one. Here the source is
not inevitably undesirable, but in order to save resources or to
maintain session integrity, it is wished that only specified sources
transmit data.
To do so, the server sends a message MUTE containing the group
identifier to the sources that shouldn't send data. These when they
receive such a message, sent in unicast to an announced port UDP on
the source (the address is known from the channel used to send data
to), stop sending data on their channels, but keep doing the other
Beck, et al. Expires novembre 30, 2003 [Page 13]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
stuff like sending periodical ON messages to the server.
To authorize the source to emit again, a message UNMUTE containing
the group identifier is send to the source.
If a source has been asked to mute, the flag VOICE is set in the
corresponding entry in the server's cache, and this flag is removed
if the source is authorized to send data to the group. As long as
the flag MUTE is set, the server periodically sends MUTE message to
the source.
This operation is totally transparent for the receivers, unlike the
KICK one where they have to perform JOIN and LEAVE actions. But this
operation needs the cooperation of the source which has to stop
sending data to the group. That implies that sources also run a
process which listens on this port and performs the needed operations
if MUTE or UNMUTE messages are received.
5.3 Timers
To perform these several operations, both the source and the
controler have to keep running timers, in order to take care of the
validity of KICK and MUTE messages.
If the timer associated to the MUTE message expires, the source
decides that it can send data again, removes the MUTE flag and sends
again on its data channel.
A receiver has to run a timer giving the validity of a KICK message.
If this timer runs out, the VOICE flag is removed and the channel
data corresponding to the source is joined (if it was left).
In the same way, the server has to maintain two timers giving the
duration before the next sent of a KICK or MUTE message. The timers
used for KICK and MUTE periodical messages are the same as the timer
used for the ON message.
Beck, et al. Expires novembre 30, 2003 [Page 14]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
6. Messages Formats
One possibility could be to use SAP messages with a SDP description
as payload. However, it has only one bit of type message, which
gives us only the possibility to code 2 messages, but we have at
least 10 different messages to specify. Instead, we propose the
following format.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| V=1 |A| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | T | Payload |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4 : Message Format.
V: Version Number (3 bits). The current version number is 1.
A: Address Type (1 bit). If this bit is 0, then the description in
the payload is made for an IPv4 group, else if it is set at 1, it is
an IPv6 group.
R: Reserved (32 bits). Reserved for further extensions.
T: Type of the message (5 bits). Specifies the message type, which
can be OFF (00000), ON (00001), MUTE (000010), UNMUTE (00011), ALIVE
(00100), KICK (00101), INFO_REQ (00110), INFO_RESP (00111), ON_ACK
(01000) or OFF_ACK (01001).
The payload is an SDP description of the group and/or the source. As
we are using SSM channels, the description made for the group or the
source is based on the draft [5]. The payload's length isn't fixed,
it depends on the informations given. For example, if the payload is
used in a message 0FF to describe the group and the channel used by
the source to send data to the applicative group, it will be shorter
than if it used in a message INFO_RESP to describe all the active
sources for a group.
Thanks to the use of SDP description, it is possible to merge several
source description in only one ON message, which can be useful for
sending periodic ON messages for a group on its control channel. In
the same way, we can imagine a mechanism which would permit to merge
several protocol messages in the same IP packet.
Beck, et al. Expires novembre 30, 2003 [Page 15]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
7. Source's States
In this section, we describe the different states in which a source
can be, depending on the action realized thanks to this protocol. We
will distinguish the ASM over SSM emulation part and the Control
operations.
7.1 ASM over SSM emulation states
The different states in which a source can be in this case are :
o ON_SENT : the source has sent a message ON to the server and waits
for the ON_ACK
o ACTIVE : the source has received the acknowledgement, notifying
that it has been recorded as active and announced so, in response
on the ON message it sent.
o OFF_SENT :the source has sent a OFF message to announce its
departure and is waiting for the acknowledgement.
o INACTIVE : the source has never been active or has sent a OFF
message and has received the corresponding OFF_ACK.
The following states diagram describes the different states and the
transition between them for the ASM over SSM emulation part, which
means the source advertising.
Beck, et al. Expires novembre 30, 2003 [Page 16]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
+-------------------+
| |
| INACTIVE |<-----------+
+---->| | |
| +-------------------+ |
| | |
| | sends ON |
time out | | |
| \/ |
| +-------------------+ |
| | | |
+-----| ON_SENT | |
| | |
+-------------------+ |
| | receives OFF_ACK
| receives ON_ACK |
| |
\/ |
+-------------------+ |
| | |
| ACTIVE | |
+---->| | |
| +-------------------+ |
| | |
| | sends OFF |
time out | | |
| \/ |
| +-------------------+ |
| | | |
+-----| OFF_SENT |------------+
| |
+-------------------+
Figure 5 : States Diagram for ASM over SSM emulation.
7.2 Floor Control states
If the optional Floor Control operations are performed, some new
states are introduced. The different states in which a source can be
in this case are :
o ACTIVE : the source is normally active.
o MUTED : The source has been asked by the server to stop sending
data on its channel.
o KICKED : The source has been KICKED by the controller (but it is
Beck, et al. Expires novembre 30, 2003 [Page 17]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
still active).
o INACTIVE : The source has announced that it isn't active anymore.
The MUTE state is transparent for the receivers, the muted source's
channel (multicast tree) is kept. This state is only available for
sources. In the same way, the KICKED state has only sense for the
receivers, the channel of a kicked source is removed (actually it is
virtually removed by the controler's KICK message, the source keeps
its data channel and keeps on sending data on it). We can imagine
that we send a message KICK to the source to advertise it that it has
been kicked from the session, but it isn't an obligation. the
INACTIVE state is reached when the receiver has received the OFF
message forwarded on the control channel.
The following states diagram describes the different states and the
transition between them for the Floor Control operations.
+-------------------+
+---------| |---------------+
MUTE | | ACTIVE | |
received | +---->| |<-----------+ |
| | +-------------------+ | | KICK received
| | | |
| | UNMUTE ON | |
| | received received | |
\/ | | \/
+-----------------+ +-----------------+
| | | |
| MUTED | | KICKED |
| | | |
+-----------------+ +-----------------+
| |
| |
OFF | | OFF
received | +-------------------+ | received
| | | |
| | INACTIVE |<-----------+
+---->| |
+-------------------+
Figure 6 : States Diagram for Floor Control.
Beck, et al. Expires novembre 30, 2003 [Page 18]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
8. Breakdowns and Consequences
The master controller S sends on its control channel periodical ALIVE
messages to show that it is always active. This message is a UDP
packet with this protocol's header and a SDP description containing
the group identifier for which it is the controller.
If the backup controller S' doesn't receive any ALIVE message from S
on (S,G) after the supposed time, it considers that S is down and
begins sending ALIVE packets and source advertising. A source which
was kicked by the other controller will be announced as active the
next time it sends a message ON unless the new one kicks it. In the
same way, a source that has been asked to mute, after the timer of
the validity of the MUTE message has expired, will begin to send data
again. To avoid this situation, it is possible to distribute this by
adding a KICK flag in each receiver's cache. Then, if the master
controller kicks a source, it announces it with a message KICK, which
causes this KICK to be set in all receivers, including the second
master. This flag would be valid until a ON message for this source
is sent. Such a mechanism gives us at the application level the
possibility for the application based on this protocol to ask the
user if he still wants to receive data from the source even if the
controller recommands to kick it, or if he wants to follow the
controller's order in case of a MUTE message.
Supposing that the master controller S breaks down, S' detects it and
begins assuming this role as already described earlier. A receiver
that has already joined the group is a member of both control
channels, and then receives the control data on (S',G'), and except
the time until S' takes the control, nothing special happens. In the
same way, a receiver that wants to join the session joins both
control channel, and has the informations he needs from S'.
Beck, et al. Expires novembre 30, 2003 [Page 19]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
9. Timers and their Default Values
The messages ON, KICK and MUTE are sent periodically in order to add
robustness to our protocol. Therefore, we have to use several timers
to define the validity of the different states and informations.
In this section, we describe the different timers used in our
protocol and their default value. Some of them are configurable, the
other ones depend on each others.
9.1 ON Validity
This timer describe the validity of a source entry in the server's
cache. It is the reference used to define most of other timers. If
we allow its value to being configurable, we could be distribute it
to the sources and the receivers thanks to the ON message. Default :
15 seconds.
9.2 ON Forwarding
This timer describes the period the server uses to send ON messages
on the control channel. Default : 1/3 * the ON Validity.
9.3 ON Cycle
The ON Cycle is the period between two ON messages sent by a source.
In order to be robust to one message ON lost, we must have 2 * the ON
Cycle > ON Validity Default : 1/3 the ON Validity.
9.4 ON Ack
The ON Ack is the time the source waits for the acknowledgement of an
ON message. Default : 1/3 the ON Validity.
9.5 ON Src
The ON Src is the time of validity of a ON message for a receiver.
Default : the ON Validity.
9.6 OFF Ack
The OFF Ack is the time the source waits for the acknowledgement of
an OFF message. Default : 1/3 the ON Validity.
9.7 Kick
It is the time of validity of a KICK message sent by the server, and
is used at the receiver's level. Default : ON Validity.
Beck, et al. Expires novembre 30, 2003 [Page 20]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
9.8 Mute
It is the time of validity of a MUTE message sent by the server, and
is used at the source's level. Default : ON Validity.
9.9 ALIVE
It is the time of validity of an ALIVE message sent by the server,
and is used at the receiver's level. Actually, it only makes sense
for the other controlers if we have redundancy in order to add
robustness. Default : 2 * the ON Validity.
9.10 ALIVE Cycle
It is the time between two ALIVE messages sent by the server.
Default : 3/4 * ON Validity.
Beck, et al. Expires novembre 30, 2003 [Page 21]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
10. Security Considerations
At this moment, this protocol does not provide security mechanism at
all. The only security warrants are based on IP. Because this
protocol is based on top of a connectionless protocol (UDP), it's
very easy for someone to abuse the security mechanisms offered by IP
with techniques like IP spoofing. This is why is it's very important
on the receiver part to bind on the two part of the (S,G) control
channel. According to the SSM service model, and how the SSM
multicast tree construction is done at the IP level, it is more
difficult to spoof a channel than an IP.
More security mechanisms could be imagined, like using a single
session identifier per group which is only distributed between the
controllers.
But the security problem isn't limited to the controller. We can
imagined that a source usurps another's identity and carries out
false advertisements for this one. By doing so, a source can be
announced as no more active whereas it still sends data. To avoid
this, we could use an appropriate authentification mechanism, which
can be done thanks to the acknowledgment messages for example.
Beck, et al. Expires novembre 30, 2003 [Page 22]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
References
[1] Holbrook, H., "A channel model for multicast", August 1991 -
2001.
[2] Chesterfield, J. and E. Schooler, "An Extensible RTCP Control
Framework for Large Multimedia Distributions", april 2003.
[3] Handley, M., Perkins, C. and E. Whelan, "Session Announcement
Protocol", oct 2000.
[4] Handley, M. and V. Jacobson, "Session Description Protocol",
apr 1998.
[5] Quinn, B. and R. Finlayson, "Session Description Protocol (SDP)
Source Filters", may 2003.
[6] Fenner, B., Haberman, B., Holbrook, H. and I. Kouvelas,
"Multicast Source Notification of Interest Protocol (MSNIP)",
june 2003.
[7] oikarinen, J. and D. Reed, "Internet Relay Chat Protocol", may
1993.
[8] Kalt, C., "Internet Relay Chat Protocol: Architecture", apr
2000.
[9] Kalt, C., "Internet Relay Chat Protocol: Channel Management",
apr 2000.
[10] Kalt, C., "Internet Relay Chat Protocol: Client Protocol", apr
2000.
[11] Kalt, C., "Internet Relay Chat Protocol: Server Protocol", apr
2000.
[12] Fenner, B. and D. Meyer, "Multicast Source Discovery Protocol
(MSDP)", may 2003.
Beck, et al. Expires novembre 30, 2003 [Page 23]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
Authors' Addresses
Frederic Beck
LSIIT
PŸle API, bureau C444
Boulevard S‰bastien Brant
Illkirch 67400
FRANCE
Phone: (33) 3 90 24 45 86
EMail: beck@clarinet.u-strasbg.fr
URI: http://clarinet.u-strasbg.Fr/~beck/
Micka‹l Hoerdt
LSIIT
PŸle API, bureau C444
Boulevard S‰bastien Brant
Illkirch 67400
FRANCE
Phone: (33) 3 90 24 45 86
EMail: hoerdt@clarinet.u-strasbg.fr
URI: http://clarinet.u-strasbg.Fr/~hoerdt/
Jean-Jacques Pansiot
LSIIT
PŸle API, bureau C447
Boulevard S‰bastien Brant
Illkirch 67400
FRANCE
Phone: (33) 3 90 24 45 84
EMail: pansiot@clarinet.u-strasbg.fr
URI: http://clarinet.u-strasbg.Fr/~pansiot/
Beck, et al. Expires novembre 30, 2003 [Page 24]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
intellectual property or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication and any assurances of
licenses to be made available, or the result of an attempt made to
obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification can
be obtained from the IETF Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights which may cover technology that may be required to practice
this standard. Please address the information to the IETF Executive
Director.
Full Copyright Statement
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
Beck, et al. Expires novembre 30, 2003 [Page 25]
Internet-Draft Source Discovery Protocol in SSM Networks June 2003
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Beck, et al. Expires novembre 30, 2003 [Page 26]