## 3 System Design
### CCSM General Operation Flow  
The general operation flow of CCSM is mainly composed by three parts: registration, member join/leave and multicast tree generation procedures. The registration procedure consists of multicast member (multicast source and receiver) registration and de-registration, which performs the multicast service subscription, and assigns a specific authentication code for message authentication, and performs the multicast member access control for security guarantee. The member join/leave procedure performs the join and leave operations which triggers the MMC to perform the multicast delivery tree reconstruction procedure. While the multicast tree generation procedure is responsible for multicast tree construction and maintenance for dynamic changes of multicast members. Besides, CCSM also contains the multicast service discovery procedure to assign the mapping relationship between multicast groups and MMC for large scale development. The detailed operation flow of CCSM is shown in Figure 3, in which multicast receiver is as an example to illustrate multicast member join/leave procedure.  
* Multicast service discovery: MMC notifies its multicast service scope, and ASR stores this relation between MMC and its serving MSI scope. In this way, every multicast member will acquire the MMC information for a given MSI.
* Multicast member registration: Multicast member sends source/receiver registration message to MMC to subscribe MSIs. MMC will create the subscription relation between members' AIDs and their subscribed MSIs. At the same time, MMC will assign authentication codes for members.
* Multicast member join: Multicast member (source and receiver) sends join message to ASR and ASR forwards this join message to update the multicast membership in MMC to update the multicast delivery tree and related multicast routing in ASR/CR.
* Multicast data transmission: Once the multicast routing complete the update, the multicast receiver will get the multicast data, and the multicast source will send the multicast data.
* Update and maintenance: During the multicast service procedure, the multicast membership will be dynamic and therefore the multicast routing has to update in time to avoid the packet loss.  
The multicast routing update procedure is maintained by MMC based on the up-to-date multicast membership. The multicast routing state update periodically, and at the same time the changes of subscription membership will also trigger the multicast routing update.
* Multicast member leave: Once a multicast member wants to leave certain multicast group, it will send a leave message to MMC, and MMC will perform the multicast routing update procedure to prune the multicast delivery tree. As for a multicast source leave the group, the multicast delivery tree will be suppressed if there are no other sources in that group.
* Multicast member de-registration: Once a multicast member wants to un-subscribe a multicast service, it will send a de-registration message to MMC, and MMC will update the related multicast membership and multicast routing. In this case, the de-registration indicates that the multicast member leaves the group forever.
* Proxy mechanism: This proxy mechanism is similar to IGMP/MLD proxying [66] which can set the proxy node by configuring the upstream interface and downstream interfaces, and maintains a static forwarding structure for multicast members. Notice that, generally there is not routing in access network of UIN for that the AID is used for identifying the host.  
Figure 3: The operation flow of CCSM.