KR100681000B1 - 플로우별 트래픽 측정 장치 및 방법 - Google Patents

플로우별 트래픽 측정 장치 및 방법 Download PDF

Info

Publication number
KR100681000B1
KR100681000B1 KR1020050017761A KR20050017761A KR100681000B1 KR 100681000 B1 KR100681000 B1 KR 100681000B1 KR 1020050017761 A KR1020050017761 A KR 1020050017761A KR 20050017761 A KR20050017761 A KR 20050017761A KR 100681000 B1 KR100681000 B1 KR 100681000B1
Authority
KR
South Korea
Prior art keywords
flow
flow information
information
alignment structure
storage unit
Prior art date
Application number
KR1020050017761A
Other languages
English (en)
Other versions
KR20060063544A (ko
Inventor
양우진
함진호
정해원
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20060063544A publication Critical patent/KR20060063544A/ko
Application granted granted Critical
Publication of KR100681000B1 publication Critical patent/KR100681000B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list

Landscapes

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

Abstract

본 발명은 네트워크 장치에 도달하는 패킷의 트래픽을 플로우별로 관리하면서 특정 조건에 맞는 플로우 정보만을 간단한 연산을 통해 검색할 수 있도록 한 플로우별 트래픽 측정 장치 및 방법에 관한 것으로서, 네트워크 장치에 도달한 데이터 패킷의 플로우 정보를 해쉬 테이블과 소정 조건으로 정렬되는 정렬 구조로 저장함으로서, 플로우 정보의 수집/저장은 해쉬 테이블의 해쉬 구조를 통해 플로우별로 수행하고, 특정 조건에 부합하는 플로우의 검색은 정렬 구조를 통해 수행토록 한 것이다.
라우터, 트래픽, 해쉬, 정보 수집, 정렬 구조

Description

플로우별 트래픽 측정 장치 및 방법{Apparatus and method for measuring per-flow information of traffic}
도 1은 본 발명에 의한 트래픽 측정 장치를 나타내는 전체 구성도이다.
도 2는 본 발명에 의한 트래픽 측정 장치에 있어서, 해쉬 테이블과 정렬된 링크드리스트의 혼성 구조로 이루어진 플로우 저장부의 구성예이다.
도 3은 본 발명에 의한 트래픽 측정 장치에 있어서, 해쉬 테이블과 정렬된 트리의 혼성 구조로 이루어진 플로우 정보부의 구성예이다.
도 4는 본 발명에 의한 트래픽 측정 방법에 있어서, 플로우별 트래픽 정보 수집 과정을 나타낸 흐름도이다.
도 5는 본 발명에 의한 트래픽 측정 방법에 있어서, 플로우별 트래픽 정보 판정 과정을 나타낸 흐름도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
110: 플로우 저장부 120: 수집부
130: 판정부 140: 처리부
210: 해쉬 테이블 211: 링크드리스트 체인
212, 223, 322: 플로우 정보 엔트리
220: 링크드리스트(linked-list) 320: 트리 루트
본 발명은 네트워크 장비에서 트래픽 정보를 측정하는 장치에 관한 것으로서, 더욱 상세하게는 여러 회선에서 수집되는 플로우의 정보를 플로우별로 관리하면서 특정 조건에 맞는 플로우 정보만을 추출하여 제공할 수 있는 플로우별 트래픽 측정 장치 및 방법에 관한 것이다.
네트워크 기술의 향상과 더불어, 비디오/오디오 스트리밍서비스, 인터넷 폰 서비스등과 같은 다양한 네트워크 서비스가 제안되고 일반화되면서, 네트워크의 이용량이 점차 증가하고 있다. 더하여, 사용자에게 보다 나은 서비스 제공을 위하여, 인터넷의 안전한 사용을 보장하고 사용량에 따른 정확한 과금 등이 요구되었으며, 이런 요구에 부합하기 위해서는 트래픽의 플로우별 측정이 가능하여야 한다. 그에 따라 네트워크의 주 구성요소인 주변부 및 중심 라우터 장비들에서의 트래픽 측정과 관련된 연구가 이루어지고 있다.
현재의 라우터 장비에서는 제3의 장비로 트래픽 정보를 전달하기 위하여 간이망 관리 프로토콜(SNMP: Simple Network Management Protocol)과 IPFIX(IP Flow Information eXport)이용한다. 이중 SNMP는 인터페이스 단위로 통계를 제공해 주기 때문에, 플로우별 정보 제공과는 거리가 멀고, IPFIX는 플로우별 정보를 제공해 줄 수 있으나, IETF에 의해 표준화 작업이 진행되고 있기 때문에, 아직 활성화되어 있지 않다.
그에 반해, 전화망이나 이동통신망에서는 과금을 위한 100% 트래픽 측정이 가능하다. 이러한 전화망이나 이동통신망은 트래픽의 양이 적은 편이고 망의 구조도 수직적이며, 각 호의 체결이 망의 자원을 예약하는 형태이므로, 트래픽의 측정에 큰 어려움은 없다.
그러나 인터넷의 구성요소인 라우터는 트래픽의 양이 많고, 망의 구조는 복잡하며, 호의 체결이란 개념이 없다. 따라서 트래픽의 플로우별 측정은 매우 어렵고 시간이 많이 걸리는 일이다.
기존에 제안된 트래픽 측정 기술로서, 한국특허 공개번호2004-52015호에서는 인터넷 회선에 흐르는 패킷을 수집하여, 트래픽 정보를 추출하고, 추출된 정보를 소정의 플로우 정보로 가공하는 트래픽 측정 시스템 및 트래픽 분선 방법에 대하여 제안하고 있다. 그러나, 상기 제안된 트래픽 측정기술은 인터넷 회선에 흐르는 모든 트래픽 정보를 유형별로 분류하여 분석하는데 주안점을 둔 것으로서, 다양한 트래픽 통계자료를 수집할 수 있다는 효과는 있으나, 시스템이 복잡하고, 트래픽 정보 처리를 위한 연산 과정이 복잡하다.
또한, 미국특허번호 6,754,662호(발명의 명칭 : Method and apparatus for fast and consistent packet classification via efficient hash-caching)에서는, 트래픽의 측정시 캐쉬 저장 장치를 사용하여 주 처리기의 부담을 줄여 고속화를 구현하는 기술이 제안되었는데, 이는 모든 패킷을 수집하고, 수집된 패킷에서 정보를 추출 가공하여 2차로 저장하는 캐쉬 저장소가 있고, 주 처리기가 상기 캐쉬 저장소로부터 일차 통합된 자료를 받아들이도록 구성된 것이다. 그러나, 상기 방식은 캐 쉬 저장소가 별도로 필요하며, 주 처리기의 기능 일부를 캐쉬 저장소에서 대신함으로서, 주처리기의 부담만을 줄였을 뿐이기 때문에, 수집된 패킷에서 정보를 추출하여 가공하는 기존의 복잡한 연산처리를 위한 자원 낭비를 여전히 존재할 수 있다.
실제로, 기존에 사용되는 플로우별 트래픽 측정을 위한 장치는 트래픽을 포워딩하는 장치보다 더 복잡한 작업을 수행한다. 따라서 트래픽 측정을 위해 낭비되는 시스템 자원이 너무 많기 때문에, 저가의 회선 제공을 목표로 하는 대부분의 인터넷 네트워크 장치에서는 적용하지 않는다. 일부 라우터 장비에서 이를 지원하기도 하는데, 대부분은 수십 ~ 수백대 일의 샘플링 방식으로 수행하며 완전 측정은 장비의 오버헤드로 인해 지원되지 않는다. 이런 오버헤드를 줄일 수 있는 방안이 제시되고는 있으나 아직 만족할 만한 단계는 아니다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로서, 그 목적은, 플로우의 정보를 플로우별로 관리하면서 특정 조건에 맞는 플로우 정보만을 추출하여 제공하는 플로우별 트래픽 측정 장치 및 방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 플로우 정보를 관리하는 자료 구조를 개선함으로서, 플로우 정보 수집, 처리의 연산 복잡도를 감소시킨 플로우별 트래픽 측정 장치 및 방법을 제공하는 것이다.
상술한 목적을 달성하기 위한 구성수단으로서, 본 발명은 네트워크 장치에 도달하는 데이터 패킷에 대해 플로우별로 분류하여 관리하는 플로우별 트래픽 측정 장치에 있어서, 상기 네트워크 장치에 도달하는 데이터 패킷에 대한 플로우 정보를 해쉬(hash) 테이블과 정렬(sorting) 구조에 동시에 연관시켜 저장 관리하는 플로우 저장부; 상기 네트워크 장치에 도달하는 데이터 패킷에 대한 플로우 정보를 수집하여 상기 플로우 저장부에 해쉬 및 정렬 구조로 등록하는 수집부; 상기 플로우 저장부의 정렬 구조를 검색하여 기설정된 조건에 맞는 플로우를 판정하는 판정부; 및 상기 판정부에서 판정된 특정 조건에 부합하는 플로우를 기 설정된 해당 처리 조건에 따라 처리하는 처리부를 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 다른 구성수단으로서, 본 발명은 네트워크 장치에 도달하는 데이터 패킷의 플로우에 대해서 체인형태의 해쉬테이블 및 정렬 구조로 이중 관리하는 플로우별 트래픽 측정 방법에 있어서, 네트워크 장치에 도달된 데이터 패킷의 플로우 정보 f를 수신하는 수신 단계; 상기 수신된 플로우 정보 f에 대한 해쉬 함수 결과값 h을 계산하는 해쉬값 산출 단계; 상기 해쉬 함수 결과값 h에 대응하는, 해쉬 테이블의 h번째 체인에서 상기 수신된 플로우 정보 f와 일치하는 플로우 정보 엔트리 F를 검색하는 검색 단계; 상기 검색 결과, 일치하는 플로우 정보 엔트리 F가 있으면, 해당 플로우 정보 엔트리 F의 정보를 갱신하고, 정렬 구조를 재배열하는 갱신 단계; 및 상기 검색 결과, 일치하는 플로우 정보 엔트리 F가 없으면, 수신된 플로우 정보f를 기록한 엔트리 F를 생성하고, 정렬 구조에 추가시키는 등록 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명에 의한 플로우별 트래픽 측정 장치 및 방법에 대하여 상세하게 설명한다.
일반적으로, 라우터와 같은 네트워크 장치로 도달하는 패킷에 대해, 송신자와 수신자의 주소를 포함한 5 ~ 6개 이상의 정보를 추출하는데, 이것이 바로 플로우의 정보가 된다.
본 발명에 의한 트래픽 측정 장치 및 방법은, 이러한 플로우의 정보를 수집함에 있어서, 플로우 정보를 저장하는 자료 구조와 수집시의 연산 복잡도를 개선한다.
또한, 본 발명의 트래픽 측정 장치 및 방법에 의하면, 플로우별로 측정된 트래픽 자료 중, 특정 조건에 부합하는 일부의 플로우 정보를 추출하여 제 3의 장치로 전송할 수 있으며, 이 때 개선된 플로우 정보 자료 구조를 통해 조건에 맞는 플로우 검색에 걸리는 시간 및 복잡도를 개선한다.
그 결과, 본 발명은 해당 네트워크 장치에 도달한 모든 데이터 패킷에 대해 플로우로 분류하여 그 플로우 정보를 저장하며, 필요에 따라 다른 응용으로 전달할 수 있다.
도 1은 본 발명에 의한 플로우별 트래픽 측정 장치의 전체 구성을 나타낸다. 상기 도 1을 참조하면, 본 발명에 의한 트래픽 측정 장치는, 해쉬 테이블과 정렬 구조가 병합되어 이루어져 플로우 정보를 저장하는 플로우 저장부(110)와, 네트워크 장치에 도달한 패킷으로부터 플로우 정보를 수집하여 상기 플로우 저장부(110) 에 해쉬 및 정렬 구조로 저장하는 수집부(120)와, 상기 플로우 저장부(110)에 저장된 플로우 정보중 지정된 조건에 맞는 플로우를 검색하는 하나 혹은 조건별로 특화된 복수의 판정부(130)와, 상기 판정부(130)의 판정 결과에 따라서 상기 플로우 저장부(110)에서 해당 플로우 정보를 제 3 장치로 출력하는 처리부(140)로 이루어진다.
상기 구성에 있어서, 플로우 저장부(110)는 플로우 정보 수집시의 연산 시간을 줄이기 위하여, 1차적으로 플로우 정보를 해쉬 구조로 저장하며, 검색 시간의 단축을 위하여 정렬 구조에도 연결시킨다. 더 구체적으로, 상기 플로우 저장부(110)는 해쉬 구조와 정렬 구조가 병합한 것으로서, 도 2나 도 3과 같이 구성될 수 있다. 상기 도 2 및 도 3에 있어서, 부호 212, 223, 322는 상기 수집부(120)에서 수집되어 플로우 저장부(110)에서 저장되는 각각의 플로우 정보 엔트리를 나타낸다.
이러한 도 2 및 도 3을 참조하면, 본 발명에 의한 플로우 저장부(110)는 플로우를 수집할 때 연산 시간을 줄이기 위한 해쉬 테이블(210)을 구비한다. 상기 해쉬 테이블(210)의 구현 방법으로는 여러 가지가 있으며, 예를 들어, 정적인 해쉬 테이블, 다중 해쉬 테이블 등 어떠한 종류의 해쉬 테이블이라도 가능하다.
상기 도 2 및 도 3의 실시예에서는, 상기 해쉬 테이블(210)은 체인(211)을 이용한다. 이 방법은 상기 수집부(120)에서 수집된 플로우 정보를 일차적으로 해쉬 함수를 통해서 분류한 후, 같은 해쉬 값을 갖는 복수의 플로우를 하나의 체인(211)으로 보관하는 것이다. 즉, 상기 해쉬 테이블(210)은 해쉬값으로 구분되는 복수의 체인(211)이 저장되면, 각 체인(211)은 복수의 플로우 정보 엔트리(212)로 이루어진다.
또한, 본 발명에 의하면, 상기 플로우 정보 엔트리(212)들은 해쉬 테이블(210)의 체인(211)에도 속하면서, 판정부(130)에 의한 검색 시간을 줄이기 위한 정렬 구조에도 속해 있게 된다.
본 발명은 상기 정렬 구조로서, 도 2에 보인 최초 도착 시간 순서로 정렬되는 링크드리스트(220)나 도 3에 보인 정렬 트리(320)를 사용한다.
먼저, 도 2를 참조하면, 플로우 저장부(110)에 저장된 한 플로우 정보 엔트리(223)는 해쉬 테이블(210)에 의해서도 접근이 가능하면서, 링크드리스트(220)의 노드도 된다.
상술한 특성은 플로우의 분류, 수집을 위해서는 해쉬 테이블(210)을 사용하고, 최초 도착 시간이 가장 오래된 플로우를 검색하고 싶을 경우에는 링크드리스트(220)를 사용하여 신속하고 간단하게 처리할 수 있게 한다.
다음으로, 도 3을 참조하면, 플로우 정보 엔트리(322)가 해쉬 테이블(210)의 체인(211)에 속해 있으면서, 또한 부모(parent) 노드와 자식(child) 노드를 가지는 트리(320)의 한 구성요소가 된다. 따라서, 도 2에 보인 실시형태에서와 마찬가지로, 상기 플로우 정보 엔트리(322)는 해쉬 테이블(210)로부터의 접근과, 트리(320)로부터의 접근이 모두 가능하다.
도 3에 보인 정렬된 트리 구조에는, 부모 노드가 자식 노드보다 값이 더 큰 최대값 힙(max heap) 구조, 반대로 부모노드가 자식노드보다 값이 작은 최소값 힙 (min heap) 구조를 사용한다. 예를 들어, 최근 갱신 시간에 대한 최소값 힙 구조인 경우, 트리(320)의 첫 포인터(321)가 지적하는 노드(플로우 정보 엔트리(322))가 최근 갱신 시간이 최소인 노드, 즉 가장 오랫동안 갱신되지 않은 노드인 것이다. 따라서 가장 오랜 동안 갱신되지 않은 플로우의 검색에 트리(320)를 사용할 수 있다.
이상 설명한 바와 같이, 플로우 저장부(110)에서의 해쉬 구조와 정렬 구조의 동시 사용은, 상기 수집부(120)에서의 연산 시간과, 판정부(130)에서의 연산 시간을 좋은 방향으로 개선시킬 수 있다.
즉, 플로우별 트래픽 정보의 분류, 수집 과정에서는 해쉬 테이블(210)을 사용함으로써, 플로우의 수가 크게 증가하더라도 해쉬 테이블(210)의 크기를 늘림으로서 연산 시간을 일정 수준 이하로 낮출 수 있다. 또한 특정 조건에 맞는 플로우 검색 과정에서, 링크드리스트(220)이나 트리(320)등의 정렬 구조를 사용하면, 모든 플로우에 대한 조건 검사없이 정렬 구조의 시작과 끝만 검사하면 되므로, 플로우의 수가 증가하더도 연산 시간 증가는 없게 된다. 특히 요구되는 플로우 검사 주기가 짧아지면, 전체 플로우 검색시에는 연산 시간이 크게 증가되지만, 상술한 바와 같이 정렬 구조를 사용하는 경우 플로우 검사 주기가 짧아지더라도 연산 시간에 차이가 거의 없게 된다.
이상과 같은 플로우 저장부(110)의 구조를 유지하기 위해서는, 기존의 단순 해쉬 테이블 구조와 대비하여 추가적인 연산 처리가 필요하다.
이를 위하여, 상술한 플로우 저장부(110)의 구조를 유지하면서, 상기 수집부 (120)에서 플로우를 분류하여 수집하고, 상기 판정부(130)에서 특정 조건의 플로우를 검색할 수 있는 트래픽 측정 방법이 요구되며, 이는 도 4 및 도 5의 도시한 흐름도와 같다.
도 4는 본 발명에 의한 트래픽 측정 방법에 있어서, 상기 수집부(120)에 적용될 수 있는 플로우의 분류 및 수집 절차를 나타낸 흐름도이다.
상기 도 4에서는. 최후 도착 시간과 최초 도착 시간을 기준으로 정렬이 이루어지며, 하나의 해쉬 테이블에 두 개의 정렬 구조를 가진다고 가정한다.
도 4를 참조하면, 본 발명에 의한 트래픽 측정 방법은 네트워크 장비에 도달된 데이터 패킷으로부터 수집된 플로우f의 정보를 수신하는(410) 것으로서 시작된다.
상기 수신된 플로우 정보는, 앞서 설명한 바와 같이, 플로우의 송신자와 수신자에 대한 정보와, 사용되는 프로토콜, 인터페이스, 플로우의 가격 등 플로우와 관련된 다양한 정보를 포함한다. 또한, 이러한 플로우 정보들은 단일 패킷으로부터 발생할 수도 있고, 네트워크 프로세서와 같은 다른 보조 장비에 의해서도 통합된 플로우 정보가 발생할 수도 있기 때문에, 플로우에 통합된 패킷의 개수 역시 상기 수신된 플로우 정보에 포함된다.
이러한 플로우 정보가 수신되면, 플로우별 분류를 위하여 해쉬 함수에 따라 결과값 h를 계산한다(420).
그리고, 상기 계산된 해쉬 함수 결과값 h를 기준으로 하여, 상기 도 2 및 도 3의 해쉬테이블(210)의 h 번째에 해당하는 체인(211)에서 상기 수신된 플로우 f와 일치하는 플로우 정보 엔트리(212)가 있는지 검색한다(430).
상기 검색 결과, 해쉬 테이블(210)의 해당 체인에서 동일한 플로우 F가 발견되면(440), 해당 플로우가 이미 플로우 저장부(110)에 등록된 경우이므로 플로우 정보의 갱신 절차(450)를 수행하고, 일치하는 플로우 F가 발견되지 않으면, 해당 플로우가 플로우 저장부(110)에 등록되지 않은 경우이므로, 상기 플로우 저장부(110)에 새로운 플로우 정보 엔트리를 등록하는 절차(460)를 수행한다.
상기중 갱신절차(450)는, 플로우 정보 갱신과 정렬 구조의 재배열을 수행한다. 일반적으로, 플로우 정보의 갱신은, 해당 플로우 정보의 최초 도착 시간은 그대로이면서, 최후 도착 시간만 달라지는 경우에 해당한다. 따라서 최초 도착 시간에 대한 정렬 구조의 재배열은 불필요하며, 단지 최후 도착 시간에 대한 정렬 구조의 재배열만이 필요하다.
따라서, 상기 갱신절차(450)는, 저장부(110)의 해쉬테이블(210)에 등록된 플로우 정보 엔트리 F의 정보를 수신된 플로우 정보 f로 갱신한다(451). 상기와 같이 갱신된 플로우는 해당 시점에서 최후에 도착한 플로우이므로, 최후 도착시간 정렬 구조의 가장 마지막에 배치되어야 한다. 따라서, 최후 도착 시간 정렬구조에서 상기 플로우 정보 엔트리 F를 삭제한(452) 후에, 상기 플로우 정보 엔트리 F를 최후 도착 시간 정렬 구조의 마지막에 기록한다(453).
이 때, 정렬구조가 도 2에 보인 링크드리스트(220)라면 중간 노드의 삭제 과정은 일반적으로 알려져 있으며, 쉽게 응용 가능하다. 또한, 상기 링크드리스트 (220)는 마지막 엔트리를 지시하는 포인터(222)가 있기 때문에, 상기 포인터(222)의 위치를 변경하는 것으로 최후 도착 노드의 추가도 쉽다.
다음으로, 정렬구조가 도 3에 보인 바와 같이 트리(320) 구조인 경우, 최대값 힙, 최소값 힙 등의 트리 구조에서의 노드 삭제/추가 방법은 공지의 기술이므로 쉽게 응용이 가능하다.
그리고, 상기 등록 절차(460)에서는, 플로우 정보 엔트리의 생성과 정렬 구조의 재배열이 수행된다. 즉, 상기 해쉬테이블(210)의 h번째 체인에서 일치하는 플로우 F가 발견되지 않으면, 해당 해쉬테이블(210)의 h번째 체인에 수신된 플로우 f에 대한 정보를 기록한 플로우 정보 엔트리를 생성한다(461). 여기서의 생성은 해쉬 테이블(210)의 체인(211)에 새 엔트리를 등록하는 것을 의미한다. 이렇게 새로 생성된 플로우 정보 엔트리(212)는 최초 도착 시간 정렬 및 최후 도착 시간 정렬에서 모두 마지막이 된다.
따라서 상기 새로 생성된 플로우 정보 엔트리(212)에 대해서, 최초 도착 시간에 대한 정렬 구조에서 마지막 노드로 등록하고(462), 또한 최후 도착 시간에 대한 정렬 구조에서 마지막 노드로 등록한다(463).
이러한 정렬 구조의 재배열은, 정렬 구조가 링크드리스트(220)와 트리(320) 구조인 경우, 상기 갱신 절차(450)에서 설명한 정렬 구조 기록 단계(453)와 유사하므로 쉽게 응용가능하다.
이상 설명한 바와 같이 플로우 저장부(110)에 새로운 플로우 정보가 수집 저장됨과 동시에, 상기 판정부(130)에서는 상기 플로우 저장부(110)를 검색하여 설정 된 특정 조건에 맞는 플로우가 있는 지를 판정한다.
이때, 상기 플로우 저장부(110)는 해쉬 테이블(210)과 함께, 설정된 특정 검색 조건으로 정렬된 정렬구조로 이루어져 있으므로, 상기 판정부(130)는 설정된 특정 조건에 부합하는 플로우의 검색시, 상기 플로우 저장부(110)에 등록된 전체 플로우 정보 엔트리(212)에 대해 수행할 필요없이, 단지 정렬 구조에 있어서, 시작 노드(221,321)에 대해서만 검색하면 된다.
도 5는 상기 판정부(130)에 적용되는 특정 조건에 부합되는 플로우의 검색 및 판단 절차를 나타낸 흐름도로서, 플로우 저장부(110)의 정렬 구조는 상기 도 4에서와 같이 최초 도착 시간 및 최후 도착 시간을 기준으로 정렬되며, 검색조건은 최후 도착 후 경과 시간이 기준보다 큰 플로우인 경우이다. 여기서, 최후 도착 후 경과 시간은 현재 시간에서 플로우의 최후 도착 시간을 뺀 것이므로, 최후 도착후 경과시간이 기준보다 큰 플로우를 검색하고자 하는 경우, 최후 도착 시간이 작은 순서로 정렬해 둔 구조가 필요하며, 이렇게 정렬된 도 2 및 도 3의 정렬 구조에서 첫 노드(221,321)는 최후 도착 시간이 가장 작은 플로우이다.
본 발명은 상기와 같이 플로우 저장부(110)의 최후 도착 시간 순으로 정렬된 정렬 구조에서, 최후 도착 시간이 가장 오래된 플로우 정보 엔트리 F를 가져온다(510). 그리고, 상기 플로우 정보 엔트리 F에 등록된 최후 도착 시간이후 현재까지의 경과 시간을 계산하고(520), 상기 계산된 경과시간이 기준시간보다 큰지를 비교한다(530). 이 때, 상기 경과시간이 기준시간보다 크지 않다면, 기준시간을 초과할 때까지 대기하게 되는데, 이때, 상기 검색과정을 일정 시간간격으로 계속 시도하여 기준시간을 초과하는지를 체크할 수 도 있고, 일정 시간 동안 검색 과정을 정지할 수도 있다. 바람직하게는, 상기 산출된 경과시간과 기준 시간과의 차이동안 검색과정을 정지하는 것이 최적이다.
반대로, 상기 비교(530) 결과, 상기 산출된 경과 시간이 기준 시간을 초과한 경우, 해당 플로우 F에 대하여 제3장치로의 전송등과 같은 기설정된 처리를 수행하게 된다(540).
상기 도 5에서는, 경과시간이 기준시간을 초과하는 플로우 정보를 플로우 저장부(110)에서 삭제하고, 처리부(140)로 넘기도록 한다.
즉, 기준시간을 경과한 플로우 F가 있으며, 플로우저장부(110)의 해쉬 테이블(210)의 체인(211)에서 해당 플로우 정보 엔트리(212)를 제거한다(541).
이어서, 플로우저장부(110)의 최후 도착 시간 정렬 구조에서 해당 노드를 삭제한다(542). 정렬 구조에서의 삭제 과정은, 앞서 설명한 바와 같이, 링크드리스트나 정렬 트리에서의 노드 삭제 과정을 그대로 응용하여 이루어진다. 이상과 같이 최후 도착 시간 정렬 구조에서 경과시간이 가장 오래된 노드(즉, 시작 노드)가 삭제되면, 정렬 구조의 시작노드는 그 다음 노드로 자동 변경된다.
이와 같이, 특정 검색조건에 부합되는 플로우에 대한 정보를 플로우저장부(110)에서 삭제한 후에, 상기 판정부(130)는 상기 처리 결과를 처리부(140)로 전달한다(543).
이상에서 설명한 도 5의 검색 과정은 반복되어, 해당 네트워크 장치를 통과하는 플로우별 트래픽 상태를 체크하게 된다.
상기 처리부(140)는 상기 판정부(130)에서 지정한 플로우에 대해, 지정한 행동을 처리하는 부분으로서, 필요에 따라서 다양한 응용이 있을 수 있다. 예를 들어, IPFIX 형식으로 외부 특정 IP로 전송하는 일을 담당하거나, 플로우 정보의 디스크 기록, 화면 출력 등 여러 가지 역할의 수행을 포함한다.
이상 본 발명의 이해를 돕고자 도면과 명세서에서 실시 예를 참고로 설명하였으나, 이는 예시적인 것에 불과하며, 여기서 사용된 특정 용어들 역시 의미 한정이나 본 발명의 범위 한정을 의미하는 것이 아니다. 예를 들면 상기 실시예에서는 정렬 구조로서 링크드리스트와 힙 트리만을 예로 들었으나, 이에 한정되지 않고 본 기술 분야에 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 것을 이해할 것이다.
상술한 바에 의하여, 본 발명의 트래픽 측정 장치 및 방법은, 기존의 트래픽 측정 기술과 비교할 때 같은 연산 용량으로 수배 ~ 수백 배의 플로우 정보를 처리할 수 있고, 적은 용량의 트래픽 정보 수집 장치로도 100% 트래픽 실시간 수집을 가능하게 되며, 따라서 인터넷망과 같은 복잡하고 플로우의 수가 많은 환경에 적용할 수 있다는 우수한 효과가 있다.

Claims (14)

  1. 네트워크 장치에 도달하는 데이터 패킷에 대해 플로우별로 분류하여 관리하는 플로우별 트래픽 측정 장치에 있어서,
    상기 네트워크 장치에 도달하는 데이터 패킷에 대한 플로우 정보를 해쉬(hash) 테이블과 정렬(sorting) 구조에 동시에 연관시켜 저장 관리하는 플로우 저장부;
    상기 네트워크 장치에 도달하는 데이터 패킷에 대한 플로우 정보를 수집하여 상기 플로우 저장부에 해쉬 및 정렬 구조로 등록하는 수집부;
    상기 플로우 저장부의 정렬 구조를 검색하여 기설정된 조건에 맞는 플로우를 판정하는 판정부; 및
    상기 판정부에서 판정된 특정 조건에 부합하는 플로우를 기 설정된 해당 처리 조건에 따라 처리하는 처리부를 포함하는 플로우별 트래픽 측정 장치.
  2. 제1항에 있어서,
    상기 플로우 저장부의 정렬 구조는 링크드리스트(linked-list) 구조인 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  3. 제1항에 있어서,
    상기 플로우저장부의 정렬 구조는 하나의 부모노드와 복수의 자식 노드로 이 루어지는 정렬된 트리(sorted tree) 구조인 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  4. 제1항 내지 제3항중 어느 한 항에 있어서,
    상기 플로우 저장부의 정렬 구조는 판정부의 검색 조건에 맞춰 정렬 되는 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  5. 제4항에 있어서,
    상기 플로우 저장부의 정렬 구조는 도착시간을 기준으로 정렬되는 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  6. 제4항에 있어서,
    상기 판정부는 상기 플로우 저장부의 정렬 구조중 시작 노드 또는 마지막 노드에 대해서만 검색을 수행하는 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  7. 제4항에 있어서,
    상기 처리부는 상기 판정부에서 지정된 플로우에 대하여, 제3의 장치로 전송, 디스크로의 정보저장 및 화면 출력 중 하나 이상을 수행하는 것을 특징으로 하는 플로우별 트래픽 측정 장치.
  8. 네트워크 장치에 도달하는 데이터 패킷의 플로우에 대해서 체인형태의 해쉬테이블 및 정렬 구조로 이중 관리하는 플로우별 트래픽 측정 방법에 있어서,
    네트워크 장치에 도달된 데이터 패킷의 플로우 정보 f를 수신하는 수신 단계;
    상기 수신된 플로우 정보 f에 대한 해쉬 함수 결과값 h을 계산하는 해쉬값 산출 단계;
    상기 해쉬 함수 결과값 h에 대응하는, 해쉬 테이블의 h번째 체인에서 상기 수신된 플로우 정보 f와 일치하는 플로우 정보 엔트리 F를 검색하는 검색 단계;
    상기 검색 결과, 일치하는 플로우 정보 엔트리 F가 있으면, 해당 플로우 정보 엔트리 F의 정보를 갱신하고, 정렬 구조를 재배열하는 갱신 단계; 및
    상기 검색 결과, 일치하는 플로우 정보 엔트리 F가 없으면, 수신된 플로우 정보를 기록한 엔트리 F를 생성하고, 정렬 구조에 추가시키는 등록 단계를 포함하는 플로우별 트래픽 측정 방법.
  9. 제8항에 있어서,
    상기 정렬 구조는 최후 도착 시간과 최초 도착 시간으로 정렬되는 이중 정렬 구조인 것을 특징으로 하는 플로우별 트래픽 측정 방법.
  10. 제8항 또는 제9항에 있어서, 상기 갱신단계는
    상기 해쉬 테이블에서 검색된 플로우 정보 엔트리 F의 정보를 수신된 플로우 정보 f로 수정하는 단계;
    정렬 구조에서 상기 플로우 정보 엔트리 F를 삭제하는 단계; 및
    상기 삭제된 플로우 정보 엔트리 F를 정렬 구조의 시작 또는 마지막 노드에 추가하는 단계인 것을 특징으로 하는 플로우별 트래픽 측정 방법.
  11. 제8항 또는 제9항에 있어서, 상기 등록단계는
    해쉬 테이블의 h번째 체인에 수신된 플로우 정보 f를 기록한 플로우 정보 엔트리 F를 생성하는 단계; 및
    상기 생성된 플로우 정보 엔트리 F를 정렬 구조의 시작 또는 마지막 노드로 추가하는 단계인 것을 특징으로 하는 플로우별 트래픽 측정 방법.
  12. 제11항에 있어서, 상기 등록단계는
    상기 생성된 플로우 정보 엔트리 F를 최초 도착 시간 정렬구조 및 최 후 도착 시간 정렬 구조의 마지막 노드로 추가하는 것을 특징으로 하는 플로우별 트래픽 측정 방법.
  13. 제8항에 있어서,
    상기 정렬 구조에서 가장 오래된 플로우 정보 엔트리를 가져오는 단계;
    상기 가져온 플로우 정보 엔트리의 최후 도착시간이후 현재까지 경과한 시간을 계산하는 단계;
    상기 계산된 경과시간이 기준시간보다 큰지를 비교하는 단계; 및
    상기 비교결과 상기 계산된 경과시간이 기준시간보다 크다면, 해쉬 테이블 및 정렬 구조에서 해당 플로우 정보 엔트리를 제거하고, 상기 플로우 정보에 대한 지정된 처리를 수행하는 단계를 더 포함하는 것을 특징으로 하는 플로우별 트래픽 측정 방법.
  14. 제13항에 있어서, 상기 지정된 처리는
    제3 장치로의 플로우 정보 전송, 디스크에 저장, 화면 출력 중 하나 이상을 포함하는 것임을 특징으로 하는 플로우별 트래픽 측정 방법.
KR1020050017761A 2004-12-06 2005-03-03 플로우별 트래픽 측정 장치 및 방법 KR100681000B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040101725 2004-12-06
KR1020040101725 2004-12-06

Publications (2)

Publication Number Publication Date
KR20060063544A KR20060063544A (ko) 2006-06-12
KR100681000B1 true KR100681000B1 (ko) 2007-02-09

Family

ID=37159523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050017761A KR100681000B1 (ko) 2004-12-06 2005-03-03 플로우별 트래픽 측정 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100681000B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100723884B1 (ko) * 2005-12-07 2007-05-31 한국전자통신연구원 인터넷 상의 tcp 트래픽을 구성하는 개별 플로우의 실질성능을 측정하는 시스템 및 방법
KR100779103B1 (ko) * 2006-12-07 2007-11-27 한국전자통신연구원 네트워크상의 패킷 플로우 정보 처리 시스템 및 그 방법
KR100870182B1 (ko) 2007-04-05 2008-11-25 삼성전자주식회사 L2/l3 기반 라우터쌍의 플로우 별 트래픽 양 추정시스템 및 방법
KR100938647B1 (ko) * 2007-12-13 2010-01-25 한국전자통신연구원 플로우 데이터 분석 결과에 따라 이를 저장하는 장치 및방법
KR101399414B1 (ko) * 2013-06-28 2014-07-01 고려대학교 산학협력단 캐시를 사용한 네트워크 트래픽 분석 장치 및 방법
KR101688635B1 (ko) 2015-07-01 2016-12-21 한국전자통신연구원 플로우 기반 트래픽 저장 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035840A (ko) * 2000-05-24 2002-05-15 소프트컴 컴퓨터스 리미티드 인터넷 통신 감시 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035840A (ko) * 2000-05-24 2002-05-15 소프트컴 컴퓨터스 리미티드 인터넷 통신 감시 방법

Also Published As

Publication number Publication date
KR20060063544A (ko) 2006-06-12

Similar Documents

Publication Publication Date Title
US11757740B2 (en) Aggregation of select network traffic statistics
JP4341413B2 (ja) 統計収集装置を備えたパケット転送装置および統計収集方法
US9473373B2 (en) Method and system for storing packet flows
US10097464B1 (en) Sampling based on large flow detection for network visibility monitoring
US9979624B1 (en) Large flow detection for network visibility monitoring
KR100681000B1 (ko) 플로우별 트래픽 측정 장치 및 방법
CN110677324B (zh) 基于sFlow采样与控制器主动更新列表的大象流两级检测方法
US10536360B1 (en) Counters for large flow detection
JP2010041471A (ja) 通信データ統計装置、通信データ統計方法およびプログラム
WO2019184640A1 (zh) 一种指标确定方法及其相关设备
US20110167149A1 (en) Internet flow data analysis method using parallel computations
JP2007336512A (ja) 統計情報収集システム及び統計情報収集装置
JPWO2008108403A1 (ja) ノード装置、ノードシステム、該ノード装置に用いられる統計情報管理テーブルの入替え方法及びプログラム
US10003515B1 (en) Network visibility monitoring
CN101459560A (zh) 长流的识别方法、数据流量的测量方法及其设备
CN112688837B (zh) 基于时间滑动窗口的网络测量方法与装置
CN106100997B (zh) 一种网络流量信息处理方法及装置
JP2002374251A (ja) ネットワーク監視システム及びそれに用いるデータ量カウント方法並びにそのプログラム
CN112822077B (zh) 数据中心网络中全网流量测量方法、系统及丢包检测方法
WO2020228527A1 (zh) 数据流的分类方法和报文转发设备
CN112235254A (zh) 一种高速主干网中Tor网桥的快速识别方法
CN108566335B (zh) 一种基于NetFlow的网络拓扑生成方法
CN112825507A (zh) 网络设备中的流监测
CN114095383B (zh) 网络流量采样方法、系统和电子设备
CN114710444A (zh) 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统

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
LAPS Lapse due to unpaid annual fee