2016 Volume 24 Issue 2 Pages 395-406
We propose a multicast tree management method in an OpenFlow controller that handles both fast failure recovery and dynamic multicast group membership changes. Multicast communication is an efficient tool to distribute data to many hosts in various services such as live video streaming. To use multicast in such services, multicast communication must be reliable, which means multicast communication should be restored quickly after failures, and multicast tree management mechanism should support frequent group membership changes. A conventional approach, Point to Multipoint (P2MP) MPLS, only supports fast failure recovery for reliability, and is not very effective in terms of group membership changes. A new approach using OpenFlow supports dynamic group membership changes, but does not consider fast failure recovery in physical switches whose flow entry modification is slow. Our proposed method is to control multicast trees centrally, and it uses a precomputation and pre-installation approach for tree management. A controller calculates and keeps multiple trees that cover all switches where receivers are potentially connected and that have less common nodes and edges, and installs their sub-trees covering switches where receivers are actually connected. The controller calculates the difference per tree between sub-trees before and after membership changes, and reflects them into the network. At the time of failure, the controller checks and finds a pre-installed tree that is unaffected by the failure, and installs a new rule only to a root switch to send packets through the pre-installed alternate tree. Our experiments using switches and our prototype controller show that our proposed method can restore packet delivery quickly after a failure, as well as that our proposed method can handle tree modifications faster than a method of recalculating or reinstalling a tree every time that group memberships are changed.