關鍵字: 軟體定義網路(SDN), 負載平衡, 循環演算法, 隨機演算法, Dijkstra最短路徑演算法 ;Software Defined Networking (SDN) is a concept that is used 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 that are responsible for forwarding the packets of communication flows. SDN users can composite application programs run on top of the controller to monitor and manage the whole network. Load balancing is an example of applications that can be achieved by using the SDN concept for balancing the loads of servers that are located and spread in wide area networks. In this thesis, we propose a load balancing algorithm that takes advantage of the extended Dijkstra’s shortest path algorithm considering both the edge weights and node weights to find the nearest server for a requesting client. We implement the proposed algorithm in Pyretic and simulate it under the Abilene topology with Mininet tools. We also compare the simulation results with those of the naive load balancing schemes, namely the round-robin algorithm and the randomized algorithm. As shown by the comparisons, the proposed algorithm outperforms the others in term of the network end-to-end latency, throughput and response time at the expense of a little heavier computation load and more memory usage of the SDN controller.
Keywords: Software Defined Networking (SDN), Load Balancing, Round Robin Algorithm, Randomized Algorithm, Dijkstra’s Shortest Path Algorithm