KR102277554B1 - 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법 - Google Patents

소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법 Download PDF

Info

Publication number
KR102277554B1
KR102277554B1 KR1020210040325A KR20210040325A KR102277554B1 KR 102277554 B1 KR102277554 B1 KR 102277554B1 KR 1020210040325 A KR1020210040325 A KR 1020210040325A KR 20210040325 A KR20210040325 A KR 20210040325A KR 102277554 B1 KR102277554 B1 KR 102277554B1
Authority
KR
South Korea
Prior art keywords
controller
load
switch
software
migration
Prior art date
Application number
KR1020210040325A
Other languages
English (en)
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 KR1020210040325A priority Critical patent/KR102277554B1/ko
Application granted granted Critical
Publication of KR102277554B1 publication Critical patent/KR102277554B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element

Abstract

소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법이 제공된다. 상기 방법은 컨트롤러에서, 복수의 오픈플로우 스위치로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장하는 단계; 상기 컨트롤러에서, 부하 상태를 판단하는 단계; 상기 컨트롤러에서, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정하는 단계; 상기 컨트롤러에서, 상기 스위치 마이그레이션이 결정됨에 따라, 상기 복수의 오픈플로우 스위치 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택하는 단계; 상기 컨트롤러에서, 소정의 알고리즘을 통해 계산된 결과에 기초하여 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계; 및 상기 컨트롤러에서, 상기 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션하는 단계를 포함한다.

Description

소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법{CONTROLLER AND METHOD FOR PROVIDING SWITCH MIGRATION IN SOFTWARE DEFINED NETWORKING}
본 발명은 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법에 관한 것이다.
SDN(Software Defined Networking, 소프트웨어 정의 네트워킹, 이하 SDN) 기술은 네트워크의 모든 장비를 지능화된 중앙 관리 시스템에 의해 관리하는 기술을 말한다. 즉, SDN 기술은 네트워크의 데이터 평면(data plane)과 제어 평면(control plane)을 분리하고, 데이터 평면은 패킷 전송에 필요한 모든 결정을 제어 평면에 질의하도록 하여, 제어 평면이 네트워크 구성과 패킷 흐름을 중앙 집중식으로 제어할 수 있도록 하는 기술이다.
SDN 네트워크에서 제어 평면은 일반적으로 SDN 컨트롤러(controller)라고 부른다. 이러한 기술은 다양한 통신 네트워크에 적용하나, 특히 항공기, 함정 등의 통신 시스템에 적용할 수 있다.
SDN 기술은 네트워크 관리 및 운용 등에서 발생하는 높은 비용을 해결하기 위해 제안된 것으로, 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신 처리하게 하는 것이다.
따라서, 기존 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다. 즉, SDN 기술은 기존의 네트워크 구조와 다르게 제어 평면과 데이터 평면을 분리하는 구조를 갖는다.
한편, 기존 SDN 구조는 제어 평면을 중앙 집중식으로 구성하여 네트워크 규모의 증가에 따른 확장성을 보장하기 어려운 문제가 있었다.
Open Networking Foundation, "OpenFlow Specification 1.3.0"(20012.6.25.)
본 발명이 해결하고자 하는 과제는 기존 SDN의 중앙 컨트롤러 방식의 확장성 문제를 해결하기 위해 스위치와 컨트롤러를 매핑하는 스위치 마이그레이션 기술을 적용함에 있어, 컨트롤러의 부하 불균형 문제를 해소할 수 있는, 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법을 제공하는 것이다.
다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 제1 측면에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법은, 컨트롤러에서, 복수의 오픈플로우 스위치로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장하는 단계; 상기 컨트롤러에서, 부하 상태를 판단하는 단계; 상기 컨트롤러에서, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정하는 단계; 상기 컨트롤러에서, 상기 스위치 마이그레이션이 결정됨에 따라, 상기 복수의 오픈플로우 스위치 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택하는 단계; 상기 컨트롤러에서, 소정의 알고리즘을 통해 계산된 결과에 기초하여 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계; 및 상기 컨트롤러에서, 상기 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션하는 단계를 포함한다.
본 발명의 일부 실시예에서, 상기 컨트롤러에서, 부하 상태를 판단하는 단계는, 상기 컨트롤러에서의 현재 부하를 측정하는 단계; 상기 타 컨트롤러의 현재 부하 정보를 수신하는 단계; 상기 컨트롤러에서의 현재 부하 및 타 컨트롤러에서의 현재 부하 정보에 기초하여, 상기 소프트웨어 정의 네트워크 내 전체 컨트롤러에 대한 평균 부하를 산출하는 단계; 및 상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단하는 단계를 포함한다.
본 발명의 일부 실시예에서, 상기 컨트롤러에서의 현재 부하를 측정하는 단계는, 소정의 시간 T 동안 상기 컨트롤러가 수신한 패킷 인 메시지의 수에 기초하여 산출될 수 있다.
본 발명의 일부 실시예에서, 상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단하는 단계는, 상기 평균 부하에 대한 현재 부하의 비율에 기초하여 판단할 수 있다.
본 발명의 일부 실시예에서, 상기 컨트롤러에서, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정하는 단계는, 상기 평균 부하에 대한 현재 부하의 비율이 1 이상인 경우, 상기 스위치 마이그레이션을 수행하는 것으로 결정할 수 있다.
본 발명의 일부 실시예에서, 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계는, 상기 소정의 알고리즘으로 기대값-최대화(Expection-Maximization) 알고리즘에 기초하여 상기 타 컨트롤러를 선택할 수 있다.
본 발명의 일부 실시예에서, 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계는, 상기 소프트웨어 정의 네트워크 내 타 컨트롤러 각각에 대한 현재 부하에 상응하는 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 하는 기대값을 산출하는 단계; 상기 최대 로그 우도 값의 하한을 기반으로 하는 기대값을 대상으로 최대화(Maximization) 과정을 수행하는 단계; 및 상기 기대값과 최대화 과정을 수행한 결과값(이하, 최대화 과정 결과값)이 미리 정의된 수렴 조건을 만족하는 경우, 가장 작은 상기 수렴된 최대화 과정 결과값을 갖는 타 컨트롤러를 상기 마이그레이션 대상 컨트롤러로 선택하는 단계를 포함할 수 있다.
본 발명의 일부 실시예에서, 상기 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 기대값을 산출하는 단계는, 각 컨트롤러에 의해 처리되는 패킷 인 메시지의 수와, 소정의 파라미터를 갖는 조건 변수와 잠재변수의 사후분포를 통해 산출되고, 상기 잠재변수는 상기 패킷 인 메시지의 수에 기초하여 간접적으로 잠재변수의 기대값으로 산출될 수 있다.
본 발명의 일부 실시예는, 상기 기대값을 산출하는 단계와 최대화 과정을 수행하는 단계를 상기 미리 정의된 수렴 조건을 만족할 때까지 반복 수행하는 단계를 더 포함하고, 상기 미리 정의된 수렴 조건을 만족할 때까지 반복 수행하는 단계는, 1회 반복 수행시 상기 최대화 과정 결과값을 상기 기대값을 산출하는 단계의 상기 파라미터에 대한 추정값으로 사용할 수 있다.
또한, 본 발명의 제2 측면에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러는, 복수의 오픈플로우 스위치로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장하는 수신 기록 저장부, 상기 패킷 인 메시지에 기초하여 부하 상태를 판단하는 부하 상태 판단부, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션이 결정됨에 따라, 복수의 오픈플로우 스위치 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택하고, 소정의 알고리즘을 통해 계산된 결과에 기초하여 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 부하 적응 결정부 및 상기 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션하는 마이그레이션 수행부를 포함한다.
본 발명의 일부 실시예에서, 상기 부하 상태 판단부는, 소정의 시간 T 동안 상기 컨트롤러가 수신한 패킷 인 메시지의 수에 기초하여 현재 부하를 산출하고, 상기 타 컨트롤러의 현재 부하 정보를 수신한 후, 상기 현재 부하 및 타 컨트롤러에서의 현재 부하 정보에 기초하여, 상기 소프트웨어 정의 네트워크 내 전체 컨트롤러에 대한 평균 부하를 산출하고, 상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단할 수 있다.
본 발명의 일부 실시예에서, 상기 부하 상태 판단부는 상기 평균 부하에 대한 현재 부하의 비율에 기초하여 상기 부하 상태를 판단할 수 있다.
본 발명의 일부 실시예에서, 상기 부하 적응 결정부는, 상기 평균 부하에 대한 현재 부하의 비율이 1 이상인 경우, 상기 스위치 마이그레이션을 수행하는 것으로 결정할 수 있다.
본 발명의 일부 실시예에서, 상기 부하 적응 결정부는, 상기 소정의 알고리즘으로 기대값-최대화(Expection-Maximization) 알고리즘에 기초하여 상기 타 컨트롤러를 선택할 수 있다.
본 발명의 일부 실시예에서, 상기 부하 적응 결정부는 상기 소프트웨어 정의 네트워크 내 전체 타 컨트롤러 각각에 대한 현재 부하에 상응하는 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 하는 기대값을 산출한 후, 상기 기대값을 대상으로 최대화(Maximization) 과정을 수행하고, 상기 기대값과 최대화 과정을 수행한 결과값(이하, 최대화 과정 결과값)이 미리 정의된 수렴 조건을 만족하는 경우, 가장 작은 상기 수렴된 최대화 과정 결과값을 갖는 타 컨트롤러를 상기 마이그레이션 대상 컨트롤러로 선택할 수 있다.
본 발명의 일부 실시예에서, 상기 부하 적응 결정부는 각 컨트롤러에 의해 처리되는 패킷 인 메시지의 수와, 소정의 파라미터를 갖는 조건 변수와 잠재변수의 사후분포를 통해 상기 기대값을 산출하되, 상기 잠재변수는 상기 패킷 인 메시지의 수에 기초하여 간접적으로 잠재변수의 기대값으로 산출될 수 있다.
본 발명의 일부 실시예에서, 상기 부하 적응 결정부는 상기 기대값과 최대화 과정 결과값을 상기 미리 정의된 수렴 조건을 만족할 때까지 반복하여 산출하되, 1회 반복 수행시 상기 최대화 과정 결과값을 상기 기대값을 산출하기 위한 상기 파라미터에 대한 추정값으로 사용할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명에 따르면, 동적 네트워크 조건을 고려하여 동적으로 마이그레이션 대상 컨트롤러를 동적으로 선택할 수 있다. 이때, 기대값-최대화 알고리즘을 사용하여 패킷 인 메시지를 학습하기 대문에 컨트롤러 부하 예측 및 선택을 정확하게 판단 및 결정할 수 있다는 장점이 있다.
특히, 본 발명에서 적용하는 DDSM 방식은 이전 패킷 포워딩 기록을 기반으로 학습하기 때문에, 대상 컨트롤러를 보다 정확하고 유연하게 선택할 수 있다는 장점이 있다. 또한, DDSM 방식은 중복 연산이 아닌 컨트롤러를 선택하는데 있어 중요한 요소만을 고려하기 때문에 복잡도가 낮다는 장점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시 예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예는 스위치 마이그레이션을 제공하는 컨트롤러의 블록도이다.
도 3은 본 발명의 일 실시예는 타 컨트롤러로 스위치 마이그레이션되는 일 예시를 도시한 도면이다.
도 4는 마이그레이션 대상 컨트롤러를 선택하기 위한 알고리즘을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법의 순서도이다.
도 6은 스위치 마이그레이션시의 수행 시간에 따른 평균 처리량에 대한 변화를 도시한 도면이다.
도 7은 스위치 마이그레이션시 패킷 크기에 따른 평균 패킷 손실률에 대한 변화를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에서의 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다.
도 1을 참조하면, SDN(Software Defined Network)은 컨트롤러(100), 네트워크 장비(200) 및 호스트(300)를 포함한다. 이때, 네트워크 장비(200)와 호스트(300)는 노드(Node)라 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미한다.
컨트롤러(100)는 네트워크 장비(200)를 관리하는 기능을 하며, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러(100)는 토폴로지 관리(Topology Management), 패킷 처리와 관련된 경로 관리(Path Management), 링크 디스커버리(Link Discovery), 패킷 흐름인 플로우 관리(Flow Management) 등의 기능을 하는 소프트웨어가 탑재된 형태로 구현될 수 있다.
네트워크 장비(200)는 컨트롤러(100)의 제어어 따라 패킷을 처리하는 기능을 수행한다. 이때, 네트워크 장비(200)의 일 예로는 이통 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크 스위치, 라우터 등일 수 있다. 다만, 설명의 편의를 위해 이하에서는 네트워크 장비(200)는 오픈플로우 스위치인 경우를 중심으로 설명하며, 동일한 도면 부호를 병기하도록 한다. 하지만, 네트워크 장비(200) 즉, 본 발명에서의 스위치는 반드시 오픈플로우 스위치로만 한정되는 것은 아니며 기존 레거시 스위치도 포함하는 개념이다.
소프트웨어 정의 네트워크에서 컨트롤러(100)와 네트워크 장비(200)는 상호간에 정보를 주고받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러(100)와 네트워크 장비(200) 간 서로 통신할 수 있는 표준 규격이다.
보다 구체적으로 설명하면, 네트워크 장비(200)는 크게 소프트웨어 계층과 하드웨어 계층으로 구분된다.
상기 소프트웨어 계층은 보안 채널(Secure Channel)을 통해 컨트롤러(100)와 정보를 교환한다. 보안 채널은 네트워크 장비(200)와 원거리에 위치한 컨트롤러(100) 간 통신 채널이며, 컨트롤러와 네트워크 장비(200) 간 교환되는 정보는 암호화된다.
상기 하드웨어 계층에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 플로우 테이블(Flow table)이 존재한다. 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 플로우 룰은 컨트롤러(100)가 생성하여 네트워크 장비(200)에 전송하는 플로우 모드 메시지(Flow-Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다. 네트워크 장비(200)는 플로우 테이블을 참조하여 패킷을 처리한다. 한편, 플로우 룰은 해당 업계의 통상의 입장에서 소프트웨어 정의 네트워크에서 컨트롤러(100)가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다. 즉, 플로우 룰은 컨트롤러(100)가 연결된 상태에서 적용되는 플로우 룰이며, 컨트롤러(100)에 의해 중앙 집중적으로 패킷 처리가 제어되는 플로우 엔트리가 정의된 룰이다.
플로우 테이블은 플로우를 정의하는 패킷 헤더 정보(Match Fields), 패킷의 처리를 정의하는 동작 정보(Action) 및 플로우별 통계 정보(Stats)를 포함한다. 여기에서, 플로우 테이블을 구성하는 각 행을 플로우 엔트리(Flow Entry)라 칭한다.
호스트(300)는 네트워크 장비(200)의 하위 계층에 해당하는 단말 등을 의미하는 것으로, 클라이언트 및 서버를 통칭하는 의미로 사용될 수 있다. 호스트(300)는 소프트웨어 정의 네트워크를 통해 다른 호스트에 보내기 위한 패킷을 생성하고, 패킷을 네트워크 인터페이스의 포트를 통해 네트워크 장비(200)로 전송할 수 있다.
예컨대, 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 우선 제1 호스트(300a)는 보내고자 하는 패킷을 생성하고, 해당 패킷을 제1 호스트(300a)와 연결된 네트워크 장비(200)로 전송한다. 네트워크 장비(200)에 해당 패킷의 처리를 규정한 플로우 테이블이 존재하는 경우, 네트워크 장비(200)가 규정대로 패킷을 처리한다.
하지만, 네트워크 장비(200)에 해당 패킷과 관련된 플로우 테이블이 없는 경우, 네트워크 장비(200)는 컨트롤러(100)에 패킷 유입을 알리는 패킷-인 메시지(Packet-in Message)를 전송한다.
컨트롤러(100)는 오퍼레이터의 정책이나 미리 설정된 알고리즘에 따라 패킷의 처리를 규정하는 플로우 모드 메시지를 생성하여 네트워크 장비(200)로 전송하고, 네트워크 장비(200)는 플로우 모드 메시지에 의해 변경된 플로우 테이블을 참조하여 해당 패킷을 처리한다.
한편, 종래 기술에 따른 SDN 구조는 제어 평면을 중앙 집중식으로 구성하여 네트워크 규모의 증가에 따른 확장성을 보장하기 어렵다는 문제가 있었다. 이러한 제어 평면의 확장성 문제를 해소하기 위하여, 논리적으로 중앙 집중식이지만 물리적으로는 분산된 컨트롤러 구조를 사용한다. 그러나 물리적으로 분산된 컨트롤러 구조는 스위치와 컨트롤러의 매핑 상태에 따라 컨트롤러 간의 부하 불균형을 일으킬 수 있으며, 이는 전체적인 네트워크 컨트롤 시스템의 가용성과 처리 성능을 하락시킬 수 있다.
따라서, 핫 스팟(Hot-spot)의 컨트롤러가 관리하는 스위치의 일부를 콜드 스팟(Cold-spot)의 컨트롤러로 마이그레이션하여 부하 불균형을 완화하는 스위치 마이그레이션(Switch Migration; SM) 방법이 필요하며, 관련 기법들이 제안되었다.
스위치 마이그레이션은 부하 불균형을 해소함으로써 분산 컨트롤러의 안정성과 가용성을 향상시키는 것을 목적으로 한다. 따라서, 동적으로 변하는 부하 상태에 따른 스위치 마이그레이션을 수행할 컨트롤러와 스위치를 고려하는 것이 중요하다. 예를 들어, 무작위로 컨트롤러가 선택될 경우, 컨트롤러의 리소스가 정확히 고려되지 않았기 때문에 부하 불균형이 발생할 수 있다. 따라서, 부정확한 컨트롤러의 선택 절차는 오히려 컨트롤러의 부하 불균형을 일으킨다.
이러한 문제를 해소하기 위하여, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러(100) 및 방법은 동적 네트워크 조건을 고려함과 동시에 정확한 대상 컨트롤러 선택을 위한 새로운 스위치 마이그레이션 방법을 제공한다.
특히, 본 발명의 일 실시예는 스위치 마이그레이션에 적합한 컨트롤러를 결정하기 위하여 DDSM 방식(Adaptive Data-Driven Switch Migration)을 새롭게 제안한다. DDSM 방식은 컨트롤러에서의 이전 패킷 포워딩 기록을 기반으로 컨트롤러 선택 문제를 공식화하고, 기대값-최대화(Expection-Maximization; EM) 알고리즘을 적용하여 패킷 인 메시지의 학습을 기반으로 마이그레이션할 컨트롤러를 결정하는 것을 특징으로 한다.
이하에서는 도 2 내지 도 4를 참조하여 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러(100)에 대해 설명하도록 한다.
도 2는 본 발명의 일 실시예는 스위치 마이그레이션을 제공하는 컨트롤러(100)의 블록도이다. 도 3은 본 발명의 일 실시예는 타 컨트롤러로 스위치 마이그레이션되는 일 예시를 도시한 도면이다.
한편, 본 발명에 따른 소프트웨어 정의 네트워크 시스템에서 각 컨트롤러(100)는 동일한 성능을 가지며, 각 컨트롤러(100)는 전체 네트워크를 n개의 도메인으로 나눈다. 이때, 각 도메인에서의 트래픽 볼륨과 컨트롤러(100)의 워크로드는 동적으로 변경된다.
본 발명의 일 실시예에 따른 컨트롤러(100)는 수신 기록 저장부(110), 부하 상태 판단부(120), 부하 적응 결정부(130) 및 마이그레이션 수행부(140)를 포함한다.
수신 기록 저장부(110)는 해당 컨트롤러(100)와 현재 연결 접속된 복수의 오픈플로우 스위치(200)로부터 수신되는 패킷 인 메시지의 수신 기록을 저장한다.
부하 상태 판단부(120)는 수신한 패킷 인 메시지에 기초하여 컨트롤러(100)의 부하 상태를 판단한다.
일 실시예로, 부하 상태 판단부(120)는 컨트롤러의 부하 상태를 다음과 같은 과정에 따라 판단할 수 있다.
먼저, 부하 상태 판단부(120)는 컨트롤러(100)에서의 현재 부하(L(Cn))를 측정한다. 이때, 현재 부하(L(Cn))는 소정의 시간 T 동안 컨트롤러(100)가 수신한 패킷 인 메시지의 수에 기초하여 산출된다. 한편, 전체 네트워크 내에는 복수의 컨트롤러(100)가 포함되어 있으므로, 각 컨트롤러 내 부하 상태 판단부(120)는 각각의 컨트롤러(100)에서의 현재 부하(L(Cn))를 측정한다.
다음으로, 타 컨트롤러에서 산출된 현재 부하 정보를 수신하면, 현재 부하(L(Cn))와 타 컨트롤러에서의 현재 부하 정보에 기초하여, 소프트웨어 정의 네트워크 내 전체 컨트롤러에 대한 평균 부하(
Figure 112021036588265-pat00001
)를 산출한다. 여기에서 평균 부하(
Figure 112021036588265-pat00002
)는 전체 컨트롤러에서 현재 부하의 평균값으로 산출된다.
다음으로, 현재 부하(L(Cn))와 평균 부하(
Figure 112021036588265-pat00003
)의 비교 결과에 기초하여 컨트롤러(100)의 부하 상태를 판단한다. 이때, 부하 상태는 평균 부하(
Figure 112021036588265-pat00004
)에 대한 현재 부하(L(Cn))의 비율(
Figure 112021036588265-pat00005
)에 기초하여 판단되며, 상기 비율(
Figure 112021036588265-pat00006
)은 아래의 수학식 1에 따라 산출될 수 있다.
Figure 112021036588265-pat00007
부하 상태 판단부(120)는 평균 부하(
Figure 112021036588265-pat00008
)에 대한 현재 부하(L(Cn))의 비율(
Figure 112021036588265-pat00009
)이 1보다 작은 경우 현재 컨트롤러(100)에 부하가 없는 것으로 판단하고, 이와 달리 상기 비율(
Figure 112021036588265-pat00010
)이 1 이상인 경우에는 현재 컨트롤러(100)에 부하가 발생한 것으로 판단한다.
부하 적응 결정부(130)는 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정한다. 즉, 상기 부하 상태 판단부(120)에 의해 산출된 상기 비율(
Figure 112021036588265-pat00011
)이 1 이상인 경우, 스위치 마이그레이션을 수행할 것으로 결정한다.
부하 적응 결정부(130)는 스위치 마이그레이션을 수행하기로 결정한 경우, 현재 연결 접속된 복수의 오픈플로우 스위치(200) 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택한다. 그리고 소정의 알고리즘을 통해 계산된 결과에 기초하여 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택한다.
그리고 마이그레이션 수행부(140)는 후보 오픈플로우 스위치를 선택된 타 컨트롤러로 마이그레이션한다.
일 실시예로, 본 발명에 따른 부하 적응 결정부(130)는 소정의 알고리즘으로 도 4에 도시된 기대값-최대화(Expection-Maximization) 알고리즘에 기초하여 타 컨트롤러를 선택할 수 있다.
도 4는 마이그레이션 대상 컨트롤러를 선택하기 위한 알고리즘을 설명하기 위한 도면이다.
본 발명의 일 실시예는 기대값-최대화 알고리즘을 통해 마이그레이션 대상 컨트롤러를 선택하는 것을 특징으로 하며, 알고리즘을 수행하기 전 모든 초기 조건은 랜덤으로 선택된다. 이때, 본 발명에서는 전술한 바와 같이 전체 네트워크 내 복수의 컨트롤러가 분산적으로 각 도메인 별로 배치된 것으로 가정하도록 한다.
본 발명에서의 기대값-최대화 알고리즘은 먼저, 소프트웨어 정의 네트워크 내 타 컨트롤러 각각에 대한 현재 부하에 상응하는 최대 로그 우도(Log likelihood) 값(
Figure 112021036588265-pat00012
)의 하한(lower-bound)을 기반으로 하는 기대값(Qi(hi))을 산출한다(E-Step). 여기에서 최대 로그 우도는 컨트롤러 클러스터가 지닌 컨트롤러(100)의 부하 정도를 나타낸다.
상기 기대값(Qi(hi))은 각 컨트롤러(100)에 의해 처리되는 패킷 인 메시지의 수(oi)와, 소정의 파라미터(
Figure 112021036588265-pat00013
)를 갖는 조건 변수와 잠재 변수(Latent variable, hi)의 사후분포를 통해 아래의 수학식 2와 같이 산출된다.
Figure 112021036588265-pat00014
여기에서, 잠재변수(hi)는 직접적으로 측정되지 않기 때문에, 패킷 인 메시지의 수에 기초하여 간접적으로 잠재변수(hi)의 기대값을 산출한다.
다음으로, 최대 로그 우도 값의 하한을 기반으로 하는 기대값(
Figure 112021036588265-pat00015
)을 대상으로 최대화(Maximization) 과정을 수행한다. 이전 과정에서 산출한 기대값(
Figure 112021036588265-pat00016
)을 대상으로 최대화 과정을 수행하면, 결국 로그 우도 값을 최대화하는 것과 같은 결과를 얻을 수 있다.
이전 과정에서 산출한 기대값(
Figure 112021036588265-pat00017
)을 기반으로 최대화를 수행하여 다음 수학식 3에 따른 파라미터(
Figure 112021036588265-pat00018
) 값을 산출한다.
Figure 112021036588265-pat00019
상기 수학식 3은 주어진 모델
Figure 112021036588265-pat00020
의 파라미터
Figure 112021036588265-pat00021
에 적합한 수하식 4의 우도 함수
Figure 112021036588265-pat00022
를 통해 유도할 수 있다.
Figure 112021036588265-pat00023
그러나 파라미터(
Figure 112021036588265-pat00024
) 값으로 최대 우도를 측정하는 것은 어려우므로, 전술한 잠재변수(hi)를 통해 최대 우도를 측정할 수 있다. 이를 위해 Jensen's Inequality를 이용하면 상기 수학식 3을 아래의 수학식 4로 나타낼 수 있다.
Figure 112021036588265-pat00025
다음으로, 기대값(
Figure 112021036588265-pat00026
)과 최대화 과정을 수행한 결과값(이하, 최대화 과정 결과값)
Figure 112021036588265-pat00027
이 미리 정의된 수렴 조건을 만족하는 경우, 수렴된 최대화 과정 결과값 중 가장 작은 값을 갖는 타 컨트롤러를 마이그레이션 대상 컨트롤러로 선택한다. 이때, 선택된 타 컨트롤러는 나머지 컨트롤러에 비교했을 때 적은 부하 상태로 패킷 인 메시지를 처리하고 있으므로 스위치 마이그레이션에 적합한 컨트롤러로 선택된다.
이 과정에서, 기대값(
Figure 112021036588265-pat00028
)과 최대화 과정 결과값
Figure 112021036588265-pat00029
는 1회 산출 과정만으로는 정확한 값이 획득되지 않으므로, 기대값을 산출하는 과정과 최대화 과정 결과값을 산출하는 과정을 미리 설정된 수렴 조건을 만족할 때까지 반복 수행한다. 이때, 1회 반복 수행시 최대화 과정 결과값
Figure 112021036588265-pat00030
는 기대값(
Figure 112021036588265-pat00031
)을 산출하는 과정에서의 파라미터에 대한 추정값으로 사용될 수 있다.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법의 순서도이다.
한편, 도 5에 도시된 각 단계들은 도 1 내지 도 4에서 설명한 컨트롤러에 의해 수행되는 것으로 이해될 수 있으나, 반드시 이에 한정되는 것은 아니다.
먼저 컨트롤러(100)는 복수의 오픈플로우 스위치(200)로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장한다(S110).
다음으로, 컨트롤러(100)는 현재 부하 상태를 판단하고(S120), 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정한다(S130).
다음으로, 컨트롤러(100)는 스위치 마이그레이션이 결정됨에 따라, 복수의 오픈플로우 스위치(200) 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택한다(S140).
다음으로, 컨트롤러(100)는 소정의 알고리즘을 통해 계산된 결과에 기초하여 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하고(S150), 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션한다(S160).
한편, 상술한 설명에서, 단계 S110 내지 S160은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 4의 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러(100)의 내용은 도 5의 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법에도 적용될 수 있다.
이하에서는 도 6과 도 7을 참조하여 본 발명에 적용된 DDSM 방식의 성능 비교 결과를 설명하도록 한다.
도 6은 스위치 마이그레이션시의 수행 시간에 따른 평균 처리량에 대한 변화를 도시한 도면이다.
도 6은 본 발명에 따른 DDSM 방식의 성능을 다음과 같은 3가지 방식의 알고리즘과 비교한 것이다. 마이그레이션 효율을 기반으로 컨트롤러를 선택하는 SMDM 알고리즘, 가장 가까운 컨트롤러를 마이그레이션 컨트롤러로 선택하는 DNMA 알고리즘, 응답 시간을 고려하여 컨트롤러를 선택하는 SMCLBRT 알고리즘에 대하여 각각 스위치 마이그레이션시의 수행 시간에 따른 평균 처리량을 살펴보았다.
스위치 마이그레이션을 수행한 결과, 도 6에 도시된 바와 같이 본 발명의 일 실시예에 따른 DDSM 알고리즘이 타 알고리즘 방식보다 성능이 우월하게 나타나며, 시뮬레이션 시간이 지남에 따라 성능 차이가 확연하게 발생하는 것을 알 수 있다.
본 발명에 따른 DDSM 방식은 최근 패킷 인 메시지 기록을 기반으로 컨트롤러를 선택하기 때문에, 현재 네트워크 상황을 고려하여 스위치 마이그레이션에 가장 적합한 컨트롤러를 선택할 수 있으며, 이를 통해 컨트롤러의 잠재적인 부하 불균형을 방지할 수 있다. 반면, DNMA 방식은 가장 가까운 컨트롤러를 대상으로 컨트롤러를 선택하기 때문에 평균 처리량이 가장 낮음을 확인할 수 있다.
도 7은 스위치 마이그레이션시 패킷 크기에 따른 평균 패킷 손실률에 대한 변화를 도시한 도면이다.
도 7에 도시된 바와 같이 더 많은 패킷이 전송될수록 스위치 마이그레이션 이벤트로 인해 더 많은 패킷이 손실된다. 그러나 본 발명에 따른 DDSM 방식에서는 패킷 손실률이 다른 알고리즘 방식에 비해 가장 낮음을 확인할 수 있다.
이는 DDSM 방식이 SMDM 방식이나 SMCLBRT 방식과 같이 복잡한 의사 결정 과정이나 최적의 결정 계산보다는, 패킷 인 메시지 기록만으로 간단하게 후보 스위치를 선택할 수 있기 때문이다. 또한, 본 발명에 따른 DDSM 방식에서 사용하는 대상 컨트롤러의 선택 방식이 다른 알고리즘들에 비해 부하 혼잡을 최소화하기 때문에 패킷 손실률이 가장 적게 발생한다.
이상에서 전술한 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 컨트롤러
110: 수신 기록 저장부
120: 부하상태 판단부
130: 부하 적응 결정부
140: 마이그레이션 수행부

Claims (17)

  1. 소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법에 있어서,
    컨트롤러에서, 복수의 오픈플로우 스위치로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장하는 단계;
    상기 컨트롤러에서, 부하 상태를 판단하는 단계;
    상기 컨트롤러에서, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정하는 단계;
    상기 컨트롤러에서, 상기 스위치 마이그레이션이 결정됨에 따라, 상기 복수의 오픈플로우 스위치 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택하는 단계;
    상기 컨트롤러에서, 소정의 알고리즘을 통해 계산된 결과에 기초하여 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계; 및
    상기 컨트롤러에서, 상기 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션하는 단계를 포함하고,
    상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계는, 상기 소정의 알고리즘으로 기대값-최대화(Expection-Maximization) 알고리즘에 기초하여 상기 타 컨트롤러를 선택하고,
    상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 단계는,
    상기 소프트웨어 정의 네트워크 내 타 컨트롤러 각각에 대한 현재 부하에 상응하는 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 하는 기대값을 산출하는 단계;
    상기 최대 로그 우도 값의 하한을 기반으로 하는 기대값을 대상으로 최대화(Maximization) 과정을 수행하는 단계; 및
    상기 기대값과 최대화 과정을 수행한 결과값(이하, 최대화 과정 결과값)이 미리 정의된 수렴 조건을 만족하는 경우, 가장 작은 상기 수렴된 최대화 과정 결과값을 갖는 타 컨트롤러를 마이그레이션 대상 컨트롤러로 선택하는 단계를 포함하는,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  2. 제1항에 있어서,
    상기 컨트롤러에서, 부하 상태를 판단하는 단계는,
    상기 컨트롤러에서의 현재 부하를 측정하는 단계;
    상기 타 컨트롤러의 현재 부하 정보를 수신하는 단계;
    상기 컨트롤러에서의 현재 부하 및 타 컨트롤러에서의 현재 부하 정보에 기초하여, 상기 소프트웨어 정의 네트워크 내 전체 컨트롤러에 대한 평균 부하를 산출하는 단계; 및
    상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단하는 단계를 포함하는,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  3. 제2항에 있어서,
    상기 컨트롤러에서의 현재 부하를 측정하는 단계는,
    소정의 시간 T 동안 상기 컨트롤러가 수신한 패킷 인 메시지의 수에 기초하여 산출되는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  4. 제2항에 있어서,
    상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단하는 단계는,
    상기 평균 부하에 대한 현재 부하의 비율에 기초하여 판단하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  5. 제4항에 있어서,
    상기 컨트롤러에서, 상기 판단된 부하 상태에 기초하여 스위치 마이그레이션 여부를 결정하는 단계는,
    상기 평균 부하에 대한 현재 부하의 비율이 1 이상인 경우, 상기 스위치 마이그레이션을 수행하는 것으로 결정하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 기대값을 산출하는 단계는,
    각 컨트롤러에 의해 처리되는 패킷 인 메시지의 수와, 소정의 파라미터를 갖는 조건 변수와 잠재변수의 사후분포를 통해 산출되고, 상기 잠재변수는 상기 패킷 인 메시지의 수에 기초하여 간접적으로 잠재변수의 기대값으로 산출되는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  9. 제8항에 있어서,
    상기 기대값을 산출하는 단계와 최대화 과정을 수행하는 단계를 상기 미리 정의된 수렴 조건을 만족할 때까지 반복 수행하는 단계를 더 포함하고,
    상기 미리 정의된 수렴 조건을 만족할 때까지 반복 수행하는 단계는,
    1회 반복 수행시 상기 최대화 과정 결과값을 상기 기대값을 산출하는 단계의 상기 파라미터에 대한 추정값으로 사용하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션 방법.
  10. 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러에 있어서,
    복수의 오픈플로우 스위치로부터 수신되는 패킷 인 메시지(Packet-In Message)의 수신 기록을 저장하는 수신 기록 저장부,
    상기 패킷 인 메시지에 기초하여 부하 상태를 판단하는 부하 상태 판단부,
    상기 판단된 부하 상태에 기초하여 스위치 마이그레이션이 결정됨에 따라, 복수의 오픈플로우 스위치 중 가장 많은 패킷 인 메시지를 전송한 오픈플로우 스위치를 후보 오픈플로우 스위치로 선택하고, 소정의 알고리즘을 통해 계산된 결과에 기초하여 상기 후보 오픈플로우 스위치를 마이그레이션할 타 컨트롤러를 선택하는 부하 적응 결정부 및
    상기 후보 오픈플로우 스위치를 타 컨트롤러로 마이그레이션하는 마이그레이션 수행부를 포함하고,
    상기 부하 적응 결정부는, 상기 소정의 알고리즘으로 기대값-최대화(Expection-Maximization) 알고리즘에 기초하여 상기 타 컨트롤러를 선택하며,
    상기 부하 적응 결정부는 상기 소프트웨어 정의 네트워크 내 전체 타 컨트롤러 각각에 대한 현재 부하에 상응하는 최대 로그 우도(Log likelihood) 값의 하한(lower-bound)을 기반으로 하는 기대값을 산출한 후, 상기 기대값을 대상으로 최대화(Maximization) 과정을 수행하고, 상기 기대값과 최대화 과정을 수행한 결과값(이하, 최대화 과정 결과값)이 미리 정의된 수렴 조건을 만족하는 경우, 가장 작은 상기 수렴된 최대화 과정 결과값을 갖는 타 컨트롤러를 마이그레이션 대상 컨트롤러로 선택하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
  11. 제10항에 있어서,
    상기 부하 상태 판단부는, 소정의 시간 T 동안 상기 컨트롤러가 수신한 패킷 인 메시지의 수에 기초하여 현재 부하를 산출하고, 상기 타 컨트롤러의 현재 부하 정보를 수신한 후,
    상기 현재 부하 및 타 컨트롤러에서의 현재 부하 정보에 기초하여, 상기 소프트웨어 정의 네트워크 내 전체 컨트롤러에 대한 평균 부하를 산출하고, 상기 현재 부하와 평균 부하의 비교 결과에 기초하여 상기 부하 상태를 판단하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
  12. 제11항에 있어서,
    상기 부하 상태 판단부는 상기 평균 부하에 대한 현재 부하의 비율에 기초하여 상기 부하 상태를 판단하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
  13. 제12항에 있어서,
    상기 부하 적응 결정부는, 상기 평균 부하에 대한 현재 부하의 비율이 1 이상인 경우, 상기 스위치 마이그레이션을 수행하는 것으로 결정하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
  14. 삭제
  15. 삭제
  16. 제10항에 있어서,
    상기 부하 적응 결정부는 각 컨트롤러에 의해 처리되는 패킷 인 메시지의 수와, 소정의 파라미터를 갖는 조건 변수와 잠재변수의 사후분포를 통해 상기 기대값을 산출하되,
    상기 잠재변수는 상기 패킷 인 메시지의 수에 기초하여 간접적으로 잠재변수의 기대값으로 산출되는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
  17. 제16항에 있어서,
    상기 부하 적응 결정부는 상기 기대값과 최대화 과정 결과값을 상기 미리 정의된 수렴 조건을 만족할 때까지 반복하여 산출하되, 1회 반복 수행시 상기 최대화 과정 결과값을 상기 기대값을 산출하기 위한 상기 파라미터에 대한 추정값으로 사용하는 것인,
    소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러.
KR1020210040325A 2021-03-29 2021-03-29 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법 KR102277554B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210040325A KR102277554B1 (ko) 2021-03-29 2021-03-29 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210040325A KR102277554B1 (ko) 2021-03-29 2021-03-29 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법

Publications (1)

Publication Number Publication Date
KR102277554B1 true KR102277554B1 (ko) 2021-07-15

Family

ID=76889302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210040325A KR102277554B1 (ko) 2021-03-29 2021-03-29 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법

Country Status (1)

Country Link
KR (1) KR102277554B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645146A (zh) * 2021-08-09 2021-11-12 北京邮电大学 基于新流密度的软件定义网络控制器负载均衡方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101601098B1 (ko) * 2014-12-29 2016-03-08 서강대학교산학협력단 Sdn 컨트롤러간 커뮤니케이션의 개수를 감소시키는 방법 및 시스템
KR101660849B1 (ko) * 2015-03-06 2016-09-28 성균관대학교산학협력단 소프트웨어 정의 네트워크 기반의 네트워크 자율제어 방법
KR20170113937A (ko) * 2016-03-29 2017-10-13 인하대학교 산학협력단 유전자 알고리즘을 이용한 부하 분배 장치 및 그 방법
KR101908466B1 (ko) * 2014-01-10 2018-10-16 후아웨이 테크놀러지 컴퍼니 리미티드 소프트웨어 정의 네트워크 내의 구획 시스템 및 방법
JP6835444B2 (ja) * 2015-12-31 2021-02-24 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908466B1 (ko) * 2014-01-10 2018-10-16 후아웨이 테크놀러지 컴퍼니 리미티드 소프트웨어 정의 네트워크 내의 구획 시스템 및 방법
KR101601098B1 (ko) * 2014-12-29 2016-03-08 서강대학교산학협력단 Sdn 컨트롤러간 커뮤니케이션의 개수를 감소시키는 방법 및 시스템
KR101660849B1 (ko) * 2015-03-06 2016-09-28 성균관대학교산학협력단 소프트웨어 정의 네트워크 기반의 네트워크 자율제어 방법
JP6835444B2 (ja) * 2015-12-31 2021-02-24 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法
KR20170113937A (ko) * 2016-03-29 2017-10-13 인하대학교 산학협력단 유전자 알고리즘을 이용한 부하 분배 장치 및 그 방법

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645146A (zh) * 2021-08-09 2021-11-12 北京邮电大学 基于新流密度的软件定义网络控制器负载均衡方法及系统
CN113645146B (zh) * 2021-08-09 2023-09-26 北京邮电大学 基于新流密度的软件定义网络控制器负载均衡方法及系统

Similar Documents

Publication Publication Date Title
CN110601973B (zh) 一种路由规划方法、系统、服务器及存储介质
EP4087202A1 (en) Data stream type identification model updating method and related device
EP3907617B1 (en) Container management based on application performance indicators
CN109474449A (zh) 一种处理网络切片实例的方法及装置
US20220240157A1 (en) Methods and Apparatus for Data Traffic Routing
US9935832B2 (en) Automated placement of measurement endpoint nodes in a network
CN110058937B (zh) 用于调度专用处理资源的方法、设备和介质
US11956118B2 (en) Fault root cause identification method, apparatus, and device
Wu et al. Dynamic switch migration with noncooperative game towards control plane scalability in SDN
KR102277554B1 (ko) 소프트웨어 정의 네트워크에서의 스위치 마이그레이션을 제공하는 컨트롤러 및 방법
Tsvetkov et al. Model of restoration of the communication network using the technology of software defined networks
US20140047260A1 (en) Network management system, network management computer and network management method
US11556100B2 (en) Control method, related device, and system
KR20220029142A (ko) Sdn 컨트롤러 서버 및 이의 sdn 기반 네트워크 트래픽 사용량 분석 방법
JP2016010124A (ja) 管理装置、管理プログラム及び情報処理システム
US11558263B2 (en) Network device association with network management system
Ramana et al. Multipath transmission control protocol for live virtual machine migration in the cloud environment
US20230216737A1 (en) Network performance assessment
Ren et al. End-to-End Network SLA Quality Assurance for C-RAN: A Closed-Loop Management Method Based on Digital Twin Network
Savchenko et al. Computer networks monitoring and management methods
KR102404112B1 (ko) 소프트웨어 정의 네트워크 환경에서의 sdn 컨트롤러 서버 장애 발생시 이를 처리하는 네트워크 장비 및 방법
KR102537023B1 (ko) 인공지능 기반의 트래픽 분석을 사용한 네트워크 트래픽 제어 방법 및 이러한 방법을 수행하는 장치
Haider et al. PID based congestion control algorithms for AQM routers supporting TCP/IP flows
CN111327571A (zh) 设备控制方法、装置、控制节点、网络设备、数据中心
CN117544422B (zh) 防火墙虚拟化部署方法及系统

Legal Events

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