Survey of Promising Technologies for 5G Networks <s> Network Controller or Network Operating System (NOS). <s> In this paper we present OpenTM, a traffic matrix estimation system for OpenFlow networks. OpenTM uses built-in features provided in OpenFlow switches to directly and accurately measure the traffic matrix with a low overhead. Additionally, OpenTM uses the routing information learned from the OpenFlow controller to intelligently choose the switches from which to obtain flow statistics, thus reducing the load on switching elements. We explore several algorithms for choosing which switches to query, and demonstrate that there is a trade-off between accuracy of measurements, and the worst case maximum load on individual switches, i.e., the perfect load balancing scheme sometimes results in the worst estimate, and the best estimation can lead to worst case load distribution among switches. We show that a non-uniform distribution querying strategy that tends to query switches closer to the destination with a higher probability has a better performance compared to the uniform schemes. Our test-bed experiments show that for a stationary traffic matrix OpenTM normally converges within ten queries which is considerably faster than existing traffic matrix estimation techniques for traditional IP networks. <s> BIB001 </s> Survey of Promising Technologies for 5G Networks <s> Network Controller or Network Operating System (NOS). <s> Software Defined Networking (SDN) is an exciting technology that enables innovation in how we design and manage networks. Although this technology seems to have appeared suddenly, SDN is part of a long history of efforts to make computer networks more programmable. In this paper, we trace the intellectual history of programmable networks, including active networks, early efforts to separate the control and data plane, and more recent work on OpenFlow and network operating systems. We highlight key concepts, as well as the technology pushes and application pulls that spurred each innovation. Along the way, we debunk common myths and misconceptions about the technologies and clarify the relationship between SDN and related technologies such as network virtualization. <s> BIB002
The network controller, SDN controller or NOS, is the heart of SDN architecture. It lies between network devices and applications. It is based on operating systems in computing. In BIB002 , the controller is described as software abstraction that controls all functionalities of any networking system. It maintains control over the network through three interfaces, namely, southbound interface (e.g., OpenFlow), northbound interface (e.g., API), and east/westbound interfaces. The southbound interface abstracts the functionalities of programmable switches and connects them to the controller. The northbound interface  allows high-level policies or network applications to be deployed easily and transmits them to the NOS, while the east/westbound interfaces maintain communications between groups of SDN controllers. [36] , and so on. The functionalities of an SDN controller can be classified into four categories: (i) a high-level language for SDN applications to define their network operation policies; (ii) a rule update process to install rules generated from those policies; (iii) a network status collection process to gather network infrastructure information; and (iv) a network status synchronization process to build a global network view using the network statuses collected by each individual controller. (1) One of the fundamental functions of the SDN controller is to translate application specifications into packet-forwarding rules. This function advances a protocol to address communication between its application layer and control layer. Therefore, it is imperative to realize some high-level languages (e.g., C++, Java, and Python) for the development of applications between the interface and the controllers. (2) An SDN controller is accountable for generating packet-forwarding rules as well as describing the policies perfectly and installing the rules into relevant devices. Meanwhile, the forwarding rules should be updated with policy changes. Furthermore, the controller should maintain consistency for packet-forwarding by using either the original rule set/updated rule set or by using the updated rules after the update process is completed. (3) SDN controllers accumulate network status to provide a global view of the entire network to the application layer. The network status includes duration time, packet number, data size, and flow bandwidth. A helpful and commonly employed method for network statistics data collection is Traffic Matrix I BIB001 . TM controls the volume of all traffic data that passes through all sources and destinations in any network. (4) Unauthorized control of the centralized controller can degrade controller performance. Generally, this can be overcome by maintaining a consistent global view of all controllers. Moreover, SDN applications play a significant part in ensuring application simplicity and guaranteeing network consistency.