Current network architectures are ill-suit … Current network architectures are ill-suited to meet today’s enterprise and academic requirements. The problem lies in the complexity needed to control and manage the network. This complexity stems from the strong coupling between the control and data planes. A novel network paradigm, Software-Defined Networking (SDN), was proposed to alleviate this problem. The main idea is to decouple the control and data planes, allowing the network to be programmatically controlled. A key entity in SDN architectures is the controller. This logically centralized entity acts as a network operating system, providing applications with a uniform and centralized programming interface to the underlying network. In this Thesis we will develop an application that performs server load balancing in a Software-Defined Network. Today’s load balancers are high-priced devices that have limited customizability. Furthermore, they can only balance load between the servers, and are forced to use the path the network provides. In an SDN architecture, performing server load balancing does not require these expensive and inflexible devices. A low-cost load balancing solution can be designed, further enhanced with the ability to schedule load not only between servers, but also between paths. In addition, the centralized network control permitted in SDN allows the collection of updated link information to be used by the same logically centralized entity that makes forwarding decisions, which permits dynamic scheduling algorithms to decide on a best path for network traffic. We will show that such a solution outperforms ones which are oblivious to the path the traffic takes. e oblivious to the path the traffic takes.