KR102165865B1 - Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network - Google Patents

Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network Download PDF

Info

Publication number
KR102165865B1
KR102165865B1 KR1020190088564A KR20190088564A KR102165865B1 KR 102165865 B1 KR102165865 B1 KR 102165865B1 KR 1020190088564 A KR1020190088564 A KR 1020190088564A KR 20190088564 A KR20190088564 A KR 20190088564A KR 102165865 B1 KR102165865 B1 KR 102165865B1
Authority
KR
South Korea
Prior art keywords
path
load balancing
defined network
ant
dynamic load
Prior art date
Application number
KR1020190088564A
Other languages
Korean (ko)
Inventor
윤희용
하이 슈에
김경태
이병준
김세준
이태호
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020190088564A priority Critical patent/KR102165865B1/en
Application granted granted Critical
Publication of KR102165865B1 publication Critical patent/KR102165865B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a dynamic road balancing method based on genetic and ant colony algorithms in a software defined network and a device therefor. According to an embodiment of the present invention, the dynamic road balancing method comprises the following steps of: allowing a packet corresponding to an ant according to an ant colony algorithm to search at least one switch to reach a host in a software defined network, and obtaining a path searched by the packet as an initial population; determining a fitness function by using the length of the path and a weight value of the length in the obtained initial population; selecting a parent path by applying the determined fitness function in the obtained initial population and selecting a child path by applying a cross operation and a mutation operation to the selected parent path; and selecting an optimal path for road balancing based on calculated fitness by applying the determined fitness function to the selected child path. Therefore, the performance of a network can be more improved in the software defined network.

Description

소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법 및 장치{METHODS AND APPARATUSES FOR DYNAMIC LOAD BALANCING BASED ON GENETIC-ANT COLONY ALGORITHM IN SOFTWARE DEFINED NETWORK}A method and apparatus for dynamic load balancing based on genetic and ant population algorithms in a software-defined network {METHODS AND APPARATUSES FOR DYNAMIC LOAD BALANCING BASED ON GENETIC-ANT COLONY ALGORITHM IN SOFTWARE DEFINED NETWORK}

본 발명은 소프트웨어 정의 네트워크에서 동적 로드 밸런싱 장치에 의해 수행되는 동적 로드 밸런싱 방법 및 장치에 관한 것이다.The present invention relates to a dynamic load balancing method and apparatus performed by a dynamic load balancing device in a software defined network.

종래의 로드 밸런싱 접근 방식은 두 가지 방법이 있다. 첫 번째로, 로드 밸런싱이 적용된 객체를 기반으로 하는 소프트웨어 로드 밸런싱 또는 하드웨어 로드 밸런싱이 있다. 하드웨어 로드 밸런싱은 개별 하드웨어 장치에 적용되므로, 네트워크 작업에 미치는 영향이 소프트웨어 로드 밸런싱보다 직접적이고 빠르다. 그러나 하드웨어 구현이 포함되어 있어 비용이 많이 든다. There are two methods of the conventional load balancing approach. First, there is software load balancing or hardware load balancing based on objects to which load balancing is applied. Since hardware load balancing is applied to individual hardware devices, the impact on network operations is more direct and faster than software load balancing. However, it is expensive because it includes a hardware implementation.

두 번째로, 트래픽 관리 정책의 적응성을 기반으로 결정된 정적 로드 밸런싱 및 동적 로드 밸런싱이 있다. 정적 로드 밸런싱을 사용하면 성능 매개 변수가 네트워크 작동 시작 시에 분석되고 로드 밸런싱 정책이 이를 기반으로 결정된다. 정적 로드 밸런싱은 배포가 쉬우며, 비용도 낮지만 성능이 낮다. 동적 로드 밸런싱을 사용하면 로드 밸런싱 정책이 네트워크의 현재 상태를 기반으로 동적으로 업데이트되어 더 높은 성능을 얻을 수 있다. 그러나 동적 로드 밸런싱에서는 일반적으로 여러 단계의 작업이 필요하며 비용이 더 많이 든다. 소프트웨어 정의 네트워크(SDN, Software Defined Network) 환경에서는 SDN의 다양한 특성으로 인해 소프트웨어 로드 밸런싱과 동적 로드 밸런싱을 이용한다.Second, there are static load balancing and dynamic load balancing, which are determined based on the adaptability of the traffic management policy. With static load balancing, performance parameters are analyzed at network start-up and load balancing policies are determined based on them. Static load balancing is easy to deploy and has low cost, but low performance. With dynamic load balancing, load balancing policies can be dynamically updated based on the current state of the network, resulting in higher performance. However, dynamic load balancing typically requires several steps and is more expensive. In a software defined network (SDN) environment, software load balancing and dynamic load balancing are used due to various characteristics of SDN.

본 발명의 실시예들은 소프트웨어 정의 네트워크(SDN) 환경에서 네트워크의 성능을 더욱 향상시킬 수 있는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법 및 장치를 제공하고자 한다.Embodiments of the present invention are intended to provide a dynamic load balancing method and apparatus based on a gene and ant population algorithm in a software defined network, which can further improve the performance of a network in a software defined network (SDN) environment.

본 발명의 실시예들은 소프트웨어 정의 네트워크(SDN) 환경에서 개미 집단 최적화(ACO, Ant Colony Optimization)와 유전 알고리즘(GA, Genetic Algorithm)을 이용하여 SDN 컨트롤러의 로드 밸런싱(Load Balancing)을 효과적으로 수행할 수 있는, 소프트웨어 정의 네트워크에서 동적 로드 밸런싱 장치에 의해 수행되는 동적 로드 밸런싱 방법 및 장치를 제공하고자 한다.Embodiments of the present invention can effectively perform load balancing of SDN controllers using Ant Colony Optimization (ACO) and Genetic Algorithm (GA) in a software defined network (SDN) environment. It is intended to provide a dynamic load balancing method and apparatus performed by a dynamic load balancing device in a software defined network.

본 발명의 일 실시예에 따르면, 소프트웨어 정의 네트워크(Software defined network)에서 동적 로드 밸런싱 장치에 의해 수행되는 동적 로드 밸런싱 방법에 있어서, 상기 소프트웨어 정의 네트워크에서 개미 집단(Ant Colony) 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하는 단계; 상기 획득된 초기 모집단에서 상기 경로의 길이와 상기 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하는 단계; 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하는 단계; 및 상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하는 단계를 포함하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법이 제공될 수 있다.According to an embodiment of the present invention, in a dynamic load balancing method performed by a dynamic load balancing device in a software defined network, correspondence with ants according to an ant colony algorithm in the software defined network Searching for at least one switch to reach a host, and obtaining a path searched by the packet as an initial population; Determining a fitness function using a length of the path and a weight value of the length in the acquired initial population; Selecting a parent path by applying the determined fitness function to the obtained initial population, and selecting a child path by applying a cross operation and a mutation operation to the selected parent path; And selecting an optimal path for load balancing based on the calculated fitness by applying the determined fitness function to the selected child path, a dynamic load balancing method based on a gene and ant population algorithm in a software defined network can be provided. have.

상기 초기 모집단으로 획득하는 단계는, 상기 패킷이 이전 스위치에서 다음으로 방문할 스위치 사이의 상태 전이 확률을 기반으로 다음 스위치를 선택할 수 있다.In the step of obtaining the initial population, the next switch may be selected based on a state transition probability between a switch to be visited next from a previous switch.

상기 초기 모집단으로 획득하는 단계는, 상기 호스트에 도달한 패킷이 방문한 경로 기반으로 동일한 스위치를 다시 방문하는 것을 피하기 위한 타부 테이블(Taboo table) 및 경로 상의 페로몬을 업데이트할 수 있다.In the obtaining of the initial population, a taboo table and a pheromone on the path may be updated to avoid revisiting the same switch based on a path visited by a packet arriving at the host.

상기 초기 모집단으로 획득하는 단계는, 상기 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득할 수 있다.In the acquiring of the initial population, at least one switch number searched for by the packet may be configured as a path code to obtain an initial population.

상기 적합도 함수를 결정하는 단계는, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값의 곱을 적합도 함수로 결정할 수 있다.In determining the fitness function, a product of a weight value of a length of a path and a length in the acquired initial population may be determined as a fitness function.

상기 자식 경로를 선택하는 단계는, 상기 선택된 자식 경로에 대해 산출된 적합도가 기설정된 제약 조건을 만족할 때까지 반복 수행될 수 있다.The step of selecting the child path may be repeatedly performed until the calculated fitness for the selected child path satisfies a preset constraint condition.

상기 자식 경로를 선택하는 단계는, 상기 선택된 부모 경로 상의 페로몬을 교차 연산 및 돌연변이 연산을 통해 선택된 자식 경로 상에 분배시킬 수 있다.In the selecting of the child path, the pheromone on the selected parent path may be distributed on the selected child path through a cross operation and a mutation operation.

상기 자식 경로를 선택하는 단계는, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 적합도를 계산하고, 상기 계산된 적합도가 최고인 후보 경로와 서브 후보 경로를 상기 부모 경로로 선택할 수 있다.In the selecting of the child path, a fitness degree is calculated by applying the determined fitness function to the obtained initial population, and a candidate path and a sub candidate path having the highest calculated fitness may be selected as the parent path.

상기 자식 경로를 선택하는 단계는, 상기 부모 경로로 선택된 후보 경로와 서브 후보 경로에서 각각의 교차 세그먼트를 서로 교차하여 삭제하고, 삭제 후 남아 있는 후보 경로와 서브 후보 경로 각각의 시퀀스와 교차 세그먼트를 서로 교차하여 결합하는 교차 연산을 수행할 수 있다.In the selecting of the child path, each of the crossing segments of the candidate path and the sub candidate path selected as the parent path are crossed and deleted, and the sequence and crossing segments of the candidate path and the sub candidate path remaining after deletion are You can perform a crossover operation that crosses and combines.

상기 자식 경로를 선택하는 단계는, 교차 연산이 수행된 부모 경로의 시퀀스에서 무작위로 선택된 두 점을 교환하는 돌연변이 연산을 수행할 수 있다.In the selecting of the child path, a mutation operation for exchanging two randomly selected points in a sequence of a parent path in which a cross operation has been performed may be performed.

한편, 본 발명의 다른 실시예에 따르면, 소프트웨어 정의 네트워크(Software defined network)에서 오픈플로우 프로토콜에 따라 적어도 하나의 스위치와 통신하는 통신 모듈; 적어도 하나의 프로그램을 저장하는 메모리; 및 상기 메모리와 연결된 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써, 소프트웨어 정의 네트워크에서 개미 집단(Ant Colony) 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하고, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고, 상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치가 제공될 수 있다.On the other hand, according to another embodiment of the present invention, a communication module for communicating with at least one switch according to an open flow protocol in a software defined network (Software defined network); A memory for storing at least one program; And a processor connected to the memory, wherein the processor executes the at least one program so that a packet corresponding to an ant according to an Ant Colony algorithm in a software defined network searches at least one switch to a host Is reached, the path searched by the packet is obtained as an initial population, a fitness function is determined by using the weight value of the length and length of the path from the acquired initial population, and the obtained initial population is Select a parent path by applying the determined fitness function, select a child path by applying a cross operation and mutation operation to the selected parent path, and load based on the fitness calculated by applying the determined fitness function to the selected child path A dynamic load balancing device based on a genetic and ant population algorithm in a software-defined network may be provided that selects an optimal path for balancing.

상기 프로세서는, 상기 패킷이 이전 스위치에서 다음으로 방문할 스위치 사이의 상태 전이 확률을 기반으로 다음 스위치를 선택할 수 있다.The processor may select a next switch based on a state transition probability between a switch to which the packet is visited next from a previous switch.

상기 프로세서는, 상기 호스트에 도달한 패킷이 방문한 경로 기반으로 동일한 스위치를 다시 방문하는 것을 피하기 위한 타부 테이블(Taboo table) 및 경로 상의 페로몬을 업데이트할 수 있다.The processor may update a taboo table and a pheromone on a path to avoid revisiting the same switch based on a path visited by a packet arriving at the host.

상기 프로세서는, 상기 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득할 수 있다.The processor may configure at least one switch number searched by the packet as a path code and obtain it as an initial population.

상기 프로세서는, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값의 곱을 적합도 함수로 결정할 수 있다.The processor may determine a product of a length of a path and a weight value of the length in the acquired initial population as a fitness function.

상기 프로세서는, 상기 선택된 자식 경로에 대해 산출된 적합도가 기설정된 제약 조건을 만족할 때까지 부모 경로 및 자식 경로를 선택하는 것을 반복 수행할 수 있다.The processor may repeatedly select the parent path and the child path until the calculated fitness for the selected child path satisfies a preset constraint condition.

상기 프로세서는, 상기 선택된 부모 경로 상의 페로몬을 교차 연산 및 돌연변이 연산을 통해 선택된 자식 경로 상에 분배시킬 수 있다.The processor may distribute the pheromone on the selected parent path to the selected child path through a cross operation and a mutation operation.

상기 프로세서는, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 적합도를 계산하고, 상기 계산된 적합도가 최고인 후보 경로와 서브 후보 경로를 상기 부모 경로로 선택할 수 있다.The processor may calculate a fitness by applying the determined fitness function to the acquired initial population, and select a candidate path and a sub candidate path having the highest calculated fitness as the parent path.

상기 프로세서는, 상기 부모 경로로 선택된 후보 경로와 서브 후보 경로에서 각각의 교차 세그먼트를 서로 교차하여 삭제하고, 삭제 후 남아 있는 후보 경로와 서브 후보 경로 각각의 시퀀스와 교차 세그먼트를 서로 교차하여 결합하는 교차 연산을 수행할 수 있다.The processor crosses and deletes each crossing segment from the candidate path and the sub candidate path selected as the parent path, and crosses and combines the sequence and the cross segment of each of the candidate path and sub candidate path remaining after deletion. Can perform operations.

상기 프로세서는, 교차 연산이 수행된 부모 경로의 시퀀스에서 무작위로 선택된 두 점을 교환하는 돌연변이 연산을 수행할 수 있다.The processor may perform a mutation operation for exchanging two randomly selected points in a sequence of a parent path in which a cross operation has been performed.

한편, 본 발명의 다른 실시예에 따르면, 프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금: 소프트웨어 정의 네트워크에서 개미 집단 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하고, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고, 상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.Meanwhile, according to another embodiment of the present invention, as a non-transitory computer-readable storage medium including at least one program executable by a processor, when the at least one program is executed by the processor, the processor causes: In a software-defined network, a packet corresponding to an ant according to an ant group algorithm searches at least one switch to reach a host, obtains the path searched by the packet as an initial population, and determines the length of the path in the obtained initial population. A fitness function is determined using the weight value of the length, a parent path is selected by applying the determined fitness function to the acquired initial population, and a cross operation and a mutation operation are applied to the selected parent path A non-transitory computer-readable storage medium comprising instructions for selecting a path and selecting an optimal path for load balancing based on a fitness calculated by applying the determined fitness function to the selected child path may be provided.

본 발명의 실시예들은 소프트웨어 정의 네트워크(SDN) 환경에서 네트워크의 성능을 더욱 향상시킬 수 있다. Embodiments of the present invention may further improve network performance in a software defined network (SDN) environment.

본 발명의 실시예들은 소프트웨어 정의 네트워크(SDN) 환경에서 개미 집단 최적화(ACO, Ant Colony Optimization)와 유전 알고리즘(GA, Genetic Algorithm)을 이용하여 SDN 컨트롤러의 로드 밸런싱(Load Balancing)을 효과적으로 수행할 수 있다.Embodiments of the present invention can effectively perform load balancing of SDN controllers using Ant Colony Optimization (ACO) and Genetic Algorithm (GA) in a software defined network (SDN) environment. have.

본 발명의 실시예들은 소프트웨어 정의 네트워크(SDN) 환경에서 네트워크의 최적 경로를 찾는 시간, 왕복 시간 및 패킷 손실률을 감소시킬 수 있다.Embodiments of the present invention can reduce a time to find an optimal path of a network, a round trip time, and a packet loss rate in a software defined network (SDN) environment.

도 1은 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치가 적용된 소프트웨어 정의 네트워크의 구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 사용된 개미 집단 최적화를 설명하기 위한 테스트 토폴로지를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법에 대한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치의 구성을 설명하기 위한 구성도이다.
도 5는 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법에 대한 효과를 검증하기 위한 팻-트리(fat-tree) 토폴로지를 나타낸 도면이다.
도 6은 본 발명의 일 실시예와 종래의 ACO, GA 알고리즘의 최적 경로를 찾는 성공률 그래프를 나타낸 도면이다.
도 7은 본 발명의 일 실시예와 종래 방식을 사용한 5분 시뮬레이션 시간에 대한 RTT의 비교를 나타낸 도면이다.
도 8은 본 발명의 일 실시예와 종래 방식을 사용한 패킷 손실율의 비교를 나타낸 도면이다.
도 9는 본 발명의 일 실시예와 종래 방식을 사용한 10분 시뮬레이션 시간에 대한 RTT의 비교를 나타낸 도면이다.
도 10은 본 발명의 일 실시예와 종래 방식을 사용한 패킷 손실율의 비교를 나타낸 도면이다.
도 11은 본 발명의 일 실시예를 실험하기 위해 14 개 노드로 구성된 다른 토폴로지를 나타낸 도면이다.
도 12는 본 발명의 일 실시예와 종래 기술 간의 14 개 노드 토폴로지를 갖는 러닝타임의 비교를 나타낸 도면이다.
1 is a diagram showing a structure of a software defined network to which a dynamic load balancing device according to an embodiment of the present invention is applied.
2 is a diagram showing a test topology for explaining optimization of ant populations used in an embodiment of the present invention.
3 is a flowchart of a dynamic load balancing method according to an embodiment of the present invention.
4 is a diagram illustrating a configuration of a dynamic load balancing device based on a gene and ant population algorithm according to an embodiment of the present invention.
5 is a diagram illustrating a fat-tree topology for verifying the effect of a dynamic load balancing method according to an embodiment of the present invention.
6 is a diagram showing a success rate graph for finding an optimal path of an embodiment of the present invention and a conventional ACO and GA algorithm.
7 is a diagram showing a comparison of RTT for a 5-minute simulation time using an embodiment of the present invention and a conventional method.
8 is a diagram showing a comparison of a packet loss rate using an embodiment of the present invention and a conventional method.
9 is a diagram showing a comparison of RTT for a 10-minute simulation time using an embodiment of the present invention and a conventional method.
10 is a diagram showing a comparison of a packet loss rate using an embodiment of the present invention and a conventional method.
11 is a diagram showing another topology consisting of 14 nodes to test an embodiment of the present invention.
12 is a diagram showing a comparison of a running time having a 14 node topology between an embodiment of the present invention and the prior art.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail.

그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, in order to facilitate an overall understanding, the same reference numerals are used for the same elements in the drawings, and duplicate descriptions for the same elements are omitted.

도 1은 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치가 적용된 소프트웨어 정의 네트워크의 구조를 나타낸 도면이다.1 is a diagram showing a structure of a software defined network to which a dynamic load balancing device according to an embodiment of the present invention is applied.

소프트웨어 정의 네트워크(SDN)는 현재 많은 주목을 받고 있는 컴퓨터 네트워킹 분야의 새로운 기술이다. SDN은 학계의 프로젝트에서 비롯된 것이다. SDN에서 트래픽 라우팅(제어 평면)에 대한 결정을 내리는 네트워크 제어 구성은 트래픽을 대상(데이터 평면)으로 전달하는 부분과 분리된다. 네트워크는 직접 프로그래밍할 수 있으며 응용 프로그램 및 네트워크 서비스에 대해 인프라를 추상화할 수 있다. 이는 네트워킹 작업을 크게 단순화할 수 있다. 여기에서 스위치의 트래픽 로드 밸런싱은 매우 중요한 문제이다.Software-Defined Network (SDN) is a new technology in the field of computer networking that is currently receiving a lot of attention. SDN comes from an academic project. The network control configuration that makes decisions about traffic routing (control plane) in SDN is separate from the part that delivers traffic to the destination (data plane). Networks can be programmed directly and the infrastructure can be abstracted for applications and network services. This can greatly simplify the networking task. Here, the traffic load balancing of the switch is a very important issue.

로드 밸런싱(LB, Load balancing)은 전통적인 IP 네트워크를 위해 광범위하게 연구되었다. 최근에 SDN에 대한 연구가 수행되었다. SDN은 네트워크의 제어 평면(Control plane)과 데이터 평면(Data plane)을 분리하므로 컨트롤러와 스위치 사이의 LB는 전체 네트워크의 안정성에 직접적인 영향을 미친다. 제어 평면에서 실행되는 컨트롤러는 스위치의 플로우 테이블을 관리하여 데이터 전달을 제어한다. 플로우 테이블은 플로우 엔트리로 구성된다.Load balancing (LB) has been studied extensively for traditional IP networks. Recently, a study on SDN has been conducted. Since SDN separates the control plane and data plane of the network, the LB between the controller and the switch directly affects the stability of the entire network. The controller running in the control plane manages the flow table of the switch to control data transfer. The flow table consists of flow entries.

SDN을 위해 제안된 여러 프로토콜 중 오픈플로우(OpenFlow) 프로토콜은 SDN을 구현하는데 가장 일반적으로 사용되는 프로토콜이다. 오픈플로우(OpenFlow)의 주요 특징은 프로그래밍 기능이다. 컨트롤러를 프로그래밍함으로써 필요한 네트워크 기능을 쉽게 달성할 수 있다. SDN의 전체 인프라에는 총 세 개의 레이어가 있다. 제어 평면은 제어 계층(Control layer)에 있고, 그 위에는 응용 프로그램 계층(Application layer)이 있고 그 아래에는 데이터 전달 계층(Data Forwarding layer)이 있다. 오픈플로우(OpenFlow) 프로토콜을 기반으로 한 SDN의 구조가 도 1에 나와 있다. 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치(100)는 제어 계층(Control layer)에 위치하고, 네트워크 서비스(Network Service)로부터 네트워크 트래픽 로드 및 서버 로드(Network Traffic Load and Server Load)를 수신하고, 선택된 경로(Selected Path)를 전송한다. Among the several protocols proposed for SDN, the OpenFlow protocol is the most commonly used protocol to implement SDN. The main feature of OpenFlow is its programming function. The required network functions can be easily achieved by programming the controller. There are a total of three layers in SDN's overall infrastructure. The control plane is in the control layer, an application layer above it, and a data forwarding layer below it. The structure of the SDN based on the OpenFlow protocol is shown in FIG. 1. The dynamic load balancing apparatus 100 according to an embodiment of the present invention is located in a control layer, receives a network traffic load and server load from a network service, Transmit the selected path.

도 2는 본 발명의 일 실시예에 사용된 개미 집단 최적화를 설명하기 위한 테스트 토폴로지를 나타낸 도면이다.2 is a diagram showing a test topology for explaining optimization of ant populations used in an embodiment of the present invention.

각 개미는 네트워크에서 전송된 패킷으로 볼 수 있으며 토폴로지의 모든 노드에서 무작위로 시작된다.Each ant can be viewed as a packet transmitted on the network and starts randomly on every node in the topology.

m과 n은 각각 개미와 스위치의 총 수이고, bi(t)는 시간 t에서의 i번째 스위치 Si에서의 개미의 개수를 나타낸다. 하기의 [수학식 1]과 같이 나타내진다.m and n are the total number of ants and switches, respectively, and b i (t) represents the number of ants in the i th switch S i at time t. It is represented by the following [Equation 1].

Figure 112019075217512-pat00001
Figure 112019075217512-pat00001

개미 Ak(k = 1,2, ..., m)는 이미 지나간 스위치를 보유하고 있는 동일한 스위치를 다시 방문하는 것을 피하기 위해 금기 테이블(Taboo table)을 가지고 있다. 또한 각 경로의 남아있는 페로몬을 기반으로 두 스위치 사이의 상태 전이 확률(State transition probability)을 계산한다. 개미는 계산된 확률에 따라 방문할 다음 스위치를 선택한다.

Figure 112019075217512-pat00002
는 스위치 Si로부터 스위치 Sj로 방문하기 위한 개미 Ak의 확률을 하기의 [수학식 2]와 같이 나타낸다.Ant A k (k = 1,2, ..., m) has a taboo table to avoid revisiting the same switch that already has a switch that has passed. In addition, a state transition probability between two switches is calculated based on the remaining pheromones in each path. The ant selects the next switch to visit according to the calculated probability.
Figure 112019075217512-pat00002
Represents the probability of the ant A k visiting from the switch S i to the switch S j as shown in [Equation 2] below.

Figure 112019075217512-pat00003
Figure 112019075217512-pat00003

여기서, ak는 k번째 개미 Ak가 i번째 스위치 Si에 있을 때 선택될 가능성이 있는 스위치를 나타낸다.

Figure 112019075217512-pat00004
는 스위치 Si로부터 Sj로의 경로 상에 놓여진 전체 페로몬을 나타낸다.
Figure 112019075217512-pat00005
는 경로 상의 페로몬의 양이 초기에
Figure 112019075217512-pat00006
인 것을 나타낸다. α 및 β는 선택을 할 때 남아 있는 페로몬 및 경로 거리의 가중치를 각각 나타낸다.
Figure 112019075217512-pat00007
는 하기의 [수학식 3]과 같이 정의된 휴리스틱 함수를 나타낸다.'Here, a k denotes a switch that is likely to be selected when the k-th ant A k is in the i-th switch S i .
Figure 112019075217512-pat00004
Denotes the total pheromone laid on the path from switch S i to S j .
Figure 112019075217512-pat00005
Is the initial amount of pheromones in the pathway
Figure 112019075217512-pat00006
Indicates that it is. α and β represent the weights of the remaining pheromones and path distances, respectively, when making a selection.
Figure 112019075217512-pat00007
Represents a heuristic function defined as in [Equation 3] below.'

Figure 112019075217512-pat00008
Figure 112019075217512-pat00008

Figure 112019075217512-pat00009
는 Si 및 Sj 간의 거리를 나타낸다. 그러므로 Si로부터 Sj로 방문하는 확률은
Figure 112019075217512-pat00010
가 작아질수록 커진다. 다음 스위치를 선택할 때 ACO의 현재 메카니즘에 따른 2개의 이슈가 다음과 같다.
Figure 112019075217512-pat00009
Represents the distance between S i and S j . Therefore, the probability of a visit from S i to S j is
Figure 112019075217512-pat00010
The smaller is, the larger. When choosing the next switch, there are two issues depending on the current mechanism of ACO:

α가 작다면,

Figure 112019075217512-pat00011
의 값에 주로 의존한다.If α is small,
Figure 112019075217512-pat00011
Mainly depends on the value of

β가 작다면, 랜덤하게 선택된다.If β is small, it is chosen randomly.

첫 번째 이슈는 로컬 최적 솔루션(Local optimal solution)을 야기한다. 두 번째 이슈는 좋은 솔루션을 발견하는 보장이 없다. 여기서, 경로의 페로몬은 개미가 스위치(부분 리뉴얼) 또는 전체 경로(글로벌 리뉴얼)를 통과할 때 업데이트된다. 규칙을 업데이트하는 것은 하기의 [수학식 4] 및 [수학식 5]와 같다.The first issue leads to a local optimal solution. The second issue is that there is no guarantee of finding a good solution. Here, the pheromone of the path is updated when the ant passes the switch (partial renewal) or the entire path (global renewal). Updating the rule is as shown in [Equation 4] and [Equation 5] below.

Figure 112019075217512-pat00012
Figure 112019075217512-pat00012

Figure 112019075217512-pat00013
Figure 112019075217512-pat00013

여기서, ρ는 경로 상의 페로몬 휘발성의 백분율이며, 따라서 (1-ρ)는 페로몬의 남은 부분을 나타낸다.

Figure 112019075217512-pat00014
는 1 사이클에서 Si에서 Sj까지의 경로에서 Ak에 의해 증가된 페로몬의 양이다.
Figure 112019075217512-pat00015
는 각 경로의 초기 상태를 나타내기 때문에 0이다.Here, ρ is the percentage of pheromone volatility on the pathway, so (1-ρ) represents the remaining portion of the pheromone.
Figure 112019075217512-pat00014
Is the amount of pheromone increased by A k in the path from S i to S j in 1 cycle.
Figure 112019075217512-pat00015
Is 0 because it represents the initial state of each path.

ACO로 최적 경로를 탐색하는 과정에서 각각의 개미는 [수학식 2])의 확률을 기반으로 다음 스위치를 선택한다. 한편, 현재의 최적 경로에 더 많은 가중치를 할당하기 위해 포지티브 피드백(Positive feedback) 메커니즘이 채택된다. 바꾸어 말하면, 횡단 경로 상의 정보는 반복마다 더 많은 가중치가 부여된다. 이 접근법은 쉽게 로컬 최적(Local optimum)을 야기할 수 있다. 임의 선택 정책을 사용하여 로컬 최적을 피한다면 좋은 해결책조차 발견되지 않을 수도 있고 오랜 시간이 걸릴 수도 있다. 이러한 문제는 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치(100)에 의해 해결될 수 있다.In the process of searching for the optimal path with ACO, each ant selects the next switch based on the probability of [Equation 2]). Meanwhile, a positive feedback mechanism is adopted in order to allocate more weights to the current optimal path. In other words, information on the traversing path is given more weight per iteration. This approach can easily lead to a local optimum. If you use a random selection policy to avoid local optimizations, even a good solution may not be found, and it may take a long time. This problem can be solved by the dynamic load balancing apparatus 100 according to an embodiment of the present invention.

지연 시간과 패킷 손실률은 네트워크의 서비스 품질(QoS)을 평가하는 두 가지 기준이다. LB를 위한 SDN에 적용된 ACO 알고리즘의 한계를 다루기 위해 본 발명의 일 실시예는 유전 알고리즘 및 개미 집단 최적화 알고리즘을 결합한다. 일반적인 GA와 마찬가지로 선택, 교차 및 돌연변이 작업이 포함된다. 본 발명의 일 실시예에 따른 동기(Motivation)는 최적의 LB로 수렴 속도를 높이고 전체 최적을 찾는 기능이다. 패킷 전송 지연 시간과 패킷 손실 속도가 감소한다. GA는 넓은 공간의 글로벌 검색에 효과적이라는 것이 알려져 있다. 그러나 피드백 정보는 사용할 수 없으며 특정 검색 공간에서 많은 중복 반복이 발생한다. 솔루션을 찾는 효율 또한 매우 낮다. 반면 ACO는 포지티브 피드백 메커니즘을 사용한다. 그러나 두 번째 단계에서는 경로의 페로몬 제한으로 검색 속도가 매우 느리다. 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치(100)는 GA를 사용하여 페로몬을 적절히 분배한 다음 ACO 알고리즘을 사용하여 솔루션을 찾도록 GA 및 ACO의 장점을 이용한다. 두 알고리즘이 SDN에서 효과적인 LB를 위해 서로 보완하도록 한다. 네트워크 규모가 크고 운영 시간이 길수록, 본 발명의 일 실시예에 따른 동적 로드 밸런싱 장치(100)는 누적된 정보를 사용하여 종래의 방식과 비교하여 RTT(Round Trip Time) 및 패킷 손실률을 감소시킬 수 있다.Latency and packet loss rate are two criteria for evaluating the quality of service (QoS) of a network. One embodiment of the present invention combines a genetic algorithm and an ant population optimization algorithm to address the limitations of the ACO algorithm applied to the SDN for LB. As with normal GA, it involves selection, crossover, and mutation operations. Motivation according to an embodiment of the present invention is a function of increasing a convergence speed to an optimal LB and finding an overall optimality. Packet transmission delay time and packet loss rate are reduced. It is known that GA is effective for global search in a large space. However, feedback information is not available and many redundant repetitions occur in a specific search space. The efficiency of finding a solution is also very low. On the other hand, ACO uses a positive feedback mechanism. However, in the second step, the search speed is very slow due to the pheromone limitation of the path. The dynamic load balancing apparatus 100 according to an embodiment of the present invention uses the advantages of GA and ACO to appropriately distribute pheromones using GA and then find a solution using an ACO algorithm. The two algorithms complement each other for effective LB in SDN. As the network size is larger and the operating time is longer, the dynamic load balancing apparatus 100 according to an embodiment of the present invention uses accumulated information to reduce the RTT (Round Trip Time) and packet loss rate compared to the conventional method. have.

도 3은 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법에 대한 흐름도이다.3 is a flowchart of a dynamic load balancing method according to an embodiment of the present invention.

단계 S101에서, 동적 로드 밸런싱 장치(100)는 동적 로드 밸런싱을 위해 모집단을 초기화한다.In step S101, the dynamic load balancing apparatus 100 initializes the population for dynamic load balancing.

단계 S102에서, 동적 로드 밸런싱 장치(100)는 Nc += 1과 같이 반복 시간(Iteration times)을 1만큼 증가시킨다. In step S102, the dynamic load balancing apparatus 100 increases the iteration times by 1, such as N c += 1.

단계 S103에서, 동적 로드 밸런싱 장치(100)는 Ak = 1과 같이 첫 번째 개미로 지정한다. In step S103, the dynamic load balancing device 100 designates A k = 1 as the first ant.

단계 S104에서, 동적 로드 밸런싱 장치(100)는 상기의 [수학식 2]를 기반으로 다음 노드인 스위치를 선택하여 이동하고, 경로 상의 페로몬을 업데이트한다.In step S104, the dynamic load balancing apparatus 100 moves by selecting a switch that is the next node based on the above [Equation 2], and updates the pheromone on the path.

단계 S105에서, 동적 로드 밸런싱 장치(100)는 Ak += 1과 같이 개미의 개수를 1만큼 증가사킨다. In step S105, the dynamic load balancing apparatus 100 increases the number of ants by 1, such as A k += 1.

단계 S106에서, 동적 로드 밸런싱 장치(100)는 Ak >= m 과 같이 개미의 개수가 전체 개미의 개수 이상인지를 확인한다.In step S106, the dynamic load balancing device 100 checks whether the number of ants is equal to or greater than the total number of ants such as A k >= m.

동적 로드 밸런싱 장치(100)는 개미의 개수가 전체 개미의 개수 이상이 아니면 단계 S104부터 반복적으로 수행한다. If the number of ants is not equal to or greater than the total number of ants, the dynamic load balancing apparatus 100 repeatedly performs from step S104.

단계 S107에서, 동적 로드 밸런싱 장치(100)는 개미의 개수가 전체 개미의 개수 이상이면 이번 반복의 값들을 얻는다.In step S107, if the number of ants is greater than or equal to the total number of ants, the dynamic load balancing apparatus 100 obtains the values of this repetition.

단계 S108에서, 동적 로드 밸런싱 장치(100)는 얻은 값들을 초기 모집단(Initial population)으로 설정한다. In step S108, the dynamic load balancing apparatus 100 sets the obtained values as an initial population.

단계 S109에서, 동적 로드 밸런싱 장치(100)는 선택 연산(Select operation), 교차 연산(Crossover operation) 및 돌연변이 연산(Mutation operation)을 수행한다. In step S109, the dynamic load balancing apparatus 100 performs a selection operation, a crossover operation, and a mutation operation.

단계 S110에서, 동적 로드 밸런싱 장치(100)는 적합도(Fitness)를 계산하고, 그 계산된 적합도 값들을 정렬한다.In step S110, the dynamic load balancing apparatus 100 calculates fitness and arranges the calculated fitness values.

단계 S111에서, 동적 로드 밸런싱 장치(100)는 계산된 적합도를 기반으로 최적의 것(Optimal one)이 있는지를 확인한다.In step S111, the dynamic load balancing apparatus 100 checks whether there is an optimal one based on the calculated fitness.

동적 로드 밸런싱 장치(100)는 계산된 적합도를 기반으로 최적의 것이 없으면 단계 S109부터 다시 반복적으로 수행한다. If there is no optimum based on the calculated fitness, the dynamic load balancing apparatus 100 repeatedly performs again from step S109.

단계 S112에서, 동적 로드 밸런싱 장치(100)는 계산된 적합도를 기반으로 최적의 것이 있으면 최적 값을 선택한다. In step S112, the dynamic load balancing apparatus 100 selects an optimum value if there is an optimum one based on the calculated fitness.

단계 S113에서, 동적 로드 밸런싱 장치(100)는 최선의 경로와 최악의 경로의 페로몬의 차이가 기설정된 값(예컨대, 0.1) 미만인지를 확인한다. In step S113, the dynamic load balancing apparatus 100 checks whether the difference between the best path and the worst path pheromone is less than a preset value (eg, 0.1).

동적 로드 밸런싱 장치(100)는 최선의 경로와 최악의 경로의 페로몬의 차이가 기설정된 값(예컨대, 0.1) 미만이 아니면, 단계 S1011부터 다시 수행한다. If the difference between the pheromone of the best path and the worst path is not less than a preset value (eg, 0.1), the dynamic load balancing apparatus 100 performs again from step S1011.

반대로, 동적 로드 밸런싱 장치(100)는 최선의 경로와 최악의 경로의 페로몬의 차이가 기설정된 값(예컨대, 0.1) 미만이면 동적 로드 밸런싱 동작을 종료하고, 그 결과를 얻는다.Conversely, when the difference between the best path and the worst path pheromone is less than a preset value (eg, 0.1), the dynamic load balancing device 100 terminates the dynamic load balancing operation and obtains the result.

한편, 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법의 주요 단계에 대해 설명하기로 한다.Meanwhile, main steps of the dynamic load balancing method according to an embodiment of the present invention will be described.

우선, 초기 모집단에 대해 설명하기로 한다. 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법에서 경로는 정수를 포함하는 경로 검색을 위해 인코딩된다. 예를 들어, 패킷이 S7, S5, S1, S4 및 S8과 같은 여러 스위치를 통해 한 번의 반복으로 호스트에 도달했다고 가정한다. 그런 다음이 패킷의 경로 코드는 (7, 5, 1, 4, 8)이다. 하나의 경로가 하나의 반복에서 각 개미와 함께 생성된다. 개미가 있기 때문에, 초기 모집단으로 선택된 m개의 경로가 얻어진다.First, let's explain the initial population. In the dynamic load balancing method according to an embodiment of the present invention, a path is encoded for path search including an integer. For example, assume that a packet has reached the host in one iteration through several switches such as S7, S5, S1, S4 and S8. Then the route code of this packet is (7, 5, 1, 4, 8). One path is created with each ant in one iteration. Since there are ants, m paths selected as the initial population are obtained.

다음으로, 적합도 함수에 대해 설명하기로 한다. Next, the fitness function will be described.

경로의 길이, 각 스위치에서 패킷을 수신 또는 전송하기 위해 소비되는 에너지, 전체 네트워크의 에너지 상태 등을 포함하여 유전자 알고리즘의 적합도 함수를 결정할 때 고려해야 할 몇 가지 요인이 있다. 본 발명의 일 실시예문에서는 경로의 길이가 주요 요인으로 고려된다. 경로 p의 적합도 함수는 하기의 [수학식 6]과 같다.There are several factors to consider when determining the fitness function of a genetic algorithm, including the length of the path, the energy consumed to receive or transmit packets at each switch, and the energy state of the entire network. In one embodiment of the present invention, the length of the path is considered as a major factor. The fitness function of the path p is as shown in [Equation 6] below.

Figure 112019075217512-pat00016
Figure 112019075217512-pat00016

여기서, W는 길이의 가중치이고, l(p)는 경로의 길이이다. 가장 작은 f(p)의 경로가 선택된다.Here, W is the weight of the length, and l(p) is the length of the path. The path of the smallest f(p) is selected.

다음으로, 선택 연산에 대해 설명하기로 한다. 선택 연산에서 경로의 코드는 검색이 반복될 때마다 얻어진다. 로드(Load)는 적합도 함수에 의해 계산된 다음 최적의 로드가 다음 반복을 위해 선택된다. 몇 개의 선택 동작 후에, 최적 경로 상의 페로몬은 다른 것보다 크며, 선택될 가능성이 더 크다. 결과적으로 최적 경로 검색 속도가 빨라진다.Next, the selection operation will be described. In the selection operation, the code of the path is obtained each time the search is repeated. Load is calculated by the fitness function and then the optimal load is selected for the next iteration. After several selection operations, the pheromones on the optimal path are larger than others and are more likely to be selected. As a result, the speed of searching for an optimal route is increased.

다음으로, 교차 연산에 대해 설명하기로 한다.Next, the crossover operation will be described.

경로 탐색 동작 중 정체 상황을 피하기 위해, 교차 동작이 수행된다. 검색 범위를 확장하고 로컬 최적을 피할 수 있다. ACO에 의한 탐색의 반복 후에, 일부 준 최적 경로들(sub-optimal paths) 및 최적 경로(optimal path)가 획득될 수 있다. 그런 다음 교차 연산이 수행된다. 이 교차 연산의 목적은 최적 경로로 인도하는 후보 경로를 더 많이 포함시키는 것이다.In order to avoid congestion during the route search operation, a crossover operation is performed. You can expand the scope of your search and avoid local optimizations. After repetition of the search by ACO, some sub-optimal paths and optimal paths can be obtained. Then the crossover operation is performed. The purpose of this crossover operation is to include more candidate paths leading to the optimal path.

여기서 교차 연산은 미리 정의된 교차 확률로 교차 연산이 수행되도록 사용된다. 자식의 경로의 하위 시퀀스는 부모 경로의 하위 시퀀스에서 결정된다. 예를 들어 두 부모 P1과 P2가 있다고 하기의 [수학식 7]과 같이 가정한다.Here, the intersection operation is used so that the intersection operation is performed with a predefined intersection probability. The subsequence of the child's path is determined from the subsequence of the parent's path. For example, assume that there are two parents, P1 and P2, as shown in [Equation 7] below.

Figure 112019075217512-pat00017
Figure 112019075217512-pat00017

교차 연산을 통해 자손의 시퀀스를 얻으려면 우선 교차 세그먼트 g1과 g2를 하기의 [수학식 8]과 같이 복사한다.To obtain a sequence of descendants through a cross operation, first, the crossing segments g1 and g2 are copied as shown in [Equation 8] below.

Figure 112019075217512-pat00018
Figure 112019075217512-pat00018

그런 다음 일치하는 문자 시퀀스를 P2와 g1 모두에서 삭제해야 한다. 예를 들어 P2에서 g1의 '7', '6', '5'가 삭제되어 P2에 (2,4 | 8 | 9,3)이 남습니다. 삭제 후에 P2의 나머지 시퀀스가 복사되어 g1 = (2,4 | 7,6,5 | 8,9,3)이 된다. 유사하게, g2 = (9,6 | 7,5,8 | 4,3,2)가 얻어진다. 본 발명의 일 실시예에서 P1은 최적 경로(Optimal path)로 가정하고 P2는 준 최적 경로(sub-optimal path)이다. 교차 동작의 순서는 다음과 같다.Then the matching sequence of characters must be deleted from both P2 and g1. For example, in P2, '7', '6', '5' in g1 is deleted, leaving (2,4 | 8 | 9,3) in P2. After deletion, the remaining sequence of P2 is copied so that g1 = (2,4 | 7,6,5 | 8,9,3). Similarly, g2 = (9,6 | 7,5,8 | 4,3,2) is obtained. In an embodiment of the present invention, P1 is assumed to be an optimal path and P2 is a sub-optimal path. The sequence of the crossover operation is as follows.

본 발명의 일 실시예에 따른 교차 동작의 순서를 설명하기로 한다.The sequence of the crossover operation according to an embodiment of the present invention will be described.

1: P1의 경로를 (x1, y1, z1), P2의 경로를 (x2, y2, z2)라고 가정한다. 교차 작업은 y1과 y2에서 발생하며 새 경로 중 하나는 P3 : (x1, y2, y1, z1)이다.1: Assume that the path of P 1 is (x 1 , y 1 , z 1 ) and the path of P 2 is (x 2 , y 2 , z 2 ). The intersection operation occurs at y1 and y2, and one of the new paths is P 3 : (x 1 , y 2 , y 1 , z 1 ).

2: 복제된 스위치를 삭제하면 새 경로 P3가 결정된다.2: When the duplicated switch is deleted, a new path P 3 is determined.

3: 동일한 방식으로, 또 다른 새로운 경로 P4가 얻어진다.3: In the same way, another new path P 4 is obtained.

4: P1, P2, P3, P4에 적합도 함수를 적용하여 최적 경로가 선택된다. 4: The optimal path is selected by applying the fitness function to P 1 , P 2 , P 3 and P 4 .

한편, 돌연변이 연산에 대해 설명하기로 한다.Meanwhile, the mutation operation will be described.

돌연변이 연산은 미리 정의된 돌연변이 확률을 기반으로 한다. 자손의 경로에서 두 점은 무작위로 돌연변이 조작을 위해 선택된다. 예를 들어, 하기의 [수학식 9]와 같이 주어진 g1에 대해, '5'와 '3'을 교환하는 돌연변이 연산 후에 g1은 하기의 [수학식 10]과 같이 된다.The mutation operation is based on a predefined probability of mutation. Two points in the progeny's pathway are randomly selected for mutation manipulation. For example, for a given g1 as shown in [Equation 9] below, after a mutation operation exchanging '5' and '3', g1 becomes as shown in [Equation 10] below.

Figure 112019075217512-pat00019
Figure 112019075217512-pat00019

Figure 112019075217512-pat00020
Figure 112019075217512-pat00020

본 발명의 일 실시예에 따른 돌연변이 동작의 순서를 설명하기로 한다.The sequence of the mutation operation according to an embodiment of the present invention will be described.

1: 돌연변이 발생은 시뮬레이션 부분에서 정의된 빈도를 기반으로 하며 최적 경로의 스위치 수가 m이다.1: Mutation generation is based on the frequency defined in the simulation part and the number of switches in the optimal path is m.

2: 2 개의 자연수 n1과 n2를 무작위로 생성한다 (n2 <n1 <m).2: Randomly generate two natural numbers n 1 and n 2 (n2 <n1 <m).

3: 최적 경로 P0의 n1과 n2의 위치에서 스위치를 교환함으로써 새로운 경로 Pn이 얻어진다.3: A new path P n is obtained by exchanging switches at the positions n 1 and n 2 of the optimal path P 0 .

4: P0와 Pn의 적합도를 얻고, 더 작은 값 중 하나가 최적 경로로 선택된다. 본 발명의 일 실시예에 따른 G-ACO의 연산 후에 최적의 경로가 결정되고 그에 따라 패킷이 전송된다. 4: The fit of P 0 and P n is obtained, and one of the smaller values is selected as the optimal path. After the calculation of the G-ACO according to an embodiment of the present invention, an optimal path is determined and a packet is transmitted accordingly.

도 4는 본 발명의 일 실시예에 따른 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치의 구성을 설명하기 위한 구성도이다.4 is a diagram illustrating a configuration of a dynamic load balancing device based on a gene and ant population algorithm according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치(100)는 통신 모듈(110), 메모리(120) 및 프로세서(130)를 포함한다. 그러나 도시된 구성요소 모두가 필수 구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 동적 로드 밸런싱 장치(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 동적 로드 밸런싱 장치(100)가 구현될 수 있다.As shown in FIG. 4, a dynamic load balancing apparatus 100 based on a gene and ant population algorithm according to an embodiment of the present invention includes a communication module 110, a memory 120, and a processor 130. However, not all of the illustrated components are essential components. The dynamic load balancing device 100 may be implemented by more components than the illustrated components, and the dynamic load balancing device 100 may be implemented by fewer components.

이하, 도 4의 동적 로드 밸런싱 장치(100)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.Hereinafter, a detailed configuration and operation of each component of the dynamic load balancing apparatus 100 of FIG. 4 will be described.

통신 모듈(110)은 소프트웨어 정의 네트워크(Software defined network)에서 오픈플로우 프로토콜에 따라 적어도 하나의 스위치와 통신한다. The communication module 110 communicates with at least one switch according to an openflow protocol in a software defined network.

메모리(120)는 적어도 하나의 프로그램을 저장한다. The memory 120 stores at least one program.

프로세서(130)는 통신 모듈(110) 및 메모리(120)와 연결된다. 프로세서(130)는, 적어도 하나의 프로그램을 실행함으로써, 소프트웨어 정의 네트워크에서 개미 집단 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하고, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고, 상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택한다.The processor 130 is connected to the communication module 110 and the memory 120. Processor 130, by executing at least one program, a packet corresponding to the ant according to the ant group algorithm in the software defined network searches at least one switch to reach the host, and the path searched by the packet is an initial population And determine a fitness function using the weight value of the length and length of the path in the acquired initial population, and select a parent path by applying the determined fitness function to the acquired initial population, A child path is selected by applying a cross operation and a mutation operation to the selected parent path, and an optimal path for load balancing is selected based on a fitness calculated by applying the determined fitness function to the selected child path.

실시예들에 따르면, 프로세서(130)는 패킷이 이전 스위치에서 다음으로 방문할 스위치 사이의 상태 전이 확률을 기반으로 다음 스위치를 선택할 수 있다.According to embodiments, the processor 130 may select a next switch based on a state transition probability between a switch that a packet visits from a previous switch to the next.

실시예들에 따르면, 프로세서(130)는 호스트에 도달한 패킷이 방문한 경로 기반으로 동일한 스위치를 다시 방문하는 것을 피하기 위한 타부 테이블(Taboo table) 및 경로 상의 페로몬을 업데이트할 수 있다.According to embodiments, the processor 130 may update a taboo table and a pheromone on the path to avoid revisiting the same switch based on a path visited by a packet arriving at the host.

실시예들에 따르면, 프로세서(130)는 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득할 수 있다.According to embodiments, the processor 130 may obtain the initial population by configuring at least one switch number searched by the packet as a path code.

실시예들에 따르면, 프로세서(130)는 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값의 곱을 적합도 함수로 결정할 수 있다.According to embodiments, the processor 130 may determine a product of the length of the path and the weight value of the length in the acquired initial population as a fitness function.

실시예들에 따르면, 프로세서(130)는 선택된 자식 경로에 대해 산출된 적합도가 기설정된 제약 조건을 만족할 때까지 부모 경로 및 자식 경로를 선택하는 것을 반복 수행할 수 있다.According to embodiments, the processor 130 may repeatedly select the parent path and the child path until the calculated fitness for the selected child path satisfies a preset constraint condition.

실시예들에 따르면, 프로세서(130)는 선택된 부모 경로 상의 페로몬을 교차 연산 및 돌연변이 연산을 통해 선택된 자식 경로 상에 분배시킬 수 있다.According to embodiments, the processor 130 may distribute the pheromone on the selected parent path to the selected child path through cross operation and mutation operation.

실시예들에 따르면, 프로세서(130)는 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 적합도를 계산하고, 계산된 적합도가 최고인 후보 경로와 서브 후보 경로를 상기 부모 경로로 선택할 수 있다.According to embodiments, the processor 130 may calculate a fitness by applying the determined fitness function to the acquired initial population, and select a candidate path and a sub candidate path having the highest calculated fitness as the parent path.

실시예들에 따르면, 프로세서(130)는 부모 경로로 선택된 후보 경로와 서브 후보 경로에서 각각의 교차 세그먼트를 서로 교차하여 삭제하고, 삭제 후 남아 있는 후보 경로와 서브 후보 경로 각각의 시퀀스와 교차 세그먼트를 서로 교차하여 결합하는 교차 연산을 수행할 수 있다.According to embodiments, the processor 130 crosses and deletes each cross segment from the candidate path and the sub candidate path selected as the parent path, and removes the sequence and cross segment of each of the candidate path and the sub candidate path remaining after deletion It is possible to perform a crossover operation that crosses and combines each other.

실시예들에 따르면, 프로세서(130)는 교차 연산이 수행된 부모 경로의 시퀀스에서 무작위로 선택된 두 점을 교환하는 돌연변이 연산을 수행할 수 있다.According to embodiments, the processor 130 may perform a mutation operation that exchanges two randomly selected points in a sequence of a parent path in which the cross operation has been performed.

도 5는 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법에 대한 효과를 검증하기 위한 팻-트리(fat-tree) 토폴로지를 나타낸 도면이다.5 is a diagram illustrating a fat-tree topology for verifying the effect of a dynamic load balancing method according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 팻-트리(fat-tree) 토폴로지는 컨트롤러 1개와 스위치 10개로 구성되어 있다. 팻-트리 토폴로지는 동적 로드 밸런싱 방법에 대한 효과를 검증하기 위해 채택되고, 많은 이점을 가지고 있다. As shown in FIG. 5, a fat-tree topology consists of one controller and ten switches. Fat-tree topology is adopted to verify the effectiveness of the dynamic load balancing method, and has many advantages.

도 6은 본 발명의 일 실시예와 종래의 ACO, GA 알고리즘의 최적 경로를 찾는 성공률 그래프를 나타낸 도면이다.6 is a diagram showing a success rate graph for finding an optimal path of an embodiment of the present invention and a conventional ACO and GA algorithm.

본 발명의 일 실시예에 따른 G-ACO와 종래 기술에 따른 ACO 및 GA 방식을 사용하여 최적 경로를 찾는 성공률이 도 6에 도시되어 있다. 초기 노드에서 최종 노드까지의 최적 경로는 적합도 함수의 계산에 의해 결정될 수 있다. 그런 다음, 각 시뮬레이션 실행 후에 각각의 구성표로 경로를 얻는다. 최적 경로와의 비교에 의해 최적 경로인지 여부를 판단한다. 10 분 시뮬레이션 시간이 세 가지 방식 각각에 대해 실행되고, 성공률이 도 6에서 비교된다. 본 발명의 일 실시예에 따른 G-ACO 방법이 다른 ACO 및 GA 방식 보다 훨씬 높은 약 95 %의 성공률을 허용한다는 것을 알 수 있다. 6 shows a success rate of finding an optimal path using G-ACO according to an embodiment of the present invention and ACO and GA schemes according to the prior art. The optimal path from the initial node to the final node can be determined by calculation of the fitness function. Then, after each simulation run, you get a path to each scheme. It is determined whether it is an optimal path by comparing it with the optimal path. A 10-minute simulation time is run for each of the three approaches, and the success rates are compared in FIG. 6. It can be seen that the G-ACO method according to an embodiment of the present invention allows a success rate of about 95%, which is much higher than other ACO and GA methods.

도 7은 본 발명의 일 실시예와 종래 방식을 사용한 5분 시뮬레이션 시간에 대한 RTT의 비교를 나타낸 도면이다. 7 is a diagram showing a comparison of RTT for a 5-minute simulation time using an embodiment of the present invention and a conventional method.

도 8은 본 발명의 일 실시예와 종래 방식을 사용한 패킷 손실율의 비교를 나타낸 도면이다. 8 is a diagram showing a comparison of a packet loss rate using an embodiment of the present invention and a conventional method.

대상 네트워크에서 각 로드의 대역폭은 100Mbps로 가정한다. iperf 소프트웨어 도구는 5분 및 10분 동안 시뮬레이션 실행에 사용된다. 종래 방식인 RR, ACO 및 본 발명의 일 실시예에 따른 G-ACO가 모의 실험되고, RTT와 패킷 손실률은 도 5의 h1을 패킷의 소스 노드로 하여 수집된다. 5분 시뮬레이션 시간의 시뮬레이션 결과는 도 7 및 도 8에 나와 있다. 본 발명의 일 실시예에 따른 G-ACO 방식의 RTT와 패킷 손실률은 종래 방식에 따른 ACO 방식과 거의 동일하다는 것을 알 수 있다. 시뮬레이션 시간이 5분으로 작으면 초기 단계에서 GA의 계산 오버 헤드가 높고, 본 발명의 일 실시예에 따른 G-ACO 방식으로 경로 선택에 필요한 누적 정보가 충분하지 않다. 이로 인해 G-ACO와 ACO간에 유사한 성능이 발생할 수 있다. It is assumed that the bandwidth of each load in the target network is 100Mbps. The iperf software tool is used to run the simulation for 5 and 10 minutes. Conventional RR, ACO, and G-ACO according to an embodiment of the present invention are simulated, and RTT and packet loss rate are collected using h 1 of FIG. 5 as a source node of the packet. Simulation results of the 5 minute simulation time are shown in FIGS. 7 and 8. It can be seen that the RTT and packet loss rate of the G-ACO method according to an embodiment of the present invention are almost the same as the ACO method according to the conventional method. If the simulation time is as small as 5 minutes, the calculation overhead of the GA is high in the initial stage, and the accumulated information required for path selection is insufficient in the G-ACO method according to an embodiment of the present invention. This can lead to similar performance between G-ACO and ACO.

도 9는 본 발명의 일 실시예와 종래 방식을 사용한 10분 시뮬레이션 시간에 대한 RTT의 비교를 나타낸 도면이다. 9 is a diagram showing a comparison of RTT for a 10-minute simulation time using an embodiment of the present invention and a conventional method.

도 10은 본 발명의 일 실시예와 종래 방식을 사용한 패킷 손실율의 비교를 나타낸 도면이다. 10 is a diagram showing a comparison of a packet loss rate using an embodiment of the present invention and a conventional method.

도 9 및 도 10은 네트워크 실행 시간이 10 분 증가한 결과이다. 본 발명의 일 실시예에 따른 G-ACO 방식은 다른 두 방식과 비교하여 RTT와 패킷 손실률을 상당히 감소시킨다. 이것은 네트워크 작동이 오래 지속되면 더 많은 정보가 누적될 수 있기 때문이다. 본 발명의 일 실시예에 따른 G-ACO 방법은 GA와 ACO의 장점, 즉 GA의 빠른 전역 검색과 ACO의 최적 탐색의 장점을 취한다. 위의 시뮬레이션 결과로부터, 본 발명의 일 실시예에 따른 G-ACO 방법은 다른 두 기법에 비해 RTT와 패킷 손실률을 많이 감소시킨다는 것이 확인되었다. h1-h6의 패킷 손실률은 RR에서 매우 높습니다. 이는 h1-h6의 로드가 경로에서 정체를 유발하기 때문이다. 이 로드의 경우 시간 지연 및 패킷 손실 속도가 매우 크다. ACO를 사용하면 패킷 손실률이 0.28% (h2)~0.38% (h8)로 많이 감소하는 반면, RR에 비해 RTT가 약간 향상된다. 이는 ACO 알고리즘을 사용하여 로드를 분산시키는 효과를 나타낸다. 본 발명의 일 실시예에 따른 G-ACO 알고리즘은 목적지에 관계없이 시간 지연과 패킷 손실률이 거의 같기 때문에 LB에 매우 효과적일 수 있다. 특히 패킷 손실률은 0.13% (h2)~0.20% (h8)로 매우 낮다.9 and 10 are results of an increase in network execution time by 10 minutes. The G-ACO scheme according to an embodiment of the present invention significantly reduces the RTT and packet loss rate compared to the other two schemes. This is because more information can be accumulated if the network operation lasts longer. The G-ACO method according to an embodiment of the present invention takes advantage of GA and ACO, that is, fast global search of GA and optimal search of ACO. From the above simulation results, it was confirmed that the G-ACO method according to an embodiment of the present invention significantly reduces RTT and packet loss rate compared to the other two techniques. The packet loss rate of h 1 -h 6 is very high at RR. This is because the load of h 1 -h 6 causes congestion in the path. For this load, the time delay and packet loss rate are very high. When ACO is used, the packet loss rate is significantly reduced from 0.28% (h 2 ) to 0.38% (h 8 ), whereas the RTT is slightly improved compared to RR. This has the effect of distributing the load by using the ACO algorithm. The G-ACO algorithm according to an embodiment of the present invention can be very effective for LB because time delay and packet loss rate are almost the same regardless of destination. In particular, the packet loss rate is very low, from 0.13% (h 2 ) to 0.20% (h 8 ).

하기의 [표 1]은 h1에서 다른 호스트까지의 경로를 나열한다. 본 발명의 일 실시예에 따른 G-ACO 방법은 RR 및 ACO 방식에 의해 동일한 경로가 취해지며, 다른 방식보다 네트워크 전반에 걸쳐 패킷을 보다 널리 배포한다. RR과 ACO를 사용하여, 7개의 노드 (e7, a3, e8, c2, a6, e9. e10)는 7 개의 목적지에 대해 방문된다. 반면, 본 발명의 일 실시예에 따른 G-ACO 방법을 사용하여, 9 개의 노드 (e7, a4, e8, c1, a6, e9, a3, e9, e10)가 방문된다. 두 개의 추가 노드가 포함되어 있어 패킷을 보다 고르게 분산시킬 수 있으므로 네트워킹 성능을 향상시킬 수 있다.[Table 1] below lists paths from h 1 to other hosts. The G-ACO method according to an embodiment of the present invention takes the same path by the RR and ACO schemes, and distributes packets more widely across the network than other schemes. Using RR and ACO, 7 nodes (e 7 , a 3 , e 8 , c 2 , a 6 , e 9. e 10 ) are visited for 7 destinations. On the other hand, using the G-ACO method according to an embodiment of the present invention, 9 nodes (e 7 , a 4 , e 8 , c 1 , a 6 , e 9 , a 3 , e 9 , e 10 ) are Visited. It includes two additional nodes to distribute packets more evenly, improving networking performance.

Figure 112019075217512-pat00021
Figure 112019075217512-pat00021

도 11은 본 발명의 일 실시예를 실험하기 위해 14 개 노드로 구성된 다른 토폴로지를 나타낸 도면이다. 11 is a diagram showing another topology consisting of 14 nodes to test an embodiment of the present invention.

도 12는 본 발명의 일 실시예와 종래 기술 간의 14 개 노드 토폴로지를 갖는 러닝타임의 비교를 나타낸 도면이다. 12 is a diagram showing a comparison of a running time having a 14 node topology between an embodiment of the present invention and the prior art.

보다 포괄적인 평가를 위해 도 11의 14 개 노드로 구성된 다른 토폴로지로 구성표를 테스트한다. 여기서, srcNode = 1 및 dstNode = 13이며, 파일 데이터는 1Mbps의 속도로 전송된다. 도 12에서 알 수 있듯이 본 발명의 일 실시예에 따른 G-ACO 방법은 일반적인 ACO 방식에 비해 실행 시간을 지속적으로 줄일 수 있다.For a more comprehensive evaluation, the scheme is tested with a different topology consisting of 14 nodes in FIG. 11. Here, srcNode = 1 and dstNode = 13, and file data is transmitted at a rate of 1Mbps. As can be seen from FIG. 12, the G-ACO method according to an embodiment of the present invention can continuously reduce the execution time compared to the general ACO method.

한편, 종래 기술에 따르면, 일반적인 최적화 문제와 마찬가지로 솔루션은 수렴하는 데 오랜 시간이 걸리거나 로컬 최적 조건으로 이어질 수 있다. 또한 운영 시나리오가 변경 될 때 네트워크에 배포하기가 쉽지 않다.On the other hand, according to the prior art, as with general optimization problems, solutions may take a long time to converge or lead to local optimal conditions. Also, it is not easy to deploy to the network when the operating scenario changes.

이를 해결하기 위해, 본 발명의 일 실시예에서는 유전자-개미 집단 최적화(G-ACO)라고 불리는 GA와 ACO를 결합한 SDN의 로드 밸런싱(LB)에 대한 새로운 방법을 제공한다. ACO 알고리즘에 기반한 종래의 방법은 전달될 때 흐름의 경로 정보를 업데이트하기 위해 포지티브 피드백 메커니즘을 사용한다. 그러나 이로 인해 로컬 최적화 솔루션 및 부적절한 경로 선택이 발생할 수 있다. 랜덤 선택 정책은 로컬 최적 솔루션을 피하기 위해 사용될 수 있지만 차선책을 보장하지는 않는다. 이러한 문제는 SDN의 경로 선택에서 ACO의 성능을 제한한다. 로컬 최적 솔루션과 무작위 선택 사이의 절충은 ACO에서 여전히 중요한 문제이다.To solve this, an embodiment of the present invention provides a new method for load balancing (LB) of SDN combining GA and ACO called gene-ant population optimization (G-ACO). The conventional method based on the ACO algorithm uses a positive feedback mechanism to update the path information of the flow as it is delivered. However, this can lead to local optimization solutions and improper path selection. The random selection policy can be used to avoid local optimal solutions, but it does not guarantee the next best thing. This problem limits the ACO's performance in SDN path selection. The trade-off between local optimal solution and random selection is still an important issue in ACO.

따라서 본 발명의 일 실시예에서 GA는 ACO와 함께 채택되어 문제를 완화하고 SDN의 LB를 향상시킬 수 있다. GA는 검색 공간을 효과적으로 줄이기 위해 검색의 두 번째 단계에 적용되며, 그러면 ACO 알고리즘이 LB에 대한 흐름 경로를 효율적으로 찾을 수 있다.Therefore, in an embodiment of the present invention, GA is adopted together with ACO to alleviate the problem and improve the LB of SDN. GA is applied in the second step of the search to effectively reduce the search space, and then the ACO algorithm can efficiently find the flow path for the LB.

이와 같이, 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법은 GA의 빠른 전역 검색과 ACO의 최적 솔루션의 효율적인 검색이라는 장점을 결합하여 로드 밸런싱에 이용한다. 컴퓨터 시뮬레이션 결과는 본 발명의 일 실시예에 따른 동적 로드 밸런싱 방법이 최적 경로, 왕복 시간 및 패킷 손실률을 찾는 속도면에서 RR 및 ACO 알고리즘을 향상 시킨다는 것을 보여준다.As described above, the dynamic load balancing method according to an embodiment of the present invention combines the advantages of fast global search of GA and efficient search of an optimal solution of ACO and uses it for load balancing. Computer simulation results show that the dynamic load balancing method according to an embodiment of the present invention improves the RR and ACO algorithms in terms of the speed of finding the optimum path, round trip time, and packet loss rate.

상술한 본 발명의 실시예들에 따른 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 본 발명의 실시예들에 따른 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.The dynamic load balancing method based on the gene and ant group algorithm in the software defined network according to the embodiments of the present invention may be implemented as a computer-readable code on a computer-readable recording medium. The dynamic load balancing method based on the gene and ant population algorithm in the software defined network according to the embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable recording medium. .

프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금: 소프트웨어 정의 네트워크에서 개미 집단 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하고, 상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고, 상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고, 상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체가 제공될 수 있다.A non-transitory computer-readable storage medium comprising at least one program executable by a processor, wherein when the at least one program is executed by the processor, the processor causes: an ant according to an ant population algorithm in a software defined network A corresponding packet searches for at least one switch to reach the host, obtains the route searched by the packet as an initial population, and uses a weight value of the length and length of the route from the obtained initial population. function), selecting a parent path by applying the determined fitness function to the acquired initial population, selecting a child path by applying a cross operation and a mutation operation to the selected parent path, and selecting a child path to the selected child path. A non-transitory computer-readable storage medium may be provided that includes instructions for selecting an optimal path for load balancing based on the fitness calculated by applying the determined fitness function.

상술한 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.The above-described method according to the present invention may be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording media in which data that can be decoded by a computer system is stored. For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like. In addition, the computer-readable recording medium can be distributed to a computer system connected through a computer communication network, and stored and executed as code that can be read in a distributed manner.

이상, 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to the drawings and examples, it does not mean that the protection scope of the present invention is limited by the drawings or examples, and those skilled in the art It will be appreciated that various modifications and changes can be made to the present invention without departing from the spirit and scope.

구체적으로, 설명된 특징들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 또는 그들의 조합들 내에서 실행될 수 있다. 특징들은 예컨대, 프로그래밍 가능한 프로세서에 의한 실행을 위해, 기계 판독 가능한 저장 디바이스 내의 저장장치 내에서 구현되는 컴퓨터 프로그램 제품에서 실행될 수 있다. 그리고 특징들은 입력 데이터 상에서 동작하고 출력을 생성함으로써 설명된 실시예들의 함수들을 수행하기 위한 지시어들의 프로그램을 실행하는 프로그래밍 가능한 프로세서에 의해 수행될 수 있다. 설명된 특징들은, 데이터 저장 시스템으로부터 데이터 및 지시어들을 수신하기 위해, 및 데이터 저장 시스템으로 데이터 및 지시어들을 전송하기 위해, 결합된 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행될 수 있는 하나 이상의 컴퓨터 프로그램들 내에서 실행될 수 있다. 컴퓨터 프로그램은 소정 결과에 대해 특정 동작을 수행하기 위해 컴퓨터 내에서 직접 또는 간접적으로 사용될 수 있는 지시어들의 집합을 포함한다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어들을 포함하는 프로그래밍 언어 중 어느 형태로 쓰여지고, 모듈, 소자, 서브루틴(subroutine), 또는 다른 컴퓨터 환경에서 사용을 위해 적합한 다른 유닛으로서, 또는 독립 조작 가능한 프로그램으로서 포함하는 어느 형태로도 사용될 수 있다.Specifically, the described features may be implemented in digital electronic circuitry, or computer hardware, firmware, or combinations thereof. Features may be executed in a computer program product implemented in storage in a machine-readable storage device, for example, for execution by a programmable processor. And the features can be performed by a programmable processor executing a program of directives to perform the functions of the described embodiments by operating on input data and generating output. The described features include at least one programmable processor, at least one input device, and at least one output coupled to receive data and directives from the data storage system and to transmit data and directives to the data storage system. It can be executed within one or more computer programs that can be executed on a programmable system including the device. A computer program includes a set of directives that can be used directly or indirectly within a computer to perform a specific action on a given result. A computer program is written in any form of a programming language, including compiled or interpreted languages, and is included as a module, element, subroutine, or other unit suitable for use in another computer environment, or as a independently operable program It can be used in any form.

지시어들의 프로그램의 실행을 위한 적합한 프로세서들은, 예를 들어, 범용 및 특수 용도 마이크로프로세서들 둘 모두, 및 단독 프로세서 또는 다른 종류의 컴퓨터의 다중 프로세서들 중 하나를 포함한다. 또한 설명된 특징들을 구현하는 컴퓨터 프로그램 지시어들 및 데이터를 구현하기 적합한 저장 디바이스들은 예컨대, EPROM, EEPROM, 및 플래쉬 메모리 디바이스들과 같은 반도체 메모리 디바이스들, 내부 하드 디스크들 및 제거 가능한 디스크들과 같은 자기 디바이스들, 광자기 디스크들 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 비휘발성 메모리의 모든 형태들을 포함한다. 프로세서 및 메모리는 ASIC들(application-specific integrated circuits) 내에서 통합되거나 또는 ASIC들에 의해 추가될 수 있다.Suitable processors for execution of a program of directives include, for example, both general and special purpose microprocessors, and either a single processor or multiple processors of a different type of computer. Storage devices suitable for implementing computer program directives and data implementing the described features are, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic devices such as internal hard disks and removable disks. Devices, magneto-optical disks, and all types of non-volatile memory including CD-ROM and DVD-ROM disks. The processor and memory may be integrated within application-specific integrated circuits (ASICs) or added by ASICs.

이상에서 설명한 본 발명은 일련의 기능 블록들을 기초로 설명되고 있지만, 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is described on the basis of a series of functional blocks, but is not limited by the above-described embodiments and the accompanying drawings, and various substitutions, modifications and changes within the scope not departing from the technical spirit of the present invention It will be apparent to those of ordinary skill in the art to which this invention pertains.

전술한 실시예들의 조합은 전술한 실시예에 한정되는 것이 아니며, 구현 및/또는 필요에 따라 전술한 실시예들 뿐 아니라 다양한 형태의 조합이 제공될 수 있다.Combinations of the above-described embodiments are not limited to the above-described embodiments, and combinations of various types as well as the above-described embodiments may be provided according to implementation and/or need.

전술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described embodiments, the methods are described on the basis of a flow chart as a series of steps or blocks, but the present invention is not limited to the order of steps, and certain steps may occur in a different order or concurrently with other steps as described above. I can. In addition, those of ordinary skill in the art understand that the steps shown in the flowchart are not exclusive, other steps are included, or one or more steps in the flowchart may be deleted without affecting the scope of the present invention. You can understand.

전술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.The above-described embodiments include examples of various aspects. Although not all possible combinations for representing the various aspects can be described, those of ordinary skill in the art will recognize that other combinations are possible. Accordingly, the present invention will be said to include all other replacements, modifications and changes falling within the scope of the following claims.

100: 동적 로드 밸런싱 장치
110: 통신 모듈
120: 메모리
130: 프로세서
100: dynamic load balancer
110: communication module
120: memory
130: processor

Claims (21)

소프트웨어 정의 네트워크(Software defined network)에서 동적 로드 밸런싱 장치에 의해 수행되는 동적 로드 밸런싱 방법에 있어서,
상기 소프트웨어 정의 네트워크에서 개미 집단(Ant Colony) 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하는 단계;
상기 획득된 초기 모집단에서 상기 경로의 길이와 상기 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하는 단계;
상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하는 단계; 및
상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하는 단계를 포함하고,
상기 초기 모집단으로 획득하는 단계는, 상기 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
In a dynamic load balancing method performed by a dynamic load balancing device in a software defined network,
In the software defined network, a packet corresponding to an ant according to an Ant Colony algorithm reaches a host by searching at least one switch, and obtaining a path searched by the packet as an initial population;
Determining a fitness function using a length of the path and a weight value of the length in the acquired initial population;
Selecting a parent path by applying the determined fitness function to the obtained initial population, and selecting a child path by applying a cross operation and a mutation operation to the selected parent path; And
And selecting an optimal path for load balancing based on a fitness calculated by applying the determined fitness function to the selected child path,
In the step of obtaining the initial population, the at least one switch number searched by the packet is configured as a path code and obtained as an initial population, a dynamic load balancing method based on a gene and ant population algorithm in a software defined network.
제1항에 있어서,
상기 초기 모집단으로 획득하는 단계는,
상기 패킷이 이전 스위치에서 다음으로 방문할 스위치 사이의 상태 전이 확률을 기반으로 다음 스위치를 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of obtaining as the initial population,
A dynamic load balancing method based on a genetic and ant population algorithm in a software defined network, wherein the packet selects a next switch based on a state transition probability between a switch to be visited next from a previous switch.
제1항에 있어서,
상기 초기 모집단으로 획득하는 단계는,
상기 호스트에 도달한 패킷이 방문한 경로 기반으로 동일한 스위치를 다시 방문하는 것을 피하기 위한 타부 테이블(Taboo table) 및 경로 상의 페로몬을 업데이트하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of obtaining as the initial population,
A dynamic load balancing method based on a gene and ant population algorithm in a software defined network for updating a taboo table and a pheromone on the path to avoid revisiting the same switch based on the path visited by the packet arriving at the host.
삭제delete 제1항에 있어서,
상기 적합도 함수를 결정하는 단계는,
상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값의 곱을 적합도 함수로 결정하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of determining the fitness function,
Gene and ant population algorithm-based dynamic load balancing method in a software-defined network, determining a product of a weight value of a path length and a length in the obtained initial population as a fitness function.
제1항에 있어서,
상기 자식 경로를 선택하는 단계는,
상기 선택된 자식 경로에 대해 산출된 적합도가 기설정된 제약 조건을 만족할 때까지 반복 수행되는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of selecting the child path,
A dynamic load balancing method based on a gene and ant population algorithm in a software defined network, which is repeatedly performed until the calculated fitness for the selected child path satisfies a preset constraint condition.
제1항에 있어서,
상기 자식 경로를 선택하는 단계는,
상기 선택된 부모 경로 상의 페로몬을 교차 연산 및 돌연변이 연산을 통해 선택된 자식 경로 상에 분배시키는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of selecting the child path,
A dynamic load balancing method based on a gene and ant population algorithm in a software defined network, distributing the pheromones on the selected parental path to the selected child paths through a crossover operation and a mutation operation.
제1항에 있어서,
상기 자식 경로를 선택하는 단계는,
상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 적합도를 계산하고, 상기 계산된 적합도가 최고인 후보 경로와 서브 후보 경로를 상기 부모 경로로 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of selecting the child path,
Gene and ant population algorithm-based dynamic loading in a software-defined network, in which a goodness of fit is calculated by applying the determined goodness-of-fit function to the obtained initial population, and the candidate path and sub-candidate path with the highest calculated fitness are selected as the parent path Balancing method.
제6항에 있어서,
상기 자식 경로를 선택하는 단계는,
상기 부모 경로로 선택된 후보 경로와 서브 후보 경로에서 각각의 교차 세그먼트를 서로 교차하여 삭제하고, 삭제 후 남아 있는 후보 경로와 서브 후보 경로 각각의 시퀀스와 교차 세그먼트를 서로 교차하여 결합하는 교차 연산을 수행하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 6,
The step of selecting the child path,
Performing a crossover operation of crossing and combining each crossing segment from the candidate path and the sub candidate path selected as the parent path by crossing each other, and combining the sequence and the cross segment of each of the candidate path and sub candidate path remaining after deletion , A dynamic load balancing method based on genetic and ant population algorithms in a software-defined network.
제1항에 있어서,
상기 자식 경로를 선택하는 단계는,
교차 연산이 수행된 부모 경로의 시퀀스에서 무작위로 선택된 두 점을 교환하는 돌연변이 연산을 수행하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 방법.
The method of claim 1,
The step of selecting the child path,
A dynamic load balancing method based on genetic and ant population algorithms in a software-defined network that performs a mutation operation that exchanges two randomly selected points in a sequence of a parental path in which a cross operation is performed.
소프트웨어 정의 네트워크(Software defined network)에서 오픈플로우 프로토콜에 따라 적어도 하나의 스위치와 통신하는 통신 모듈;
적어도 하나의 프로그램을 저장하는 메모리; 및
상기 메모리와 연결된 프로세서를 포함하고,
상기 프로세서는, 상기 적어도 하나의 프로그램을 실행함으로써,
소프트웨어 정의 네트워크에서 개미 집단(Ant Colony) 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하되, 상기 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득하고,
상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고,
상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고,
상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
A communication module communicating with at least one switch according to an openflow protocol in a software defined network;
A memory for storing at least one program; And
Including a processor connected to the memory,
The processor, by executing the at least one program,
In a software-defined network, a packet corresponding to an ant according to the Ant Colony algorithm searches at least one switch to reach the host, and the path searched by the packet is obtained as an initial population, but at least One switch number is configured as a route code and acquired as an initial population,
A fitness function is determined by using the weight value of the length and length of the path in the acquired initial population,
Selecting a parent path by applying the determined fitness function to the obtained initial population, and selecting a child path by applying a cross operation and a mutation operation to the selected parent path,
Gene and ant population algorithm-based dynamic load balancing device in a software defined network for selecting an optimal path for load balancing based on a fitness calculated by applying the determined fitness function to the selected child path.
제11항에 있어서,
상기 프로세서는,
상기 패킷이 이전 스위치에서 다음으로 방문할 스위치 사이의 상태 전이 확률을 기반으로 다음 스위치를 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
A dynamic load balancing device based on a gene and ant population algorithm in a software defined network, wherein the packet selects a next switch based on a state transition probability between a switch to be visited next from a previous switch.
제11항에 있어서,
상기 프로세서는,
상기 호스트에 도달한 패킷이 방문한 경로 기반으로 동일한 스위치를 다시 방문하는 것을 피하기 위한 타부 테이블(Taboo table) 및 경로 상의 페로몬을 업데이트하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
A dynamic load balancing device based on a gene and ant population algorithm in a software defined network for updating a taboo table and a pheromone on the path to avoid revisiting the same switch based on the path visited by the packet arriving at the host.
삭제delete 제11항에 있어서,
상기 프로세서는,
상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값의 곱을 적합도 함수로 결정하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
Gene and ant population algorithm-based dynamic load balancing device in a software-defined network for determining a product of a weight value of a path length and a length in the obtained initial population as a fitness function.
제11항에 있어서,
상기 프로세서는,
상기 선택된 자식 경로에 대해 산출된 적합도가 기설정된 제약 조건을 만족할 때까지 부모 경로 및 자식 경로를 선택하는 것을 반복 수행하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
A dynamic load balancing device based on a gene and ant population algorithm in a software-defined network for repeatedly selecting a parent path and a child path until the calculated fitness for the selected child path satisfies a preset constraint condition.
제11항에 있어서,
상기 프로세서는,
상기 선택된 부모 경로 상의 페로몬을 교차 연산 및 돌연변이 연산을 통해 선택된 자식 경로 상에 분배시키는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
Gene and ant population algorithm-based dynamic load balancing device in a software-defined network, distributing the pheromone on the selected parental path to the selected child path through a crossover operation and a mutation operation.
제11항에 있어서,
상기 프로세서는,
상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 적합도를 계산하고, 상기 계산된 적합도가 최고인 후보 경로와 서브 후보 경로를 상기 부모 경로로 선택하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
Gene and ant population algorithm-based dynamic loading in a software-defined network, in which a goodness of fit is calculated by applying the determined goodness-of-fit function to the obtained initial population, and the candidate path and sub-candidate path with the highest calculated fitness are selected as the parent path Balancing device.
제16항에 있어서,
상기 프로세서는,
상기 부모 경로로 선택된 후보 경로와 서브 후보 경로에서 각각의 교차 세그먼트를 서로 교차하여 삭제하고, 삭제 후 남아 있는 후보 경로와 서브 후보 경로 각각의 시퀀스와 교차 세그먼트를 서로 교차하여 결합하는 교차 연산을 수행하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 16,
The processor,
Performing a crossover operation of crossing and combining each crossing segment from the candidate path and the sub candidate path selected as the parent path by crossing each other, and combining the sequence and the cross segment of each of the candidate path and sub candidate path remaining after deletion , A dynamic load balancing device based on genetic and ant population algorithms in a software-defined network.
제11항에 있어서,
상기 프로세서는,
교차 연산이 수행된 부모 경로의 시퀀스에서 무작위로 선택된 두 점을 교환하는 돌연변이 연산을 수행하는, 소프트웨어 정의 네트워크에서 유전자 및 개미 집단 알고리즘 기반 동적 로드 밸런싱 장치.
The method of claim 11,
The processor,
A dynamic load balancing device based on a gene and ant population algorithm in a software-defined network that performs a mutation operation that exchanges two randomly selected points in a sequence of a parental path in which a cross operation is performed.
프로세서에 의해 실행 가능한 적어도 하나의 프로그램을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 적어도 하나의 프로그램은 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
소프트웨어 정의 네트워크에서 개미 집단 알고리즘에 따른 개미와 대응되는 패킷이 적어도 하나의 스위치를 탐색하여 호스트에 도달하고, 상기 패킷이 탐색한 경로를 초기 모집단으로 획득하되, 상기 패킷이 탐색한 적어도 하나의 스위치 번호를 경로 코드로 구성하여 초기 모집단으로 획득하고,
상기 획득된 초기 모집단에서 경로의 길이와 길이의 가중치 값을 이용하여 적합도 함수(Fitness function)를 결정하고,
상기 획득된 초기 모집단에 상기 결정된 적합도 함수를 적용하여 부모 경로를 선택하고, 상기 선택된 부모 경로에 교차 연산 및 돌연변이 연산을 적용하여 자식 경로를 선택하고,
상기 선택된 자식 경로에 상기 결정된 적합도 함수를 적용하여 산출된 적합도 기반으로 로드 밸런싱에 대한 최적 경로를 선택하게 하는 명령어들을 포함하는, 비 일시적 컴퓨터 판독 가능한 저장 매체.
A non-transitory computer-readable storage medium comprising at least one program executable by a processor, wherein the at least one program, when executed by the processor, causes the processor to:
In a software-defined network, a packet corresponding to an ant according to an ant group algorithm searches at least one switch to reach a host, and the path searched by the packet is obtained as an initial population, at least one switch number searched by the packet Is obtained as the initial population by configuring the path code,
A fitness function is determined by using the weight value of the length and length of the path in the acquired initial population,
Selecting a parent path by applying the determined fitness function to the obtained initial population, and selecting a child path by applying a cross operation and a mutation operation to the selected parent path,
A non-transitory computer-readable storage medium comprising instructions for selecting an optimal path for load balancing based on a fitness calculated by applying the determined fitness function to the selected child path.
KR1020190088564A 2019-07-22 2019-07-22 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network KR102165865B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190088564A KR102165865B1 (en) 2019-07-22 2019-07-22 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190088564A KR102165865B1 (en) 2019-07-22 2019-07-22 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network

Publications (1)

Publication Number Publication Date
KR102165865B1 true KR102165865B1 (en) 2020-10-14

Family

ID=72846778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190088564A KR102165865B1 (en) 2019-07-22 2019-07-22 Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network

Country Status (1)

Country Link
KR (1) KR102165865B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543151A (en) * 2020-11-25 2021-03-23 中移(杭州)信息技术有限公司 SDN controller deployment method and device, electronic equipment and storage medium
CN113050426A (en) * 2021-03-22 2021-06-29 山东大学 Genetic ant colony algorithm fused thermal management control method and system
CN114158105A (en) * 2021-11-08 2022-03-08 石河子大学 Routing method and device applied to wireless sensor network of comprehensive energy system
CN115499376A (en) * 2022-07-29 2022-12-20 天翼云科技有限公司 Load balancing method, system, electronic equipment and storage medium
CN116892866A (en) * 2023-07-25 2023-10-17 东方空间技术(山东)有限公司 Rocket sublevel recovery track planning method, rocket sublevel recovery track planning equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090073937A (en) * 2007-12-31 2009-07-03 강환일 Method for short term electric load prediction system with the genetic algorithm and the fuzzy system
WO2018000240A1 (en) * 2016-06-29 2018-01-04 Orange Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090073937A (en) * 2007-12-31 2009-07-03 강환일 Method for short term electric load prediction system with the genetic algorithm and the fuzzy system
WO2018000240A1 (en) * 2016-06-29 2018-01-04 Orange Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘An ACO-based Link Load-Balancing Algorithm in SDN,‘ proc. of 2016 7th International Conference on Cloud Computing and Big Data, 2016.11.* *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543151A (en) * 2020-11-25 2021-03-23 中移(杭州)信息技术有限公司 SDN controller deployment method and device, electronic equipment and storage medium
CN113050426A (en) * 2021-03-22 2021-06-29 山东大学 Genetic ant colony algorithm fused thermal management control method and system
CN114158105A (en) * 2021-11-08 2022-03-08 石河子大学 Routing method and device applied to wireless sensor network of comprehensive energy system
CN114158105B (en) * 2021-11-08 2023-07-25 石河子大学 Routing method and device of wireless sensor network applied to comprehensive energy system
CN115499376A (en) * 2022-07-29 2022-12-20 天翼云科技有限公司 Load balancing method, system, electronic equipment and storage medium
CN115499376B (en) * 2022-07-29 2024-01-02 天翼云科技有限公司 Load balancing method, system, electronic equipment and storage medium
CN116892866A (en) * 2023-07-25 2023-10-17 东方空间技术(山东)有限公司 Rocket sublevel recovery track planning method, rocket sublevel recovery track planning equipment and storage medium
CN116892866B (en) * 2023-07-25 2024-01-23 东方空间技术(山东)有限公司 Rocket sublevel recovery track planning method, rocket sublevel recovery track planning equipment and storage medium

Similar Documents

Publication Publication Date Title
KR102165865B1 (en) Methods and apparatuses for dynamic load balancing based on genetic-ant colony algorithm in software defined network
US6633544B1 (en) Efficient precomputation of quality-of-service routes
Jimenez et al. On the controller placement for designing a distributed SDN control layer
Baran et al. A new approach for AntNet routing
KR101809779B1 (en) Automated traffic engineering for 802.1aq based upon the use of link utilization as feedback into the tie-breaking mechanism
Qiu et al. Fastrule: Efficient flow entry updates for tcam-based openflow switches
Sakamoto et al. Performance analysis of two wireless mesh network architectures by WMN-SA and WMN-TS simulation systems
TW201212589A (en) Automated traffic engineering for fat tree networks
Shirmarz et al. An adaptive greedy flow routing algorithm for performance improvement in software‐defined network
Luo et al. Practical flow table aggregation in SDN
Nguyen et al. Slick packets
JP6492660B2 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, CONTROL METHOD, AND PROGRAM
JPWO2012141241A1 (en) Network, data transfer node, communication method and program
Zhang et al. AFSndn: A novel adaptive forwarding strategy in named data networking based on Q-learning
Srikanth et al. Congestion control mechanism in software defined networking by traffic rerouting
Li et al. An optimal and dynamic elephant flow scheduling for SDN-based data center networks
JP5682620B2 (en) Route selection method, information processing apparatus, network system, and route selection program
Pu Pro^NDN: MCDM-Based Interest Forwarding and Cooperative Data Caching for Named Data Networking
Abdi et al. La-mdpf: A forwarding strategy based on learning automata and markov decision process in named data networking
Maniscalco et al. Binary and m-ary encoding in applications of tree-based genetic algorithms for QoS routing
Satyananda et al. A multi-objective QoS optimization with fuzzy based parameter setting for real-time multicasting
Kaur et al. Casting multipath behavior into OANTALG to improve QoS
Zang et al. An SDN based fast rerouting mechanism for elephant flows in DCN
Lin et al. Proactive multipath routing with a predictive mechanism in software‐defined networks
Lee et al. Hybrid multipath routing algorithms for load balancing in MPLS based IP network

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant