KR101674169B1 - 오픈플로우 스위치 및 플로우 테이블 관리 방법 - Google Patents

오픈플로우 스위치 및 플로우 테이블 관리 방법 Download PDF

Info

Publication number
KR101674169B1
KR101674169B1 KR1020150115385A KR20150115385A KR101674169B1 KR 101674169 B1 KR101674169 B1 KR 101674169B1 KR 1020150115385 A KR1020150115385 A KR 1020150115385A KR 20150115385 A KR20150115385 A KR 20150115385A KR 101674169 B1 KR101674169 B1 KR 101674169B1
Authority
KR
South Korea
Prior art keywords
flow
time
flow entry
matched
stored
Prior art date
Application number
KR1020150115385A
Other languages
English (en)
Inventor
추현승
양윤정
염상길
도미솔
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020150115385A priority Critical patent/KR101674169B1/ko
Application granted granted Critical
Publication of KR101674169B1 publication Critical patent/KR101674169B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

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

Abstract

본 발명은 소프트웨어 정의 네트워크 기반의 오픈플로우 스위치 및 플로우 테이블 관리 방법에 관한 것으로서, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 오픈플로우 스위치는 오픈플로우 컨트롤러와 통신하는 통신 모듈, 오픈플로우 테이블이 저장되는 메모리, 및 상기 메모리에 저장된 플로우 테이블에 플로우 엔트리의 추가 및 삭제를 수행하는 프로세서를 포함하되, 프로세서는 플로우 테이블에 새로운 플로우 엔트리를 추가할 수 없을 경우, 각각의 플로우 엔트리별로 송수신되는 트래픽의 양의 통계 정보, 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간, 및 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 기초로 각각의 플로우 엔트리의 중요도를 계산하고, 중요도가 낮은 플로우 엔트리를 제거한다.

Description

오픈플로우 스위치 및 플로우 테이블 관리 방법{OPENFLOW SWITCH AND MANAGEMENT METHID OF FLOW TABLE}
본 발명은 오픈플로우 스위치 및 플로우 테이블 관리 방법에 관한 것이다.
네트워크 기술의 발달과 스마트폰의 보급으로 인해 네트워크 트래픽이 기하급수적으로 증가함에 따라 네트워크의 규모가 점점 거대해지고 복잡해지고 있다. 따라서, 유연한 제어와 효과적인 네트워크 관리를 가능하게 하는 소프트웨어 정의 네트워크(Software Defined Network, SDN) 기술이 등장하였다.
소프트웨어 정의 네트워크 기술은 기존의 네트워크 장비를 데이터 플레인과 컨트롤 플레인으로 분리하여 프로그래밍 가능한 네트워크를 구현할 수 있다. 이때, 컨트롤 플레인은 중앙의 컨트롤러가 담당하고, 데이터 플레인은 라우터와 오픈플로우 스위치 등의 네트워크 장비가 담당하여 여러 네트워크를 제어하기 때문에 자원의 가시성을 확보할 수 있다.
소프트웨어 정의 네트워크 기술에서, 컨트롤러는 오픈플로우(OpenFlow) 같은 Southbound API를 이용하여 네트워크 장비들을 제어할 수 있다. 여기서, 오픈플로우란 데이터 플레인과 컨트롤 플레인 사이에 통신을 가능하게 해주는 표준화된 프로토콜을 말한다.
또한, 상술한 오픈플로우 스위치의 내부에는 여러 개의 플로우 엔트리로 구성 된 플로우 테이블이 존재한다. 플로우 테이블은 패킷들의 경로를 나타내주는 테이블이기 때문에 개수가 많을수록 스위치의 성능이 좋아진다. 하지만 TCAM(ternary content addressable memory)의 경우, 플로우 테이블의 개수가 많아질수록 비용도 증가한다.
또한, 짧은 주기로 엔트리가 삭제, 기록될 경우, 오픈플로우 스위치는 해당 플로우의 경로를 계속해서 컨트롤러에게 문의해야 하므로 처리 속도가 늦어질 수 있다. 따라서, 최적의 크기로 플로우 테이블을 생성한 후 효율적으로 관리하는 방법이 필요하다.
이와 관련하여 대한민국 공개특허 제10-2015-0082060호(발명의 명칭: 플로우 테이블 관리 방법 및 그 장치)는 네트워크 장치 내 플로우 테이블의 사용률에 따라 플로우 테이블을 다수의 상태로 구분하고 플로우 테이블의 상태를 반영하여 플로우 테이블을 관리하는 방법을 개시하고 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 오픈플로우 스위치 내에서, 플로우 테이블을 효율적으로 관리하는 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크 기반의 오픈플로우 스위치는 오픈플로우 컨트롤러와 통신하는 통신 모듈, 오픈플로우 테이블이 저장되는 메모리, 및 상기 메모리에 저장된 플로우 테이블에 플로우 엔트리의 추가 및 삭제를 수행하는 프로세서를 포함하되, 프로세서는 플로우 테이블에 새로운 플로우 엔트리를 추가할 수 없을 경우, 각각의 플로우 엔트리별로 송수신되는 트래픽의 양의 통계 정보, 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간, 및 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 기초로 각각의 플로우 엔트리의 중요도를 계산하고, 중요도가 낮은 플로우 엔트리를 제거한다.
또한, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법은 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간을 기록하는 단계; 플로우 테이블에 새로운 플로우 엔트리를 추가할 수 없을 경우, 매칭 시간을 기초로 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 계산하는 단계; 매칭 시간, 마지막 매칭된 시간과 바로 이전에 매칭된 시간의 간격 및 플로우 엔트리별로 송수신된 트래픽 양의 통계 정보를 기초로, 각각의 플로우 엔트리의 중요도를 계산하는 단계; 및 중요도가 낮은 플로우 엔트리를 제거하는 단계를 포함한다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 플로우 테이블에 더 이상 새로운 플로우 엔트리를 추가할 수 없을 때, 중요도가 낮은 플로우 엔트리를 삭제하여 새로운 플로우 엔트리의 삽입공간을 마련함으로써, 플로우 테이블을 더욱 효율적으로 관리할 수 있다.
본 발명의 일 실시예는 플로우 테이블을 효율적으로 관리함으로써, 네트워크 구축 비용을 절감시키는 효과가 있다.
도 1은 본 발명의 일 실시예에서 고려되는 오픈플로우 네트워크를 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 스위치의 개략적인 구성도이다.
도 3은 본 발명의 일 실시예에 따른 플로우 테이블의 일례이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법을 상세히 설명하기 위한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
먼저, 도 1을 참조하여 오픈플로우 네트워크(OpenFlow network)를 설명한다.
도 1은 본 발명의 일 실시예에서 고려되는 오픈플로우 네트워크를 설명하기 위한 개념도이다.
오픈플로우(OpenFlow)는 소프트웨어 정의 네트워크(software definition network, SDN)의 인터페이스(interface) 표준 기술 중 하나이다. 오픈플로우의 장점은 네트워크 엔지니어들에게 보다 편리하게 네트워크 장비를 조작할 수 있는 인터페이스를 제공하며, 컨트롤러의 프로그램을 통하여 다양한 기능 모듈을 보다 유연하게 만들어 낼 수 있다. 예를 들어, 기존 네트워크 장비들은 네트워크에 새로운 기능을 추가하기 위해서 관련된 기존 장비들을 모두 업그레이드 하거나 부가적인 장비를 물리적으로 설치해야 한다. 그러나 오픈플로우를 이용하면 오픈플로우 표준을 따르는 어떤 업체의 네트워크 장비라 할지라도 컨트롤러에서 프로그래밍을 통하여 비교적 쉽게 새로운 기능을 추가할 수 있다.
여기서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 3GPP(3rd generation partnership project) 네트워크, LTE(long term evolution) 네트워크, WIMAX(world interoperability for microwave access) 네트워크, 인터넷(internet), LAN(local area network), Wireless LAN(Wireless local area network), WAN(wide area network), PAN(personal area network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(digital multimedia broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
구체적으로, 오픈플로우를 이용한 네트워크는 도 1에 도시된 바와 같이, 오픈플로우 컨트롤러(OpenFlow controller; 10) 및 오픈플로우 스위치(OpenFlow switch; 100) 및 단말(20)을 포함하며 오픈플로우 프로토콜(OpenFlow protocol)을 이용하여 내부 통신을 수행한다.
오픈플로우 컨트롤러(10)는 컴퓨터 또는 서버에 소프트웨어로 구현될 수 있으며, 패킷에 대한 라우팅 경로를 설정하여 오픈플로우 컨트롤러(10)와 연결된 하나 이상의 오픈플로우 스위치(100)로 패킷을 포워딩한다.
오픈플로우 스위치(100)는 단말로부터 패킷을 수신하여 오픈플로우 컨트롤러(10)에 전달한다. 이때, 또한, 오픈플로우 스위치(100)는 오픈플로우 컨트롤러(10)의 명령에 따라 단말(20)로 전송되는 데이터 패킷의 처리 방법, 전송 방식 및 전송 경로를 정하고, 데이터 패킷을 전달한다. 이때, 데이터 패킷의 처리 방법 및 전달 경로 및 방식은 오픈플로우 스위치(100)에 포함된 플로우 테이블(flow table)에 저장될 수 있다. 다시말해, 오픈플로우 스위치(100)의 주요 동작은 플로우 테이블에 저장된 정보를 바탕으로 이루어진다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 스위치의 개략적인 구성도이고, 도 3은 본 발명의 일 실시예에 따른 플로우 테이블의 일례이다.
도 2 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 통신모듈(110), 프로세서(120) 및 메모리(130)를 포함한다. 오픈플로우 스위치(100)는 통신모듈(110)을 통해 단말(20) 및 오픈플로우 컨트롤러(10)와 패킷을 송수신할 수 있다. 이때, 오픈플로우 스위치(100)가 수신한 패킷에 할당된 속도, 처리된 패킷의 수 및 패킷에 대한 처리 방법 등은 메모리(130)의 플로우 테이블(200)에 저장된다.
여기서, 메모리(130)는 컴퓨터 저장 매체중의 하나로서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하여 구성될 수 있다. 예를 들어, 저장장치(110)는 ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치, 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억장치 등을 포함할 수 있다.
오픈플로우 스위치(100)의 메모리(130)에는 복수의 플로우 테이블(200)이 저장된다. 따라서, 오픈플로우 스위치(100)내의 플로우 테이블(200)에는 번호가 부여되며 그 번호는 0부터 시작한다.
프로세서(120)는 통신 모듈(110)을 통해 패킷 및 패킷에 대응하는 플로우 엔트리(210)를 오픈플로우 컨트롤러(10)부터 수신한다. 오픈플로우 컨트롤러(10)로부터 수신한 패킷 및 패킷에 대응하는 플로우 엔트리(210)는 오픈플로우 스위치(100)의 메모리(130)에 저장된 0번 플로우 테이블(200)부터 비교되며, 매치되는 프로우 엔트리(210)가 있으면 카운터 필드(240)의 값이 증가하고, 액션 필드(230)에 지정된 명령이 실행된다.
상술한 바와 같이, 플로우 테이블(200)은 패킷들의 경로를 나타내주는 테이블이기 때문에, 개수가 많을수록 스위치의 성능이 좋아지나, 플로우 테이블(200)의 개수가 많아지면 비용이 증가한다. 그러나, 플로우 테이블(200)의 플로우 엔트리(210)를 삭제하면 해당 플로우의 경로를 계속해서 오픈플로우 컨트롤러(10)에 문의해야 하기 때문에, 처리 속도가 늦어지는 단점이 존재한다. 따라서 최적의 크기로 플로우 테이블(200)을 생성한 후, 효율적으로 관리하는 방법이 필요하다. 따라서, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 더 이상 새로운 플로우 엔트리(210)를 추가하지 못할 때 새로운 플로우 엔트리(210)가 들어오는 경우, 프로세서가 플로우의 매칭 기록을 이용하여 플로우 엔트리(210)를 제거하여 효율적으로 플로우 테이블(200)을 관리하고자 한다.
따라서, 본 발명의 일 실시예에 따른 플로우 테이블(200)에는 복수의 플로우 엔트리(210)가 저장되며, 각각의 플로우 엔트리(210)는 도 3에 도시된 바와 같이, 매치 필드(Match Fields) (220), 액션(Action) 필드(230), 카운터(Counters) 필드(240) 매치 타임(Last matched time) 필드(250) 및 매치 타임 슬롯(Matched time slot) 필드(260)를 포함한다.
매치 필드(220)는 제어의 대상이 되는 플로우를 구분하기 위한 필드로서, 계층 1에 속하는 스위치의 물리적 포트 번호부터 계층 4의 TCP/UDP 포트 번호까지의 정보가 포함되어 있다.
액션 필드(230)에는 전송 방법, 폐기 방법, 지정된 필드의 값을 갱신하는 방법 등을 지정하는 처리 방법들이 저장되며, 이때, 패킷을 송출 할 포트 번호도 함께 지정될 수 있다.
카운터 필드(240)에는 트래픽량의 통계 정보가 기록된다. 통계 정보는 플로우 엔트리(210)별로 송수신되는 트래픽의 양을 패킷의 수와 바이트 수로 나타낸 것이다.
매치 타임 필드(250)에는 플로우 엔트리(210)가 기록된 시간부터 마지막으로 매칭된 시간이 기록된다. 오픈플로우에서 사용되는 평균 전송 속도를 구하기 위한 측정 시간(duration)값은 플로우 엔트리(210)가 기록된 시간부터 현재까지 경과된 시간에 대한 것이다. 따라서, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 플로우 테이블(200)에 매치 타임 필드(250)를 추가하고, 플로우 엔트리(210)가 마지막으로 매칭된 시간을 별도로 기록한다.
매치 타임 슬롯 필드(260)에는 플로우가 매칭되는 시간 간격을 기록한다. 이때, 시간 간격이란 플로우 테이블(200)이 다 사용되었을 때, 플로우 엔트리(210)가 마지막 매칭된 시간과 마지막 바로 이전에 매칭된 시간 차이를 말한다. 이 시간은 플로우가 매칭될 때마다 갱신될 수 있다. 따라서 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 매치 타임 슬롯 필드(260)에 저장된 플로우가 매칭된 시간 차이를 이용하여 플로우가 매칭 되지 않았던 시간을 계산 할 수 있다.
따라서, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 프로세서가 각각의 플로우 엔트리(210)별로 송수신되는 트래픽의 양의 통계 정보, 플로우 엔트리(210)가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간, 및 플로우 엔트리(210)가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 기초로 각각의 플로우 엔트리(210)의 중요도를 계산할 수 있다. 여기서 중요도란 해당 플로우 엔트리(210)가 얼마나 자주 사용될지를 판단하는 지표를 말한다. 따라서, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는, 플로우 테이블(200)에 더 이상 새로운 플로우 엔트리(210)를 추가하지 못하는 경우, 프로세서(120)가 플로우 엔트리(210) 중, 중요도가 높은 플로우 엔트리(210)에 생존권을 부여한다. 다시 말해, 중요도가 낮은 플로우 엔트리(210)를 제거함으로써 플로우 테이블(200)을 효율적으로 관리할 수 있다.
이하, 도 4를 참조하여, 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법을 더욱 상세히 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법을 상세히 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법은 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간을 기록하는 단계(S110); 매칭 시간을 기초로 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 계산하는 단계(S120); 매칭 시간, 매칭된 시간의 간격 및 트래픽 양의 통계 정보를 기초로, 각각의 플로우 엔트리의 중요도를 계산하는 단계(S130); 및 중요도가 낮은 플로우 엔트리를 제거하는 단계(S140)를 포함한다.
먼저, 오픈플로우 스위치(100)의 프로세서(120)는 플로우 테이블(200)의 매치 타임 필드(250)에 플로우 엔트리(210)가 기록된 시간부터 마지막으로 매칭된 시간을 기록 한다(S110).
이어서, 프로세서(120)는 매치 타임 필드(250)에 저장된 매칭 시간을 기초로 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 계산하여, 매치 타임 슬롯 필드(260)에 저장한다(S120). 다음으로, 각각의 플로우 엔트리의 중요도를 계산하는 단계(S130)에서, 매칭 시간, 마지막 매칭된 시간과 바로 이전에 매칭된 시간의 간격 및 플로우 엔트리별로 송수신되는 트래픽 양의 통계 정보을 기초로, 각각의 플로우 엔트리의 중요도를 계산한다. 여기서 중요도란 해당 플로우 엔트리(210)가 얼마나 자주 사용될지를 판단하는 지표를 말한다.
본 발명의 일 실시예에 따른 오픈플로우 스위치(100)의 프로세서(120)는 플로우 테이블(200)에 새로운 플로우 엔트리(210)를 추가할 수 없을 경우, 플로우 엔트리(210)의 중요도를 판단하기 위하여, 네가지 판단 기준을 고려할 수 있다.
첫째, 오픈플로우 스위치(100)는 각각의 플로우 엔트리(210)의 카운터 필드(240)를 탐색하여 카운터 필드(240)에 저장된 트래픽의 양의 통계 정보를 비교할 수 있다. 이때, 트래픽의 양의 통계 정보 같은 경우, 프로세서(120)는 매치 타임 필드(250)를 비교하여, 플로우 엔트리(210)의 매칭된 시간이 짧은 플로우 엔트리(210)일수록 더 높은 중요도를 부여할 수 있다.
둘째, 오픈플로우 스위치(100)의 프로세서(120)는 각각의 플로우 엔트리(210)의 매치 타임 필드(250)를 탐색하고, 매치 타임 필드(250)에 저장된 마지막으로 매칭된 시간을 비교할 수 있다. 만약 플로우 엔트리(210)의 마지막 매칭된 시간이 같은 경우, 프로세서(120)는 카운터 필드(240)를 비교하여, 송수신된 트래픽 양의 통계값이 높은 플로우 엔트리(210)일수록 더 높은 중요도를 부여할 수 있다.
셋째, 카운터 필드(240)에 저장된 플로우 엔트리(210)의 송수신된 트래픽 양의 통계값과 매치 타임 필드(250)에 저장된 플로우 엔트리(210)가 마지막으로 매칭된 시간이 같은 경우, 프로세서(120)는 매치 타임 슬롯 필드(260)에 저장된 플로우가 매칭된 시간 차이값을 이용하여, 플로우 엔트리(210)가 매칭되지 않은 시간을 계산하고, 매칭되지 않은 시간이 짧은 플로우 엔트리(210)일수록 더 높은 중요도를 부여할 수 있다. 이때, 매칭되지 않은 시간은 아래의 수학식 1에 의하여 계산될 수 있다.
Figure 112015079297655-pat00001
여기서, Tnm은 플로우 엔트리(210)가 매칭되지 않은 시간, Tlm은 기록된 시간부터 마지막으로 매칭된 전체 시간, C는 카운터 필드(240)에 저장된 트래픽 양의 통계값, Ts는 매치 타임 슬롯 필드(260)에 저장된 플로우가 매칭된 시간 차이값을 나타낸다.
넷째, 프로세서(120)는 각각의 플로우 엔터리(210)의 카운터 필드(240)에 저장된 플로우 엔트리(210)의 송수신된 트래픽 양의 통계값과 매치 타임 필드(250)에 저장된 플로우 엔트리(210)가 마지막으로 매칭된 시간이 모두 다른 경우를 고려할 수 있다. 이 경우, 프로세서(120)는 매치 타임 슬롯 필드(260)에 저장된 값을 이용하여, 플로우 엔트리(210)가 매칭되지 않은 시간 비율을 계산하고, 매칭되지 않은 시간 비율이 짧은 플로우 엔트리(210)일수록 더 높은 중요도를 부여할 수 있다. 이때, 매칭되지 않은 시간 비율(Pnm)은 아래의 수학식 2에 의하여 계산될 수 있다.
Figure 112015079297655-pat00002
다시 도 4를 참조하면, 중요도가 낮은 플로우 엔트리를 제거하는 단계(S140)에서, 프로세서(120)가 플로우 엔트리(210) 중, 중요도가 높은 플로우 엔트리(210)에 생존권을 부여하고, 중요도가 낮은 플로우 엔트리(210)를 제거한다.
상술한 바와 같이, 본 발명의 일 실시예에 따른 오픈플로우 스위치(100)는 프로세서(120)가 메모리(130)에 저장된 플로우 테이블(200)에 매치 타임 필드(250) 및 매치 타임 슬롯 필드(260)을 추가하여, 더욱 효율적으로 플로우 테이블(200)을 관리하는 것이 가능하다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 오픈플로우 컨트롤러 20: 단말
100: 오픈플로우 스위치 110: 통신 모듈
120: 프로세서 130: 메모리
200: 플로우 테이블

Claims (11)

  1. 소프트웨어 정의 네트워크 기반의 오픈플로우 스위치에 있어서,
    오픈플로우 컨트롤러와 통신하는 통신 모듈,
    오픈플로우 테이블이 저장되는 메모리, 및
    상기 메모리에 저장된 플로우 테이블에 플로우 엔트리의 추가 및 삭제를 수행하는 프로세서를 포함하되,
    상기 프로세서는 상기 플로우 테이블에 새로운 플로우 엔트리를 추가할 수 없을 경우, 상기 플로우 테이블에 저장된 복수의 플로우 엔트리에 대하여, 각각의 플로우 엔트리별로 송수신되는 트래픽의 양의 통계 정보, 상기 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간, 및 상기 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 기초로 상기 각각의 플로우 엔트리에 대한 중요도를 계산하고,
    상기 계산된 중요도가 임계값 이상인 경우 생존권을 부여하고,
    상기 복수의 플로우 엔트리 중 상기 생존권이 부여되지 않은 플로우 엔트리를 제거하는, 오픈플로우 스위치.
  2. 제 1 항에 있어서,
    상기 복수의 플로우 엔트리에 포함된 각각의 플로우 엔트리는,
    상기 각각의 플로우 엔트리에 대응하는 플로우를 구분하기 위한 매치 필드,
    상기 플로우를 처리하기 위한 방법이 저장되는 액션 필드,
    상기 각각의 플로우 엔트리가 송수신된 트래픽 양의 통계 정보가 저장되는 카운터 필드,
    상기 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간이 기록되는 매치 타임 필드, 및
    상기 매칭 시간을 기초로 상기 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격이 저장되는 매치 타임 슬롯 필드를 포함하는, 오픈플로우 스위치.
  3. 제 2 항에 있어서,
    상기 프로세서는 상기 각각의 플로우 엔트리의 카운터 필드에 저장된 트래픽 양의 통계 정보를 각각 비교하고, 상기 비교 결과에 따라, 상기 트래픽 양의 통계 정보가 동일한 플로우 엔트리를 추출하고, 상기 추출된 플로우 엔트리의 매치 타임 필드를 비교하여, 매칭된 시간이 짧은 순으로 상기 생존권을 부여하는, 오픈플로우 스위치.
  4. 제 2 항에 있어서,
    상기 프로세서는 상기 각각의 플로우 엔트리의 매치 타임 필드의 마지막으로 매칭된 시간을 각각 비교하고, 상기 비교 결과에 따라 상기 매치 타임 필드에 저장된 마지막으로 매칭된 시간이 동일한 플로우 엔트리를 추출하고,
    상기 추출된 플로우 엔트리의 카운터 필드에 저장된 트래픽 양의 통계 정보를 비교하여, 상기 트래픽 양의 통계 정보의 값이 큰 순으로 생존권을 부여하는, 오픈플로우 스위치.
  5. 제 2 항에 있어서,
    상기 프로세서는 상기 각각의 플로우 엔트리의 카운터 필드에 저장된 트래픽 양의 통계 정보 및 매치 타임 필드에 저장된 마지막으로 매칭된 시간을 각각 비교하고,
    상기 비교 결과에 따라, 상기 트래픽 양의 통계 정보가 동일하고, 상기 마지막으로 저장된 매칭된 시간이 동일한 플로우 엔트리를 추출하고,
    상기 추출된 플로우 엔트리에 대하여, 플로우 엔트리가 매칭되지 않은 시간을 계산하고, 상기 계산된 매칭되지 않은 시간이 짧은 순으로 생존권을 부여하는, 오픈플로우 스위치.
  6. 제 5 항에 있어서,
    상기 프로세서는 상기 비교 결과에 따라, 상기 복수의 플로우 엔트리 중 상기 저장된 트래픽 양의 통계 정보가 상이하고, 상기 마지막으로 저장된 매칭된 시간이 상이한 플로우 엔트리를 추출하고,
    상기 추출된 플로우 엔트리에 대하여, 플로우 엔트리가 매칭되지 않은 시간 비율을 계산하고, 상기 계산된 매칭되지 않은 시간 비율이 짧은 순으로 생존권을 부여하는, 오픈플로우 스위치.
  7. 소프트웨어 정의 네트워크에서 오픈플로우 스위치의 플로우 테이블 관리 방법에 있어서,
    플로우 테이블에 저장된 복수의 플로우 엔트리에 대하여, 각각의 플로우 엔트리가 기록된 시간부터 마지막으로 매칭(matching)된 시간까지의 매칭 시간을 기록하는 단계;
    플로우 테이블에 새로운 플로우 엔트리를 추가할 수 없을 경우, 상기 매칭 시간을 기초로 상기 각각의 플로우 엔트리가 마지막 매칭된 시간과 바로 이전에 매칭된 시간 간격을 계산하는 단계;
    상기 매칭 시간, 상기 마지막 매칭된 시간과 바로 이전에 매칭된 시간의 간격 및 상기 플로우 엔트리별로 송수신된 트래픽 양의 통계 정보를 기초로, 상기 각각의 플로우 엔트리의 중요도를 계산하는 단계;
    상기 각각의 플로우 엔트리에 대하여 상기 계산된 중요도가 임계값 이상인 경우 생존권을 부여하는 단계; 및
    상기 복수의 플로우 엔트리 중 상기 생존권이 부여되지 않은 플로우 엔트리를 제거하는 단계를 포함하되,
    상기 생존권은 상기 복수의 플로우 엔트리 중 중요도가 설정된 플로우 엔트리에 부여되는 것인, 오픈플로우 스위치의 플로우 테이블 관리 방법.
  8. 제 7 항에 있어서,
    상기 각각의 플로우 엔트리의 중요도를 계산하는 단계는,
    상기 각각의 플로우 엔트리에 포함된 카운터 필드에 저장된 트래픽 양의 통계 정보를 각각 비교하는 단계; 및
    상기 비교하는 단계의 결과에 따라, 상기 플로우 엔트리의 트래픽의 양의 통계 정보가 동일한 플로우 엔트리를 추출하는 단계를 포함하고,
    상기 생존권을 부여하는 단계는,
    상기 추출된 플로우 엔트리에 포함된 매치 타임 필드를 비교하여, 매칭된 시간이 짧은 순으로 생존권을 부여하는 것인, 오픈플로우 스위치의 플로우 테이블 관리 방법.
  9. 제 7 항에 있어서,
    상기 각각의 플로우 엔트리의 중요도를 계산하는 단계는,
    상기 각각의 플로우 엔트리에 포함된 매치 타임 필드에 포함된 마지막으로 매칭된 시간을 각각 비교하는 단계; 및
    상기 비교하는 단계의 결과에 따라, 상기 플로우 엔트리의 매칭된 시간이 동일한 플로우 엔트리를 추출하는 단계를 포함하고,
    상기 생존권을 부여하는 단계는,
    상기 추출된 플로우 엔트리에 포함된 카운터 필드에 저장된 트래픽 양의 통계 정보를 비교하여, 상기 트래픽 양의 통계 정보의 값이 큰 순으로 생존권을 부여하는 것인, 오픈플로우 스위치의 플로우 테이블 관리 방법.
  10. 제 7 항에 있어서,
    상기 각각의 플로우 엔트리의 중요도를 계산하는 단계는,
    상기 각각의 플로우 엔트리에 포함된 카운터 필드에 저장된 트래픽 양의 통계 정보를 각각 비교하는 단계;
    상기 각각의 플로우 엔트리에 포함된 매치 타임 필드에 포함된 마지막으로 매칭된 시간을 각각 비교하는 단계;
    상기 트래픽 양의 통계 정보를 각각 비교하는 단계 및 상기 매칭된 시간을 각각 비교하는 단계의 결과에 따라, 상기 트래픽 양의 통계 정보가 동일하고, 상기 마지막으로 저장된 매칭된 시간이 동일한 플로우 엔트리를 추출하는 단계; 및
    상기 추출된 플로우 엔트리에 대하여, 플로우 엔트리가 매칭되지 않은 시간을 계산하는 단계를 포함하고,
    상기 생존권을 부여하는 단계는,
    상기 매칭되지 않은 시간이 짧은 순으로 생존권을 부여하는 것인, 오픈플로우 스위치의 플로우 테이블 관리 방법.
  11. 제 10 항에 있어서,
    상기 마지막으로 매칭된 시간을 각각 비교하는 단계 이후에,
    상기 트래픽 양의 통계 정보를 각각 비교하는 단계 및 상기 매칭된 시간을 각각 비교하는 단계의 결과에 따라, 상기 트래픽 양의 통계 정보가 상이하고 상기 마지막으로 저장된 매칭된 시간이 상이한 플로우 엔트리를 추출하는 단계; 및
    상기 상이한 플로우 엔트리를 추출하는 단계를 통하여, 추출된 플로우 엔트리에 대하여, 플로우 엔트리가 매칭되지 않은 시간 비율을 계산하는 단계를 더 포함하고,
    상기 생존권을 부여하는 단계는,
    상기 매칭되지 않은 시간이 짧은 순으로 생존권을 부여하는 단계를 포함하는, 오픈플로우 스위치의 플로우 테이블 관리 방법.
KR1020150115385A 2015-08-17 2015-08-17 오픈플로우 스위치 및 플로우 테이블 관리 방법 KR101674169B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150115385A KR101674169B1 (ko) 2015-08-17 2015-08-17 오픈플로우 스위치 및 플로우 테이블 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150115385A KR101674169B1 (ko) 2015-08-17 2015-08-17 오픈플로우 스위치 및 플로우 테이블 관리 방법

Publications (1)

Publication Number Publication Date
KR101674169B1 true KR101674169B1 (ko) 2016-11-08

Family

ID=57527899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150115385A KR101674169B1 (ko) 2015-08-17 2015-08-17 오픈플로우 스위치 및 플로우 테이블 관리 방법

Country Status (1)

Country Link
KR (1) KR101674169B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108924047A (zh) * 2018-06-20 2018-11-30 新华三技术有限公司 一种流表项存储方法、装置、交换机和计算机可读介质
CN109842557A (zh) * 2017-11-28 2019-06-04 英业达科技有限公司 管理流规则表的方法和交换器
KR20200011230A (ko) * 2018-07-24 2020-02-03 한국과학기술원 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치
KR102226915B1 (ko) * 2019-10-31 2021-03-11 아토리서치(주) 소프트웨어 정의 네트워크에서 플로우 룰 데이터베이스를 운영하는 방법, 장치 및 컴퓨터 프로그램
CN112615783A (zh) * 2020-11-17 2021-04-06 新华三大数据技术有限公司 一种表项更新方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014171088A (ja) * 2013-03-04 2014-09-18 Ntt Comware Corp ネットワーク監視装置、サービス提供システム、ネットワーク監視方法、及びネットワーク監視プログラム
KR20150056035A (ko) * 2013-11-14 2015-05-22 한국전자통신연구원 확장된 기능을 구비한 sdn-기반 네트워크 장치 및 상기 장치에서의 패킷 처리 방법
KR101527786B1 (ko) * 2013-12-31 2015-06-09 쿨클라우드(주) 하이브리드 sdn 네트워크 관리 방법
KR20150082060A (ko) * 2014-01-06 2015-07-15 한국전자통신연구원 플로우 테이블 관리 방법 및 그 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014171088A (ja) * 2013-03-04 2014-09-18 Ntt Comware Corp ネットワーク監視装置、サービス提供システム、ネットワーク監視方法、及びネットワーク監視プログラム
KR20150056035A (ko) * 2013-11-14 2015-05-22 한국전자통신연구원 확장된 기능을 구비한 sdn-기반 네트워크 장치 및 상기 장치에서의 패킷 처리 방법
KR101527786B1 (ko) * 2013-12-31 2015-06-09 쿨클라우드(주) 하이브리드 sdn 네트워크 관리 방법
KR20150082060A (ko) * 2014-01-06 2015-07-15 한국전자통신연구원 플로우 테이블 관리 방법 및 그 장치

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109842557A (zh) * 2017-11-28 2019-06-04 英业达科技有限公司 管理流规则表的方法和交换器
CN109842557B (zh) * 2017-11-28 2021-06-11 英业达科技有限公司 管理流规则表的方法和交换器
CN108924047A (zh) * 2018-06-20 2018-11-30 新华三技术有限公司 一种流表项存储方法、装置、交换机和计算机可读介质
CN108924047B (zh) * 2018-06-20 2021-10-12 新华三技术有限公司 一种流表项存储方法、装置、交换机和计算机可读介质
KR20200011230A (ko) * 2018-07-24 2020-02-03 한국과학기술원 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치
KR102113641B1 (ko) * 2018-07-24 2020-05-25 한국과학기술원 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치
KR102226915B1 (ko) * 2019-10-31 2021-03-11 아토리서치(주) 소프트웨어 정의 네트워크에서 플로우 룰 데이터베이스를 운영하는 방법, 장치 및 컴퓨터 프로그램
CN112615783A (zh) * 2020-11-17 2021-04-06 新华三大数据技术有限公司 一种表项更新方法、装置、电子设备及存储介质
CN112615783B (zh) * 2020-11-17 2022-02-22 新华三大数据技术有限公司 一种表项更新方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
KR101674169B1 (ko) 오픈플로우 스위치 및 플로우 테이블 관리 방법
JP7039685B2 (ja) トラフィック測定方法、デバイス、およびシステム
EP3497892B1 (en) Compressing forwarding tables
US10742532B2 (en) Non-intrusive mechanism to measure network function packet processing delay
DE102015013946A1 (de) Netzwerkbasiertes Service Function Chaining
CN108259218B (zh) 一种ip地址分配方法和装置
US9590922B2 (en) Programmable and high performance switch for data center networks
US20200396320A1 (en) Packet-programmable statelets
WO2021128927A1 (zh) 报文的处理方法及装置、存储介质和电子装置
WO2017101759A1 (en) Method and apparatus for data caching in a communications network
CN114339719B (zh) 一种dpi数据采集方法及相关装置
CN111291770B (zh) 一种参数配置方法及装置
WO2017067476A1 (zh) Mac地址处理方法及装置
CN103546380A (zh) 一种基于策略路由的报文转发方法和装置
KR101660849B1 (ko) 소프트웨어 정의 네트워크 기반의 네트워크 자율제어 방법
RU2602333C2 (ru) Сетевая система, способ обработки пакетов и носитель записи
CN111182072A (zh) 会话请求的应用识别方法、装置和计算机设备
US9641611B2 (en) Logical interface encoding
CN111245740A (zh) 配置业务的服务质量策略方法、装置和计算设备
EP3384642A1 (en) Forwarding table compression
US20230252029A1 (en) On-board data storage method and system
KR20210130766A (ko) 메모리 관리 방법 및 장치
CN108259214B (zh) 一种配置命令管理方法、装置和机器可读存储介质
KR101740456B1 (ko) IoT 환경의 소프트웨어 정의 네트워크 기반의 패킷 포워딩 방법
CN115242892A (zh) 一种流标识获取方法、装置、设备及介质

Legal Events

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

Payment date: 20190905

Year of fee payment: 4