KR20150082060A - A method and apparatus for managing flow table - Google Patents

A method and apparatus for managing flow table Download PDF

Info

Publication number
KR20150082060A
KR20150082060A KR1020140092606A KR20140092606A KR20150082060A KR 20150082060 A KR20150082060 A KR 20150082060A KR 1020140092606 A KR1020140092606 A KR 1020140092606A KR 20140092606 A KR20140092606 A KR 20140092606A KR 20150082060 A KR20150082060 A KR 20150082060A
Authority
KR
South Korea
Prior art keywords
flow table
flow
entry
flow entry
state
Prior art date
Application number
KR1020140092606A
Other languages
Korean (ko)
Other versions
KR101818082B1 (en
Inventor
박세형
강세훈
이병준
신지수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/589,077 priority Critical patent/US20150195183A1/en
Priority to CN201510003772.5A priority patent/CN104767634A/en
Publication of KR20150082060A publication Critical patent/KR20150082060A/en
Application granted granted Critical
Publication of KR101818082B1 publication Critical patent/KR101818082B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • 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/29Flow control; Congestion control using a combination of thresholds

Landscapes

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

Abstract

Disclosed are a method and an apparatus for managing a flow table. According to the method of an embodiment of the present invention, the flow table is managed by: sorting the flow table into multiple states according to a usage rate of the flow table in a network device; and then reflecting the state of the flow table.

Description

플로우 테이블 관리 방법 및 그 장치 {A method and apparatus for managing flow table}[0001] METHOD AND APPARATUS FOR MANAGING FLOW TABLE [0002]

본 발명은 소프트웨어 정의 네트워크에 관한 것으로, 보다 상세하게는 소프트웨어 정의 네트워크에서의 플로우 처리 및 테이블 관리기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software defined network, and more particularly to a flow processing and table management technique in a software defined network.

소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)는 네트워크의 전송 평면(transport plane)과 제어 평면(control plane)이 분리된다. 전송 평면은 패킷 전송에 필요한 모든 결정을 제어 평면에 질의하고, 제어 평면이 전송 평면에 설치된 소프트웨어를 통해 네트워크 구성과 패킷 흐름을 중앙 집중식으로 제어한다. SDN에서 전송 평면은 SDN 기반 SDN 스위치라 부르고, 제어 평면은 통상 SDN 컨트롤러(controller)라고 부른다.A Software Defined Network (hereinafter referred to as SDN) separates a transport plane and a control plane of a network. The transmission plane queries the control plane for all decisions needed for packet transmission, and the control plane centrally controls network configuration and packet flow through software installed in the transmission plane. In SDN, the transmission plane is called SDN-based SDN switch, and the control plane is usually called SDN controller.

SDN 기술은 네트워크의 제어 평면을 SDN 컨트롤러에 집중시킴으로써 소프트웨어를 통해 패킷 전송 과정을 제어할 수 있도록 한다. 현재의 SDN 스위치의 플로우 테이블의 구조 상 플로우 엔트리 수에 상당한 제한이 있으므로 원활할 통신을 위해서는 플로우 테이블의 수위(Occupancy level or vacancy level)에 따라 다양한 플로우 테이블 관리 기법을 적용하여야 한다. 그러나, 현재의 SDN 스위치의 플로우 테이블은 초기 단계이므로 단 하나의 기법만 적용 가능하므로 네트워크에서 발생할 수 있는 다양한 상황에 효과적으로 테이블 관리 기법을 수위에 따라 변화시키면 대응할 수 없어 네트워크 서비스가 중단되거나 심각한 장애를 일으킬 수 있다. SDN technology allows the software to control the packet transmission process by concentrating the control plane of the network on the SDN controller. Since there is a considerable limitation on the number of flow entries in the current SDN switch flow table structure, various flow table management methods should be applied according to the level of Occupancy level or vacancy level for smooth communication. However, since the flow table of the current SDN switch is in the initial stage, only one technique can be applied. Therefore, if the table management technique is changed according to the water level in various situations that may occur in the network, Can cause.

일 실시 예에 따라, SDN 전송 평면에 해당하는 SDN 스위치의 플로우 테이블을 효율적으로 관리할 수 있는 플로우 테이블 관리 방법 및 그 장치를 제안한다.According to an embodiment, a flow table management method and apparatus for efficiently managing a flow table of an SDN switch corresponding to an SDN transmission plane are proposed.

일 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계와, 변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a flow table management method comprising the steps of: dividing a flow table into a plurality of states according to a usage rate of a flow table in a network device; receiving a change of state of a flow table from a network device; And managing the flow table by reflecting the state.

다수의 상태로 구분하는 단계에서, 플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정할 수 있는데, 특히 플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성할 수 있다.In the step of dividing into a plurality of states, the flow table can be divided into a plurality of zones and a threshold value for each zone can be set. In particular, for each zone of the flow table, the upper threshold value and the lower threshold value are paired Can be configured.

플로우 테이블의 상태 변경을 통보 받는 단계에서, 플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신할 수 있다. 또는 플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신할 수 있다.In the step of notifying the state change of the flow table, a message informing the arrival of the upper limit threshold value from the network device when the flow table utilization rate reaches a preset upper limit threshold value may be received. Or a message informing the network device of the arrival of the lower threshold value when the flow table utilization reaches a preset lower threshold value.

플로우 테이블을 관리하는 단계에서, 플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하고, 결정된 관리방식을 포함하는 지시를 네트워크 장치에 전송할 수 있다.In the step of managing the flow table, when the state of the flow table is changed, the management method for the flow entry constituting the flow table is determined according to the changed state, and an instruction including the determined management method can be transmitted to the network device.

플로우 테이블을 관리하는 단계에서, 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절하거나 해당 플로우 엔트리를 제거할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리할 수 있다. 또는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리할 수 있다.In managing the flow table, it is possible to adjust the remaining time of the flow entry or remove the corresponding flow entry according to the usage rate of the flow table. Alternatively, the flow entry can be managed based on the frequency of use of the flow entry according to the usage rate of the flow table. Alternatively, the flow entry can be managed based on the duration of the flow entry according to the usage rate of the flow table.

플로우 테이블 관리방법은, 새로운 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계를 더 포함할 수 있다. 이때, 사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입할 수 있다.The flow table management method may further include inserting a new flow entry into a predetermined insertion point of the flow table. At this time, a new flow entry can be inserted between the replaceable flow entry and the active flow entry classified according to the frequency of use.

다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블을 구성하는 플로우 엔트리의 속성을 설정하는 단계와, 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태를 반영하여 설정된 플로우 엔트리의 속성을 결정하는 단계를 포함한다.According to another embodiment of the present invention, there is provided a flow table management method comprising: setting an attribute of a flow entry constituting a flow table in a network device; dividing the flow table into a plurality of states according to a usage rate of the flow table; And determining an attribute of the flow entry set reflecting the state of the table.

플로우 엔트리의 속성을 설정하는 단계에서, 사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하고, 사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정할 수 있다.In the step of setting the attribute of the flow entry, it is possible to set the remaining absolute remaining time in the flow table with respect to the used flow entry, and to set the remaining idle remaining time in the flow table with respect to the unused flow entry.

플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키고, 미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시킬 수 있다. 이때, 플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하고, 사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정할 수 있다.In the step of setting the attribute of the flow entry, if there is a flow entry matched with the received packet in the flow table, the use frequency of the flow entry is increased, and when the preset time elapses, the use frequency number of the flow entry is initialized . At this time, if the frequency of use exceeds the preset activation value, the flow entry is set as the activation entry according to the increase or decrease in the frequency of use of the flow entry. If the use frequency does not exceed the preset activation value, the entry can be set as the replaceable entry.

플로우 엔트리의 속성을 설정하는 단계에서, 플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정할 수 있다.In the step of setting the attribute of the flow entry, the duration time in which the flow entry remains in the flow table can be set.

설정된 플로우 엔트리의 속성을 결정하는 단계에서, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.In the step of determining the attribute of the set flow entry, when the use rate of the flow table increases and the state of the flow table changes, the remaining time of the newly added flow entry can be reduced. At this time, if the usage rate of the flow table increases and the state of the flow table changes from the first state to the second state, the remaining time of the newly added flow entry is subtracted by a predetermined time, and the usage rate of the flow table increases, If the state changes from the second state to the third state, the remaining time of the newly added flow entry can be deducted in proportion to the usage rate increase rate of the flow table or the corresponding flow entry can be removed.

또 다른 실시 예에 따른 플로우 테이블 관리방법은, 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계와, 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계를 포함한다.According to another embodiment of the present invention, there is provided a flow table management method comprising the steps of: dividing a flow table into a plurality of states according to a usage rate of a flow table in a network device; The method comprising:

플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계와, 확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계를 포함할 수 있다.The step of determining the processing type of the flow entry includes the steps of: confirming the use frequency of each flow entry constituting the flow table when the usage rate of the flow table is increased and the state of the flow table is changed; Activation entries that are greater than or equal to the activation value may be protected and may include removing or replacing a replaceable entry that is less than or equal to the preset activation value with a new flow entry.

플로우 엔트리의 처리방식을 결정하는 단계는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계와, 확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계를 포함할 수 있다.The step of determining the processing method of the flow entry includes the steps of: confirming the duration of each flow entry constituting the flow table when the usage rate of the flow table increases and the state of the flow table changes; Protecting the larger flow entry, and removing the flow entry whose confirmed duration is less than a predetermined time.

또 다른 실시 예에 따른 네트워크 장치는, 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 지시 받는 통신부와, 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부와, 플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부를 포함한다. 이때, 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러일 수 있다.According to another embodiment of the present invention, there is provided a network device including: a communication unit for notifying a status change of a flow table to a controller and instructing a flow table management method reflecting the status of the flow table; and a flow table And a packet processing unit for processing the received packet using the flow table. At this time, the network device may be a software defined network switch, and the controller may be a software defined network controller.

테이블 관리부는, 플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분할 수 있다.The table management unit may divide the flow table into a plurality of zones constituted by pairs of the upper threshold value and the lower threshold value according to the usage rate of the flow table.

플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킬 수 있다. 이때, 플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거할 수 있다.The flow table management unit can reduce the remaining time of the flow entry newly added according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes. At this time, if the usage rate of the flow table increases and the flow table state changes from the first state to the second state, the flow table management unit sets the remaining time of the flow entry newly added according to the flow table management method instructed by the controller to a predetermined time And if the flow table state changes from the second state to the third state, the remaining time of the newly added flow entry can be deducted in proportion to the use rate increase rate of the flow table or the corresponding flow entry can be removed.

플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓸 수 있다.The flow table management unit protects an activation entry whose number of use frequencies is equal to or greater than a preset activation value according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes, Replaceable entries can be removed or overwritten with new flow entries.

플로우 테이블 관리부는, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거할 수 있다.The flow table management unit protects a flow entry whose duration is longer than a predetermined time according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes, Small flow entries can be removed.

일 실시 예에 따르면, SDN 스위치 내 플로우 테이블의 상태를 반영하여 적응적으로 플로우 테이블 관리가 가능하고, 네트워크에 변화가 심하거나, 짧은 시간 동안 지속되는 플로우가 많은 경우, 또는 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서도 효율적인 플로우 테이블 관리가 가능하다.According to an embodiment, it is possible to adaptively manage the flow table by reflecting the state of the flow table in the SDN switch. In the case where there are many flows that vary greatly in the network or continue for a short time, It is possible to manage the flow table efficiently even when a flooding attack occurs due to a mistake.

특히, 플로우 테이블의 사용률에 따라 다양한 플로우 테이블 관리 메커니즘을 적용하여 최적의 플로우 테이블 관리를 제공할 수 있다. 예를 들어, 플로우 테이블의 사용률에 대한 상한 임계값과 하한 임계값을 지정하고, 지정된 상한 임계값 또는 하한 임계값에 도달할 때마다 그에 맞는 플로우 테이블 관리방식을 적용하여 유효한 플로우 엔트리에 영향을 미치지 않으면서 플로우 테이블을 효율적이고 안정적으로 운용할 수 있다. 나아가, SDN의 안정성을 높이고 SDN 스위치와 SDN 컨트롤러 간의 전송 메시지를 줄일 수 있다.In particular, it is possible to provide optimal flow table management by applying various flow table management mechanisms according to the utilization rate of the flow table. For example, an upper threshold value and a lower threshold value for a usage rate of a flow table are specified, and each time a specified upper threshold value or lower threshold value is reached, a corresponding flow table management method is applied to affect a valid flow entry The flow table can be efficiently and stably operated. Furthermore, it can increase the stability of the SDN and reduce the transmission messages between the SDN switch and the SDN controller.

도 1은 본 발명의 일 실시 예에 따른 네트워크 구성도,
도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도,
도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프,
도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도,
도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도,
도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도,
도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프,
도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도,
도 10은 본 발명의 일 실시 예에 따른 네트워크 장치의 구성도이다.
1 is a network configuration diagram according to an embodiment of the present invention;
2 is a block diagram of an SDN according to an embodiment of the present invention.
3 is a graph showing a flow table management mechanism differentiated according to the utilization rate of a flow table according to an embodiment of the present invention;
4 is a flowchart illustrating a flow table management method according to an embodiment of the present invention;
FIG. 5 is a structure diagram of a flow entry to which a residual time is applied according to an embodiment of the present invention;
6 is a graph showing a flow table management mechanism using a flow entry idle timeout according to an embodiment of the present invention;
FIG. 7 is a structure diagram of a flow entry to which frequency of use according to an embodiment of the present invention is applied;
8 is a graph illustrating a flow table management mechanism using a flow entry frequency of use according to an embodiment of the present invention;
FIG. 9 is a structure diagram of a flow entry to which a duration is applied according to an embodiment of the present invention; FIG.
10 is a configuration diagram of a network device according to an embodiment of the present invention.

이하에서는 첨부한 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In addition, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention of the user, the operator, or the custom. Therefore, the definition should be based on the contents throughout this specification.

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

도 1을 참조하면, 네트워크는 네트워크 장치(10)와 컨트롤러(12)를 포함한다. 네트워크에서는 플로우(flow)를 이용하여 통신 가능하다. 플로우는 패킷의 수신부터 송신까지 패킷에 대한 일련의 흐름을 의미한다. 네트워크 장치(10)는 패킷 처리에 필요한 모든 결정을 컨트롤러(12)에 질의하고, 컨트롤러(12)는 네트워크 구성 및 네트워크 장치(10)를 통한 패킷 처리를 제어한다. 전술한 특징을 가진 네트워크를 소프트웨어 정의 네트워크(Software Defined Network: 이하 SDN이라 칭함)라 한다. 이하, 후술되는 상세한 설명에서는 SDN을 중심으로 설명한다.Referring to FIG. 1, the network includes a network device 10 and a controller 12. In the network, communication is possible using a flow. A flow refers to a series of flows through a packet from reception to transmission. The network device 10 queries the controller 12 for all the decisions required for packet processing and the controller 12 controls the network configuration and packet processing through the network device 10. [ A network having the above-described characteristics is referred to as a Software Defined Network (SDN). Hereinafter, SDN will be mainly described in the following detailed description.

SDN에서 네트워크 장치는 SDN 스위치이고 컨트롤러는 SDN 컨트롤러일 수 있다. SDN 컨트롤러는 SDN 스위치를 중앙집중 방식으로 관리한다. SDN 스위치는 SDN 컨트롤러의 제어를 받는 에지 스위치(edge switch) 또는 코어 스위치(core switch)일 수 있다. SDN에서 입력 측 에지 스위치에 의한 패킷 수신으로부터 출력 측 에지 스위치에 의한 패킷 송신까지 패킷에 대한 일련의 흐름이 플로우가 된다. 플로우는 오픈플로우(OpenFlow) 아키텍처의 특정 애플리케이션에 의해 정의될 수 있다. 이런 점에서 오픈플로우는 SDN의 한 종류가 된다.In SDN, the network device may be an SDN switch and the controller may be an SDN controller. The SDN controller centrally manages the SDN switch. The SDN switch may be an edge switch or a core switch under the control of an SDN controller. In SDN, a series of flows for packets from the reception of a packet by the input side edge switch to the transmission of the packet by the output side edge switch is a flow. Flows can be defined by specific applications in the OpenFlow architecture. In this regard, open flows become a kind of SDN.

도 2는 본 발명의 일 실시 예에 따른 SDN의 구성도이다.2 is a block diagram of an SDN according to an embodiment of the present invention.

도 2를 참조하면, 호스트들(24,26)은 SDN 스위치(20)에 연결되며, SDN 스위치(20)는 SDN 컨트롤러(22)에 연결된다. 도 2에서는 한 개의 SDN 스위치(20)와 SDN 컨트롤러(22)만을 도시하였으나, 이는 설명을 용이하게 위한 것으로 이 구조는 확장 가능하다.2, the hosts 24 and 26 are connected to the SDN switch 20, and the SDN switch 20 is connected to the SDN controller 22. Although only one SDN switch 20 and SDN controller 22 are shown in FIG. 2, this is for ease of description and the structure is expandable.

SDN 스위치(20)는 플로우 테이블(flow table)(200)을 가진다. 플로우 테이블(200)은 룰(매치 조건)에 따라 패킷이 처리되어야 할 액션(처리 내용)을 정의한 플로우 엔트리(flow entry)를 가진 테이블이다. 플로우 엔트리에는 오픈플로우 아키텍처에서 정의한 룰과 액션이 정의된다.The SDN switch 20 has a flow table 200. The flow table 200 is a table having a flow entry that defines actions (processing contents) to be processed in accordance with a rule (match condition). The flow entry defines the rules and actions defined in the open-flow architecture.

플로우 엔트리의 룰은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port), 송신원 포트(Source Port) 등에 기초하여 정의되고 식별 가능하다.The rule of the flow entry includes a destination address, a source address, a destination port, a source port (source address) included in the header area of each protocol layer of the packet as defined in the open flow, Port) and the like.

플로우 엔트리의 액션은 오픈플로우에서 정의한 바와 같이 "특정한 포트에 출력한다(OUT)", "폐기한다(DROP)" 등과 같은 동작을 나타낸다. 예를 들어, SDN 스위치(20)는 플로우 엔트리의 액션에 출력 포트의 식별 데이터가 나타나 있으면 이 식별 데이터에 대응하는 포트에 패킷을 출력하고, 출력 포트의 식별 데이터가 나타나 있지 않으면 패킷을 폐기한다. SDN 스위치(20)는 플로우 테이블(200)에 등록된 플로우 엔트리의 룰에 따른 패킷 군에 플로우 엔트리의 액션을 수행한다.The action of a flow entry indicates an operation such as " output to a specific port (OUT) ", "DROP ", and the like as defined in the open flow. For example, the SDN switch 20 outputs a packet to the port corresponding to the identification data of the output port when the identification data of the output port appears in the action of the flow entry, and discards the packet if the identification data of the output port does not appear. The SDN switch 20 performs an action of a flow entry in a packet group according to the rule of the flow entry registered in the flow table 200. [

SDN 컨트롤러(22)는 플로우 엔트리를 생성하여 이를 SDN 스위치(20)에 전송하고, SDN 스위치(20)는 전송받은 플로우 엔트리를 이용하여 플로우 테이블(200)을 구성한다. SDN 스위치(20)의 플로우 테이블(200)은 TCAM(Ternary Content Addressable Memory) 등과 같은 메모리의 크기 제약 또는 버퍼 오버플로우를 방지하기 위하여 최대 크기가 정해져 있다고 가정한다.The SDN controller 22 generates a flow entry and transmits it to the SDN switch 20, and the SDN switch 20 constructs the flow table 200 using the received flow entry. It is assumed that the flow table 200 of the SDN switch 20 has a maximum size to prevent memory size limitation or buffer overflow such as TCAM (Ternary Content Addressable Memory) and the like.

일 실시 예에 따른 SDN 컨트롤러(22)는 플로우 테이블(200)을 다수의 구역(Zone)으로 구분하고 각 구역의 임계값을 설정한다. 이때, SDN 컨트롤러(22)는 각 구역에 대해 상한 임계값과 하한 임계값을 쌍을 지어 구성할 수 있다. 예를 들어, 플로우 테이블의 사용률(Occupancy Level)에 따라, 제1 구역은 제1 상한 임계값과 제1 하한 임계값으로 구성되고, 제2 구역은 제2 상한 임계값과 제2 하한 임계값으로 구성되고, 제3 구역은 제3 상한 임계값과 제3 하한 임계값으로 구성된다. 각 구역은 구역 간에 서로 구역이 겹치지 않을 수도 있고 겹칠 수도 있다. 플로우 테이블의 사용률은 (%) 단위로 표시될 수 있고, 플로우 테이블의 남은 공간 또는 사용한 공간으로 정의될 수 있다. 각 구역 설정 및 각 구역 내 임계값 설정은 전술한 예에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.The SDN controller 22 according to an exemplary embodiment divides the flow table 200 into a plurality of zones and sets a threshold value of each zone. At this time, the SDN controller 22 can construct a pair of the upper threshold value and the lower threshold value for each zone. For example, according to the Occupancy Level of the flow table, the first zone is configured with a first upper threshold value and a first lower threshold value, and the second zone is configured with a second upper threshold value and a second lower threshold value And the third zone is constituted by a third upper limit threshold value and a third lower limit threshold value. Each zone may or may not overlap with another zone. The usage rate of the flow table can be expressed in units of (%), and can be defined as the remaining space or used space of the flow table. The setting of each zone and the setting of the threshold value in each zone are not limited to the above-described example, but can be changed according to the network environment.

SDN 컨트롤러(22)는 플로우 테이블(200)의 각 구역의 상태에 변경이 발생하면, 예를 들어 소정의 구역 내에서 사용률이 미리 설정된 상한 임계값에 도달하면 플로우 테이블(200)을 구성하는 플로우 엔트리에 대한 관리방식을 변경한다. 이를 위해, SDN 스위치(20)는 각 구역의 임계값에 도달할 때마다 이를 통보하는 메시지를 SDN 컨트롤러(22)에 전송하고, SDN 컨트롤러(22)는 SDN 스위치(20)로부터 구역의 변경을 통보 받게 된다. 예를 들어, 소정의 구역 내에서 상한 임계값에 도달하는 경우 상한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 다른 예로 하한 임계값에 도달하는 경우 하한 임계값 도달을 알리는 메시지를 SDN 스위치(20)로부터 통보 받을 수 있다. 또 다른 예로 소정의 구역 내 상한 임계값 도달을 알리는 메시지를 한 번 통보 받으면, 해당 구역 내 하한 임계값에 도달하기 이전까지는 SDN 스위치(20)가 상한 임계값 도달을 알리는 메시지의 추가 발생을 차단함에 따라 메시지 전송이 중복되는 현상을 차단한다.When a change occurs in the state of each zone of the flow table 200, for example, when the utilization rate reaches a preset upper limit threshold value in the predetermined area, the SDN controller 22 determines that the flow entry Change management method for. To this end, the SDN switch 20 sends a message to the SDN controller 22 notifying it of the threshold of each zone, and the SDN controller 22 notifies the SDN switch 20 of the change of zone . For example, when an upper threshold is reached within a given zone, a message informing the arrival of the upper threshold may be notified from the SDN switch 20. As another example, when the lower limit threshold value is reached, a message informing the arrival of the lower limit threshold value may be notified from the SDN switch 20. As another example, once a message informing the arrival of the upper limit threshold value in a predetermined zone is notified, the SDN switch 20 blocks the further occurrence of the message informing that the upper limit threshold value has been reached until the lower limit threshold value in the zone is reached Thereby preventing duplicate message transmission.

구역 변경을 알리는 메시지를 통보 받은 SDN 컨트롤러(22)는 변경된 상황에 적합한 플로우 테이블 관리 메커니즘을 SDN 스위치(20)에 적용하여 플로우 테이블(200)을 차등 관리한다. 예를 들면, 도 2에 도시된 바와 같이 플로우 테이블(200)의 구역 변경에 따라 플로우 테이블 관리 메커니즘 1,2,3을 각각 적용한다. 플로우 테이블(200)을 구성하는 플로우 엔트리는 다양한 플로우 테이블 관리 메커니즘을 지원하기 위해, 플로우 엔트리 잔여시간(lifetime), 플로우 엔트리 사용 빈도 수(frequency), 플로우 엔트리 지속시간(age) 등의 속성을 가진다. SDN 스위치(20)는 전술한 각 속성 또는 속성들의 조합을 이용하여 다양한 플로우 테이블 관리 메커니즘을 플로우 테이블(200)에 적용한다.The SDN controller 22 having received the message informing the zone change applies the flow table management mechanism suitable for the changed situation to the SDN switch 20 to manage the flow table 200 in a differential manner. For example, as shown in FIG. 2, the flow table management mechanisms 1, 2, and 3 are applied in accordance with the area change of the flow table 200, respectively. The flow entries constituting the flow table 200 have properties such as flow entry remaining lifetime, frequency of flow entry use frequency, flow entry age, etc. to support various flow table management mechanisms . The SDN switch 20 applies various flow table management mechanisms to the flow table 200 using each of the attributes or combinations of the attributes described above.

플로우 테이블(200)에 대한 차등적 관리 메커니즘 적용에 의해 다양한 보안문제를 해결할 수 있다. 예를 들어, 제1 호스트(24)가 악의적인 사용자인 경우, 플러딩 공격(Flooding attack)의 한 방법으로 단순히 Source IP 주소를 변경해 가면서 패킷을 SDN 스위치(20)로 흘리면, 일반적으로 그 모든 패킷들은 SDN 컨트롤러(22)로 전송되고 다시 SDN 컨트롤러(22)에서 SDN 스위치(20)의 플로우 테이블에 전송정보가 기록되게 된다. 이때, SDN 스위치(20)의 플로우 테이블에 기록된 정보가 너무 많을 경우, 정해진 메모리의 한계를 넘게 되어 더 이상의 플로우가 기록되지 않게 된다. 그러나, 본 발명에 의하면, 플로우 테이블의 사용률이 미리 설정된 임계값을 넘게 되면, 새로 추가되는 플로우 엔트리의 잔여시간을 감소시키거나, 교체 가능 엔트리는 제거하는 방식 등의 관리 메커니즘을 적용할 수 있다. 이에 따라, SDN 스위치(20)의 플로우 테이블의 상태, 특히 악의적인 사용자나 사용자의 실수로 인해 플러딩 공격(Flooding attack) 등이 발생한 상태에서 효율적인 플로우 테이블 관리가 가능하다.Various security problems can be solved by applying a differential management mechanism to the flow table 200. For example, if the first host 24 is a malicious user, if a packet is sent to the SDN switch 20 while simply changing the source IP address as a flooding attack method, The transmission information is transmitted to the SDN controller 22 and then to the flow table of the SDN switch 20 at the SDN controller 22. At this time, if the information recorded in the flow table of the SDN switch 20 is too large, the limit of the memory is exceeded, and no further flow is recorded. However, according to the present invention, when the usage rate of the flow table exceeds a predetermined threshold value, a management mechanism such as a method of reducing the remaining time of a newly added flow entry or removing a replaceable entry can be applied. Accordingly, it is possible to efficiently manage the flow table in the state of the flow table of the SDN switch 20, in particular, in a state where a flooding attack or the like occurs due to a malicious user or a mistake of the user.

도 3은 본 발명의 일 실시 예에 따른 플로우 테이블의 사용률에 따라 차등화된 플로우 테이블 관리 메커니즘을 보여주는 그래프이다.FIG. 3 is a graph showing a flow table management mechanism differentiated according to the usage rate of a flow table according to an embodiment of the present invention.

도 3을 참조하면, 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 구역으로 구분할 수 있다. 그리고, 각 구역은 상한 임계값과 하한 임계값이 쌍으로 구성될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 플로우 테이블의 사용률에 따라, 제1 구역은 제1 상한 임계값(1st up_threshold)과 제1 하한 임계값(1st down_threshold)을 쌍으로 가지고, 제2 구역은 제2 상한 임계값(2nd up_threshold)과 제2 하한 임계값(2nd down_threshold)을 쌍으로 가지며, 제N 구역은 제n 상한 임계값(nth up_threshold)과 제n 하한 임계값(nth down_threshold)을 쌍으로 가진다. 각 구역은 서로 일부 구역이 겹치지 않을 수도 있고 겹칠 수도 있다.Referring to FIG. 3, the flow table can be divided into a plurality of zones according to a usage rate of the flow table. And, each zone can be composed of a pair of an upper threshold value and a lower threshold value. For example, as shown in FIG. 3, according to the usage rate of the flow table, the first zone has a first upper threshold value (1 st up_threshold) and a first lower threshold value (1 st down_threshold) 2 zone has a pair of a second upper threshold value (2 nd up_threshold) and a second lower threshold value (2 nd down_threshold), and an N th zone has an nth upper threshold value (n th up_threshold) n th down_threshold). Each zone may or may not overlap some of the zones.

각 구역 별로 차등화된 플로우 테이블 관리 메커니즘을 예를 들면, 제1 구역의 제1 상한 임계값(1st up_threshold)에 도달하지 이전까지는, SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 1을 적용한다. 그러다, 플로우 테이블의 사용률이 제1 상한 임계값(1st up_threshold)을 넘으면 제2 상한 임계값(2nd up_threshold)에 도달하기 이전까지 SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 2를 적용한다. 그러다, 플로우 테이블의 사용률이 제2 상한 임계값(2nd up_threshold)를 넘어서면 SDN 컨트롤러는 SDN 스위치에 플로우 테이블 관리 메커니즘 N을 적용한다. 그러나, 도 3을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐 플로우 테이블의 사용률에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Prior to reaching the first upper bound threshold (1 st up_threshold) of the first zone, the SDN controller applies the flow table management mechanism 1 to the SDN switch, for example, for each zone-specific flow table management mechanism. If the usage rate of the flow table exceeds the first upper threshold value (1 st up_threshold), the SDN controller applies the flow table management mechanism 2 to the SDN switch until the second upper threshold value (2 nd up_threshold) is reached. Then, when the utilization rate of the flow table exceeds the second upper threshold (2 nd up_threshold), the SDN controller applies the flow table management mechanism N to the SDN switch. However, the above-described example with reference to FIG. 3 is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism according to the usage rate of the flow table may be variously modified.

도 4는 본 발명의 일 실시 예에 따른 플로우 테이블 관리방법을 도시한 흐름도이다.4 is a flowchart illustrating a flow table management method according to an embodiment of the present invention.

도 4를 참조하면, SDN 스위치(20)가 새로운 패킷을 수신(400)하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다(410). 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 SDN 스위치(20)는 수신 패킷을 SDN 컨트롤러(22)에 전송한다(420). SDN 컨트롤러(22)가 수신 패킷을 SDN 스위치(20)로부터 전송 받는 것을 오픈플로우에서는 패킷 인(Packet_IN)이라 한다.Referring to FIG. 4, when the SDN switch 20 receives (400) a new packet, it searches a flow entry matching the received packet with the matching condition by referring to the flow table (410). At this time, if there is no flow entry matching the match condition in the received packet, the SDN switch 20 transfers the received packet to the SDN controller 22 (420). In the open flow, the SDN controller 22 receives a received packet from the SDN switch 20 as packet in (Packet_IN).

SDN 스위치(20)로부터 패킷 인 메시지를 수신한 SDN 컨트롤러(22)는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성(430)하고 생성된 플로우 엔트리 추가를 SDN 스위치(20)에 지시한다. 구체적으로, SDN 컨트롤러(22)는 SDN 컨트롤러(22)에서 지정한 플로우 테이블 관리 메커니즘에 의해 플로우 테이블(200)의 삽입 지점(Insertion Point)에 새로운 플로우 엔트리를 삽입한다(440). 삽입 지점은 플로우 테이블 관리 메커니즘의 종류에 따라 플로우 테이블의 헤드(head)나 테일(tail)일 수 있다. 또는 다른 위치일 수도 있다. 그러면, SDN 스위치(20)는 새로운 플로우 엔트리가 추가된 플로우 테이블을 구성한다.The SDN controller 22, having received the packet in message from the SDN switch 20, generates 430 a new flow entry for processing the received packet and instructs the SDN switch 20 to add the generated flow entry. Specifically, the SDN controller 22 inserts a new flow entry at the insertion point of the flow table 200 by the flow table management mechanism designated by the SDN controller 22 (440). The insertion point may be a head or a tail of the flow table depending on the type of the flow table management mechanism. Or other location. Then, the SDN switch 20 constitutes a flow table to which a new flow entry is added.

플로우 엔트리 추가 또는 제거 등의 이벤트가 발생하면, SDN 스위치(20)는 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다(450). 또는 SDN 스위치(20)는 플로우 테이블의 상태를 주기적으로 확인하다가 플로우 테이블의 상태가 변경되는 경우, 예를 들어 플로우 테이블의 사용률이 미리 지정한 임계값을 넘어서는 경우, 이에 관련된 이벤트 메시지를 SDN 컨트롤러(22)에 통보한다. 미리 지정한 임계값은 구역 내 상한 임계값 또는 하한 임계값일 수 있다. SDN 컨트롤러(22)는 통보 메시지에 대한 응답으로 SDN 스위치(20)에 현재의 플로우 테이블 상황에 적합한 플로우 테이블 관리 메커니즘을 적용한다(460).When an event such as adding or removing a flow entry occurs, the SDN switch 20 notifies the SDN controller 22 of an event message related thereto (450). Alternatively, the SDN switch 20 periodically checks the state of the flow table. When the state of the flow table is changed, for example, when the usage rate of the flow table exceeds a predetermined threshold, the SDN controller 20 transmits an event message related thereto to the SDN controller 22 ). The predetermined threshold value may be an upper limit threshold or a lower limit threshold in the zone. The SDN controller 22 applies a flow table management mechanism suitable for the current flow table situation to the SDN switch 20 in response to the notification message (460).

도 5는 본 발명의 일 실시 예에 따른 잔여시간이 적용된 플로우 엔트리의 구조도이다.5 is a structural diagram of a flow entry to which a residual time is applied according to an embodiment of the present invention.

도 5를 참조하면, 플로우 엔트리는 룰(500), 액션(510) 및 잔여시간(Lifetime)(520) 필드를 포함한다.Referring to FIG. 5, a flow entry includes a rule 500, an action 510, and a Lifetime 520 field.

룰(500)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(510)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 5에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The rule 500 includes a Destination Address (DA), a Source Address (SA), and a Destination Port (Dst), which are included in the header area of each protocol layer of the packet as defined in the open flow. Port, a source port (Src Port), and the like. The action 510 indicates how to process the packet, and for example, instructs the transmission of the packet to the port X as shown in FIG.

잔여시간(520)은 해당 플로우 엔트리가 플로우 테이블에서 제거되기 이전까지 잔류할 수 있는 시간(remaining time)을 의미한다. 잔여시간(520)은 SDN 컨트롤러에 의하여 설정되는데, SDN 컨트롤러는 잔여시간(520)의 길이뿐만 아니라 종류까지 설정할 수 있다. 예를 들어, 절대 잔여시간(Hard timeout) 또는 유휴 잔여시간(idle timeout)을 설정할 수 있다. 절대 잔여시간(Hard timeout)은 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 절대적인 시간을 의미하고, 유휴 잔여시간(idle timeout) 더 이상 플로우 엔트리가 사용이 되지 않았을 때 플로우 엔트리가 플로우 테이블에 잔류할 수 있는 시간을 의미한다.The remaining time 520 means a remaining time before the flow entry is removed from the flow table. The remaining time 520 is set by the SDN controller, which can set up the length of the remaining time 520 as well as the type. For example, it is possible to set an absolute time (hard timeout) or an idle timeout (idle timeout). Hard timeout means an absolute time at which a flow entry can remain in the flow table, and idle timeout. When a flow entry is no longer used, the flow entry may remain in the flow table It means time.

도 6은 본 발명의 일 실시 예에 따른 플로우 엔트리 유휴 잔여시간(idle timeout)을 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.6 is a graph illustrating a flow table management mechanism using a flow entry idle timeout according to an embodiment of the present invention.

도 6을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.Referring to FIG. 6, upon receiving a packet for the first time, the SDN switch refers to a flow table to search for a flow entry matching a match condition with a received packet. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry. At this time, a new flow entry is inserted at a predetermined insertion point of the flow table.

이어서, SDN 스위치는 플로우 테이블의 사용률을 감시하고 있다가, 사용률의 변경이 발생하면 이를 SDN 컨트롤러에 통보한다. 예를 들어, 도 6에 도시된 바와 같이, 플로우 테이블은 사용률에 따라 제1 구역은 하한 임계값이 0%이고 상한 임계값은 30%이며, 제2 구역은 하한 임계값이 30%이고 상한 임계값은 65%이며, 제3 구역은 하한 임계값이 65%이고 상한 임계값은 100%이다. 이때, SDN 스위치는 도 6에 도시된 바와 같이 사용률 0%에서 30%까지의 제1 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 유휴 잔여시간을 5초로 설정한다. 그러다, 사용률이 30%를 넘어서서 65%까지의 제2 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 미리 설정된 유휴 잔여시간, 예를 들어 1.5초의 유휴 잔여시간을 차감한다. 그러다, 사용률이 65%를 넘어서서 100%까지의 제3 구역에서는 SDN 컨트롤러가 새로 생성되는 플로우 엔트리에 대해 사용률 증가율에 비례하여 유휴 잔여시간을 차감하거나 해당 플로우 엔트리를 제거한다. 즉, 서서히 잔여시간을 차감하여 잔여시간을 0으로 만들 수도 있고, 바로 제거할 수도 있다. 한편, 도 6을 참조로 하여 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 각 구역의 임계값 설정과 구역 변경에 따른 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Then, the SDN switch monitors the usage rate of the flow table, and notifies the SDN controller when a change in utilization rate occurs. For example, as shown in FIG. 6, the flow table has a lower limit threshold value of 0% and an upper limit threshold value of 30% in the first zone and a lower limit threshold value of 30% in the second zone, Value is 65%, the third zone has a lower threshold value of 65% and the upper threshold value is 100%. At this time, as shown in FIG. 6, the SDN switch sets the idle remaining time to 5 seconds for the flow entry newly created by the SDN controller in the first zone from 0% to 30% of usage rate. Then, in a second zone with utilization above 30% and up to 65%, the SDN controller subtracts the preset idle time remaining for the newly created flow entry, for example 1.5 seconds idle time remaining. Then, in the third zone with a usage rate exceeding 65% and up to 100%, the SDN controller subtracts the idle remaining time or removes the corresponding flow entry in proportion to the usage rate increase rate for the newly created flow entry. That is, the remaining time may be gradually reduced to zero or may be immediately removed. Meanwhile, the above-described example with reference to FIG. 6 is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism according to the threshold setting and zone change of each zone can be variously modified.

도 7은 본 발명의 일 실시 예에 따른 사용 빈도 수가 적용된 플로우 엔트리의 구조도이다.7 is a structural diagram of a flow entry to which a frequency of use according to an embodiment of the present invention is applied.

도 7을 참조하면, 플로우 엔트리는 룰(700), 액션(710) 및 빈도 수(720) 필드를 포함한다.Referring to FIG. 7, a flow entry includes a rule 700, an action 710, and a frequency field 720 field.

룰(700)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(710)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 7에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The rule 700 includes a Destination Address (DA), a Source Address (SA), and a Destination Port (Dst), which are included in the header area of each protocol layer of the packet as defined in the open flow. Port, a source port (Src Port), and the like. The action 710 indicates how to process the packet, and for example, instructs the transmission of the packet to the port X as shown in Fig.

빈도 수(720)는 플로우 엔트리의 사용 빈도를 의미한다. 플로우 엔트리 매치가 발생할 때마다 빈도 수(720)는 증가할 수 있다. 유휴 잔여시간이 경과되면, 빈도 수(720)는 줄어들거나 또는 초기화될 수 있다. 빈도 수(720)를 기준으로 플로우 엔트리는 활성 플로우 엔트리(Active entries)와 교체 가능한 플로우 엔트리(Replaceable entries)로 분류될 수 있다. 예를 들어, 미리 설정된 활성 값을 넘으면 플로우 엔트리는 활성화 플로우 엔트리로 분류되고, 미리 설정된 활성 값을 넘지 못하면 플로우 엔트리는 교체 가능한 플로우 엔트리로 분류된다. SDN 컨트롤러는 분류된 플로우 엔트리의 종류를 기준으로 플로우 엔트리를 차등 관리한다. 예를 들어, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다(overwrite).The frequency count 720 indicates the frequency of use of the flow entry. Every time a flow entry match occurs, the frequency 720 may increase. When the idle remaining time has elapsed, the frequency 720 may be reduced or initialized. Based on the frequency count 720, flow entries can be classified into active entries and replaceable entries. For example, if the predefined activation value is exceeded, the flow entry is classified as the active flow entry, and if the predefined activation value is not exceeded, the flow entry is classified as a replaceable flow entry. The SDN controller differentially manages flow entries based on the type of the classified flow entry. For example, the activation entry is protected and the replaceable entry is removed or overwritten with a new flow entry.

도 8은 본 발명의 일 실시 예에 따른 플로우 엔트리 사용 빈도 수를 이용한 플로우 테이블 관리 메커니즘을 도시한 그래프이다.8 is a graph illustrating a flow table management mechanism using a flow entry frequency of use according to an embodiment of the present invention.

도 8을 참조하면, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. 이때, SDN 컨트롤러의 지시에 따라 새로운 플로우 엔트리는 플로우 테이블의 미리 설정된 삽입 지점에 삽입된다.Referring to FIG. 8, when the SDN switch receives a packet for the first time, it refers to the flow table and searches for a flow entry matching a match condition with the received packet. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry. At this time, a new flow entry is inserted into the preset insertion point of the flow table according to the instruction of the SDN controller.

일 실시 예에 따르면, 새로운 플로우 엔트리를 대체 가능한 플로우 엔트리(Replaceable Entries)(810)의 최 하단인 테일에 삽입하는 것이 아니라, 도 8에 도시된 바와 같이 대체 가능한 플로우 엔트리(810)와 활성 플로우 엔트리(Active Entries)(800) 사이의 삽입 지점(Insertion Point)(820)에 삽입한다. 대체 가능한 플로우 엔트리(810)의 테일 부분으로 새로운 플로우 엔트리가 삽입되면 새로운 플로우가 계속 들어오는 상황에서는 활성 플로우 엔트리(800)라도 바로 제거될(flush out) 가능성이 크다. 따라서, 이를 방지하기 위해서 대체 가능한 플로우 엔트리(810)의 최 하단이 아닌 위치(820)에 새로운 플로우 엔트리를 삽입한다.According to one embodiment, instead of inserting a new flow entry into the tail at the lowermost end of a replaceable flowable entry (Replaceable Entries) 810, a replaceable flow entry 810 and an active flow entry 810, (Insertion Point) 820 between a plurality of active entities 800. When a new flow entry is inserted into the tail portion of the replaceable flow entry 810, there is a high possibility that the active flow entry 800 will immediately be flushed out in the situation where a new flow continues to flow. Therefore, in order to prevent this, a new flow entry is inserted at a position 820 which is not the lowermost end of the replaceable flow entry 810. [

일 실시 예에 따르면, 소정의 플로우 엔트리가 사용될 때마다 빈도 수를 증가시킨다. 또한, 특정 시간(interval), 예를 들어 5초가 지나면 빈도 수를 초기화하거나 감소시킨다. 소정의 플로우 엔트리의 빈도 수가 증가하거나 감소함에 따라 해당 플로우 엔트리는 활성 플로우 엔트리(800)로 분류되거나 대체 가능한 플로우 엔트리(810)로 분류될 수 있다.According to one embodiment, the number of frequencies is increased whenever a given flow entry is used. Also, the frequency number is initialized or decreased after a specific time interval (for example, 5 seconds). As the frequency of a given flow entry increases or decreases, the flow entry may be classified as an active flow entry 800 or classified as a replaceable flow entry 810.

일 실시 예에 따른 SDN 컨트롤러는 플로우 테이블의 사용률이 증가하여 미리 설정된 임계값에 도달하면, 활성화 엔트리는 보호하고 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.The SDN controller according to one embodiment protects the activation entry and overwrites the replaceable entry with a new flow entry if the usage rate of the flow table increases to reach a predetermined threshold value.

도 9는 본 발명의 일 실시 예에 따른 지속시간이 적용된 플로우 엔트리의 구조도이다.9 is a structural diagram of a flow entry to which a duration is applied according to an embodiment of the present invention.

도 9를 참조하면, 플로우 엔트리는 룰(900), 액션(910) 및 지속시간(920) 필드를 포함한다.Referring to FIG. 9, a flow entry includes a rule 900, an action 910, and a duration 920 field.

룰(900)은 오픈플로우에서 정의한 바와 같이 패킷의 각 프로토콜 계층의 헤더(header) 영역에 포함되는 수신처 어드레스(Destination Address: DA), 송신원 어드레스(Source Address: SA), 수신처 포트(Destination Port: Dst Port), 송신원 포트(Source Port: Src Port) 등과 같은 플로우 식별자(flow identifier)로 구성된다. 액션(910)은 패킷을 어떻게 처리해야 할지를 알려주는 것으로서, 예를 들어 도 9에 도시된 바와 같이 포트 X로의 패킷 전송을 지시한다.The rule 900 includes a Destination Address (DA), a Source Address (SA), and a Destination Port (Dst) included in a header area of each protocol layer of a packet as defined in the open flow Port, a source port (Src Port), and the like. The action 910 indicates how to process the packet, and for example, instructs packet transmission to the port X as shown in FIG.

지속시간(920)은 플로우 엔트리가 플로우 테이블에 잔류한 시간을 의미한다. 예를 들어, 잔여시간이 5초인 상황에서 지속시간(920)이 50초라는 것은 최소한 5초에 한 번씩 패킷을 수신했다는 것을 의미이고, 오랜 기간 플로우 테이블에 잔류했다는 것은 특정 상황에서는 유효한 플로우인지 여부를 판단하는 중요한 요소(factor)가 된다.The duration 920 indicates the time at which the flow entry remains in the flow table. For example, if the remaining time is 5 seconds, the duration (920) of 50 seconds means that the packet has been received at least every 5 seconds, and the fact that the packet has remained in the flow table for a long time means that it is a valid flow in a specific situation It is an important factor to judge.

이하, 플로우 엔트리 지속시간(920)에 따른 플로우 테이블 관리 메커니즘을 설명한다.Hereinafter, the flow table management mechanism according to the flow entry duration 920 will be described.

우선, SDN 스위치는 처음 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 있지 않으면 SDN 스위치는 수신 패킷을 SDN 컨트롤러에 전송한다. 그러면, SDN 컨트롤러는 수신 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 생성된 플로우 엔트리 추가를 SDN 스위치에 지시한다. First, when receiving the packet for the first time, the SDN switch refers to the flow table to search for a flow entry matching the received packet with the match condition. At this time, if the flow entry whose matching condition matches the received packet is not in the flow table, the SDN switch transmits the received packet to the SDN controller. The SDN controller then creates a new flow entry for processing the incoming packet and instructs the SDN switch to add the created flow entry.

이어서, SDN 스위치는 플로우 테이블의 사용률을 감시하고 있다가, 사용률의 변경이 발생하면 이를 SDN 컨트롤러에 통보한다. 예를 들어, SDN 스위치는 사용률 30%, 65% 및 100%에서 각각 사용률 변경을 통보한다. 사용률 30%에서 발생하는 통보에는 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 또한, 사용률 65%에서 발생하는 통보에도 SDN 컨트롤러는 특별한 메커니즘을 적용하지 않는다. 그러다, 사용률 100%에서 발생하는 통보에는 SDN 컨트롤러의 지시에 따라 SDN 스위치가 각 플로우 엔트리의 지속시간(920)을 확인한다. 이때, SDN 스위치는 지속시간이 미리 설정된 시간, 예를 들어 10초 미만인 플로우 엔트리를 전부 제거하고, 미리 설정된 시간 이상인 플로우 엔트리는 보호한다. 이 경우, 플러딩 공격(Flooding attack) 등과 같은 비정상적 상황에서 오래 머물고 있는 유효한 플로우 엔트리를 보호하면서 동시에 플로우 테이블의 저장공간을 확보할 수 있다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.Then, the SDN switch monitors the usage rate of the flow table, and notifies the SDN controller when a change in utilization rate occurs. For example, an SDN switch reports usage changes at 30%, 65%, and 100% utilization, respectively. The SDN controller does not apply any special mechanism for notifications that occur at 30% utilization. In addition, the SDN controller does not apply any special mechanism for notifications that occur at 65% utilization. The SDN switch confirms the duration (920) of each flow entry according to the instructions of the SDN controller. At this time, the SDN switch removes all the flow entries whose duration is less than the predetermined time, for example, 10 seconds, and protects the flow entries that are longer than the predetermined time. In this case, it is possible to secure a storage space of the flow table at the same time while protecting a valid flow entry staying in an abnormal situation such as a flooding attack. Meanwhile, the above-described example is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism may be variously modified.

한편, 도 5 내지 도 9를 참조로 하여 전술한 플로우 테이블 관리 메커니즘을 조합하여 플로우 테이블을 관리할 수 있다. 예를 들어, 사용률이 30%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 해당 플로우 엔트리의 잔여시간을 2초 차감하는 메커니즘을 적용한다. 그러다, 사용률 65%를 넘어서서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘과 함께 플로우 엔트리의 빈도 수가 설정 값 이하인 대체 가능한 플로우 엔트리를 제거하는 메커니즘을 적용한다. 그러다, 사용률 100%에서 발생하는 SDN 스위치의 통보에는 SDN 컨트롤러가 SDN 스위치에 잔여시간 차감 메커니즘 및 빈도 수를 이용한 대체 가능 플로우 엔트리 제거 메커니즘과 함께 지속시간이 10초 미만인 플로우 엔트리를 제거하는 메커니즘까지 적용한다. 한편, 전술한 예는 본 발명의 이해를 돕기 위한 일 실시 예일 뿐, 플로우 테이블 관리 메커니즘은 다양하게 변형 가능하다.On the other hand, the flow tables can be managed by combining the above-described flow table management mechanisms with reference to FIGS. 5 to 9. FIG. For example, in an SDN switch notification that occurs when utilization exceeds 30%, the SDN controller applies a mechanism to the SDN switch to subtract the remaining time of the flow entry by two seconds. However, the notification of an SDN switch that occurs beyond 65% of utilization applies a mechanism in which the SDN controller removes an alternate flow entry whose frequency number of flow entries is less than or equal to the set value, along with the remaining time subtraction mechanism on the SDN switch. However, SDN switch notification at 100% Utilization includes a mechanism to remove flow entries with a duration of less than 10 seconds, along with a replaceable flow entry removal mechanism using an SDN controller with SDN switch remaining time subtraction mechanism and frequency do. Meanwhile, the above-described example is only one embodiment for facilitating understanding of the present invention, and the flow table management mechanism may be variously modified.

도 10은 본 발명의 일 실시 예에 따른 네트워크 장치(10)의 구성도이다.10 is a configuration diagram of a network device 10 according to an embodiment of the present invention.

네트워크 장치(10)는 SDN 스위치이고, SDN 스위치를 제어하는 컨트롤러는 SDN 컨트롤러일 수 있다. 도 10을 참조하면, 네트워크 장치(10)는 통신부(100), 테이블 관리부(110) 및 패킷 처리부(120)를 포함한다.The network device 10 may be an SDN switch, and the controller controlling the SDN switch may be an SDN controller. Referring to FIG. 10, the network device 10 includes a communication unit 100, a table management unit 110, and a packet processing unit 120.

통신부(100)는 플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 컨트롤러로부터 지시 받는다. 테이블 관리부(110)는 통신부(100)를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리한다.The communication unit 100 notifies the controller of the state change of the flow table and receives a flow table management method reflecting the state of the flow table from the controller. The table management unit 110 manages the flow table according to the flow table management method instructed through the communication unit 100.

패킷 처리부(120)는 플로우 테이블을 이용하여 수신 패킷을 처리한다. 예를 들어, 패킷 처리부(120)는 패킷을 수신하면 플로우 테이블을 참조하여 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리를 검색한다. 이때, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하지 않으면 통신부(100)를 통해 수신 패킷을 컨트롤러에 전송한다. 이에 비해, 수신 패킷과 매치 조건이 매칭되는 플로우 엔트리가 플로우 테이블에 존재하면 해당 플로우 엔트리를 참조하여 수신 패킷을 처리한다.The packet processing unit 120 processes the received packet using the flow table. For example, when receiving the packet, the packet processing unit 120 refers to the flow table and searches for a flow entry matching the match condition with the received packet. At this time, if the flow entry whose matching condition matches the received packet does not exist in the flow table, the received packet is transmitted to the controller through the communication unit 100. On the other hand, if a flow entry matching the received packet and the matching condition exists in the flow table, the received packet is processed with reference to the corresponding flow entry.

일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분한다. 예를 들어, 플로우 테이블의 사용률에 따라 여러 구역으로 구분하고, 구분된 각 구역은 상한 임계값과 하한 임계값을 쌍으로 가진다. 구역 구분 및 각 구역의 임계값 설정은 이에 한정되지 않고 네트워크 환경에 따라 변경 가능하다.The table management unit 110 according to an embodiment divides a flow table into a plurality of states according to a usage rate of the flow table. For example, according to the usage rate of the flow table, each zone is divided into a plurality of zones, and each of the divided zones has a pair of an upper threshold value and a lower threshold value. The zone division and the threshold value setting of each zone are not limited to this, and can be changed according to the network environment.

일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절한다. 예를 들어, 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시킨다.The table management unit 110 according to one embodiment adjusts the remaining time of the flow entry according to the usage rate of the flow table. For example, if the usage rate of the flow table increases and the state of the flow table changes, the remaining time of the flow entry newly added is decreased according to the flow table management method instructed by the controller.

구체적으로, 플로우 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면, 예를 들어 사용률이 65%가 되면, 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감한다. 또한, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면, 예를 들어 사용률이 90%가 되면, 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거한다.Specifically, when the usage rate of the flow table increases and the flow table status changes from the first status to the second status, for example, when the usage rate reaches 65%, the flow table management unit 110 updates the flow table management system The remaining time of the newly added flow entry is subtracted by a preset time. When the flow table state changes from the second state to the third state, for example, when the utilization rate reaches 90%, the remaining time of the newly added flow entry is deducted in proportion to the usage rate increase rate of the flow table, Remove.

일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓴다.The table management unit 110 according to an embodiment manages flow entries based on the frequency of use of flow entries according to the usage rate of the flow table. For example, when the usage rate of the flow table is increased and the state of the flow table is changed, the table management unit 110 protects the activation entry whose number of use frequencies is greater than or equal to the preset activation value according to the flow table management system instructed by the controller, The replaceable entry whose number is less than or equal to the preset activation value is removed or overwritten with a new flow entry.

일 실시 예에 따른 테이블 관리부(110)는 플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리한다. 예를 들어, 테이블 관리부(110)는 플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거한다.The table management unit 110 according to one embodiment manages flow entries based on the duration of the flow entries according to the usage rate of the flow table. For example, when the usage rate of the flow table increases and the state of the flow table changes, the table management unit 110 protects the flow entry whose duration is longer than a predetermined time according to the flow table management method instructed by the controller, A flow entry smaller than the preset time is removed.

이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The embodiments of the present invention have been described above. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

10: 네트워크 장치 12: 컨트롤러
20: SDN 스위치 22: SDN 컨트롤러
24, 26: 호스트 100: 통신부
110: 테이블 관리부 120: 패킷 처리부
200: 플로우 테이블
10: Network device 12: Controller
20: SDN switch 22: SDN controller
24, 26: host 100: communication unit
110: table management unit 120: packet processing unit
200: Flow table

Claims (28)

네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계;
상기 네트워크 장치로부터 플로우 테이블의 상태 변경을 통보 받는 단계; 및
변경된 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
Dividing the flow table into a plurality of states according to a usage rate of the flow table in the network device;
Receiving a change of state of a flow table from the network device; And
Managing the flow table by reflecting the state of the changed flow table;
The method comprising the steps of:
제 1 항에 있어서, 상기 다수의 상태로 구분하는 단계는
플로우 테이블을 다수의 구역으로 구분하고, 각 구역에 대한 임계값을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.
2. The method of claim 1,
Wherein the flow table is divided into a plurality of zones, and a threshold value for each zone is set.
제 2 항에 있어서, 상기 다수의 상태로 구분하는 단계는
플로우 테이블의 각 구역에 대해 상한 임계값과 하한 임계값이 쌍으로 가지도록 구성하는 것을 특징으로 하는 플로우 테이블 관리방법.
3. The method of claim 2, wherein the dividing into the plurality of states comprises:
Wherein the upper limit threshold value and the lower threshold value are paired with respect to each section of the flow table.
제 1 항에 있어서, 상기 플로우 테이블의 상태 변경을 통보 받는 단계는
플로우 테이블 사용률이 미리 설정된 상한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 상한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein the step of notifying the state change of the flow table
When the flow table usage rate reaches a predetermined upper limit threshold value, receives a message notifying the upper limit threshold value from the network device.
제 1 항에 있어서, 상기 플로우 테이블의 상태 변경을 통보 받는 단계는
플로우 테이블 사용률이 미리 설정된 하한 임계값에 도달하는 경우에 상기 네트워크 장치로부터 하한 임계값 도달을 통보하는 메시지를 수신하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein the step of notifying the state change of the flow table
When the flow table usage rate reaches a preset lower threshold value, receives a message notifying the network device of the arrival of the lower threshold value.
제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
플로우 테이블의 상태가 변경되면 변경된 상태에 따라 플로우 테이블을 구성하는 플로우 엔트리에 대한 관리방식을 결정하는 단계; 및
상기 결정된 관리방식을 포함한 지시를 상기 네트워크 장치에 전송하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein managing the flow table comprises:
Determining a management method for a flow entry constituting a flow table according to a changed state when the state of the flow table is changed; And
Transmitting an instruction including the determined management method to the network device;
The method comprising the steps of:
제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
플로우 테이블의 사용률에 따라 플로우 엔트리의 잔여시간을 조절하거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein managing the flow table comprises:
Wherein the remaining time of the flow entry is adjusted or the corresponding flow entry is removed according to the usage rate of the flow table.
제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
플로우 테이블의 사용률에 따라 플로우 엔트리의 사용 빈도 수를 기준으로 플로우 엔트리를 관리하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein managing the flow table comprises:
And managing the flow entry based on the frequency of use of the flow entry according to the utilization rate of the flow table.
제 1 항에 있어서, 상기 플로우 테이블을 관리하는 단계는
플로우 테이블의 사용률에 따라 플로우 엔트리의 지속시간을 기준으로 플로우 엔트리를 관리하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein managing the flow table comprises:
And managing the flow entry based on the duration of the flow entry according to the usage rate of the flow table.
제 1 항에 있어서, 상기 플로우 테이블 관리방법은
새로운 플로우 엔트리를 플로우 테이블의 미리 설정된 삽입 지점에 삽입하는 단계;
를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
The method of claim 1, wherein the flow table management method comprises:
Inserting a new flow entry into a predetermined insertion point of the flow table;
Further comprising the steps of:
제 10 항에 있어서, 상기 삽입 지점에 삽입하는 단계는
사용 빈도 수에 따라 분류된 대체 가능 플로우 엔트리와 활성 플로우 엔트리의 사이에 새로운 플로우 엔트리를 삽입하는 것을 특징으로 하는 플로우 테이블 관리방법.
11. The method of claim 10, wherein inserting into the insertion point
Wherein a new flow entry is inserted between the replaceable flow entry and the active flow entry classified according to the frequency of use.
네트워크 장치 내 플로우 테이블을 구성하는 플로우 엔트리의 속성을 설정하는 단계;
플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계; 및
상기 구분된 플로우 테이블의 상태를 반영하여 상기 설정된 플로우 엔트리의 속성을 결정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
Setting an attribute of a flow entry constituting a flow table in the network device;
Dividing the flow table into a plurality of states according to a usage rate of the flow table; And
Determining an attribute of the set flow entry by reflecting the state of the distinguished flow table;
The method comprising the steps of:
제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
사용되는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 절대 잔여시간을 설정하는 단계; 및
사용되지 않는 플로우 엔트리를 대상으로 플로우 테이블에 잔류 가능한 유휴 잔여시간을 설정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
Setting a remaining absolute time remaining in the flow table for the used flow entry; And
Setting a remaining idle remaining time in the flow table for an unused flow entry;
The method comprising the steps of:
제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
플로우 테이블 내에서 수신 패킷과 매칭되는 플로우 엔트리가 존재하면 해당 플로우 엔트리의 사용 빈도 수를 증가시키는 단계; 및
미리 설정된 시간이 경과되면 해당 플로우 엔트리의 사용 빈도 수를 초기화하거나 감소시키는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
Increasing the frequency of use of the flow entry if there is a flow entry matching the received packet in the flow table; And
Initializing or decreasing a frequency of use of the flow entry when a predetermined time elapses;
The method comprising the steps of:
제 14 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
플로우 엔트리의 사용 빈도 수 증감에 따라 사용 빈도 수가 미리 설정된 활성화 값을 넘으면 해당 플로우 엔트리를 활성화 엔트리로 설정하는 단계; 및
사용 빈도 수가 미리 설정된 활성화 값을 넘지 못하면 교체 가능 엔트리로 설정하는 단계;
를 더 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
15. The method of claim 14, wherein setting the attribute of the flow entry comprises:
Setting a corresponding flow entry as an activation entry if the number of used frequencies exceeds a preset activation value according to an increase or decrease in the frequency of use of the flow entry; And
Setting a replaceable entry if the number of used frequencies does not exceed a preset activation value;
Further comprising the steps of:
제 12 항에 있어서, 상기 플로우 엔트리의 속성을 설정하는 단계는
플로우 테이블 내에 플로우 엔트리가 잔류한 지속시간을 설정하는 것을 특징으로 하는 플로우 테이블 관리방법.
13. The method of claim 12, wherein setting the attributes of the flow entry comprises:
And sets the duration of the flow entry remaining in the flow table.
제 12 항에 있어서, 상기 설정된 플로우 엔트리의 속성을 결정하는 단계는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 감소시키거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 플로우 테이블 관리방법.
13. The method of claim 12, wherein determining the attribute of the set flow entry comprises:
And decreasing the remaining time of the newly added flow entry or removing the corresponding flow entry when the usage rate of the flow table is increased and the state of the flow table is changed.
제 17 항에 있어서, 상기 설정된 플로우 엔트리의 속성을 결정하는 단계는
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하는 단계; 및
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
18. The method of claim 17, wherein determining the attribute of the set flow entry comprises:
Subtracting the remaining time of the newly added flow entry by a preset time when the flow table state is changed from the first state to the second state due to an increase in the usage rate of the flow table; And
Subtracting the remaining time of the newly added flow entry in proportion to the use rate increase rate of the flow table or removing the corresponding flow entry when the use rate of the flow table increases and the flow table state changes from the second state to the third state;
The method comprising the steps of:
네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하는 단계; 및
상기 구분된 플로우 테이블의 상태에 따라 플로우 엔트리의 속성을 이용하여 플로우 엔트리의 처리방식을 결정하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
Dividing the flow table into a plurality of states according to a usage rate of the flow table in the network device; And
Determining a processing method of a flow entry by using an attribute of the flow entry according to the state of the separated flow table;
The method comprising the steps of:
제 19 항에 있어서, 상기 플로우 엔트리의 처리방식을 결정하는 단계는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 사용 빈도 수를 확인하는 단계;
확인된 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하는 단계; 및
확인된 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
20. The method of claim 19, wherein determining the processing type of the flow entry comprises:
Confirming the frequency of use of each flow entry constituting the flow table when the usage rate of the flow table is increased and the state of the flow table is changed;
Protecting an activation entry having an identified frequency of use frequency equal to or greater than a predetermined activation value; And
Removing or replacing a replaceable entry whose confirmed frequency of use is less than or equal to a preset active value with a new flow entry;
The method comprising the steps of:
제 19 항에 있어서, 상기 플로우 엔트리의 처리방식을 결정하는 단계는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 플로우 테이블을 구성하는 각 플로우 엔트리의 지속시간을 확인하는 단계;
확인된 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하는 단계; 및
확인된 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 단계;
를 포함하는 것을 특징으로 하는 플로우 테이블 관리방법.
20. The method of claim 19, wherein determining the processing type of the flow entry comprises:
Confirming the duration of each flow entry constituting the flow table when the usage rate of the flow table increases and the state of the flow table changes;
Protecting a flow entry whose confirmed duration is greater than a preset time; And
Removing a flow entry whose confirmed duration is less than a predetermined time;
The method comprising the steps of:
플로우 테이블의 상태 변경을 컨트롤러에 통보하고 플로우 테이블의 상태가 반영된 플로우 테이블 관리방식을 지시 받는 통신부;
상기 통신부를 통해 지시 받은 플로우 테이블 관리방식에 따라 플로우 테이블을 관리하는 테이블 관리부; 및
플로우 테이블을 이용하여 수신 패킷을 처리하는 패킷 처리부;
를 포함하는 것을 특징으로 하는 네트워크 장치.
A communication unit for notifying the controller of the state change of the flow table and for instructing a flow table management method in which the state of the flow table is reflected;
A table management unit for managing a flow table according to a flow table management method instructed through the communication unit; And
A packet processing unit for processing a received packet using a flow table;
Lt; RTI ID = 0.0 > 1, < / RTI >
제 22 항에 있어서,
상기 네트워크 장치는 소프트웨어 정의 네트워크 스위치이고, 상기 컨트롤러는 소프트웨어 정의 네트워크 컨트롤러인 것을 특징으로 하는 네트워크 장치.
23. The method of claim 22,
Wherein the network device is a software defined network switch and the controller is a software defined network controller.
제 22 항에 있어서, 상기 테이블 관리부는
플로우 테이블의 사용률에 따라 플로우 테이블을 상한 임계값과 하한 임계값이 쌍으로 구성된 다수의 구역으로 구분하는 것을 특징으로 하는 네트워크 장치.
23. The apparatus of claim 22, wherein the table management unit
Wherein the flow table is divided into a plurality of zones constituted by pairs of an upper threshold value and a lower threshold value according to a usage rate of the flow table.
제 22 항에 있어서, 상기 플로우 테이블 관리부는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 감소시키거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 네트워크 장치.
The apparatus of claim 22, wherein the flow table management unit
Wherein the controller reduces the remaining time of the newly added flow entry or removes the corresponding flow entry according to the flow table management method instructed by the controller when the usage rate of the flow table increases and the state of the flow table changes.
제 25 항에 있어서, 상기 플로우 테이블 관리부는
플로우 테이블의 사용률이 증가하여 플로우 테이블 상태가 제1 상태에서 제2 상태로 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 새로 추가된 플로우 엔트리의 잔여시간을 미리 설정된 시간만큼 차감하고, 플로우 테이블 상태가 제2 상태에서 제3 상태로 변경되면 새로 추가된 플로우 엔트리의 잔여시간을 플로우 테이블의 사용률 증가율에 비례하여 차감하거나 해당 플로우 엔트리를 제거하는 것을 특징으로 하는 네트워크 장치.
The method of claim 25, wherein the flow table management unit
If the flow table state is changed from the first state to the second state due to an increase in the usage rate of the flow table, the remaining time of the newly added flow entry is subtracted by a preset time according to the flow table management method instructed from the controller, When the state changes from the second state to the third state, deducts the remaining time of the newly added flow entry in proportion to the use rate increase rate of the flow table, or removes the corresponding flow entry.
제 22 항에 있어서, 상기 플로우 테이블 관리부는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 사용 빈도 수가 미리 설정된 활성 값 이상인 활성화 엔트리는 보호하고, 사용 빈도 수가 미리 설정된 활성 값 이하인 교체 가능 엔트리는 제거하거나 새로운 플로우 엔트리로 덮어쓰는 것을 특징으로 하는 네트워크 장치.
The apparatus of claim 22, wherein the flow table management unit
If the usage rate of the flow table is increased and the state of the flow table is changed, an activation entry having a frequency of use more than a preset activation value is protected according to a flow table management system instructed by the controller. Is removed or overwritten with a new flow entry.
제 22 항에 있어서, 상기 플로우 테이블 관리부는
플로우 테이블의 사용률이 증가하여 플로우 테이블의 상태가 변경되면 상기 컨트롤러로부터 지시 받은 플로우 테이블 관리방식에 따라 지속시간이 미리 설정된 시간보다 큰 플로우 엔트리는 보호하며, 지속시간이 미리 설정된 시간보다 작은 플로우 엔트리는 제거하는 것을 특징으로 하는 네트워크 장치.
The apparatus of claim 22, wherein the flow table management unit
If the usage rate of the flow table increases and the state of the flow table changes, a flow entry whose duration is longer than a preset time is protected according to the flow table management method instructed from the controller, and the flow entry whose duration is shorter than a preset time Said network device comprising:
KR1020140092606A 2014-01-06 2014-07-22 A method and apparatus for managing flow table KR101818082B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/589,077 US20150195183A1 (en) 2014-01-06 2015-01-05 Method and apparatus for managing flow table
CN201510003772.5A CN104767634A (en) 2014-01-06 2015-01-05 Method and apparatus for managing flow table

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140001470 2014-01-06
KR1020140001470 2014-01-06

Publications (2)

Publication Number Publication Date
KR20150082060A true KR20150082060A (en) 2015-07-15
KR101818082B1 KR101818082B1 (en) 2018-02-21

Family

ID=53793728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140092606A KR101818082B1 (en) 2014-01-06 2014-07-22 A method and apparatus for managing flow table

Country Status (1)

Country Link
KR (1) KR101818082B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (en) * 2015-08-17 2016-11-08 성균관대학교산학협력단 Openflow switch and management methid of flow table
KR102387102B1 (en) * 2020-11-13 2022-04-14 숭실대학교 산학협력단 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE525800C2 (en) * 2002-10-30 2005-04-26 Packetfront Sweden Ab Device and router in a broadband network that works by transmitting packet flows, with a software flow switched by a central processor unit and a hardware switched accelerated flow
US8503307B2 (en) * 2010-05-10 2013-08-06 Hewlett-Packard Development Company, L.P. Distributing decision making in a centralized flow routing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674169B1 (en) * 2015-08-17 2016-11-08 성균관대학교산학협력단 Openflow switch and management methid of flow table
KR102387102B1 (en) * 2020-11-13 2022-04-14 숭실대학교 산학협력단 System and Method for Providing Flow Table Overflow Attack Defense for Software-Defined Network

Also Published As

Publication number Publication date
KR101818082B1 (en) 2018-02-21

Similar Documents

Publication Publication Date Title
US20150195183A1 (en) Method and apparatus for managing flow table
US8085755B2 (en) Data driven route advertisement
EP2676410B1 (en) Flow communication system
US9276852B2 (en) Communication system, forwarding node, received packet process method, and program
US20130135999A1 (en) Destination-based congestion control
WO2011083682A1 (en) Switch network system, controller, and control method
US10193890B2 (en) Communication apparatus to manage whitelist information
US20140241349A1 (en) Openflow switch and packet processing method thereof
US10630590B2 (en) Credit loop deadlock detection and recovery in arbitrary topology networks
US10104000B2 (en) Reducing control plane overload of a network device
US9712332B2 (en) Node directed multicast traffic management systems and methods for mesh networks
CN111669336A (en) Low cost congestion isolation for lossless ethernet
US20170359310A1 (en) Bypassing a firewall for authorized flows using software defined networking
US20130250763A1 (en) Method and Apparatus for Control Plane CPU Overload Protection
WO2013114489A1 (en) Control method, control apparatus, communication system, and program
US9769064B2 (en) Communication node, packet processing method and program
US20160285682A1 (en) Switch apparatus, vlan setting management method and program
CN109391550B (en) Network element with congestion aware matching table
JP6571591B2 (en) Terminal isolation notification system
KR101818082B1 (en) A method and apparatus for managing flow table
US10462064B2 (en) Maximum transmission unit installation for network traffic along a datapath in a software defined network
CN102546587B (en) Prevent gateway system Session Resources by the method that maliciously exhausts and device
US9537764B2 (en) Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program
JP6466279B2 (en) Communication device
US20170105137A1 (en) Method for reducing load by filtering out broadcast messages

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant