KR101465884B1 - 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치 - Google Patents

소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치 Download PDF

Info

Publication number
KR101465884B1
KR101465884B1 KR20130074440A KR20130074440A KR101465884B1 KR 101465884 B1 KR101465884 B1 KR 101465884B1 KR 20130074440 A KR20130074440 A KR 20130074440A KR 20130074440 A KR20130074440 A KR 20130074440A KR 101465884 B1 KR101465884 B1 KR 101465884B1
Authority
KR
South Korea
Prior art keywords
controller
controllers
probability
flow
delay time
Prior art date
Application number
KR20130074440A
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 KR20130074440A priority Critical patent/KR101465884B1/ko
Application granted granted Critical
Publication of KR101465884B1 publication Critical patent/KR101465884B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치를 개시한다. 본 발명에 따르면, 복수의 컨트롤러로 이루어진 소프트웨어 정의 네트워크 환경에서 스위치가 확률적으로 컨트롤러를 선택하는 방법으로서, (a) 호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신하는 단계; (b) 전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택하는 단계; (c) 상기 선택된 컨트롤러로 상기 첫 번째 패킷을 전달하는 단계; 및 (d) 상기 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신하는 단계를 포함하는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법이 제공된다.

Description

소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치{Method and apparatus of probabilistic controller selection in software-defined networks}
본 발명은 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치에 관한 것으로서, 보다 상세하게는 다수의 컨트롤러를 포함하는 대규모 소프트웨어 정의 네트워크 환경에서 각 플로우마다 확률적으로 컨트롤러를 선택하는 방법 및 장치에 관한 것이다.
소프트웨어 정의 네트워크(Software Defined Network: SDN)는 최근 네트워크 구축, 관리, 운용 등에서 발생하는 높은 비용과 복잡성을 근본적으로 해결하기 위해 제안된 것으로서, 기존 네트워크 장비의 제어부분과 패킷 전달부분을 분리하는 구조를 가지고 있다.
분리된 제어부분은 중앙 집중 방식의 컨트롤러에서 관리되며 프로그래밍이 가능한 개방형 인터페이스를 통해 다수의 스위치 장비들로 이루어진 패킷 전달부분을 제어한다. 오픈플로우는 분리된 두 부분을 연결하는 표준화된 개방형 인터페이스를 제공하고, 패킷 전달부분에서 발생하는 트래픽을 컨트롤러에서 플로우 단위로 처리한다.
오픈플로우의 동작과정은 다음과 같다. 새로운 플로우가 발생하면 해당 플로우의 첫 패킷을 컨트롤러로 전달하고 컨트롤러는 이를 받아 플로우의 경로 또는 처리방식을 결정하여 경로 상의 스위치들에게 플로우 엔트리 생성을 명령한다.
각 스위치는 플로우 엔트리들을 테이블 형태로 유지하고 이를 플로우 테이블이라 한다. 스위치는 플로우 테이블에 정보가 유지되고 있는 플로우에 대해서는 컨트롤러에 요청 없이 처리하고, 테이블 내에 정보가 없을 경우에만 컨트롤러에게 요청한다.
SDN의 초기 목표는 기존 네트워크의 제어 구조를 단순화하는 것이었기 때문에, 중앙 집중 방식의 단일 컨트롤러를 통하여 전체 네트워크를 제어하는 방식으로 설계되었다. 하지만 최근 네트워크 규모가 큰 인터넷 서비스 제공망(Internet Service Provider: ISP)이나 이동통신망 등에서도 SDN의 적용이 요구되고, 이러한 대규모 SDN 환경에서는 다수의 컨트롤러가 필수적인 요소이다.
SDN에서 다수의 컨트롤러를 이용하는데 있어서 여러 문제들이 고려되어야 한다.
선행 연구에서는 전체 네트워크의 서비스 범위에 몇 개의 컨트롤러가 필요하고 각 컨트롤러는 어디에 위치시킬 것인지에 대한 문제를 제시하였다(B. Heller, R. Sherwood, and N. McKeown, “The controller placement problem,”in Proc. The First Workshop on Hot Topics in Software-defined Networks (HotSDN) 2012, Helsinki, Finland, August 2012.).
상기한 논문에서는 각 컨트롤러의 위치를 플로우들에 대한 평균 및 가장 긴 처리시간을 최소화하는 방향으로 결정하고, 이를 바탕으로 전체 네트워크 서비스 범위를 수용하기 위한 컨트롤러의 개수를 정한다.
한편, 다른 선행 연구에서는 도 1과 같이 다수의 컨트롤러를 분산적으로 배치하여 각 컨트롤러가 지역적으로 네트워크를 나누어 담당시키는 방식을 제안하였으며(A. Tootoonchian and Y. Ganjali, "HyperFlow: a distributed control plane for openflow," in Proc. International Network Management Workshop/ Workshop on Research on Enterprise Networking (INM/WREN) 2010, San Jose, USA, April 2010.), 전체 네트워크 범위에서 발생하는 플로우들을 지역적으로 분산시키는 효과를 가져 온다.
또 다른 선행 연구에서는 도 2와 같이, 분산적으로 배치된 컨트롤러들을 논리적으로 하나의 중앙 집중적인 컨트롤러처럼 동작시키기 위해서 컨트롤러 간의 상호 연동 기술을 제시하고 있다(S. H. Yeganeh and Y. Ganjali, "Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications," in Proc. The First Workshop on Hot Topics in Software-defined Networks (HotSDN) 2012, Helsinki, Finland, August 2012.). 이는 다수의 컨트롤러를 상위 컨트롤러(Root Controller)와 하위 컨트롤러(Local Controller)로 구분하여 계층적으로 관리하는 기술이다. 컨트롤러들은 각각 담당하는 범위와 플로우의 규모에 따라서 구분된다. 먼저 상위 컨트롤러는 전체 네트워크를 담당하여 규모가 큰 플로우를 처리한다. 다음으로 하위 컨트롤러는 다수 배치되어 각각 적은 스위치를 담당하며 규모가 작고 주로 자주 발생하는 플로우를 처리한다.
이처럼 최근 SDN의 확산화가 이루어짐에 따라 다양한 종류의 네트워크에 적용이 검토되고 있다. 이와 같은 SDN에서 네트워크에서 발생하는 플로우들을 다수의 컨트롤러들에게 균형적으로 분산시키고, 동시에 개별적인 플로우의 처리 지연시간 성능을 향상시키기는 방안이 요구되고 있다.
상기한 종래기술의 문제점을 해결하기 위해, 본 발명은 SDN에서 네트워크에서 발생하는 플로우들을 다수의 컨트롤러들에게 균형적으로 분산시키고, 동시에 개별적인 플로우의 처리 지연시간 성능을 향상시킬 수 있는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치를 제안하고자 한다.
상기한 기술적 과제를 해결하기 위해, 본 발명의 바람직한 일 실시예에 따르면, 복수의 컨트롤러로 이루어진 소프트웨어 정의 네트워크 환경에서 스위치가 확률적으로 컨트롤러를 선택하는 방법으로서, (a) 호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신하는 단계; (b) 전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택하는 단계; (c) 상기 선택된 컨트롤러로 상기 첫 번째 패킷을 전달하는 단계; 및 (d) 상기 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신하는 단계를 포함하는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법이 제공된다.
본 발명의 다른 측면에 따르면, 복수의 컨트롤러로 이루어진 소프트웨어 정의 네트워크 환경에서 확률적으로 컨트롤러를 선택하는 장치로서, 호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신하는 패킷 송수신부; 전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택하는 컨트롤러 선택부; 및 상기 선택된 컨트롤러로 상기 첫 번째 패킷을 전달하고, 상기 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신하는 컨트롤러 통신부를 포함하는 장치가 제공된다.
본 발명에 따르면, 전체 네트워크의 부하 분산을 고려한 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 확률의 가중 합을 통해 복수의 컨트롤러 중 하나를 선택하기 때문에 효율적으로 플로우를 처리할 수 있는 장점이 있다.
도 1은 SDN에서 다수의 컨트롤러를 분산적으로 배치된 구조를 도시한 도면.
도 2는 SDN에서 상위 컨트롤러와 하위 컨트롤러의 계층적 구조를 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 소프트웨어 정의 네트워크 시스템의 구성을 도시한 도면.
도 4는 본 발명에 따른 플로우 처리 과정을 도시한 순서도.
도 5는 두 개의 컨트롤러로 이루어진 경우의 컨트롤러 선택 과정을 설명하기 위한 도면.
도 6은 본 발명의 바람직한 일 실시예에 따른 스위치의 상세 구성을 도시한 도면.
도 7은 두 개의 컨트롤러로 이루어진 환경에서 본 발명의 검증을 수행한 결과를 도시한 도면.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 소프트웨어 정의 네트워크 시스템의 구성을 도시한 도면이다.
도 3에 도시된 바와 같이, 본 발명에 따른 시스템은 복수의 스위치(300-n) 및 복수의 컨트롤러(302-m)를 포함하며, 이는 오픈플로우(OpenFlow) 시스템으로 정의된다.
이와 같은 오픈플로우 시스템에서, 복수의 스위치(300-n)와 복수의 컨트롤러(302-m) 각각은 오픈플로우 프로토콜을 통해 상호 연결된다.
스위치(300-n)는 플로우 테이블을 저장하며, 플로우 테이블은 스위치(300-n)가 수신한 패킷을 처리하기 위해 패킷 헤더 정보(rule), 액션 정보(action) 및 통계(statistics) 정보와 같은 세 가지 주요 정보를 포함한다.
패킷 헤더 정보는 플로우를 정의하기 위한 정보이며, 액션 정보는 패킷을 어떻게 처리할지 여부를 표시하는 정보이다. 액션 정보는 패킷의 경로 설정에 관한 정보를 포함할 수 있다.
이와 같은 플로우 테이블을 포함하는 스위치(300-n)는 개방형 표준 프로토콜인 오픈플로우 프로토콜로 복수의 컨트롤러(302-m)에 연결되며, 복수의 컨트롤러(302-m)는 각 스위치의 플로우 테이블의 등록 및 삭제 기능을 수행한다.
본 발명의 바람직한 일 실시예에 따르면, 도 3과 같이 복수의 컨트롤러(302-m)로 이루어진 환경에서 각 플로우마다 확률적으로 컨트롤러를 선택한다.
도 4는 본 발명에 따른 플로우 처리 과정을 도시한 순서도이다.
도 4를 참조하면, 스위치(300)에 새로운 플로우에 대한 첫 번째 패킷이 도착하면(단계 400), 모든 컨트롤러 선택 확률들 중에서 가장 높은 확률을 가진 컨트롤러를 선택하고(단계 402), 선택된 컨트롤러로 수신한 첫 패킷을 전달한다(단계 404).
이를 받은 컨트롤러(302)는 플로우에 대한 경로 설정과 같은 액션 정보를 결정하고(단계 406), 이를 플로우를 수신한 스위치(300)에 응답한다(단계 408). 단계 408에서 컨트롤러(302)는 플로우의 경로 상에 위치한 스위치들에게도 플로우 엔트리 생성 명령을 전송할 수 있다.
본 발명에 따르면, 단계 402의 컨트롤러 선택 확률은 전체 네트워크의 균형적인 부하 분산과 개별적인 플로우의 처리 지연시간 성능 향상을 모두 이루는 방향으로 결정된다.
먼저 전체 네트워크의 균형적인 부하 분산을 이루기 위해서 각 컨트롤러는 자신의 처리 능력에 비례하게 부하를 담당한다. 즉, 높은 처리 능력을 가진 컨트롤러는 낮은 처리 능력을 가진 컨트롤러보다 더 많은 플로우를 처리하게 된다. 다음으로 개별적인 플로우의 처리 지연시간 성능 향상은 가장 적절한 컨트롤러를 선택하기 위한 또 하나의 중요한 요소이다. 이는 플로우가 발생한 스위치로부터 각 컨트롤러들까지의 처리 지연시간이 다르기 때문이고, 따라서 개별적인 플로우 관점의 성능 향상을 위해 가장 낮은 플로우 처리 지연시간을 보장해줄 수 있는 컨트롤러를 선택해야한다.
컨트롤러 선택 확률을 구하는 과정은 다음과 같다. 전체 네트워크가 C개의 컨트롤러로 이루어진 환경에서 각 컨트롤러의 선택 확률
Figure 112013057724597-pat00001
는 수학식 1과 같이 전체 네트워크의 부하 분산을 고려한 확률
Figure 112013057724597-pat00002
와 개별 플로우의 처리 지연시간 성능을 고려한 확률
Figure 112013057724597-pat00003
의 가중 합(weighted sum)을 통해서 도출된다.
컨트롤러마다 정해지는 모든 확률 값들 (
Figure 112013057724597-pat00004
,
Figure 112013057724597-pat00005
,
Figure 112013057724597-pat00006
)은 각각 0과 1사이의 값을 가지며, 각각의 합은 모두 1이다. 또한,
Figure 112013057724597-pat00007
는 weight 변수로 부하 분산 및 처리 지연시간의 두 측면을 모두 고려하기 위한 가중치이다.
즉, 전체 네트워크의 부하 분산을 더 중요시한다면
Figure 112013057724597-pat00008
는 0에 가깝게 정하고, 개별적인 플로우 처리 지연시간 성능을 중요시한다면
Figure 112013057724597-pat00009
는 1에 가깝게 결정한다.
본 발명에 따르면,
Figure 112013057724597-pat00010
는 SDN에 포함된 컨트롤러의 부하 분산 및 플로우 처리 지연시간 성능을 고려하여 미리 설정될 수 있으나, 이에 한정됨이 없이 컨트롤러의 상태 및 네트워크의 상태에 따라 동적으로 결정될 수도 있다. 이처럼
Figure 112013057724597-pat00011
가 동적으로 결정되기 위해, 스위치는 미리 설정된 주기마다 복수의 컨트롤러(302-m)의 부하 상태 정보를 수신할 수 있으며, 이를 통해 가중치
Figure 112013057724597-pat00012
를 결정하면서 최적의 컨트롤러를 선택할 수 있다.
Figure 112013057724597-pat00013
수학식 1의
Figure 112013057724597-pat00014
은 전체 네트워크 관점에서 부하를 분산을 고려한 확률로서, 모든 컨트롤러에 걸리는 부하들의 균형을 이루는 방향으로 정한다. 이러한 조건을 만족시키는 각 컨트롤러의
Figure 112013057724597-pat00015
는 수학식 2와 같이 모든 컨트롤러의 처리율에 대한 전체 합 대비 자신의 처리율로 결정된다.
Figure 112013057724597-pat00016
여기서,
Figure 112013057724597-pat00017
는 컨트롤러 i의 평균 처리 속도, C는 컨트롤러의 개수이다.
한편, 개별적인 플로우의 처리 지연시간 성능을 고려한 확률
Figure 112013057724597-pat00018
는 플로우의 처리가 요청되는 시점부터 완료될 때까지 걸리는 평균 처리 지연시간
Figure 112013057724597-pat00019
를 최소화하는 방향으로 결정된다.
Figure 112013057724597-pat00020
는 수학식 3과 같이 구하게 되고, 이를 최소화하는 각 컨트롤러의
Figure 112013057724597-pat00021
는 수학식 4와 같이 나타낸다.
Figure 112013057724597-pat00022
여기서,
Figure 112013057724597-pat00023
는 평균 처리 지연시간,
Figure 112013057724597-pat00024
는 컨트롤러 i의 평균 처리 속도, C는 컨트롤러의 개수, RTT는 Round Trip Time이고,
Figure 112013057724597-pat00025
는 상기 스위치에 처리를 요청하는 플로우의 평균 속도이다.
Figure 112013057724597-pat00026
본 발명에서 제시하고 있는 각각의 확률은 큐잉 모델을 통해서 도출할 수 있다.
이에 대한 이해를 돕기 위해서 간단한 예를 통해서 설명한다. 도 5는 두 개의 컨트롤러로 이루어진 간단한 예를 보여준다. 스위치에 처리를 요청하는 플로우는
Figure 112013057724597-pat00027
의 평균 속도를 가진 포아송 프로세스에 따라 도착한다.
플로우들은 컨트롤러 1과 2를 확률적으로 선택하므로 각 컨트롤러에
Figure 112013057724597-pat00028
의 속도로 도착한다. 또한, 컨트롤러 1과 2의 평균 처리 속도는 각각
Figure 112013057724597-pat00029
이고 각 컨트롤러의 처리 시간은 모두 지수 분포를 따른다. 그리고 스위치로부터 컨트롤러 1과 2사이의 RTT(Round Trip Time)은 각각
Figure 112013057724597-pat00030
이다.
이와 같은 상황에서 두 컨트롤러의 전체 네트워크의 부하 분산을 고려한 확률
Figure 112013057724597-pat00031
는 앞서 설명했듯이 모든 컨트롤러의 걸리는 부하가 같다는 수학식 5의 조건을 만족해야 한다.
Figure 112013057724597-pat00032
그리고 이를 만족하는 각각의 확률은
Figure 112013057724597-pat00033
로 정해진다.
반면, 컨트롤러 1과 2의 개별적인 플로우 처리 지연시간 성능을 고려한 확률
Figure 112013057724597-pat00034
는 플로우에 대한 평균 처리 지연시간을 최소화시키도록 결정한다.
수학식 6은 두 개의 컨트롤러로 이루어진 환경에서 플로우의 평균 처리 지연시간을 나타내고, 이를 최소화하는 각각의 확률
Figure 112013057724597-pat00035
는 수학식 7과 같이 도출된다.
Figure 112013057724597-pat00036
Figure 112013057724597-pat00037
위와 같이 도출된 컨트롤러 1과 2의 두 측면에 대한 확률들을 바탕으로 앞서 설명한 수학식 1을 적용하여 최종적인 컨트롤러 선택 확률
Figure 112013057724597-pat00038
을 얻는다.
상기한 바와 같이, 본 발명은 다수의 컨트롤러로 이루어진 SDN 환경에서 각 플로우마다 확률적으로 컨트롤러를 선택하여 처리하는 기법이다.
컨트롤러를 선택하는 확률은 전체 네트워크의 부하 분산과 개별적인 플로우의 처리 지연시간 성능을 동시에 고려하여 확률을 정한다.
도 6은 본 발명의 바람직한 일 실시예에 따른 스위치의 상세 구성을 도시한 도면이다.
도 6에 도시된 바와 같이, 본 발명에 따른 스위치(300)는 패킷 수신부(600), 컨트롤러 선택부(602) 및 컨트롤러 통신부(604)를 포함할 수 있다.
패킷 수신부(600)는 호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신한다.
컨트롤러 선택부(602)는 전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택한다.
여기서, 컨트롤러 선택을 위한 가중 합은 상기한 수학식 1과 같이 표현된다.
컨트롤러 통신부(604)는 이처럼 부하 분산 및 개별 플로우의 처리 지연시간 성능을 모두 고려하여 선택된 컨트롤러로 첫 번째 패킷을 전달하며, 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신한다.
도 7은 두 개의 컨트롤러로 이루어진 환경에서 본 발명의 검증을 수행한 결과이다. (가)와 (나)는 각각 전체 네트워크의 부하 분산 성능과 개별적인 플로우의 처리 지연시간 성능을 보여준다. (가)는 두 컨트롤러의 처리율 차이가 커짐에 따라 걸리는 부하 차이의 변화를 보여준다. 무작위로 컨트롤러를 선택 (Random selection) 하는 경우는 두 컨트롤러의 처리율 차이가 커질수록 부하 차이가 커지므로 전체 네트워크의 부하 분산이 제대로 이루어지지 않는다.
반면, 본 발명은 처리율의 차이가 커짐에도 불구하고 두 컨트롤러의 부하 차이가 증가하지 않기 때문에 좋은 성능을 보인다. 특히 가중치(weight factor)가 0일 경우는 부하 분산만을 고려한 확률이 적용되기 때문에, 완벽하게 전체 네트워크의 부하를 분산시킨다.
한편, (나)는 두 컨트롤러까지의 RTT 차이가 커짐에 따라 개별적인 플로우에 대한 평균 처리 지연시간의 변화를 나타낸다. 본 발명은 무작위 선택과 비교하여 평균 처리 지연시간을 효과적으로 감소시킬 수 있고, 특히 가 1일 경우는 개별 플로우 처리지연 시간 성능만을 고려한 확률이 적용되므로 지연시간을 가장 많이 감소시킨다. 이와 같은 결과로 본 발명은 전체 네트워크의 부하 분산과 개별 플로우의 평균 처리지연 시간 성능 향상을 모두 이룰 수 있다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.

Claims (10)

  1. 복수의 컨트롤러로 이루어진 소프트웨어 정의 네트워크 환경에서 스위치가 확률적으로 컨트롤러를 선택하는 방법으로서,
    (a) 호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신하는 단계;
    (b) 전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택하는 단계;
    (c) 상기 선택된 컨트롤러로 상기 첫 번째 패킷을 전달하는 단계; 및
    (d) 상기 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신하는 단계를 포함하되,
    상기 (b) 단계에서 선행하여,
    미리 설정된 주기마다 상기 복수의 컨트롤러 각각으로부터 부하 상태 정보를 수신하고, 상기 부하 상태 정보에 따라 상기 가중 합을 위한 가중치를 결정하는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
  2. 제1항에 있어서,
    상기 개별 플로우의 처리 지연시간 성능은 상기 스위치와 상기 복수의 컨트롤러 각각의 RTT(Round Trip Time)에 의해 결정되는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 (b) 단계에서의 컨트롤러 선택 확률은 다음의 수학식1에 따라 결정되는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
    [수학식1]
    Figure 112013057724597-pat00039

    여기서,
    Figure 112013057724597-pat00040
    는 컨트롤러의 선택 확률,
    Figure 112013057724597-pat00041
    는 전체 네트워크의 부하 분산을 고려한 확률,
    Figure 112013057724597-pat00042
    는 개별 플로우의 처리 지연시간 성능을 고려한 확률이고,
    Figure 112013057724597-pat00043
    는 가중치임.
  5. 제4항에 있어서,
    상기 전체 네트워크의 부하 분산을 고려한 확률은 다음의 수학식2에 따라 결정되는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
    [수학식2]
    Figure 112013057724597-pat00044

    여기서,
    Figure 112013057724597-pat00045
    는 컨트롤러 i의 평균 처리 속도, C는 컨트롤러의 개수임
  6. 제4항에 있어서,
    상기 개별 플로우의 처리 지연시간 성능을 고려한 확률은 플로우의 처리가 요청되는 시점부터 완료될 때까지 걸리는 평균 처리 지연시간을 최소화하는 방향으로 결정되는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
  7. 제6항에 있어서,
    상기 평균 처리 지연시간은 다음의 수학식3에 따라 결정되며, 상기 개별 플로우의 처리 지연시간 성능을 고려한 확률은 다음의 수학식 4에 따라 상기 평균 처리 지연시간을 최소화하는 것으로 결정되는 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법.
    [수학식3]
    Figure 112013057724597-pat00046

    여기서,
    Figure 112013057724597-pat00047
    는 평균 처리 지연시간,
    Figure 112013057724597-pat00048
    는 컨트롤러 i의 평균 처리 속도, C는 컨트롤러의 개수, RTT는 Round Trip Time이고,
    Figure 112013057724597-pat00049
    는 상기 스위치에 처리를 요청하는 플로우의 평균 속도임
    [수학식4]
    Figure 112013057724597-pat00050
  8. 복수의 컨트롤러로 이루어진 소프트웨어 정의 네트워크 환경에서 확률적으로 컨트롤러를 선택하는 장치로서,
    호스트로부터 새로운 플로우에 대한 첫 번째 패킷을 수신하는 패킷 송수신부;
    전체 네트워크의 부하 분산을 고려한 제1 확률 및 개별 플로우의 처리 지연시간 성능을 고려한 제2 확률의 가중 합을 통해 상기 복수의 컨트롤러 중 하나를 선택하는 컨트롤러 선택부; 및
    상기 선택된 컨트롤러로 상기 첫 번째 패킷을 전달하고, 상기 선택된 컨트롤러부터 상기 새로운 플로우에 대한 경로 설정에 관한 액션 정보를 수신하는 컨트롤러 통신부를 포함하되,
    상기 컨트롤러 통신부는 미리 설정된 주기마다 상기 복수의 컨트롤러 각각으로부터 부하 상태 정보를 수신하며, 상기 컨트롤러 선택부는 상기 부하 상태 정보에 따라 상기 가중 합을 위한 가중치를 결정하는 장치.
  9. 제8항에 있어서,
    상기 패킷 송수신부는 상기 액션 정보를 수신하여 다른 스위치로 상기 플로우를 전달하는 장치.
  10. 삭제
KR20130074440A 2013-06-27 2013-06-27 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치 KR101465884B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130074440A KR101465884B1 (ko) 2013-06-27 2013-06-27 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130074440A KR101465884B1 (ko) 2013-06-27 2013-06-27 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101465884B1 true KR101465884B1 (ko) 2014-11-26

Family

ID=52291728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130074440A KR101465884B1 (ko) 2013-06-27 2013-06-27 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101465884B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101601098B1 (ko) * 2014-12-29 2016-03-08 서강대학교산학협력단 Sdn 컨트롤러간 커뮤니케이션의 개수를 감소시키는 방법 및 시스템
KR20160109216A (ko) * 2015-03-10 2016-09-21 한국전자통신연구원 가상 네트워크 구성방법 및 그 장치
KR102346417B1 (ko) * 2021-09-17 2022-01-04 한화시스템(주) 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법
KR20230006654A (ko) * 2021-06-25 2023-01-11 국방과학연구소 가상 네트워크 기능 조율 방법 및 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030863A (ja) * 2011-07-27 2013-02-07 Nec Corp スイッチ装置の制御システム、その構成制御装置および構成制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013030863A (ja) * 2011-07-27 2013-02-07 Nec Corp スイッチ装置の制御システム、その構成制御装置および構成制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101601098B1 (ko) * 2014-12-29 2016-03-08 서강대학교산학협력단 Sdn 컨트롤러간 커뮤니케이션의 개수를 감소시키는 방법 및 시스템
KR20160109216A (ko) * 2015-03-10 2016-09-21 한국전자통신연구원 가상 네트워크 구성방법 및 그 장치
KR102268470B1 (ko) * 2015-03-10 2021-06-23 한국전자통신연구원 가상 네트워크 구성방법 및 그 장치
KR20230006654A (ko) * 2021-06-25 2023-01-11 국방과학연구소 가상 네트워크 기능 조율 방법 및 그 장치
KR102548926B1 (ko) * 2021-06-25 2023-06-29 국방과학연구소 가상 네트워크 기능 조율 방법 및 그 장치
KR102346417B1 (ko) * 2021-09-17 2022-01-04 한화시스템(주) 분산형 소프트웨어 정의 네트워크에서의 리더 컨트롤러 선택 방법

Similar Documents

Publication Publication Date Title
CN103262482B (zh) 通信系统、控制设备和节点控制方法
EP2834949B1 (en) Congestion control and resource allocation in split architecture networks
EP2637363A1 (en) Communication system, control device, method for controlling packet transfer path, and program
Yang et al. Size-based adaptive bandwidth allocation: Optimizing the average QoS for elastic flows
WO2012085498A1 (en) Communications network management
KR20160047448A (ko) 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법
CN103618677A (zh) 一种网络流量调整方法及系统
US9800508B2 (en) System and method of flow shaping to reduce impact of incast communications
JP5999251B2 (ja) 通信システム、スイッチ、制御装置、パケット処理方法及びプログラム
KR101465884B1 (ko) 소프트웨어 정의 네트워크에서의 확률적 컨트롤러 선택 방법 및 장치
Zhang et al. Tuning the aggressive TCP behavior for highly concurrent HTTP connections in intra-datacenter
EP2698953A1 (en) Network, data transfer node, communication method, and program
Hu et al. TLB: Traffic-aware load balancing with adaptive granularity in data center networks
CN110557333A (zh) 软件定义网络服务质量控制保障的方法及系统
Hu et al. Adjusting switching granularity of load balancing for heterogeneous datacenter traffic
Alipio et al. TCP incast solutions in data center networks: A classification and survey
EP2985963A1 (en) Packet scheduling networking device
Patil Load balancing approach for finding best path in SDN
JP6131203B2 (ja) 装置選択ネットワークシステム、装置選択サーバおよびプログラム
EP2220568B1 (en) Methods and systems for providing efficient provisioning of data flows
Hertiana et al. A joint approach to multipath routing and rate adaptation for congestion control in openflow software defined network
Nepolo et al. A predictive ECMP routing protocol for fat-tree enabled data centre networks
WO2014061587A1 (ja) 制御装置、ノード、通信システム、通信方法及びプログラム
Shang et al. Buffer management for reducing packet-in messages in openflow networks
KR101541168B1 (ko) 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법

Legal Events

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

Payment date: 20171030

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181025

Year of fee payment: 5