關鍵字: 軟體定義網路 (SDN)、 群播、廣度優先搜尋、Dijkstra最短路徑演算法 ;Software Defined Networking (SDN) is a concept to decouple the control plane and data plane of network devices. In SDN, a logically centralized controller configures the forwarding tables (also called flow tables) of switches, which are responsible for forwarding the packets of communication flows. In this way, SDN users can composite application programs run on top of the controller to monitor and manage the whole network. One of typical SDN applications is multicast. Multimedia data (e.g., video and audio data) have long been a major source in communication networks that consumes a lot of bandwidth. This thesis aims to design and implement multicast algorithms (or applications) to run on top of the controller to generate a multicast tree for a data publisher to deliver data packets to all subscribers so that every node and every host on the multicast tree will receive every packet once and at most once for reducing bandwidth consumption. We use Pyretic to implement three multicast algorithms over a SDN network, based on constructing the breadth-first search tree (BFST), the Dijkstra’s shortest path tree (DSPT), and the extended Dijkstra’s shortest path tree (EDSPT), respectively, and compare their performance under the Abilene Topology with the Mininet network simulator. As shown by the comparisons, the algorithm using EDSPT achieves the best performance in terms of throughput, jitter, and packet loss.