KR102346417B1 - Method for selecting leader controller node in decentralized software-defined network - Google Patents

Method for selecting leader controller node in decentralized software-defined network Download PDF

Info

Publication number
KR102346417B1
KR102346417B1 KR1020210124473A KR20210124473A KR102346417B1 KR 102346417 B1 KR102346417 B1 KR 102346417B1 KR 1020210124473 A KR1020210124473 A KR 1020210124473A KR 20210124473 A KR20210124473 A KR 20210124473A KR 102346417 B1 KR102346417 B1 KR 102346417B1
Authority
KR
South Korea
Prior art keywords
node
leader
controller
domain
nodes
Prior art date
Application number
KR1020210124473A
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 KR1020210124473A priority Critical patent/KR102346417B1/en
Application granted granted Critical
Publication of KR102346417B1 publication Critical patent/KR102346417B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to a method for selecting a leader controller in a decentralized software-defined network. The method includes the steps of: calculating a stability value for mobility of each of a plurality of controller nodes; generating a two-layer virtual loop in and out of a plurality of domains based on the calculated stability value; and synchronizing information about each node in and out of the plurality of domains based on the two-layer virtual loop. Accordingly, a load applied to a reader can be reduced.

Description

분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법{METHOD FOR SELECTING LEADER CONTROLLER NODE IN DECENTRALIZED SOFTWARE-DEFINED NETWORK}METHOD FOR SELECTING LEADER CONTROLLER NODE IN DECENTRALIZED SOFTWARE-DEFINED NETWORK

본 발명은 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법에 관한 것으로서, 특히 SDN 컨트롤러의 이동성 조건을 고려하여 효율적인 컨트롤러 리더를 선택하여, 동기화 효율성 및 처리 성능을 향상시킬 수 있도록 한 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법에 관한 것이다. The present invention relates to a method for selecting a leader controller in a distributed software-defined network, and in particular, a distributed software-defined network capable of improving synchronization efficiency and processing performance by selecting an efficient controller leader in consideration of the mobility condition of the SDN controller. It relates to the method of selecting a leader controller in

SDN(Software Defined networking, 소프트웨어 정의 네트워킹, 이하 SDN) 기술은 네트워크의 모든 장비를 지능화된 중앙 관리 시스템에 의해 관리하는 기술을 말한다. SDN 기술은 네트워크 관리 및 운용 등에서 발생하는 높은 비용을 해결하기 위해 제안된 것으로, 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신 처리하게 함으로써, 기존 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다. 즉, SDN 기술은 기존의 네트워크 구조와 다르게 제어 평면과 데이터 평면을 분리하는 구조를 갖는다. SDN (Software Defined Networking, hereinafter SDN) technology refers to a technology that manages all devices in a network by an intelligent central management system. The SDN technology was proposed to solve the high cost incurred in network management and operation, etc. By having the control operation related to packet processing performed by the existing hardware type network equipment itself be handled by the controller provided in the form of software instead. It has the advantage of being able to develop and provide various functions compared to the existing network structure. That is, the SDN technology has a structure that separates the control plane and the data plane, unlike the existing network structure.

한편, 기존 SDN 기술의 경우 SDN 컨트롤러 간 동기화를 수행함에 있어, SDN 컨트롤러에 대한 이동성을 고려하고 있지 않아 동기화 효율성 저하 및 처리 성능 저하 문제가 있었다.On the other hand, in the case of the existing SDN technology, when performing synchronization between SDN controllers, the mobility of the SDN controller is not considered, so there are problems in synchronization efficiency and processing performance.

Open Networking Foundation, "OpenFlow Specification 1.3.0"(2012.6.25.) Open Networking Foundation, "OpenFlow Specification 1.3.0" (2012.6.25.)

본 발명이 해결하고자 하는 과제는 SDN 컨트롤러의 이동성 조건을 고려하여 효율적인 컨트롤러 리더를 선택하여, 동기화 효율성 및 처리 성능을 향상시킬 수 있는, 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법을 제공하는 것이다.An object of the present invention is to provide a method for selecting a leader controller in a distributed software-defined network, which can improve synchronization efficiency and processing performance by selecting an efficient controller leader in consideration of the mobility condition of the SDN controller.

다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problems to be solved by the present invention are not limited to the problems described above, and other problems may exist.

상술한 과제를 해결하기 위한 본 발명의 일 측면에 따른 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법은 복수의 컨트롤러 노드 각각의 이동성에 대한 안정성 값을 산출하는 단계; 상기 산출된 안정성 값을 기반으로 복수의 도메인 내외에서의 2 계층 가상 고리를 생성하는 단계; 및 상기 2 계층 가상 고리에 기반하여 복수의 도메인 내외에서의 각 노드에 대한 정보를 동기화하는 단계를 포함한다. A method for selecting a leader controller in a distributed software-defined network according to an aspect of the present invention for solving the above-described problems includes calculating a stability value for the mobility of each of a plurality of controller nodes; generating a two-layer virtual loop in and out of a plurality of domains based on the calculated stability value; and synchronizing information about each node in and out of a plurality of domains based on the two-layer virtual loop.

본 발명의 일부 실시예에서, 상기 산출된 안정성 값을 기반으로 복수의 도메인 내외에서의 2 계층 가상 고리를 생성하는 단계는, 상기 안정성 값을 기반으로 도메인 내 하위 계층 가상 고리를 생성하는 단계; 및 상기 복수의 도메인 중 이웃 도메인에 위치한 상기 하위 계층 가상 고리 내 리더 컨트롤러 노드(이하, 리더 노드)를 서로 이웃으로 설정한 상위 계층 가상 고리를 생성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the generating of a two-layer virtual ring inside and outside a plurality of domains based on the calculated stability value includes: generating a lower-level virtual ring within a domain based on the stability value; and generating an upper layer virtual ring in which leader controller nodes (hereinafter, leader nodes) in the lower layer virtual ring located in neighboring domains among the plurality of domains are set as neighbors.

본 발명의 일부 실시예에서, 복수의 컨트롤러 노드 각각의 이동성에 대한 안정성 값을 산출하는 단계는, 1홉을 기준으로 하는 t-1 시점에서의 과거 연결 노드 수와 t 시점에서의 현재 연결 노드 수를 비교하여 중복 연결 노드 수를 산출하는 단계; 및 상기 현재 연결 노드 수 대비 중복 연결 노드 수의 비율을 기반으로 상기 안정성 값을 산출하는 단계를 포함할 수 있다.In some embodiments of the present invention, the calculating of the stability value for the mobility of each of the plurality of controller nodes includes the number of past connected nodes at time t-1 based on one hop and the number of current connected nodes at time t. calculating the number of duplicate connection nodes by comparing them; and calculating the stability value based on a ratio of the number of redundantly connected nodes to the current number of connected nodes.

본 발명의 일부 실시예에서, 상기 안정성 값을 기반으로 도메인 내 하위 계층 가상 고리를 생성하는 단계는, 상기 도메인 내 각 컨트롤러 노드에 대하여 산출된 안정성 값을 내림차순으로 정렬하여 가상 고리를 생성하는 단계; 상기 가상 고리 내 가장 큰 안정성 값을 갖는 컨트롤러 노드를 리더 노드로 설정하는 단계; 상기 리더 노드에서 후보 컨트롤러 노드(이하, 후보 노드) 및 추종 컨트롤러 노드(이하, 추종 노드)를 결정하는 단계; 및 상기 리더 노드, 후보 노드 및 추종 노드를 포함하는 상기 하위 계층 가상 고리를 구성하는 단계를 포함할 수 있다.In some embodiments of the present invention, the generating of the lower layer virtual ring in the domain based on the stability value includes: generating a virtual ring by arranging the calculated stability values for each controller node in the domain in descending order; setting a controller node having the largest stability value in the virtual loop as a leader node; determining, at the leader node, a candidate controller node (hereinafter, a candidate node) and a following controller node (hereinafter, a following node); and configuring the lower-level virtual loop including the leader node, candidate node, and follower node.

본 발명의 일부 실시예에서, 상기 리더 노드에서 후보 노드 및 추종 노드를 결정하는 단계는, 상기 도메인 내 포함된 복수의 노드들에 대한 안정성 값의 제1 평균값을 산출하는 단계; 상기 제1 평균값 이상의 안정성 값을 갖는 노드들에 대한 안정성 값의 제2 평균값을 산출하는 단계; 및 상기 제2 평균값 이상의 안정성 값을 갖는 노드를 후보 노드로 설정하고, 나머지를 추종 노드로 설정하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of determining a candidate node and a follower node in the leader node includes: calculating a first average value of stability values for a plurality of nodes included in the domain; calculating a second average value of stability values for nodes having stability values greater than or equal to the first average value; and setting a node having a stability value equal to or greater than the second average value as a candidate node and setting the remaining nodes as follower nodes.

본 발명의 일부 실시예는, 상기 리더 노드의 이동에 따라 상기 제2 평균값 미만의 안정성 값을 갖는 경우, 상기 리더 노드를 추종 노드로 전환하는 단계; 및 상기 후보 노드 중 차순위 안정성 값을 갖는 후보 노드를 리더 노드로 설정하는 단계를 더 포함할 수 있다.In some embodiments of the present invention, when the leader node has a stability value less than the second average value according to the movement of the leader node, converting the leader node to a follower node; and setting a candidate node having a next-order stability value among the candidate nodes as a leader node.

본 발명의 일부 실시예는, 상기 후보 노드가 리더 노드로 전환됨에 따라, 신규 리더 노드가 타 도메인의 리더 노드로 리더 노드 변경 메시지를 전송하는 단계; 및 상기 신규 리더 노드가 상기 도메인 내 2 계층 가상 고리 가상 고리 생성 과정을 재 수행하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, when the candidate node is converted to a leader node, a new leader node transmitting a leader node change message to a leader node of another domain; and re-performing, by the new leader node, a process of creating a two-layer virtual ring in the domain again.

본 발명의 일부 실시예는, 상기 후보 노드의 이동에 따라 상기 제1 평균값 미만의 안정성 값을 갖는 경우, 상기 후보 노드를 추종 노드로 전환하는 단계; 상기 후보 노드가 추종 노드로 전환됨에 따라 도메인 내 리더 노드가 후보 노드의 기능을 동시에 수행하는 단계; 및 상기 후보 노드 및 추종 노드를 재설정하는 단계를 더 포함할 수 있다.In some embodiments of the present invention, when the candidate node has a stability value less than the first average value according to the movement of the candidate node, converting the candidate node to a follower node; a step in which a leader node in a domain simultaneously performs a function of a candidate node as the candidate node is converted into a follower node; and reconfiguring the candidate node and the following node.

본 발명의 일부 실시예는, 상기 추종 노드의 이동에 따라 해당 도메인을 벗어난 경우, 상기 추종 노드의 이웃 노드들이 후보 노드로 장애 정보를 전송하는 단계; 및 후보 노드가 상기 장애 정보를 반영하여 상기 도메인의 하위 계층 가상 고리 생성 과정을 재 수행하는 단계를 더 포함할 수 있다.In some embodiments of the present invention, when the following node leaves the corresponding domain according to the movement of the following node, neighboring nodes of the following node transmit failure information to a candidate node; and re-performing, by the candidate node, the process of creating a lower layer virtual ring of the domain by reflecting the failure information.

본 발명의 일부 실시예에서, 상기 2 계층 가상 고리에 기반하여 복수의 도메인 내외에서의 각 노드에 대한 정보를 동기화하는 단계는, 상기 도메인 내 후보 노드가 각 추종 노드의 이동성 정보 및 연결성 정보를 포함하는 도메인 정보를 수집하는 단계; 및 상기 도메인 내 리더 노드가 타 도메인 내 리더 노드로 상기 도메인 정보를 전달하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of synchronizing information on each node in and out of a plurality of domains based on the two-layer virtual loop includes: a candidate node in the domain including mobility information and connectivity information of each follower node collecting domain information; and transmitting, by the leader node in the domain, the domain information to a leader node in another domain.

본 발명의 일부 실시예에서, 상기 도메인 내 후보 노드가 복수 개인 경우, 상기 각 추종 노드는 최근접한 후보 노드를 선택하여 상기 이동성 정보 및 연결성 정보를 전송하고, 상기 복수의 후보 노드 중 안정성 값이 큰 후보 노드가 상기 하위 계층 가상 고리를 형성 및 관리할 수 있다.In some embodiments of the present invention, when there are a plurality of candidate nodes in the domain, each of the following nodes selects the closest candidate node and transmits the mobility information and the connectivity information, and among the plurality of candidate nodes, the stability value is large. A candidate node may form and manage the lower layer virtual loop.

본 발명의 일부 실시예는, 도메인 내 생성된 신규 노드와 최근거리에 위치한 소정의 노드(이하, 최근거리 노드)가 신규 노드의 과거 연결 노드 수 및 현재 연결 노드 수 정보를 수신하는 단계; 상기 최근거리 노드가 상기 신규 노드의 안정성 값을 산출하여 도메인 내 후보 노드로 전송하는 단계; 상기 후보 노드가 상기 신규 노드의 안정성 값을 기반으로 하위 계층 가상 고리를 갱신하는 단계; 상기 갱신된 하위 계층 가상 고리의 정보를 리더 노드로 전달하는 단계; 및 상기 리더 노드가 갱신된 도메인 정보를 타 도메인 내 리더 노드로 전달하는 단계를 더 포함할 수 있다.According to some embodiments of the present invention, a method comprising: receiving, by a predetermined node (hereinafter, a nearest node) located at a nearest distance from a new node created in a domain; information on the number of past connected nodes and the number of currently connected nodes of the new node; calculating, by the nearest node, a stability value of the new node and transmitting it to a candidate node in the domain; updating, by the candidate node, a lower layer virtual loop based on the stability value of the new node; transmitting the updated lower-level virtual ring information to a leader node; and transmitting, by the leader node, the updated domain information to a leader node in another domain.

본 발명의 일부 실시예에서, 상기 후보 노드가 상기 신규 노드의 안정성 값을 기반으로 하위 계층 가상 고리를 갱신하는 단계는, 상기 신규 노드의 이웃 노드로 구성될 각 노드와, 상기 최근거리 노드 및 상기 신규 노드로 상기 갱신된 하위 계층가상 고리의 정보를 전달하는 단계를 포함할 수 있다.In some embodiments of the present invention, the step of the candidate node updating the lower hierarchical virtual loop based on the stability value of the new node comprises: each node to be configured as a neighboring node of the new node; It may include transmitting the updated lower-level virtual ring information to the new node.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.A computer program according to another aspect of the present invention for solving the above problems is combined with a computer that is hardware to execute a method for selecting a reader controller in the distributed software defined network, and is stored in a computer readable recording medium.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

첫째로, 기존의 분산 SDN은 모든 SDN 노드의 통신을 주고받기 때문에 큰 비용이 발생하였으나, 본 발명의 일 실시예에 따르면 리더 노드 간에 도메인의 정보를 주고받기 때문에 기존의 분산 SDN 방식 보다 통신 오버헤드가 감소하는 장점이 있다.First, the existing distributed SDN causes a large cost because communication of all SDN nodes is exchanged. However, according to an embodiment of the present invention, since domain information is exchanged between leader nodes, communication overhead is higher than that of the existing distributed SDN method. has the advantage of being reduced.

둘째로, 기존의 리더 노드 동기화 방식은 리더 노드가 도메인 내/간의 통신을 모두 수행하기 때문에 통신 오버헤드 및 지연(delay)이 발생할 수 있으나, 본 발명의 일 실시예에 따르면 리더 또는 후보 노드의 장애가 발생할 경우, 후보 노드가 리더 노드의 역할을 수행하고, 리더 노드가 후보 노드의 역할을 수행할 수 있어서 동적인 환경에서 가상 고리 구조를 유지하는 데 있어서 자기조직화(self-organization)가 가능하다. Second, in the existing leader node synchronization method, communication overhead and delay may occur because the leader node performs all intra/inter-domain communication. However, according to an embodiment of the present invention, failure of the leader or candidate node may occur. When this occurs, the candidate node can perform the role of the leader node, and the leader node can perform the role of the candidate node, so that self-organization is possible in maintaining the virtual loop structure in a dynamic environment.

셋째로, 본 발명의 일 실시예는 복수의 도메인마다 역할이 다른 각각의 리더가 존재하기 때문에, 기존의 리더 노드 하나가 도메인 내/간의 통신을 모두 책임져야 하는 클러스터 구조와 비교해서 가용성이 증가하고, 리더에 가해지는 부하를 줄일 수 있는 효과가 있다.Third, in one embodiment of the present invention, since each leader with a different role for each of a plurality of domains exists, availability is increased compared to a cluster structure in which one existing leader node is responsible for all intra/inter-domain communication, and , it has the effect of reducing the load on the leader.

넷째로, 일반 도메인에서의 노드들은 다른 노드의 장애 및 상태 변화를 빠르게 인식하지 못하나, 본 발명의 일 실시예에서는 가상 고리 구조를 사용하여 추종 노드의 장애 및 상태 변화가 발생하면, 가상 고리에 연결된 이웃 노드와 후보 노드 간의 통신을 통해 빠르게 장애를 인식하고 통신을 복구할 수 있다.Fourth, nodes in the general domain do not quickly recognize failures and state changes of other nodes, but in an embodiment of the present invention, when failures and state changes of the following nodes occur using a virtual ring structure, the nodes connected to the virtual ring Through communication between a neighbor node and a candidate node, a failure can be recognized quickly and communication can be restored.

다섯째로, 무선으로 연결된 분산 SDN 환경에서 따로 서버를 사용하지 않고 노드 간의 자기조직화(self-organization)가 가능하며, 이에 따라 네트워크 구조의 확장이 용이하다는 장점이 있다.Fifth, there is an advantage in that self-organization between nodes is possible without using a separate server in a wirelessly connected distributed SDN environment, and thus the network structure can be easily expanded.

여섯째로, 후보 노드는 도메인 내의 정보를 동기화하고, 리더 노드는 도메인 간의 정보를 동기화하기 때문에 통신의 부하가 적고, 데이터 전송 속도가 빠르다는 장점이 있으며, 또한 기존의 단방향 고리 구조는 노드 장애에 취약하다는 문제를 가지고 있다. 이를 해결하기 위해 본 발명의 일 실시예는 추종 노드의 양방향 이웃 노드의 정보를 유지하여 장애에 유연하게 대처할 수 있다.Sixth, the candidate node synchronizes information within the domain, and the leader node synchronizes information between domains, so the communication load is low and the data transmission speed is fast. Also, the existing unidirectional loop structure is vulnerable to node failure. I have a problem that In order to solve this problem, an embodiment of the present invention can flexibly cope with a failure by maintaining information of a bidirectional neighbor node of the following node.

마지막으로, 본 발명의 일 실시예에서는 동적인 환경에서 무선으로 연결된 분산 SDN 노드의 통신 유지를 위해 가상 고리 토폴로지와 함께 리더 노드 선택을 통한 계층적인 구조를 사용한다. 도메인 내 노드들의 통신 부하를 줄이기 위해 안정성 값을 기반으로 한 리더를 선택하고, 노드의 장애에 대처하기 위해 가상 고리 구조를 사용하여 관리한다. 또한, 리더/후보/추종 노드를 분리하는 계층적인 구조를 사용하여 도메인 간의 동기화를 수행하는데 필요한 시간 및 자원을 감소시킬 수 있다.Finally, in one embodiment of the present invention, a hierarchical structure through leader node selection is used together with a virtual loop topology to maintain communication of wirelessly connected distributed SDN nodes in a dynamic environment. To reduce the communication load of nodes in the domain, a leader is selected based on the stability value and managed using a virtual loop structure to cope with node failure. In addition, it is possible to reduce time and resources required to perform synchronization between domains by using a hierarchical structure that separates leader/candidate/following nodes.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

이하에 첨부되는 도면들은 본 실시예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시예들을 제공한다. 다만, 본 실시예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에서의 분산형 소프트웨어 정의 네트워크 시스템 모델을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 리더 컨트롤러 선택 방법의 순서도이다.
도 4는 본 발명의 일 실시예에서의 노드 연결성 테이블을 기반으로 안정성 값을 산출하는 일 예시를 도시한 도면이다.
도 5는 본 발명의 일 실시예에서 안정성 값을 기반으로 리더 노드를 선택하는 일 예시를 도시한 도면이다.
도 6은 본 발명의 일 실시예에서 리더 노드 간 상위 계층 가상 고리를 형성하는 내용을 설명하기 위한 도면이다.
도 7은 2 계층 가상 고리에서의 동기화 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에서 신규 노드 추가에 따른 하위 계층 가상 고리를 변경하는 내용을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에서 리더 노드의 안정성 값에 변화가 발생한 경우에 따른 과정을 설명하기 위한 도면이다.
The accompanying drawings are provided to help understanding of the present embodiment, and provide embodiments together with detailed description. However, the technical features of the present embodiment are not limited to specific drawings, and features disclosed in the drawings may be combined with each other to form a new embodiment.
1 is a diagram for explaining the configuration of a software-defined network in an embodiment of the present invention.
2 is a diagram for explaining a distributed software-defined network system model in an embodiment of the present invention.
3 is a flowchart of a method for selecting a reader controller according to an embodiment of the present invention.
4 is a diagram illustrating an example of calculating a stability value based on a node connectivity table according to an embodiment of the present invention.
5 is a diagram illustrating an example of selecting a leader node based on a stability value in an embodiment of the present invention.
6 is a view for explaining the content of forming an upper layer virtual ring between leader nodes in an embodiment of the present invention.
7 is a diagram for explaining a synchronization process in a two-layer virtual ring.
8 is a diagram for explaining the contents of changing the lower layer virtual ring according to the addition of a new node in an embodiment of the present invention.
9 is a diagram for explaining a process according to a case in which a change occurs in a stability value of a leader node in an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하, 본 발명에 따른 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. Hereinafter, a method for selecting a reader controller in a distributed software defined network according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.1 is a diagram for explaining the configuration of a software-defined network in an embodiment of the present invention.

도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러(100), 네트워크 장비(200) 및 호스트(300)를 포함한다. 이때, 네트워크 장비(200)와 호스트(300)는 노드(Node)라 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미한다.Referring to FIG. 1 , a software defined network includes a controller 100 , a network device 200 , and a host 300 . In this case, the network device 200 and the host 300 may be referred to as a node, and a link means a connection between two nodes.

컨트롤러(100)는 네트워크 장비(200)를 관리하는 기능을 하며, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)는 토폴로지 관리(topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다.The controller 100 functions to manage the network equipment 200 , and centrally manages and controls the plurality of network equipment 200 . Specifically, the controller 100 is equipped with software that functions such as topology management, packet processing-related path management, link discovery, and packet flow flow management. It can be implemented in the form

네트워크 장비(200)는 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 수행한다. 이때, 네트워크 장비(200)의 일 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크 스위치, 라우터 등일 수 있다. 다만, 설명의 편의를 위해 이하에서는 네트워크 장비(200)는 오픈플로우(OpenFlow) 스위치인 경우를 중심으로 설명하며, 동일한 도면 부호를 병기하도록 한다. 하지만, 네트워크 장비(200) 즉, 본 발명에서의 스위치는 반드시 오픈플로우 스위치로만 한정되는 것은 아니며 기존 레거시 스위치도 포함하는 개념이다.The network device 200 performs a function of processing a packet under the control of the controller 100 . In this case, an example of the network equipment 200 may be a mobile communication base station, a base station controller, a gateway equipment, a wired network switch, a router, and the like. However, for convenience of description, the following description will focus on the case where the network equipment 200 is an OpenFlow switch, and the same reference numerals will be used. However, the network equipment 200, that is, the switch in the present invention is not necessarily limited to only the open flow switch, and is a concept including the existing legacy switch.

소프트웨어 정의 네트워크에서 컨트롤러(100)와 네트워크 장비(200)는 상호간에 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러(100)와 네트워크 장비(200) 간 서로 통신할 수 있는 표준 규격이다.In a software-defined network, the controller 100 and the network equipment 200 must exchange information with each other, and the open flow protocol is widely used as a protocol for this purpose. That is, the OpenFlow protocol is a standard standard for communication between the controller 100 and the network device 200 .

보다 구체적으로 설명하면, 네트워크 장비(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다. More specifically, the network equipment 200 is largely divided into a software layer and a hardware layer.

상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)와 정보를 교환한다. 보안 채널은 네트워크 장비(200)와 원거리에 위치한 컨트롤러(100) 간 통신 채널이며, 컨트롤러와 네트워크 장비(200) 간 교환되는 정보는 암호화된다.The software layer exchanges information with the controller 100 through a secure channel. The secure channel is a communication channel between the network device 200 and the remote controller 100 , and information exchanged between the controller and the network device 200 is encrypted.

상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 플로우 룰은 컨트롤러(100)가 생성하여 네트워크 장비(200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 네트워크 장비(200)는 플로우 테이블을 참조하여 패킷을 처리한다. 한편, 플로우 룰은 해당 업계의 통상의 입장에서 소프트웨어 정의 네트워크에서 컨트롤러(100)가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 즉, 플로우 룰은 컨트롤러(100)가 연결된 상태에서 적용되는 플로우 룰이며, 컨트롤러(100)에 의해 중앙 집중적으로 패킷 처리가 제어되는 플로우 엔트리가 정의된 룰이다. In the hardware layer, a flow table defines and processes a packet and includes statistical information related to the packet. The flow table consists of flow rules that define packet processing, and the flow rules are added and modified by a flow-mod message generated by the controller 100 and transmitted to the network device 200 . Or it can be deleted. The network device 200 processes the packet with reference to the flow table. On the other hand, the flow rule should be understood to mean a network policy applied by the controller 100 in a software-defined network in a normal position in the industry. That is, the flow rule is a flow rule applied when the controller 100 is connected, and a flow entry in which packet processing is centrally controlled by the controller 100 is defined.

플로우 테이블은 플로우를 정의하는 패킷 헤더 정보(Match Fields), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우 별 통계 정보(Stats)를 포함한다. 여기에서, 플로우 테이블을 구성하는 각 행을 플로우 엔트리(Flow Entry)라 칭한다.The flow table includes packet header information defining a flow (Match Fields), action information defining packet processing (Action), and statistical information for each flow (Stats). Here, each row constituting the flow table is referred to as a flow entry.

호스트(300)는 네트워크 장비(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 패킷을 네트워크 인터페이스의 포트를 통해 네트워크 장비(200)로 전송할 수 있다.The host 300 refers to a terminal corresponding to a lower layer of the network equipment 200 , and may be used to collectively refer to a client and a server. The host 300 may generate a packet for sending to another host through a software-defined network, and transmit the packet to the network device 200 through a port of a network interface.

예컨대, 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제1 호스트(300a)는 보내고자 하는 패킷을 생성하고, 해당 패킷을 제1 호스트(300a)와 연결된 네트워크 장비(200)로 전송한다. 네트워크 장비(200)에 해당 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우, 네트워크 장비(200)가 규정대로 패킷을 처리한다.For example, when the first host 300a wants to send a packet to the second host 300b, the first host 300a first generates a packet to be sent, and connects the packet to the first host 300a. It is transmitted to the network device 200 . When the network device 200 has a flow table regulating the processing of the corresponding packet, the network device 200 processes the packet according to the regulation.

하지만, 네트워크 장비(200)에 해당 패킷과 관련된 플로우 테이블이 없는 경우, 네트워크 장비(200)는 컨트롤러(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다.However, when the network device 200 does not have a flow table related to the packet, the network device 200 transmits a packet-in message informing the controller 100 of the packet inflow.

컨트롤러(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 패킷의 처리를 규정하는 플로우 모드 메시지를 생성하여 네트워크 장비(200)로 전송하고, 네트워크 장비(200)는 플로우 모드 메시지에 의해 변경된 플로우 테이블을 참조하여 해당 패킷을 처리한다.The controller 100 generates a flow mode message regulating the processing of packets according to the operator's policy or a preset algorithm and transmits it to the network device 200, and the network device 200 reads the flow table changed by the flow mode message. Refer to and process the corresponding packet.

한편, 종래 기술에 따른 SDN 구조는 제어 평면을 중앙 집중식으로 구성하여 네트워크 규모의 증가에 따른 확장성을 보장하기 어렵다는 문제가 있었다. 이러한 제어 평면의 확장성 문제를 해소하기 위하여, 논리적으로 중앙 집중식이지만 물리적으로는 분산된 복수의 도메인으로 구성된 SDN 컨트롤러 구조를 사용한다. Meanwhile, the SDN structure according to the prior art has a problem in that it is difficult to guarantee scalability according to an increase in the network size by centrally configuring the control plane. In order to solve this control plane scalability problem, a logically centralized but physically distributed SDN controller structure consisting of a plurality of domains is used.

분산 컨트롤러를 갖는 SDN 구조는 관리 네트워크를 여러 하위 네트워크인 클러스터로 나누고, 각 컨트롤러는 해당 클러스터의 스위치들을 관리한다. 그러나 분산 컨트롤러에서 수집한 클러스터 내 스위치들의 정보를 다른 컨트롤러들과 동기화하기 위해서는 많은 트래픽 부하가 발생될 수 있으며, 이는 전체 네트워크 시스템의 처리 성능을 저하시키는 요인으로 작용한다. 따라서, 분산 SDN 컨트롤러 동기화에 있어 트래픽 부하를 완화하기 위한 컨트롤러 리더 기법이 제안되었다.The SDN architecture with a distributed controller divides the management network into clusters, which are several sub-networks, and each controller manages the switches of the cluster. However, in order to synchronize the information of the switches in the cluster collected by the distributed controller with other controllers, a large traffic load may be generated, which acts as a factor degrading the processing performance of the entire network system. Therefore, a controller reader technique to alleviate the traffic load in distributed SDN controller synchronization has been proposed.

컨트롤러 리더 선택 기법은 한 도메인의 여러 분산 SDN 컨트롤러 중 리더 컨트롤러를 선택하여 리더 간의 동기화를 통해 트래픽의 부하를 줄이고, 안정성과 효율성을 향상하는 것을 목적으로 한다.The controller leader selection technique aims to reduce traffic load and improve stability and efficiency by selecting a leader controller among multiple distributed SDN controllers in one domain and synchronizing the leaders.

특히, 이동성이 있는 SDN 컨트롤러의 경우, 컨트롤러 간 동기화가 긴밀하게 일어나야 하므로 비교적 이동성이 적은 컨트롤러를 리더로 선택하여 동기화를 진행하는 것이 중요하다. 예를 들어, 무작위로 컨트롤러 리더가 선택되면 컨트롤러의 이동성이 정확하게 고려되지 않아 컨트롤러 간 동기화 효율성 및 처리 성능 저하가 발생하게 된다. 따라서, 부정확한 컨트롤러 선택 절차는 분산 컨트롤러의 움직임으로 인해 오히려 컨트롤러의 트래픽 부하를 발생시키고 동기화의 정확도가 낮아지는 문제가 있다.In particular, in the case of an SDN controller with mobility, it is important to select a controller with relatively low mobility as a leader and perform synchronization because synchronization between controllers must occur closely. For example, if a controller leader is randomly selected, the mobility of the controller is not taken into account correctly, resulting in decreased synchronization efficiency and processing performance between controllers. Accordingly, an inaccurate controller selection procedure causes a traffic load of the controller due to the movement of the distributed controller, and has a problem in that the accuracy of synchronization is lowered.

이러한 문제를 해소하기 위하여, 본 발명의 일 실시예는 SDN 컨트롤러의 이동성 조건을 고려하여 효율적인 컨트롤러 리더를 선택하는 것을 목적으로 한다. 특히, 본 발명에서는 컨트롤러 동기화를 위해 적합한 컨트롤러를 결정하기 위한 MLCS(Mobility-Aware Leader Controller Selection) 방식을 제안한다.In order to solve this problem, an embodiment of the present invention aims to select an efficient controller leader in consideration of the mobility condition of the SDN controller. In particular, the present invention proposes a Mobility-Aware Leader Controller Selection (MLCS) method for determining a suitable controller for controller synchronization.

즉, 본 발명의 일 실시예는 토폴로지 테이블의 변화를 기반으로 컨트롤러의 안정성 값(Stability value)를 산출하고, 안정성 값을 기반으로 리더 및 후보 컨트롤러를 결정한다. 이후, 각 도메인 내/간의 2 계층 가상 고리(2-tier virtual ring)를 형성하여 컨트롤러 노드 간의 효율적인 통신을 수행한다.That is, according to an embodiment of the present invention, a stability value of the controller is calculated based on a change in the topology table, and a leader and a candidate controller are determined based on the stability value. Thereafter, efficient communication between controller nodes is performed by forming a 2-tier virtual ring within/between each domain.

이와 같은 리더 컨트롤러의 선택과 가상 고리를 통해 연결된 이웃 컨트롤러 간 통신을 통해, 본 발명의 일 실시예는 전체 컨트롤러 간의 통신 오버헤드(overhead)를 줄일 수 있다. Through such selection of a leader controller and communication between neighboring controllers connected through a virtual ring, an embodiment of the present invention can reduce communication overhead between all controllers.

뿐만 아니라, 이동성 있는 분산 SDN 환경에서 컨트롤러 노드의 삽입/삭제가 빈번하게 발생하는 만큼 컨트롤러간 자기 조직화(Self Organization)가 요구되며, 본 발명에서는 2 계층 가상 고리를 사용하여 컨트롤러 간 자기 조직화를 가능하게 함과 동시에 컨트롤러의 동적 환경에서의 장애 방지(fault-tolerant) 기술을 제공한다.In addition, self-organization between controllers is required as the insertion/deletion of controller nodes occurs frequently in a mobile distributed SDN environment. At the same time, it provides a fault-tolerant technology in the dynamic environment of the controller.

이하에서는 도 2 내지 도 9를 참조하여 본 발명의 일 실시예에 따른 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법(이하, 리더 컨트롤러 선택 방법)에 대해 설명하도록 한다.Hereinafter, a method for selecting a reader controller in a distributed software defined network (hereinafter, a method for selecting a reader controller) according to an embodiment of the present invention will be described with reference to FIGS. 2 to 9 .

도 2는 본 발명의 일 실시예에서의 분산형 소프트웨어 정의 네트워크 시스템 모델을 설명하기 위한 도면이다. 도 3은 본 발명의 일 실시예에 따른 리더 컨트롤러 선택 방법의 순서도이다. 2 is a diagram for explaining a distributed software-defined network system model in an embodiment of the present invention. 3 is a flowchart of a method for selecting a reader controller according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 무선 네트워크로 연결된 분산형 소프트웨어 정의 네트워크 시스템 모델은 복수 개의 컨트롤러 노드를 포함하여 구성된다. 각 컨트롤러 노드는 모두 랜덤한 속도와 방향을 가지고 움직이며, 각 노드는 1-홉(hop)을 기준으로 과거에 연결된 노드 수(이하 과거 연결 노드 수, N p ), 현재 연결된 노드 수(이하 현재 연결 노드 수, N c ), 그리고 이전 시점 및 현재 시점에서 중복으로 연결된 노드 수(이하 중복 연결 노드 수, N d )를 데이터베이스에 저장하여 관리한다.A distributed software-defined network system model connected to a wireless network according to an embodiment of the present invention is configured to include a plurality of controller nodes. Each controller node moves with a random speed and direction, and each node has the number of nodes connected in the past (hereinafter referred to as the number of past connected nodes, N p ) and the number of currently connected nodes (hereinafter referred to as the current number of nodes) based on 1-hop. The number of connected nodes, N c ), and the number of redundantly connected nodes at the previous and current time points (hereafter, the number of redundantly connected nodes, N d ) are stored and managed in the database.

각 컨트롤러 노드는 테이블의 현재 연결 노드 수(N c )와 중복 연결 노드 수(N c )를 기반으로 자신의 안정성 값(Stability Value)을 계산한다. 이때, 한 노드의 t-1 시점에서 가지는 노드 정보와 t 시점에서 업데이트되는 노드 정보를 테이블로 저장한다.Each controller node calculates its own Stability Value based on the current number of connected nodes ( N c ) and the number of redundantly connected nodes ( N c ) in the table. At this time, node information of one node at time t-1 and node information updated at time t are stored in a table.

이후, 안정성 값이 가장 큰 노드가 리더 컨트롤러 노드(이하, 리더 노드)로 선택되고, 안정성 값을 내림차순으로 정렬하여 하위 계층 가상 고리(Lower Virtual Ring)를 형성한다. 또한, 각 도메인에서 리더 노드 간에는 상위 계층 가상 고리(Upper Virtual ring)를 형성하여 각 도메인 정보를 동기화한다. Thereafter, the node with the largest stability value is selected as a leader controller node (hereinafter, leader node), and the stability values are arranged in descending order to form a lower virtual ring. In addition, each domain information is synchronized by forming an upper virtual ring between leader nodes in each domain.

이하, 본 발명의 일 실시예에 대하여 보다 구체적으로 설명하도록 한다.Hereinafter, an embodiment of the present invention will be described in more detail.

본 발명의 일 실시예는 먼저 복수의 컨트롤러 노드 각각의 이동성에 대한 안정성 값을 산출한다(S110).An embodiment of the present invention first calculates a stability value for the mobility of each of a plurality of controller nodes (S110).

무선 환경에서 분산 SDN 컨트롤러 노드 C d, n 는 복수의 도메인 집합(D)과 노드 집합(N)으로 구성되어 있다. S110 단계에서는 컨트롤러 노드가 랜덤으로 이동하는 동적환경에서는 t-1 시점에서 t 시점으로 테이블 업데이트가 있을 때마다, t-1 시점에서의 과거 연결 노드 수(N p )와 t 시점에서의 현재 연결 노드 수(N c )를 비교하여 중복 연결 노드 수(N d )를 산출한다. 그리고 현재 연결 노드 수(N c ) 대비 중복 연결 노드 수(N d )의 비율을 기반으로 컨트롤러 노드의 이동성에 대한 안정성 값 m d,n 을 산출한다. 초기 안정성 값은 0으로 설정하고, 이후 시간에 따라 테이블의 업데이트가 있을 때 안정성 값도 업데이트한다.In a wireless environment, distributed SDN controller nodes C d and n are composed of a plurality of domain sets ( D ) and node sets ( N ). In step S110, in a dynamic environment in which the controller nodes move randomly, whenever there is a table update from time t-1 to time t, the number of past connected nodes at time t-1 ( N p ) and the current connection node at time t By comparing the number ( N c ), the number of redundantly connected nodes ( N d ) is calculated. And based on the ratio of the number of redundantly connected nodes ( N d ) to the current number of connected nodes ( N c ), a stability value m d,n for the mobility of the controller node is calculated. The initial stability value is set to 0, and the stability value is also updated when there is an update of the table over time.

도 4는 본 발명의 일 실시예에서의 노드 연결성 테이블을 기반으로 안정성 값을 산출하는 일 예시를 도시한 도면이다.4 is a diagram illustrating an example of calculating a stability value based on a node connectivity table according to an embodiment of the present invention.

도 4를 참조하면, 컨트롤러 노드 C 1, 6 의 과거 연결 노드 수(N p )는 13개, 현재 연결 노드 수(N c )는 12개, 그리고 중복 연결 노드 수(N d )는 10개이다. 따라서, 안정성 값 m 1, 6

Figure 112021107985771-pat00001
으로 계산된다. 각 컨트롤러 노드는 자신의 테이블 업데이트 시점에 맞춰 안정성 값을 산출한다.Referring to FIG. 4 , the number of past connected nodes ( N p ) of the controller nodes C 1 and 6 is 13, the current number of connected nodes ( N c ) is 12, and the number of redundantly connected nodes ( N d ) is 10. Therefore, the stability values m 1, 6 are
Figure 112021107985771-pat00001
is calculated as Each controller node calculates a stability value according to its own table update time.

이때, 노드의 이동성이 높으면 테이블의 업데이트가 빈번할 뿐만 아니라 테이블의 노드 리스트에도 잦은 변경이 발생한다. 따라서, 테이블의 업데이트에 따라서 노드의 변화가 없을수록 안정성 값을 증가하고, 이는 해당 노드의 이동성 값이 낮아 안정적임을 의미한다. 반면, 이동성이 높은 경우에는 테이블의 노드 변화가 빈번하게 발생한다. 이는 이전과 현재 테이블의 중복 노드 개수가 적음을 의미하며, 안정성 값이 낮게 계산되므로 이동성이 높음을 의미한다.At this time, when the mobility of the node is high, not only the table is updated frequently, but also the node list of the table is frequently changed. Therefore, the stability value increases as there is no change in the node according to the table update, which means that the mobility value of the corresponding node is low and stable. On the other hand, when mobility is high, table node changes occur frequently. This means that the number of duplicate nodes in the previous and current tables is small, and since the stability value is calculated low, mobility is high.

다음으로, 산출된 안정성 값을 기반으로 복수의 도메인 내외에서의 2 계층 가상 고리(2-tier virtual ring)를 생성한다(S120).Next, based on the calculated stability value, a two-tier virtual ring in and out of a plurality of domains is generated ( S120 ).

각 분산된 노드는 무선 링크를 통해 서로 연결되기 때문에 고정된 인프라가 존재하지 않는다. 따라서, 네트워크가 통신을 self-organization으로 유지하기 위해 토폴로지가 필요하다. 이를 위해, 본 발명의 일 실시예는 리더 노드 선택을 통해 계층 구조를 형성하고, 이에 고리형 토폴로지를 결합하여 동적인 환경에 적합한 토폴로지를 구성한다.Since each distributed node is connected to each other via wireless links, there is no fixed infrastructure. Therefore, a topology is needed for the network to keep communication self-organized. To this end, in an embodiment of the present invention, a hierarchical structure is formed through leader node selection, and a topology suitable for a dynamic environment is configured by combining the circular topology.

일 실시예로, 본 발명에서는 안정성 값을 기반으로 도메인 내 하위 계층 가상 고리(lower virtual ring)를 생성하고, 복수의 도메인 중 이웃 도메인에 위치한 하위 계층 가상 고리 내 리더 노드를 서로 이웃으로 설정한 상위 계층 가상 고리(upper virtual ring)를 생성할 수 있다.In one embodiment, in the present invention, a lower virtual ring within a domain is created based on a stability value, and a leader node in a lower layer virtual ring located in a neighboring domain among a plurality of domains is set as a neighbor to each other. You can create an upper virtual ring.

도 5는 본 발명의 일 실시예에서 안정성 값을 기반으로 리더 노드를 선택하는 일 예시를 도시한 도면이다.5 is a diagram illustrating an example of selecting a leader node based on a stability value in an embodiment of the present invention.

초기에는 도메인 내 컨트롤러 노드의 안정성 값이 모두 0이므로 과거 연결 노드 수(N p ), 현재 연결 노드 수(N c ), 그리고 중복 연결 노드 수(N d )를 도메인 내 각 노드들에게 전달하는 과정을 수행한다. 이후, 도메인 내 각 컨트롤러 노드에 대하여 산출된 안정성 값을 내림차순으로 정렬하여 순서대로 가상 고리를 생성한다. The process of delivering the number of past connected nodes ( N p ), the current number of connected nodes ( N c ), and the number of redundantly connected nodes ( N d ) to each node in the domain since the stability values of all controller nodes in the domain are initially 0 carry out Thereafter, the calculated stability values for each controller node in the domain are arranged in descending order to sequentially create virtual rings.

이때, 가상 고리 내 가장 큰 안정성 값을 갖는 컨트롤러 노드를 리더 노드로 설정한다. 리더 노드가 설정되면, 리더 노드는 후보 노드를 선택하는 과정을 수행한다.At this time, the controller node having the largest stability value in the virtual loop is set as the leader node. When a leader node is set, the leader node performs a process of selecting a candidate node.

후보 노드를 선택하기 위해서는 우선 도메인 d 내에서 식 1과 같이 복수의 노드들에 대한 안정성 값의 제1 평균값(

Figure 112021107985771-pat00002
)을 산출한다. 그리고 식 2와 같이 제1 평균값 이상의 안정성 값을 같는 노드들에 대한 안정성 값의 제2 평균값(
Figure 112021107985771-pat00003
)을 재계산한다.In order to select a candidate node, first, as in Equation 1 in the domain d, the first average value (
Figure 112021107985771-pat00002
) is calculated. And as shown in Equation 2, the second average value (
Figure 112021107985771-pat00003
) is recalculated.

[식 1][Equation 1]

Figure 112021107985771-pat00004
Figure 112021107985771-pat00004

[식 2][Equation 2]

Figure 112021107985771-pat00005
Figure 112021107985771-pat00005

그 다음, 제2 평균값 이상의 안정성 값을 갖는 노드를 후보 노드(candidate node)들로 선택하고, 선택되지 못한 노드들은 추종 노드(follower node)로 설정한다. 이때, 후보 노드는 추종 노드들에게 자신이 해당 도메인 내 후보 노드임을 브로드캐스팅으로 전달한다.Then, a node having a stability value equal to or greater than the second average value is selected as candidate nodes, and unselected nodes are set as follower nodes. In this case, the candidate node transmits to the following nodes that it is a candidate node in the corresponding domain by broadcasting.

안정성 값이 평균값보다 높은 노드들은 해당 도메인 내에서 움직임이 상대적으로 적다. 그러나 도메인 내 노드들의 이동성이 전반적으로 높은 경우 안정성 값이 도메인 내 평균보다 높다 하더라도 타 도메인과 비교하였을 때 안정성이 낮을 수 있다. 따라서, 평균 안정성 이상의 값을 가진 노드들의 평균을 재계산하여 더욱 안정적인 노드들을 후보 노드로 선택하는 과정이 필요하다. 이를 통해 리더 노드는 도메인 내에서 안정적인 노드들을 후보 노드로 유지할 수 있다.Nodes with a stability value higher than the average value have relatively little movement in the corresponding domain. However, when the mobility of nodes within a domain is generally high, even if the stability value is higher than the average within the domain, the stability may be low compared to other domains. Therefore, it is necessary to recalculate the average of nodes having a value greater than or equal to the average stability and select more stable nodes as candidate nodes. Through this, the leader node can maintain stable nodes in the domain as candidate nodes.

이와 같은 과정을 통해 리더 노드에서 후보 노드 및 추종 노드를 결정하고, 리더 노드, 후보 노드 및 추종 노드를 포함하는 하위 계층 가상 고리를 구성할 수 있다.Through this process, the leader node can determine a candidate node and a follower node, and a lower-level virtual loop including the leader node, the candidate node, and the follower node can be configured.

한편, 리더 노드의 이동에 따라 리더 노드의 안정성 값이 제2 평균값(

Figure 112021107985771-pat00006
미만을 갖게 되면 리더를 변경한다. 즉, 후보 노드 중 차순위 안정성 값을 갖는 후보 노드를 리더 노드로 설정하여, 후보 노드가 리더 노드의 역할을 동시에 수행하며, 기존의 리더 노드는 추종 노드로 전환된다.On the other hand, as the leader node moves, the stability value of the leader node changes to the second average value (
Figure 112021107985771-pat00006
Change the leader when you have less. That is, by setting the candidate node having the next highest stability value among the candidate nodes as the leader node, the candidate node simultaneously performs the role of the leader node, and the existing leader node is converted into a follower node.

또한, 후보 노드 역시 이동에 따라 안정성 값이 제1 평균값(

Figure 112021107985771-pat00007
) 미만을 갖게 되면 후보 노드의 자격을 상실하고, 후보 노드는 추종 노드로 전환된다. 이때, 후보 노드가 추종 노드로 전환됨에 따라 도메인 내 리더 노드가 후보 노드의 기능을 동시에 수행하게 된다. 그리고 후보 노드 및 추종 노드를 다시 설정하는 과정을 수행하게 된다.In addition, as the candidate node also moves, the stability value changes to the first average value (
Figure 112021107985771-pat00007
), the qualification of a candidate node is lost, and the candidate node is converted to a follower node. At this time, as the candidate node is converted to a follower node, the leader node in the domain simultaneously performs the function of the candidate node. Then, a process of re-establishing a candidate node and a follower node is performed.

추종 노드들은 하위 계층 가상 고리의 1-홉 이웃에 있는 노드들의 정보를 가지고 있다. 기존의 단방향 고리형 구조가 아닌 고리의 양쪽에 존재하는 추종 노드들의 정보를 가지고 있으므로 추종 노드에 장애가 발생할 경우에도 장애에 유연하게 대처할 수 있다. Follower nodes have information about nodes in the 1-hop neighbor of the lower layer virtual loop. Since it has information on the following nodes that exist on both sides of the ring rather than the existing unidirectional ring structure, it can respond flexibly to failures even when the following nodes fail.

즉, 추종 노드의 이동에 따라 해당 도메인을 벗어나 이웃 노드와의 통신 장애가 발생한 경우, 추종 노드의 이웃 노드들은 이를 후보 노드에 알리고, 후보 노드는 새로운 하위 계층 가상 고리 연결에 대한 정보를 장애 노드의 이웃 노드에 전달한다. 이를 전달받은 이웃 노드 간의 새로운 연결이 진행되며, 이러한 과정에 따라 노드의 삽입/삭제가 빈번하게 발생하는 동적인 환경에서도 견고한 가상 고리 구조를 형성할 수 있다. That is, when a communication failure with a neighboring node occurs outside the corresponding domain due to the movement of the following node, the neighboring nodes of the following node notify the candidate node, and the candidate node transmits information about the new lower layer virtual loop connection to the neighbor of the failed node. pass to the node. A new connection is made between the neighboring nodes that have received this, and according to this process, a robust virtual loop structure can be formed even in a dynamic environment in which insertion/deletion of nodes occurs frequently.

이러한 장애 발생 상황시 수행되는 각 과정에 대해서는 도면을 참고하여 다시 설명하도록 한다.Each process performed in the event of such a failure will be described again with reference to the drawings.

도 6은 본 발명의 일 실시예에서 리더 노드 간 상위 계층 가상 고리를 형성하는 내용을 설명하기 위한 도면이다.6 is a view for explaining the content of forming an upper layer virtual ring between leader nodes in an embodiment of the present invention.

도 6은 하나의 도메인에서 선택된 리더 노드가 타 도메인에서의 리도 노드와 정보 동기화를 위해 상위 계층 가상 고리를 형성하는 과정을 도시한 것으로, 본 발명의 일 실시예는 상위 계층 및 하위 계층 가상 고리를 포함하는 2 계층 가상 고리 구조를 갖는다. 2 계층 가상 고리는 모두 논리적인 가상 고리로 형성된다.6 illustrates a process in which a leader node selected in one domain forms an upper layer virtual loop for information synchronization with a lido node in another domain. It has a two-layer virtual ring structure containing All two-layer virtual loops are formed as logical virtual loops.

전술한 바와 같이 하위 계층 가상 고리는 도메인 내 노드들의 안정성 값을 기반으로 형성되며, 반면 상위 계층 가상 고리는 각 리더 노드 간의 거리를 기반으로 형성된다.As described above, the lower layer virtual loop is formed based on the stability values of nodes in the domain, whereas the upper layer virtual loop is formed based on the distance between each leader node.

각 도메인에서 움직임이 적은 노드를 리더로 선택했기 때문에, 각 도메인의 리더 노드는 안정성이 상대적으로 높다. 각 리더 노드는 가장 가까운 도메인에 있는 타 리더 노드를 이웃으로 하여 상위 계층 가상 고리를 형성한다. 각 리더 노드는 데이터베이스에 상위 계층 가상 고리의 값을 저장한다.Since a node with less movement in each domain is selected as a leader, the leader node in each domain has relatively high stability. Each leader node forms an upper layer virtual loop with other leader nodes in the nearest domain as its neighbors. Each leader node stores the value of the upper layer virtual loop in the database.

한편, 리더 노드는 도메인 간의 통신을 위해 monitoring agent, reachability agent, connectivity agent 등의 구성을 포함할 수 있다. 또한, 도메인 내의 통신을 위해 path computation, monitoring manager, service manager, event processing 등의 기능을 수행할 수 있다.Meanwhile, the leader node may include a configuration of a monitoring agent, a reachability agent, a connectivity agent, etc. for communication between domains. In addition, it is possible to perform functions such as path computation, monitoring manager, service manager, event processing for communication within the domain.

리더 노드는 해당 도메인 노드들의 이동성 및 상태정보를 고리로 연결된 이웃 리더 노드에만 전송하여 동기화를 수행한다. 즉, 리더 노드들의 전체 동기화가 아닌, 상위 계층 가상 고리를 이용하여 동기화를 수행함으로써 리더 노드 간의 동기화에도 통신 부하가 감소하는 효과를 기대할 수 있다. 이웃 리더 노드는 자신의 도메인 관련 정보를 다시 이웃 리더 노드로 전송할 때, 이전 이웃 리더 노드에서 받은 정보도 함께 포함시켜 전송한다.The leader node performs synchronization by transmitting mobility and status information of the corresponding domain nodes only to the neighboring leader nodes connected in a loop. In other words, by performing synchronization using an upper layer virtual loop rather than full synchronization of the leader nodes, an effect of reducing the communication load can be expected even in synchronization between the leader nodes. When the neighbor leader node transmits its domain-related information back to the neighbor leader node, it also transmits information received from the previous neighbor leader node.

이와 같이 2 계층 가상 고리를 구성하고 나면, 2 계층 가상 고리에 기반하여 복수의 도메인 내외에서의 각 노드에 대한 정보를 동기화한다(S130).After configuring the two-layer virtual ring in this way, information on each node in and out of a plurality of domains is synchronized based on the two-layer virtual ring (S130).

도 7은 2 계층 가상 고리에서의 동기화 과정을 설명하기 위한 도면이다.7 is a diagram for explaining a synchronization process in a two-layer virtual ring.

도 7은 도메인 내에서 추종 노드와 후보 노드 간의 정보 동기화 및 도메인 간 리더 노드 간의 정보 동기화 과정을 나타낸 것으로, 도메인 내 후보 노드는 각 추종 노드의 이동성 정보 및 연결성 정보를 포함하는 도메인 정보를 수집하고, 도메인 내 리더 노드는 타 도메인 내 리더 노드로 수집된 정보를 전달하는 것을 통해 정보 동기화가 가능하다.7 is a diagram illustrating information synchronization between a following node and a candidate node in a domain and information synchronization between a leader node between domains, wherein the candidate node in the domain collects domain information including mobility information and connectivity information of each follower node; A leader node in a domain can synchronize information by transferring the collected information to a leader node in another domain.

구체적으로, C 1,1 , C 1,2 와 같은 추종 노드들은 도메인 내 후보 노드(C 1,4 )에 자신의 이동성 및 연결성 등의 정보를 전달한다. 후보 노드(C 1,4 )는 각 추종 노드에서 수집한 정보를 기반으로 하위 계층 가상 고리를 형성 및 관리하는 역할을 한다. 만약, 후보 노드가 복수 개일 경우, 추종 노드들은 자신과 최근접한 후보 노드를 선택하여 이동성 정보 및 연결성 정보를 전송할 수 있으며, 복수의 후보 노드 중 안정성 값이 가장 큰 후보 노드가 하위 계층 가상 고리를 형성 및 관리할 수 있다.Specifically, the following nodes such as C 1,1 and C 1,2 transmit information such as their mobility and connectivity to the candidate node C 1,4 in the domain. Candidate nodes ( C 1,4 ) play a role in forming and managing a lower-level virtual loop based on the information collected from each follower node. If there are a plurality of candidate nodes, the following nodes can select a candidate node closest to them to transmit mobility information and connectivity information, and the candidate node with the greatest stability value among the plurality of candidate nodes forms a lower-level virtual loop. and manage.

리더 노드(C 1,6 )는 후보 노드에서 전달받은 하위 계층 가상 고리 정보를 토대로 타 도메인의 리더 노드들과 정보 동기화를 수행하는 역할을 한다. 즉, 후보 노드는 도메인 내의 정보를 수집하고, 하위 계층 가상 고리 정보를 형성하는 역할을 하며, 리더 노드는 하위 노드에서 수집된 정보를 타 도메인으로 전달하여 동기화를 수행하는 역할을 한다.The leader node ( C 1,6 ) plays a role of synchronizing information with leader nodes of other domains based on the lower layer virtual ring information received from the candidate node. That is, the candidate node collects information in the domain and serves to form lower-level virtual ring information, and the leader node performs synchronization by transferring information collected from the lower node to other domains.

결과적으로 본 발명의 일 실시예는 각 도메인 마다 역할이 다른 복수의 리더가 존재하기 때문에, 기존의 리더 노드 하나가 복수의 도메인 내/간의 통신 및 관리를 모두 전담해야 하는 클러스터 구조와 비교해서, 가용성이 증가하고 리더에 가해지는 부하를 줄일 수 있다는 정점이 있다. 또한, 리더의 부재가 발생할 경우, 후보 노드가 리더 노드가 되지만 추종 노드들은 이미 후보 노드를 리더로 생각하기 때문에 따로 추종 노드에게 리더 노드로의 변경 사실을 알릴 필요가 없다.As a result, in one embodiment of the present invention, since a plurality of leaders with different roles exist for each domain, compared to a cluster structure in which one existing leader node is exclusively responsible for communication and management within/between a plurality of domains, the availability There is a peak that this increase and the load on the leader can be reduced. Also, when a leader is absent, the candidate node becomes a leader node, but since the following nodes already consider the candidate node as a leader, there is no need to separately notify the follower node of the change to the leader node.

이하에서는 도 8 및 도 9를 참조하여 가상 고리 내 신규 노드가 추가 또는 장애 발생시의 프로세스에 대하여 설명하도록 한다.Hereinafter, a process when a new node is added or a failure occurs in the virtual ring will be described with reference to FIGS. 8 and 9 .

도 8은 본 발명의 일 실시예에서 신규 노드 추가에 따른 하위 계층 가상 고리를 변경하는 내용을 설명하기 위한 도면이다.8 is a diagram for explaining the contents of changing the lower layer virtual ring according to the addition of a new node in an embodiment of the present invention.

일 실시예로, 도메인 내에서 신규 노드(New node)가 생성되었을 경우, 신규 노드는 브로드캐스팅을 통해 최근거리 노드에 자신의 과거 연결 노드 수(N p )와 현재 연결 노드 수(N c ) 정보를 전달한다.In one embodiment, when a new node is created in the domain, the new node provides information on the number of past connected nodes ( N p ) and the number of current connected nodes ( N c ) to the nearest node through broadcasting. to convey

신규 노드와 가장 가까이 위치한 근거리 노드(C 1,1 )는 신규 노드의 안정성 값을 산출하여 도메인 내 후보 노드(C 1,4 )로 전송한다. 안정성 값을 수신한 후보 노드는 신규 노드의 새로운 안정성 값을 기반으로 하위 계층 가상 고리를 갱신하고, 갱신된 하위 계층 가상 고리의 정보를 신규 노드의 이웃으로 구성될 각 추종 노드(C 1,5, C 1,7 )와 리더 노드(C 1,6 ), 그리고 신규 노드로 전달한다.The local node ( C 1,1 ) located closest to the new node calculates the stability value of the new node and transmits it to the candidate node ( C 1,4 ) in the domain. Receiving a reliability value candidate node updates the virtual sub-layer ring is based on the new stable value of the new node, each be configured to update the information of the virtual sub-layer adjacent to the ring of the new node following the node (C 1,5, C 1,7 ), the leader node ( C 1,6 ), and the new node.

신규 노드는 이웃으로 구성될 각 추종 노드(C 1,5, C 1,7 )에게 허가 요청을 보내고, 요청받은 각 추종 노드는 수락하는 메시지를 신규 노드로 전달한다. The new node sends a permission request to each follower node ( C 1,5 , C 1,7 ) to be configured as a neighbor, and each requested follower node transmits an accepting message to the new node.

한편, 리더 노드는 변경된 도메인 정보를 타 도메인 내 리더 노드로 전달하여 동기화를 수행한다. 이때, 신규 노드의 이웃으로 구성될 각 추종 노드(C 1,5, C 1,7 )를 제외하고, 다른 추종 노드들은 이웃 노드를 통해 정보 교환이 가능하므로 신규 노드의 정보를 알 필요가 없다. 이처럼, 본 발명의 일 실시예는 2 계층 가상 고리를 기반으로 이웃 노드, 후보 노드 및 리더 노드에만 신규 노드 정보를 전달함으로써 통신 비용을 줄일 수 있는 장점이 있다.Meanwhile, the leader node transmits the changed domain information to the leader node in another domain to perform synchronization. At this time, except for each following node ( C 1,5 , C 1,7 ) to be configured as a neighbor of the new node, other following nodes do not need to know information of the new node because information exchange is possible through the neighbor node. As such, an embodiment of the present invention has an advantage in that communication costs can be reduced by transmitting new node information only to a neighbor node, a candidate node, and a leader node based on a two-layer virtual loop.

도 9는 본 발명의 일 실시예에서 리더 노드의 안정성 값에 변화가 발생한 경우에 따른 과정을 설명하기 위한 도면이다.9 is a diagram for explaining a process according to a case in which a change occurs in a stability value of a leader node in an embodiment of the present invention.

만약, 리더 노드(C 1,6 )에 장애가 발생한 경우 후보 노드(C 1,4 )는 이를 인지하고 스스로 리더 노드로 전환하여 타 도메인의 리더 노드에게 리더가 변경되었음을 알린다. 이때, 기존 리더 노드는 해당 후보 노드의 역할을 임시로 병행한다. If a failure occurs in the leader node ( C 1,6 ), the candidate node ( C 1,4 ) recognizes this and converts itself to a leader node to notify the leader node of another domain that the leader has been changed. In this case, the existing leader node temporarily performs the role of the corresponding candidate node.

추종 노드들은 후보 노드와의 통신만 원활하게 이루어지면 되므로 리더 노드의 변경을 추종 노드에게 전달하지 않아도 되는바, 이를 통해 통신 비용을 감소시킬 수 있다.Since the follower nodes only need to communicate with the candidate node smoothly, it is not necessary to transmit the change of the leader node to the follower node, thereby reducing the communication cost.

리더 노드는 후보 노드의 역할을 동시에 수행하다가, 새로운 후보 노드(C 1,1 )가 선정되고, 새로 선정된 후보 노드가 도메인 내 추종 노드에 자신의 정보를 전달하게 된다.The leader node simultaneously performs the role of a candidate node, and a new candidate node ( C 1,1 ) is selected, and the newly selected candidate node delivers its information to a follower node in the domain.

또한, 리더 노드의 안정성 값이 도메인 내 평균 안정성 값 미만이 될 경우, 리더 노드의 변경 과정이 발생한다. 이 경우 전술한 바와 같이 후보 노드는 리더 노드의 역할을 함께 수행하며, 타 도메인의 리더 노드에게 리더가 변경되었음을 알린다.Also, when the stability value of the leader node is less than the average stability value in the domain, a change process of the leader node occurs. In this case, as described above, the candidate node also performs the role of the leader node, and notifies the leader node of another domain that the leader has been changed.

이후, 리더 노드로 전환된 후보 노드는 도메인 내 2 계층 가상 고리 생성 과정을 재수행하여, 새로운 후보 노드를 선정하게 되며, 해당 정보를 하위 계층 가상 고리 내 각 노드들에게 전달한다. Thereafter, the candidate node converted to the leader node selects a new candidate node by re-performing the 2-layer virtual ring creation process in the domain, and delivers the corresponding information to each node in the lower layer virtual ring.

반면, 후보 노드에 장애가 발생하면 리더 노드가 이를 인지하여 도메인 내 노드들에게 이를 알린다. 이때, 타 도메인의 리더 노드에는 후보 노드의 부재를 알릴 필요가 없으므로 통신 비용을 절감할 수 있다. 리더 노드는 후보 노드의 역할을 동시에 수행하면서, 후보 노드를 재선정하는 과정을 수행한다. 이후 새로운 후보 노드가 선정되면, 선정된 후보 노드는 도메인 내 추종 노드에 자신의 정보를 알린다.On the other hand, when a failure occurs in the candidate node, the leader node recognizes it and notifies the nodes in the domain. In this case, since it is not necessary to notify the leader node of the other domain of the absence of the candidate node, communication cost can be reduced. The leader node performs a process of reselecting the candidate node while simultaneously performing the role of the candidate node. Afterwards, when a new candidate node is selected, the selected candidate node notifies the following node in the domain of its information.

또한, 추종 노드의 장애 및/또는 이동성이 발생하여 해당 도메인을 벗어나게 되면, 해당 추종 노드의 이웃 노도들이 후보 노드로 장애 정보를 전달한다. 후보 노드는 이를 인식하고 하위 계층 가상 고리 생성 과정을 재수행하여, 새로운 하위 계층 가상 고리를 생성한다. 이처럼, 본 발명의 일 실시예는 추종 노드에 장애가 발생하더라도 하위 계층 가상 고리가 구성되어 있으므로 후보 노드는 모든 노드에 새로운 하위 계층 가상 고리의 정보를 알릴 필요가 없다. 즉, 자신의 양 이웃에 있는 노드에만 정보를 전달하여 새로운 하위 계층 가상 고리를 구성하면 된다.In addition, when a failure and/or mobility of a follower node occurs and leaves the corresponding domain, neighboring nodes of the corresponding follower node transmit failure information to the candidate node. The candidate node recognizes this and re-performs the lower-level virtual ring creation process to create a new lower-level virtual ring. As such, in an embodiment of the present invention, even if a failure occurs in the following node, the lower layer virtual ring is configured, so that the candidate node does not need to inform all nodes of the new lower layer virtual ring information. In other words, it is enough to transmit information only to nodes in both its neighbors to form a new lower-level virtual loop.

한편, 상술한 설명에서, 단계 S110 내지 S130은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. Meanwhile, in the above description, steps S110 to S130 may be further divided into additional steps or combined into fewer steps according to an embodiment of the present invention. In addition, some steps may be omitted if necessary, and the order between the steps may be changed.

이상에서 전술한 본 발명의 일 실시예에 따른 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The method for selecting a reader controller in a distributed software defined network according to an embodiment of the present invention described above may be implemented as a program (or application) and stored in a medium to be executed in combination with a computer that is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program, in order for the computer to read the program and execute the methods implemented as a program, C, C++, JAVA, Ruby, which the processor (CPU) of the computer can read through the device interface of the computer; It may include code coded in a computer language such as machine language. Such code may include functional code related to a function defining functions necessary for executing the methods, etc., and includes an execution procedure related control code necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, the code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer to be referenced. have. In addition, when the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and an optical data storage device. That is, the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user. In addition, the medium may be distributed in a computer system connected to a network, and a computer-readable code may be stored in a distributed manner.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

100: 컨트롤러
200: 네트워크 장비
300: 호스트
100: controller
200: network equipment
300: host

Claims (13)

분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법에 있어서,
복수의 컨트롤러 노드 각각의 이동성에 대한 안정성 값을 산출하는 단계;
상기 산출된 안정성 값을 기반으로 복수의 도메인 내외에서의 2 계층 가상 고리를 생성하는 단계; 및
상기 2 계층 가상 고리에 기반하여 복수의 도메인 내외에서의 각 노드에 대한 정보를 동기화하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
A method for selecting a leader controller in a distributed software defined network, the method comprising:
calculating a stability value for the mobility of each of the plurality of controller nodes;
generating a two-layer virtual loop in and out of a plurality of domains based on the calculated stability value; and
Comprising the step of synchronizing information about each node in and out of a plurality of domains based on the two-layer virtual loop,
How to choose a leader controller in a decentralized software-defined network.
제1항에 있어서,
상기 산출된 안정성 값을 기반으로 복수의 도메인 내외에서의 2 계층 가상 고리를 생성하는 단계는,
상기 안정성 값을 기반으로 도메인 내 하위 계층 가상 고리를 생성하는 단계; 및
상기 복수의 도메인 중 이웃 도메인에 위치한 상기 하위 계층 가상 고리 내 리더 컨트롤러 노드(이하, 리더 노드)를 서로 이웃으로 설정한 상위 계층 가상 고리를 생성하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
According to claim 1,
The step of generating a two-layer virtual ring within and outside a plurality of domains based on the calculated stability value,
generating a lower-level virtual loop within the domain based on the stability value; and
and generating an upper layer virtual ring in which leader controller nodes (hereinafter, leader nodes) located in neighboring domains among the plurality of domains are set as neighbors to each other,
How to choose a leader controller in a decentralized software-defined network.
제2항에 있어서,
복수의 컨트롤러 노드 각각의 이동성에 대한 안정성 값을 산출하는 단계는,
1홉을 기준으로 하는 t-1 시점에서의 과거 연결 노드 수와 t 시점에서의 현재 연결 노드 수를 비교하여 중복 연결 노드 수를 산출하는 단계; 및
상기 현재 연결 노드 수 대비 중복 연결 노드 수의 비율을 기반으로 상기 안정성 값을 산출하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
3. The method of claim 2,
Calculating the stability value for the mobility of each of the plurality of controller nodes comprises:
calculating the number of redundantly connected nodes by comparing the number of past connected nodes at time t-1 based on one hop and the number of current connected nodes at time t; and
Comprising the step of calculating the stability value based on the ratio of the number of redundantly connected nodes to the number of current connected nodes,
How to choose a leader controller in a decentralized software-defined network.
제2항에 있어서,
상기 안정성 값을 기반으로 도메인 내 하위 계층 가상 고리를 생성하는 단계는,
상기 도메인 내 각 컨트롤러 노드에 대하여 산출된 안정성 값을 내림차순으로 정렬하여 가상 고리를 생성하는 단계;
상기 가상 고리 내 가장 큰 안정성 값을 갖는 컨트롤러 노드를 리더 노드로 설정하는 단계;
상기 리더 노드에서 후보 컨트롤러 노드(이하, 후보 노드) 및 추종 컨트롤러 노드(이하, 추종 노드)를 결정하는 단계; 및
상기 리더 노드, 후보 노드 및 추종 노드를 포함하는 상기 하위 계층 가상 고리를 구성하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
3. The method of claim 2,
The step of creating a lower-level virtual ring in the domain based on the stability value comprises:
generating a virtual loop by arranging the calculated stability values for each controller node in the domain in descending order;
setting a controller node having the largest stability value in the virtual loop as a leader node;
determining, at the leader node, a candidate controller node (hereinafter, a candidate node) and a following controller node (hereinafter, a following node); and
Constructing the lower-level virtual loop including the leader node, candidate node and follower node;
How to choose a leader controller in a decentralized software-defined network.
제4항에 있어서,
상기 리더 노드에서 후보 노드 및 추종 노드를 결정하는 단계는,
상기 도메인 내 포함된 복수의 노드들에 대한 안정성 값의 제1 평균값을 산출하는 단계;
상기 제1 평균값 이상의 안정성 값을 갖는 노드들에 대한 안정성 값의 제2 평균값을 산출하는 단계; 및
상기 제2 평균값 이상의 안정성 값을 갖는 노드를 후보 노드로 설정하고, 나머지를 추종 노드로 설정하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
5. The method of claim 4,
The step of determining a candidate node and a follower node in the leader node comprises:
calculating a first average value of stability values for a plurality of nodes included in the domain;
calculating a second average value of stability values for nodes having stability values greater than or equal to the first average value; and
setting a node having a stability value equal to or greater than the second average value as a candidate node and setting the remainder as a follower node,
How to choose a leader controller in a decentralized software-defined network.
제5항에 있어서,
상기 리더 노드의 이동에 따라 상기 제2 평균값 미만의 안정성 값을 갖는 경우, 상기 리더 노드를 추종 노드로 전환하는 단계; 및
상기 후보 노드 중 차순위 안정성 값을 갖는 후보 노드를 리더 노드로 설정하는 단계를 더 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
6. The method of claim 5,
converting the leader node to a follower node when the leader node has a stability value less than the second average value according to the movement of the leader node; and
Further comprising the step of setting a candidate node having a next-order stability value among the candidate nodes as a leader node,
How to choose a leader controller in a decentralized software-defined network.
제6항에 있어서,
상기 후보 노드가 리더 노드로 전환됨에 따라, 신규 리더 노드가 타 도메인의 리더 노드로 리더 노드 변경 메시지를 전송하는 단계; 및
상기 신규 리더 노드가 상기 도메인 내 2 계층 가상 고리 가상 고리 생성 과정을 재수행하는 단계를 더 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
7. The method of claim 6,
transmitting, by a new leader node, a leader node change message to a leader node in another domain, as the candidate node is converted to a leader node; and
Further comprising the step of the new leader node re-performing the two-layer virtual ring virtual ring creation process in the domain,
How to choose a leader controller in a decentralized software-defined network.
제5항에 있어서,
상기 후보 노드의 이동에 따라 상기 제1 평균값 미만의 안정성 값을 갖는 경우, 상기 후보 노드를 추종 노드로 전환하는 단계;
상기 후보 노드가 추종 노드로 전환됨에 따라 도메인 내 리더 노드가 후보 노드의 기능을 동시에 수행하는 단계; 및
상기 후보 노드 및 추종 노드를 재설정하는 단계를 더 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
6. The method of claim 5,
converting the candidate node into a follower node when the candidate node has a stability value less than the first average value according to the movement of the candidate node;
a step in which a leader node in a domain simultaneously performs a function of a candidate node as the candidate node is converted into a follower node; and
Further comprising the step of re-establishing the candidate node and the following node,
How to choose a leader controller in a decentralized software-defined network.
제5항에 있어서,
상기 추종 노드의 이동에 따라 해당 도메인을 벗어난 경우, 상기 추종 노드의 이웃 노드들이 후보 노드로 장애 정보를 전송하는 단계; 및
후보 노드가 상기 장애 정보를 반영하여 상기 도메인의 하위 계층 가상 고리 생성 과정을 재수행하는 단계를 더 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
6. The method of claim 5,
transmitting failure information to a candidate node by neighboring nodes of the following node when the following node leaves the corresponding domain according to the movement of the follower node; and
Further comprising the step of the candidate node re-performing the lower layer virtual ring creation process of the domain by reflecting the failure information,
How to choose a leader controller in a decentralized software-defined network.
제5항에 있어서,
상기 2 계층 가상 고리에 기반하여 복수의 도메인 내외에서의 각 노드에 대한 정보를 동기화하는 단계는,
상기 도메인 내 후보 노드가 각 추종 노드의 이동성 정보 및 연결성 정보를 포함하는 도메인 정보를 수집하는 단계; 및
상기 도메인 내 리더 노드가 타 도메인 내 리더 노드로 상기 도메인 정보를 전달하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
6. The method of claim 5,
The step of synchronizing information about each node in and out of a plurality of domains based on the two-layer virtual loop comprises:
collecting, by the candidate node in the domain, domain information including mobility information and connectivity information of each following node; and
and transmitting, by a leader node in the domain, the domain information to a leader node in another domain.
How to choose a leader controller in a decentralized software-defined network.
제10항에 있어서,
상기 도메인 내 후보 노드가 복수 개인 경우, 상기 각 추종 노드는 최근접한 후보 노드를 선택하여 상기 이동성 정보 및 연결성 정보를 전송하고,
상기 복수의 후보 노드 중 안정성 값이 큰 후보 노드가 상기 하위 계층 가상 고리를 형성 및 관리하는 것인,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
11. The method of claim 10,
When there are a plurality of candidate nodes in the domain, each of the following nodes selects the closest candidate node and transmits the mobility information and the connectivity information;
A candidate node having a large stability value among the plurality of candidate nodes forms and manages the lower layer virtual loop,
How to choose a leader controller in a decentralized software-defined network.
제2항에 있어서,
도메인 내 생성된 신규 노드와 최근거리에 위치한 소정의 노드(이하, 최근거리 노드)가 신규 노드의 과거 연결 노드 수 및 현재 연결 노드 수 정보를 수신하는 단계;
상기 최근거리 노드가 상기 신규 노드의 안정성 값을 산출하여 도메인 내 후보 노드로 전송하는 단계;
상기 후보 노드가 상기 신규 노드의 안정성 값을 기반으로 하위 계층 가상 고리를 갱신하는 단계;
상기 갱신된 하위 계층 가상 고리의 정보를 리더 노드로 전달하는 단계; 및
상기 리더 노드가 갱신된 도메인 정보를 타 도메인 내 리더 노드로 전달하는 단계를 더 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
3. The method of claim 2,
a step of receiving, by a predetermined node (hereinafter, a nearest node) located at a nearest distance from a new node created in the domain, information on the number of past connected nodes and the number of currently connected nodes of the new node;
calculating, by the nearest node, a stability value of the new node and transmitting it to a candidate node in the domain;
updating, by the candidate node, a lower layer virtual loop based on the stability value of the new node;
transmitting the updated lower-level virtual ring information to a leader node; and
Further comprising the step of the leader node transmitting the updated domain information to a leader node in another domain,
How to choose a leader controller in a decentralized software-defined network.
제12항에 있어서,
상기 후보 노드가 상기 신규 노드의 안정성 값을 기반으로 하위 계층 가상 고리를 갱신하는 단계는,
상기 신규 노드의 이웃 노드로 구성될 각 노드와, 상기 최근거리 노드 및 상기 신규 노드로 상기 갱신된 하위 계층가상 고리의 정보를 전달하는 단계를 포함하는,
분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법.
13. The method of claim 12,
The step of the candidate node updating the lower layer virtual loop based on the stability value of the new node,
Each node to be configured as a neighboring node of the new node, and transmitting the updated lower-level virtual ring information to the nearest node and the new node,
How to choose a leader controller in a decentralized software-defined network.
KR1020210124473A 2021-09-17 2021-09-17 Method for selecting leader controller node in decentralized software-defined network KR102346417B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210124473A KR102346417B1 (en) 2021-09-17 2021-09-17 Method for selecting leader controller node in decentralized software-defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210124473A KR102346417B1 (en) 2021-09-17 2021-09-17 Method for selecting leader controller node in decentralized software-defined network

Publications (1)

Publication Number Publication Date
KR102346417B1 true KR102346417B1 (en) 2022-01-04

Family

ID=79342638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210124473A KR102346417B1 (en) 2021-09-17 2021-09-17 Method for selecting leader controller node in decentralized software-defined network

Country Status (1)

Country Link
KR (1) KR102346417B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465884B1 (en) * 2013-06-27 2014-11-26 고려대학교 산학협력단 Method and apparatus of probabilistic controller selection in software-defined networks
KR20160003100A (en) * 2013-05-02 2016-01-08 퀄컴 인코포레이티드 Efficient communication of safety messages for a group of user equipments
KR20190059004A (en) * 2017-11-22 2019-05-30 아토리서치(주) Method for controlling software defined networking and computing device performing the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160003100A (en) * 2013-05-02 2016-01-08 퀄컴 인코포레이티드 Efficient communication of safety messages for a group of user equipments
KR101465884B1 (en) * 2013-06-27 2014-11-26 고려대학교 산학협력단 Method and apparatus of probabilistic controller selection in software-defined networks
KR20190059004A (en) * 2017-11-22 2019-05-30 아토리서치(주) Method for controlling software defined networking and computing device performing the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Open Networking Foundation, "OpenFlow Specification 1.3.0"(2012.6.25.)

Similar Documents

Publication Publication Date Title
CN103078927B (en) Key-value data distributed caching system and method thereof
CN103051539B (en) A kind of net control implementation method based on DHT, System and Network controller
JP3910613B2 (en) Network attached storage SNMP single system image
US9143452B2 (en) Data processing
KR101099822B1 (en) Redundant routing capabilities for a network node cluster
CN100555948C (en) A kind of switching equipment of in the stack exchanger system, being coupled of being used for
US10511524B2 (en) Controller communications in access networks
US20170078183A1 (en) System and method for control flow management in software defined networks
JPS61284144A (en) Topology data base maintenance for network
CN111526057B (en) Network slice reliability mapping method based on service type
EP3562107A1 (en) Broadcast packet processing method and processing apparatus, controller, and switch
WO2024036841A1 (en) Network topology structure optimization method and apparatus, and storage medium and electronic device
Dhar et al. A comprehensive study of different objectives and solutions of controller placement problem in software‐defined networks
CN107547374B (en) Aggregation route processing method and device
CN106527968A (en) File through technology-based file transmission method
US20240049102A1 (en) State pooling for stateful re-homing in a disaggregated radio access network
KR102346417B1 (en) Method for selecting leader controller node in decentralized software-defined network
KR20160090485A (en) Method and apparatus for operating distributed controllers of software defined network
CN108199986B (en) Data transmission method, stacking equipment and stacking system
CN114567894B (en) Multi-controller communication method for wireless self-organizing network
Fekih et al. Proactive content caching strategy with router reassignment in content centric networks based SDN
KR102277554B1 (en) Controller and method for providing switch migration in software defined networking
JP5433024B2 (en) A method for managing the exchange of data flux in an autonomous communication network
CN114448984A (en) Adaptive method of cross-platform general SDN controller
KR101943002B1 (en) System and method for controlling traffic in tactical service mesh network

Legal Events

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