[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101894660B1 - Controller in software defined networking environment and operating method thereof - Google Patents

Controller in software defined networking environment and operating method thereof Download PDF

Info

Publication number
KR101894660B1
KR101894660B1 KR1020170046456A KR20170046456A KR101894660B1 KR 101894660 B1 KR101894660 B1 KR 101894660B1 KR 1020170046456 A KR1020170046456 A KR 1020170046456A KR 20170046456 A KR20170046456 A KR 20170046456A KR 101894660 B1 KR101894660 B1 KR 101894660B1
Authority
KR
South Korea
Prior art keywords
event
module
component
controller
notification
Prior art date
Application number
KR1020170046456A
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 KR1020170046456A priority Critical patent/KR101894660B1/en
Application granted granted Critical
Publication of KR101894660B1 publication Critical patent/KR101894660B1/en

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/06Management of faults, events, alarms or notifications
    • H04L41/0681Configuration of triggering conditions
    • 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/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • 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

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

The present invention relates to a controller in a software defined networking environment and an operating method thereof which can block a data loss in an event by compensating an event processing mechanism used for communication between components in a software defined networking environment, can reduce function dependency between the components, and can provide a rapid reaction due to rapid network traffic. To this end, the controller comprises an event processing module, an event broker module, and a control module.

Description

소프트웨어 정의 네트워킹 환경에서의 컨트롤러 및 그 동작 방법{CONTROLLER IN SOFTWARE DEFINED NETWORKING ENVIRONMENT AND OPERATING METHOD THEREOF}CONTROLLER IN SOFTWARE DEFINED NETWORKING ENVIRONMENT AND OPERATING METHOD THEREOF FIELD OF THE INVENTION [0001]

본 발명은 컨트롤러 및 그 동작 방법에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워킹 환경에서의 컨트롤러 및 그 동작 방법에 관한 것이다. The present invention relates to a controller and an operation method thereof, and more particularly, to a controller in a software defined networking environment and a method of operating the same.

소프트웨어 정의 네트워킹(Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템이 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비가 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러로 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다.Software Defined Networking (hereinafter referred to as SDN) refers to a technology in which an intelligent central management system manages all the network equipment in a network. In the SDN technology, it is possible to develop and assign various functions rather than the existing network structure by processing the control operation related to the packet processing performed by the existing hardware type network device in place of the controller provided in the form of software.

SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러와, 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치, 및 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 이 경우 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로설정, 관리 및 제어는 모두 컨트롤러에서 이루어진다. 즉, 네트워크 장비를 이루는 데이터 플레인(Data Plane) 및 컨트롤 플레인(Control Plane)을 분리하는 것이 SDN 시스템의 기본 구조라 할 수 있다. The SDN system generally comprises a controller for controlling the entire network, a plurality of open flow switches controlled by the controller server and processing packets, and a host corresponding to a lower layer of the open flow switch. In this case, the open flow switch is only responsible for packet transmission and reception, and routing, management, and control of the packet are all performed in the controller. In other words, it is the basic structure of the SDN system to separate the data planes and the control planes constituting the network equipment.

SDN 환경에서 컨트롤러는 네트워크 환경을 통제 및 관리하는 역할을 하며 ONOS, POX, OpenDayLight 등의 컨트롤러 오픈 소스형태로 제공되고 있다. 다만, 상용 컨트롤러는 컴포넌트 간 통신 방법의 문제, 컴포넌트 체이닝 방식의 문제 및 이벤트 기반 매커니즘의 효율적 사용의 부재의 한계가 존재하였다.In the SDN environment, the controller controls and manages the network environment and is provided as an open source controller such as ONOS, POX, and OpenDayLight. However, commercial controllers have a limitation in the problem of the inter-component communication method, the problem of the component chaining method, and the lack of efficient use of the event-based mechanism.

구체적으로, 기존의 상용 컨트롤러에서 컴포넌트 간 통신을 위해 이벤트 기반 매커니즘을 적용하고 있다. 컴포넌트는 이벤트 핸들러(event handler)에 콜백 함수를 등록하고, 이벤트 핸들러는 특정 이벤트가 발생했을 때 해당 컴포넌트의 콜백 함수를 호출한다. 그러나, 이벤트 기반 매커니즘에서는 호출자가 이벤트를 전달한 후에 프로세스를 종료할 경우, 수신자가 해당 이벤트에 대해서 데이터를 처리하지 않은 상태에서 데이터가 손실되는 위험이 발생할 수 있다.Specifically, existing commercial controllers use an event-based mechanism for inter-component communication. The component registers a callback function in the event handler, and the event handler calls the component's callback function when a specific event occurs. However, in an event-based mechanism, if a caller terminates a process after delivering an event, there is a risk that data will be lost without the receiver handling the data for that event.

또한, 기존의 상용 컨트롤러는 개방형 서비스 게이트웨이 이니셔티브(Open Service Gateway Initiative, OSGi)를 이용하여 동적이고 모듈단위의 컴포넌트 디자인을 제공한다. 아울러, 컴포넌트 간의 통신에는 앞서 설명한 이벤트 기반 매커니즘 뿐만 아니라 응용 프로그램 프로그래밍 인터페이스(Application Programming Interface, API)를 사용하고 있다. 이는 컴포넌트가 다음 작업을 수행하기 위해서 다른 컴포넌트를 호출하고 해당 컴포넌트의 연산 결과를 받아야 하는 의존성 문제가 발생한다.In addition, existing commercial controllers use the Open Service Gateway Initiative (OSGi) to provide dynamic, modular component design. In addition, the communication between components uses an application programming interface (API) as well as the event-based mechanism described above. This causes a dependency problem that requires the component to call another component to perform the next operation and receive the operation result of the component.

컨트롤러는 데이터 플레인으로부터 발생한 이벤트를 스스로 결정하는 것이 아니라 컨트롤 플레인에 전달하여 특정 이벤트를 요청한 어플리케이션에 의해서 수행된다. 이에 따른 기존의 상용 컨트롤러는 빠른 속도로 들어오는 이벤트나 예기치 못한 포화 상태에 대해 대처하지 못한다는 한계가 존재하였다. The controller does not determine the events that originate from the data plane by itself, but rather by the application that sends the event to the control plane and requests a specific event. Therefore, existing commercial controllers have limitations in that they can not cope with high-speed incoming events or unexpected saturation.

또한, 기존의 상용 컨트롤러는 컴포넌트 간에 체이닝 방식을 정의하기 위한 서비스들을 제공하지 않으며, 제공하더라도 코드 내에서 직접적으로 정의되거나 관리자(또는 사용자)에 의한 컴포넌트 우선 순위를 사용하고 있다. 그러나, 이벤트 무결성을 검사하는 등의 보안 관련 컴포넌트는 이벤트 처리 순서를 결정할 때 보다 높은 수준의 컨트롤을 요구하므로 이에 대한 한계가 존재하였다. In addition, existing commercial controllers do not provide services for defining the chaining method between components, and even if provided, they are directly defined in the code or use the component priority by the manager (or user). However, security-related components such as checking the integrity of an event have a limitation because they require a higher level of control when determining the event processing order.

또한, 기존의 네트워크 운영체제는 이벤트 기반 매커니즘을 효율적으로 사용하기보다는 더 많은 기능을 추가하기 위한 용도로 사용하고 있다. 이러한 방식은 확장성이 용이하지 않고, 또한 컨트롤러의 이벤트 처리 서비스에 안전성을 제공하지 못한다는 한계가 존재하였다. In addition, existing network operating systems are used to add more functions to an event-based mechanism rather than to an efficient one. This method is not easy to expand, and there is a limitation that the event processing service of the controller can not provide safety.

한국등록특허 제10­1491698호(2015.02.03 등록), "소프트웨어 정의 네트워크에서 제어 장치 및 그 동작 방법"Korean Registered Patent No. 101491698 (registered on Feb. 20, 2013), "Control device in software defined network and its operation method" 한국공개특허 제10­2016­0012660호(2016.02.03 공개), "SDN 환경에서 네트워크를 제어하는 장치 및 그 방법"Korean Patent Publication No. 1020160012660 (published on Mar. 23, 2013), "Apparatus and method for controlling a network in an SDN environment"

본 발명은 전술한 문제점을 해결하기 위한 것으로, 소프트웨어 정의 네트워킹 환경에서의 컴포넌트간 통신을 위해 사용하는 이벤트 처리 매커니즘을 보완하여 이벤트 내 데이터 유실을 차단하고, 컴포넌트 간 기능 의존성을 감소시키며, 급격한 네트워크 트래픽에 따른 빠른 대응방안을 제공할 수 있는 컨트롤러 및 그 동작 방법을 제공하는 것을 일 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems and it is an object of the present invention to supplement an event processing mechanism used for communication between components in a software defined networking environment to prevent data loss in an event, And a method of operating the same.

또한, 본 발명의 다른 목적은 동적 컴포넌트 이벤트 체이닝을 적용하여 동일한 이벤트를 처리하는 복수의 컴포넌트 간의 처리 순서와 방식을 효과적으로 결정할 수 있는 컨트롤러 및 그 동작 방법을 제공하고자 한다.It is another object of the present invention to provide a controller and an operation method thereof that can effectively determine a processing order and a method between a plurality of components that process the same event by applying dynamic component event chaining.

또한, 본 발명의 다른 목적은 관리자 정책 기반의 이벤트 분배 방식을 적용하여 이벤트 처리 매커니즘을 효과적으로 사용할 수 있는 컨트롤러 및 그 동작 방법을 제공하고자 한다.It is another object of the present invention to provide a controller and an operation method thereof that can effectively use an event processing mechanism by applying an event distribution method based on an administrator policy.

본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러는 네트워크 장비로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소에 저장하고, 상기 알림 이벤트 및 상기 저장된 데이터를 전달하는 이벤트 처리 모듈, 상기 알림 이벤트에 기초하여 상기 저장된 데이터를 상기 컴포넌트로 송신하는 이벤트 브로커 모듈 및 트래픽 정보, 이벤트 통계 및 각 컴포넌트의 기능에 따른 이벤트 처리 매커니즘을 제공하도록 제어하는 제어 모듈을 포함한다.In a software defined network environment according to an embodiment of the present invention, a controller including a plurality of components stores data included in notification events generated from network equipment in a shared storage, and stores the notification event and the stored data An event broker module for transmitting the stored data to the component based on the notification event, and a control module for controlling traffic information, event statistics, and an event processing mechanism according to the function of each component .

또한, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러는 상기 네트워크 장비로부터 수신한 메시지를 포함하는 상기 알림 이벤트를 생성하고, 상기 생성된 알림 이벤트를 상기 이벤트 처리 모듈로 전송하는 입출력 모듈 및 상기 네트워크 장비에 연결된 복수의 노드 각각으로부터 상기 트래픽 정보를 수집하는 정보 수집 모듈을 더 포함할 수 있다. In a software defined network environment according to an embodiment of the present invention, a controller including a plurality of components generates the notification event including a message received from the network device, and transmits the generated notification event to the event processing module And an information collecting module for collecting the traffic information from each of a plurality of nodes connected to the network equipment.

상기 제어 모듈은 상기 이벤트 처리 모듈에서의 상기 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)의 상기 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다.Wherein the control module is configured to dynamically activate or deactivate a component based on the event statistics in the event processing module, or to filter specific events to be transmitted to a specific component, the event processing mechanism of the meta events .

상기 이벤트 통계는 이벤트 볼륨, 이벤트 소비(consumption) 및 생산(production)에 관한 컴포넌트 레벨 통계, 및 이벤트 유형 분산 통계를 포함할 수 있다.The event statistics may include event volume, component level statistics on event consumption and production, and event type distribution statistics.

상기 제어 모듈은 상기 트래픽 정보에 기반하여 상기 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)의 상기 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다.The control module may control the event processing mechanism of event chaining of sequential delivery or parallel delivery of the stored data to be performed based on the traffic information.

상기 이벤트 체이닝은 이벤트를 처리하는 상기 복수의 컴포넌트 간의 처리 순서 및 방식을 결정할 수 있다.The event chaining may determine a processing order and a method among the plurality of components for processing an event.

또한, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러는 사용자로부터 네트워크 관리에 필요한 요구사항을 입력받는 입력 모듈 및 상기 요구사항, 리소스 사용량 및 상기 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 포함하는 정책 테이블을 더 포함할 수 있다.In addition, a controller including a plurality of components in a software defined network environment according to an exemplary embodiment of the present invention includes an input module for receiving requirements for network management from a user, and an input module for analyzing the requirements, resource usage, And a policy table including optimized module combination information according to the optimized module combination information.

상기 제어 모듈은 상기 정책 테이블에 기반하여 이벤트 분배 방식의 상기 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다.The control module may control the event processing mechanism of the event distribution method to be performed based on the policy table.

상기 제어 모듈은 상기 정책 테이블에 기반하여 상기 발생되는 알림 이벤트에 대한 일치 여부를 판단하고, 판단 결과로부터 상기 알림 이벤트에 포함된 데이터의 전달을 제어할 수 있다.The control module may determine whether the generated notification event is consistent based on the policy table, and may control delivery of data included in the notification event based on the determination result.

상기 제어 모듈은 상기 입력 모듈에 의해 수신되는 ODPs(operator­defined policies)의 사용자 정의에 기반하여 상기 정책 테이블을 업데이트할 수 있다.The control module may update the policy table based on a user definition of operatordefined policies (ODPs) received by the input module.

본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러의 동작 방법은 네트워크 장비로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소에 저장하는 단계, 상기 알림 이벤트에 기초하여 이벤트 브로커 모듈을 통해 상기 저장된 데이터를 상기 컴포넌트로 송신하는 단계 및 트래픽 정보, 이벤트 통계 및 각 컴포넌트의 기능에 따른 이벤트 처리 매커니즘이 적용된 상기 데이터를 수신하는 단계를 포함한다.A method of operating a controller including a plurality of components in a software defined network environment according to an exemplary embodiment of the present invention includes storing data included in notification events generated from network equipment in a shared storage, Transmitting the stored data to the component through an event broker module, and receiving the data to which the event processing mechanism based on the traffic information, the event statistics, and the function of each component is applied.

상기 데이터를 공유 저장소에 저장하는 단계는 상기 네트워크 장비로부터 수신한 메시지를 포함하는 상기 알림 이벤트를 생성하는 단계, 상기 생성된 알림 이벤트를 수신하여 이벤트 처리 모듈로 전송하는 단계 및 상기 이벤트 처리 모듈로 수신되는 상기 알림 이벤트에 포함된 데이터를 상기 공유 저장소에 저장하는 단계를 포함할 수 있다.Wherein the step of storing the data in the shared storage comprises generating the notification event including a message received from the network equipment, receiving the generated notification event and transmitting the received notification event to the event processing module, And storing the data included in the notification event in the shared storage.

상기 이벤트 처리 매커니즘은 상기 이벤트 처리 모듈에서의 상기 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)를 포함할 수 있다.The event processing mechanism may include meta events for dynamically activating or deactivating a component based on the event statistics in the event processing module, or configuring the specific event to be filtered to a specific component.

또한, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러의 동작 방법은 상기 네트워크 장비에 연결된 복수의 노드 각각으로부터 상기 트래픽 정보를 수집하는 단계를 더 포함할 수 있다.In addition, the method of operating a controller including a plurality of components in a software defined network environment according to an embodiment of the present invention may further include collecting the traffic information from each of a plurality of nodes connected to the network equipment.

상기 이벤트 처리 매커니즘은 상기 트래픽 정보에 기반하여 상기 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)을 포함할 수 있다.The event handling mechanism may include event chaining of sequential delivery or parallel delivery of the stored data based on the traffic information.

또한, 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러의 동작 방법은 사용자로부터 네트워크 관리에 필요한 요구사항을 입력받는 단계 및 상기 요구사항, 리소스 사용량 및 상기 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 저장하여 유지하는 단계를 더 포함할 수 있다.In addition, in a software defined network environment according to an embodiment of the present invention, a method of operating a controller including a plurality of components includes receiving a requirement for network management from a user, And storing and maintaining optimized module combination information according to the analysis.

상기 이벤트 처리 매커니즘은 상기 모듈 조합 정보에 따른 이벤트 분배 방식을 포함할 수 있다. The event handling mechanism may include an event distribution method according to the module combination information.

본 발명의 실시예에 따르면, 소프트웨어 정의 네트워킹 환경에서의 컴포넌트간 통신을 위해 사용하는 이벤트 처리 매커니즘을 보완하여 이벤트 내 데이터 유실을 차단하고, 컴포넌트 간 기능 의존성을 감소시키며, 급격한 네트워크 트래픽에 따른 빠른 대응방안을 제공할 수 있다. According to an embodiment of the present invention, an event processing mechanism used for inter-component communication in a software-defined networking environment is supplemented to prevent data loss in an event, reduce functional dependency between components, It is possible to provide a solution.

또한, 본 발명의 실시예에 따르면, 동적 컴포넌트 이벤트 체이닝을 적용하여 동일한 이벤트를 처리하는 복수의 컴포넌트 간의 처리 순서와 방식을 효과적으로 결정할 수 있다.Also, according to the embodiment of the present invention, it is possible to effectively determine a processing order and a method between a plurality of components that process the same event by applying dynamic component event chaining.

또한, 본 발명의 실시예에 따르면, 관리자 정책 기반의 이벤트 분배 방식을 적용하여 이벤트 처리 매커니즘을 효과적으로 사용할 수 있다.Also, according to the embodiment of the present invention, an event processing mechanism can be effectively used by applying an event distribution method based on administrator policy.

도 1은 일반적인 소프트웨어 정의 네트워크의 구성을 설명하기 위해 도시한 것이다.
도 2는 본 발명의 실시예에 따른 컨트롤러의 구성도를 도시한 것이다.
도 3은 본 발명의 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다.
도 4는 본 발명의 다른 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다.
도 5는 본 발명의 또 다른 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다.
도 6은 본 발명의 실시예에 따른 컨트롤러의 동작 방법의 흐름도를 도시한 것이다.
도 7은 본 발명의 다른 실시예에 따른 컨트롤러의 동작 방법의 흐름도를 도시한 것이다.
FIG. 1 is a diagram for explaining a configuration of a general software definition network.
2 is a block diagram of a controller according to an embodiment of the present invention.
FIG. 3 illustrates an event processing mechanism according to an embodiment of the present invention.
FIG. 4 is a view for explaining an event processing mechanism according to another embodiment of the present invention.
FIG. 5 is a view for explaining an event processing mechanism according to another embodiment of the present invention.
6 is a flowchart of an operation method of a controller according to an embodiment of the present invention.
7 is a flowchart illustrating a method of operating a controller according to another embodiment of the present invention.

이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. In addition, the same reference numerals shown in the drawings denote the same members.

또한, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 시청자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Also, terminologies used herein are terms used to properly represent preferred embodiments of the present invention, which may vary depending on the viewer, the intention of the operator, or the custom in the field to which the present invention belongs. Therefore, the definitions of these terms should be based on the contents throughout this specification.

도 1은 일반적인 소프트웨어 정의 네트워크의 구성을 설명하기 위해 도시한 것이다.FIG. 1 is a diagram for explaining a configuration of a general software definition network.

도 1을 참조하면, 본 발명에서의 소프트웨어 정의 네트워크(Software Defined Network)는 SDN 컨트롤러(100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다. 컨트롤러(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다.Referring to FIG. 1, a software defined network in the present invention may include an SDN controller 100, a network device 200, and a host 300. The network device 200 and the host 300 may be referred to as a node, and a link may denote a connection between two nodes. The controller 100 manages the network equipment 200 and centrally manages and controls the plurality of network equipment 200.

구체적으로 본 발명에 의한 SDN 컨트롤러(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 플로우 관리(Flow management) 등의 기능을 하는 소프트웨어가 모듈식으로 탑재된 형태로 구현될 수 있다.Specifically, the SDN controller 100 according to the present invention includes software that performs functions such as topology management, path management related to packet processing, link discovery, and flow management. And can be implemented in a modularly mounted form.

네트워크 장비(200)는 SDN 컨트롤러(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다.The network equipment 200 functions to process packets under the control of the SDN controller 100. Examples of the network equipment 200 include a mobile communication base station, a base station controller, a gateway equipment, a wired network switch, and a router.

소프트웨어 정의 네트워크에서 사용되는 가장 일반적인 네트워크 장비(200)는 오픈플로우 스위치(200)이다. 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있으나, 본 발명에 의한 컨트롤러(100)는 오픈플로우 프로토콜을 지원하는 스위치뿐 아니라, Netconf 프로토콜을 지원하는 스위치로 제어 가능하다. 따라서, 본 발명은 소프트웨어 정의 네트워킹 환경에서 컨트롤러(100)와 스위치(200)간 정보 교환에 사용되는 프로토콜의 종류에 의해 제한되지 않는다. 다만, 이를 위한 프로토콜로 가장 널리 사용되는 것이 오픈플로우(OpenFlow) 프로토콜이므로, 네트워크 장비(200)가 오픈플로우 스위치(200)인 경우를 중심으로 설명한다.The most common network equipment 200 used in a software defined network is the open flow switch 200. The open flow switch 200 can be understood as a concept including a switch supporting only an open flow protocol, a virtual switch supporting an open flow protocol, and a general L2 switch supporting an open flow protocol, ) Can be controlled by a switch that supports the Netconf protocol as well as a switch that supports the open flow protocol. Thus, the present invention is not limited by the type of protocol used for exchanging information between the controller 100 and the switch 200 in a software defined networking environment. However, the most widely used protocol for this is the OpenFlow protocol, so the case where the network device 200 is the open flow switch 200 will be mainly described.

오픈플로우 스위치(200)에 대해 보다 구체적으로 설명하면, 오픈플로우 스위치(200)는 보안 채널(Secure Channel)을 통해 컨트롤러(100)와 정보를 교환한다. 상기 보안 채널은 스위치(200)와 원거리에 위치한 컨트롤러(100)간 통신 채널이며, 컨트롤러(100)와 스위치(200)간 교환되는 정보는 암호화될 수 있다. More specifically, the open flow switch 200 exchanges information with the controller 100 through a secure channel. The secure channel is a communication channel between the switch 200 and the controller 100 located at a remote location, and information exchanged between the controller 100 and the switch 200 can be encrypted.

그리고 오픈플로우 스위치(200)에는 패킷을 규정 및 처리하고, 패킷에 관련된 통계 정보를 포함하는 하나 이상의 플로우 테이블(Flow table)이 존재한다. 상기 플로우 테이블은 패킷 처리를 규정하는 플로우 룰(Flow Rule)로 구성되며, 상기 플로우 룰은 컨트롤러(100)가 생성하여 오픈플로우 스위치(200)에 전송하는 플로우 모드 메시지(Flow­Mod Message)에 의해 추가, 수정 또는 삭제될 수 있다.The open flow switch 200 has one or more flow tables for defining and processing packets and including statistical information related to the packets. The flow table is composed of a flow rule that defines packet processing. The flow rule is added by a flow mode message (FlowMod Message) generated by the controller 100 and transmitted to the open flow switch 200, Modified or deleted.

오픈플로우 스위치(200)는 상기 플로우 테이블을 참조하여 패킷을 처리한다. 상기 플로우 테이블은 플로우를 정의하는 패킷에 대한 매치 정보(Match Field), 패킷의 처리를 정의하는 동작 정보(Instruction) 및 플로우별 통계 정보(Stats)를 포함할 수 있다. 그리고 플로우 테이블을 이루는 각 행을 플로우 엔트리(Flow Entry)라고 칭하며 각 플로우 엔트리에는 우선순위(Priority)가 지정될 수 있다. 스위치는 패킷의 정보와 부합하는 매치 정보를 가진 플로우 엔트리 중에서 가장 높은 우선순위를 가지는 플로우 엔트리의 동작 정보에 따라 패킷을 처리할 수 있다.The open flow switch 200 processes the packet with reference to the flow table. The flow table may include a match field for a packet defining a flow, operation information for defining processing of the packet, and statistical information for each flow (Stats). Each row constituting the flow table is called a flow entry, and a priority can be assigned to each flow entry. The switch can process the packet according to the operation information of the flow entry having the highest priority among the flow entries having match information matching the information of the packet.

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

예컨대, 제1 호스트(300a)가 제2 호스트(300b)로 패킷을 보내고자 할 때, 제1 호스트(300a)는 보내고자 하는 패킷을 생성하고 패킷을 제1 호스트(300a)와 연결된 오픈플로우 스위치(200a)로 전송한다. 패킷을 수신한 오픈플로우 스위치(200a)에 패킷과 매치되는 플로우 엔트리가 존재하는 경우에는, 플로우 엔트리의 규정대로 패킷을 처리한다. 다만 오픈플로우 스위치(200a)에 패킷과 매치되는 플로우 엔트리가 없는 경우에는 오픈플로우 스위치(200a)는 컨트롤러(100)에 패킷 유입을 알리는 패킷­인 메시지(Packet­in Message)를 전송한다. 컨트롤러(100)는 패킷의 처리를 규정하는 플로우 룰 변경 사항을 생성하여 오픈플로우 스위치(200a)로 전송하고, 오픈플로우 스위치(200a)는 이에 기반하여 상태를 변경하고 패킷을 처리한다.For example, when the first host 300a wants to send a packet to the second host 300b, the first host 300a generates a packet to be sent and transmits the packet to the first host 300a via an open flow switch (200a). When there is a flow entry matched with the packet in the open flow switch 200a receiving the packet, the packet is processed as specified in the flow entry. However, when there is no flow entry matched with the packet in the open flow switch 200a, the open flow switch 200a transmits a packet (Packetin Message), which is a packet informing the controller 100 of the packet flow. The controller 100 generates a flow rule change specifying the processing of the packet and transmits it to the open flow switch 200a, and the open flow switch 200a changes the state and processes the packet based thereon.

컨트롤러(100)가 패킷­인 메시지를 수신하고, 이 패킷의 처리를 규정하는 플로우 룰 변경 사항을 생성하기 위해서는 컨트롤(100) 내에 탑재된 소프트웨어를 통해 토폴로지 관리, 패킷 처리와 관련된 경로 관리 등의 기능을 수행하여 플로우 룰 변경 사항을 생성해야 한다. 본 발명의 컨트롤러(100)는 플로우 룰 변경을 위해 컨트롤러(100)에서 수행되는 각 기능들을 모듈화하고, 네트워크 장비(200)로부터 발생되는 이벤트에 포함된 데이터의 유실을 차단하며, 컨트롤러(100)에서 수행되는 각 기능들을 모듈화하여 각 컴포넌트들 간의 의존성을 감소시키고, 급격한 네트워크 트래픽에 따른 빠른 대응방안을 제공하여 다양한 네트워크 환경에 맞게 네트워크를 효과적으로 관리할 수 있도록 한다.In order for the controller 100 to receive a message that is a packet and to generate a flow rule change specifying the processing of the packet, the software installed in the control 100 is used to perform functions such as topology management and path management related to packet processing To create a flow rule change. The controller 100 of the present invention modularizes each function performed in the controller 100 to change a flow rule and blocks loss of data included in an event generated from the network equipment 200, Each function to be performed is modularized to reduce the dependency between the components and to provide quick response according to the sudden network traffic so that the network can be effectively managed according to various network environments.

도 2는 본 발명의 실시예에 따른 컨트롤러의 구성도를 도시한 것이다.2 is a block diagram of a controller according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 컨트롤러(100)는 이벤트 처리 모듈(110), 이벤트 브로커 모듈(120) 및 제어 모듈(130)을 포함하고, 입출력 모듈(140), 정보 수집 모듈(150), 입력 모듈(160) 및 리소스 모니터링 모듈(170)을 더 포함할 수 있다. 2, the controller 100 includes an event processing module 110, an event broker module 120, and a control module 130. The controller 100 includes an input / output module 140, (150), an input module (160), and a resource monitoring module (170).

이벤트 처리 모듈(110)은 네트워크 장비(200)로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소(111)에 저장하고, 알림 이벤트 및 저장된 데이터를 전달한다.The event processing module 110 stores data included in notification events generated from the network device 200 in the shared storage 111 and delivers notification events and stored data.

본 발명의 실시예에 따른 컨트롤러(100)는 입출력 모듈(140) 및 정보 수집 모듈(150)을 더 포함할 수 있으며, 입출력 모듈(140)은 네트워크 장비(200)로부터 메시지를 수신하고, 정보 수집 모듈(150)은 트래픽 정보를 수신할 수 있다.The controller 100 according to the embodiment of the present invention may further include an input and output module 140 and an information collection module 150. The input and output module 140 receives a message from the network equipment 200, Module 150 may receive traffic information.

예를 들면, 입출력 모듈(140)은 네트워크 장비(200)로부터 수신한 메시지를 포함하는 알림 이벤트를 생성하고, 생성된 알림 이벤트를 이벤트 처리 모듈(110)로 전송할 수 있다. 여기서 네트워크 장비(200)로부터 수신하는 메시지는 패킷의 경로 설정, 관리 및 제어를 위한 제어 메시지(control message)일 수 있다. 예를 들어, 도 1에서 설명한 실시예에서의 패킷­인 메시지일 수 있다. For example, the input / output module 140 may generate a notification event including a message received from the network device 200, and may transmit the generated notification event to the event processing module 110. Here, the message received from the network device 200 may be a control message for routing, managing, and controlling the packet. For example, the message may be a packet in the embodiment described in FIG.

실시예에 따라서, 입출력 모듈(140)은 네트워크 장비(200)로부터 수신한 메시지를 포함하는 이벤트를 생성할 수 있다. 상기 이벤트는 이벤트 기반으로 동작하는 컨트롤러(100)에서 각 컴포넌트가 주고받는 정보로, 메시지를 포함하는 데이터 필드와 데이터 필드에 대한 정보를 포함하는 이벤트타입 필드를 포함할 수 있다. According to an embodiment, the input / output module 140 may generate an event including a message received from the network equipment 200. [ The event may include an event type field including information on a data field including a message and information on a data field, the information being exchanged between the components in the controller 100 operating on an event basis.

또 다른 예로, 정보 수집 모듈(150)은 네트워크 장비(200)에 연결된 복수의 노드 각각으로부터 트래픽 정보를 수집할 수 있다.As another example, the information collecting module 150 may collect traffic information from each of a plurality of nodes connected to the network equipment 200. [

이벤트 처리 모듈(110)은 입출력 모듈(140)을 통해 수신되는 알림 이벤트에 포함된 데이터를 공유 저장소(111)에 저장한 후, 체인 상에 있는 각 컴포넌트(10)에게 이벤트에 포함된 데이터를 전달할 수 있다. The event processing module 110 stores the data included in the notification event received through the input / output module 140 in the shared storage 111 and then transmits the data included in the event to each component 10 in the chain .

실시예에 따라서, 이벤트 처리 모듈(110)은 복수의 컴포넌트(10)에게 직접적으로 이벤트 포함된 데이터를 전달할 수 있으며, 이벤트 브로커 모듈(120)을 통해 전달할 수도 있다. According to an embodiment, the event processing module 110 may directly transmit event-containing data to the plurality of components 10 and may transmit the event-containing data to the event broker module 120.

이벤트 브로커 모듈(120)은 알림 이벤트에 기초하여 저장된 데이터를 컴포넌트(10)로 송신한다.The event broker module 120 sends the stored data to the component 10 based on the notification event.

이벤트 브로커 모듈(120)은 이벤트를 기반으로 동작하는 컨트롤러(100) 내의 각 컴포넌트(10)에서 생성된 이벤트를 수신하고, 이를 전체 모듈에 전송하는 역할을 한다. 따라서, 컨트롤러(100)에 포함된 컴포넌트(10)는 컴포넌트 간에 직접 메시지를 교환하지 않고, 이벤트 브로커 모듈(120)을 통해 메시지를 교환할 수 있다. The event broker module 120 receives an event generated by each component 10 in the controller 100 that operates based on an event, and transmits the event to the entire module. Accordingly, the component 10 included in the controller 100 can exchange messages through the event broker module 120 without exchanging messages directly between the components.

예를 들면, 이벤트 브로커 모듈(120)은 복수의 컴포넌트(10) 간의 의존성을 최소화하기 위해 컴포넌트 간 통신의 브릿지(bridge) 역할을 할 수 있다. 실시예에 따라서, 이벤트 브로커 모듈(120)은 컴포넌트(10) 간의 직접적인 통신을 제한하고, 요청 및 응답 시스템을 이용하여 컴포넌트(10)에 한정된 구현 의존도를 제거하는 역할을 수행할 수 있다. For example, the event broker module 120 may serve as a bridge for inter-component communication to minimize the dependency between the plurality of components 10. [ Depending on the embodiment, the event broker module 120 may be responsible for limiting direct communication between components 10 and eliminating implementation dependencies defined for component 10 using a request and response system.

제어 모듈(130)은 트래픽 정보, 이벤트 통계 및 각 컴포넌트(또는 모듈)의 기능에 따른 이벤트 처리 매커니즘을 제공하도록 제어한다.The control module 130 controls traffic information, event statistics, and event handling mechanisms according to the function of each component (or module).

제어 모듈(130)은 이벤트 처리 모듈(110)에서의 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)의 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다. The control module 130 may be configured to dynamically activate or deactivate a component based on event statistics in the event processing module 110 or to filter a specific event to be delivered to a specific component, Can be controlled to be performed.

상기 이벤트 통계는 이벤트 볼륨, 이벤트 소비(consumption) 및 생산(production)에 관한 컴포넌트 레벨 통계, 및 이벤트 유형 분산 통계를 포함할 수 있다.The event statistics may include event volume, component level statistics on event consumption and production, and event type distribution statistics.

예를 들면, 제어 모듈(130)은 메타 이벤트에 기반하여 이벤트 처리 모듈(110)에서 기 설정된 핸들링 로직(handling logic)이 자동으로 트리거되도록 제어할 수 있다. For example, the control module 130 may control to automatically trigger the predetermined handling logic in the event processing module 110 based on the meta-event.

상기 메타 이벤트는 사용자에게 특정한 상황이 되었을 때, 사전에 정의한 기능을 수행하도록 하는 것으로, 사용자에게 조건부 컴포넌트(conditional component)의 활성화를 미리 제시하고, 이벤트 생성 패턴이 조건에 부합하지 않은 경우 논리를 비활성화할 수 있다. 또한, 메타 이벤트는 이벤트 처리 모듈(110)에 원치 않는 리소스를 유발할 수 있는 특정 컴포넌트에 대한 특정 이벤트를 필터링하도록 조정할 수 있다. The meta-event allows a user to perform a predetermined function when a specific situation is reached. The meta-event provides the user with the activation of a conditional component in advance. If the event generation pattern does not meet the condition, can do. In addition, the meta-event may be adjusted to filter certain events for a particular component that may cause the event handling module 110 to generate unwanted resources.

제어 모듈(130)은 트래픽 정보에 기반하여 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)의 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다.The control module 130 may control the sequential delivery of the stored data based on the traffic information or the event handling mechanism of event chaining of the parallel delivery to be performed.

예를 들면, 이벤트 처리 모듈(110)이 공통 이벤트를 복수의 컴포넌트(10) 그룹으로 서비스하는 경우, 제어 모듈(130)은 복수의 컴포넌트(10) 간의 처리 순서 및 방식을 결정하는 이벤트 체이닝의 이벤트 처리 매커니즘이 수행되도록 제어할 수 있다.For example, when the event processing module 110 serves a common event as a group of a plurality of components 10, the control module 130 generates an event chaining event (event chaining event) The processing mechanism can be controlled to be performed.

여기서, 순차적 전달은 컴포넌트에 필터 기준 일치와 같은 이벤트에 관해 내부적으로 정의된 결정을 기반으로 이벤트 체인을 잠재적으로 종료할 수 있는 권한이 컴포넌트에 부여되었을 때 발생할 수 있다. 또한, 병렬적 전달은 컴포넌트의 이벤트에 대한 반응이 다른 컴포넌트에게 영향을 미치지 않을 때 적용 가능할 수 있다. Here, sequential delivery can occur when a component is granted the right to potentially terminate an event chain based on internally defined decisions about an event, such as a filter criteria match. In addition, parallel propagation may be applicable when the response of a component to an event does not affect other components.

본 발명의 실시예에 따른 컨트롤러(100)는 입력 모듈(160) 및 정책 테이블(미도시)을 더 포함할 수 있다.The controller 100 according to the embodiment of the present invention may further include an input module 160 and a policy table (not shown).

입력 모듈(160)은 사용자로부터 네트워크 관리에 필요한 요구사항을 입력 받거나, 제어 장치 모드를 입력 받을 수 있다. 또한, 입력 모듈(160)은 컴포넌트의 활성화에 대한 정보를 입력 받을 수도 있으며, 컨트롤러(100)의 동작 전 환경 설정 파일 생성을 위해 사용될 수도 있다. The input module 160 may receive a request for a network management from a user or input a control device mode. In addition, the input module 160 may receive information on the activation of the component, and may be used to generate a pre-operation environment file of the controller 100.

정책 테이블은 요구사항, 리소스 사용량 및 각 컴포넌트(10)의 기능 분석에 따른 최적화된 모듈 조합 정보를 포함할 수 있다. 구체적으로, 정책 테이블은 이벤트 기반의 매커니즘을 효율적으로 사용하기 위한 정책 기반의 이벤트 분배 방식을 포함할 수 있으며, 실시예에 따라서는 컴포넌트(10) 내에 반영될 수 있다.The policy table may include requirements, resource usage, and optimized module combination information according to functional analysis of each component. In particular, the policy table may include a policy-based event distribution scheme for efficiently using an event-based mechanism, and may be reflected in the component 10 in some embodiments.

예를 들면, 정책 기반의 이벤트 분배를 위해 네트워크 운영체제 관리자(또는 사용자)는 소프트웨어 정의 네트워킹과 네트워크의 주요 필드를 기반으로 관리자 정책(관리자 정의 정책, operator­defined policies; ODPs)을 정의할 수 있다.For example, for policy-based event distribution, a network operating system administrator (or user) can define administrator policies (administrator-defined policies, ODPs) based on software-defined networking and key fields in the network.

관리자가 특정 컴포넌트에 대해 관리자 정책을 정의하면 해당 정책은 즉시 컴포넌트 내 정책 테이블에 반영된다. 그리고, 발생되는 이벤트에 대해서 정책 테이블 내에 정책과 매치될 경우, 해당 이벤트는 작업 풀(work pool)로 진입하게 되며, 매치되지 않을 경우 해당 이벤트를 받아들이지 않는다. When an administrator defines an administrator policy for a specific component, the policy is immediately reflected in the component's policy table. When a generated event is matched with a policy in the policy table, the event enters the work pool. If the event does not match, the event is not accepted.

예를 들면, 상기 관리자 정책은 데이터 패스 ID(DataPath ID), 인­포트(in­port, 또는 스위치의 수신 포트), 프로토콜, 소스/대상 IP 주소 및 포트 등 7가지 필드로 구성될 수 있다. For example, the administrator policy may be configured with seven fields including a data path ID, an inport, a protocol, a source / destination IP address, and a port.

실시예에 따라서, 제어 모듈(130)은 입력 모듈(160)에 의해 수신되는 관리자 정책에 기반하여 정책 테이블을 업데이트할 수 있다. 이후, 제어 모듈(130)은 이벤트 처리 모듈(110)을 통해 정책 테이블에 기반하여 발생되는 알림 이벤트에 대한 일치 여부를 판단하고, 판단 결과로부터 알림 이벤트에 포함된 데이터의 전달을 제어할 수 있다.Depending on the embodiment, the control module 130 may update the policy table based on the administrator policy received by the input module 160. [ Thereafter, the control module 130 determines whether the notification event is generated based on the policy table through the event processing module 110, and controls the delivery of data included in the notification event based on the determination result.

실시예에 따라서, 제어 모듈(130)은 본 발명의 실시예에 따른 컨트롤러(100)에서의 이벤트 처리 모듈(110), 이벤트 브로커 모듈(120) 및 복수의 컴포넌트(10) 내에 포함될 수도 있다. The control module 130 may be included in the event processing module 110, the event broker module 120 and the plurality of components 10 in the controller 100 according to the embodiment of the present invention.

도 2를 참조하면, 컴포넌트(10)는 컴포넌트의 고유 기능을 수행하여 이벤트를 처리할 수 있고, 처리 결과에 따라 또 다른 이벤트를 생성할 수 있으며, 그에 따른 이벤트 처리 모듈(110), 이벤트 브로커 모듈(120) 및 제어 모듈(130)로 전송할 수 있다. 본 발명의 실시예에 따른 컨트롤러(100)에 포함된 다른 모듈(제1 컴포넌트, 제2 컴포넌트 및 제N 컴포넌트) 역시 이벤트 처리 모듈(110), 이벤트 브로커 모듈(120), 제어 모듈(130), 입출력 모듈(140), 정보 수집 모듈(150), 입력 모듈(160) 및 리소스 모니터링 모듈(170)을 포함할 수 있다.Referring to FIG. 2, the component 10 can process an event by performing a unique function of the component, and can generate another event according to the processing result. The event processing module 110, the event broker module (120) and the control module (130). Other modules (the first component, the second component, and the Nth component) included in the controller 100 according to the embodiment of the present invention may also include an event processing module 110, an event broker module 120, a control module 130, Output module 140, an information collecting module 150, an input module 160, and a resource monitoring module 170. The input /

리소스 모니터링 모듈(170)은 복수의 컴포넌트 각각의 리소스 사용량을 모니터링하고, 모니터링 결과 임의의 컴포넌트의 리소스 사용량이 기 설정된 기준 이상이면, 해당 컴포넌트의 동작을 제어하도록 제어 모듈(130)에 요청할 수 있다. 리소스 모니터링 모듈(170) 역시 컨트롤러(100)를 구성하는 복수의 컴포넌트 중 하나에 해당하나, 다른 컴포넌트와 비교했을 때 독자적으로 기능을 수행할 수 있다는 점에서 차이가 있다. The resource monitoring module 170 may monitor the resource usage of each of the plurality of components and may request the control module 130 to control the operation of the corresponding component if the resource usage of any component is higher than a preset reference. The resource monitoring module 170 also corresponds to one of a plurality of components constituting the controller 100, but differs in that the resource monitoring module 170 can perform its own functions in comparison with other components.

도 3은 본 발명의 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다. FIG. 3 illustrates an event processing mechanism according to an embodiment of the present invention.

보다 구체적으로, 도 3a는 본 발명의 실시예에 따른 컨트롤러 내의 직접 상호 작용을 통한 이벤트 처리 모듈과 컴포넌트 간(Inter­component events)의 이벤트 처리의 예를 나타내고, 도 3b는 컴포넌트로 이벤트를 공급하는 이벤트 큐(Event queue)를 통해 처리되는 알림 이벤트(Notification events)의 예를 나타내며, 도 3c는 기본 프레임워크로 전달되는 메타 이벤트(Meta events)의 예를 나타낸다.More specifically, FIG. 3A shows an example of event processing of an event processing module and intercomponent events through direct interaction in a controller according to an embodiment of the present invention, and FIG. 3B shows an example of event processing (Notification events) processed through an event queue, and FIG. 3C shows an example of meta events transmitted to the basic framework.

도 3을 참조하면, 트리거 이벤트(Trigger events)에 따른 알림 이벤트가 발생하는 경우, 이벤트 처리 모듈은 이벤트 내의 오리지널 데이터를 저장하고, 트리거되는 컴포넌트를 대신하여 데이터 관리를 수행할 수 있다. 또한, 이벤트 내의 데이터를 체인 내의 각 컴포넌트로 전달할 수 있다. Referring to FIG. 3, when a notification event occurs according to a trigger event, the event processing module stores the original data in the event and performs data management on behalf of the triggered component. In addition, data in the event can be delivered to each component in the chain.

또한, 본 발명의 실시예에 따른 컨트롤러는 요청 및 응답 이벤트의 교환을 통해 발생하는 컴포넌트 간의 통신에서, 이벤트 브로커 모듈(Event broker)을 이용하여 컴포넌트 간의 기능 종속성을 대체할 수 있다. 예를 들면, 상기 컴포넌트는 이벤트 처리 모듈에 대한 요청 이벤트(request event )만 트리거할 수 있다. In addition, the controller according to an exemplary embodiment of the present invention can substitute functional dependencies between components using an event broker in communication between components generated through exchange of request and response events. For example, the component may trigger only a request event to an event handling module.

상기 메타 이벤트는 기본 프레임 워크(Base framework)가 구성요소(Component)를 활성화 또는 비활성화하도록 할 수 있다. 실시예에 따라서, 메타 이벤트는 비정상적인 이벤트 생성 패턴이 발생하는 경우, 사용자의 개입을 요청할 수 있다. The meta-event may cause the base framework to activate or deactivate a component. According to an embodiment, the meta-event may request user intervention if an abnormal event generation pattern occurs.

도 4는 본 발명의 다른 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다.FIG. 4 is a view for explaining an event processing mechanism according to another embodiment of the present invention.

보다 구체적으로, 도 4는 본 발명의 다른 실시예에 따른 컨트롤러 내의 순차적 전달 또는 병렬적 전달에 기반하여 컴포넌트에 이벤트를 전달하는 예를 도시한 것이다. More specifically, FIG. 4 illustrates an example of delivering an event to a component based on sequential delivery or parallel delivery within a controller according to another embodiment of the present invention.

예를 들면, 본 발명의 다른 실시예에 따른 컨트롤러는 컴포넌트의 역할에 기반하여 컴포넌트의 이벤트 전달을 우선 수행하고, 상위 권한을 가진 컴포넌트로 이벤트를 전달하며, 이후 병렬적 또는 순차적으로 전달할 수 있는 컴포넌트를 평가하여 문맥상 의존성을 점검할 수 있다. 이에 따라서, 컨트롤러는 종속 컴포넌트가 독립 컴포넌트의 이벤트 처리를 수행하도록 시퀀싱을 부과하여 조정된 이벤트 체인(Event chain)을 처리할 수 있다. For example, the controller according to another exemplary embodiment of the present invention may perform the event forwarding of the component based on the role of the component, deliver the event to the component having the higher authority, and then transmit the event in parallel or sequentially Can be evaluated to check context dependency. Accordingly, the controller can process the adjusted event chain by imposing sequencing on the dependent component to perform event processing of the independent component.

여기서, 순차적 전달은 컴포넌트에 필터 기준 일치와 같은 이벤트에 관해 내부적으로 정의된 결정을 기반으로 이벤트 체인을 잠재적으로 종료할 수 있는 권한이 컴포넌트에 부여되었을 때 발생할 수 있다. 또한, 병렬적 전달은 컴포넌트의 이벤트에 대한 반응이 다른 컴포넌트에게 영향을 미치지 않을 때 적용 가능할 수 있다. Here, sequential delivery can occur when a component is granted the right to potentially terminate an event chain based on internally defined decisions about an event, such as a filter criteria match. In addition, parallel propagation may be applicable when the response of a component to an event does not affect other components.

도 5는 본 발명의 또 다른 실시예에 따른 이벤트 처리 매커니즘을 설명하기 위해 도시한 것이다.FIG. 5 is a view for explaining an event processing mechanism according to another embodiment of the present invention.

보다 구체적으로, 도 5는 본 발명의 또 다른 실시예에 따른 컨트롤러 내의 정책에 기반하여 이벤트를 배포하는 예를 도시한 것이다. More specifically, FIG. 5 illustrates an example of distributing an event based on a policy in a controller according to another embodiment of the present invention.

도 5를 참조하면, 운영자(관리자 또는 사용자)가 ODPs(관리자 정의 정책, operator­defined policies)를 정의하는 경우, 본 발명의 또 다른 실시예에 따른 컨트롤러는 대상 컴포넌트의 정책 테이블(Policy table in a component)를 업데이트할 수 있다.5, when an operator (administrator or user) defines ODPs (operator-defined policies), the controller according to another embodiment of the present invention includes a policy table in a component, Can be updated.

이후, 이벤트 처리 모듈은 발생하는 이벤트와 정책 테이블 내의 정책과 일치 여부를 판단하고, 매칭되는 경우 해당 이벤트를 작업 풀(Worker pool)로 진입시키며, 매칭되지 않은 경우 해당 이벤트를 받아들이지 않는다. Thereafter, the event processing module judges whether the generated event matches a policy in the policy table, and when the event matches, enters the event into a worker pool. If the event does not match, the event processing module does not accept the event.

여기서, ODPs는 데이터 패스 ID(DataPath ID), 인­포트(in­port, 또는 스위치의 수신 포트), 프로토콜(Proto), 소스/대상 IP 주소(Src IP or Dst IP) 및 포트(Sport or Dport) 등 7가지 필드로 구성될 수 있다. Here, the ODPs include data path IDs, inports, ports, protocol (Proto), source / destination IP addresses (Src IP or Dst IP), and ports (Sport or Dport) ≪ / RTI >

도 6은 본 발명의 실시예에 따른 컨트롤러의 동작 방법의 흐름도를 도시한 것이다.6 is a flowchart of an operation method of a controller according to an embodiment of the present invention.

도 6에 도시된 방법은 도 2에 도시된 본 발명의 실시예에 따른 소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러에 의해 수행될 수 있다.The method shown in FIG. 6 may be performed by a controller including a plurality of components in a software defined network environment according to the embodiment of the present invention shown in FIG.

도 6을 참조하면, 단계 610에서 네트워크 장비로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소에 저장한다.Referring to FIG. 6, in step 610, data included in a notification event generated from a network device is stored in a shared storage.

예를 들면, 단계 610은 네트워크 장비로부터 수신한 메시지를 포함하는 알림 이벤트를 생성하는 단계(미도시), 생성된 알림 이벤트를 수신하여 이벤트 처리 모듈로 전송하는 단계(미도시), 및 이벤트 처리 모듈로 수신되는 알림 이벤트에 포함된 데이터를 공유 저장소에 저장하는 단계(미도시)를 포함하는 단계일 수 있다.For example, in operation 610, a notification event including a message received from a network device is generated (not shown), a generated notification event is received and transmitted to an event processing module (not shown) (Not shown) of storing the data included in the notification event received in the shared storage.

실시예에 따라서, 이벤트 처리 모듈은 복수의 컴포넌트에게 직접적으로 이벤트 포함된 데이터를 전달할 수 있으며, 이벤트 브로커 모듈을 통해 전달할 수도 있다. According to an embodiment, the event processing module may directly transmit event-containing data to a plurality of components or may be delivered through an event broker module.

단계 620에서 알림 이벤트에 기초하여 이벤트 브로커 모듈을 통해 저장된 데이터를 컴포넌트로 송신한다.In step 620, the data stored through the event broker module is transmitted to the component based on the notification event.

이벤트 브로커 모듈은 이벤트를 기반으로 동작하는 본 발명의 실시예에 따른 컨트롤러에서 각 컴포넌트에서 생성된 이벤트를 수신하고, 이를 전체 모듈에 전송하는 역할을 한다. 따라서, 컨트롤러에 포함된 컴포넌트는 컴포넌트 간에 직접 메시지를 교환하지 않고, 이벤트 브로커 모듈을 통해 메시지를 교환할 수 있다. The event broker module receives an event generated by each component in the controller according to an embodiment of the present invention that operates based on an event, and transmits the event to the entire module. Therefore, the components included in the controller can exchange messages through the event broker module without exchanging messages directly between the components.

단계 630에서 트래픽 정보, 이벤트 통계 및 각 컴포넌트의 기능에 따른 이벤트 처리 매커니즘이 적용된 데이터를 수신한다. In operation 630, data including traffic information, event statistics, and event processing mechanisms according to the functions of the respective components are received.

예를 들면, 컴포넌트는 알림 이벤트에 따른 이벤트 처리 매커니즘이 적용된 데이터를 수신할 수 있다.For example, the component may receive data to which an event handling mechanism based on a notification event is applied.

본 발명의 실시예에 따른 컨트롤러의 동작 방법은 네트워크 장비에 연결된 복수의 노드 각각으로부터 트래픽 정보를 수집하는 단계(미도시), 사용자로부터 네트워크 관리에 필요한 요구사항을 입력받는 단계(미도시) 및 요구사항, 리소스 사용량 및 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 저장하여 유지하는 단계(미도시)를 더 포함할 수 있다. A method of operating a controller according to an embodiment of the present invention includes collecting traffic information from each of a plurality of nodes connected to a network device (not shown), inputting requirements (not shown) (Not shown) for storing and maintaining optimized module combination information according to the function, resource usage, and functional analysis of each component.

상기 이벤트 처리 매커니즘은 이벤트 처리 모듈에서의 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)를 포함하는 것일 수 있다.The event processing mechanism may include meta events for dynamically activating or deactivating a component based on event statistics in an event processing module, or configuring a specific event to be transmitted to a specific component to be filtered.

또한, 이벤트 처리 매커니즘은 트래픽 정보에 기반하여 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)을 포함할 수 있으며, 모듈 조합 정보에 따른 이벤트 분배 방식을 포함할 수도 있다. In addition, the event processing mechanism may include sequential delivery of stored data or event chaining of parallel delivery based on traffic information, and may include an event distribution method based on module combination information.

도 7은 본 발명의 다른 실시예에 따른 컨트롤러의 동작 방법의 흐름도를 도시한 것이다.7 is a flowchart illustrating a method of operating a controller according to another embodiment of the present invention.

도 7을 참조하면, 컨트롤러(100)는 네트워크 장비(200)로부터 메시지를 수신(710)하고, 네트워크 장비로부터 수신한 메시지를 포함하는 이벤트를 생성한다(720). 이벤트를 생성하는 단계(720)는 네트워크 장비로부터 수신한 메시지를 포함하는 데이터 필드를 생성하고, 데이터 필드에 대한 정보를 포함하는 이벤트타입 필드를 생성하고, 데이터 필드 및 이벤트타입 필드를 포함하는 이벤트를 생성하는 단계일 수 있다. Referring to FIG. 7, the controller 100 receives a message 710 from the network device 200 and generates an event 720 including a message received from the network device. An event generating step 720 includes generating a data field including a message received from the network equipment, generating an event type field including information on the data field, and generating an event including a data field and an event type field Lt; / RTI >

이후, 이벤트를 생성한 입출력 모듈(410)은 이벤트를 이벤트 처리 모듈(110)로 전송(730)하며, 이벤트 처리 모듈(110)은 이벤트 내의 데이터를 공유 저장소에 저장한다(740).The input / output module 410 that generated the event transmits the event to the event processing module 110 (730), and the event processing module 110 stores the data in the event in the shared storage (740).

이후, 이벤트 처리 모듈(110)은 이벤트 내 데이터를 이벤트 브로커 모듈(120)로 송신한다(750). 이벤트 브로커 모듈(120)은 이벤트 처리 매커니즘에 따른 전송을 판단(760)하여 특정 컴포넌트(10)로 데이터를 전달(770)한다. Then, the event processing module 110 transmits the data in the event to the event broker module 120 (750). The event broker module 120 determines 760 the transmission according to the event processing mechanism and delivers 770 the data to the specific component 10.

예를 들면, 이벤트 처리 모듈(110)은 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트(10)로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트의 이벤트 처리 매커니즘에 따른 전송을 수행할 수 있다. For example, the event processing module 110 may perform transmission according to an event processing mechanism of a meta event that is configured to dynamically activate or deactivate a component based on event statistics, or to filter specific events to be transmitted to a specific component 10 Can be performed.

다른 예로, 이벤트 처리 모듈(110)은 트래픽 정보에 기반하여 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝의 이벤트 처리 매커니즘에 따른 전송을 수행할 수 있다. In another example, the event processing module 110 may perform transmission according to the event processing mechanism of event chaining of sequential delivery of data or parallel delivery of stored data based on traffic information.

또 다른 예로, 이벤트 처리 모듈(110)은 정책 테이블에 기반하여 이벤트 분배 방식의 이벤트 처리 매커니즘에 따른 전송을 수행할 수 있다. As another example, the event processing module 110 may perform transmission according to the event processing mechanism of the event distribution method based on the policy table.

도 8은 본 발명의 또 다른 실시예에 따른 컨트롤러의 동작 방법의 흐름도를 도시한 것이다.8 is a flowchart illustrating a method of operating a controller according to another embodiment of the present invention.

도 8을 참조하면, 본 발명의 또 다른 실시예에 따른 컨트롤러의 동작 방법은 다음과 같다. 컨트롤러는 사용자로부터 네트워크 관리에 필요한 요구사항을 입력받고(810), 요구사항, 리소스 사용량 및 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 정책 테이블에 생성 및 포함(820)할 수 있다. 또한, 사용자의 입력에 따른 새로운 정보를 정책 테이블에 업데이트(830)하고, 모듈 조합 정보에 대응되는 하나 이상의 컴포넌트를 활성화(840)할 수 있다. 이 경우, 활성화된 컴포넌트에 의해서만 이루어질 수 있다. Referring to FIG. 8, the operation method of the controller according to another embodiment of the present invention is as follows. The controller receives the requirements for the network management from the user (810), and generates and stores 820 the optimized module combination information according to the requirements, the resource usage, and the function analysis of each component in the policy table. In addition, new information according to the user's input may be updated 830 in the policy table, and one or more components corresponding to the module combination information may be activated 840. In this case, it can only be done by the activated component.

또한, 컨트롤러는 사용자로부터 제어 장치 모드를 입력 받는 경우(850), 제어 장치 모드에 대응되는 하나 이상의 컴포넌트(또는 모듈)와 필수 모듈을 활성화할 수 있다(860).In addition, if the controller receives the controller mode from the user (850), the controller may activate (860) one or more components (or modules) corresponding to the controller mode and the required module.

실시예에 따라서, 제어 장치 모드로는 확장성 강화 모드, 성능 강화 모드, 기밀성 강화 모드, 데이터 무결성 보장 모드, 사용성 강화 모드가 있을 수 있으며, 각 모드 별로 활성화되는 하나 이상의 컴포넌트 및 필수 모듈에 대한 설명은 컨트롤러(100)에 대한 설명과 동일하므로 생략한다. Depending on the embodiment, the control device modes may include a scalability enhancement mode, a performance enhancement mode, a confidentiality enhancement mode, a data integrity assurance mode, and a usability enhancement mode, Are the same as those of the controller 100, and therefore will not be described.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD­ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기­광 매체(magneto­optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CDROMs and DVDs, magnetic optical media such as floppy disks, magnetooptical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

100: 컨트롤러(SDN 컨트롤러)
200: 오픈플로우 스위치, 네트워크 장비
300: 호스트
100: Controller (SDN controller)
200: Open flow switch, network equipment
300: Host

Claims (18)

소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러에 있어서,
네트워크 장비로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소에 저장하고, 상기 알림 이벤트 및 상기 저장된 데이터를 전달하는 이벤트 처리 모듈;
상기 알림 이벤트에 기초하여 상기 저장된 데이터를 상기 컴포넌트로 송신하는 이벤트 브로커 모듈; 및
트래픽 정보, 이벤트 통계 및 각 컴포넌트의 기능에 따른 이벤트 처리 매커니즘을 제공하도록 제어하는 제어 모듈
을 포함하는 컨트롤러.
A controller comprising a plurality of components in a software defined network environment,
An event processing module for storing data included in a notification event generated from a network device in a shared storage, and for transmitting the notification event and the stored data;
An event broker module that transmits the stored data to the component based on the notification event; And
A control module for controlling to provide traffic information, event statistics, and an event handling mechanism according to the function of each component
/ RTI >
제1항에 있어서,
상기 네트워크 장비로부터 수신한 메시지를 포함하는 상기 알림 이벤트를 생성하고, 상기 생성된 알림 이벤트를 상기 이벤트 처리 모듈로 전송하는 입출력 모듈; 및
상기 네트워크 장비에 연결된 복수의 노드 각각으로부터 상기 트래픽 정보를 수집하는 정보 수집 모듈
을 더 포함하는 컨트롤러.
The method according to claim 1,
An input / output module for generating the notification event including a message received from the network device and transmitting the generated notification event to the event processing module; And
An information collecting module for collecting the traffic information from each of a plurality of nodes connected to the network equipment;
Lt; / RTI >
제1항에 있어서,
상기 제어 모듈은
상기 이벤트 처리 모듈에서의 상기 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)의 상기 이벤트 처리 매커니즘이 수행되도록 제어하는 컨트롤러.
The method according to claim 1,
The control module
A controller that controls the event processing mechanism of meta events to be performed to dynamically activate or deactivate a component based on the event statistics in the event processing module or to filter specific events transmitted to a specific component, .
제3항에 있어서,
상기 이벤트 통계는
이벤트 볼륨, 이벤트 소비(consumption) 및 생산(production)에 관한 컴포넌트 레벨 통계, 및 이벤트 유형 분산 통계를 포함하는 것을 특징으로 하는 컨트롤러.
The method of claim 3,
The event statistics
Event volume, component level statistics on event consumption and production, and event type distribution statistics.
제1항에 있어서,
상기 제어 모듈은
상기 트래픽 정보에 기반하여 상기 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)의 상기 이벤트 처리 매커니즘이 수행되도록 제어하는 컨트롤러.
The method according to claim 1,
The control module
And controls the event processing mechanism of event chaining of sequential delivery or parallel delivery of the stored data to be performed based on the traffic information.
제5항에 있어서,
상기 이벤트 체이닝은
이벤트를 처리하는 상기 복수의 컴포넌트 간의 처리 순서 및 방식을 결정하는 것을 특징으로 하는 컨트롤러.
6. The method of claim 5,
The event chaining
And determines a processing order and a method among the plurality of components that process the event.
제1항에 있어서,
사용자로부터 네트워크 관리에 필요한 요구사항을 입력받는 입력 모듈; 및
상기 요구사항, 리소스 사용량 및 상기 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 포함하는 정책 테이블
을 더 포함하는 컨트롤러.
The method according to claim 1,
An input module for receiving requirements for network management from a user; And
A policy table including the requirements, resource usage, and optimized module combination information according to the function analysis of each component
Lt; / RTI >
제7항에 있어서,
상기 제어 모듈은
상기 정책 테이블에 기반하여 이벤트 분배 방식의 상기 이벤트 처리 매커니즘이 수행되도록 제어하는 것을 특징으로 하는 컨트롤러.
8. The method of claim 7,
The control module
And controls the event processing mechanism of the event distribution method to be performed based on the policy table.
제7항에 있어서,
상기 제어 모듈은
상기 정책 테이블에 기반하여 상기 발생되는 알림 이벤트에 대한 일치 여부를 판단하고, 판단 결과로부터 상기 알림 이벤트에 포함된 데이터의 전달을 제어하는 것을 특징으로 하는 컨트롤러.
8. The method of claim 7,
The control module
Determines whether the generated notification event is matched based on the policy table, and controls delivery of data included in the notification event based on the determination result.
제7항에 있어서,
상기 제어 모듈은
상기 입력 모듈에 의해 수신되는 ODPs(operator­defined policies)의 사용자 정의에 기반하여 상기 정책 테이블을 업데이트하는 것을 특징으로 하는 컨트롤러.
8. The method of claim 7,
The control module
And updates the policy table based on a user definition of operatordefined policies (ODPs) received by the input module.
소프트웨어 정의 네트워크 환경에서 복수의 컴포넌트를 포함하는 컨트롤러의 동작 방법에 있어서,
네트워크 장비로부터 발생되는 알림 이벤트(Notification events)에 포함된 데이터를 공유 저장소에 저장하는 단계;
상기 알림 이벤트에 기초하여 이벤트 브로커 모듈을 통해 상기 저장된 데이터를 상기 컴포넌트로 송신하는 단계; 및
트래픽 정보, 이벤트 통계 및 각 컴포넌트의 기능에 따른 이벤트 처리 매커니즘이 적용된 상기 데이터를 수신하는 단계
를 포함하는 컨트롤러 동작 방법.
A method of operating a controller including a plurality of components in a software defined network environment,
Storing data included in notification events generated from network equipment in a shared storage;
Transmitting the stored data to the component via an event broker module based on the notification event; And
Receiving the data to which the event processing mechanism based on the traffic information, the event statistics, and the function of each component is applied
Lt; / RTI >
제11항에 있어서,
상기 데이터를 공유 저장소에 저장하는 단계는
상기 네트워크 장비로부터 수신한 메시지를 포함하는 상기 알림 이벤트를 생성하는 단계;
상기 생성된 알림 이벤트를 수신하여 이벤트 처리 모듈로 전송하는 단계; 및
상기 이벤트 처리 모듈로 수신되는 상기 알림 이벤트에 포함된 데이터를 상기 공유 저장소에 저장하는 단계
를 포함하는 컨트롤러 동작 방법.
12. The method of claim 11,
The step of storing the data in a shared repository
Generating the notification event including a message received from the network equipment;
Receiving the generated notification event and transmitting the received notification event to the event processing module; And
Storing the data included in the notification event received by the event processing module in the shared storage
Lt; / RTI >
제12항에 있어서,
상기 이벤트 처리 매커니즘은
상기 이벤트 처리 모듈에서의 상기 이벤트 통계에 기반하여 컴포넌트를 동적으로 활성화 또는 비활성화하거나, 특정 컴포넌트로 전달되는 특정 이벤트를 필터링하도록 구성하는 메타 이벤트(Meta events)를 포함하는 것을 특징으로 하는 컨트롤러 동작 방법.
13. The method of claim 12,
The event handling mechanism
Wherein the event processing module includes meta events for dynamically activating or deactivating a component based on the event statistics in the event processing module or filtering a specific event to be transmitted to a specific component.
제11항에 있어서,
상기 네트워크 장비에 연결된 복수의 노드 각각으로부터 상기 트래픽 정보를 수집하는 단계
를 더 포함하는 컨트롤러 동작 방법.
12. The method of claim 11,
Collecting the traffic information from each of a plurality of nodes connected to the network equipment
≪ / RTI >
제14항에 있어서,
상기 이벤트 처리 매커니즘은
상기 트래픽 정보에 기반하여 상기 저장된 데이터의 순차적 전달 또는 병렬적 전달의 이벤트 체이닝(event chaining)을 포함하는 것을 특징으로 하는 컨트롤러 동작 방법.
15. The method of claim 14,
The event handling mechanism
And event chaining of the sequential delivery or parallel delivery of the stored data based on the traffic information.
제11항에 있어서,
사용자로부터 네트워크 관리에 필요한 요구사항을 입력받는 단계; 및
상기 요구사항, 리소스 사용량 및 상기 각 컴포넌트의 기능 분석에 따른 최적화된 모듈 조합 정보를 저장하여 유지하는 단계
를 더 포함하는 컨트롤러 동작 방법.
12. The method of claim 11,
Receiving a request for a network management from a user; And
Storing and maintaining optimized module combination information according to the requirements, resource usage, and functional analysis of each component
≪ / RTI >
제16항에 있어서,
상기 이벤트 처리 매커니즘은
상기 모듈 조합 정보에 따른 이벤트 분배 방식을 포함하는 것을 특징으로 하는 컨트롤러 동작 방법.
17. The method of claim 16,
The event handling mechanism
And an event distribution method based on the module combination information.
제11항 내지 제17항 중 어느 한 항의 방법을 수행하기 위하여 컴퓨터로 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.18. A computer program stored in a computer-readable medium for performing the method of any one of claims 11 to 17.
KR1020170046456A 2017-04-11 2017-04-11 Controller in software defined networking environment and operating method thereof KR101894660B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170046456A KR101894660B1 (en) 2017-04-11 2017-04-11 Controller in software defined networking environment and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170046456A KR101894660B1 (en) 2017-04-11 2017-04-11 Controller in software defined networking environment and operating method thereof

Publications (1)

Publication Number Publication Date
KR101894660B1 true KR101894660B1 (en) 2018-09-05

Family

ID=63594554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170046456A KR101894660B1 (en) 2017-04-11 2017-04-11 Controller in software defined networking environment and operating method thereof

Country Status (1)

Country Link
KR (1) KR101894660B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101491698B1 (en) 2014-01-20 2015-02-11 아토리서치(주) Control apparatus and method thereof in software defined network
KR20160012660A (en) 2014-07-25 2016-02-03 한국전자통신연구원 Apparatus and method for controlling network in software defined networking
KR20160090485A (en) * 2015-01-22 2016-08-01 아토리서치(주) Method and apparatus for operating distributed controllers of software defined network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101491698B1 (en) 2014-01-20 2015-02-11 아토리서치(주) Control apparatus and method thereof in software defined network
KR20160012660A (en) 2014-07-25 2016-02-03 한국전자통신연구원 Apparatus and method for controlling network in software defined networking
KR20160090485A (en) * 2015-01-22 2016-08-01 아토리서치(주) Method and apparatus for operating distributed controllers of software defined network

Similar Documents

Publication Publication Date Title
JP4822713B2 (en) Method and apparatus for operating an open API network including a proxy
KR101572771B1 (en) System and methods for controlling network traffic through virtual switches
EP3337097B1 (en) Network element upgrading method and device
US7363353B2 (en) Content service aggregation device for a data center
JP5976942B2 (en) System and method for providing policy-based data center network automation
US8554980B2 (en) Triggered notification
WO2016013200A1 (en) Information processing system and network resource management method
US20160219076A1 (en) Hardware trust for integrated network function virtualization (nfv) and software defined network (sdn) systems
EP3295652B1 (en) Methods, systems, and apparatuses of service provisioning for resource management in a constrained environment
US20170048157A1 (en) Intelligent Software-Defined Networking Based Service Paths
US20200167342A1 (en) System for Secure Software Defined Networking Based on Block-Chain and Method Thereof
EP3186919B1 (en) Network service aware routers, and applications thereof
CN111615128A (en) Multi-access edge computing method, platform and system
CN105939267B (en) Outband management method and device
US20130275620A1 (en) Communication system, control apparatus, communication method, and program
CN112448987A (en) Fusing degradation triggering method and system and storage medium
CN109936505B (en) Method and apparatus in data-centric software-defined networks
KR101894660B1 (en) Controller in software defined networking environment and operating method thereof
KR101747032B1 (en) Modular controller in software defined networking environment and operating method thereof
CN107465582B (en) Data sending method, device and system, physical home gateway and access node
US10659351B2 (en) Dataflow consistency verification
JP2003158544A (en) Method and apparatus for programmable network router and switch
JP5523599B1 (en) Network system resource management system and method
US10931576B2 (en) Software defined networking system for distinguishing packet-in messages
KR20050067413A (en) Method and apparatus for a service integration system

Legal Events

Date Code Title Description
GRNT Written decision to grant