# Building Scalable and Secure Multicast Delivery Infrastructure in a Local Area Network
## 4 Core Based Multicast Tree
### Tree Maintenance  
On-going maintenance of the multicast-tree is one of the important aspects in a multicast communication. Nodes may join and leave the network anytime at their will. In our case, there are two types of nodes in the network:  
Figure 1: CBT-Join for switches that are one hop away from a core node. Figure 2: CBT-Join for switches that are more than one hop away from a core node. * _Network devices such as switches, routers, and servers:_ They are expected to be available in the network on a 24/7 basis. They leave the network only when they are down, during maintenance or during the decommissioning process. * _End-host_ who may join and leave the network any time. We do not use explicit _keep-alive_ messages to maintain the status of a switch. This is implicitly inferred through physical layer (port connectivity) or link-layer switching activity of a switch. Explicit keep-alive messages consume more bandwidth. We now discuss the case when a switch \(S\) wishes to leave the network. **Case 1: A Switch \(S\) Wishes to Leave the Network. **  
We again spill the case into two sub cases depending on whether \(S\) has children with respect to the CBT delivery tree or not. **Subcase 1.1:**: \(S\) is a leaf node with respect to the CBT delivery tree. In this case, whenever \(S\) leaves the network, no other switch will be affected. To leave the network, \(S\) initiates a _CBT-leave_ message, digitally signs it, and forwards it to the core \(C\) to which it is associated with. Signing the message digitally will ensure that no rouge switch or a host launch a DoS attack by initiating a _CBT-leave_ message to disrupt the normal operation of the CBT. The core \(C\) will in turn multicast _CBT-leave ACK_ containing \(S\)'s identity and digitally signed by the core's private key. The digital signature of the core will ensure that the message originates from \(C\), not from any rouge switch. Every switch in the CBT delivery tree receiving this information will remove \(S\) from its state or cache information. In the case of \(S1\), it will close the forwarding port to \(S\). Thus, in the future, no multicast data packet will be forwarded to \(S\) by \(S1\) through port \(P\). There is no need to refresh the ongoing session key as no switch will forward its multicast data packet to \(S\), including new session key. The above mechanism works well when \(S\) is a leaf node. However, if \(S\) has one or more children, they will lose the CBT connectivity whenever \(S\) leaves the network. Thus, we follow a different mechanism whenever \(S\) has one or more children. Whenever a host node wishes to leave the network, it will follow the same procedure outlined in Subcase 1.1. Since host nodes are leaves of the CBT, leaving the network will not affect the rest of the network. Whenever a switch leaves the network, all hosts connected to the switch are forcefully disconnected from the CBT. Since switches leave the network only in case of a power failure, hardware or a link failure or due to maintenance. In this case, the nodes connected to these switches also lose their network connectivity. In what follows, children means switches and routers (network hardware), but not end-hosts. **Subcase 1.2:**: \(S\) has one or more children (switches) with respect to the CBT delivery tree  
Before we deal with this case, we present some fundamental theory that will facilitate to handle this case. Let \(G\) be a connected graph. A vertex \(u\) in \(G\) is a _cut-vertex_, if the removal of \(u\) from \(G\) makes \(G\) a disconnected graph. Let \(G\) be the graph of the underlying topology of the network. If \(G\) is a 2-connected graph (the size of the minimum cut-vertex is 2), then there will be at least two vertex disjoint paths between any two vertices of \(G\). We now return to Subcase 1.2. Let \(S\) be the CBT-node that wishes to leave the network, and \(S\) has one or more children with respect to the delivery tree. Let \(C\) be the core node to which \(S\) is connected.