Software-Defined Networking (SDN) is a promising network architecture that proposes the decoupling of data and control planes. It uses a logically centralized controller powered by a global view to orchestrate the network, enabling innovation by shifting the task of network administration to network programming. Many SDN applications are designed to work autonomously without intervention, and thus they need to monitor the state of the network in order to take appropriate actions, and improve their future decisions. Furthermore, in the case of physically distributed SDN controllers, applications also need to exchange their views in order to build a global network view. This great shift in how networks are perceived gave birth to many new network applications design challenges.
In this dissertation, we identify some of these challenges and study how they could affect the performance and security of SDN applications. In particular, we focus on the problem of inconsistent network view at the controllers and its impact on the network applications. We identify two key factors that can contribute to the inconsistent network view at the controllers: (1) network state collection; and (2) controllers' state distribution. We investigate different manifestations of the impact of network state collection and distribution on network applications performance and security. Moreover, we show that different network applications have different consistency requirements, and hence we introduce adaptive distributed SDN controllers as a solution to the controllers' state distribution. Adaptive controllers can tune their own consistency level in real-time in order to provide network applications with the required performance level.
Finally, recent SDN modeling frameworks do not consider the applications' logic into the models. Hence, we also focus on the problem of incorporating application logic into SDN models. We solve this by leveraging the impact which network applications assert on the network to learn about the behavior of such applications. Based on that, we propose a network modeling framework that models network applications as a set of transformations in a Vector Space.