The ML kept at source should be refreshed to keep it updated, which is the responsibility of
source. Once at every MEMBER-REFRESH-PERIOD, the source sets a POLL flag in the
next data packet. A multicast session member receiving this data packet will resend a unicast
JOIN message to the source to renew its membership. If after sending MAX-REFRESH-
TIMEOUT polling data packets, and there is still no JOIN messages received from particular
member, the source believes that these members are no more interested in being a member of
this multicast group.
The member itself is responsible for taking the decision about leaving the session. The
member which wants to leave the session sends a unicast LEAVE message to the source,
upon receiving this message, the source will remove this member from its ML and no further
data packets will be sent to this node.
3.3.1.2 Types and structure of packets
DDM uses two types of packets: control packets and multicast data packets. There are four
control messages JOIN, LEAVE, ACK, and RSYNC. The first three types of control
messages are used for members’ membership. The structure of these messages is: a field for
message type, field for the group ID, source and destination ID fields. The last two fields are
already in the unicast IP header for the packet. The RSYNC message is used to request
upstream node to synchronize the stored list on both nodes.
Multicast data packets contain a DDM header and a payload. The first consists of summary
section and DDM block, where the summary session contains flags fields, TTL field, and
sender address. The DDM block contains the intended receiver, the type of DDM block,
DDM sequence number and any other field required for some types. The DDM block types
are: Empty (E), Refresh (R) and Difference (D) blocks.
The E block does not need any more fields, where the other two blocks have a list. The R
block has a destination list to refresh, whilst the Difference (D) block is used to describe the
difference in the receiver list. This D block is either incremental Di or decrement Dd. Both
Di and Dd are included in the header when needed. Each type of D block has a list; Di has a
46