KR20140052109A - 대용량 플로우 검출 장치 및 방법 - Google Patents

대용량 플로우 검출 장치 및 방법 Download PDF

Info

Publication number
KR20140052109A
KR20140052109A KR1020120112855A KR20120112855A KR20140052109A KR 20140052109 A KR20140052109 A KR 20140052109A KR 1020120112855 A KR1020120112855 A KR 1020120112855A KR 20120112855 A KR20120112855 A KR 20120112855A KR 20140052109 A KR20140052109 A KR 20140052109A
Authority
KR
South Korea
Prior art keywords
flow
entry
zone
cache
flow information
Prior art date
Application number
KR1020120112855A
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 KR1020120112855A priority Critical patent/KR20140052109A/ko
Priority to US14/040,963 priority patent/US20140108738A1/en
Publication of KR20140052109A publication Critical patent/KR20140052109A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Abstract

대용량 플로우 검출 장치 및 방법이 개시된다. 대용량 플로우 검출 방법은, 수신된 플로우에 대응하는 플로우 정보를 캐시 엔트리에 저장하는 플로우 저장단계와, 플로우 정보가 캐시 엔트리에 저장됨으로써 캐시에서 삭제될 엔트리에 저장된 플로우 정보에 대응하는 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부를 판단하는 가능성 판단단계와, 가능성 판단 결과에 따라 삭제될 엔트리를 캐시에 재저장하는 재저장단계와, 플로우 정보가 저장된 엔트리의 패킷 카운트를 검사하는 패킷 카운트 검사단계와, 패킷 카운트 검사 결과 미리 설정된 임계값 이상이면, 해당 엔트리에 저장된 플로우 정보에 대응하는 플로우를 대용량 플로우로 판단하는 대용량 플로우 판단단계를 포함할 수 있다.

Description

대용량 플로우 검출 장치 및 방법{Apparatus and method for detecting large flow}
본 발명은 네트워크 관리 기술에 관한 것으로, 특히, 대용량 플로우 검출 장치 및 방법에 관한 것이다.
최근 인터넷 사용자의 증가와 다양한 응용 프로그램의 등장으로 인하여, 네트워크 트래픽이 급속히 대규모화되어 가고 있다. 특히, P2P(peer to peer), 웹 하드 등의 대용량 파일을 전송하는 서비스는 많은 양의 트래픽을 유발하는 경향이 있고, 이로 인해, 특정 사용자가 전체 네트워크 대역의 일부분을 홀로 특정 시간 동안 점유하는 경우가 발생할 수 있다.
엘리펀트 플로우(Elephant Flow)는 대용량 플로우(Large Flow)의 일종으로서, 매우 많은 바이트 수를 가지고 있는 네트워크 플로우를 말하며, 마이스 플로우(Mice Flow)는 엘리펀트 플로우와 반대되는 속성을 가진 플로우를 말한다. 실제 네트워크 트래픽은 엘리펀트 플로우와 마이스 플로우가 다양하게 공존하고 있고, 엘리펀트 플로우는 한 네트워크 링크에서 특정시간 동안 전체 대역의 대부분을 홀로 차지하여, 전체 대역을 공유하는데 불균형을 유발하여 대역 관리 및 과금 측면에서 문제를 발생시킨다.
한편, 대용량 플로우를 검출하기 위하여 기존에는 LRU(Least Recently Used) 캐시 기법을 이용하였다. LRU 캐시 기법은 간단한 구조를 가지며, 제한된 저장 공간 크기에서 빠른 속도로 대용량 플로우를 발견할 수 있는 장점이 있다. 그러나, 수많은 마이스 플로우가 캐시로 들어오게 되면, 저장하고 있는 실제 대용량 플로우가 빠르게 캐시에서 삭제될 수 있다는 단점이 있다. 이 단점은 정확한 대용량 플로우 검출을 어렵게 만든다.
LRU 캐시 기법의 기본 구조를 유지하며, 수많은 마이스 플로우가 캐시로 들어오게 되는 경우에도, 저장하고 있는 실제 대용량 플로우를 캐시에 유지함으로써, 빠르고 정확하게 대용량 플로우를 검출할 수 있는 대용량 플로우 검출 장치 및 방법이 제공된다.
본 발명의 일 실시 예에 따른 대용량 플로우 검출 방법은, 수신된 플로우에 대응하는 플로우 정보를 캐시 엔트리에 저장하는 플로우 저장단계와, 플로우 정보가 캐시 엔트리에 저장됨으로써 캐시에서 삭제될 엔트리에 저장된 플로우 정보에 대응하는 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부를 판단하는 가능성 판단단계와, 가능성 판단 결과에 따라 삭제될 엔트리를 캐시에 재저장하는 재저장단계와 플로우 정보가 저장된 엔트리의 패킷 카운트를 검사하는 패킷 카운트 검사단계와, 패킷 카운트 검사 결과 미리 설정된 임계값 이상이면, 해당 엔트리에 저장된 플로우 정보에 대응하는 플로우를 대용량 플로우로 판단하는 대용량 플로우 판단단계를 포함할 수 있다.
또 다른 실시 예에 따른 대용량 플로우 검출 장치는, 수신된 플로우에 대한 플로우 정보를 저장하는 캐시와, 캐시를 LRU 알고리즘 기반으로 관리하며, 캐시에 저장된 플로우 정보를 이용하여 해당 플로우 정보에 대응하는 플로우가 대용량 플로우인지를 판단하고, 캐시에서 삭제될 플로우 정보에 대응한 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부에 따라 삭제될 플로우 정보를 캐시에 재저장하는 제어부를 포함할 수 있다.
LRU 캐시 기법의 기본 구조를 유지하며, 캐시에서 삭제되기 직전의 네트워크 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부에 따라 삭제되기 직전의 네트워크 플로우를 재저장함으로써, 빠르고 정확하게 대용량 플로우를 검출할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 대용량 플로우 검출 장치의 구성도이다.
도 2는 도 1의 캐시(150)의 상세 구조도이다.
도 3는 본 발명의 일 실시 예에 따른 플로우 정보를 저장하는 엔트리의 데이터 구조도이다.
도 4는 본 발명의 일 실시 예에 따른 네트워크 플로우를 저장하는 방법을 도시한 흐름도이다.
도 5a 및 도 5b는 도 2의 랜드마크 구역(151)에서 대용량 플로우를 판단하는 방법을 도시한 흐름도이다.
도 6는 도 2의 엘리펀트 구역(153)에서 대용량 플로우를 처리하는 방법을 도시한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 상세하게 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 대용량 플로우 검출 장치의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 대용량 플로우 검출 장치(100)는 패킷 수집부(110), 플로우 생성부(130), 캐시(150) 및 제어부(170)를 포함할 수 있다.
패킷 수집부(110)는 네트워크 패킷을 수집한다.
플로우 생성부(130)는 패킷 수집부(110)가 수집한 패킷의 플로우를 생성한다. 예를 들어, 플로우 생성부(130)는 수집된 패킷의 프로토콜 타입(protocol type), 출발지 주소(source address), 출발지 포트(source port), 목적지 주소(destination address), 목적지 포트(destination port)를 검토하고, 상기 5가지 정보가 모두 일치하는지 여부에 따라 해당 패킷의 플로우를 생성할 수 있다. 즉, 상기 5가지 정보가 모두 일치하는 패킷은 하나의 플로우로 구성된다.
이때, 생성된 플로우는 상기의 5가지 정보(플로우 아이디)와 해당 플로우를 구성하는 패킷들의 개수 또는 패킷 길이에 대한 정보를 저장한 패킷 카운트를 포함할 수 있다.
캐시(150)는 제어부(170)의 제어에 따라 플로우 생성부(130)에서 생성된 플로우에 대한 플로우 정보를 임시 저장할 수 있다. 이때, 플로우 정보는 엔트리(entry)에 저장되고, 엔트리는 플로우 아이디(flow ID) 정보, 해당 플로우의 패킷 카운트(packet count) 정보, 순환 플래그(cycle flag) 정보 등을 포함할 수 있다. 엔트리의 구조에 대한 자세한 설명은 후술하기로 한다.
캐시(150)는 제어부(170)의 제어에 따라 LRU(Least Recently Used) 알고리즘을 기반으로 관리되며, 캐시(150)의 모든 엔트리가 플로우 정보를 저장하고 있으면, 최근 사용이 가장 적은, 즉, 오랫동안 사용되지 않은 엔트리를 플로우 정보와 함께 삭제한다.
도 2는 도 1의 캐시(150)의 상세 구조도이다.
도 2를 참조하면, 캐시(150)는 랜드마크 구역(151)과 엘리펀트 구역(153)으로 구성된다. 또한, 각 구역은 복수의 블록으로 구성되고, 각 블록은 엔트리를 포함할 수 있다. 각 구역의 엔트리 각각은 하나의 플로우 정보를 저장하고, 각 구역은 제어부(170)의 제어에 따라 LRU(Least Recently Used) 알고리즘을 기반으로 관리된다.
랜드마크 구역(151)은 플로우 생성부(130)에서 생성된 플로우에 대한 플로우 정보를 저장할 수 있다. 이때, 플로우 정보는 플로우 아이디 정보와 해당 플로우의 패킷 카운트 정보를 포함한다.
캐시(150)는 플로우 생성부(130)에서 최초 생성된 플로우에 대한 플로우 정보를 랜드마크 꼭대기(151a)에 존재하는 엔트리에 저장한다. 이후, 새로운 플로우가 생성되어 캐시(150)에 전송되면, 캐시(150)는 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리를 한 블록 아래로 이동하고, 새로운 엔트리를 랜드마크 구역 꼭대기(151a)에 생성하여 전송된 플로우에 대한 플로우 정보를 저장한다.
이와 같은 방법으로, 새로운 플로우가 캐시(150)에 전송되면, 기존에 랜드마크 구역(151)에 있던 엔트리는 한 블록씩 아래로 이동하고, 랜드 마크 구역 바닥(151b)에 있던 엔트리는 삭제된다.
캐시(150)로 전송된 플로우에 대한 플로우 정보가 랜드마크 구역(151)에 저장되어 있어 플로우 히트(flow hit)가 발생한 경우, 해당 플로우 정보를 저장한 엔트리의 패킷 카운트에 전송된 플로우의 패킷 카운트를 합산한다. 이후, 합산한 패킷 카운트가 미리 설정된 임계값 이상이면, 해당 엔트리에 저장된 플로우 정보를 가진 플로우를 대용량 플로우로 판단하고, 해당 엔트리에 저장된 플로우 정보를 엘리펀트 구역(153)에 저장한다. 반면에, 합산한 패킷 카운트가 미리 설정된 임계값 미만이면, 해당 엔트리를 랜드마크 꼭대기(151a)로 이동한다. 이때, 전송된 플로우에 대한 플로우 정보가 랜드마크 구역(151)에 저장되어 있는지 여부는, 플로우 아이디를 비교함으로써 판단할 수 있다.
캐시(150)로 전송된 플로우에 대한 플로우 정보가 랜드마크 구역(151)에 저장되어 있지 않아 플로우 미스(flow miss)가 발생한 경우, 전송된 플로우의 패킷 카운트가 미리 설정된 임계값 이상이면, 해당 플로우를 대용량 플로우로 판단하고, 해당 플로우 정보를 엘리펀트 구역(153)에 저장한다. 반면에, 전송된 플로우의 패킷 카운트가 미리 설정된 임계값 미만이면, 해당 플로우 정보를 랜드마크 구역 꼭대기(151a)의 엔트리에 저장한다. 만약, 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리에 플로우 정보가 저장되어 있다면, 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리는 한 블럭 아래로 이동하고, 랜드마크 구역 꼭대기(151a)에 새로운 엔트리를 생성하여 전송된 플로우 정보를 저장한다.
또한, 랜드마크 구역 바닥(151b)에 있던 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성이 있으면, 해당 엔트리는 랜드마크 구역 꼭대기(151a)로 이동하고, 이와는 달리, 대용량 플로우로 판단될 가능성이 없으면 해당 엔트리를 해당 엔트리에 저장된 플로우 정보와 함께 캐시(150)에서 삭제한다.
엘리펀트 구역(153)은 대용량 플로우라고 판단된 플로우에 대한 플로우 정보를 저장할 수 있다.
엘리펀트 구역(153)은 랜드마크 구역(151)으로부터 이동한 최초 대용량 플로우 정보를 엘리펀트 구역 꼭대기(153a)의 엔트리에 저장한다. 이후, 새로운 대용량 플로우 정보가 엘리펀트 구역(153)에 전송되면, 기존에 엘리펀트 구역 꼭대기(153a)에 있던 엔트리를 한 블록 아래로 이동하고, 새로운 엔트리를 엘리펀트 구역 꼭대기(151a)에 생성하여 전송된 대용량 플로우 정보를 저장한다.
엘리펀트 구역(153)으로 전송된 대용량 플로우 정보가 엘리펀트 구역(153)에 저장되어 있어 플로우 히트(flow hit)가 발생한 경우, 해당 대용량 플로우 정보를 저장한 엔트리의 패킷 카운트에 전송된 플로우의 패킷 카운트를 합산하고, 해당 엔트리를 엘리펀트 구역 꼭대기(153a)로 이동한다.
엘리펀트 구역(153)으로 전송된 대용량 플로우 정보가 엘리펀트 구역(153)에 저장되어 있지 않아 플로우 미스(flow miss)가 발생한 경우, 기존에 엘리펀트 구역 꼭대기(153a)에 있던 엔트리를 한 블록 아래로 이동하고, 새로운 엔트리를 엘리펀트 구역 꼭대기(151a)에 생성하여 전송된 대용량 플로우 정보를 저장한다. 이때, 엘리펀트 구역 바닥(153b)에 있던 엔트리에 저장된 대용량 플로우 정보는 외부로 전송되고, 해당 엔트리는 삭제된다.
이상에서는 캐시(150)가 플로우 정보를 저장 및 처리를 위한 전반적인 기능을 제어하는 것으로 기재하였으나, 플로우 정보를 저장 및 처리하는 모든 기능을 제어부(170)에서 제어하고 캐시(150)는 단순히 제어부의 제어에 따라 플로우 정보를 저장하는 기능만을 수행할 수 있다.
도 3는 본 발명의 일 실시 예에 따른 플로우 정보를 저장하는 엔트리의 데이터 구조도이다.
도 3를 참조하면, 엔트리(300)는 플로우 아이디(310), 패킷 카운트(320), 순환 플래그(330)를 포함할 수 있다.
플로우 아이디(310)는 플로우를 구성하는 네트워크 패킷 정보를 저장하며, 네트워크 패킷 정보에는 프로토콜 타입(311), 출발지 주소(312), 출발지 포트(313), 목적지 주소(314), 목적지 포트(315) 정보가 포함된다. 네트워크 패킷들이 가지고 있는 상술한 패킷 정보가 모두 일치하는 경우, 네트워크 패킷들은 하나의 네트워크 플로우를 구성한다.
패킷 카운트(320)는 플로우의 크기 정보를 저장한다. 네트워크 플로우의 크기는 네트워크 플로우를 구성하는 네트워크 패킷들의 개수 또는 길이로 판단할 수 있다. 패킷 카운트(320)는 대용량 플로우를 판단하는데 사용된다. 즉, 패킷 카운트(220)가 미리 설정된 임계값 이상인 경우, 해당 플로우를 대용량 플로우로 판단한다. 순환 플래그(330)는 캐시(150)에서 삭제될 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성에 따라 삭제되지 않고 재저장되는 횟수 정보를 저장한다. 예를 들어 설명하면, 플로우가 처음 캐시(150)에 전송되면, 전송된 플로우에 대한 플로우 정보는 엔트리에 저장되는데, 이때, 해당 엔트리의 순환 플래그(330)는 '0'으로 초기화된다. 캐시(150)에서 삭제되기 직전에 있는 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성이 있으면, 해당 엔트리는 현재 순환 플래그(330)의 값에 1을 더하여, 캐시(150)에 재저장된다. 이때, 순환 플래그 값이 미리 설정된 최대 플래그 값을 초과하면, 해당 엔트리는 재저장되지 않고, 캐시(150)에서 해당 엔트리에 저장된 플로우 정보와 함께 삭제된다.
지금까지 랜드마크 구역(151)의 엔트리와 엘리펀트 구역(153)의 엔트리를 구별하지 않고, 동일 구조를 가지는 것으로 설명하였으나, 엘리펀트 구역(153)의 엔트리는 순환 플래그(330)를 포함하지 않을 수도 있다.
도 4는 본 발명의 일 실시 예에 따른 플로우를 저장하는 방법을 도시한 흐름도이다.
본 발명의 일 실시 예에 따른 플로우를 저장하는 방법은, 먼저, 네트워크 패킷을 수집하고(410), 수집된 패킷을 이용하여 해당 패킷의 플로우를 생성한다(420). 예를 들어, 플로우 생성부(130)는 수집된 패킷의 프로토콜 타입(protocol type), 출발지 주소(source address), 출발지 포트(source port), 목적지 주소(destination address), 목적지 포트(destination port)를 검토하고, 상기 5가지 정보가 모두 일치하는지 여부에 따라 해당 패킷의 플로우를 생성할 수 있다. 즉, 상기 5가지 정보가 모두 일치하는 패킷은 하나의 플로우로 구성된다. 이때, 생성된 플로우는 상기의 5가지 정보(플로우 아이디)와 해당 플로우를 구성하는 패킷들의 개수 또는 패킷 길이에 대한 정보를 저장한 패킷 카운트를 포함할 수 있다.
그 후, 생성된 플로우에 대한 플로우 정보를 캐시(150)의 엔트리에 저장한다(430). 이때, 캐시(150)는 제어부(170)의 제어에 따라 LRU(Least Recently Used) 알고리즘을 기반으로 관리된다.
도 5a 및 도 5b는 도 2의 랜드마크 구역(151)에서 대용량 플로우를 판단하는 방법을 도시한 흐름도이다.
도 5a 및 도 5b를 참조하면, 랜드마크 구역(151)에서 대용량 플로우를 판단하는 방법은, 먼저, 캐시(150)에 수신된 네트워크 플로우와 랜드마크 구역(151)에 저장된 네트워크 플로우를 비교하여(510), 플로우 히트 발생 여부를 판단한다(520). 플로우 히트는 수신된 플로우에 대한 플로우 정보가 랜드마크 구역(151)에 저장되어 있는 경우에 발생하며, 플로우 정보의 존재 여부는 플로우 아이디(310)를 비교하여 판단할 수 있다.
플로우 히트가 발생하는 경우, 해당 플로우 정보가 저장된 엔트리의 패킷 카운트(320)에 수신된 플로우의 패킷 카운트를 합산하고(530), 합산된 패킷 카운트가 미리 설정된 임계값 이상인지를 판단하여(540), 합산된 패킷 카운트가 미리 설정된 임계값 이상인 경우는 해당 플로우 정보를 가진 플로우를 대용량 플로우로 판단하고, 해당 플로우 정보를 엘리펀트 구역(153)에 저장한다(550). 만약 합산된 패킷 카운트가 미리 설정된 임계값 미만인 경우는 해당 엔트리를 랜드마크 구역 꼭대기(151a)로 이동한다.
이와는 달리 플로우 히트가 발생하지 않는 경우, 수신된 플로우에 대한 플로우 정보를 랜드마크 구역 꼭대기(151a)에 있는 엔트리에 순환 플래그를 초기화하여 저장한다(535). 이때, 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리가 플로우 정보를 저장하고 있다면, 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리는 한 블록 아래로 이동하고, 랜드마크 구역 꼭대기(151a)에 새로운 엔트리를 생성하여 수신된 플로우에 대한 플로우 정보를 저장한다. 또한, 기존에 랜드마크 구역 꼭대기(151a)에 있던 엔트리와 마찬가지로 기존에 랜드마크 구역(110)에 있던 모든 엔트리는 한 블록 아래로 이동한다.
그 후, LRU 알고리즘에 따라 삭제될 기존에 랜드마크 구역 바닥(151b)에 있던 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성이 있는지 판단한다(545). 이때, 가능성 판단은 해당 엔트리의 패킷 카운트(320)를 분석함으로써 판단할 수 있다. 예를 들면, 패킷 카운트(320)가 가능성 판단 지표 이상이면 해당 엔트리에 저장된 플로우 정보를 가진 플로우는 대용량 플로우로 판단될 가능성이 있다고 판단하고, 그 미만이면, 가능성이 없다고 판단할 수 있다. 이때, 가능성 판단 지표는 대용량 플로우 판단시 비교되는 미리 설정된 임계값보다 작은 값으로, 사용자에 의해 미리 설정된다.
가능성 판단 단계(545) 결과, 랜드마크 구역 바닥(151b)에 있는 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성이 있는 경우, 해당 엔트리의 순환 플래그(330)가 최대 플래그 이하인지를 판단하고(555), 순환 플래그(330)가 최대 플래그 이하인 경우, 해당 엔트리의 순환 플래그(330)에 1을 더하고 해당 엔트리를 랜드마크 구역 꼭대기(151a)로 이동하여 저장한다(365). 이때, 최대 플래그는 사용자에 의해 미리 설정된다.
반면에, 랜드마크 구역 바닥(151b)에 있는 엔트리에 저장된 플로우 정보를 가진 플로우가 대용량 플로우로 판단될 가능성이 없거나, 가능성이 있더라도 순환 플래그가 미리 설정된 최대 플래그를 초과하는 경우에는 해당 엔트리는 저장된 플로우 정보와 함께 캐시(150)에서 삭제된다(575).
도 6는 도 2의 엘리펀트 구역(153)에서 대용량 플로우를 처리하는 방법을 도시한 흐름도이다.
도 6을 참조하면, 엘리펀트 구역(153)에서 대용량 플로우를 저장 및 처리하는 방법은, 먼저, 랜드마크 구역(151)에서 이동한 대용량 플로우와 엘리펀트 구역(153)에 저장된 대용량 플로우를 비교하여(610), 플로우 히트 발생 여부를 판단한다(620). 플로우 히트는 랜드마크 구역(151)에서 이동한 대용량 플로우에 대한 플로우 정보가 엘리펀트 구역(153)에 저장되어 있는 경우에 발생하며, 플로우 정보의 존재 여부는 플로우 아이디(310)를 비교하여 판단할 수 있다.
플로우 히트가 발생하는 경우, 해당 대용량 플로우 정보가 저장된 엔트리의 패킷 카운트(320)에 랜드마크 구역(151)에서 이동한 대용량 플로우의 패킷 카운트를 합산하고(630), 해당 엔트리를 엘리펀트 구역 꼭대기(153a)로 이동한다(640).
이와는 달리 플로우 히트가 발생하지 않는 경우, 랜드마크 구역(151)에서 이동한 대용량 플로우 정보를 엘리펀트 구역 꼭대기(153a)에 있는 엔트리에 저장한다(650). 이때, 기존에 엘리펀트 구역 꼭대기(153a)에 있던 엔트리가 대용량 플로우 정보를 저장하고 있다면, 기존에 엘리펀트 구역 꼭대기(153a)에 있던 엔트리는 한 블록 아래로 이동하고, 엘리펀트 구역 꼭대기(153a)에 새로운 엔트리를 생성하여 랜드마크 구역(151)에서 이동한 대용량 플로우 정보를 저장한다. 또한, 기존에 엘리펀트 구역 꼭대기(153a)에 있던 엔트리와 마찬가지로 기존에 엘리펀트 구역(153)에 있던 모든 엔트리는 한 블록 아래로 이동한다.
그 후, LRU 알고리즘에 따라 기존에 엘리펀트 구역 바닥(153b)에 있던 엔트리에 저장된 대용량 플로우 정보는 외부로 전송되고, 해당 엔트리는 삭제된다(660).
본 발명은, 또한, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드의 형태로 구현하는 것이 가능하다. 이때, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, 자기테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 캐리어 웨이브(예: 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산된 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 프로그램, 코드, 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시 예에 한정되지 않고 특허청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 대용량 플로우 검출 장치, 110: 패킷 수집부,
130: 플로우 생성부, 150: 캐시,
170: 제어부, 151: 랜드마크 구역,
153: 엘리펀트 구역.

Claims (10)

  1. 수신된 플로우에 대응하는 플로우 정보를 캐시 엔트리에 저장하는 플로우 저장단계;
    플로우 정보가 캐시 엔트리에 저장됨으로써 캐시에서 삭제될 엔트리에 저장된 플로우 정보에 대응하는 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부를 판단하는 가능성 판단단계;
    가능성 판단 결과에 따라 삭제될 엔트리를 캐시에 재저장하는 재저장단계;
    플로우 정보가 저장된 엔트리의 패킷 카운트를 검사하는 패킷 카운트 검사단계; 및
    패킷 카운트 검사 결과 미리 설정된 임계값 이상이면, 해당 엔트리에 저장된 플로우 정보에 대응하는 플로우를 대용량 플로우로 판단하는 대용량 플로우 판단단계;를 포함하는 대용량 플로우 검출 방법.
  2. 제 1항에 있어서,
    수집된 패킷의 프로토콜 타입, 출발지 주소, 출발지 포트, 목적지 주소, 목적지 포트 정보을 이용하여 수집된 패킷의 플로우를 생성하는 단계;를 더 포함하는 대용량 플로우 검출 방법.
  3. 제 2항에 있어서,
    생성된 플로우의 플로우 정보는 패킷 카운트를 더 포함하는 대용량 플로우 검출 방법.
  4. 제 1항에 있어서,
    캐시는 수신된 플로우 정보를 저장하는 랜드마크 구역과, 판단된 대용량 플로우 정보를 저장하는 엘리펀트 구역으로 구분되는 대용량 플로우 검출 방법.
  5. 제 4항에 있어서,
    랜드마크 구역과 엘리펀트 구역은 LRU(Least Recently Used) 알고리즘을 기반으로 관리되는 대용량 플로우 검출 방법.
  6. 제 4항에 있어서, 가능성 판단단계는,
    랜드마크 구역 바닥에 있는 엔트리에 저장된 플로우 정보에 대응하는 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부를 판단하는 대용량 플로우 검출 방법.
  7. 제 6항에 있어서, 가능성 판단단계 후에,
    랜드마크 구역 바닥에 있는 엔트리에 저장된 플로우 정보에 대응하는 플로우가 대용량 플로우로 판단될 가능성이 있는 경우, 해당 엔트리의 순환 플래그를 검사하는 단계;
    순환 플래그 검사 결과 미리 설정된 최대 플래그보다 큰 경우 랜드마크 구역 바닥에 있는 엔트리를 저장된 플로우 정보와 함께 삭제하는 단계;를 더 포함하는 대용량 플로우 검출 방법.
  8. 제 4항에 있어서, 대용량 플로우 판단단계 후에,
    판단된 대용량 플로우에 대한 플로우 정보를 엘리펀트 구역에 저장하는 대용량 플로우 저장단계;를 더 포함하는 대용량 플로우 검출 방법.
  9. 수신된 플로우에 대한 플로우 정보를 저장하는 캐시; 및
    캐시에 저장된 플로우 정보를 이용하여 해당 플로우 정보에 대응하는 플로우가 대용량 플로우인지를 판단하고, 캐시에서 삭제될 플로우 정보에 대응한 플로우가 대용량 플로우로 판단될 가능성이 있는지 여부에 따라 삭제될 플로우 정보를 캐시에 재저장하는 제어부;를 포함하는 대용량 플로우 검출 장치.
  10. 제 9항에 있어서,
    캐시는 수신된 플로우의 플로우 정보를 저장하는 랜드마크 구역과, 판단된 대용량 플로우의 플로우 정보를 저장하는 엘리펀트 구역으로 구성되는 대용량 플로우 검출 장치.
KR1020120112855A 2012-10-11 2012-10-11 대용량 플로우 검출 장치 및 방법 KR20140052109A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120112855A KR20140052109A (ko) 2012-10-11 2012-10-11 대용량 플로우 검출 장치 및 방법
US14/040,963 US20140108738A1 (en) 2012-10-11 2013-09-30 Apparatus and method for detecting large flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120112855A KR20140052109A (ko) 2012-10-11 2012-10-11 대용량 플로우 검출 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140052109A true KR20140052109A (ko) 2014-05-07

Family

ID=50476520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120112855A KR20140052109A (ko) 2012-10-11 2012-10-11 대용량 플로우 검출 장치 및 방법

Country Status (2)

Country Link
US (1) US20140108738A1 (ko)
KR (1) KR20140052109A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10158538B2 (en) * 2013-12-09 2018-12-18 Nicira, Inc. Reporting elephant flows to a network controller
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10223305B2 (en) * 2016-06-27 2019-03-05 International Business Machines Corporation Input/output computer system including hardware assisted autopurge of cache entries associated with PCI address translations
US10235432B1 (en) * 2016-07-07 2019-03-19 Google Llc Document retrieval using multiple sort orders
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
CN115396373A (zh) * 2022-10-27 2022-11-25 阿里云计算有限公司 基于云服务器的信息处理方法、系统及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007022560A1 (en) * 2005-08-23 2007-03-01 Position Networks Pty Ltd A stream-oriented database machine and method
JP4536785B2 (ja) * 2008-02-01 2010-09-01 富士通株式会社 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法

Also Published As

Publication number Publication date
US20140108738A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
KR20140052109A (ko) 대용량 플로우 검출 장치 및 방법
KR102266756B1 (ko) Kvs 트리
KR102289332B1 (ko) 병합 트리 가비지 메트릭스
Yuan et al. Scalable NDN forwarding: Concepts, issues and principles
CN103823807B (zh) 一种去除重复数据的方法、装置及系统
JP2015524237A (ja) ネットワーク管理
US20110167149A1 (en) Internet flow data analysis method using parallel computations
Kamimoto et al. Cache protection method based on prefix hierarchy for content-oriented network
Shahbar et al. Benchmarking two techniques for Tor classification: Flow level and circuit level classification
CN107018129A (zh) 一种基于多维Renyi交叉熵的DDoS攻击检测系统
JP4839585B2 (ja) 資源情報収集配信方法およびシステム
CN106294206A (zh) 一种缓存数据处理方法以及装置
CN105204788B (zh) 一种基于物联网的数据处理方法
CN107294743B (zh) 一种网络路径探测方法、控制器及网络设备
CN107426132A (zh) 网络攻击的检测方法和装置
CN114020734A (zh) 一种流量统计去重方法及装置
CN109002260B (zh) 一种缓存数据的处理方法和处理系统
Radenkovic et al. Congestion aware data dissemination in social opportunistic networks
CN104503983A (zh) 为搜索引擎提供网站认证数据的方法及装置
CN108337100B (zh) 一种云平台监测的方法和装置
CN109144431A (zh) 数据块的缓存方法、装置、设备及存储介质
US8838774B2 (en) Method, system, and computer program product for identifying common factors associated with network activity with reduced resource utilization
CN105100072B (zh) 一种网络节点监测方法及装置
JP2010034708A (ja) 中継装置
CN108241685A (zh) 数据查询的方法和查询客户端

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid