Internet DRAFT - draft-vasaka-xcast-sim
draft-vasaka-xcast-sim
Internet Draft Vasaka Visoottiviseth
Expiration Date: January 2002 NAIST / WIDE Project
Yosuke Takahashi
Noritoshi Demizu
WaterSprings.ORG
July 2001
Sender Initiated Multicast (SIM)
<draft-vasaka-xcast-sim-00.txt>
Status of this Memo
This document is an Internet-Draft and is subject to 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.
Abstract
Sender Initiated Multicast (SIM) is a point-to-multipoint multicast
mechanism. The members of a receiver group are specified by a
sender, instead of receivers. A group is identified by the
combination of sender's unicast address in the source address field
and a multicast address in the destination address field. A sender
always (in list mode) or periodically (in preset mode) attaches a
receiver list to packets in order to specify the members of a
receiver group. Each packet is forwarded along unicast paths to each
receiver and is duplicated at the branching router. Routers on the
paths maintain SIM Forwarding Information Base (FIB) as specified by
the flags in the receiver list. In preset mode, SIM can decrease
Vasaka, et al. [Page 1]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
number of routers that have to maintain SIM FIB by automatically
created SIM Tunnel between two SIM branching routers.
In this document, we describe SIM including its delivery models, SIM
FIB operations, the formats, and security considerations.
Table of Contents
1. Introduction
2. Acronyms and Terminology
3. Overview
4. Characteristics of SIM
5. Creating a multicast session
6. SIM Forwarding Procedure
7. SIM Basic Rules
8. SIM Forwarding Information Base (FIB)
9. SIM FIB Operations
10. SIM Tunnel
11. SIM Routers
12. Header Format
13. Interoperability with Existing Protocols
14. Security Considerations
Changes
- re-organized the chapters
- filled out the terminology
- changed usage of bit map and receiver list
- changed IPPROTO_SIM header format
- changed SIM packet format and added its figure
- added packet format for SIM message control
- added security considerations
1. Introduction
Since multicast efficiently sends data to a group of receivers, it
has been considered important for multi-party applications such as
video conferencing and data distribution.
The ordinary IP Multicast mechanism is based on "Host Group Model".
Receivers are responsible for joining/leaving a multicast group.
Control messages are passed among upstream routers to establish or
tear down multicast paths according to receivers' requests. As a
result, a sender can send packets to all the joining receivers
without any knowledge of the receivers.
Vasaka, et al. [Page 2]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
The advantages of "Host Group Model" are:
- Receivers can start receiving data without disturbing senders.
- Any nodes can send data to all nodes that has a particular role
without any knowledge except a group address.
The drawbacks of "Host Group Model" are:
- Routers on multicast trees have to maintain states for each
multicast group to forward packets.
- Control messages have to be exchanged among routers on multicast
trees to establish, keep or tear down multicast paths.
- It is necessary to deploy a global multicast address space
administration mechanism. [MALLOC]
To avoid allocating a global multicast address, Perlman has proposed
Simple Multicast (SM) [SM]. SM identifies a group by using both C
(the core router address) and M (the multicast address). This
eliminates the need to have unique multicast addresses and coordinate
multicast addresses across the Internet. That means that every core
router in the Internet can assign the full 28 bits worth of multicast
addresses.
Recently, Source Specific Multicast (SSM) [SSM] is proposed. SSM
uses a similar technique as in SM. But instead of using core router
address, it identifies a group by the combination of source address
and destination multicast address. For IPv4, the address range of
232/8 has been assigned by IANA for SSM. That means that every
source can have 2^24 multicast groups. For IPv6, a source-specific
multicast address can be specified by setting both the prefix length
field and the prefix field to zero. Thus IPv6 allows for 2^32 SSM
addresses per scope for every source.
On the contrary, Explicit Multicast (xcast) mechanism is proposed
[SDBM][CLM][MDO6][SGM][DCM][ERM]. In this mechanism, instead of
using a multicast address, a receiver list is attached to each packet
and no additional control message is exchanged among routers.
Routers on multicast trees just forward packets to all downstream
routers for all receivers in receiver lists.
The advantages of xcast are:
- Routers on multicast trees basically do not need to maintain
states for each multicast group.
- Basically, no control message is exchanged among routers.
The drawbacks of xcast are:
- It is relatively heavy to forward xcast packets compared to
ordinary multicast packets. Xcast packets might go through slow
paths in high speed routers.
- Data area in each packet becomes slightly smaller, especially in
Vasaka, et al. [Page 3]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
the IPv6 case, since a receiver list is attached.
Sender Initiated Multicast (SIM) is a point-to-multipoint (p2mp)
multicast mechanism. The members of a receiver group are specified
by a sender, instead of receivers, similarly to xcast. A group is
identified by the combination of sender's unicast address in the
source address field and a multicast address in the destination
address field similar to SM ans SSM. Therefore, each source can
assign full 28 bits of group address. A sender always (in list mode)
or periodically (in preset mode) attaches a receiver list to packets
in order to specify the members of a receiver group. Each packet is
forwarded along unicast paths to each receiver and is duplicated at
the branching router. Routers on the paths maintain SIM Forwarding
Information Base (FIB) as specified by the flags in the receiver
list.
In this document, we describe SIM including its delivery models, SIM
FIB operations, the formats, and security considerations.
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.
2. Acronyms and Terminology
Acronyms and Abbreviations
mp2mp = Multi-Point to Multi-Point
p2mp = Point to Multi-Point
SIM = Sender Initiated Multicast
SIM FIB = SIM Forwarding Information Base
Terminology
SIM = Sender Initiated Multicast
SIM Basic Rules = SIM Delivery Models
SIM FIB = SIM forwarding information base
SIM Hello = SIM control message
SIM Host = SIM capable host
SIM Node = SIM capable node
SIM router = SIM capable router
SIM branching router = a SIM router that acts as a multicast
branching point
SIM Packet = packet that has SIM related headers
SIM related headers = IPPROTO_SIM in the IPv4
SIM Ridirect = SIM control message to make a SIM Tunnel
SIM Router = SIM capable router
SIM Tunnel = a tunnel between two SIM branching routers
list mode = SIM mode that the sender attaches the receiver list
Vasaka, et al. [Page 4]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
to all packets
preset mode = SIM mode that the sender periodically attaches the
receiver list to packets
3. Overview
SIM is a point-to-multipoint (p2mp) multicast mechanism for small
groups. SIM is designed to aim the following.
- Less cost in maintaining states information
- Simple and less-costly packet forwarding mechanism
- Simple to deploy and support existing applications on receiver
side
SIM is not intended to be replaced with the existing multicast
protocols, but it is more like a subset of other protocols. Contrary
to the traditional multicast model which supports many-to-many group
communications, SIM is designed to support mostly a one-to-many small
group communications like other xcast protocols. To avoid collision
of group addresses, a group is identified by the combination of
sender's unicast address in the source address field and a multicast
address in the destination address field. Multipoint-to-multipoint
(mp2mp) multicast can be achieved by combining multiple p2mp
multicast.
The members of a receiver group are explicitly specified by a sender,
instead of receivers. SIM has two modes, "list mode" and "preset
mode", according to how it maintains the forwarding table. In list
mode, the sender always attaches a receiver list to all packets, and
the forwarding table can be cached and discarded at any time.
Contrary, in preset mode, it only periodically attaches a receiver
list to packets and the forwarding table will be registerd for
forwarding following packets. List mode is designed for a short data
flow. On the other hand, preset mode is designed for a long data
flow. Swiching between these two modes can be done by changing a
"preset flag" in SIM header.
Each packet is forwarded along unicast paths to each receiver. When
a router receives a packet with a receiver list, the router groups
receivers by their next hop nodes. Then, the router duplicates the
packets, changes flags in the bit map field according to each next
hop node, and then sends the packets for each next hop node. Each
duplicated packet contains the same receiver list, while the router
forwards packets according to the flags in the bit map field. By
performing this procedure on the routers on unicast paths, a packet
with a receiver list can be delivered to all receivers in the
receiver list. Because a packet is duplicated only at branching
Vasaka, et al. [Page 5]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
routers, bandwidth can be used efficiently.
Routers on the paths register the next hop nodes for each multicast
group in SIM Forwarding Table (FIB) in the following form:
( src(UC), dst(MC), gen_count ) --> ( coming-from, next-hop-list )
In the case of "list mode", a receiver list is attached to all
packets in a flow. A SIM FIB entry can be registered as a cache to
decrease the number of lookups. Caches can be discarded any time,
for example, when memory is full. In the case of "preset mode", a
receiver list is periodically attached to packets in a flow. A
registered SIM FIB entry is used to forward following packets that do
not have receiver lists. Except packets with receiver lists, the
forwarding processing cost for SIM might be close to the cost for SM
and SSM. In both modes, a SIM FIB entry will be removed if a router
does not observe a corresponding receiver list for a certain period
of time (i.e. soft state).
If the procedure briefly described above was performed at every
router on paths, all routers on multicast trees had to maintain
states for each multicast group. To decrease the number of routers
that need to maintain states, following optimization mechanisms are
introduced. First, if the receiver list for a next hop node consists
of only one receiver, SIM header will be detached and the destination
address field of the packet forwarded to the next hop node is filled
with the receiver's address. The source address field is filled with
the sender's address. By this mechanisms, routers beyond last
branching point of a multicast tree do not have to maintain states
for the multicast group.
Second, if an AS has high speed backbone links, the ingress routers
of the AS may group the receivers in a receiver list by the egress
routers of the AS instead of next hop routers, and send duplicated
packets to each egress router by using a mechanism like tunneling
called "SIM Tunnel". By this mechanism, the core routers of the AS
do not need to maintain states for multicast groups nor to process
SIM packets. In other words, multicast trees are made simple by
allowing duplicated packets to be flow over the same high speed
links.
Third, only in the case of preset mode, branching routers exchange
redirect messages in order to skip non-branching router by using SIM
Tunnel. By this mechanism, only branching routers of a multicast
tree need to maintain states for the multicast group and to process
SIM packets. By combining all optimization mechanisms described in
this paragraph, both the number of routers that need to maintain
states and the average number of states in each router can be
Vasaka, et al. [Page 6]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
decreased.
In order to increase the number of existing unicast and multicast
applications that can be used as receivers of SIM mechanism, SIM has
the following features. First, the destination address field of a
SIM packet will be replaced with receiver's unicast address when the
packet reaches at each receiver. When this feature is used in list
mode, SIM routers act like xcast routers. Second, SIM related
headers can be stripped off from a SIM packet when the packet reaches
at each receiver. Third, any part of upper-layer protocols, such as
checksums and port numbers, can be substituted with specified data
for each receiver when the packet reaches at receivers.
4. Characteristics of SIM
We now discuss some characteristics of Sender Initiated Multicast.
(1) Only branching routers maintain states in preset mode
In the case of preset mode, only branching routers of a
multicast tree need to maintain states for the multicast group
and to process SIM packets. This is accomplished by redirect
message exchanges exchanged among SIM routers in order to skip
non-branching router by using SIM Tunnel.
(2) Conversion to Unicast Packet
SIM related headers of a SIM packet MUST be stripped off at the
last SIM branching router before the packet reaches the
destination host. The destination address field of a SIM packet
MUST be replaced with receiver's address when the packet reaches
at each receiver.
(3) Partial Substitution of Upper Layer Protocol
Any part of upper-layer protocols, such as checksums and port
numbers, MUST be substituted with specified data for each
receiver when the packet reaches at receivers. Substitution
rules are specified with the offset from the top of upper-layer
protocol, the length of substitution data and substitution data
for each receiver. Substitution data are stored in a SIM option
header in the order of a receiver list. Substitution data for
invalidated receivers in the bitmap MUST also be appeared.
The fields that will be substituted in the upper-layer protocol
MUST be zero.
5. Creating a multicast session
Now we describe the design of SIM and its basic operations in detail.
Vasaka, et al. [Page 7]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
5.1 Allocating a multicast address
SIM uses the two tuple of (sender unicast address, multicast address)
to identify a multicast session. Therefore, the multicast address
does not need to be unique. That means every senders can assign the
full 28 bits worth of multicast addresses. Each sender may assign
the multicast group address randomly. A multicast session will
contain of one sender and multiple receivers. For many-to-many
communication such as video conferencing can be acheived by creating
multiple multicast sessions.
5.2 Membership
Because each sender control the access seperately, senders need to
notify the receivers about the multicast session. That is, they have
to notify the sender unicast address and the multicast address. These
can be deployed through several possible membership management system
depening on the communication models.
For one-to-many group communication such as file distributing, the
sender itself can hold the membership management system. It may send
a Join-Inviation message to each receivers. And after receiving
Join-Acceptance message from receivers, it can begin sending
multicast data.
On the other hand, for many-to-many group communication such as video
conferencing, it is not convenient to maintain the same receiver list
on all nodes. It would be better to have only one node acts as a
group membership management server that will centrally maintain the
receiver list. This node may be one of a group member or the third
part node. Each member have to register to this membership
management server, and share the list before beginning the
conference. Multicast membership management can be implemented in
application layer.
6. SIM Forwarding Procedure
SIM forwards the packet as the following.
(1) The sender sends SIM packets to the nearest SIM router.
(2) The SIM router will find out the receiver list from packet header,
and look up unicast routing table to find out the next hop nodes
for each receiver.
(3) If the packet for all receiver in the list is going to be
forwarded to the same next hope node, and that node is also a SIM
router, the packet will be forwarded to the next SIM router
Vasaka, et al. [Page 8]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
without any modification.
(4) Else if the packet is going to be forwarded to multiple next hop
nodes, the packet will be duplicated. Flag in the bit map field
in SIM header will be rewritten according to the receivers.
- If there is only one receiver on the list, the packet header
will be rewritten as if it is a unicast packets.
- If the next hope router is not SIM-aware router, and it is
assumed that there is no SIM-aware router on the network path
to the receivers, the packet will be send separately to each
receiver. The source and destination field in packet header
will be rewritten as if they are unicast packets.
(5) The packets will be forwarded by using rules 2-4 as described
above until they reach all the receivers.
7. Delivery Models
Several delivery models are taken into account in SIM. Three intra-
AS models are described in 7.1, 7.2 and 7.3. Administrators may
choose any model for their networks. One inter-AS model and one
last-hop model are described in 7.4 and 7.5, respectively.
7.1 Island Model
- Assumptions
- SIM capable routers and hosts are placed only around and
behind slow links in order to save bandwidth. This model
may be widely chosen at the first stage of SIM deployment.
- Behaviors
- At first, before sending or forwarding a SIM packet with a
receiver list, a SIM capable node determines the "next hop
nodes" for each receiver in a receiver list by looking up
the unicast routing table.
- If a "next hop node" is SIM capable, the SIM capable node
sends or forwards the SIM packet to the "next hop node"
by using SIM Basic Rules.
- If a "next hop node" is not SIM capable, the packet is
duplicated and sent to each receiver by filling the
destination address field with each receiver's address.
7.2 Continent Model
- Assumptions
- In an AS or in user networks, all routers and hosts are SIM
capable. This model may be applied to campuses, LANs, small
ISPs, etc.
Vasaka, et al. [Page 9]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
- Behaviors
- The "next hop node" for each receiver is determined by
looking up in the unicast routing table at each router.
- All routers except egress routers forward SIM packets by
using SIM Basic Rules. All hosts send and receive SIM
packets by using SIM Basic Rules.
- Behaviors of egress routers SHOULD follow an inter-AS model.
- Notes
- SIM packets are forwarded along optimal paths and are
duplicated only at branching routers.
- All routers on multicast trees need to maintain states for
each multicast group and have to process all SIM packets
unless optimization mechanisms run.
7.3 Edge-Core Model
- Assumptions
- In an AS, ingress and egress routers are SIM capable but
core routers are not SIM capable. All SIM packets come in
through ingress routers. This model may be applied to large
ISPs, etc.
- Behaviors
- If a NOC is also a branching point in the topology of an AS,
a designated branching router for the NOC may be chosen to
save bandwidth.
- Procedure at ingress routers are:
1. Determine "next hop nodes" by looking egress routers up
for all receivers in a receiver list. If a designated
branching router exists on a path from the ingress router
to an egress router for a receiver, the receiver's "next
hop node" can be the designated branching router in order
to save bandwidth.
2. Duplicate the SIM packet for each "next hop node", and
modify flags in the bit map field according to the receiver
list for each packet.
3. If there is only one receiver for a "next hop node", send
the packet by filling its destination address field with
the receiver's address. Otherwise, if a next hop node is
a neighbor, send the packet by using SIM Basic Rules. If
a next hop node is not a neighbor, send the packet to the
"next hop node" by using SIM tunnel.
- Egress routers SHOULD follow an inter-AS model.
- Notes
- In this model, routing table entries of both ingress routers
and designated branching routers need to contain both egress
routers and next designated branching routers in addition to
next hop routers for each destination.
Vasaka, et al. [Page 10]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
- Core routers do not have to maintain states for each
multicast group nor to process SIM packets. However, there
is a possibility that packets are duplicated before real
branching points.
7.4 Inter-AS Model
- Assumptions
- An egress router of an AS is SIM capable and forwards
SIM packets to another ASes or user networks.
- Behaviors
- An egress router determines the "next hop node" for each
receiver of an SIM packet as an ingress router for the
downstream AS or user networks. An ingress router may have
a designated ingress router. In such case, the "next hop
node" is the designated ingress router.
- If the "next hop node" is SIM capable, the egress router
forwards the SIM packet by using SIM Basic Rules.
- If the "next hop node" is not SIM capable, the egress router
duplicates and sends to to each receiver by filling the
destination address with each receiver's address.
7.5 Last hop Model
- Assumptions
- A SIM capable node is sending or forwarding a SIM packet to
a receiver.
- Behaviors
- If the receiver is not SIM capable, the node removes SIM
related headers and sends the packet as an ordinary
multicast or unicast packet.
7.6 How to adapt SIM Basic Rules
To support all models described in this section, SIM forwarding rules
is defined as following:
1. In the case where a receiver list needs to be parsed, a SIM node
looks "next hop nodes" up according to its delivery model.
Otherwise, a SIM node looks "next hop nodes" up in SIM FIB.
2. The SIM node sends/forwards the SIM packet to each "next hop
node" by using the following rules:
1. If a "next hop node" is a neighboring SIM router,
the SIM node sends/forwards the SIM packet by using SIM
Basic Rules. (e.g. island model, continent model, inter-AS
Vasaka, et al. [Page 11]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
model)
2. If a "next hop node" is a non-neighboring SIM router,
the SIM node sends/forwards the SIM packet by using SIM
tunnel. (e.g. ingress routers of edge-core model)
3. Otherwise, the SIM node duplicates and sends to each
"next hop node" by filling the destination address with
each receiver's address. (e.g. inter-AS model, edge node)
8. SIM Forwarding Information Base (FIB)
Basically, many xcast protocols also attach the receiver list to each
packet, and forward the packets along the unicast paths. However,
because these protocols maintain forwarding state on per-receiver
basis at routers that can handle these protocols, the number of look-
ups on forwarding table is usually more than once. It is relatively
heavy to forward the packets compared to the ordinary IP multicast
mechanism. In contrast, this problem is alleviated with SIM. Each
group is identified by a two-tuple, the sender's unicast address and
a multicast address. When the router received a SIM packet, it will
use this two-tuple as a key to look up the SIM forwarding table or
SIM FIB. This technique will reduce the number of look-ups to once,
and gracefully cut off the overhead on forwarding packets.
A SIM FIB entry is recorded as following.
( src(UC), dst(MC), gen_count ) --> ( coming-from, next-hop-list )
"gen_count" is generation counter of SIM FIB.
"coming-from" are one of:
incoming-I/F
previous branching router (when SIM tunnel is used)
each "next hop" is associated with:
forwarding mode: direct-unicast / direct-multicast / sim-tunnel
- direct-unicast .... last hop addr + ptr to routing entry
- direct-multicast .. ptr to outgoing-I/F
- sim-tunnel ........ tunnel egress addr + ptr to routing entry
Coming-from field at right hand side is to detect changes of unicast
routing. If a packet comes from a different incoming-I/F or a
different previous branching router, the SIM FIB entry SHOULD be
discarded and a new SIM FIB entry SHOULD be created.
9. SIM FIB Operations
Vasaka, et al. [Page 12]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
SIM routers maintain SIM FIB entries for each multicast group as
specified by three flags in receiver lists. "Preset flag" specifies
the operation mode: list mode or preset mode. A receiver list is
attached to all packets of a flow in list mode, while a receiver list
is attached periodically in preset mode.
The other two flags are "Temporary flag" and "Delete flag".
"Temporary flag" is set when a flow consists of only a few packets,
or the members of a receiver list of a flow are temporary changed
only for a few packets. If "Temporary flag" is set for a SIM packet,
SIM routers MUST use the attached receiver list to forward the packet
even if a corresponding SIM FIB entry exists. SIM routers MUST NOT
create nor update a corresponding SIM FIB entry. If a corresponding
SIM FIB entry already exists for this flow, the entry SHOULD be kept.
"Delete flag" SHOULD be set for the last packet of a flow in order to
ask SIM routers to remove a corresponding SIM FIB entry. If a SIM
router receives such SIM packet, the SIM router SHOULD remove the
entry after SIM_FIB_AGING time. If "Temporary flag" is not set on
the packet and a SIM FIB entry exists for the flow, the router MAY
use the entry to forward the packet.
For some reasons, a sender may happen to have to change the members
of receivers of a flow. Since a multicast group is identified by the
combination of sender's address and multicast address in SIM, SIM has
generation count field in order to enable routers on a multicast tree
to detect member changes. When members are changed, generation count
MUST be incremented by random value. Initial value of generation
count SHOULD be random. A receiver list MUST NOT be changed for the
same combination of source address, destination address and
generation count for SIM_FIB_TIMEOUT time. A SIM FIB entry of old
generation count SHOULD be kept for SIM_FIB_AGING time.
If a SIM router does not receive a receiver list for a flow for
SIM_FIB_TIMEOUT time, the corresponding SIM FIB entry MUST be
removed.
The details of SIM FIB operations are described in this section.
9.1 SIM FIB Operation for List Mode
List mode is designed for relatively short flows. In this mode, a
receiver list is attached to all packets in a flow. "Preset flags"
are not set for any packets.
If the members of a receiver list of a flow are not fixed at all, or
if a flow consists of only a limited number of packets, "Temporary
flag" of SIM packets SHOULD be set. In this case, routers on paths
Vasaka, et al. [Page 13]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
MUST NOT create a SIM FIB entry as a cache.
If the members of receivers of a flow are almost constant and a flow
consists of numbers of packets, neither "Temporary flag" nor "Delete
flag" is set for packets with regular members, except the last packet
of the flow. Routers on the multicast tree MAY create a SIM FIB
entry as a cache to optimize forwarding processing. When the sender
sends a SIM packet temporary to different members, "Temporary flag"
MUST be set. When the sender sends the last packet of a flow,
"Delete flag" SHOULD be set.
9.2 SIM FIB Operation for Preset Mode
Preset mode is designed for relatively long flows, such as real time
traffic. In this mode, a receiver list is periodically attached to
packets in a flow. "Preset flags" are set for all packets.
When a sender sends initial SIM packets of a flow, a receiver list is
attached to the packet and neither "Temporary flag" nor "Delete flag"
is set. SIM routers on paths SHOULD create an SIM FIB entry for the
flow and forward the packet. This entry SHOULD be used to forward
following SIM packets whose number of receivers is zero. A sender
SHOULD periodically attach a receiver list to SIM packets in order to
refresh SIM FIB entries on SIM routers on the multicast tree. The
interval time of sending such packets is SIM_FIB_INTERVAL time. If
there is no appropriate packet to attach a receiver list at the time
just before the timer expiration, a SIM packet without upper-layer
protocol MAY be sent.
When a sender wants to change the members of a receiver list, the new
receiver list MUST be attached to a SIM packet and generation count
MUST be incremented by random value. A SIM router receives such
packet, the SIM router MUST create a new SIM FIB entry for the
multicast group of the new generation count. A SIM FIB entry of the
old generation count SHOULD be kept for SIM_FIB_AGING time.
A sender SHOULD set "Delete flag" for the last packet of a flow. SIM
routers on a multicast tree MUST remove the corresponding SIM FIB
entry after SIM_FIB_AGING time. If a SIM FIB entry exists for the
flow on a router, the router SHOULD use the entry to forward the
packet.
In preset mode, a multicast tree is simplified by removing all non-
branching routers from the tree by using following procedure: When a
sender sends a SIM packet, previous-hop field MUST be filled with
sender's address and skip count field MUST be set to zero. If a non-
branching router receives a SIM packet, the router MUST increment the
Vasaka, et al. [Page 14]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
skip count by one and forward to next hop router. A SIM FIB entry
for this flow SHOULD be created and kept for SIM_FIB_AGING time as a
fallback for losses of SIM Redirect messages. If a branching-router
receives a SIM packet and skip count is not zero, the router sends an
SIM Redirect message to the previous branching router. Before the
branching router forwards the packet, previous-hop field MUST be
filled with the address of branching router and skip count field MUST
be set to zero. When a branching router finds that a multicast tree
has been changed due to member changes, the router SHOULD send a SIM
packet with "Delete flag" to remove unused downstream branching
routers.
10. SIM Tunnel
In preset mode, SIM can automatically create a SIM Tunnel between a
two branching router in order to decrease the number of routers that
need to maintain states, i.e. SIM FIB. SIM Tunnel will be used to
skip non-branching router. This automatic SIM tunnel is one of the
significant features of SIM. It can be created by using Jump flag on
SIM header.
Whenever the packets forwarded to non-branching router, the jump flag
will be set. When the packets reach the next SIM branching router
and the Jump flag is set, that SIM router will send a "Redirect
Message" to the previous SIM branching router.
Because the source address of outer IP header will be changed only
when the packets forwarded from the SIM branching router, SIM router
can know the previous SIM branching router from this source address
of the packets. When the SIM router received the redirect message,
it will put the next SIM branching router to the destination address
field instead of the neighbor SIM non-branching router. And, this
will create a SIM Tunnel during two SIM branching routers. The non-
branching routers have no need to maintain the SIM FIB entries. This
mechanism accelerates the forwarding process, and also reduces the
number of FIB maintained on SIM routers.
11. SIM Routers
A SIM router advertises its state to neighboring SIM routers by
multicasting SIM Hello message to local links. The interval time of
sending SIM Hello message is defined as SIM_HELLO_INTERVAL time. The
destination multicast address of a SIM Hello message is the assigned
class D address for all SIM routers (not yet assigned). A SIM
capable host also listen to SIM Hello messages to recognize SIM
routers.
Vasaka, et al. [Page 15]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
In Edge-Core Model described in 7.3, edge SIM routers advertise their
states to each other by using interior gateway protocol or some other
protocols. If a branching router has a designated branching router,
the branching router advertises its designated branching router with
its state to edge SIM routers.
In Inter-AS Model described in 7.4, an ingress SIM router may
advertise its designated ingress router to the edge routers of
neighboring ASes by using exterior gateway protocol or some other
protocols.
All SIM routers maintain following states for neighboring SIM routers
or egress SIM routers in the same AS.
- RUNNING:
- This state means the SIM router is running perfectly.
- Any packet both in list mode and in preset mode can be
forwarded to this SIM router.
- FULL:
- This state means the SIM FIB table is full and no more SIM
FIB entry can be added for a while.
- Packets in list mode can be forwarded to this SIM router.
- Packets in preset mode cannot be forwarded to this SIM
router. So packets have to be duplicated for each receiver.
- DOWN:
- This state means the SIM router is down now.
- No packet can be forwarded to this SIM router. Packets have
to be duplicated for each receiver if possible.
12. Header Format
In the case of IPv4 packet, a SIM header (IPPROTO_SIM) is inserted
between the outer IPv4 header and the inner IPv4 header as in Figure
1. For the outer IPv4 header, the source address field is filled
with the sender adress or the previous SIM branching router (the
ingress router of SIM tunnel), and the destination address field
filled with the next hop SIM router or the egress router of SIM
tunnel. On the other hand, for the inner IPv4 header, the source
address field is filled with the original sender address, and the
destination field is filled with the group identification. When some
fields of the uppper-layer protocol such as port number and checksum
are different for each receivers, the SIM option header will be used.
SIM option header will come just after the SIM header. SIM routers
that act as the last branching point will use the information in SIM
option header to convert SIM packet to unicast packet, and send to
Vasaka, et al. [Page 16]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
each receiver as described above.
+----------+-------------+-------------------+----------+------------+
| Outer_IP | IPPROTO_SIM | SIM_OPTS (if any) | Inner_IP | Upper Layer|
+----------+-------------+-------------------+----------+------------+
Figure 1
In the case of IPv6 packet, SIM information is embedded in Routing
Header. Here, we do not use IP tunnel as in IPv4, because it will
cause a big packet overhead. Instead of specifying sender address
and IP multicast address in the inner IP header, we put them in SIM
header. While forwarding along SIM routers, the source address field
and the destination address field in IPv6 Header will be rewritten in
the same way as the outer IP header in IPv4.
+--------------+-------------+-------------------+--------------+
| IPv6 Header | IPPROTO_SIM | SIM_OPTS (if any) | Upper Layer |
+--------------+-------------+-------------------+--------------+
Figure 2
The details of SIM header for both IPv4 and IPv6 packets are
described in Appendix A.
13. Interoperability with Existing Protocols
In the case where SIM is used with RSVP and IPv4, the order of
headers is: IPv4, RSVP, SIM, upper-layer headers. RSVP identifies a
flow by source address and multicast address of a SIM packet. If
port numbers are not zero, i.e. not substituted, they are also used
to identify a flow. If a SIM related headers are stripped off, a
flow is identified with normal RSVP rules.
In the case where SIM is used with Diffserv in an AS, if DSCPs for
receivers of a SIM packet are the same, just use the DSCP in the AS.
Otherwise, there are two options:
Option A) chose the bast DSCP if "the best" can be defined.
Option B) duplicate the SIM packet for each DSCP.
To use SIM with Header Compression [RFC2507] mechanism, compression
method for SIM related headers has to be defined.
14. Security Considerations
14.1 SIM FIB Attacks
Vasaka, et al. [Page 17]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
It is possible for malicious nodes to send a SIM packet with a bad
receiver list in order to make confusion of SIM FIB management. It
is possible for malicious nodes to send a SIM packet with "Delete
flag" in order to schedule to remove a valid SIM FIB entry. Because
the malicious nodes may be able to receive packets or may be disturb
valid receivers to receive packets, some protection mechanisms need
to be deployed to protect valid SIM FIB entries from malicious nodes.
Strict update rules for SIM FIB entry might be a candidate. An
example of such rules is to prohibit updating a SIM FIB entry except
when routing change is detected. However, this rule might make
things worse because malicious nodes could send illegal SIM packets
with various generation counts before valid SIM packets are sent.
Another solution can be held in the same way that TCP generates the
initial sequence number, that is to generate the initial generation
counter randomly.
14.2 Using SIM as DoS attacks
As discussed in "Security Framework for Explicit Multicast" [SFEM]
some forms of DoS attackers can take advantage of the multicast
characteristics to increase their effects. Such an attack is the
smurf attack, which uses ICMP Echo request (ping) sending to a
multicast address with a source address that is the target of the
attack. The traditional multicast, which uses multicast address for
the destination address, deals with this problem by setting up a
router or a host not to reply ICMP requests with a multicast address.
In xcast model, the DoS effect is greatly diminished because of the
small number of members in a multicast group. However, the attacker
can use multiple multicast groups in order to create a DoS attack as
effectively as in the traditional multicast model. It will be more
difficult to deal with this problem, because the destination may not
recognize that it is the xcast traffic. One strategy they proposed in
"Security Framework for Explicit Multicast", is to use IPsec for
securing explicit multicast traffic. However, it only provides
confidentiality and/or authentication between sender and receivers.
It cannot restrict nodes that can forward packets to xcast routers.
Thus, it may not be a good solution to stop smurfing DoS attacks.
In the case of SIM, the same smurfing DoS attacks may be occurred.
The attacker may attack a host by using SIM packets to send ICMP Echo
request. However, similar to xcast protocols, SIM supports only small
group multicast, so we also can say that the smurfing DoS attacks may
not be effective. Even though, detection for this DoS attack will
probably be provided on SIM routers. Basically, at the last SIM
branching router, the source and destination fields of the packets
will be replaced with the sender unicast address and the receiver
Vasaka, et al. [Page 18]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
address. Therefore, a receiver cannot distinguish the receiving ICMP
Echo request, whether it was originally SIM packet or was traditional
unicast packet. However, the last SIM branching router should know
the answer. Thus, the detection of this type of DoS attack should be
deployed on the SIM routers. When the last branching SIM router
duplicates a packet for each receiver, it should check "Protocol"
field of IP header for IP version 4. This "Protocol" field indicates
the next level protocol type. And, as assigned in RFC1700, ICMP has
the protocol number "2". Thus, SIM router should not forward the
packet and should discard it, if it detects that protocol field is
"2". In this strategy, all SIM branching routers have to check all
of the SIM packets. Thus it may generate more overheads on SIM
router. Moreover, this strategy can only alleviate the effect of
smurfing DoS attack, the strategy to deal with other kinds of DoS
attack needs more considertion.
14.3 Using IPsec with SIM
In this section, we focus on the possibility to providing secure
multicast traffic by using IPsec with SIM. To use IPsec [RFC2401],
we have to consider two issues: key distributing and packet encoding.
First we discuss about key distributing issue. Normally in case of
unicast traffic, the destination side of Security Association (SA) is
in charge of choosing a Security Parameter Index (SPI) for each
connection. However, in traditional multicast model, there are
multiple destination nodes and probably are multiple sources per
multicast group. As discussing in "Security Architecture for the
Internet Protocol" [RFC 2401] and in "Secure IP Multicast: Problem
are as, Framework, and Building Blocks" [SMUG], some mechanisms are
required to select an unique SPI for each multicast group. They may
be a Group Controller (GC) and Key Controller (KC) to create key
parameters, such as an SPI for a multicast group. In the case of
SIM, the size of group is small, the receivers can set their own SA
and choose a SPI, and send it the sender. However, they can have a
special node that will act as the SA and KC, and distribute the key
to each receivers in the group.
For packet encoding, IPsec uses two protocols to provide traffic
security, Authentication Header (AH) [RFC2402] and Encapsulating
Security Payload (ESP) [RFC2406]. AH is is used to provide
connectionless integrity and data origin authentication for IP
datagrams, and to provide protection against replays. ESP is used to
provide confidentiality, data origin authentication, connectionless
integrity, an anti-replay service, and limited traffic flow
confidentiality. Each protocol supports two modes of use: transport
mode and tunnel mode. In transport mode the protocols provide
Vasaka, et al. [Page 19]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
protection primarily for upper layer protocols, while in tunnel mode,
the protocols are applied to whole tunneled IP packets. Moreover,
the primary difference between the authentication provided by ESP and
AH is that ESP does not protect any IP header fields unless those
fields are encapsulated by ESP in tunnel mode.
Now we discuss using AH and ESP respectively in both transport mode
and tunnel mode.
In transport mode, AH is applicable only to host implementations and
provides protection for upper layer protocols, and some selected IP
header fields. It is specified in RFC2402 that AH has to be inserted
after the IP header and before an upper layer protocol. If we apply
AH in transport mode to SIM, the packet header will be as following.
[Outer IP] [AH] [SIM Header] [Inner IP] [ Payload ]
In this way, SIM header will be covered by AH and cannot be modified
at each branching points. Therefore, SIM cannot be used with AH in
transport mode.
Contrary, in tunnel mode, AH protects the entire inner IP packet,
including the entire inner IP header. In this way, we still can
modify SIM packet header without giving bad effect to the original
AH. However, the receiver list in SIM header cannot be protected by
AH.
[Outer IP] [SIM Header] [AH] [Inner IP] [ Payload ]
Now we consider about applying SP to SIM. It is specified in RFC2406
that the ESP header is inserted after the IP header and before the
upper layer protocol header while in transport mode, or before an
encapsulated IP header in tunnel mode. If we applied ESP to SIM in
transport mode, ESP will be inserted to packet header as following.
[Outer IP] [ESP] [SIM Header] [Inner IP] [ Payload ]
In this way, SIM header will be encrypted, and SIM routers has to
decrypted it in order to access and modify the receiver list. Thus,
this ESP transport mode is infeasible.
Contrary, in tunnel mode, ESP will be located between SIM header and
inner IP header, therefore SIM routers still can access the receiver
list and modified it.
[OuterIP] [SIM Hdr] [ESP] [InnerIP] [Payload] [ESP Trailer][ESP Auth]
In concluding, SIM can be used with IPsec only in tunnel mode. That
Vasaka, et al. [Page 20]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
means we have to deploy AH or ESP, encrypt and decrypt the packets on
every SIM routers. These procecure will cause more overhead and
should not work well. Moreover, even we can use IPsec to provide
confidentiality, data origin authentication, connectionless
integrity, an anti-replay service, and limited traffic flow
confidentiality, we still cannot unrevealed the receiver list and the
bitmap field in the SIM header. Some attacks still can be done by
spoofing the receiver list and modify flags in the bit map field for
malicious use.
Acknowledgments
The authors would like to thank Takuya Mogami and Yoshikuni Taki for
their valuable technical discussions. And, also Prof. Youki
Kadobayashi for his encouragement and insightful remarks.
References
[CLM] D. Ooms, W. Livens, "Connectionless Multicast",
<draft-ooms-cl-multicast-02.txt>, Apr 2000
[DCM] L. Blazevic, J. Le Boudec,
"Distributed Core Multicast (DCM): a routing protocol for many
small groups with application to mobile IP telephony",
<draft-blazevic-dcm-mobility-01.txt>, Jun 2000
[DCM99] L. Blazevic, J. Le Boudec, "Distributed Core Multicast (DCM):
a multicast routing protocol for many groups with few receivers",
ACM CCR Vol.29, No.5, Oct 1999
[ERM] J. Bion, D. Farinacci, M. Shand, A. Tweedly,
"Explicit Route Multicast (ERM)", <draft-shand-erm-00.txt>,
Jun 2000
[EXPRESS99] H.W. Holbrook, D.R. Cheriton, "IP Multicast Channels:
EXPRESS Support for Large-Scale Single-Source Applications",
SIGCOMM'99
[MALLOC] D. Thaler, M. Handley, D. Estrin, "The Internet Multicast
Address Allocation Architecture", RFC2908, Sep 2000
[MDO6] Y. Imai, "Multiple Destination option on IPv6(MDO6)",
<draft-imai-mdo6-02.txt>, Sep 2000
[RFC1700] J. Postel, "Assigned Numbers J. Reynolds", Oct 1994
[RFC2401] S. Kent, R. Atkinson, "Security Architecture for the Internet
Protocol", Nov 1998
[RFC2402] S. Kent, R. Atkinson, "IP Authentication Header", Nov 1998
[RFC2406] S. Kent, R. Atkinson, "IP Encapsulating Security Payload
(ESP)", Nov 1998
[RFC2507] M. Degermark, B. Nordgren, S. Pink,
"IP Header Compression", RFC2507, Feb 1999
[SDBM] C. Graff, "IPv4 Option for Sender Directed Multi-Destination
Vasaka, et al. [Page 21]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
Delivery", RFC1770, Mar 1995
[SFEM] O. Paridaens, et. al., "Security Framework for Explicit
Multicast", <draft-paridaens-xcast-sec-framework-01.txt>,
Nov 2000
[SGM] R. Boivie, N. Feldman, "Small Group Multicast",
<draft-boivie-sgm-02.txt>, Feb 2001
[SM] R. Perlman, et. al., "Simple Multicast: A Design for Simple,
Low-Overhead Multicast", <draft-perlman-simple-multicast-03.txt>,
Oct 1999
[SMUG] T. Hardjono, et. al., "Secure IP Multicast: Problem areas,
Framework, and Building Blocks",
<draft-irtf-smug-framework-01.txt>, Sep 2000
[SSM] S. Bhattacharyya, et. al., An Overview of Source-Specific
Multicast (SSM) Deployment, <draft-ietf-ssm-overview-00.txt>,
May 2001
Authors Information
Vasaka Visoottiviseth
WIDE Project
c/o Graduate School of Information Science,
Nara Institute of Science and Technology (NAIST)
8916-5 Takayama, Ikoma, Nara 630-0101, Japan
E-mail: vasaka@wide.ad.jp
Yosuke Takahashi
WaterSprings.ORG / WIDE Project
1-6-11-501, Honjo, Sumida-ku, Tokyo, 130-0004, Japan
E-mail: t-yosuke@mtj.biglobe.ne.jp
Noritoshi Demizu
WaterSprings.ORG
1-6-11-501, Honjo, Sumida-ku, Tokyo, 130-0004, Japan
EMail: demizu@dd.iij4u.or.jp
Appendix A: Format
A-1. IPv4 receiver list
- IPv4 header:
- Destination address field = multicast address
- Protocol field = IPPROTO_SIM (to be assigned)
- DF bit = on
- IPPROTO_SIM:
Vasaka, et al. [Page 22]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|P|T|D|J|1| Res | gen_count | ndest | Bitmap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Bitmap //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol | Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Receiver's Addresses //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// (Options if any) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- flags
- P: Preset flag
0: list mode
1: preset mode
- T: Temporary flag
1: members are temporary
- D: Delete flag
1: schedule to delete the SIM FIB entry
- J: Jump flag
1: the packet has passed non-branching routers
- 1: One receiver flag
1: there is only one receiver in the list
- Res: (Reserved)
- gen_count:
In the case where the members of receiver list
has been changed for the same combination of
source address and destination multicast address,
gen_count MUST be incremented by random value.
Initial vlaue SHOULD be random.
- ndest
Number of receivers
- Bitmap:
Appears only when B-flag is on.
Valid receiver's bit is set to 1
Length: 4 * (1 + (n-1)/32)
- Protocol: (8bit)
Upper layer protocol number
- Length: (8bit)
Length of SIM header / 4
- Checksum: (16bit)
One's complement
- Multicast Address
The same multicast address with initial destination address
- Receiver's Addresses
List of receivers
- options
See A-3.
Vasaka, et al. [Page 23]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
A-2. IPv6 receiver list
- IPv6 header:
- Destination address field = multicast address
- Routing Header
- The difference between IPPROTO_SIM is that Protocol, Length
and Checksum fields are not in this header. Other fields
have the same meaning with IPPROTO_SIM.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | Type=SIM | Opt Data Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|P|T|D|J|1| Res | gen_count | ndest | Bitmap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Bitmap //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Receiver's Addresses //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Sender Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Previous hop (if P-flag is set set) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// (Options if any) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A-3. Options
- Partial Substitution Option:
- The fields that will be substituted in the upper-layer
protocol MUST be zero.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option type | Option length | Offset | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Data //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A-4. Control messages
- SIM Hello
Vasaka, et al. [Page 24]
Internet Draft draft-vasaka-xcast-sim-00.txt July 2001
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type | Status | (Padding) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast group ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Message Type:
Type of SIM control message
- SIM HELLO: 0
- SIM Redirect: 1
- Status:
Status of SIM router
- RUNNING: 0
- FULL: 1
- DOWN: 2
- SIM Redirect
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Message Type | ( Padding ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Multicast group ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next branching router IP address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Appendix B: Constants
SIM_FIB_INTERVAL: 10 seconds
SIM_FIB_AGING: 10 seconds
SIM_FIB_TIMEOUT: 60 seconds
SIM_HELLO_INTERVAL: 30 seconds
Vasaka, et al. [Page 25]