Abstract

Multiprotocol Label Switching (MPLS) is an Internet Engineering Task Force (IETF) framework that provides for the efficient designation, routing, forwarding, and switching of traffic flows through the network. MPLS is widely used for multicast traffic engineering. However, integrating MPLS with IP multicast communication is difficult. This thesis proposes solutions for two problems: label assignment and failure recovery. When a set of multicast flows (sessions) is deployed in an MPLS network, each multicast entry for the sessions consumes an MPLS label. However, MPLS labels are significant resources in MPLS networks, as the 20-bit field of the MPLS header limits the number of available labels. It is advantageous if different multicast sessions can share the same multicast tree in the network and re-use the MPLS label. In the first part of the thesis, we propose two algorithms to do this. The first one is called State Encoding (SE), in which a code is calculated for every tree built in an MPLS network. The second algorithm is called Tree Numbering (TN), where a number represents each tree. If the IP packets of different multicast sessions are delivered over the same tree, all those packets are then classified to the same Forwarding Equivalence Class (FEC) and only one label is used instead of using a number of labels equal to the number of those sessions. The second part of this thesis contributes to this area. To trade off between the large amount of bandwidth required for reserving backup paths in local recovery and the large recovery time taken in global recovery, a new tree division approach is proposed. In this approach, a multicast tree is divided into several domains, where each domain represents a local stand-alone sub-tree of the original one. Two MPLS-based methods are then proposed to set up the backup paths inside the domains. A comparison is made among the local recovery approach, the global recovery approach, a method that sets up the backup paths between the branching points, and the proposed approach. The comparison is based on three metrics: the total backup capacity, the maximum and the average notification times, and the average number of the notification messages that are produced as a result of a failure. In terms of the reserved capacity, the results have shown that our architecture consumes backup capacity close to that consumed by the global recovery