# SDN-OpenFlow Topology Discovery: An Overview of Performance Issues
## 1 Introduction  
Software-defined networking (SDN) architecture is a promising solution to overcomes the limitations of traditional network architecture in terms of control, scalability, and management [1, 2]. The basic idea of SDN is to separate the control plane from the data plane [3], where the control logic is extracted from network hardware and is centralized into an independent control plane. However, the process of separating the control plane from the data plane is not new, but it has limited to some applications such as NETCONE, SANE, and Ethane [4, 5]. However, recently, this method of managing networks of various kinds has been introduced. The control plane can physically include a stand-alone SDN-Controller or multiple SDN-Controllers that collaborate among themselves and then act as a central SDN-Controller [6]. However, the standard process for separating SDN levels is illustrated in Figure 1.  
Based on the open networking foundation (ONF) reference model for SDN architecture [7], the SDN infrastructure layer (data plane) includes the forwarding devices that forward packets based on a set of streaming rules configured by the control layer (SDN-Controller) [8]. The SDN-Controller also acts as a proxy between the infrastructure layer and the application layer. It translates high-level instructions at the application layer into low-level rules and then forwards them to the SDN-Switches at the infrastructure layer [9]. In the application layer, the network applications used such as adaptive routing, networkmanagement, traffic monitoring [10; 11], intrusion detection system, and intrusion prevention system [12]. Moreover, the same figure shows that these SDN layers communicate among themselves using two interfaces; southbound interface (SI) and northbound interface (NI). NI is needed to support and optimize a variety of networking applications, and it is used at the application layer to query the state of the infrastructure layer through the control layer. Examples such as the network topology, flow statistics, link bandwidth, and other information about the state of the network are queried. Furthermore, the application layer also uses it to control the infrastructure layer to implement high-level policies such as new configurations, respond to topology changes, or traffic requirements [13; 14; 15; 16; 17; 18]. SDN-Controllers such as OpenDaylight [19], Floodlight [20], NOX [21], Ryu [22], Onix [23], and Beacon [24] are defined by their specific northbound application programming interfaces (APIs). On the other hand, SI acts as a link between the SDN-Controller and SDN infrastructure layer to establish settings and manage the SDN-Switches. Also, there is no standard southbound interface and there are different protocols that are used for this proposal such as ForCES [25], POF [26], OpFlex, OpenState, and OpenFlow [27]. However, OpenFlow is the most widely used protocol [28; 29]. OpenFlow [28] defines a physical channel as a dedicated TCP link between SDN-Controllers (control layer) and SDN-Switches that serves as an interface for exchanging control messages using the OpenFlow protocol and also using an optional encryption mechanism called Transport Layer Security (TLS) [17; 18; 30; 31]. Additionally, the most important role of the SDN-Controller is to maintain a consistent network topology for the infrastructure layer. The network topology maintained by the SDN-Controllers are entirely dependent on OpenFlow Discovery Protocol (OFDP) [32]. Therefore, any falsification or expiration in the data of network topology inside the SDN-Controller will directly affect the SDN-dependent services and applications [33; 34; 35]. As a result, the topology discovery service in the SDN-Controller is one of the most important. [PERSON] et al., in [36], define the network topology as a description of the physical communication relationships between network devices in networks (how SDN-Switches communicate with each other) and how the hosts communicate with them.