KR101712168B1 - Method for controling packet-in message, switch and controller thereof - Google Patents

Method for controling packet-in message, switch and controller thereof Download PDF

Info

Publication number
KR101712168B1
KR101712168B1 KR1020150118969A KR20150118969A KR101712168B1 KR 101712168 B1 KR101712168 B1 KR 101712168B1 KR 1020150118969 A KR1020150118969 A KR 1020150118969A KR 20150118969 A KR20150118969 A KR 20150118969A KR 101712168 B1 KR101712168 B1 KR 101712168B1
Authority
KR
South Korea
Prior art keywords
packet
message
address
flow
switch
Prior art date
Application number
KR1020150118969A
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 KR1020150118969A priority Critical patent/KR101712168B1/en
Application granted granted Critical
Publication of KR101712168B1 publication Critical patent/KR101712168B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications

Abstract

Disclosed are a packet input message control method, and a switch and a controller performing the same. The packet input message control method by a switch in software-defined network comprises: a step that the switch determines whether a flow entry matching with a packet received from a place of dispatch exists; a step of determining whether usage of a central processing unit (CPU) is less than a critical value if the matching flow entry does not exist; and a step of generating a packet input message for the received packet and transmitting the generated message to a controller if the CPU is less than the critical value.

Description

패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러{METHOD FOR CONTROLING PACKET-IN MESSAGE, SWITCH AND CONTROLLER THEREOF}[0001] METHOD FOR CONTROLLING PACKET IN MESSAGE, SWITCH AND CONTROLLER THEREOF [0002]

본 발명은 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러에 관한 것으로서, 특히, 소프트웨어 정의 네트워크(Software Defined Network, SDN) 기반 네트워크에서 패킷 입력(PACKET_IN) 메시지 제어를 통한 스위치 및 컨트롤러의 안정성을 확보하는 기술에 관한 것이다.[0001] The present invention relates to a packet input message control method, a switch and a controller for performing the same, and more particularly, to a switch and a controller through packet input (PACKET_IN) message control in a Software Defined Network (SDN) Lt; / RTI >

오픈플로우(OpenFlow) 기술은 스위치의 고비용 문제를 해결하면서 사용자 또는 개발자에게 개방형 표준 인터페이스를 제공하기 위해 출현하였다. OpenFlow technology has emerged to provide an open standard interface to users or developers while addressing the high cost of the switch.

오픈플로우 기술은 네트워크 스위치의 패킷 포워딩 기능과 제어 기능을 분리하고, 두 기능 간의 통신을 위한 프로토콜을 제공함으로써, 외부 제어장치에 의하여 구동되는 소프트웨어가 장비 제조사에 무관하게 스위치 내의 패킷 경로를 결정할 수 있다.The open flow technology separates the packet forwarding and control functions of the network switch and provides a protocol for communication between the two functions so that the software driven by the external control device can determine the packet path in the switch regardless of the equipment manufacturer .

오픈플로우 시스템은 스위치(Switch)와 컨트롤러(Controller)를 포함하며, 스위치와 컨트롤러간에는 표준화된 오픈플로우 프로토콜을 사용하도록 구성하여 현재의 네트워크 기능을 수행하도록 구성한 것이 소프트웨어 정의 네트워크(Software Defined Network, 이하, SDN 이라 약칭함) 망이다.An open flow system includes a switch and a controller. The open flow system is configured to use a standardized open flow protocol between a switch and a controller to perform a current network function. A software defined network SDN) network.

일반적인 SDN에서의 네트워크 통신은 스위치가 새로운 패킷을 수신하면, 플로우 엔트리 테이블에 해당 패킷에 대한 처리가 정의되지 않은 경우 컨트롤러에게 해당 패킷의 일부를 포함한 패킷 입력(PACKET_IN) 메시지(OpenFlow Encapsulation된 Packet)를 컨트롤러로 전달한다. 메시지를 전달받은 컨트롤러는 패킷 입력(PACKET_IN)메시지를 분석하여 이를 처리하는 액션(Action)을 정의 한 후 이를 포함한 플로우 수정(FLOW_MOD) 메시지를 생성하여 스위치에게 전달한다. In normal SDN network communication, when a new packet is received by the switch and processing for the packet is not defined in the flow entry table, a packet input (PACKET_IN) message (OpenFlow Encapsulated Packet) including a part of the packet is sent to the controller To the controller. After receiving the message, the controller parses the packet input (PACKET_IN) message, defines an action to process it, generates a flow modification (FLOW_MOD) message including the action, and transmits the message to the switch.

스위치는 컨트롤러로부터 전달받은 플로우 수정(FLOW_MOD) 메시지에 따라 플로우 테이블(Flow Table)을 생성한다. 이후, 플로우 테이블에 정의된 정보와 동일한 필드 값(예, 인입 포트, MAC 주소, IP 주소 등)이 포함된 패킷이 수신되면 플로우 테이블에 정의된 액션을 따라 패킷을 처리한다.The switch creates a flow table according to the flow modification (FLOW_MOD) message received from the controller. Thereafter, when a packet including the same field value as the information defined in the flow table (for example, an incoming port, a MAC address, an IP address, etc.) is received, the packet is processed according to the action defined in the flow table.

그런데, 스위치에 인입되는 새로운 패킷(즉, 플로우 테이블에 저장된 정보와 상이한 필드 값들을 갖는 패킷)이 대량으로 발생할 경우, 스위치의 CPU 부하는 급격히 증가하여 다른 서비스 플로우들이 영향을 받을 수 있게 되어 서비스 장애로 이어질 수 있는 상황에 직면할 수도 있다. However, when a large number of new packets (that is, packets having different field values from the information stored in the flow table) are input to the switch, the CPU load of the switch is rapidly increased, so that other service flows may be affected, You may face a situation that could lead to

또한, 과도한 패킷 입력(PACKET_IN) 메시지를 컨트롤러가 수신하게 됨으로써 SDN 구조에서 중요한 역할을 하는 컨트롤러의 성능에도 영향을 미치게 된다. In addition, since the controller receives an excessive packet input (PACKET_IN) message, it also affects the performance of a controller that plays an important role in the SDN structure.

또한, 디도스(DDoS)와 같이 다중 클라이언트에서 발생되는 패킷들은 앞서 언급한 이유로 인해 모두 패킷 입력(PACKET_IN) 메시지로 들어오므로, 패킷 입력(PACKET_IN) 메시지들을 효과적으로 제어해야할 필요가 있다.In addition, packets generated from multiple clients such as DDoS are all input into a packet input (PACKET_IN) message for the reason mentioned above, so that it is necessary to effectively control packet input (PACKET_IN) messages.

따라서, 본 발명이 이루고자 하는 기술적 과제는 스위치의 CPU(Central Processing Unit) 사용량 및 트래픽양에 기초하여 스위치의 패킷 입력(PACKET_IN) 메시지의 제한 개수를 제어하는 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러를 제공하는 것이다.SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a packet input message control method for controlling a limited number of packet input (PACKET_IN) messages of a switch based on a CPU (Central Processing Unit) usage amount and a traffic amount of a switch, Controller.

본 발명의 하나의 특징에 따르면, 패킷 입력 메시지 제어 방법은 소프트웨어 정의 네트워크에서 스위치가 패킷 입력 메시지를 제어하는 방법으로서, 상기 스위치가 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하는 단계, 상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 단계, 그리고 상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 단계를 포함한다. According to one aspect of the present invention, a method for controlling a packet input message includes the steps of: determining whether a switch has a flow entry matching a received packet received from a source, Determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist, and generating a packet input message for the received packet if the matched value is less than the threshold, .

상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,Prior to determining whether the matched flow entry is present,

디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하는 단계를 더 포함하고,Further comprising setting a certain number of packets per second (PPS) per default unit,

상기 전송하는 단계는, Wherein the transmitting comprises:

상기 특정 개수 이내에서 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할 수 있다.And generating and transmitting a packet input message packet within the specific number.

상기 CPU 사용량이 임계치 미만인지 판단하는 단계 이후,After determining whether the CPU usage is below a threshold,

상기 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 단계를 더 포함하고,Reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage,

상기 전송하는 단계는,Wherein the transmitting comprises:

상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할수 있다.And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.

상기 특정 개수로 설정하는 단계 이후,After the setting of the specific number,

상기 CPU 사용량 및 트래픽양을 모니터링하는 단계, 모니터링한 상기 CPU 사용량 및 트래픽양을 상기 컨트롤러에게 보고하는 단계, 그리고 상기 CPU 사용량이 임계치를 초과할 경우 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계를 더 포함하고,Monitoring the amount of CPU usage and amount of traffic, reporting the monitored CPU usage and amount of traffic to the controller, and receiving a predetermined number of packets per second reset unit when the CPU usage exceeds a threshold value Further comprising:

상기 전송하는 단계는,Wherein the transmitting comprises:

상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함할 수 있다.And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.

상기 보고하는 단계는,Wherein said reporting comprises:

SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 상기 CPU 사용량 및 상기 트래픽양을 보고할 수 있다.And can report the CPU usage amount and the traffic amount to the controller through SNMP (Simple Network Management Protocol).

상기 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계는,Wherein the step of receiving from the controller a predetermined number of packets per second,

새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신할 수 있다.A predetermined number of packets per second can be received by using the newly defined open flow message or a newly defined application programming interface (API).

상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,Prior to determining whether the matched flow entry is present,

상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계, 그리고 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 단계를 더 포함하고,Determining whether an IP address of the received packet is included in a blacklist IP address, and discarding the received packet if the IP address is included in the blacklist IP address,

상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계는,Wherein determining whether the matched flow entry is present comprises:

상기 수신 패킷의 IP 주소가 상기 블랙리스트 IP 주소에 포함되지 않는 경우, 상기 수신 패킷에 매치되는 플로우 엔트리의 존재 여부를 판단할 수 있다.If the IP address of the received packet is not included in the black list IP address, it is possible to determine whether there is a flow entry matching the received packet.

상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계 이전에,Prior to determining whether the IP address of the received packet is included in the blacklisted IP address,

상기 컨트롤러에게 패킷 입력 메시지를 전송하는 단계, 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고 상기 플로우 수정 메시지에 따른 플로우 엔트리를 설정하는 단계를 더 포함하고,Transmitting a packet input message to the controller, receiving a flow modification message in which an action for blocking a packet having an IP address included in the black list is defined, and setting a flow entry according to the flow modification message Further included,

상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계는,Wherein the step of determining whether the IP address of the received packet is included in the blacklist IP address comprises:

상기 수신 패킷의 IP 주소가 상기 블랙리스트에 따른 플로우 엔트리에 매치되는지 판단할 수 있다.And determine whether the IP address of the received packet matches the flow entry according to the black list.

상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에, Prior to determining whether the matched flow entry is present,

상기 컨트롤러에게 수신 패킷에 대한 패킷 입력 메시지를 전송하는 단계, 상기 컨트롤러부터 상기 수신 패킷의 목적지 IP 주소를 가지는 패킷에 대해 정의된 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고 상기 플로우 수정 메시지에 따라 상기 액션이 포함된 플로우 엔트리를 등록하는 단계를 더 포함하고,Transmitting a packet input message for a received packet to the controller, receiving a flow modification message defining an action for limiting generation of a packet input message for a time defined for a packet having a destination IP address of the received packet from the controller And registering the flow entry including the action according to the flow modification message,

상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이후, After determining whether the matched flow entry exists,

발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 단계, 그리고 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하는 단계를 더 포함할 수 있다.Blocking generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the generation of the packet input message is defined and before the predetermined time has expired, And discarding the flow entry after the predetermined time has expired.

본 발명의 다른 특징에 따르면, 스위치는 소프트웨어 정의 네트워크의 스위치로서, 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하고, 존재하면 해당하는 플로우 엔트리에 따라 상기 수신 패킷을 처리하는 패킷 처리부, 상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 패킷 입력 메시지 제어부, 그리고 상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 메시지 처리부를 포함한다.According to another aspect of the present invention, there is provided a switch of a software defined network, comprising: a packet processor for determining whether there is a flow entry matched with a received packet received from a source and, if so, processing the received packet according to a corresponding flow entry; A packet input message controller for determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold if the matched flow entry does not exist, and a controller for generating a packet input message for controller Processing unit.

상기 패킷 입력 메시지 제어부는,Wherein the packet input message controller comprises:

디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하고, 상기 특정 개수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한할 수 있다.The number of packets per second (PPS) per default unit can be set to a specific number, and generation of the packet input message packet can be restricted within the specific number.

상기 스위치는 상기 CPU 사용량이 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 임계치 수신부를 더 포함하고,Wherein the switch further comprises a threshold receiver for reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage when the CPU usage is greater than or equal to a threshold,

상기 패킷 입력 메시지 제어부는,Wherein the packet input message controller comprises:

상기 재설정된 단위 초당 일정 패킷 수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한할 수 있다.The generation of the packet input message packet may be restricted within a predetermined number of packets per second of the reset unit.

상기 임계치 수신부는, Wherein the threshold value receiver comprises:

새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신할 수 있다.A predetermined number of packets per second can be received by using the newly defined open flow message or a newly defined application programming interface (API).

상기 임계치 수신부는,Wherein the threshold value receiver comprises:

특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N 배이상 많을 경우, 상기 특정 포트의 단위 초당 일정 패킷수를 1/N으로 재설정된 단위 초당 일정 패킷 수를 수신하여 상기 패킷 입력 메시지 제어부로 전달할 수 있다.When the amount of traffic of a specific port is N times or more than the amount of traffic of another port, a certain number of packets per second, which is reset to 1 / N, is transmitted to the packet input message controller have.

상기 임계치 수신부는,Wherein the threshold value receiver comprises:

포트 별로 서로 다르게 설정된 복수의 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신할 수 있다.It is possible to receive from the controller a predetermined number of packets per unit of a plurality of units set differently for each port.

같은 도메인의 스위치와 연결된 포트에 설정된 단위 초당 일정 패킷수가 외부와 연결된 포트에 설정된 단위 초당 일정 패킷수보다 낮게 설정될 수 있다.The number of packets per second set in a port connected to a switch in the same domain may be set lower than a predetermined number of packets per second set in a port connected to the outside.

상기 스위치는 상기 CPU 사용량 및 트래픽양을 모니터링하는 모니터링부, 그리고 상기 모니터링부로부터 제공받은 상기 CPU 사용량 및 트래픽양을 SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 보고하는 SNMP 통신부를 더 포함할 수 있다.The switch may further include a monitoring unit for monitoring the CPU usage amount and an amount of traffic, and an SNMP communication unit reporting the CPU usage amount and the traffic amount provided from the monitoring unit to the controller through SNMP (Simple Network Management Protocol) have.

상기 스위치는 블랙리스트 IP 주소가 포함된 플로우 엔트리를 저장하는 플로우 테이블 저장부, 그리고 플로우 수정 메시지에 따라 상기 블랙리스트가 포함된 플로우 엔트리를 플로우 테이블 저장부에 등록하는 플로우 테이블 제어부를 더 포함하고, Wherein the switch further comprises a flow table storing unit for storing a flow entry including a black list IP address and a flow table controller for registering the flow entry including the black list in a flow table storing unit according to the flow modification message,

상기 메시지 처리부는, The message processing unit,

상기 컨트롤러에게 패킷 입력 메시지를 전송하여 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하여 상기 플로우 테이블 제어부로 전달하고, Receiving a flow modification message defining an action for blocking a packet having an IP address included in the black list by transmitting a packet input message to the controller and delivering the flow modification message to the flow table controller,

상기 패킷 처리부는,The packet processing unit,

상기 플로우 테이블 저장부에 등록된 플로우 엔트리를 조회하여 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하고, 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기할 수 있다.It is possible to inquire the flow entry registered in the flow table storage unit to determine whether the IP address of the received packet is included in the blacklist IP address and discard the received packet if the IP address is included in the blacklist IP address.

상기 메시지 처리부는, The message processing unit,

상기 컨트롤러에게 패킷 입력 메시지를 전송하여 정해진 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하고, Receiving a flow modification message in which an action is defined for transmitting a packet input message to the controller to restrict generation of a packet input message for a predetermined time,

상기 플로우 테이블 제어부는, Wherein the flow table control unit comprises:

상기 플로우 수정 메시지에 따라 플로우 엔트리를 상기 플로우 테이블 저장부에 등록하며, 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하고,Registering the flow entry in the flow table storage unit according to the flow modification message, discarding the flow entry after the predetermined time has expired,

상기 패킷 처리부는, The packet processing unit,

발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단할 수 있다.It may block generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action of restricting the generation of the packet input message is defined and before the predetermined time has expired.

본 발명의 또 다른 특징에 따르면, 컨트롤러는 소프트웨어 정의 네트워크의 컨트롤러로서, 상기 소프트웨어 정의 네트워크의 스위치의 CPU(CENTRAL PROCESSING UNIT) 사용량을 모니터링하는 모니터링부, 그리고 상기 CPU 사용량이 정해진 임계치를 초과하면, 상기 스위치가 패킷 입력 메시지 생성 패킷을 제한하기 위한 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 재설정하여 상기 스위치로 제공하는 임계치 설정부를 포함한다. According to another aspect of the present invention, a controller is a controller of a software defined network, comprising: a monitoring unit for monitoring a usage amount of a CPU (CENTRAL PROCESSING UNIT) of a switch of the software defined network; and, when the CPU usage exceeds a predetermined threshold, And a threshold setting unit for resetting the number of packets per second (PPS) for limiting the packet input message generating packet and providing the packet to the switch.

상기 임계치 설정부는,The threshold value setting unit may set,

단계 별로 서로 다른 복수의 임계치와 상기 CPU 사용량을 비교하고, 비교 결과에 따라 단계 별로 상기 단위 초당 일정 패킷 수(PPS)를 증감시킬 수 있다.A plurality of threshold values different from each other in steps may be compared with the CPU usage amount, and the predetermined number of packets per second (PPS) may be increased / decreased step by step according to the comparison result.

상기 컨트롤러는 상기 스위치로부터 SNMP(Simple Network Management Protocol)를 통해 상기 스위치의 CPU 사용량 및 트래픽양을 수신하여 상기 모니터링부로 전달하는 SNMP 통신부를 더 포함하고,The controller further includes an SNMP communication unit for receiving the CPU usage amount and the traffic amount of the switch from the switch through a Simple Network Management Protocol (SNMP) and transmitting the received amount to the monitoring unit,

상기 임계치 설정부는, The threshold value setting unit may set,

상기 CPU 사용량 및 트래픽양에 따라 재설정한 상기 단위 초당 일정 패킷 수(PPS)를 새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 스위치로 전달할 수 있다.It is possible to transmit the predetermined number of packets per second (PPS) reset according to the CPU usage amount and the traffic amount to the switch using a newly defined open flow message or a newly defined application programming interface (API).

상기 임계치 설정부는,The threshold value setting unit may set,

특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N배 이상 많으면, 해당 포트의 단위 초당 일정 패킷 수를 1/N으로 설정할 수 있다.If the amount of traffic on a particular port is N times greater than the amount of traffic on another port, the number of packets per second per port can be set to 1 / N.

상기 임계치 설정부는,The threshold value setting unit may set,

같은 도메인의 스위치와 연결된 포트를 외부와 연결된 포트보다 우선순위를 높게 설정하고, 우선순위가 높은 포트의 단위 초당 일정 패킷수를 우선순위가 상대적으로 낮은 포트의 단위 초당 일정 패킷수보다 낮게 설정할 수 있다.It is possible to set the port connected to the switch of the same domain to be higher in priority than the port connected to the outside and set the number of certain packets per second unit of the higher priority port to be lower than the number of certain packets per unit of the port whose priority is relatively low .

상기 컨트롤러는 상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 스위치에게 플로우 수정 메시지를 전송하는 메시지 처리부, 그리고 보안 센터로부터 악의적인 트래픽을 발생시키는 IP 정보를 수집하여 블랙리스트를 생성하고, 상기 패킷 입력 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 상기 블랙리스트와 비교하여 일치하면, 상기 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의하는 플로우 규칙 생성부를 더 포함하고,The controller receives a packet input message from the switch and transmits a flow modification message to the switch, and generates a black list by collecting IP information generating malicious traffic from the security center, Further comprising a flow rule generator for defining an action for blocking a packet having an IP address included in the black list if the source IP address and the destination IP address included in the black list are compared with the black list,

상기 메시지 처리부는,The message processing unit,

상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송할 수 있다.A flow modification message including the action may be transmitted to the switch.

상기 컨트롤러는 상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 스위치에게 플로우 수정 메시지를 전송하는 메시지 처리부, 그리고 상기 패킷 입력 메시지로부터 추출한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하면, 상기 인입 포트, 상기 패킷 입력 메시지로부터 추출한 IP 주소로 구성된 IP 테이블을 생성하고, 상기 IP 주소를 가진 패킷에 대해 정해진 시간동안 패킷 입력 메시지 생성을 제한하는 액션을 정의하는 플로우 규칙 생성부를 더 포함하고,Wherein the controller comprises: a message processor for receiving a packet input message from the switch and transmitting a flow modification message to the switch; and, if the traffic volume or CPU usage of the incoming port extracted from the packet input message exceeds a threshold, Further comprising a flow rule generator for generating an IP table composed of IP addresses extracted from the packet input message and defining an action for restricting generation of a packet input message for a packet having the IP address for a predetermined time,

상기 메시지 처리부는, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송할 수 있다.The message processing unit may transmit the flow modification message including the action to the switch.

본 발명의 실시예에 따르면, SDN 기반 네트워크 장비의 새로운 연결 요청에 따른 과도한 패킷 입력(PACKET_IN) 메시지를 실시간으로 확인하고 제어함으로써, 기가 오피스(GiGA office) 네트워크 장비(컨트롤러 및 스위치)의 CPU 부하로 인한 장애를 사전에 예방할 수 있고 더불어 여러 고객들에게 서비스를 안정적으로 제공할 수 있다.According to the embodiment of the present invention, an excessive packet input (PACKET_IN) message according to a new connection request of the SDN-based network equipment is confirmed and controlled in real time, and thereby the CPU load of the GiGA office network equipment (controller and switch) It is possible to prevent malfunctions in advance and to provide services to various customers in a stable manner.

또한, SDN 기반 네트워크 장치(스위치, 컨트롤러)의 안정성을 제공할 뿐만 아니라 SDN 망에서 디오스(DDoS)와 같은 악의적인 트래픽들을 효과적으로 차단할 수 있다.In addition to providing stability of SDN-based network devices (switches, controllers), it can effectively block malicious traffic such as DDoS in the SDN network.

도 1은 본 발명의 일실시예에 따른 SDN(Software Defined Network) 네트워크 시스템의 구성도이다.
도 2는 도 1의 컨트롤러의 세부 구성을 나타낸 블록도이다.
도 3은 도 1의 스위치의 세부 구성을 나타낸 블록도이다.
도 4는 본 발명의 한 실시예에 따른 패킷 입력 메시지의 구조를 나타낸다.
도 5는 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법을 나타낸 순서도이다.
도 6은 본 발명의 한 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 8은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 9는 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 10은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
도 11은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도이다.
1 is a configuration diagram of a SDN (Software Defined Network) network system according to an embodiment of the present invention.
2 is a block diagram showing the detailed configuration of the controller of Fig.
3 is a block diagram showing a detailed configuration of the switch of FIG.
4 illustrates a structure of a packet input message according to an embodiment of the present invention.
5 is a flowchart illustrating a method of controlling a packet input message according to an embodiment of the present invention.
6 is a flowchart illustrating a method of setting a packet input message control condition according to an embodiment of the present invention.
7 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
8 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
9 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
10 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.
11 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.

또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Also, the terms of " part ", "... module" in the description mean units for processing at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software.

이하, 도면을 참조로 하여 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법, 이를 수행하는 스위치 및 컨트롤러에 대하여 상세히 설명한다.Hereinafter, a method of controlling a packet input message according to an embodiment of the present invention, a switch and a controller for performing the method will be described in detail with reference to the drawings.

도 1은 본 발명의 일실시예에 따른 SDN(Software Defined Network) 네트워크 시스템의 구성도이다.1 is a configuration diagram of a SDN (Software Defined Network) network system according to an embodiment of the present invention.

도 1을 참조하면, SDN 네트워크는 컨트롤러(Contoller)(100) 및 복수의 스위치(Switch)(200)를 포함한다. Referring to FIG. 1, an SDN network includes a controller 100 and a plurality of switches 200.

컨트롤러(100)는 SDN 네트워크에서 복수의 스위치(200)의 경로 제어를 실행하는 서버 장치이지만, 물리적인 구현 형태나 구현 위치 등에 의해 한정되지 않는다. The controller 100 is a server device that performs path control of a plurality of switches 200 in the SDN network, but is not limited by physical implementation form, implementation location, or the like.

컨트롤러(100)는 SDN 네트워크 내의 복수의 스위치(200)를 감시하고, 통신 상황에 따라서 SDN 네트워크 내의 복수의 스위치(200)로의 패킷의 전송 경로를 동적으로 설정한다. 컨트롤러(100)는 오픈 플로우 프로토콜(Openflow Protocol) 메시지를 이용하여 플로우 테이블을 작성함으로써 스위치 상의 흐름을 등록한다. The controller 100 monitors a plurality of switches 200 in the SDN network and dynamically sets a transmission path of packets to a plurality of switches 200 in the SDN network according to communication conditions. The controller 100 registers the flow on the switch by creating a flow table using an Open Flow Protocol message.

컨트롤러(100)는 복수의 스위치(200)의 플로우 테이블에 대한 정보를 추가, 변경, 삭제 하기 위한 요청을 복수의 스위치(200)로 할 수 있다.The controller 100 may make a plurality of switches 200 as requests for adding, changing, and deleting information on the flow tables of the plurality of switches 200. [

여기서, 플로우는 미리 정해진 규칙에 따르는 패킷에 대하여 행해야 할 미리 정해진 액션을 정의한다. 플로우의 규칙은 패킷 프레임의 헤더 영역에 포함되는 수신처 어드레스, 송신원 어드레스, 수신처 포트, 송신원 포트 중 임의의 것 또는 모두의 다양한 조합들에 의해 정의되고, 규칙은 식별 가능하다. Here, the flow defines a predetermined action to be performed on a packet conforming to a predetermined rule. The rules of the flow are defined by various combinations of any or all of the destination address, the source address, the destination port, and the source port included in the header area of the packet frame, and the rule is identifiable.

복수의 스위치(200)는 SDN 네트워크 내의 스위칭 노드로서, 발신지(300)로부터 수신된 패킷을 자신의 플로우 테이블에 등록된 플로우 엔트리에 따라 목적지(400)로 전송한다. 이때, 발신지(300), 목적지(400)는 네트워크 디바이스 또는 서버일 수 있다.The plurality of switches 200 is a switching node in the SDN network and transmits packets received from the source 300 to the destination 400 according to the flow entry registered in its flow table. At this time, the source 300 and the destination 400 may be a network device or a server.

스위치1(200-1)은 발신지(300)로부터 패킷을 수신(①)하면, 수신된 패킷에 해당하는 플로우 엔트리가 플로우 테이블에 등록되어 있는지 확인한다. 만약, 등록되어 있지 않다면, 수신된 패킷에 해당하는 플로우 엔트리를 문의하는 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송한다(②). When the switch 1 (200-1) receives a packet from the source 300 (①), it checks whether the flow entry corresponding to the received packet is registered in the flow table. If it is not registered, the controller 100 transmits a packet input (PACKET_IN) message to the controller 100 for inquiring about a flow entry corresponding to the received packet (2).

컨트롤러(100)는 수신된 패킷 입력(PACKET_IN) 메시지 해석을 통해 스위치1(200-1)이 수신한 패킷의 소스 IP 주소, 목적지 IP 주소 등을 참조로 하여 스위치1(200-1)이 수신한 패킷에 대한 플로우 제어 정보를 새로이 생성한다. 그리고 스위치1(200-1)이 이후 동일한 필드를 가진 패킷에 대해 수행되어야 하는 액션(Action)을 정의한 플로우 수정(FLOW_MOD) 메시지를 스위치1(200-1)으로 전송한다(③). 여기서, 플로우 수정(FLOW_MOD) 메시지는 스위치1(200-1)의 플로우 테이블에 대하여 플로우 엔트리를 설정(추가, 변경, 삭제)하거나 플로우 테이블을 작성하기 위한 메시지이다.The controller 100 refers to the source IP address and the destination IP address of the packet received by the switch 1 200-1 through the analysis of the received packet input (PACKET_IN) message, And newly generates flow control information for the packet. Then, the switch 1 (200-1) transmits a flow modification (FLOW_MOD) message to the switch 1 (200-1), which defines an action to be performed for a packet having the same field, (3). Here, the flow modification (FLOW_MOD) message is a message for setting (adding, changing, deleting) a flow entry or creating a flow table for the flow table of the switch 1 (200-1).

스위치1(200-1)은 플로우 수정(FLOW_MOD) 메시지에 의해 설정된 플로우 엔트리에 따라 수신된 패킷을 스위치2(200-3)으로 전송한다(④) The switch 1 (200-1) transmits the received packet to the switch 2 (200-3) according to the flow entry set by the flow modification (FLOW_MOD) message (4)

스위치2(200-3)는 수신된 패킷에 해당하는 플로우 엔트리가 플로우 테이블에 등록되어 있지 않다면, 수신된 패킷에 해당하는 플로우 엔트리를 문의하는 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송한다(⑤).If the flow entry corresponding to the received packet is not registered in the flow table, the switch 2 (200-3) transmits to the controller 100 a packet input (PACKET_IN) message inquiring about the flow entry corresponding to the received packet (⑤).

컨트롤러(100)는 수신된 패킷 입력(PACKET_IN) 메시지 해석을 통해 액션(Action)을 정의한 플로우 수정(FLOW_MOD) 메시지를 스위치2(200-3)으로 전송한다(⑥). 그러면, 스위치2(200-3)는 수신된 패킷을 플로우 수정(FLOW_MOD) 메시지에 의해 설정된 플로우 엔트리에 따라 목적지(400)로 전송한다(⑦) The controller 100 transmits a flow modification (FLOW_MOD) message defining an action to the switch 2 (200-3) through analysis of the received packet input (PACKET_IN) message (6). Then, the switch 2 (200-3) transmits the received packet to the destination 400 according to the flow entry set by the flow modification (FLOW_MOD) message (7)

도 2는 도 1의 컨트롤러의 세부 구성을 나타낸 블록도이다. 2 is a block diagram showing the detailed configuration of the controller of Fig.

도 2를 참조하면, 컨트롤러(100)는 메시지 처리부(101), 플로우 규칙 생성부(103), SNMP(Simple Network Management Protocol) 통신부(105) 및 임계치 설정부(107)를 포함한다. 2, the controller 100 includes a message processing unit 101, a flow rule generation unit 103, a Simple Network Management Protocol (SNMP) communication unit 105, and a threshold value setting unit 107.

메시지 처리부(101)는 스위치(200)로부터 패킷 입력 메시지를 수신하고, 스위치(200)에게 플로우 수정 메시지를 전송한다. 메시지 처리부(101)는 수신된 패킷 입력 메시지를 플로우 규칙 생성부(103)로 전달한다. 메시지 처리부(101)는 플로우 규칙 생성부(103)로부터 전달받은 플로우 규칙(또는 액션)을 포함하는 플로우 수정 메시지를 생성하고 전송한다.The message processing unit 101 receives a packet input message from the switch 200 and transmits a flow modification message to the switch 200. The message processing unit 101 delivers the received packet input message to the flow rule generation unit 103. The message processing unit 101 generates and transmits a flow modification message including the flow rule (or action) received from the flow rule generation unit 103. [

플로우 규칙 생성부(103)는 국가사이버안전센터(Security Center)(미도시)로부터 제공받은 악의적인 트래픽에 관한 IP 주소로 구성된 블랙리스트(Black List)를 관리한다. 그리고 스위치(200)로부터 수신된 패킷 입력(PACKET_IN) 메시지의 소스 IP 주소 및 목적지 IP 주소가 블랙리스트(Black List)에 포함되어 있으면, 동일한 필드를 가진 패킷에 대해 차단(Drop) 시키는 액션(Action)을 정의한다.The flow rule generation unit 103 manages a black list composed of IP addresses related to malicious traffic provided from a national cyber security center (not shown). If a source IP address and a destination IP address of a packet input (PACKET_IN) message received from the switch 200 are included in a black list, an action for dropping a packet having the same field, .

또한, 플로우 규칙 생성부(103)는 스위치(200)에 플로우 테이블에 등록되지 않은 패킷이 수신되면, 스위치(200)의 CPU 사용량 및 전체 트래픽의 임계치를 초과하는지 판단하고, 초과하지 않으면, 패킷 입력(PACKET_IN) 메시지를 컨트롤러(100)로 전송하지만, 초과하면, 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치 미만이 될 때까지 패킷 입력(PACKET_IN) 메시지의 개수를 제한하는 액션을 정의한다.When a packet not registered in the flow table is received in the switch 200, the flow rule generation unit 103 determines whether the CPU usage amount of the switch 200 and the threshold value of the total traffic are exceeded. If not, (PACKET_IN) message to the controller 100, but if exceeded, defines an action to limit the number of packet input (PACKET_IN) messages until the CPU usage of the switch 200 and the total traffic are below the threshold.

또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치 미만이 될때될 때까지 인입 트래픽이 많은 특정 포트에 대한 패킷 입력(PACKET_IN) 메시지의 개수 제한을 다른 포트보다 적게 하여 해당하는 특정 포트로 인입되는 새로운 트래픽을 제한하는 액션을 정의한다.In addition, the flow rule generation unit 103 may limit the number of packet input (PACKET_IN) messages for a particular port having a large incoming traffic until the CPU usage of the switch 200 and the total traffic become less than the threshold, And defines an action to limit new traffic coming into the corresponding specific port.

또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 및 전체 트래픽이 임계치를 초과하면, 특정 목적지 IP 주소에 대해 패킷 입력(PACKET_IN) 메시지를 일정 시간 동안 생성하지 않고 폐기(Drop)하는 액션을 정의한다. The flow rule generation unit 103 drops a packet input (PACKET_IN) message for a specific destination IP address without generating a packet for a predetermined period of time when the CPU usage of the switch 200 and the total traffic exceed a threshold value Define the action.

또한, 플로우 규칙 생성부(103)는 스위치(200)의 CPU 사용량 또는 전체 트래픽이 임계치를 넘어서는 경우, IP 테이블의 패킷 입력(PACKET_IN) 메시지 수가 많은 목적지 주소에 대해「SRC_IP=*, DST_IP=목적지 IP, action=meter_id」인 플로우 규칙을 정의한다. 그리고 플로우 수정(FLOW_MOD) 메시지의 hard_timeout을 활용하여 특정 시간 동안 패킷 입력(PACKET_IN) 메시지를 차단한 후, DST_IP=목적지 IP로 향하는 신규 패킷은 목적지로 직접 전달되도록 하는 액션을 정의한다.When the CPU usage amount of the switch 200 or the total traffic exceeds the threshold value, the flow rule generation unit 103 generates SRC_IP = *, DST_IP = destination IP address of the destination address having a large number of packet input (PACKET_IN) , action = meter_id ". After blocking the packet input (PACKET_IN) message for a specific time using the hard_timeout of the flow modification (FLOW_MOD) message, DST_IP = defines an action that causes a new packet destined for the destination IP to be delivered directly to the destination.

SNMP 통신부(105)는 스위치(200)로부터 스위치(200)의 CPU 사용량 및 트래픽양을 SNMP 통신을 통해 수신하여 모니터링부(109)로 전달한다. The SNMP communication unit 105 receives the CPU usage amount and the traffic amount of the switch 200 from the switch 200 through SNMP communication and transmits the received amount to the monitoring unit 109.

임계치 설정부(107)는 모니터링부(109)가 모니터링한 스위치(200)의 CPU 사용량 및 트래픽양이 임계치를 초과하는지 판단하고, 초과하는 경우, 스위치(200)의 PPS를 재설정하여 스위치(200)로 제공한다. The threshold value setting unit 107 determines whether the CPU usage amount and the traffic amount of the switch 200 monitored by the monitoring unit 109 exceed the threshold value and if the CPU usage amount and the traffic amount exceed the threshold value, the threshold setting unit 107 resets the PPS of the switch 200, .

임계치 설정부(107)는 CPU 사용량이나 트래픽 양이 특정 임계치를 넘어설 때마다 PPS를 조정함으로써, 스위치(200)에서 처리 가능한 패킷 입력(PACKET_IN) 메시지의 개수를 줄여간다. The threshold value setting unit 107 reduces the number of packet input (PACKET_IN) messages that can be processed by the switch 200 by adjusting the PPS whenever the CPU usage amount or the traffic amount exceeds a specific threshold value.

임계치 설정부(107)는 PPS=N/M으로 설정할 수 있다. 여기서, PPS의 디폴트 개수는 N이고, M은 사용자 정의 수치이다. 즉, 디폴드 PPS 개수(N)을 사용자 정의 수치(M)으로 나누어 스위치(200)가 컨트롤러(100)에게 전달하는 초당 패킷 입력 메시지 개수를 줄여가는 것이다. The threshold value setting unit 107 can set PPS = N / M. Here, the default number of PPS is N, and M is a user-defined number. That is, by dividing the number of default PPSs (N) by a user-defined number (M), the number of packet input messages per second transmitted by the switch 200 to the controller 100 is reduced.

예를 들어, 최초 패킷 입력(PACKET_IN) 메시지의 제한 개수(PPS)를 N으로 가정하자. CPU 사용량이 50%인 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 N/2로 하고, CPU 사용량이 60%일 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 N/3으로 하고, CPU 사용량이 90% 이상일 경우 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 CPU 사용량이 80% 이하로 내려갈 때까지 0으로 설정한다. 트래픽 양에 대해서도 동일한 방법을 통해 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 조정한다. For example, assume that the limit number PPS of the first packet input (PACKET_IN) message is N. When the CPU usage is 50%, the packet input (PACKET_IN) message limitation number (PPS) is set to N / 2, and when the CPU usage is 60%, the packet input (PACKET_IN) message limitation number (PPS) If the CPU usage is more than 90%, set the packet input (PACKET_IN) message limit (PPS) to 0 until the CPU usage drops below 80%. The PPS (PACKET_IN) message limit number (PPS) is also adjusted for the amount of traffic through the same method.

PPS가 높을수록 스위치(200)의 CPU 부하는 증가하므로, 임계치 설정부(107)는 CPU 부하가 증가할 수록 PPS 임계치를 낮추는 것이다. 스위치(200)가 패킷 입력(PACKET_IN) 메시지를 처리하려면, 스위치(200)의 CPU를 이용한다. 그런데 PPS가 특정 수치 즉 임계치 이상이 되면, 스위치(200)의 CPU가 급속하게 증가하게 되며 패킷 입력(PACKET_IN) 메시지를 정상적으로 생성할 수 없게 된다. 예를 들면, PPS를 5,000개 정도로 할 때에는 CPU 부하가 거의 없지만, 10,000개 정도가 되면, CPU 부하가 상당히 발생하므로, 스위치(200)에서 인입되는 패킷에 대해 정상적인 동작을 하지 못할 수 있다. 따라서, 스위치(200)는 PPS 임계치와 비교하여 패킷 입력(PACKET_IN) 메시지의 생성 여부를 결정함으로써, 결국 스위치(200)의 부하를 경감시킬 수 있다. Since the CPU load of the switch 200 increases as the PPS increases, the threshold setting unit 107 decreases the PPS threshold value as the CPU load increases. The switch 200 uses the CPU of the switch 200 to process the packet input (PACKET_IN) message. However, if the PPS exceeds a specific value, that is, a threshold value, the CPU of the switch 200 rapidly increases and the packet input (PACKET_IN) message can not be normally generated. For example, when the PPS is set to about 5,000, there is almost no CPU load. However, when the number of PPS is about 10,000, the CPU load is considerably generated, so that the normal operation may not be performed on the packet received from the switch 200. Accordingly, the switch 200 determines whether to generate a packet input (PACKET_IN) message in comparison with the PPS threshold, thereby eventually reducing the load on the switch 200.

또한, 임계치 설정부(107)는 동일한 도메인에 있는 위치와 연결된 스위치 포트는 외부와 연결된 스위치 포트보다 우선 순위를 높게 잡아 우선 순위가 높은 포트의 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)를 외부와 연결된 포트의 패킷 입력(PACKET_IN) 메시지 제한 개수(PPS)보다 크게 설정한다.In addition, the threshold value setting unit 107 sets the priority of a switch port connected to a location in the same domain higher than that of a switch port connected to the outside, and transmits a packet input (PACKET_IN) message restriction number (PPS) It is set to be larger than the packet input (PACKET_IN) message limitation number (PPS) of the connected port.

이러한 구성 요소에 대한 설명은 도 5~ 도 12를 참고하여 더욱 자세히 후술한다.The description of these components will be described later in more detail with reference to Figs. 5 to 12. Fig.

도 3은 도 1의 스위치의 세부 구성을 나타낸 블록도이다.3 is a block diagram showing a detailed configuration of the switch of FIG.

도 3을 참조하면, 복수의 스위치(200)는 패킷 수신부(201), 패킷 처리부(203), 패킷 전송부(205), 플로우 테이블 저장부(207), 플로우 테이블 제어부(209), 메시지 처리부(211), 패킷 입력 메시지 제어부(213), 임계치 수신부(215), SNMP 통신부(217) 및 모니터링부(219)를 포함한다. 3, the plurality of switches 200 includes a packet receiving unit 201, a packet processing unit 203, a packet transfer unit 205, a flow table storage unit 207, a flow table control unit 209, a message processing unit A packet input message control unit 213, a threshold value receiving unit 215, an SNMP communication unit 217, and a monitoring unit 219.

패킷 수신부(201)는 발신지(300)로부터 패킷을 수신한다. 그리고 수신한 패킷을 패킷 처리부(203)로 전달한다.The packet receiving unit 201 receives the packet from the source 300. And transmits the received packet to the packet processing unit 203.

패킷 처리부(203)는 수신 패킷으로부터 플로우 정보를 추출한다. 그리고 플로우 정보에 매치되는 플로우 엔트리가 플로우 테이블 저장부(207)에 등록되어 있는지 판단한다. 등록되어 있다면, 패킷 전송부(205)는 플로우 정보에 매치되는 플로우 엔트리에 따라 수신 패킷을 목적지(400)로 전송한다. The packet processing unit 203 extracts the flow information from the received packet. Then, it is judged whether or not the flow entry matched with the flow information is registered in the flow table storage unit 207. If registered, the packet transmitting unit 205 transmits the received packet to the destination 400 according to the flow entry matched with the flow information.

반면, 등록되어 있지 않다면, 패킷 처리부(203)는 메시지 처리부(211)에게 패킷 입력(PACKET_IN) 메시지 생성을 요청한다.On the other hand, if not registered, the packet processing unit 203 requests the message processing unit 211 to generate a packet input (PACKET_IN) message.

플로우 테이블 저장부(207)는 복수개의 플로우 엔트리로 구성된 플로우 테이블을 저장한다. 매치 필드(Match Fields), 카운터(Counters), 액션(Actions) 정보로 구성된 것이 플로우 엔트리이며, 컨트롤러(100)로부터 제공받은 플로우 엔트리들은 스위치(200) 내에서 플로우 테이블을 구성할 수 있다.The flow table storage unit 207 stores a flow table composed of a plurality of flow entries. The flow entries are composed of match fields, counters, and action information. The flow entries provided from the controller 100 may constitute a flow table in the switch 200.

매치 필드에는 스위치(200)의 포트, 이더넷(ethernet) 및 프로토콜 정보, 소스(즉, 출발지)(source) 및 데스티네이션(즉, 목적지)(destination)의 MAC 주소, IP 주소, 포트 및 우선순위 등의 정보가 저장될 수 있다.The match field includes the MAC address, IP address, port, priority, etc. of the port 200 of the switch 200, ethernet and protocol information, source (i.e., source) and destination (destination) Can be stored.

패킷 처리부(203)는 스위치(200)로 유입되는 수신 패킷으로부터 추출한 플로우 정보와 플로우 테이블의 매치 필드의 정보를 비교하여 수신 패킷에 관한 플로우 제어 정보가 플로우 테이블 내에 존재하는지 여부를 판단한다.The packet processing unit 203 compares the flow information extracted from the received packet to the switch 200 with the information of the match field of the flow table to determine whether flow control information on the received packet exists in the flow table.

액션(actions)은 스위치(200)로 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보가 매칭될 때 해당 패킷을 어떻게 처리할지에 관한 정보를 포함하며, 컨트롤러(100)의 플로우 규칙 생성부(103)에 의해 정의된다.Actions include information on how to process the packet when the information of the packet flowing into the switch 200 matches the information of the match field of the flow table, and the flow rule generator (controller) 103).

카운터(Counters)는 플로우 엔트리 별로 송수신되는 트래픽의 양을 나타내는 것으로, 컨트롤러(100)가 패킷의 통신 경로를 계산할 때 매개 변수로 이용할 수도 있다.The counters indicate the amount of traffic transmitted and received per flow entry, and may be used as a parameter when the controller 100 calculates the communication path of the packet.

플로우 테이블 제어부(209)는 메시지 처리부(211)를 통하여 컨트롤러(100)로부터 전달받은 플로우 수정 메시지에서 지정된 처리(즉, 플로우 엔트리의 추가, 삭제 및 변경 중 어느 하나)를 행한다.The flow table control unit 209 performs processing specified by the flow modification message received from the controller 100 through the message processing unit 211 (that is, adding, deleting, or changing the flow entry).

패킷 입력 메시지 제어부(213)는 플로우 테이블 저장부(207)에 저장된 액션에 따라 패킷 입력 메시지 생성을 제한한다. The packet input message control unit 213 restricts generation of a packet input message according to an action stored in the flow table storage unit 207. [

임계치 수신부(215)는 컨트롤러(100)로부터 임계치 PPS 값을 수신한다. 이때, 기본 값은 PPS는 N으로 설정되어 있다.The threshold value receiving unit 215 receives the threshold PPS value from the controller 100. At this time, the default value is set to N for PPS.

SNMP 통신부(217)는 모니터링부(219)가 모니터링한 스위치(200)의 CPU 사용량 및 트래픽양을 컨트롤러(100)로 보고한다.The SNMP communication unit 217 reports the amount of CPU usage and traffic of the switch 200 monitored by the monitoring unit 219 to the controller 100.

모니터링부(219)는 스위치(200)의 CPU 사용량 및 트래픽양을 모니터링하고, 모니터링 결과를 SNMMP 통신부(217)로 전달한다. The monitoring unit 219 monitors the amount of CPU usage and traffic of the switch 200 and transmits the monitoring result to the SNMMP communication unit 217.

이러한 구성 요소에 대한 설명은 도 5~ 도 12를 참고하여 더욱 자세히 후술한다.The description of these components will be described later in more detail with reference to Figs. 5 to 12. Fig.

도 4는 본 발명의 한 실시예에 따른 패킷 입력(PACKET_IN) 메시지의 구조를 나타낸다. 4 shows a structure of a packet input (PACKET_IN) message according to an embodiment of the present invention.

도 4를 참조하면, 각각의 필드는 버퍼 ID(buffer_id), 전체 길이(total_len), 사유(reason), 테이블 ID(tbl_id), 쿠키(cookie), 매치 필드(Match Fields), 패드(pad), 데이터(data) 필드로 구성되며, 발신지(3000로부터 수신한 데이터(Data) 패킷의 일부를 포함한다. 패킷 입력(PACKET_IN) 메시지는 오픈 플로우(OpenFlow) 버전별 조금씩 상이하며 도 4의 구조는 버전 1.3의 구조이다.4, each field includes a buffer ID, a total length, a reason, a table ID tbl_id, a cookie, a match field, a pad, Data field and includes a portion of the data packet received from the source 3000. The packet input (PACKET_IN) message is slightly different for each OpenFlow version, and the structure of FIG. .

이때, 매치 필드(Match Fields), 카운터(Counters), 액션(Actions) 정보로 구성된 것이 플로우 엔트리이며, 컨트롤러(100)로부터 제공받은 플로우 엔트리들은 스위치(200) 내에서 플로우 테이블을 구성할 수 있다. At this time, it is a flow entry composed of Match Fields, Counters, and Actions information, and the flow entries provided from the controller 100 can constitute a flow table in the switch 200. [

여기서, 매치 필드에는 스위치(200)의 포트, 이더넷(ethernet) 및 프로토콜 정보, 소스(즉, 출발지)(source) 및 데스티네이션(즉, 목적지)(destination)의 MAC 주소, IP 주소, 포트 및 우선순위 등의 정보가 저장될 수 있다.Here, the match field includes a MAC address, an IP address, a port, and a priority of the port 200 of the switch 200, ethernet and protocol information, a source (i.e., a source) and a destination Ranking and the like can be stored.

스위치(200)는 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보를 비교하여 해당 패킷에 관한 플로우 제어 정보가 플로우 테이블 내에 존재하는지 여부를 판단할 수 있다. 액션(actions)은 오픈 플로우 스위치(200)로 유입되는 패킷의 정보와 플로우 테이블의 매치 필드의 정보가 매칭될 때 해당 패킷을 어떻게 처리할지에 관한 정보를 포함할 수 있다.The switch 200 can compare the information of the incoming packet with the information of the match field of the flow table to determine whether the flow control information on the packet exists in the flow table. Actions may include information on how to process the packet when the information of the packet flowing into the open flow switch 200 matches the information of the match field of the flow table.

카운터(Counters)는 플로우 엔트리 별로 송수신되는 트래픽의 양을 나타내는 것으로, 컨트롤러(100)가 패킷의 통신 경로를 계산할 때 매개 변수로 이용할 수도 있다.The counters indicate the amount of traffic transmitted and received per flow entry, and may be used as a parameter when the controller 100 calculates the communication path of the packet.

도 5는 본 발명의 실시예에 따른 패킷 입력 메시지 제어 방법을 나타낸 순서도로서, 스위치(200)의 동작을 나타낸 것이다. FIG. 5 is a flowchart illustrating a method of controlling a packet input message according to an embodiment of the present invention, illustrating the operation of the switch 200. FIG.

도 5를 참조하면, 패킷 입력 메시지 제어부(213)가 단위 초당 일정 패킷(Packet Per Seconds, 이하, 'PPS'라 통칭함)의 개수를 임계치(N)로 설정한다(S101). 여기서, 'PPS=N'은 스위치(200)에서 컨트롤러(100)에게 전달할 수 있는 패킷 입력(PACKET_IN) 메시지를 초당 패킷의 개수는 N으로 설정된다는 것을 의미한다. 즉, N을 초과할 수 없다는 의미도 된다.Referring to FIG. 5, the packet input message controller 213 sets the number of packets per second (PPS) as a threshold value N (S101). Here, 'PPS = N' means that a packet input (PACKET_IN) message that can be transmitted from the switch 200 to the controller 100 is set to N per second. That is, it also means that it can not exceed N.

패킷 수신부(201)가 발신지(300)로부터 패킷을 수신(S103)하면, 수신 패킷을 패킷 처리부(203)로 전달한다. 패킷 처리부(203)는 수신 패킷의 IP 주소가 블랙리스트에 포함되는지를 판단한다(S105). When the packet receiving unit 201 receives a packet from the source 300 (S103), it transfers the received packet to the packet processing unit 203. [ The packet processing unit 203 determines whether the IP address of the received packet is included in the black list (S105).

여기서, 블랙리스트는 악의적인 트래픽을 발생시키는 소스 IP 주소 및 목적지 IP 주소를 포함하며, 플로우 테이블 저장부(207)에 저장된 플로우 테이블에 포함되어 있다.Here, the black list includes a source IP address and a destination IP address for generating malicious traffic, and is included in a flow table stored in the flow table storage unit 207.

패킷 처리부(203)는 수신 패킷의 IP 주소, 즉, 소스 IP 주소 또는 목적지 IP 주소가 블랙리스트에 포함되어 있으면, 수신 패킷을 폐기 처리한다(S107).If the IP address of the received packet, that is, the source IP address or the destination IP address is included in the black list, the packet processing unit 203 discards the received packet (S107).

반면, S109 단계에서 블랙리스트 IP 주소에 포함되지 않는 경우로 판단되면, 패킷 처리부(203)는 수신 패킷으로부터 플로우 정보를 추출한다. 플로우 정보는 스위치(200)의 패킷 유입 포트인 인입 포트(Ingress Port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등) 및 메타데이터 등을 포함할 수 있다.On the other hand, if it is determined in step S109 that the IP address is not included in the black list IP address, the packet processing unit 203 extracts the flow information from the received packet. The flow information includes identification information of an ingress port, a packet inflow port of the switch 200, packet header information (IP address of a source and destination, MAC address, port, VLAN information, etc.), metadata .

패킷 처리부(203)는 플로우 정보를 토대로 플로우 테이블 저장부(207)를 조회하여 매치되는 수신 패킷에 매치되는 플로우 엔트리가 존재하는지 판단한다(S109).The packet processing unit 203 inquires the flow table storage unit 207 based on the flow information and determines whether there is a flow entry matched with the matched received packet (S109).

이때, 매치되는 플로우 엔트리가 존재하면, 패킷 처리부(203)는 매치되는 플로우 엔트리에 따라 수신 패킷을 처리한다(S111). 패킷 전송부(205)는 플로우 엔트리에 설정된 패킷 경로로 수신 패킷을 전송한다.At this time, if there is a matched flow entry, the packet processing unit 203 processes the received packet according to the matched flow entry (S111). The packet transferring unit 205 transfers the received packet to the packet path set in the flow entry.

반면, 매치되는 플로우 엔트리가 존재하지 않으면, 패킷 처리부(203)는 메시지 처리부(211)에게 패킷 입력(PACKET_IN) 메시지 전송을 요청한다. On the other hand, if there is no matched flow entry, the packet processing unit 203 requests the message processing unit 211 to transmit a packet input (PACKET_IN) message.

메시지 처리부(211)가 패킷 입력(PACKET_IN) 메시지를 생성하기 전에 패킷 입력 메시지 제어부(213)는 모니터링부(219)가 모니터링(S113)한 CPU 사용량이 임계치 미만인지를 판단한다(S115). Before the message processor 211 generates a packet input message PACKET_IN, the packet input message controller 213 determines whether the CPU usage amount monitored by the monitoring unit 219 is less than a threshold value (S115).

CPU 사용량이 임계치를 초과하면, 패킷 입력 메시지 제어부(213)는 PPS를 재설정한다(S117). 즉, SNMP 통신부(217)는 모니터링한 CPU 사용량 및 트래픽 양을 컨트롤러(100)로 보고하고, 임계치 수신부(215)는 재설정된 PPS를 수신하여 패킷 입력 메시지 제어부(213)로 전달한다. If the CPU usage exceeds the threshold value, the packet input message controller 213 resets the PPS (S117). That is, the SNMP communication unit 217 reports the monitored CPU usage amount and the traffic amount to the controller 100, and the threshold reception unit 215 receives the reset PPS and transfers the received PPS to the packet input message control unit 213.

패킷 입력 메시지 제어부(213)는 PPS 이내에서 패킷 입력 메시지에 대한 생성 패킷의 개수를 제어한다. 즉, PPS를 초과하는 패킷 입력 메시지 생성은 하지 않는다. 이런 경우, 수신 패킷은 폐기된다. The packet input message control unit 213 controls the number of generated packets for the packet input message within the PPS. That is, the packet input message exceeding the PPS is not generated. In this case, the received packet is discarded.

반면, S115 단계에서 임계치 미만이면, 메시지 처리부(211)는 패킷 입력(PACKET_IN) 메시지를 생성(S119)하여 컨트롤러(100)에게 전송한다(S121).On the other hand, if it is less than the threshold value in step S115, the message processing unit 211 generates a packet input (PACKET_IN) message (S119) and transmits it to the controller 100 (S121).

메시지 처리부(211)는 컨트롤러(100)로부터 수신 패킷에 대한 플로우 엔트리가 포함된 플로우 수정(FLOW_MOD) 메시지를 수신(S123)하여 플로우 테이블 제어부(209)로 전달한다. 그러면, 플로우 테이블 제어부(209)는 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S125). 그리고 패킷 처리부(203)는 등록된 플로우 엔트리에 따라 수신 패킷을 처리한다(S127). 패킷 전송부(205)는 등록된 플로우 엔트리에 설정된 패킷 경로로 수신 패킷을 전송한다.The message processing unit 211 receives a flow modification (FLOW_MOD) message including a flow entry for a received packet from the controller 100 (S123), and transfers the flow modification message to the flow table control unit 209. [ Then, the flow table control unit 209 registers the flow entry in the flow table storage unit 207 (S125). Then, the packet processing unit 203 processes the received packet according to the registered flow entry (S127). The packet transmitting unit 205 transmits the received packet to the packet path set in the registered flow entry.

도 6은 본 발명의 한 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 도 5의 블랙리스트 조건을 설정하는 과정을 나타낸다.FIG. 6 is a flowchart illustrating a method of setting a packet input message control condition according to an embodiment of the present invention, and shows a linking operation of the controller 100 and the switch 200. In particular, the process of setting the blacklist condition of FIG. 5 is shown.

도 6을 참조하면, 컨트롤러(100)의 플로우 규칙 생성부(103)는 보안 센터(미도시)로부터 악의적인 트래픽을 발생시키는 IP 정보, 즉, 소스 IP 주소 및 목적지 IP 주소를 수집한다(S201). 그리고 수집한 IP 정보를 토대로 블랙리스트를 생성(S203)하여 저장한다.6, the flow rule generation unit 103 of the controller 100 collects IP information for generating malicious traffic, that is, a source IP address and a destination IP address from a security center (not shown) (S201) . Then, a black list is generated based on the collected IP information (S203) and stored.

여기서, 디도스(DdoS)와 같은 악의적인 트래픽(Traffic)이 발생하면, 국가사이버 안전센터(Security Center)에서는 국내 주요 인터넷 서비스 제공자(Internet Sercice Provider, ISP)(KT, SKT, LG U+)에게 악의적인 트래픽에 관한 IP 등의 정보를 전달한다. 플로우 규칙 생성부(103)는 국가사이버 안전센터로부터 전달받은 정보 중에서 디도스(DdoS)를 발생시키는 좀비 PC에 대한 IP 정보와 중앙에서 좀비 PC를 제어하는 단말에 대한 IP 정보를 확인할 수 있다.Here, when malicious traffic such as DdoS occurs, the National Cyber Security Center sends malicious (or illegal) information to the domestic Internet service provider (ISP) (KT, SKT, LG U + And information about the IP traffic. The flow rule generation unit 103 can confirm IP information about the zombie PC that generates the DdoS and IP information about the terminal that controls the zombie PC in the center among the information received from the national cybersecurity center.

컨트롤러(100)는 악성 IP에 대한 정보가 갱신될 때마다 블랙리스트를 업데이트하여 스위치(200)에게 플로우 규칙(Flow Rule)을 미리 설정한다.The controller 100 updates the black list every time the malicious IP information is updated and sets a flow rule to the switch 200 in advance.

여기서, 플로우 규칙 설정은 컨트롤러(100)에서 스위치(200)로부터 수신한 패킷 입력(PACKET_IN) 메시지를 통해 플로우 수정 메시지를 스위치(200)로 전송함으로써, 구현된다.Here, the flow rule setting is implemented by transmitting the flow modification message to the switch 200 through the packet input (PACKET_IN) message received from the switch 200 in the controller 100.

즉, 메시지 처리부(101)가 스위치(200)로부터 패킷 입력(PACKET_IN) 메시지를 수신한다(S205). 플로우 규칙 생성부(103)는 패킷 입력(PACKET_IN) 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 S203 단계에서 생성한 블랙리스트와 비교(S207)하여 일치 여부를 판단한다(S209).That is, the message processing unit 101 receives a packet input (PACKET_IN) message from the switch 200 (S205). The flow rule generation unit 103 compares the source IP address and the destination IP address included in the packet input (PACKET_IN) message with the black list generated in step S203 (S207), and determines whether the source IP address and the destination IP address coincide with each other (S209).

이때, 일치하면, 플로우 규칙 생성부(103)는 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의한다(S211). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S213).At this time, if there is a match, the flow rule generation unit 103 defines an action for blocking a packet having an IP address included in the black list (S211). The message processing unit 101 transmits a flow modification message including the defined action to the switch 200 (S213).

스위치(200)의 플로우 테이블 제어부(209)는 S213 단계에서 수신한 플로우 수정 메시지에 따라 설정된 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S215). 이처럼, 등록된 플로우 엔트리에 따라 도 5의 S105 단계 및 S107 단계를 수행한다. 등록된 플로우 엔트리에는 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되면, 수신 패킷을 폐기하는 액션이 정의되어 있다.The flow table control unit 209 of the switch 200 registers the flow entry set in accordance with the flow modification message received in step S213 in the flow table storage unit 207 (S215). In this manner, steps S105 and S107 of FIG. 5 are performed according to the registered flow entry. The registered flow entry defines an action to discard the received packet if the IP address of the received packet is included in the blacklisted IP address.

반면, S209 단계에서 일치하지 않으면, 플로우 규칙 생성부(103)는 패킷 입력(PACKET_IN) 메시지에 포함된 수신 패킷의 정보를 토대로 액션을 정의한다(S217). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S219).On the other hand, if they do not match in step S209, the flow rule generation unit 103 defines an action based on the information of the received packet included in the packet input (PACKET_IN) message (S217). Then, the message processing unit 101 transmits a flow modification message including the defined action to the switch 200 (S219).

스위치(200)의 플로우 테이블 제어부(209)는 S219 단계에서 수신한 플로우 수정 메시지에 따라 설정된 플로우 엔트리를 플로우 테이블 저장부(207)에 등록한다(S221).The flow table control unit 209 of the switch 200 registers the flow entry set in accordance with the flow modification message received in step S219 in the flow table storage unit 207 (S221).

도 6의 각 단계(S201 ~ S3221)는 도 5의 각 단계(S101 ~ S125)와 병렬로 수행될 수 있다.Steps S201 to S3221 of FIG. 6 may be performed in parallel with steps S101 to S125 of FIG.

도 7은 본 발명의 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 스위치(200)의 CPU 사용량을 모니터링한 결과를 토대로 도 5의 PPS 임계치를 재설정하는 과정을 나타낸다.FIG. 7 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows a linking operation of the controller 100 and the switch 200. FIG. Particularly, the process of resetting the PPS threshold value of FIG. 5 based on the result of monitoring the CPU usage amount of the switch 200 is shown.

도 7을 참조하면, 스위치(200)의 모니터링부(219)는 CPU 사용량 및 트래픽양을 실시간 모니터링한다(S301). 그리고 SNMP 통신부(217)는 SNMP를 이용하여 모니터링부(219)가 모니터링한 CPU 사용량 및 트래픽양을 컨트롤러(100)에게 보고한다(S303). Referring to FIG. 7, the monitoring unit 219 of the switch 200 monitors the CPU usage amount and the traffic amount in real time (S301). Then, the SNMP communication unit 217 reports the CPU usage amount and the traffic amount monitored by the monitoring unit 219 to the controller 100 using SNMP (S303).

컨트롤러(100)의 SNMP 통신부(105)는 S303 단계에서 수신된 CPU 사용량이 임계치를 초과하는지 판단한다(S305). The SNMP communication unit 105 of the controller 100 determines whether the CPU usage amount received in step S303 exceeds a threshold value (S305).

이때, 초과하면, 임계치 설정부(107)는 PPS 임계치를 재설정(S307)하고, 재설정한 PPS 임계치를 스위치(200)로 전송한다(S309). At this time, if exceeded, the threshold setting unit 107 re-sets the PPS threshold value (S307), and transmits the reset PPS threshold value to the switch 200 (S309).

여기서, 임계치 설정부(107)는 오픈플로우(OpenFlow) 규격에 정의된 메시지 또는 새로 정의된 오픈플로우 메시지를 이용하여 스위치(200)로 재설정한 PPS 임계치를 전달할 수 있다. 또는 별도의 API(Application Programming Interface)를 통해서 스위치(200)로 재설정한 PPS 임계치를 전달할 수 있다.Here, the threshold setting unit 107 may transmit the PPS threshold reset to the switch 200 using a message defined in the OpenFlow standard or a newly defined open flow message. Or a PPS threshold reset to the switch 200 via a separate application programming interface (API).

스위치(200)는 S309 단계에서 수신한 PPS 임계치로 디폴트 PPS 임계치를 변경한다(S311). 그러면, 도 5의 S113은 S311 단계에서 변경된 디폴트 PPS 임계치를 기준으로 수행된다.The switch 200 changes the default PPS threshold to the PPS threshold received in step S309 (S311). Then, step S113 of FIG. 5 is performed based on the default PPS threshold changed in step S311.

도 7의 각 단계(S301 ~ S311)는 도 5의 각 단계(S101 ~ S125)와 병렬로 수행될 수 있다.The steps S301 to S311 in FIG. 7 can be performed in parallel with the steps S101 to S125 in FIG.

도 8은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 스위치(200)의 CPU 사용량을 서로 다른 복수개의 임계치 별로 모니터링한 결과를 토대로 도 5의 PPS 임계치를 재설정하는 과정을 나타낸다.FIG. 8 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the controller 100. Referring to FIG. In particular, FIG. 5 illustrates a process of resetting the PPS threshold value of FIG. 5 based on a result of monitoring the CPU usage of the switch 200 by a plurality of different threshold values.

도 8을 참조하면, 디폴트 PPS=N으로 설정(S401)된 상태에서 임계치 설정부(107)는 스위치(200)로부터 보고받은 CPU 사용량이 제1 임계치(Th1)를 초과하는지 판단한다(S403). 8, the default PPS = N by setting (S401) the state threshold setting unit 107 in judges that the CPU usage been reported from the switch 200 exceeds the first threshold (Th 1) (S403) .

제1 임계치(Th1)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N으로 설정한다(S405). 즉, 디폴트 PPS 임계치를 유지한다.First exceeds the threshold value (Th 1), and a threshold setting section 107 sets the threshold PPS to N (S405). That is, the default PPS threshold is maintained.

반면, 제1 임계치(Th1)를 초과하지 않으면, 임계치 설정부(107)는 CPU 사용량이 제2 임계치(Th2)를 초과하는지 판단한다(S407).On the other hand, first it is determined that the first threshold value does not exceed the (Th 1), threshold setting unit 107, a CPU utilization exceeds a second threshold (Th 2) (S407).

제2 임계치(Th2)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N/2으로 설정한다(S409).When the two exceeds a threshold value (Th 2), the threshold setting unit 107 sets the threshold PPS to N / 2 (S409).

반면, 제2 임계치(Th2)를 초과하지 않으면, 임계치 설정부(107)는 CPU 사용량이 제3 임계치(Th3)를 초과하는지 판단한다(S411).On the other hand, first it is determined that the second threshold is not exceeded the (Th 2), the threshold setting unit 107, a CPU utilization exceeds a third threshold (Th 3) (S411).

제3 임계치(Th3)를 초과하면, 임계치 설정부(107)는 PPS 임계치를 N/3으로 설정한다(S413).When the three exceeds the threshold (Th 3), the threshold setting unit 107 sets the threshold PPS as N / 3 (S413).

제4 임계치(Th4) ~ N-1개의 임계치(ThN - 1)에 대해서 S403 ~ S413 단계와 같이 CPU 사용량을 각 임계치를 초과하는지 판단하여 초과하면, N/K(K=4, ... N-1)로 PPS 임계치를 설정한다. N / K (K = 4, ..., N) is determined for the fourth threshold value (Th 4 ) to the N-1th threshold value (Th N - 1 ) if the CPU usage exceeds the threshold value as in steps S403 to S413. N-1) to set the PPS threshold.

임계치 설정부(107)는 CPU 사용량이 제N 임계치(ThN)를 초과하는지 판단한다(S415). 그리고 제N 임계치(ThN)를 초과하면, PPS 임계치를 0으로 설정한다(S417). The threshold setting unit 107 determines whether the CPU usage exceeds the Nth threshold (Th N ) (S415). If the Nth threshold value (Th N ) is exceeded, the PPS threshold value is set to 0 (S417).

다음, 임계치 설정부(107)는 PPS 임계치를 설정한 이후, 다시 CPU 사용량을 모니터링(S419)하여 S403 단계부터 다시 수행한다. Next, the threshold setting unit 107 monitors the CPU usage amount again after setting the PPS threshold value (S419), and performs the process again from step S403.

이와 같이 설정된 PPS 임계치는 도 7의 S309 단계를 통해 스위치(200)로 전달된다. The PPS threshold value thus set is transmitted to the switch 200 through step S309 of FIG.

도 9는 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 스위치(200)의 인입 포트 별로 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다. FIG. 9 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the controller 100. Referring to FIG. In particular, a process of limiting the number of generated packet input (PACKET_IN) messages for each incoming port of the switch 200 is shown.

도 9를 참조하면, PPS=N으로 설정된 상태(S501)에서 임계치 설정부(107)는 모니터링부(219)가 모니터링한 CPU 사용량 및 트래픽양을 스위치(200)로부터 수신한다(S503). Referring to FIG. 9, in a state in which PPS = N is set (S501), the threshold setting unit 107 receives the CPU usage amount and the traffic amount monitored by the monitoring unit 219 from the switch 200 (S503).

임계치 설정부(107)는 CPU 사용량이 임계치를 초과하는지 판단한다(S505). 이때, 초과하지 않으면, S503 단계를 다시 수행한다.The threshold setting unit 107 determines whether the CPU usage exceeds the threshold (S505). At this time, if it is not exceeded, step S503 is performed again.

반면, 초과하면, 특정 포트의 트래픽양이 다른 포트의 트래픽양 보다 N배 이상인지를 판단한다(S507).On the other hand, if it is determined that the amount of traffic of the specific port is greater than N times the amount of traffic of the other port (S507).

이때, N배 이상이면, 특정 포트의 PPS 임계치는 1/N으로 설정한다(S509). 이와 같이 설정된 PPS 임계치는 도 87의 S309 단계를 통해 스위치(200)로 전달된다.At this time, if it is N times or more, the PPS threshold value of the specific port is set to 1 / N (S509). The PPS threshold value thus set is transmitted to the switch 200 through step S309 of FIG.

도 10은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100) 및 스위치(200)의 연계 동작을 나타낸 것이다. 특히, 목적지 별로 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다. FIG. 10 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows a linking operation of the controller 100 and the switch 200. FIG. In particular, it shows the process of limiting the number of packet input (PACKET_IN) messages generated per destination.

도 10을 참조하면, 컨트롤러(100)의 메시지 처리부(101)가 스위치(200)의 메시지 처리부(211)가 전송한 패킷 입력(PACKET_IN) 메시지를 수신한다(S601). 10, the message processing unit 101 of the controller 100 receives a packet input (PACKET_IN) message transmitted by the message processing unit 211 of the switch 200 (S601).

플로우 규칙 생성부(103)는 메시지 처리부(211)로부터 전달받은 패킷 입력(PACKET_IN) 메시지로부터 목적지 IP 주소 및 패킷이 인입된 포트를 추출한다(S603). The flow rule generation unit 103 extracts a destination IP address and a port into which the packet is received from the packet input (PACKET_IN) message received from the message processing unit 211 (S603).

플로우 규칙 생성부(103)는 모니터링부(109)가 스위치(200)로부터 확인한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하는지 판단한다(S605).The flow rule generation unit 103 determines whether the amount of traffic or CPU usage of the incoming port that the monitoring unit 109 has checked from the switch 200 exceeds a threshold value (S605).

이때, 임계치를 초과하면, 플로우 규칙 생성부(103)는 스위치(200)로 패킷이 인입된 포트, 목적지 IP, 패킷 입력(PACKET_IN) 메시지 개수를 가지는 IP 테이블을 생성한다(S607).At this time, if the threshold value is exceeded, the flow rule generation unit 103 generates an IP table having a port, a destination IP, and a packet input (PACKET_IN) message in which the packet is input to the switch 200 (S607).

플로우 규칙 생성부(103)는 IP 테이블에 기초하여 특정 목적지 IP를 가지는 패킷에 대하여 일정 시간(hard_timeout) 동안 패킷 입력(PACKET_IN) 메시지를 생성하지 않고, 패킷을 폐기(Drop)하는 액션을 정의한다(S609). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S611).The flow rule generation unit 103 defines an action for dropping a packet without generating a packet input (PACKET_IN) message for a fixed time (hard_timeout) for a packet having a specific destination IP based on the IP table S609). Then, the message processing unit 101 transmits a flow modification message including the defined action to the switch 200 (S611).

플로우 테이블 제어부(209)는 S611 단계에서 수신된 플로우 수정 메시지에 따른 플로우 엔트리를 설정(S613)하여 플로우 테이블 저장부(207)에 등록한다.The flow table control unit 209 sets a flow entry according to the flow modification message received in step S611 (S613) and registers the flow entry in the flow table storage unit 207. [

이후, 도 5의 S111 단계에 해당하는 상세 동작으로서, S613 단계에서 등록된 플로우 엔트리에 따르면, 패킷 처리부(203)는 일정 시간(hard_timeout) 동안에는 특정 목적지 IP 주소를 가지는 수신 패킷에 대해서는 패킷 입력(PACKET_IN) 메시지를 생성하지 않고, 모두 폐기한다. 여기서, 플로우 테이블 제어부(209)가 플로우를 반영하는 방식은 크게 hard_timeout과 idle_timeout으로 두가지가 있다. hard_timeout인 경우에는 특정 시간을 설정하고 설정된 특정 시간이 경과하면 해당 플로우 규칙을 제거하는 방식으로서, 해당 플로우 규칙에 매치되는 패킷이 들어오는지 여부에 관게없이 일정시간 이후에는 해당 플로우 규칙은 삭제된다. 반면, idle_timeout은 특정 시간동안 해당 플로우 규칙에 매치되는 패킷이 인입되지 않으면, 해당 플로우 규칙은 삭제된다. 본 발명의 실시에에서는 hard_timeout 방식을 채택한다. As a detailed operation corresponding to step S111 of FIG. 5, according to the flow entry registered in step S613, the packet processing unit 203 receives a packet input (PACKET_IN) for a received packet having a specific destination IP address for a fixed time (hard_timeout) ) Message, but discard it altogether. Here, there are two schemes in which the flow table control unit 209 reflects the flow, as hard_timeout and idle_timeout. In the case of hard_timeout, a specific time is set, and the flow rule is removed when a specified time elapses. The flow rule is deleted after a predetermined time regardless of whether a packet matched with the flow rule is received. On the other hand, if idle_timeout does not receive a packet matched with the flow rule for a specific time, the flow rule is deleted. In the embodiment of the present invention, the hard_timeout method is adopted.

한편, S605 단계에서 임계치를 초과하지 않으면, 플로우 규칙 생성부(103)는 수신 패킷의 IP 주소에 대한 패킷 경로 등의 액션을 정의한다(S615). 그리고 메시지 처리부(101)는 정의된 액션이 포함된 플로우 수정 메시지를 스위치(200)로 전송한다(S617). 플로우 테이블 제어부(209)는 S617 단계에서 수신된 플로우 수정 메시지에 따른 플로우 엔트리를 설정(S619)하여 플로우 테이블 저장부(207)에 등록한다. 그러면, 패킷 처리부(203)는 플로우 엔트리에 따라 수신 패킷을 처리한다(도 5의 S111). On the other hand, if the threshold is not exceeded in step S605, the flow rule generation unit 103 defines an action such as a packet path for the IP address of the received packet (S615). Then, the message processing unit 101 transmits a flow modification message including the defined action to the switch 200 (S617). The flow table control unit 209 sets a flow entry according to the flow modification message received in step S617 (S619) and registers the flow entry in the flow table storage unit 207. [ Then, the packet processing unit 203 processes the received packet according to the flow entry (S111 in Fig. 5).

도 11은 본 발명의 또 다른 실시예에 따른 패킷 입력 메시지 제어 조건을 설정하는 방법을 나타낸 순서도로서, 컨트롤러(100)의 동작을 나타낸 것이다. 특히, 우선순위에 따라 패킷 입력(PACKET_IN) 메시지의 생성 개수를 제한하는 과정을 나타낸다.FIG. 11 is a flowchart illustrating a method of setting a packet input message control condition according to another embodiment of the present invention, and shows the operation of the controller 100. Referring to FIG. Particularly, a process of limiting the number of generated packet input (PACKET_IN) messages according to the priority order is shown.

이때, 포트는 같은 도메인의 스위치(200)와 연결된 제1 포트와 외부(인터넷 등)와 연결된 제2 포트로 구분된다. In this case, the port is divided into a first port connected to the switch 200 of the same domain and a second port connected to the outside (Internet, etc.).

도 11을 참조하면, 임계치 설정부(107)는 제1 포트를 제2 포트보다 우선순위를 높게 설정한다(S701). 그리고 우선순위가 높은 제1 포트의 PPS를 우선순위가 상대적으로 낮은 제2 포트의 PPS보다 낮게 설정한다(S703). Referring to FIG. 11, the threshold setting unit 107 sets the first port to a higher priority than the second port (S701). The PPS of the first port having a higher priority is set to be lower than the PPS of the second port having a lower priority (S703).

여기서, 각각의 포트 별 PPS 설정은 도 7 및 도 8에 기재한 방식을 통해 이루어진다. Here, the PPS setting for each port is performed through the method shown in FIG. 7 and FIG.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다. The embodiments of the present invention described above are not implemented only by the apparatus and method, but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.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, It belongs to the scope of right.

Claims (26)

소프트웨어 정의 네트워크에서 스위치가 패킷 입력 메시지를 제어하는 방법으로서,
상기 스위치가 발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하는 단계,
상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 단계,
상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 단계, 그리고
상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하는 단계를 포함하고,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 패킷 입력 메시지 제어 방법.
CLAIMS What is claimed is: 1. A method for controlling a packet entry message in a software defined network,
Determining whether a flow entry matching the received packet received from the source exists in the switch,
Determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist;
Generating a packet input message for the received packet and transmitting the packet to the controller if the received packet is smaller than the threshold value;
Blocking generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predetermined time and discarding a received packet having the specific destination IP address when the threshold value is greater than the predetermined value;
The specific destination IP address may include,
Wherein the packet input message is set to a destination IP address of received packets that generate the packet input message over a predetermined reference value.
제1항에 있어서,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 특정 개수 이내에서 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.
The method according to claim 1,
Prior to determining whether the matched flow entry is present,
Further comprising setting a certain number of packets per second (PPS) per default unit,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within the specific number.
제2항에 있어서,
상기 CPU 사용량이 임계치 미만인지 판단하는 단계 이후,
상기 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.
3. The method of claim 2,
After determining whether the CPU usage is below a threshold,
Reporting the CPU usage to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
제2항에 있어서,
상기 특정 개수로 설정하는 단계 이후,
상기 CPU 사용량 및 트래픽양을 모니터링하는 단계,
모니터링한 상기 CPU 사용량 및 트래픽양을 상기 컨트롤러에게 보고하는 단계, 그리고
상기 CPU 사용량이 임계치를 초과할 경우 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 패킷 입력 메시지 패킷을 생성하여 전송하는 단계를 포함하는 패킷 입력 메시지 제어 방법.
3. The method of claim 2,
After the setting of the specific number,
Monitoring the CPU usage and amount of traffic,
Reporting the monitored CPU usage and traffic volume to the controller, and
Further comprising receiving from the controller a predetermined number of packets per second reset unit when the CPU usage exceeds a threshold,
Wherein the transmitting comprises:
And generating and transmitting a packet input message packet within a predetermined number of packets per second of the reset unit.
제4항에 있어서,
상기 보고하는 단계는,
SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 상기 CPU 사용량 및 상기 트래픽양을 보고하는 패킷 입력 메시지 제어 방법.
5. The method of claim 4,
Wherein said reporting comprises:
And reporting the CPU usage amount and the traffic amount to the controller through SNMP (Simple Network Management Protocol).
제5항에 있어서,
상기 재설정된 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 단계는,
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신하는 패킷 입력 메시지 제어 방법.
6. The method of claim 5,
Wherein the step of receiving from the controller a predetermined number of packets per second,
A method of controlling a packet input message, the method comprising: receiving a predetermined number of packets per second, which is reset using a newly defined open flow message or a newly defined application programming interface (API).
제2항에 있어서,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계, 그리고
상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 단계를 더 포함하고,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계는,
상기 수신 패킷의 IP 주소가 상기 블랙리스트 IP 주소에 포함되지 않는 경우, 상기 수신 패킷에 매치되는 플로우 엔트리의 존재 여부를 판단하는 패킷 입력 메시지 제어 방법.
3. The method of claim 2,
Prior to determining whether the matched flow entry is present,
Determining whether an IP address of the received packet is included in a blacklisted IP address, and
Further comprising discarding the received packet if the IP address is included in the blacklist IP address,
Wherein determining whether the matched flow entry is present comprises:
And determining whether a flow entry matching the received packet exists if the IP address of the received packet is not included in the black list IP address.
제7항에 있어서,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계 이전에,
상기 컨트롤러에게 패킷 입력 메시지를 전송하는 단계,
블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고
상기 플로우 수정 메시지에 따른 플로우 엔트리를 설정하는 단계를 더 포함하고,
상기 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하는 단계는,
상기 수신 패킷의 IP 주소가 상기 블랙리스트에 따른 플로우 엔트리에 매치되는지 판단하는 패킷 입력 메시지 제어 방법.
8. The method of claim 7,
Prior to determining whether the IP address of the received packet is included in the blacklisted IP address,
Transmitting a packet input message to the controller,
Receiving a flow modification message in which an action for blocking a packet having an IP address included in the black list is defined, and
Further comprising setting a flow entry according to the flow modification message,
Wherein the step of determining whether the IP address of the received packet is included in the blacklist IP address comprises:
And determining whether an IP address of the received packet matches a flow entry according to the black list.
제2항에 있어서,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이전에,
상기 컨트롤러에게 수신 패킷에 대한 패킷 입력 메시지를 전송하는 단계,
상기 컨트롤러부터 상기 수신 패킷의 목적지 IP 주소를 가지는 패킷에 대해 정의된 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하는 단계, 그리고
상기 플로우 수정 메시지에 따라 상기 액션이 포함된 플로우 엔트리를 등록하는 단계를 더 포함하고,
상기 매치되는 플로우 엔트리가 존재하는지 판단하는 단계 이후,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 단계, 그리고
상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하는 단계
를 더 포함하는 패킷 입력 메시지 제어 방법.
3. The method of claim 2,
Prior to determining whether the matched flow entry is present,
Transmitting a packet input message for a received packet to the controller,
Receiving, from the controller, a flow modification message defining an action for limiting a packet input message generation for a defined time for a packet having a destination IP address of the received packet; and
Further comprising registering a flow entry including the action according to the flow modification message,
After determining whether the matched flow entry exists,
Blocking generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the generation of the packet input message is defined and before the predetermined time has expired,
Discarding the flow entry after the predetermined time has expired
Further comprising the step of:
소프트웨어 정의 네트워크의 스위치로서,
발신지로부터 수신한 수신 패킷과 매치되는 플로우 엔트리가 존재하는지 판단하고, 존재하면 해당하는 플로우 엔트리에 따라 상기 수신 패킷을 처리하는 패킷 처리부,
상기 매치되는 플로우 엔트리가 존재하지 않으면, CPU(CENTRAL PROCESSING UNIT) 사용량이 임계치 미만인지 판단하는 패킷 입력 메시지 제어부, 그리고
상기 임계치 미만일 경우, 상기 수신 패킷에 대한 패킷 입력 메시지를 생성하여 컨트롤러 전송하는 메시지 처리부를 포함하고,
상기 제어부는,
상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하며,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 스위치.
As a switch in a software defined network,
A packet processor for determining whether there is a flow entry matched with a received packet received from a source and processing the received packet according to a flow entry corresponding to the received flow entry,
A packet input message control unit for determining whether a usage amount of the CPU (CENTRAL PROCESSING UNIT) is less than a threshold value if the matched flow entry does not exist, and
And a message processor for generating and transmitting a packet input message for the received packet if the received packet is smaller than the threshold,
Wherein,
Blocking the generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predefined time, discarding a received packet having the specific destination IP address,
The specific destination IP address may include,
And a destination IP address of the packets received by the packet input message.
제10항에 있어서,
상기 패킷 입력 메시지 제어부는,
디폴트 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 특정 개수로 설정하고, 상기 특정 개수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한하는 스위치.
11. The method of claim 10,
Wherein the packet input message controller comprises:
A switch for setting a predetermined number of packets per second (PPS) per default unit, and restricting generation of the packet input message packet within the specific number.
제11항에 있어서,
상기 CPU 사용량이 임계치 이상인 경우, 상기 컨트롤러에게 상기 CPU 사용량을 보고하고 상기 CPU 사용량에 따라 재설정된 단위 초당 일정 패킷 수를 수신하는 임계치 수신부를 더 포함하고,
상기 패킷 입력 메시지 제어부는,
상기 재설정된 단위 초당 일정 패킷 수 이내로 상기 패킷 입력 메시지 패킷 생성을 제한하는 스위치.
12. The method of claim 11,
And a threshold receiving unit reporting the CPU usage amount to the controller and receiving a predetermined number of packets per second reset in accordance with the CPU usage amount when the CPU usage amount is equal to or greater than a threshold value,
Wherein the packet input message controller comprises:
And restricting generation of the packet input message packet within a predetermined number of packets per second of the reset unit.
제12항에 있어서,
상기 임계치 수신부는,
새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 재설정된 단위 초당 일정 패킷수를 수신하는 스위치.
13. The method of claim 12,
Wherein the threshold value receiver comprises:
A switch that receives the reset packet number per second using a newly defined open flow message or a newly defined application programming interface (API).
제12항에 있어서,
상기 임계치 수신부는,
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N 배이상 많을 경우, 상기 특정 포트의 단위 초당 일정 패킷수를 1/N으로 재설정된 단위 초당 일정 패킷 수를 수신하여 상기 패킷 입력 메시지 제어부로 전달하는 스위치.
13. The method of claim 12,
Wherein the threshold value receiver comprises:
When the amount of traffic of a specific port is more than N times the amount of traffic of another port, the control unit receives a certain number of packets per second unit reset to a certain number of packets per second of the specific port, and transmits the packet to the packet input message control unit switch.
제12항에 있어서,
상기 임계치 수신부는,
포트 별로 서로 다르게 설정된 복수의 단위 초당 일정 패킷수를 상기 컨트롤러로부터 수신하는 스위치.
13. The method of claim 12,
Wherein the threshold value receiver comprises:
And receives from the controller a predetermined number of packets per unit of a plurality of units set differently for each port.
제15항에 있어서,
같은 도메인의 스위치와 연결된 포트에 설정된 단위 초당 일정 패킷수가 외부와 연결된 포트에 설정된 단위 초당 일정 패킷수보다 낮게 설정되는 스위치.
16. The method of claim 15,
A switch that is set to a port connected to a switch in the same domain and a certain number of packets per second is set lower than a predetermined number of packets per second set in a port connected to the outside.
제12항에 있어서,
상기 CPU 사용량 및 트래픽양을 모니터링하는 모니터링부, 그리고
상기 모니터링부로부터 제공받은 상기 CPU 사용량 및 트래픽양을 SNMP(Simple Network Management Protocol)를 통해 상기 컨트롤러에게 보고하는 SNMP 통신부
를 더 포함하는 스위치.
13. The method of claim 12,
A monitoring unit for monitoring the CPU usage amount and the traffic amount, and
An SNMP communication unit reporting the amount of CPU usage and the amount of traffic provided from the monitoring unit to the controller through Simple Network Management Protocol (SNMP)
Lt; / RTI >
제12항에 있어서,
블랙리스트 IP 주소가 포함된 플로우 엔트리를 저장하는 플로우 테이블 저장부, 그리고
플로우 수정 메시지에 따라 상기 블랙리스트가 포함된 플로우 엔트리를 플로우 테이블 저장부에 등록하는 플로우 테이블 제어부를 더 포함하고,
상기 메시지 처리부는,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 블랙리스트에 포함된 IP 주소를 가지는 패킷을 차단시키는 액션이 정의된 플로우 수정 메시지를 수신하여 상기 플로우 테이블 제어부로 전달하고,
상기 패킷 처리부는,
상기 플로우 테이블 저장부에 등록된 플로우 엔트리를 조회하여 수신 패킷의 IP 주소가 블랙리스트 IP 주소에 포함되는지 판단하고, 상기 블랙리스트 IP 주소에 포함되면, 상기 수신 패킷을 폐기하는 스위치.
13. The method of claim 12,
A flow table storage unit for storing a flow entry including a blacklisted IP address, and
And a flow table control unit for registering the flow entry including the black list in the flow table storage unit according to the flow modification message,
The message processing unit,
Receiving a flow modification message defining an action for blocking a packet having an IP address included in the black list by transmitting a packet input message to the controller and delivering the flow modification message to the flow table controller,
The packet processing unit,
Inquiring a flow entry registered in the flow table storage unit to determine whether an IP address of a received packet is included in a blacklist IP address, and discarding the received packet if the IP address is included in the blacklist IP address.
제18항에 있어서,
상기 메시지 처리부는,
상기 컨트롤러에게 패킷 입력 메시지를 전송하여 정해진 시간 동안 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 수정 메시지를 수신하고,
상기 플로우 테이블 제어부는,
상기 플로우 수정 메시지에 따라 플로우 엔트리를 상기 플로우 테이블 저장부에 등록하며, 상기 정해진 시간이 만료한 후에는 상기 플로우 엔트리를 폐기하고,
상기 패킷 처리부는,
발신지로부터 현재 수신된 패킷이 상기 패킷 입력 메시지 생성을 제한하는 액션이 정의된 플로우 엔트리에 매치되고, 정해진 시간이 만료하기 전이라면 상기 현재 수신된 패킷에 대한 패킷 입력 메시지 생성을 차단하는 스위치.
19. The method of claim 18,
The message processing unit,
Receiving a flow modification message in which an action is defined for transmitting a packet input message to the controller to restrict generation of a packet input message for a predetermined time,
Wherein the flow table control unit comprises:
Registering the flow entry in the flow table storage unit according to the flow modification message, discarding the flow entry after the predetermined time has expired,
The packet processing unit,
Blocking the generation of a packet input message for the currently received packet if the currently received packet from the source matches the flow entry for which the action limiting the creation of the packet input message is defined and before the predetermined time has expired.
소프트웨어 정의 네트워크의 컨트롤러로서,
상기 소프트웨어 정의 네트워크의 스위치의 CPU(CENTRAL PROCESSING UNIT) 사용량을 모니터링하는 모니터링부,
상기 CPU 사용량이 정해진 임계치를 초과하면, 상기 스위치가 패킷 입력 메시지 생성 패킷을 제한하기 위한 단위 초당 일정 패킷 수(Packet per seconds, PPS)를 재설정하여 상기 스위치로 제공하는 임계치 설정부,
상기 CPU 사용량이 상기 임계치 이상일 경우, 사전에 정의된 시간 동안 기 정해진 특정 목적지 IP 주소를 가지는 수신 패킷에 대한 패킷 입력 메시지 생성을 차단하고, 상기 특정 목적지 IP 주소를 가지는 수신 패킷을 폐기하는 액션을 정의하는 플로우 규칙 생성부, 그리고
상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 메시지 처리부를 포함하고,
상기 특정 목적지 IP 주소는,
상기 패킷 입력 메시지를 정해진 기준치 이상 발생시키는 수신 패킷들의 목적지 IP 주소로 설정되는 컨트롤러.
As a controller in a software defined network,
A monitoring unit for monitoring a usage amount of a CPU (CENTRAL PROCESSING UNIT) of a switch of the software defined network,
A threshold setting unit for resetting a predetermined number of packets per second (PPS) for limiting a packet input message generating packet and providing the switch to the switch when the CPU usage exceeds a predetermined threshold,
If the CPU usage is equal to or greater than the threshold value, generation of a packet input message for a received packet having a predetermined destination IP address predetermined for a predetermined time is blocked, and an action for discarding a received packet having the specific destination IP address is defined A flow rule generation unit for
And a message processing unit for transmitting a flow modification message including the action to the switch,
The specific destination IP address may include,
And setting the destination IP address of the received packets that causes the packet input message to generate a predetermined reference value or more.
제20항에 있어서,
상기 임계치 설정부는,
단계 별로 서로 다른 복수의 임계치와 상기 CPU 사용량을 비교하고, 비교 결과에 따라 단계 별로 상기 단위 초당 일정 패킷 수(PPS)를 증감시키는 컨트롤러.
21. The method of claim 20,
The threshold value setting unit may set,
A controller for comparing the plurality of different threshold values with the CPU usage amount and incrementing or decrementing a predetermined number of packets per unit of time (PPS) per step in accordance with a comparison result.
제20항에 있어서,
상기 스위치로부터 SNMP(Simple Network Management Protocol)를 통해 상기 스위치의 CPU 사용량 및 트래픽양을 수신하여 상기 모니터링부로 전달하는 SNMP 통신부를 더 포함하고,
상기 임계치 설정부는,
상기 CPU 사용량 및 트래픽양에 따라 재설정한 상기 단위 초당 일정 패킷 수(PPS)를 새로 정의된 오픈플로우 메시지 또는 새로 정의된 응용 프로그램 인터페이스(API, Application Programming Interface)를 이용하여 상기 스위치로 전달하는 컨트롤러.
21. The method of claim 20,
And an SNMP communication unit for receiving the CPU usage amount and the traffic amount of the switch from the switch through SNMP (Simple Network Management Protocol) and transmitting the received amount to the monitoring unit,
The threshold value setting unit may set,
(PPS) per unit time, which is reset according to the amount of CPU usage and traffic, to the switch using a newly defined open flow message or a newly defined application programming interface (API).
제22항에 있어서,
상기 임계치 설정부는,
특정 포트의 트래픽양이 다른 포트의 트래픽양보다 N배 이상 많으면, 해당 포트의 단위 초당 일정 패킷 수를 1/N으로 설정하는 컨트롤러.
23. The method of claim 22,
The threshold value setting unit may set,
If the amount of traffic on a particular port is more than N times the amount of traffic on another port, the controller sets a certain number of packets per second per port as 1 / N.
제22항에 있어서,
상기 임계치 설정부는,
같은 도메인의 스위치와 연결된 포트를 외부와 연결된 포트보다 우선순위를 높게 설정하고, 우선순위가 높은 포트의 단위 초당 일정 패킷수를 우선순위가 상대적으로 낮은 포트의 단위 초당 일정 패킷수보다 낮게 설정하는 컨트롤러.
23. The method of claim 22,
The threshold value setting unit may set,
A port connected to a switch in the same domain is set to have a higher priority than a port connected to the outside and a certain number of packets per second unit of a port having a higher priority is set to be lower than a predetermined number of packets per unit of a port having a lower priority, .
제20항에 있어서,
상기 플로우 규칙 생성부는,
보안 센터로부터 악의적인 트래픽을 발생시키는 IP 정보를 수집하여 블랙리스트를 생성하고, 상기 패킷 입력 메시지에 포함된 소스 IP 주소 및 목적지 IP 주소를 상기 블랙리스트와 비교하여 일치하면, 상기 블랙리스트에 포함된 IP 주소를 가진 패킷을 차단시키는 액션을 정의하고,
상기 메시지 처리부는,
상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 컨트롤러.
21. The method of claim 20,
Wherein the flow rule generation unit comprises:
A black list is generated by collecting IP information generating malicious traffic from the security center, and if a source IP address and a destination IP address included in the packet input message are compared with the black list, Define an action that blocks packets with IP addresses,
The message processing unit,
Receiving a packet input message from the switch, and transmitting a flow modification message including the action to the switch.
제20항에 있어서,
상기 플로우 규칙 생성부는,
상기 패킷 입력 메시지로부터 추출한 인입 포트의 트래픽양 또는 CPU 사용량이 임계치를 초과하면, 상기 인입 포트, 상기 패킷 입력 메시지로부터 추출한 IP 주소로 구성된 IP 테이블을 생성하고, 상기 IP 주소를 가진 패킷에 대해 정해진 시간동안 패킷 입력 메시지 생성을 제한하는 액션을 정의하고,
상기 메시지 처리부는,
상기 스위치로부터 패킷 입력 메시지를 수신하고, 상기 액션이 포함된 플로우 수정 메시지를 상기 스위치로 전송하는 컨트롤러.
21. The method of claim 20,
Wherein the flow rule generation unit comprises:
Generating an IP table composed of the incoming port and the IP address extracted from the packet input message when the amount of traffic or CPU usage of the incoming port extracted from the packet input message exceeds a threshold value, Defines an action that restricts the generation of packet input messages during a session,
The message processing unit,
Receiving a packet input message from the switch, and transmitting a flow modification message including the action to the switch.
KR1020150118969A 2015-08-24 2015-08-24 Method for controling packet-in message, switch and controller thereof KR101712168B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150118969A KR101712168B1 (en) 2015-08-24 2015-08-24 Method for controling packet-in message, switch and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150118969A KR101712168B1 (en) 2015-08-24 2015-08-24 Method for controling packet-in message, switch and controller thereof

Publications (1)

Publication Number Publication Date
KR101712168B1 true KR101712168B1 (en) 2017-03-03

Family

ID=58410535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150118969A KR101712168B1 (en) 2015-08-24 2015-08-24 Method for controling packet-in message, switch and controller thereof

Country Status (1)

Country Link
KR (1) KR101712168B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101931543B1 (en) * 2017-10-26 2019-03-13 아토리서치(주) Method and computer program for handling trouble using flow-mod message in software defined networking environment
KR20190049323A (en) * 2017-11-01 2019-05-09 숭실대학교산학협력단 SDN for preventing malware attack and controller including the same
KR102333553B1 (en) * 2021-05-07 2021-12-01 프라이빗테크놀로지 주식회사 System for controlling network access based on controller and method of the same
KR102358595B1 (en) * 2021-05-07 2022-02-08 프라이빗테크놀로지 주식회사 System for controlling network access based on controller and method of the same
WO2023068553A1 (en) * 2021-10-20 2023-04-27 프라이빗테크놀로지 주식회사 System for controlling network connection based on controller, and method therefor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050076158A (en) * 2004-01-19 2005-07-26 삼성전자주식회사 Method for controlling traffic congestion and apparatus for implementing the same
KR20140052847A (en) * 2012-10-22 2014-05-07 한국전자통신연구원 Method and apparatus for providing quality of service in software defiend neworking network
KR101414753B1 (en) * 2010-11-22 2014-07-04 닛본 덴끼 가부시끼가이샤 Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050076158A (en) * 2004-01-19 2005-07-26 삼성전자주식회사 Method for controlling traffic congestion and apparatus for implementing the same
KR101414753B1 (en) * 2010-11-22 2014-07-04 닛본 덴끼 가부시끼가이샤 Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
KR20140052847A (en) * 2012-10-22 2014-05-07 한국전자통신연구원 Method and apparatus for providing quality of service in software defiend neworking network

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101931543B1 (en) * 2017-10-26 2019-03-13 아토리서치(주) Method and computer program for handling trouble using flow-mod message in software defined networking environment
KR20190049323A (en) * 2017-11-01 2019-05-09 숭실대학교산학협력단 SDN for preventing malware attack and controller including the same
KR102013044B1 (en) * 2017-11-01 2019-08-21 숭실대학교산학협력단 SDN for preventing malware attack and controller including the same
KR102333553B1 (en) * 2021-05-07 2021-12-01 프라이빗테크놀로지 주식회사 System for controlling network access based on controller and method of the same
KR102358595B1 (en) * 2021-05-07 2022-02-08 프라이빗테크놀로지 주식회사 System for controlling network access based on controller and method of the same
WO2022235006A1 (en) * 2021-05-07 2022-11-10 프라이빗테크놀로지 주식회사 System for controlling network connection based on controller, and method for same
WO2023068553A1 (en) * 2021-10-20 2023-04-27 프라이빗테크놀로지 주식회사 System for controlling network connection based on controller, and method therefor

Similar Documents

Publication Publication Date Title
US9276852B2 (en) Communication system, forwarding node, received packet process method, and program
KR101712168B1 (en) Method for controling packet-in message, switch and controller thereof
US9935974B2 (en) Hardware-logic based flow collector for distributed denial of service (DDoS) attack mitigation
EP3073700B1 (en) Malicious attack detection method and apparatus
US11032205B2 (en) Flow control method and switching device
US10193890B2 (en) Communication apparatus to manage whitelist information
KR102536676B1 (en) Packet processing method and apparatus, and related devices
WO2012056816A1 (en) Network system and method for controlling communication traffic
KR101618985B1 (en) Method and apparatus for dynamic control of traffic in software defined network enviroment
US8693335B2 (en) Method and apparatus for control plane CPU overload protection
EP1348285A2 (en) Progressive and distributed regulation of selected network traffic destined for a network node
US20150043574A1 (en) Communication apparatus, control apparatus, communication system, communication control method, communication terminal and program
WO2017035717A1 (en) Distributed denial of service attack detection method and associated device
US20130275620A1 (en) Communication system, control apparatus, communication method, and program
US20220286409A1 (en) Method and apparatus for configuring quality of service policy for service, and computing device
JP7103883B2 (en) Communication systems, communication control methods, and communication devices
JP2018195969A (en) Attack detection method, attack detection program, and relay device
US20140376394A1 (en) Communication apparatus, control apparatus, communication system, communication control method, and computer program
CN107147585B (en) Flow control method and device
KR20080002332A (en) Packet switch device and bandwidth control method thereof
WO2018177003A1 (en) Charging method, and related device and system
KR20100048105A (en) Network management apparatus and method thereof, user terminal for managing network and recoding medium thereof
US20140226486A1 (en) Communication Apparatus, Communication System, Communication Control Method, and Computer Program
US20140233381A1 (en) Communication apparatus, control apparatus, communication system, communication control method, and program
US20140233392A1 (en) Communication apparatus, communication system, communication control method, and program

Legal Events

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