KR101816719B1 - 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법 - Google Patents

소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법 Download PDF

Info

Publication number
KR101816719B1
KR101816719B1 KR1020160079174A KR20160079174A KR101816719B1 KR 101816719 B1 KR101816719 B1 KR 101816719B1 KR 1020160079174 A KR1020160079174 A KR 1020160079174A KR 20160079174 A KR20160079174 A KR 20160079174A KR 101816719 B1 KR101816719 B1 KR 101816719B1
Authority
KR
South Korea
Prior art keywords
controller
equation
master controller
remind
controllers
Prior art date
Application number
KR1020160079174A
Other languages
English (en)
Other versions
KR20180001621A (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 KR1020160079174A priority Critical patent/KR101816719B1/ko
Priority to US15/632,535 priority patent/US10284421B2/en
Publication of KR20180001621A publication Critical patent/KR20180001621A/ko
Application granted granted Critical
Publication of KR101816719B1 publication Critical patent/KR101816719B1/ko

Links

Images

Classifications

    • 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
    • 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/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • 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/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • 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/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • 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/02Standardisation; Integration
    • 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/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

마스터 컨트롤러를 할당하는 방법이 개시된다. 상기 마스터 컨트롤러를 할당하는 방법은 소프트웨어 정의 네트워크 시스템에 포함된 복수의 컨트롤러들 중 어느 하나의 컨트롤러에 의해 수행되고, 단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우들의 수를 의사결정 변수(decision variable)로 하는 목적 함수(objective function)를 설정하는 단계, 적어도 하나의 제약조건(constraints)을 설정하는 단계, 및 상기 적어도 하나의 제약조건을 만족시키고 상기 의사결정 변수를 최소화하는 해를 구하는 단계를 포함한다.

Description

소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법{METHOD FOR ASSIGNING MASTER CONTROLLER IN SOFTWARE DEFINED NETWORK}
본 발명의 개념에 따른 실시 예는 소프트웨어 정의 네트워크에서의 마스터 컨트롤러 할당 방법에 관한 것으로서, 보다 상세하게는 복수의 컨트롤러들을 포함하는 소프트웨어 정의 네트워크 환경에서 각각의 스위치에 대한 마스터 컨트롤러를 할당하는 방법에 관한 것이다.
소프트웨어 정의 네트워크(Software Defined Network: SDN)는 최근 네트워크 구축, 관리, 운용 등에서 발생하는 높은 비용과 복잡성을 근본적으로 해결하기 위해 제안된 것으로서, 기존 네트워크 장비의 제어부분과 패킷(또는 플로우) 전달 부분을 분리하는 구조를 갖는다.
SDN에서는 네트워크의 제어 기능과 데이터 전달 기능이 서로 분리되며, 논리적으로 중앙 집중된 SDN 컨트롤러가 전체 네트워크를 제어하게 된다. 고 가용성을 보장하기 위해 스위치는 다수의 컨트롤러들과 접속되어 있으나, 그 중 하나의 컨트롤러만이 해당 스위치에 대한 제어 권한을 갖는다. 이때, 스위치와 연결되어 있는 컨트롤러들 중 제어 권한을 갖는 컨트롤러를 상기 스위치의 마스터 컨트롤러(master controller)라 하고, 제어 권한이 없는 컨트롤러들을 슬레이브 컨트롤러(slave controller)라 한다.
스위치는 새로 도착한 플로우(또는 패킷)에 대한 플로우 설치 요청 메시지와 컨트롤러에게 주기적으로 또는 비주기적으로 전송하는 네트워크 통계 메시지 등을 자신의 마스터 컨트롤러에게만 전송하고, 자신의 마스터 컨트롤러에게서 전송된 제어 메시지들만을 처리한다. 또한, 스위치는 자신의 슬레이브 컨트롤러들에게 연결을 위한 메시지 이외에 다른 메시지들을 전송하지 않는다. 한편, 스위치의 마스터 컨트롤러에 장애(소프트웨어/하드웨어 장애 혹은 네트워크 장애)가 발생한 경우, 슬레이브 컨트롤러들 중 어느 하나가 새로운 마스터 컨트롤러로 선택되어 해당 장비를 제어하게 된다.
한편, 이러한 다중 SDN 컨트롤러 환경에서, 플로우가 서로 다른 마스터 컨트롤러들을 할당받은 스위치들이 포함된 경로를 지나는 경우, 해당 플로우에 대한 설치 지연시간이 증가하게 된다. 이는 지연시간에 민감한 애플리케이션에게 치명적이기 때문에, 지연시간을 감소시키는 마스터 컨트롤러를 할당하는 방법이 필요하다.
대한미국 공개특허 제2016-0033039호 (2016.03.25. 공개) 대한민국 공개특허 제2015-0034551호 (2015.04.03. 공개) 대한민국 공개특허 제2016-0003603호 (2016.01.11. 공개)
본 발명이 이루고자 하는 기술적인 과제는 스위치들 간의 평균 플로우 도착률과 각 컨트롤러의 처리 용량을 고려하여 평균 플로우 설치 지연시간을 최소화할 수 있는 마스터 컨트롤러를 할당하는 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 마스터 컨트롤러를 할당하는 방법은 소프트웨어 정의 네트워크 시스템에 포함된 복수의 컨트롤러들 중 어느 하나의 컨트롤러에 의해 수행되고, 단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우들의 수를 의사결정 변수(decision variable)로 하는 목적 함수(objective function)를 설정하는 단계, 적어도 하나의 제약조건(constraints)을 설정하는 단계, 및 상기 적어도 하나의 제약조건을 만족시키고 상기 의사결정 변수를 최소화하는 해를 구하는 단계를 포함한다.
본 발명의 실시 예에 따른 마스터 컨트롤러를 할당하는 방법에 의할 경우, 스위치들 간의 평균 플로우 도착률을 고려하여 스위치들 각각의 마스터 컨트롤러를 결정함으로써 평균 플로우 설치 지연시간을 최소화할 수 있는 효과가 있다.
또한, 본 발명의 실시 예에 따른 마스터 컨트롤러를 할당하는 방법에 의할 경우, 복수의 컨트롤러들 각각의 부하를 고려하여 마스터 컨트롤러를 할당하기 때문에 복수의 컨트롤러들 간의 부하 불균형을 해소할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워크 시스템에서 리엑티브 포워딩(reactive forwarding) 기반의 플로우 설치 과정을 도시한 도면으로, 도 1a는 동일한 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우에 대한 플로우 설치 과정을, 도 1b는 서로 다른 마스터 컨트롤러를 갖는 스위치들을 지나는 플로우에 대한 플로우 설치 과정을 도시한다.
도 2는 컨트롤러에 의해 수행되는 마스터 컨트롤러 할당 방법을 설명하기 위한 흐름도이다.
도 3은 파라미터에 따른 평균 플로우 설치 지연시간의 변화를 도시하는 그래프이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 의한 소프트웨어 정의 네트워크(Software Defined Network ; SDN) 시스템에서 리엑티브 포워딩(reactive forwarding) 기반의 플로우 설치 과정을 도시한다.
SDN 시스템으로 명명될 수도 있는 시스템은 다중 SDN 컨트롤러 환경을 제공한다. 즉, 상기 시스템은 복수의 컨트롤러들을 포함할 수 있다. 또한, 리엑티브 포워딩이란 스위치에 새로운 플로우가 유입되면, 컨트롤러가 이에 반응하여 해당 플로우에 대한 포워딩 규칙, 즉 플로우 엔트리를 플로우의 경로 상에 위치하는 스위치들에게 설치하는 포워딩 방식을 의미한다.
도 1에서 실선은 스위치와 마스터 컨트롤러 간의 연결을 의미하고, 점선은 스위치와 슬레이브 컨트롤러 간의 연결을 의미한다. 복수의 컨트롤러들은 서로 연결을 유지하고 있으며, 동기화된 전체 네트워크 뷰(view)를 유지한다. 모든 스위치들은 서로 직접적인 연결을 갖고 있고, 네트워크 통계 메시지들을 자신의 마스터 컨트롤러에게 주기적으로 전송한다. 이때, 네트워크 통계 메시지는 스위치의 플로우 테이블에 설치된 플로우들에 대한 통계 정보, 스위치의 포트들에 대한 통계 정보, 링크 상태 정보 등 다양한 정보를 포함할 수 있다. 한편, 네트워크 통계 메시지를 전송하는 주기는 네트워크 관리자에 의해 임의로 설정될 수 있으며, 컨트롤러가 하나의 스위치로부터 받는 네트워크 통계 메시지들의 평균 도착률
Figure 112016061188825-pat00001
은 설정된 주기를 기반으로 계산할 수 있다.
복수의 컨트롤러들 각각은 스위치
Figure 112016061188825-pat00002
에서 스위치
Figure 112016061188825-pat00003
로 흐르는 플로우의 단위 시간 동안의 발생 횟수
Figure 112016061188825-pat00004
, 즉 평균 도착률을 모든 스위치 쌍 (
Figure 112016061188825-pat00005
,
Figure 112016061188825-pat00006
)에 대해 유지한다. 리엑티브 포워딩 방식에서 스위치는 새로 유입되는 플로우들에 대한 정보를 컨트롤러에게 알리기 때문에, 컨트롤러는 이를 바탕으로
Figure 112016061188825-pat00007
를 계산할 수 있다.
본 명세서에서 언급되는 "컨트롤러"는 플로우(트래픽 또는 패킷)의 흐름을 제어하기 위한 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미하는 것으로, 물리적인 구현 형태나 구현 위치 등에 한정되지 않는다. 예컨대, 상기 컨트롤러는 ONF(Open Networking Foundation)나 IETF(Internet Engineering Task Force), ETSI(European Telecommunications Standards Institute) 및/또는 ITU-T(International Telecommunication Union - Telecommunication Standardization Sector) 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미할 수 있다.
또한, 본 명세서에서 언급되는 "스위치"는 플로우(트래픽 또는 패킷)를 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미하는 것으로, ONF나 IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소, 라우터 요소, 포워딩 요소 등을 의미할 수 있다.
도 1a는 동일한 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우 즉, 스위치
Figure 112016061188825-pat00008
에서 스위치
Figure 112016061188825-pat00009
로의 플로우에 대한 플로우 설치 과정을 도시한다.
임의의 호스트로부터 스위치
Figure 112016061188825-pat00010
으로 해당 플로우가 유입되면, 스위치
Figure 112016061188825-pat00011
의 플로우 테이블에는 매칭되는 플로우 엔트리가 없기 때문에, 스위치
Figure 112016061188825-pat00012
은 자신의 마스터 컨트롤러인 제1 컨트롤러(Controller 1)로 플로우 설치 요청 메시지를 송신한다. 제1 컨트롤러(Controller 1)는 상기 플로우 설치 요청 메시지에 응답하여 스위치
Figure 112016061188825-pat00013
과 스위치
Figure 112016061188825-pat00014
로 플로우 엔트리 생성 명령(또는 플로우 엔트리 설치 명령)을 전송하고, 스위치
Figure 112016061188825-pat00015
과 스위치
Figure 112016061188825-pat00016
는 상기 플로우 엔트리 생성 명령에 응답하여 플로우 엔트리를 설치한다. 이때, 제1 컨트롤러(Controller 1)에서의 처리 시간이 무시할 만큼 작고, 스위치(
Figure 112016061188825-pat00017
Figure 112016061188825-pat00018
)에서 제1 컨트롤러(Controller 1)로의 전송 지연시간과 제1 컨트롤러(Controller 1)에서 스위치(
Figure 112016061188825-pat00019
Figure 112016061188825-pat00020
)로의 전송 지연시간이
Figure 112016061188825-pat00021
로 동일하다고 가정하면, 동일한 마스터 컨트롤러를 갖는 스위치들(
Figure 112016061188825-pat00022
,
Figure 112016061188825-pat00023
)을 경유하는 플로우에 대한 플로우 설치 지연시간
Figure 112016061188825-pat00024
Figure 112016061188825-pat00025
로 계산된다.
도 1b는 서로 다른 마스터 컨트롤러를 갖는 스위치들을 지나는 플로우 즉, 스위치
Figure 112016061188825-pat00026
에서 스위치
Figure 112016061188825-pat00027
로의 플로우에 대한 플로우 설치 과정을 도시한다.
임의의 호스트로부터 스위치
Figure 112016061188825-pat00028
으로 해당 플로우가 유입되면, 스위치
Figure 112016061188825-pat00029
의 플로우 테이블에는 매칭되는 플로우 엔트리가 없기 때문에, 스위치
Figure 112016061188825-pat00030
은 자신의 마스터 컨트롤러인 제1 컨트롤러(Controller 1)로 플로우 설치 요청 메시지를 송신한다. 제1 컨트롤러(Controller 1)는 상기 플로우 설치 요청 메시지에 응답하여 스위치
Figure 112016061188825-pat00031
으로 플로우 엔트리 생성 명령(또는 플로우 엔트리 설치 명령)을 전송하고, 스위치
Figure 112016061188825-pat00032
은 상기 플로우 엔트리 생성 명령에 응답하여 플로우 엔트리를 설치한다. 또한, 제1 컨트롤러(Controller 1)는 상기 플로우 엔트리 생성 명령의 전송을 함과 동시에 스위치
Figure 112016061188825-pat00033
의 마스터 컨트롤러인 제2 컨트롤러(Controller 2)에게 제2 플로우 설치 요청 메시지를 전송한다. 상기 제2 플로우 설치 요청 메시지를 수신한 제2 컨트롤러(Controller 2)는 스위치
Figure 112016061188825-pat00034
로 제2 플로우 엔트리 생성 명령을 전송하고, 스위치
Figure 112016061188825-pat00035
는 상기 제2 플로우 엔트리 생성 명령에 응답하여 플로우 엔트리를 설치한다.
컨트롤러 간, 즉 제1 컨트롤러(Controller 1)와 제2 컨트롤러(Controller 2) 간의 전송 지연시간이
Figure 112016061188825-pat00036
로 동일하다고 가정하면, 서로 다른 마스터 컨트롤러를 갖는 스위치들(
Figure 112016061188825-pat00037
,
Figure 112016061188825-pat00038
)을 경유하는 플로우에 대한 플로우 설치 지연시간
Figure 112016061188825-pat00039
Figure 112016061188825-pat00040
로 계산된다.
도 1a 및 도 1b를 통하여 컨트롤러의 부하 및 평균 플로우 설치 지연시간은 스위치들의 마스터 컨트롤러가 어떻게 결정되느냐에 따라 달라질 수 있음을 알 수 있다. 구체적으로, 동일한 마스터 컨트롤러를 갖는 스위치들(
Figure 112016061188825-pat00041
Figure 112016061188825-pat00042
)을 경유하는 플로우에 대한 플로우 설치 지연 시간에 비해 서로 다른 마스터 컨트롤러를 갖는 스위치들(
Figure 112016061188825-pat00043
Figure 112016061188825-pat00044
)을 경유하는 플로우에 대한 플로우 설치 지연 시간이
Figure 112016061188825-pat00045
만큼 더 크다는 것을 알 수 있다. 따라서, 스위치들 각각의 마스터 컨트롤러는
Figure 112016061188825-pat00046
를 고려하여 평균 플로우 설치 지연시간을 줄일 수 있도록, 그리고 복수의 컨트롤러들 각각의 부하를 계산하여 복수의 컨트롤러들 간의 부하 불균형을 줄일 수 있도록 결정되어야 한다.
본 발명에서는 평균 플로우 설치 지연시간을 최소화하는 것과 컨트롤러들 간의 부하 불균형을 제한하는 것을 목적으로 하는 마스터 컨트롤러 할당 문제를 수학적 도구인 integer non-linear programming(INLP, 정수 비선형 계획법)으로 모델링한다. 다음으로, 구체적인 목적 함수(objective function), 그리고 제한 조건들(constraints)을 정의한다. 이때, 상기 목적 함수는 단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 지나는(경유하는) 플로우들의 수
Figure 112016061188825-pat00047
를 의사 결정 변수(decision variable)로 포함할 수 있다.
컨트롤러들의 집합과 스위치들의 집합은 각각
Figure 112016061188825-pat00048
Figure 112016061188825-pat00049
로 표현될 수 있다.
Figure 112016061188825-pat00050
를 컨트롤러
Figure 112016061188825-pat00051
가 스위치
Figure 112016061188825-pat00052
에 대한 마스터 컨트롤러로 할당되었는지에 여부를 나타내는 이진 변수이다. 즉, 컨트롤러
Figure 112016061188825-pat00053
가 스위치
Figure 112016061188825-pat00054
의 마스터 컨트롤러로 할당된 경우
Figure 112016061188825-pat00055
의 값은 "1"이고, 그렇지 않은 경우
Figure 112016061188825-pat00056
의 값은 "0"이 될 수 있다. 이때, 평균 플로우 설치 지연시간을
Figure 112016061188825-pat00057
이라 하면,
Figure 112016061188825-pat00058
은 다음 수학식 1과 같이 표현될 수 있다.
Figure 112016061188825-pat00059
상기 수학식 1에서
Figure 112016061188825-pat00060
는 단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우들의 수를 나타낸다. 본 발명의 목적은 평균 플로우 설치 지연시간
Figure 112016061188825-pat00061
을 최소화하는 것이고, 이는
Figure 112016061188825-pat00062
를 최소화함으로써 달성될 수 있다. 따라서, 목적 함수는
Figure 112016061188825-pat00063
로 정의되며 이는 아래 수학식 2와 같이 표현될 수 있다.
Figure 112016061188825-pat00064
다음으로, INLP의 제약 조건들을 정의한다. 먼저, 컨트롤러
Figure 112016061188825-pat00065
에 걸리는 부하
Figure 112016061188825-pat00066
Figure 112016061188825-pat00067
로 계산된다. 이때,
Figure 112016061188825-pat00068
은 컨트롤러
Figure 112016061188825-pat00069
가 하나의 스위치로부터 받는 네트워크 통계 메시지들의 평균 도착률을 나타낸다. 이때, 컨트롤러
Figure 112016061188825-pat00070
에 걸리는 부하
Figure 112016061188825-pat00071
는 단위 시간 동안 처리할 수 있는 메시지의 양으로 정의되는 컨트롤러
Figure 112016061188825-pat00072
의 처리 용량
Figure 112016061188825-pat00073
보다 작거나 같아야 한다. 이는 아래 수학식 3과 같이 표현되며, 상기 수학식 3을 제1 제약조건이라 할 수 있다.
Figure 112016061188825-pat00074
Figure 112016061188825-pat00075
를 하나의 컨트롤러에 걸리는 이상적인 부하라 하면,
Figure 112016061188825-pat00076
Figure 112016061188825-pat00077
으로 계산된다. 컨트롤러들 간의 부하 불균형을 제한하기 위하여, 모든 컨트롤러에 대하여
Figure 112016061188825-pat00078
의 값을 합한 뒤 이를 정규화한 값을 미리 정의된 파라미터
Figure 112016061188825-pat00079
보다 작거나 같도록 설정할 수 있다. 이에 대한 제약조건은 다음 수학식 4와 같이 표현되며, 상기 수학식 4를 제2 제약조건이라 할 수 있다.
Figure 112016061188825-pat00080
여기서,
Figure 112016061188825-pat00081
Figure 112016061188825-pat00082
의 범위를 갖는다.
Figure 112016061188825-pat00083
인 경우, 해당 제약조건은 모든 컨트롤러들의 부하가 완변하게 균형을 이루는 경우, 즉
Figure 112016061188825-pat00084
인 경우에만 만족된다. 한편,
Figure 112016061188825-pat00085
인 경우, 해당 제약조건은 전체 부하가 하나의 컨트롤러에게 집중된 경우, 즉 임의의 컨트롤러
Figure 112016061188825-pat00086
에 대해
Figure 112016061188825-pat00087
인 경우에 만족된다.
한편, 모든 스위치들 각각에게는 오직 하나의 마스터 컨트롤러가 할당되어야 하기 때문에 다음과 같이 제3 제약조건을 설정할 수 있다. 상기 제3 제약조건은 수학식 5와 같이 표현된다.
Figure 112016061188825-pat00088
또한,
Figure 112016061188825-pat00089
는 이진 변수이기 때문에 다음과 같은 제4 제약조건을 만족해야 하며, 상기 제4 제약조건은 수학식 6과 같이 표현된다.
Figure 112016061188825-pat00090
도 2는 컨트롤러에 의해 수행되는 마스터 컨트롤러 할당 방법을 설명하기 위한 흐름도이다.
도 1a 내지 도 2를 참조하면, 우선 컨트롤러가 제1 플로우 설치 지연 시간
Figure 112016061188825-pat00091
과 제2 플로우 설치 지연 시간
Figure 112016061188825-pat00092
을 측정한다(S100). 제1 플로우 설치 지연 시간
Figure 112016061188825-pat00093
는 동일한 컨트롤러를 마스터 컨트롤러로 갖는 스위치들을 경유하는 플로우에 대한 플로우 설치 지연시간을 의미하고, 제2 플로우 설치 지연시간
Figure 112016061188825-pat00094
은 서로 다른 컨트롤러를 마스터 컨트롤러로 갖는 스위치들을 경유하는 플로우에 대한 플로우 설치 지연시간을 의미할 수 있다. 실시 예에 따라, 제1 플로우 설치 지연 시간
Figure 112016061188825-pat00095
과 제2 플로우 설치 지연 시간
Figure 112016061188825-pat00096
은 미리 측정되어 상기 컨트롤러에 저장되어 있을 수도 있다.
다음으로, 상기 컨트롤러는 수학식 2에 의해 정의되는 목적 함수를 설정한다(S300). 상기 수학식 2에 포함되는 스위치들 간의 평균 플로우 도착률
Figure 112016061188825-pat00097
은 상기 컨트롤러에 미리 저장되어 있을 수 있다.
다음으로, 상기 컨트롤러는 수학식 3 내지 수학식 6 중 적어도 하나에 의해 정의되는 적어도 하나의 제약 조건을 설정할 수 있다(S500). 상기 적어도 하나의 제약 조건은 제1 제약 조건 내지 제4 제약 조건 중 하나 이상을 의미할 수 있다. 또한, 상기 제1 제약 조건은 수학식 3에 의해 정의되고, 상기 제2 제약 조건은 수학식 4에 의해 정의되고, 상기 제3 제약 조건은 수학식 5에 의해 정의되고, 상기 제4 제약 조건은 수학식 6에 의해 정의된다.
다음으로, 상기 컨트롤러는 상기 적어도 하나의 제약 조건을 만족시키면서 목적 함수에 포함된 의사 결정 변수를 최소화하는
Figure 112016061188825-pat00098
를 결정한다(S700). 상기 의사 결정 변수는 단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 지나는(경유하는) 플로우들의 수
Figure 112016061188825-pat00099
를 의미할 수 있다.
마지막으로, 상기 컨트롤러는 결정된
Figure 112016061188825-pat00100
값에 따라 스위치들 각각의 마스터 컨트롤러를 결정할 수 있다(S900). 예컨대,
Figure 112016061188825-pat00101
의 값이 "1"인 경우 컨트롤러
Figure 112016061188825-pat00102
를 스위치
Figure 112016061188825-pat00103
의 마스터 컨트롤러로 결정하고,
Figure 112016061188825-pat00104
의 값이 "0"인 경우 컨트롤러
Figure 112016061188825-pat00105
는 스위치
Figure 112016061188825-pat00106
의 마스터 컨트롤러가 아닌 것으로 결정할 수 있다.
본 발명에 의한 마스터 컨트롤러 할당 방법은 SDN 시스템에 포함되는 복수의 컨트롤러들 각각에 의해 또는 어느 하나의 컨트롤러에 의해 수행될 수 있다. 상기 복수의 컨트롤러들 각각은 동기화된 전체 네트워크 뷰(view)를 유지하고 있기 때문에 각각의 컨트롤러에 의해 수행된 결과는 모두 동일할 수 있다.
실시 예에 따라 상기 마스터 컨트롤러를 할당하는 방법은 SDN 시스템에 포함된 어느 하나의 컨트롤러에 의해 수행되고, 수행 결과는 복수의 컨트롤러들에 의해 공유될 수 있다.
또 다른 실시 예로, 마스터 컨트롤러를 할당하는 방법은 SDN 시스템에 포함된 복수의 컨트롤러들 중 상위 컨트롤러(또는 슈퍼 컨트롤러)에 의해 수행될 수도 있다. 즉, 계층적 구조를 갖는 SDN 시스템에 포함된 상기 상위 컨트롤러에 의해 수행된 후 수행 결과는 상기 상위 컨트롤러에 의해 하위 컨트롤러들 각각에게 제공될 수도 있다.
도 3은 파라미터에 따른 평균 플로우 설치 지연시간의 변화를 도시하는 그래프이다. 도 3에서
Figure 112016061188825-pat00107
는 본 발명에 의한 마스터 컨트롤러 할당 방법에 의해 마스터 컨트롤러를 할당한 경우이고,
Figure 112016061188825-pat00108
는 각 컨트롤러가 마스터 컨트롤러로 동작하는 스위치들의 개수를 동일하게 마스터 컨트롤러를 할당한 경우이다.
도 3을 참조하면,
Figure 112016061188825-pat00109
의 평균 플로우 설치 지연시간이 모든
Figure 112016061188825-pat00110
값에 대해
Figure 112016061188825-pat00111
의 평균 플로우 설치 지연시간보다 작음을 확인할 수 있다. 이는
Figure 112016061188825-pat00112
가 플로우 설치 지연시간을 고려하고 있지 않기 때문이다. 또한, 도 3에 보이는 바와 같이 평균 플로우 설치 지연시간은
Figure 112016061188825-pat00113
값이 증가함에 따라 감소함을 확인할 수 있다. 이는
Figure 112016061188825-pat00114
값이 커지면 컨트롤러들 간의 부하 불균형에 대한 제약 조건이 완화되기 때문이다. 따라서
Figure 112016061188825-pat00115
의 경우,
Figure 112016061188825-pat00116
값이 증가함에 따라 점점 더 작은 평균 플로우 지연시간을 나타내게 된다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (8)

  1. 소프트웨어 정의 네트워크 시스템에 포함된 복수의 컨트롤러들 중 어느 하나의 컨트롤러에 의해 수행되는 마스터 컨트롤러를 할당하는 방법에 있어서,
    단위 시간동안 유입된 플로우들 중 서로 다른 마스터 컨트롤러를 갖는 스위치들을 경유하는 플로우들의 수(
    Figure 112017116736961-pat00117
    )를 의사결정 변수(decision variable)로 하는 목적 함수(objective function)를 설정하는 단계;
    적어도 하나의 제약조건(constraints)을 설정하는 단계; 및
    상기 적어도 하나의 제약조건을 만족시키고 상기 의사결정 변수를 최소화하는 해를 구하는 단계를 포함하고,
    상기 목적함수는 제1 수학식에 의해 정의되고,
    상기 제1 수학식은
    Figure 112017116736961-pat00118
    이고,
    상기
    Figure 112017116736961-pat00119
    는 상기 복수의 컨트롤러들의 집합을 의미하고,
    상기
    Figure 112017116736961-pat00120
    는 복수의 스위치들의 집합을 의미하고,
    상기
    Figure 112017116736961-pat00121
    는 상기 복수의 컨트롤러들에 포함되는 컨트롤러(
    Figure 112017116736961-pat00122
    )가 상기 복수의 스위치들에 포함되는 스위치(
    Figure 112017116736961-pat00123
    )의 마스터 컨트롤러로 할당되었는지 여부를 나타내는 이진 변수이고,
    상기
    Figure 112017116736961-pat00124
    는 상기 스위치(
    Figure 112017116736961-pat00125
    )에서 상기 복수의 스위치들에 포함되는 스위치(
    Figure 112017116736961-pat00126
    )로 흐르는 플로우들에 대한 평균 도착률을 의미하는,
    마스터 컨트롤러를 할당하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 적어도 하나의 제약조건은 제2 수학식에 의해 정의되는 제1 제약조건을 포함하고,
    상기 제2 수학식은
    Figure 112017116736961-pat00127
    이고,
    상기
    Figure 112017116736961-pat00128
    는 상기 컨트롤러(
    Figure 112017116736961-pat00129
    )에 걸리는 부하이고,
    상기
    Figure 112017116736961-pat00130
    는 상기 컨트롤러(
    Figure 112017116736961-pat00131
    )의 처리 용량인,
    마스터 컨트롤러를 할당하는 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 제약조건은 제3 수학식에 의해 정의되는 제2 제약조건을 포함하고,
    상기 제3 수학식은
    Figure 112016061188825-pat00132
    이고,
    상기
    Figure 112016061188825-pat00133
    는 하나의 컨트롤러에 걸리는 이상적인 부하이고,
    상기
    Figure 112016061188825-pat00134
    는 미리 정해진 상수이고,
    상기
    Figure 112016061188825-pat00135
    은 상기 복수의 컨트롤러들의 개수인,
    마스터 컨트롤러를 할당하는 방법.
  5. 제4항에 있어서,
    상기 적어도 하나의 제약조건은 제4 수학식에 의해 정의되는 제3 제약조건을 포함하고,
    상기 제4 수학식은
    Figure 112016061188825-pat00136
    인,
    마스터 컨트롤러를 할당하는 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 제약조건은 제5 수학식에 의해 정의되는 제4 제약조건을 포함하고,
    상기 제5 수학식은
    Figure 112016061188825-pat00137
    인,
    마스터 컨트롤러를 할당하는 방법.
  7. 제6항에 있어서,
    상기
    Figure 112016061188825-pat00138
    는 제6 수학식을 이용하여 계산되고,
    상기 제6 수학식은
    Figure 112016061188825-pat00139
    이고,
    상기
    Figure 112016061188825-pat00140
    은 상기 컨트롤러(
    Figure 112016061188825-pat00141
    )가 하나의 스위치로부터 받는 네트워크 통계 메시지들의 평균 도착률을 의미하는,
    마스터 컨트롤러를 할당하는 방법.
  8. 제7항에 있어서,
    상기
    Figure 112016061188825-pat00142
    는 제7 수학식을 이용하여 계산되고,
    상기 제7 수학식은
    Figure 112016061188825-pat00143
    이고,
    상기
    Figure 112016061188825-pat00144
    는 상기 복수의 스위치들의 개수인,
    마스터 컨트롤러를 할당하는 방법.
KR1020160079174A 2016-06-24 2016-06-24 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법 KR101816719B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160079174A KR101816719B1 (ko) 2016-06-24 2016-06-24 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법
US15/632,535 US10284421B2 (en) 2016-06-24 2017-06-26 Method for assigning master controller in software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160079174A KR101816719B1 (ko) 2016-06-24 2016-06-24 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법

Publications (2)

Publication Number Publication Date
KR20180001621A KR20180001621A (ko) 2018-01-05
KR101816719B1 true KR101816719B1 (ko) 2018-01-10

Family

ID=60675663

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160079174A KR101816719B1 (ko) 2016-06-24 2016-06-24 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법

Country Status (2)

Country Link
US (1) US10284421B2 (ko)
KR (1) KR101816719B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523499B2 (en) * 2016-09-20 2019-12-31 Hewlett Packard Enterprise Development Lp Master controller selection in a software defined network
EP3501140B1 (de) * 2016-09-29 2020-08-26 Siemens Aktiengesellschaft Verfahren zum betrieb eines mehrere kommunikationsgeräten umfassenden kommunikationsnetzes eines industriellen automatisierungssystems und steuerungseinheit
CN108199890B (zh) * 2018-01-11 2019-11-22 重庆邮电大学 一种软件定义网络弹性控制器部署方法
CN108206790B (zh) * 2018-01-11 2021-03-16 重庆邮电大学 一种基于网络切片的sdn联合路由选择及资源分配方法
US11888708B1 (en) * 2023-02-02 2024-01-30 Bank Of America Corporation System and method for auto-determining solutions for dynamic issues in a distributed network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150188767A1 (en) * 2013-12-27 2015-07-02 Futurewei Technologies, Inc. Traffic Behavior Driven Dynamic Zoning for Distributed Traffic Engineering in SDN

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101399704B1 (ko) 2012-07-17 2014-06-27 강원대학교산학협력단 무선 통신 네트워크에서 이진 입자 군집 최적화를 적용한 브로드캐스트 스케쥴링 방법 및 시스템
KR101581510B1 (ko) 2013-06-17 2015-12-31 주식회사 케이티 다중 제어장치를 구비한 환경에서 제어장치의 제어 권한 변경 방법
KR20150034551A (ko) 2013-09-26 2015-04-03 주식회사 케이티 컨트롤러와 스위치간 부하분산 방법 및 시스템
US20150263960A1 (en) * 2014-03-14 2015-09-17 Avni Networks Inc. Method and apparatus for cloud bursting and cloud balancing of instances across clouds
US9917781B2 (en) * 2014-06-05 2018-03-13 KEMP Technologies Inc. Methods for intelligent data traffic steering
KR101737697B1 (ko) 2014-09-17 2017-05-18 주식회사 케이티 Sdn 환경에서 컨트롤러의 부하 분산 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150188767A1 (en) * 2013-12-27 2015-07-02 Futurewei Technologies, Inc. Traffic Behavior Driven Dynamic Zoning for Distributed Traffic Engineering in SDN

Also Published As

Publication number Publication date
US20170373929A1 (en) 2017-12-28
US10284421B2 (en) 2019-05-07
KR20180001621A (ko) 2018-01-05

Similar Documents

Publication Publication Date Title
KR101816719B1 (ko) 소프트웨어 정의 네트워크에서 마스터 컨트롤러 할당 방법
Ejaz et al. Traffic load balancing using software defined networking (SDN) controller as virtualized network function
CN104202264A (zh) 云化数据中心网络的承载资源分配方法、装置及***
EP0871937A1 (en) Spare links optimization in a distributed restoration scheme
CN103618621A (zh) 一种软件定义网络sdn的自动配置方法、设备及***
KR101823346B1 (ko) 서비스 기능 체이닝 시스템 및 그 방법
EP3186919B1 (en) Network service aware routers, and applications thereof
Ramya et al. Enhanced optimal placements of multi-controllers in SDN
El Kamel et al. Improving switch-to-controller assignment with load balancing in multi-controller software defined WAN (SD-WAN)
WO2017167359A1 (en) Method of forwarding packet flows in a network and network system
Bouzidi et al. Online based learning for predictive end-to-end network slicing in 5G networks
CN109691020A (zh) 用于运行工业自动化***的包括多个通信设备的通信网络的方法和控制单元
EP3485618B1 (en) Device and method for managing end-to-end connections
JP5895286B2 (ja) 通信パス制御装置
CN107508730B (zh) 一种基于sdn网络的数据中心互联方法及装置
US9647960B2 (en) Switched data transmission system allowing the cancellation of time dependent loops and usable in particular in avionics applications
Yin et al. On-demand and reliable vSD-EON provisioning with correlated data and control plane embedding
Kartashevskiy et al. OpenFlow-based software-defined networking queue model
CN108810168A (zh) 一种接入l2tp网络服务器的方法及l2tp网络服务器
EP3719646B1 (en) Method for communicating in a network-distributed process control system and network-distributed process control system
CN110832810B (zh) 运行工业自动化***的包括多个通信设备的通信网络的方法和控制单元
JP5523599B1 (ja) ネットワークシステムの資源管理システムおよび方法
US20060023741A1 (en) Adaptive control of a network element
KR100270664B1 (ko) 사설망 노드 인터페이스 라우팅 기능을 분산시키는 방버버
JP3377125B2 (ja) ネットワーク負荷平滑化方法

Legal Events

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