Mohammadreza Ashouri

Shirin Setayesh

Enhancing the Performance and Stability of SDN Architecture with a Fat-Tree Based Algorithm

Keywords: SDN, Floodlight, Load Balancing, Fat Tree, Centralized Controller

Due to the development of networks, SDN, which stands for Software-defined networking, was introduced to resolve the demands of the community. The focus of SDN is reasonably on the control panel, and other devices only transmit data. Nevertheless, due to the division of the data and control layer, there exist still some problems, such as the rise in the load on the central controller and the failure of the network. As a consequent, two general steps have emerged in order to reduce the load on the controller. The first step is obtaining the shortest path through Dijkstra algorithm which is similar for all controllers, but the second step is variable in each load reducing approach. Accordingly, In this research, we came up with an innovative solution based on a central controller among several distributed controllers, and an OpenFlow switch which operates as an intermediate controller. Further, we adopt a FloodLight controller, a Fat Tree topology with 64 hosts, 8 switches, and a central controller. The major contrast between our topology and other Fat Tree topologies is in the combination of intermediate switches to hosts. As a result, the outcomes taken in this work indicate that the processing time of each stream is reduced to 0.1 milliseconds. Moreover, Our solution diminishes the broken flows as well as their differentiation. Furthermore, due to the usage of alternative routes and lessening the time required to process each load, the overall load on the controller is decreased and the network does not crash.

Background

The evolution of mobile sidelong devices and equipment, has led to a revision of the overall architecture of the networks. The architecture of many traditional networks is a path that is formed by using nodes of the Ethernet switches in tree structure. In order to meet the current needs, the network market defined by software or SDN has been raised. A software-based network is a new approach to the network industry that separates data sending hardware from control decision layer. [START_REF]Configuration and Management Protocol OFCONFIG1.0[END_REF][START_REF] Valdivieso Caraguay | Evolution and Challenges of Software Defined Networking[END_REF][START_REF] Govindarajan | Realizing the Quality of Service (QoS) in Software-Defined Networking (SDN) based Cloud infrastructure[END_REF] 1.1 SDN Structure In a software-based network, network intelligence is logically focused on software controllers (control part) and the devices on the network are merely converted to data sending elements. In fact, software-based networks consist of two units of control center and data center. The OPENFLOW protocol standardizes the way information is exchanged between two parts. The OPENFLOW switch contains one or more flow tables that contain flow values, each of which specifies how packets belonging to a stream should be processed and sent. [START_REF] Mendonca | A survey of softwaredefined networking : past , present and future of programmable networks[END_REF][START_REF] Chao | Load balancing for multiple traffic matrices using SDN hybrid routing[END_REF] Using SDN, the configuration and management of devices at a low level is possible by the central software controller. The basis of the work of the softwarebased network architecture is the separation of control and data layers from each other. [START_REF] Sharma | Enhancing network management frameworks with SDN-like control[END_REF] Data layer: In this layer, hardware and software such as switches, routers and firewalls are located and act like a traditional network. Connections between these elements have been made through common methods such as fiber or copper cables, each of them has its own function. In this layer, due to the variety of brands of elements, a complex network will be created that requires proper configuration. [START_REF] Singh | A survey on Software Defined Networking: Architecture for next generation network[END_REF] Control layer: In control layer which holds all the controllers is, in fact, the heart of SDN. The controller is similar to a network operating system that controls hardware and facilitates the automatic management of the network. Also, this operating system provides the monitoring and the controlling of the network. Consequently, a controller does not function as a network manager alone. Thus, it works as a programmable interface which allows network management for user software. Controller layer consists of software and services that receive commands from a layer above their own, namely the APPLICATION layer.

Application layer is also used by users. Normally, the relationship between the controller and the application layer is arranged via APIs. Consequently, via this structure, network policies can be implemented in controller layer and configure [START_REF] Xia | A survey on software-defined networking[END_REF]. The structure of SDN layers is shown in Fig 1.

SDN Main Features

Centralized control and coordination: In fact, the central controller is considered as the heart of SDN, and it reduces the network overhead compared to traditional distributed mechanisms. SDN also simplifies the devices and machines used to the network, since it will no longer need to identify and process thousands of protocol standards, and receives commands only from the central controller. In many SDN networks, the controller layer is divided into several categories, in which there are several distributed controllers along with a central controller. The central controller controls, the other distributed controllers [START_REF] Masoudi | Software defined networks: A survey[END_REF]. Programmability: This feature is optimized for the both of software and hardware levels. The first condition for establishing an SDN network is to design network programming capability which uses an open-source standard which can reduce the management costs in networks that use hardware from various manufacturers. OpenFlow and some exclusive standards similar CISCO onePK, have been produced with this aim. The network infrastructure must be able to program the communication layer via using these standards and support these standards for active and passive flow planning [START_REF] Singh | A survey on Software Defined Networking: Architecture for next generation network[END_REF]. Dynamic Performance at the Moment: Due to the increasing use of dynamic and virtual environments in data-centers, information traffic is increasingly unpredictable. Therefore, manual control of these systems is practically impossible. These systems suffer from weaknesses in meeting the dynamic needs of the network. SDN has developed a new architecture for these dynamic systems that can enforce network changes at the moment. The network infrastructure should be able to quickly detect any inconsistency in the path, and can quickly select the alternate route when the error occurs and quickly fix the faulty path and restart it [START_REF] Masoudi | Software defined networks: A survey[END_REF]. Smart Routing Determination: Routing determination is one of the most important factors for network traffic engineering. Using SDN, the correct path is quickly detected and traffic is passed through the most efficient route. By using this architecture, it is possible to use a new routing algorithms and switches in the network instantly [START_REF] Jaiyong | Efficient routing for traffic offloading in software-defined network[END_REF][START_REF] Rexford | Design and Implementation of a routing control platform[END_REF][START_REF] Khetrapal | Demystifying routing services in softwaredefined networking[END_REF].

Load Balancing Methods

In general, there are two common steps to avoid blockage in SDN architecture. These two steps include constant monitoring of the network in order to acknowledge the state of the devices in the network as well as the implementation of relevant policies to prevent blockage in the network [START_REF] Kamisiski | Two Rerouting-Based Congestion Control Algorithms for Centrally Managed Flow-Oriented Networks[END_REF].

In order to get the network status, the controller requests the load of the switches at specified intervals. After receiving the request, the switches send traffic from each port to the controller. Then, the controller subtracts the received amount from the previous value and divides it to the specified time period during which requests are sent periodically, so that the traffic rate of each link is determined. Consequently, if the efficiency of one of the ports is greater than the threshold, it is necessary to apply the relevant policies to prevent blockage. The meaning of the specified threshold is that the functionality and efficiency of the switches begin to decrease when their traffic rate becomes higher than the threshold, and the overall network efficiency decreases and the network latency increases [START_REF] Celenlioglu | Design, implementation and evaluation of SDN-based resource management model[END_REF].

Load balancing methods can be divided into several categories, which we will briefly describe below.

The first method to prevent network blockage is to improve its topology. Initially, the controller finds the best route using the Dijkstra routing algorithm, then it begins to send data between source and destination. During this time, the network status is evaluated regularly. Promptly when the efficiency of a switch has reached the threshold, the blockage may occur in the network. Hence, essentially this method is based on finding a new path between the source and destination by removing the overloaded switch from the topology and send the new network topology to the routing algorithm. Then all the switches will be updated, and the current path will be replaced with the previous path. However, the problem with this algorithm is that the path of the alternate route is not already measured with the new flow, and this constitutes an unstable state in the network, also it is possible that the route, replaces the path with the void capacity, which is not an optimal route [START_REF] Li | A survey on OpenFlow-based Software Defined Networks: Security challenges and countermeasures[END_REF]. Clearly, in this way, also there is an overhead problem due to the periodical inspection of the network.

Using Group Table is another method of reducing congestion. OPENFLOW switches have flow tables in their memory in order to direct packets in the network. The flow tables contains several entries, that each of these entries containing 1-the columns of matching fields that are the criteria for identifying the flow, 2-counters that count the number of packages or bytes that match the corresponding row, and 3-the commands that specify how to handle the flow (deletion, redirect to a specific port, or redirect to another table).

The Group Table has been developed in OpenFlow switches in order to extend the available options and methods to direct network packets. Using the group table, a group of different conductive functions can be stored for a row in the flow table, which varies how to select the function to direct the package depending on the type of group table. One of the most important types of table groups is called Fast Failover. In this type of group table, there are several different options for managing the packets, each of them is known as an Action Bucket and stored in the group table. The feature of this type of table is that at any time, only one of these Action Buckets is active,and it will be directed by the instruction of the packet bucket. If the first action bucket was no longer active, the switch will locate the next action bucket as the main row, locally and without involving the controller, and behave according to its instructions.

In this approach, similar to the previous one, there is still an overhead problem due to the cyclic evaluation of the network status. Also, this method is not effective because of the high orders and the lack of prioritization. Moreover, if a packet is sent on a route, it is impossible to redirect the packet again, which can cause network interruption [START_REF] Lin | Fast failover and switchover for link failures and congestion in software defined networks[END_REF].

Another method to reduce blockage in the network is to divide the load between the switches in such a way that the load is distributed between all switches in the network and involve them. In fact, this method is a combination of all the above methods. However, the foremost problem with this method is that the engagement of the entire network, which makes dysfunction in the network [START_REF] Jarraya | A Survey and a Layered Taxonomy of Software-Defined Networking[END_REF].

Load Balancing

Since the central controller is the hearth of SDN architecture, the presence of a load balancer for the central controller is so decisive [START_REF] Backhaul | QoS, and channel-aware load balancing optimization in SDN-based LTE networks[END_REF]. The load balancing in SDN architecture can be split into two categories: static and dynamic load balancing [START_REF] Raghul | Literature survey on traffic-based server load balancing using SDN and open flow[END_REF].

In the static load balancing, paths between switched are already allocated before sending of packets, and the paths cannot be changed during data transferring. On the other hand, in dynamic load balancing, the paths can be changed instantaneously based on the network observation due to the load balance of the network. In fact, load balancing is a model for distributing the load between several networks or the components of a network, such as switches, links, storage devices processing units and users so that to obtain the maximum throughput in the shortest possible time and resource efficiency [START_REF] Zhang | Load Balancing for Multiple Traffic Matrices Using SDN Hybrid Routing[END_REF].

Current load balancing algorithms, capture the input of network requests from a gate, and this can be the starting point for reducing the efficiency of these algorithms, while if the load balances are applied to different parts of the network, the algorithms efficiency reach to their maximum [START_REF] Chen-Xiao | Research on Load Balance Method in SDN[END_REF].

In the distributed load balancing, for resolving the unbalanced load issue among distributed controllers is to deploy a super controller, which is responsible for balancing the load of all controllers. This measure is taken by Balance Flow. Typically the centralized decision controller node collects the load information of other controllers, then it decides whether a load balancing action should be started or not. This is a decent method to check the load change of all controllers from a global view. However, this algorithm has own two constraints [START_REF]Configuration and Management Protocol OFCONFIG1.0[END_REF][START_REF] Valdivieso Caraguay | Evolution and Challenges of Software Defined Networking[END_REF][START_REF] Govindarajan | Realizing the Quality of Service (QoS) in Software-Defined Networking (SDN) based Cloud infrastructure[END_REF]. The performance of a centralized node is restricted by memory, CPU power, and network bandwidth. Furthermore, the centralized node accumulates load information periodically and exchanges many messages constantly with the other controllers. Therefore, the performance of the whole system is significantly reduced. Moreover, if the central node fails, the whole load balancing management will be taken down, and this is against the availability among distributed SDN controllers [START_REF] Mendonca | A survey of softwaredefined networking : past , present and future of programmable networks[END_REF][START_REF] Chao | Load balancing for multiple traffic matrices using SDN hybrid routing[END_REF].

Each load balancing action requires two network transmissions: first for getting load information and the next is for sending commands. Accordingly, the aggregated load information may be past due and the command is slowdown behind the real load condition [START_REF] Zhou | A Load Balancing Strategy for SDN Controller based on Distributed Decision[END_REF]. As Fig 2 shows, the algorithm based on distributed decision allows every SDN controller to collect other controllers load and make its own decision locality. In other words, every distributed controller acts as not an only ordinary controller but also a super controller. By this way, we will get two benefits. [START_REF]Configuration and Management Protocol OFCONFIG1.0[END_REF][START_REF] Valdivieso Caraguay | Evolution and Challenges of Software Defined Networking[END_REF][START_REF] Govindarajan | Realizing the Quality of Service (QoS) in Software-Defined Networking (SDN) based Cloud infrastructure[END_REF] This algorithm is totally based on distributed architecture, which guarantees the scalability and availability of distributed SDN controllers. [START_REF] Valdivieso Caraguay | Evolution and Challenges of Software Defined Networking[END_REF] This algorithm just needs one network transmission for gathering load information and does not demand to push command to other controllers. As a result, the decision delay will be reduced in this case.

In addition, in order to prevent all controllers, to collect the load information and transmit a large number of messages in the network, we utilize a dynamic and adaptive threshold to solve this issue.

It is necessary to consider that load balancing challenge in distributed SDN controllers is a fundamental concern in the academic community [START_REF] Liang | Scalable and crash-tolerant load balancing based on switch migration for multiple open flow controllers[END_REF].

Related Works

Vahid Sattari Naini et al in 2015, implemented their proposed dynamic load balance algorithm in the form of modules in the OPENDAYLIGHT controller. Then, using the FAT TREE topology in the MiniNet simulator, they created, tested, and evaluated the relationship between the nodes in the network. The above topology consists of two switches at the CORE level of the four switches at the AGGRESSION level and also four switches at the TOP OF ROCK level, which is connected to each of switches at the TOR level of the two end nodes. The links between switches are also considered in three levels and with different characteristics. The results of behavioral and statistical analysis of the network have shown that simultaneously with the increase of traffic between links and acquisitions, the controller selects the dynamically least traffic path for data transmission, thus, the network and links that are existing in A, always remains in the balanced mode. Of course, it should be noted that the proposed algorithm in this research, considers the priority of traffic flows as the same and does not perform routing, based on the priority of flows [START_REF] Ghasempour | Dynamic load balance in software-based network[END_REF].

Mohammad Reza Mullah Khalili Meybodi et al in 2016, implemented their own proposed by the internal programming of the SDN network controller. They believe that due to the increase in the data entry rate of a link, a network failure to routing, happens relevant to the incline rate of congestion, which in general leads to packet loss, delays, and the inability to send complete and correct data. And ultimately reduce network performance. The controller which is used in this research, is the RYU open source controller that is simulated in the MININET environment and the results of the performed experiments have been obtained using the IPERF traffic creation tool. The results indicate that the amount of operational power and the average delay in the data center, are shown by the percentage of load on the network and the packet size of the packets. The controller acts according to the specified instructions, and with decreasing of the average delay and less reduction of the operational capacity of the system, the less packets are destroyed and the system efficiency increases [START_REF] Mullahkhalili Meybodi | A method for improving congestion control in a data center network based on software-based networks[END_REF].

Yuanhao Zhou et al implement the distributed SDN controller based on Floodlight. First, they use Cbench to test their distributed SDN controllers based on Floodlight then they use two controller instances to deploy a distributed SDN network. Its hard for them to emulate the change of packet-in arrival rate, so they use different numbers of switches to emulate the load. Each switch sends packet-in message continuously. Controller A connects 8 switches and controller B connects 11 switches in this paper; they put forward a load balancing strategy named DALB for SDN controller based on distributed decision. During the time between 0s and 60s, the load of controller A and B is smaller than CT. At the time of 70s, they run their program to modify the CT value in Cassandra to 1000. Then the load balancing module will detect the load of controller B exceeds the threshold CT and will run DALB algorithm. So a switch needs to be migrated to controller A. At last, the load will be balanced in the whole system. Meanwhile, the Adaptive-CT algorithm will be called and the calculation Result is 950, which smaller than CT. As a result, the CTs value is still 1000 according to Adaptive-CT [START_REF] Yu | A load balancing mechanism for multiple SDN controllers based on load informing strategy[END_REF].

Jinke Yu et al propose a load balancing mechanism based on a load informing strategy for multiple distributed controllers. With the mechanism, a controller can make load balancing decision locally as rapidly as possible. Experiments based on floodlight show that their mechanism can balance the load of each controller dynamically and reduce the time of load balancing which they implement the distributed OpenFlow controller based on Floodlight. Their proposed load balancing mechanism runs as one of its modules.they choose Mininet to emulate a network of software-based virtual OpenFlow switch as their experimental testbed. They use two controller nodes to deploy a distributed SDN network.

Configure 4 switches to connect controller A as master and controller B as slave, meanwhile, another 4 switches to connect controller B as master and controller A as slave.they use Cbench tool to measure the maximum rate in which Packet-In messages are handled by Floodlight based on their physical hardware.they set the threshold values of controller A and controller B to 10000 pps and 11000 pps respectively. Once controller A or controller B exceeds the respective threshold, it needs to shift partial load to the other controller. From 0s to 45s, the load of both controllers is smaller than the respective threshold values. At the time of 50s, they increase the Packet-In messages arrival rate of controller B. Then the load balancing module detects the load of controller B exceeds its threshold and makes a decision. So the selected switch is migrated to controller A. At 55s, the load of controller B comes down and controller A comes up. The load balancing is completed within 5s. This completion time is acceptable [START_REF] Yu | A load balancing mechanism for multiple SDN controllers based on load informing strategy[END_REF] Yu li et al To achieve high performance and low latency, they present a load balancer for OpenFlow based data center networks. They implement a dynamic routing algorithm in the load balancer. The task of the algorithm is to distribute traffic of upcoming network flows and make each alternative path receive equal amounts of traffic load. It can apply to large scale networks and schedule data flows dynamically. The implementation uses the OpenFlow controller Beacon and network emulator Mininet. The evaluation results demonstrate that the dynamic load balancing routing algorithm is superior over not only the loadbalancing routing algorithm but also the static load balancing algorithm. A typical OpenFlow network consists of three components: the OpenFlow controller, open-Flow switches, and hosts. Each of the switches maintains a flow table that contains forwarding information. The controller and switches communicate via OpenFlow messages. There are a series of actions that the OpenFlow controller can perform by sending messages to switches, such as updating flow tables or probing switch statistics. By analysing replying messages from switches, the OpenFlow controller can schedule data flows efficiently. This algorithm works as follows. When the OpenFlow controller receives a packet from a switch, it switches the control to the load balancer. The load balancer firstly analyses the packets match information including the input port on the switch that receives the packet as well as the packets source address and destination address. Then it looks up those addresses using its knowledge about the network topology. Once the source and destination hosts are located, the load balancer calculates the top layer that the flow needs to access. The algorithm utilizes the hierarchical feature of fat-tree networks to recursively search for a path, and makes decisions based on real-time traffic statistics obtained via the OpenFlow protocol. They have implemented the algorithm as a module of the Beacon OpenFlow controller program, with two main functions: monitoring traffic statistics and scheduling flows, by comparing it with the loadbalancing and static loadbalancing algorithms. The results show that their algorithm is superior over the other two in maintaining high rate data transmission and avoiding network latency under various types of network traffic [START_REF] Li | Openflow based load balancing for fat-tree networks with multipath support[END_REF].

Proposed Algorithm

As explained in the previous section, in brief, one of the load balancing methods in the software-based networks is the use of the central controller. In this circumstance, the central controller is responsible for decision making, and the rest of the controllers only play the role of sending data. One of the drawbacks of this method is the improper use of controllers as well as an increased load on the central controller. Another method of balancing load is to use distributed controllers so that each controller is not only responsible for sending data but also is responsible for the decision-making. The disadvantages of this state are the increase in load on the controller if there is a need for a high level of decision making and a reduction in the controller's working capacity. The best method to balance load is by using a distributed central controller so that each controller has decision-making job based on its own rules, and the central controller is the final coordinator and decision maker in the network.

In this research, central distribution controllers are used to balancing the load between network components. As mentioned before, in addition to the controller, the topology of network is also critical. In networks with a huge number of nodes, FATTREE is one of the most useful and cost-effective topologies. Its features include high scalability and appropriate distributions of path lengths [START_REF] Li | OpenFlow based load balancing for Fat-Tree networks with multipath support[END_REF]. In order to gauge the efficiency of the algorithm, we used the mini-net simulator. Also, the Floodlight controller is used in this emulator because of its high scalability and supporting of Open vSwitch. Open vSwitch which also abbreviated as OVS, perform control operations besides of transmitting of data, and if there is a flaw in the stream, they send it to the source address before the central controller reaches the flaw [START_REF] Pfaff | The Design and Implementation of Open vSwitch[END_REF].

Simulation

For the simulation of our proposed topology which we are going to call it "Loadbalancing Algorithm", a Fat-tree topology was performed in two rounds with 64 hosts and 8 switches, as well as 512 hosts and 72 switches. In this topology, a central controller is placed at the top of the work, and it is connected to 4 switches, and in the next layer there are 4 other switches that are connected as it is shown in Fig 3 . Each switch is connected to 2 hosts as well. The difference between this topology and the common fat tree topology is that the middle switches also connect to the hosts and they are not just used for data sending. Initially, a router begins to route using the Dijkstra algorithm, but the difference of this section with other methods, is that when the flow reaches the first switch, the destination address is identified and sends it to its connected, and the switches begin processing the address, and if the requested IP is connected to the switch, the receiver command has been sent to the first switch and the stream has been sent, too. In fact, in each switch, one search is performed and the results are stored in the flow table of the switch (the OpenFlow switch almost acts like a controller) and then send the subsequent flows according to the flow table, that is why usually the first sent packet has delay, but this delay will be lost in subsequent packets.

On the other hand, if the destination IP is not known or if the packet has security issues or content problems, it is checked and if its switch is unable to solve the problem, it sends to the central controller to solve the problem, which in this case, this package is referred to as the controller flow stream.

A number of streams might enter to a heavy traffic path or internal problems within the switch happened which does not let the switch to perform search or processing operations, so in this case, an alternate path will be used. As an example, in Fig 3, some flows are sent from H1 to H3 and H4, the results of them are considered as the data set of the simulation. 1000 packets with different volumes will be sent in this path. The results will be shown as Fig4 if no load balance algorithm is applied on the path.

The results show that out of 1,000 streams sent in various volumes, 837 were successful and 163 were unsuccessful. The processing time of all packets is the same and if the packet failed to reach the destination, the delay time for the next packet is 10 milliseconds. This happened in a situation where the fat-tree topology has used a central controller and no routing and load balancing has occurred.

In the next step, the routing algorithm was run and the obtained results were the same, but the difference in the latency between failed and successful flows has changed from 10 milliseconds to 5 milliseconds.

So far, the use of the routing algorithm has obtained good results, but if the number of streams sent at one time increases, then it is no longer responsive. Look at Table 2.

Table 2 shows how many data has been processed at which times and as seen, in high volume, the number of data sent at the time of processing has been very high and the data delay rate can be visible in the following Fig5.

As a result, with a traditional algorithm without load balancing and routing strategy, the lag in receiving data is extremely high, and even a large number of the packets fail (Table 3) In order to solve the aforementioned problem, we designed an algorithm called Load-balancer, which is used on all switches. The method of this algorithm is to first determine the number of switches and hosts connected to a single switch and then examine the forward path to see whether the path that is taken by the router algorithm is empty or is under processing. Load-balancer algorithm is shown in In our method, each switch is connected to 2 hosts and 2 other switches. In fact, the number of flows should be converted to n/2 and be sent to each switch. Load-balancer algorithm initially split flows to 2 parts and send them to any of the connected switches. the connected switches control the flows and if needed, send them to the adjacent switches for processing. Therefore, the amount of data used in this method does not require 2 switch layers, and the initial switches are done this job apart.

Following, the algorithm begins to examine the path and sends flows to the destination. The number of incoming and failed packets are shown in Table 4.

Load-balancer breaks failed flows into two categories, and if the packet has an unspecified or problematic IP, based on the algorithm this packet will be sent to the central controller and the controller controls the packet for further processing. If the packet even does not process in the central controller, it will be sent to the source address.

As shown in Table 4 missed flows are departed. Table 5 shows the types of defects that need to be sent to the controller.

Result

The results indicate that using our proposed algorithm in small volumes does not make a significant difference, however in large volumes has a great performance. Via using our algorithm in large volumes, not only the number of received flows is extended, but also the lag time is also minimized to 0.1 milliseconds per each flow in the network ( Fig 7). Furthermore, due to the classification of the failed flows, no longer time and process spent for them on the network switches.

Conclusion

The architecture of SDN networks emphasizes the division of network control and data layers, and this division provides an extensive implementation of services and applications in the top of the network layers. The central controller in this architecture provides a comprehensive aspect of the network infrastructure, and distributed controllers help to accelerate the processing of flows and reduce the load on the central controller. Load balancing is the most critical element for the performance of an SDN network due to its effects all elements of the network.

In this research, we introduce a new algorithm for load-balancing based on fat-tree structure. In order to prove the achievement of our proposed algorithm, we simulate an SDN network with central and distributed floodlight controller in a Mini-Net environment.

Accordingly, based on the simulation results, our proposed algorithm reduced the processing time of each stream in the network to 0.1 milliseconds compared to the common methods, and consequently, the number of successful streaming has increased. Likewise, failed stream are classified and sent to the central controller and remain for further processing in the controller. As a result, our proposed algorithm not only improve the performance of the network but also reduced the unnecessary traffic load of the network and as consequent it also improves the stability of the network for huge number of flows.

Fig. 1 .

 1 Fig. 1. Structure of SDN network layers [33]

Fig. 2 .

 2 Fig. 2. Various Network Structure

Fig. 3 .

 3 Fig. 3. Loadbalancing Algorithm vs. Normal Algorithm

Fig. 4 .Fig. 5 .

 45 Fig. 4. Fat-tree topology has used a central controller and no routing and load balancing has occurred

Fig 6 RequireFig. 6 .

 66 Fig. 6. Load-balancer algorithm

Fig. 7 .

 7 Fig. 7. Reduce the Delay Time for the Network Streams in Loadbalancer Algorithm

Table 1

 1

		. table
		success drop sum
	0-19	2	2	4
	20-39	4		4
	40-79	6	3	9
	80-159	18	2	20
	160-319	27	5	32
	320-639	43	16 59
	640-1279	87	22 109
	1280-2559 200	51 251
	2560-5119 450	62 512
	sum	837 163 1000

Table 3 .

 3 Lag in the network without routing and balancing mechanism

		success Failure sum
	0-19	2	2	4
	20-39	4		4
	40-79	6	3	9
	80-159	18	2	20
	160-319	27	5	32
	320-639	43	16	59
	640-1279	87	22	109
	1280-2559 150	101 251
	2560-5119 350	162 512
	sum	637	363 1000

Table 4 .

 4 The number of received and failed packets in load-balancer algorithm

		success Failure controller sum
	0-19	2	0	2	4
	20-39	4	0	0	4
	40-79	6	2	1	9
	80-159	18	1	1	20
	160-319	29	1	2	32
	320-639	57	2	0	59
	640-1279	92	10	7	109
	1280-2559 229	13	9	251
	2560-5119 466	16	30	512

Table 5 .

 5 Defects Types

	unknown apdu	1
	malformed packet	2
	invalid length	1
	message type unknown	2
	null lsap response	2
	func unknown	1
	ethernet frame check sequense incorrect 43
	Sum	52


Venky Dijkkomp

Kanai Ogale
email: kanaiogale@outlook.com

Method and Apparatus for a Differential Localized Microscopy System Based on Position Sensitive Detector

Keywords: Position Sensitive Detector (PSD), Microscopy systems, Sensor calibration, Localized differential method I

A precise measurement of position using a Position Sensitive Detector (PSD) is fundamental in mitigating the geometric error factors that are caused by the pincushion-type distortion of these sensors. These errors can be addressed by implementing a differential localized method to significantly reduce signal to noise ratio (SNR) in PSD and the microscopy system. The differential method based on Time difference of Arrival (TDoA) is proposed and implemented in this research. The simulation and the actual results of the system further confirm the significant improvement in accuracy and precision of the system.

INTRODUCTION

The Position Sensitive Detector (PSD) is an optical position sensor (OPS) capable of measuring the position of a light spot in one or two-dimensions on the sensor surface. The PSD has been employed in many applications but the most famous one is in the Atomic Force Microscopy (AFM) systems. The very high resolution of the PSD makes it suitable for such applications.

The challenges of conducting a precise measurement using the position sensitive detector (PSD) has been in investigation by researchers. The most substantial factor in the calibration of a local positioning systems (LPS) is the differential phase shift between the receivers. One solution to this particular problem is in employing a phase-locked loop (PLL) suggested by Monzú et al [START_REF] Salido-Monzú | Multipath mitigation for a phase-based infrared ranging system applied to indoor positioning[END_REF]. Their approach is based on a measurement system that aimed at mitigating the noise effects using pseudorandom codes modulated by a sinusoidal signal to correct for the errors in position calculations. This is possible because of using a delay-locked loop (DLL).

Another

approach was proposed by implementing a system for differential phase measurement [2]. These research are based on using the PSD in an open environment that transmit signal to an agent robot.

A more precise application was also investigated by researchers to construct a PSD microscopy system [START_REF] Rahimi | PSD microscopy: a new technique for adaptive local scanning of microscale objects[END_REF]. A significant improvement was reported to as implementing an accelerated adaptive local scanning but further results in this area are not suggesting a precise measurement.

The most novel approach in this regard is the development of a LPS sensor system where PSD sensors are used as IR signal detectors [START_REF] Rodríguez-Navarro | Indoor Positioning System Based on a PSD Detector, Precise Positioning of Agents in Motion Using AoA Techniques[END_REF]. While another approach used a 2D bisection method by employing a DLP projector to scan the PSD area efficiently [START_REF] Rahimi | Flash scanning: An ultra fast local scanning of complicated objects for PSD microscopy using 2D bisection[END_REF].

While these approaches have introduced significant advances to the measurement accuracy of the PSD, but still the SNR problem that causes the most important and boldest effect on the precision measurement of the PSD is left to be solved. The proposed method in this research is investigating a localized differential method to mitigate these challenges. The geometric calibration techniques that are used have significantly improved the overall accuracy and precision. In addition to the simulation performed in MATALB and PSpice, a model of the system was built to test the applicability of the proposed method. The presented results further confirmed the improvements that was seen in the computer simulation section.

METHOD AND APPARATUS

The PSD sensor principle of work is based on photodiode structured on either side of the PSD that generate a current dependent on the optical power of the light beam striking its active area. Fig. 1 shows the PSD sensor and an equivalent pincushion PSD circuit.

To better illustrate the function of the PSD, a sectional cut is presented. Fig. 2 shows a sectional cut of a one-dimensional PSD that uses a uniform P-type resistive layer. The 2-D tetra-lateral PSD works based on the same principle too.

The photocurrent that is received on either electrode can be calculated by the Eq. 1.

(

) 1
where Ia-c are the currents that are received on each of the electrodes on the sides of the PSD.

The non-linearity of the PSD was further improved by Song et al [START_REF] Cui | Linearity indices and linearity improvement of 2-D tetralateral position-sensitive detector[END_REF] as shown in Eq. 2. This has been employed to better estimate the incident light position. Although an improved approach was used in [8] be correction the position error using the Brown's distortion model [START_REF] Brown | Decentering Distortion of Lenses[END_REF]. This has mitigated the pincushion-type distortion as to strengthen the scanning lines of the PSD microscopy system proposed.

(

) 2
This model is investigated by Villiers [START_REF] Villiers | Centi-pixel accurate real-time inverse distortion correction[END_REF] and shown to rectify the pincushion-type distortion in other researches [START_REF] Mehdi | Towards Developing a Scanning Position Sensitive Detector (PSD) Microscopy: PSD Measurement Enhancement, Adaptive Local Scanning and Implementation[END_REF] in this area.

The transimpedance amplifier used in this research is shown in Fig. 3. The I1 current source represents the PSD electrode photocurrent for one of the channels. The junction capacitance and the feedback resistance for the operational amplifier are ideal for the noise reduction purpose. The thermal noise associated with the Johnson noise current is generated by inter-electrode resistance reported by the Hamamatsu PSD. These conditions represented

SIMULATION RESULTS

The simulation of the proposed system was implemented in MATLAB and PSpice to verify the model system. Fig. 4. shows the overall noise of the PSD system before applying the filtering systems designed in this study.

It can be noticed from Fig. 4 that the noise is not Gaussian in effect and have diagonal effects to it. These simulations suggest that the noise implications of the system are strongly degraded based on the amplification system as previously known [START_REF] Wait | Introduction to operational amplifier theory and applications[END_REF].

Choosing a PSD that does not adhere to the tetralateral effect such as a lateral effect PSD is an ideal substitution because of the resolution of approximately 0.5µm. This was suggested by some of the researchers in the area [START_REF] Hongfei | A high precision optical position detector based on duo-lateral PSD[END_REF][START_REF] Blank | High precision PSD guided robot localization: Design, mapping, and position control[END_REF][START_REF] Rahimi | Adaptive local scanning: a comprehensive and intelligent method for fast scanning of indiscrete objects[END_REF]. This is shown in the post-processing of the PSD signal [START_REF] Wang | Novel Method of Detecting Movement of the Interference Fringes Using One-Dimensional PSD[END_REF] and has applications in the robotics localization [START_REF] Park | Development of a real time locating system using PSD under indoor environments[END_REF]. The initial result of the localization is shown in Fig. 6. It is clear that without the proposed method, the signal is not square shaped. This result was improved significantly by employing a localized differential method as is shown in Fig. 7.

It is clear from Fig. 7 that the proposed method is reducing the associated noise to a large degree. This is very consistent with the result of the other research in the area [START_REF] Rodríguez-Navarro | Mathematical Model and Calibration Procedure of a PSD Sensor Used in Local Positioning Systems[END_REF].

To further improve this result, the differential localization can be employed to rectify the small noises remained in the system. Fig. 8 shows that final implementation result.

The final result presented in Fig. 8 shows significant improvement in the noise reduction of the system. This has shown to improve the precision of the PSD system to a very large degree.

It is shown in the simulation and the actual implementation of the system that the noise can be reduced significantly to improve the precision of the system.

IV.

CONCLUSION

This research presents our proposed method of localized differential approach to improving the precision of the PSD system. It was shown through the simulation and the actual implementation of the system that the noise associated with overall system was significantly reduced.

The post-processing of the lateral PSD signal was shown to be the most effective approach on improving the signal to noise ratio.

Another improvement was the implementation of the Villiers approach to the Brown's model of rectification of the pin-cushion type distortion. Overall, the simulation and actual result show a very significant improvement in the precision of the PSD system.

V.

FURTHER STUDIES

Because of the photocurrent nature of the PSD, the leaking of the current to the electrode was seen as a noticeable issue in our implementation. This may be prevented by employing a digitalized system by using an Analog to Digital Converter (ADC) in relation to the amplifier system. VI.

Figure 1 .

 1 Figure 1. (a) Image of PSD S5991-01, Hamamatsu. (b) Equivalent pin-cushion PSD circuit (image courtesy of Hamamatsu, obtained from PSD technical information);

Figure 2 .

 2 Figure 2. A sectional cut of a one-dimensional PSD is shown here. The incident light determines the photocurrent that the electrodes receive.

Figure 3 .

 3 Figure 3. Equivalent PSD sensor circuit and transimpedance amplification circuit with noise is shown here.

Figure 4 .

 4 Figure 4. The overall noise associated with the PSD system in the X and Y axis of the PSD.

Figure 5 .

 5 Figure 5. The noise power in contrast to the frequency and the bandwidth (BW).

Figure 6 .

 6 Figure 6. Without the localization proposed method, the signal is not square shaped and shows a significant amount of noise. The figure is from the Oscilloscope connected to the output of the circuit.

Figure 7 .

 7 Figure 7. This figure shows the 2nd improvement on the signal based on the proposed method. The square shape verifies the proposed method.

Figure 8 .

 8 Figure 8. The final improvement of the noise associated with the system is shown and the rectification is significantly improved using the differential localization method

ACKNOWLEDGMENTS

This research was supported by the Singapore Research Program (SRP2018-9741-F2RE). Authors thank the research program from the National University of Singapore.

VII.

AUTHOR CONTRIBUTIONS

Venky Dijkkomp and Kanai Ogale designed the system and conducted the simulation and participated in the implementation with equal shared as much as the contribution to writing the paper.

VIII.