KR101626279B1 - Apparatus and method of traffic storage, and computer-readable recording medium - Google Patents

Apparatus and method of traffic storage, and computer-readable recording medium Download PDF

Info

Publication number
KR101626279B1
KR101626279B1 KR1020140074301A KR20140074301A KR101626279B1 KR 101626279 B1 KR101626279 B1 KR 101626279B1 KR 1020140074301 A KR1020140074301 A KR 1020140074301A KR 20140074301 A KR20140074301 A KR 20140074301A KR 101626279 B1 KR101626279 B1 KR 101626279B1
Authority
KR
South Korea
Prior art keywords
traffic data
thread
traffic
stored
virtual
Prior art date
Application number
KR1020140074301A
Other languages
Korean (ko)
Other versions
KR20150145049A (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 KR1020140074301A priority Critical patent/KR101626279B1/en
Publication of KR20150145049A publication Critical patent/KR20150145049A/en
Application granted granted Critical
Publication of KR101626279B1 publication Critical patent/KR101626279B1/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

트래픽 데이터가 제1 스레드에 의하여 지정된 제1 가상 수신 버퍼에 저장되는 단계와 스레드 전환 트리거가 발생하면 대기중인 제2 스레드가 활성화되는 단계와 트래픽 데이터가 제2 스레드에 의하여 지정된 제2 가상 수신 버퍼에 저장하는 단계와 복수 개의 하드 디스크 중 제1 스레드에 지정된 하드 디스크에 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 기록되는 단계를 포함하는 복수 개의 하드 디스크에 트래픽을 분산하여 저장하는 트래픽 저장 방법을 제공한다. The method comprising: storing traffic data in a first virtual receive buffer designated by a first thread; activating a second thread waiting when a thread switch trigger occurs; and transmitting traffic data to a second virtual receive buffer designated by a second thread And storing traffic data stored in a first virtual receiving buffer in a hard disk designated by a first thread among a plurality of hard disks, wherein the traffic data is distributed to a plurality of hard disks .

Description

트래픽 저장 장치 및 방법, 그리고 컴퓨터로 판독 가능한 기록 매체{APPARATUS AND METHOD OF TRAFFIC STORAGE, AND COMPUTER-READABLE RECORDING MEDIUM}TECHNICAL FIELD [0001] The present invention relates to a traffic storing apparatus and method, and a computer readable recording medium.

효율적으로 트래픽을 저장하기 위한 트래픽 저장 장치 및 방법에 관한 것이다.And more particularly, to a traffic storing apparatus and method for efficiently storing traffic.

네트워크 관련 기술과 네트워크 관련 서비스의 종류가 다양해짐에 따라 네트워크의 활용 범위가 방대해지고 있으며, 네트워크 환경 역시 복잡해지고 있다. As the kinds of network related technologies and network related services become more diverse, the utilization range of the network becomes enormous and the network environment becomes complicated.

아울러, 정보통신기술의 발전에 따라 각종 멀티미디어 서비스의 도입으로 네트워크가 복잡해지고 네트워크와 서비스가 통합되어 트래픽 종류가 다양해지고 있다. In addition, due to the development of information and communication technology, the introduction of various multimedia services has complicated the network, and the network and the service are integrated, and the traffic types are diversified.

또한 고품질의 통신 서비스의 도입으로 예상하지 못한 다양한 트래픽이 발생하므로 트래픽 패턴을 예측하기 더욱 어렵게 되고 있다. 트래픽의 급속한 증가와 이로 인한 네트워크의 성능 저하라는 문제가 발생했을 때, 성능 저하의 원인 분석 및 개선을 위해서는 네트워크의 트래픽에 관한 정보가 필요하다. Also, the introduction of high-quality communication services has caused unpredictable traffic, making traffic patterns more difficult to predict. When the problem of rapid increase of traffic and deterioration of the network due to this occurs, information about the traffic of the network is needed to analyze and improve the cause of the performance degradation.

또한, 네트워크의 보안성을 향상하기 위한 각종 연구, 예컨대, 네트워크의 보안 정책 또는 네트워크 보안장치(network forensics)가 트래픽 패턴에 기초하여 진행되고 있다.In addition, various studies for improving the security of the network, such as network security policies or network forensics, are being conducted based on traffic patterns.

상술한 바와 같이 네트워크의 안정하고 효율적인 관리를 위해서는 네트워크에서 발생하는 트래픽을 저장하고, 저장된 트래픽에 기초하여 트래픽의 패턴이 분석될 필요성이 있다.As described above, for stable and efficient management of the network, it is necessary to store the traffic generated in the network and analyze the pattern of the traffic based on the stored traffic.

다만, 하드 디스크와 같은 보조 저장 장치의 느린 저장 속도로 인하여 1Gbps이상의 네트워크 트래픽을 모두 저장하기 어려운 문제점이 있다.However, due to the slow storage speed of an auxiliary storage device such as a hard disk, it is difficult to store all the network traffic of 1 Gbps or more.

트래픽 데이터를 효율적으로 분산 저장하는 트래픽 저장 장치 및 방법, 그리고 컴퓨터로 판독 가능한 기록 매체를 제공한다. A traffic storing device and method for efficiently distributing and storing traffic data, and a computer-readable recording medium.

상술한 과제를 해결하기 위한 일 양상에 따른 트래픽 저장 장치는 복수 개의 하드 디스크에 트래픽을 분산하여 저장하는 트래픽 저장 방법에 있어서, 트래픽 데이터가 제1 스레드에 의하여 지정된 제1 가상 수신 버퍼에 저장되는 단계;와 스레드 전환 트리거가 발생하면 대기중인 제2 스레드가 활성화되는 단계;와 트래픽 데이터가 제2 스레드에 의하여 지정된 제2 가상 수신 버퍼에 저장하는 단계;와 복수 개의 하드 디스크 중 제1 스레드에 지정된 하드 디스크에 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 기록되는 단계;를 포함한다.According to an aspect of the present invention, there is provided a traffic storing method for distributing traffic in a plurality of hard disks, the method comprising: storing traffic data in a first virtual receiving buffer designated by a first thread; A step of activating a waiting second thread when a thread switching trigger occurs and storing traffic data in a second virtual receiving buffer specified by a second thread; And recording the traffic data stored in the first virtual receive buffer on the disk.

또한, 제1,2 가상 수신 버퍼에 저장하는 단계는, 네트워크로부터 트래픽 데이터를 수신하는 단계;와 트래픽 데이터를 필터링하는 단계;를 포함할 수 있다. The storing in the first and second virtual receiving buffers may include receiving traffic data from a network and filtering traffic data.

또한, 제2 스레드가 활성화되는 단계는, 제1 가상 수신 버퍼가 임계치 이상 채워지면 전환 트리거가 발생하는 단계;를 포함할 수 있다.Also, the step of activating the second thread may include the step of generating a transition trigger if the first virtual receive buffer is filled above the threshold.

또한, 트래픽 저장 방법은 제1 가상 수신 버퍼에 트래픽 데이터가 저장되고 미리 설정된 시간이 경과하면 전환 트리거가 발생하는 단계;를 포함할 수 있다.Also, the traffic storing method may include a step of generating a switching trigger when traffic data is stored in the first virtual receiving buffer and a preset time elapses.

또한, 트래픽 저장 방법은 제1 스레드가 복수 개의 대기 스레드 중에서 활성화될 제2 스레드를 결정하는 단계;를 포함할 수 있다. In addition, the traffic storing method may include a first thread determining a second thread to be activated among a plurality of waiting threads.

또한, 제2 스레드가 활성화되는 단계는, 제1 스레드는 프로세서 간 통신(IPC)을 이용하여 제2 스레드를 활성화하는 단계;를 포함할 수 있다.Also, the step of activating the second thread may include the step of activating the second thread using interprocessor communication (IPC).

또한, 트래픽 저장 방법은 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 모두 기록되면, 제1 스레드가 대기 상태로 전환되는 단계;를 포함할 수 있다.In addition, the traffic storing method may include switching the first thread to a standby state when all traffic data stored in the first virtual receiving buffer is recorded.

또한, 트래픽 저장 방법은 트래픽 데이터가 전송량이 미리 설정된 기준치 이하로 낮아지면, 복수 개의 하드 디스크에 분산되어 저장된 트래픽 데이터가 병합되는 단계;를 포함할 수 있다. 이때, 트래픽 데이터는 고유한 식별자를 가진 파일 형태로 하드 디스크에 저장되는 트래픽 저장 방법.The traffic storing method may include merging traffic data stored in a plurality of hard disks when the traffic data is lower than a preset reference value. Wherein the traffic data is stored on a hard disk in the form of a file having a unique identifier.

상술한 과제를 해결하기 위한 일 양상에 따른 컴퓨터로 판독 가능한 기록 매체는 상술한 트래픽 저장 방법에 대한 프로그램이 저장할 수 있다.According to an aspect of the present invention, there is provided a computer readable recording medium storing a program for the traffic storing method.

상술한 과제를 해결하기 위한 일 양상에 따른 트래픽 저장 장치는 네트워크로부터 트래픽 데이터를 수신하는 네트워크 인터페이스와 복수 개의 수신 버퍼가 설정된 메모리와 복수 개의 수신 버퍼에 대응하여 마련된 복수 개의 하드 디스크와 제1 스레드에 의하여 지정된 제1 수신 버퍼에 트래픽 데이터를 저장하는 DMA 컨트롤러와 제1 수신 버퍼에 저장된 트래픽 데이터를 제1 하드 디스크에 기록하고, 전환 트리거에 따라 대기 상태인 제2 스레드를 활성화하는 제1 스레드, 및 활성화 되면 트래픽 데이터가 제2 수신 버퍼에 저장되도록 DMA 컨트롤러를 설정하고, 제2 수신 버퍼에 저장된 트래픽 데이터를 제2 하드 디스크에 기록하는 제2 스레드가 수행되는 프로세서를 포함한다. According to an aspect of the present invention, there is provided a traffic storage device including a network interface for receiving traffic data from a network, a memory configured with a plurality of reception buffers, a plurality of hard disks provided corresponding to the plurality of reception buffers, A first thread for writing traffic data stored in a first receiving buffer to a first hard disk and activating a second thread in a waiting state in accordance with a switching trigger, A processor for setting a DMA controller such that the traffic data is stored in the second receiving buffer when activated and a second thread for executing the second thread for writing the traffic data stored in the second receiving buffer to the second hard disk.

또한, 네트워크 인터페이스는, 네트워크로부터 수신한 트래픽 데이터를 필터링하여 출력할 수 있다.Further, the network interface can filter and output the traffic data received from the network.

또한, 전환 트리거는 제1 수신 버퍼가 임계치 이상 채워지거나 제1 수신 버퍼에 트래픽 데이터가 저장되고 미리 설정된 시간이 경과하면 발생할 수 있다. Further, the switching trigger may occur when the first receiving buffer is filled with a threshold value or more, or when a predetermined time has passed after the traffic data is stored in the first receiving buffer.

또한, 제1 스레드는 제1 수신 버퍼에 저장된 트래픽 데이터가 모두 기록되면 대기 상태로 전환될 수 있다. Also, the first thread can be switched to the standby state when all of the traffic data stored in the first reception buffer is written.

또한, 복수 개의 하드 디스크에 분산 기록된 트래픽 데이터가 병합되어 저장되는 통합저장장치를 더 포함할 수 있다. The system may further include an integrated storage device in which traffic data distributed and recorded on a plurality of hard disks are merged and stored.

트래픽 데이터를 분산하여 저장하므로 많은 양의 트래픽 데이터를 효율적으로 저장할 수 있다. Since traffic data is distributed and stored, a large amount of traffic data can be efficiently stored.

도 1은 일 실시예에 따른 트래픽 저장 장치가 포함된 네트워크 시스템을 개략적으로 도시한 도면이다.
도 2는 일 실시예에 따른 트래픽 저장 장치를 설명하기 위한 제어 블록도이다.
도 3은 일 실시예에 다른 트래픽 저장 장치의 구체적인 적용예를 설명하기 위한 제어 블록도이다.
도 4은 트래픽의 분산 저장을 위한 멀티 스레딩에 대하여 설명하기 위한 도면이다.
도 5은 일 실시예에 따른 트래픽 저장 방법에서 트래픽 데이터의 흐름을 설명하기 위한 도면들이다.
도 6는 일 실시예에 따른 트래픽 저장 방법을 설명하기 위한 순서도이다.
도 7는 도 6의 S530단계를 상세히 설명하기 위한 순서도이다.
1 is a schematic diagram of a network system including a traffic storage device according to an exemplary embodiment of the present invention.
2 is a control block diagram illustrating a traffic storage device according to an embodiment.
3 is a control block diagram for explaining a concrete application example of another traffic storage device according to an embodiment.
4 is a diagram for explaining multithreading for distributed storage of traffic.
FIG. 5 is a view for explaining a flow of traffic data in a traffic storing method according to an embodiment.
6 is a flowchart illustrating a method of storing a traffic according to an embodiment of the present invention.
7 is a flowchart for explaining step S530 of FIG. 6 in detail.

이하, 첨부된 도면을 참조하여 기술되는 실시예를 통하여 발명을 통상의 기술자가 용이하게 이해하고 재현할 수 있도록 상세히 기술하기로 한다. 다만, 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 발명 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, 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.

본 명세서에서 사용되는 용어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 후술하는 실시예들에서 사용된 용어의 의미는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 통상의 기술자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.The terms used in this specification are terms selected in consideration of functions in the embodiments, and the meaning of the terms may vary depending on the user, the intention or custom of the operator, and the like. Therefore, the meaning of a term used in the following embodiments is defined according to the definition when it is specifically defined in this specification, and in the absence of a specific definition, it should be construed in a sense generally recognized by the ordinarily skilled artisans.

아울러, 본 명세서에서 선택적으로 기재된 양상이나 선택적으로 기재된 실시예의 구성들은 비록 도면에서 단일의 통합된 구성으로 도시되었다 하더라도 달리 기재가 없는 한 통상의 기술자에게 기술적으로 모순인 것이 명백하지 않다면 상호간에 자유롭게 조합될 수 있는 것으로 이해하여야 한다.In addition, the configurations of the selectively described embodiments or selectively described embodiments of the present invention may be combined with each other in a single integrated configuration, if they are not obviously technically contradictory to the ordinary artisan unless otherwise stated. It should be understood.

"제1", "제2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
Terms including ordinals such as " first, ""second," and the like can be used to describe various elements, but the elements are not limited by terms. Terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. The term "and / or" includes any combination of a plurality of related items or any of a plurality of related items.

도 1은 일 실시예에 따른 트래픽 저장 장치가 포함된 네트워크 시스템을 개략적으로 도시한 도면이다.1 is a schematic diagram of a network system including a traffic storage device according to an exemplary embodiment of the present invention.

도 1에 도시된 바와 같이 네트워크(20)를 통해 사용자 단말(VT1, VT2)과 서비스 제공 장치(S1, S2)가 연결된다. 사용자 단말(VT1, VT2)과 서비스 제공 장치(S1, S2)는 네트워크(20)를 통하여 서로 데이터를 교환할 수 있으며, 네트워크(20)를 통하여 사용자 단말(VT1, VT2) 간 또는 서비스 제공 장치(S1, S2) 간에도 서로 데이터를 교환할 수 있다 The user terminals VT1 and VT2 and the service providing apparatuses S1 and S2 are connected through the network 20 as shown in FIG. The user terminals VT1 and VT2 and the service providing units S1 and S2 can exchange data with each other via the network 20 and can exchange data between the user terminals VT1 and VT2 via the network 20 or between the user terminals VT1 and VT2, S1, and S2).

네트워크(20)에는 TAB 장치(21)가 포함되어 있을 수 있다. TAB 장치(21)는 네트워크(20)에서 발생하는 트래픽를 수집하여 트래픽 저장 장치(10)에 전달한다. 여기서, 트래픽은 통신의 흐름에 대한 정보를 말하는 것으로, 이하 설명의 편의를 위하여 트래픽은 적어도 하나의 패킷(packet)을 포함하는 것으로 설명한다. The network 20 may include a TAB device 21. The TAB device 21 collects the traffic generated in the network 20 and delivers the collected traffic to the traffic storage device 10. Here, traffic refers to information on the flow of communication, and for convenience of explanation, traffic is described as including at least one packet.

또한, TAB 장치(21)에 의하여 연속적으로 트래픽 저장 장치(10)로 전달되는 트래픽의 집합을 트래픽 데이터라고 칭한다. The set of traffic that is continuously transmitted to the traffic storage device 10 by the TAB device 21 is called traffic data.

TAB 장치(21)는 패킷을 복제하여 트래픽 저장 장치(10)에 전달할 수 있다. 이를 위해, TAB 장치(21)는 네트워크(20)를 구성하는 서로 다른 라우터 사이에 마련되어 서로 다른 라우터 사이에서 전송되는 패킷을 복제하거나, 서비스 제공 장치(S1, S2)와 네트워크(20)를 구성하는 라우터 사이에 마련되어 서비스 제공 장치(S1, S2)에서 송수신되는 패킷을 복제하여 트래픽 저장 장치(10)에 전달할 수 있다. The TAB device 21 may copy the packet and forward it to the traffic storage device 10. [ To this end, the TAB apparatus 21 is provided between the different routers constituting the network 20 and replicates packets transmitted between different routers, or constitutes the network 20 with the service providing apparatuses S1 and S2 It is possible to duplicate packets transmitted and received by the service providing apparatuses S1 and S2 and transmit the duplicated packets to the traffic storage apparatus 10. [

또한, TAB 장치(21)는 전체 패킷 중 미리 설정된 조건을 만족하는 패킷만을 필터링하여 복제할 수도 있다. 예를 들어, TAB 장치(21)는 전체 패킷 중 특정 목적지 또는 출발지에 해당하는 패킷만을 필터링하여 복제하거나, 전체 패킷 중 데이터 패킷만을 필터링하여 저장할 수 있다.Further, the TAB device 21 may filter and replicate only packets satisfying predetermined conditions among all the packets. For example, the TAB device 21 can filter and replicate only packets corresponding to specific destinations or departure points of all packets, or filter and store only data packets among the entire packets.

또한, TAB 장치(21)는 패킷의 일부분만 복제할 수 있다. 예를 들어, TAB 장치(21)는 패킷의 흐름을 판단하기 위해 필요한 패킷의 해더 부분만 복제할 수 있다.In addition, the TAB device 21 can only replicate a part of the packet. For example, the TAB device 21 can replicate only the header portion of the packet necessary for judging the flow of the packet.

한편, TAB 장치(21)는 네트워크(20)에서 발생하는 트래픽을 수집하기 위한 장치의 일례로, TAB 장치(21)는 트래픽을 수집할 수 있는 어떠한 장치로 치환될 수 있음을 이해하여야 한다. 예를 들어, TAB 장치(21)는 스위칭 미러링 포트로 치환될 수 있다.On the other hand, it should be understood that the TAB device 21 is an example of a device for collecting traffic generated in the network 20, and that the TAB device 21 can be replaced with any device capable of collecting traffic. For example, the TAB device 21 may be replaced with a switching mirroring port.

트래픽 저장 장치(10)는 TAB 장치(21)로부터 전송된 트래픽 데이터를 분산하여 저장할 수 있다. 이하, 도 2를 참조하여 트래픽 장치의 각 구성에 대하여 상세히 설명한다.The traffic storage device 10 may distribute and store the traffic data transmitted from the TAB device 21. [ Hereinafter, each configuration of the traffic device will be described in detail with reference to FIG.

도 2는 일 실시예에 따른 트래픽 저장 장치를 개략적으로 설명하기 위한 제어 블록도이다. 2 is a control block diagram schematically illustrating a traffic storage device according to an embodiment.

도 2에 도시된 바와 같이, 트래픽 저장 장치(10)는 네트워크 인터페이스(11), 메모리(12), DMA 컨트롤러(13), 분산저장장치(14), 및 프로세서(15)를 포함할 수 있다. 2, the traffic storage device 10 may include a network interface 11, a memory 12, a DMA controller 13, a distributed storage device 14, and a processor 15.

네트워크 인터페이스(11)는 TAB 장치(21)로부터 트래픽 데이터를 수신하는 통신 장치로, 네트워크 인터페이스(11)는 직접 메모리 접근(Direct Memory Access, 이하 DMA) 방식에 따라 수신한 트래픽 데이터를 직접 메모리(12)에 저장할 수 있다.  The network interface 11 is a communication device for receiving traffic data from the TAB device 21. The network interface 11 stores the received traffic data in a direct memory access (DMA) ). ≪ / RTI >

또한, 네트워크 인터페이스(11)는 수신된 트래픽 데이터를 필터링할 수 있다. 구체적으로, 네트워크 인터페이스(11)는 프로세서(15)에 제어에 따라 특정 조건에 따라 트래픽 데이터를 필터링하여 출력할 수 있으며, 이에 따라 트래픽 저장 장치(10)의 관리자가 관심 있는 트래픽만이 저장될 수 있다.In addition, the network interface 11 may filter the received traffic data. Specifically, the network interface 11 can filter and output the traffic data according to a specific condition under the control of the processor 15, so that only the traffic of interest to the administrator of the traffic storage device 10 can be stored have.

메모리(12)는 트래픽 저장 장치(10)의 운용에 필요한 다양한 데이터를 저장한다. 아울러, 메모리(12)는 가상화되어 복수 개의 가상 버퍼로 설정될 수 있으며, 네트워크 인터페이스(11)를 통해 수신된 트래픽 데이터는 가상 버퍼에 분할되어 저장될 수 있다. The memory 12 stores various data necessary for operation of the traffic storage device 10. [ In addition, the memory 12 may be virtualized and configured as a plurality of virtual buffers, and the traffic data received through the network interface 11 may be divided and stored in a virtual buffer.

이때, 각 가상 버퍼는 정적으로 미리 할당될 수도 있으나, 동적으로 할당될 수도 있다.At this time, each virtual buffer may be statically allocated in advance, but may be allocated dynamically.

DMA 컨트롤러(13)는 프로세서(15)의 제어에 따라 데이터의 입출력을 관리한다. DMA 컨트롤러(13)는 프로세서(15)의 명령에 따라 수신한 트래픽 데이터를 지정된 메모리(12) 주소에 저장할 수 있다. 이하, DMA 컨트롤러(13)가 네트워크 인터페이스(11)와 별도로 마련된 것으로 설명하나, 네트워크 인터페이스(11)에 DMA 컨트롤러(13)가 포함될 수 있다.The DMA controller 13 manages data input / output under the control of the processor 15. The DMA controller 13 can store the received traffic data in the address of the designated memory 12 according to an instruction from the processor 15. [ Hereinafter, the DMA controller 13 is described as being provided separately from the network interface 11, but the DMA controller 13 may be included in the network interface 11.

한편, DMA 컨트롤러(13)는 트래픽 데이터에 입출력 처리와 관련된 트리거를 생성할 수 있다. 예를 들어, DMA 컨트롤러(13)는 지정된 메모리(12)가 미리 설정된 기준 이상 채워지면 트리거를 생성할 수 있다. DMA 컨트롤러(13)에 의하여 생성된 트리거는 프로세서(15)로 전달될 수 있다. 이와 같이 DMA 방식에 따라 트래픽 데이터가 프로세서(15)를 거치지 않고 저장되므로, 대용량의 트래픽 데이터를 효율적으로 저장할 수 있다. On the other hand, the DMA controller 13 can generate a trigger related to input / output processing in the traffic data. For example, the DMA controller 13 can generate a trigger when the specified memory 12 is filled with a predetermined reference or more. The trigger generated by the DMA controller 13 may be passed to the processor 15. Since the traffic data is stored without going through the processor 15 according to the DMA scheme, a large amount of traffic data can be efficiently stored.

분산저장장치(14)는 수신된 트래픽 데이터를 분산하여 저장할 수 있다. 분산저장장치(14)는 트래픽 데이터의 분산 저장을 위하여 적어도 하나의 기억장치를 포함할 수 있다. The distributed storage device 14 may distribute and store the received traffic data. The distributed storage device 14 may include at least one storage device for distributed storage of traffic data.

여기서, 기억장치는 대용량의 트래픽 데이터를 저장하기 위한 장치로 예컨대, 자기 테이프, 하드 디스크, 광디스크, 또는 플래시 메모리 등으로 구현될 수 있다.Here, the storage device is an apparatus for storing a large amount of traffic data, and may be implemented by, for example, a magnetic tape, a hard disk, an optical disk, a flash memory, or the like.

다만, 설명의 편의를 위하여 이하 기억장치는 하드 디스크이고, 분산저장장치(14)는 복수 개의 하드 디스크로 구현되는 것으로 설명한다.However, for convenience of explanation, it is assumed that the storage device is a hard disk, and the distributed storage device 14 is implemented as a plurality of hard disks.

프로세서(15)는 트래픽 저장 장치(10)의 전반적인 동작을 관리한다. 구체적으로, 프로세서(15)는 연속적으로 수신되는 트래픽 데이터가 손실 없이 저장되도록 각 구성을 제어할 수 있다. The processor 15 manages the overall operation of the traffic storage device 10. Specifically, the processor 15 can control each configuration so that successively received traffic data is stored without loss.

이를 위해, 프로세서(15)는 복수 개의 가상 수신 버퍼와 복수 개의 저장 장치에서 트래픽 데이터의 이동을 전반적으로 관리할 수 있다. 이와 같은 트래픽 데이터의 효율적인 분산 처리를 위하여 프로세서(15)는 멀티 스레딩(multi-threading) 방식으로 구동될 수 있다. To this end, the processor 15 can manage overall movement of traffic data in a plurality of virtual receiving buffers and a plurality of storage devices. In order to efficiently distribute the traffic data, the processor 15 may be driven in a multi-threading manner.

트래픽 저장 장치(10)는 통합저장장치(16)를 더 포함할 수 있다. 트래픽 데이터의 분석을 위해서는 분산되어 있는 트래픽 데이터의 병합이 필요하며, 프로세서(15)는 트래픽 데이터의 수신 양이 적은 때에 분산저장장치(14)에 분산되어 저장되어 있는 트래픽 데이터를 병합할 수 있다. The traffic storage device 10 may further include an integrated storage device 16. In order to analyze the traffic data, it is necessary to merge the dispersed traffic data, and the processor 15 can merge the traffic data distributed and stored in the distributed storage device 14 when the reception amount of the traffic data is small.

이와 같이 병합된 트래픽 데이터는 통합저장장치(16)에 저장되어 있을 수 있다. 이때, 통합저장장치(16)는 분산저장장치(14)의 각 저장장치보다 상대적으로 큰 저장용량을 가지는 저장장치로 구현될 수 있으나, 이에 한정되는 것이 아니다.The merged traffic data may be stored in the integrated storage device 16. At this time, the integrated storage device 16 may be implemented as a storage device having a relatively larger storage capacity than each storage device of the distributed storage device 14, but is not limited thereto.

또한, 이하 병합된 트래픽 데이터가 통합저장장치(16)에 저장되는 것으로 설명하나, 이에 한정되는 것이 아니다. 예를 들어. 병합된 트래픽 데이터는 분산저장장치(14)의 특정 저장장치에 저장되거나, 트래픽 저장 장치(10) 이외의 장치로 전달될 수도 있다. In addition, although the following description is made on the assumption that the merged traffic data is stored in the integrated storage device 16, the present invention is not limited thereto. E.g. The merged traffic data may be stored in a specific storage device of the distributed storage device 14 or may be transferred to a device other than the traffic storage device 10. [

이와 같은 트래픽 저장 장치(10)는 다양한 범용 서버 등으로 구현될 수 있다. 이하, 도 3을 참조하여 일 실시예에 따른 트래픽 저장 장치(10)에 대하여 구체적으로 설명한다.
The traffic storage device 10 may be implemented by various general purpose servers. Hereinafter, the traffic storage device 10 according to the embodiment will be described in detail with reference to FIG.

도 3은 일 실시예에 다른 트래픽 저장 장치의 구체적인 적용예를 설명하기 위한 제어 블록도이다. 상술한 바와 같이 트래픽 저장 장치(10)는 멀티 스레딩에 기초하여 트래픽 데이터를 분산하여 저장할 수 있다. 이하, 4개의 스레드(Thread)가 4개의 코어(151 내지 154)에서 수행되어 트래픽 데이터를 분산, 저장하는 트래픽 저장 장치(10)의 일 적용예를 상세히 설명한다. 3 is a control block diagram for explaining a concrete application example of another traffic storage device according to an embodiment. As described above, the traffic storage device 10 may distribute and store traffic data based on multithreading. Hereinafter, one application example of the traffic storage device 10 in which four threads are executed in the four cores 151 to 154 to distribute and store the traffic data will be described in detail.

도 3에 도시된 바와 같이 네트워크 인터페이스 카드(network interface card, 이하 NIC)(110)는 트래픽 데이터를 수신하기 위한 적어도 하나의 port(111)와 NIC(110)의 입출력을 위한 드라이버(112)를 포함하고 있을 수 있다. 이때, NIC(110)는 수신한 트래픽 데이터를 필터링하여 출력할 수 있다. 즉, NIC(110)는 프로세서(150)의 제어에 따라 수신된 트래픽 데이터 중 특정 트래픽 데이터만을 출력할 수 있다. 트래픽 데이터는 다양한 기준에 따라 필터링 될 수 있다. As shown in FIG. 3, a network interface card (NIC) 110 includes at least one port 111 for receiving traffic data and a driver 112 for inputting / outputting NIC 110 . At this time, the NIC 110 can filter and output the received traffic data. That is, the NIC 110 can output only specific traffic data among the received traffic data under the control of the processor 150. [ The traffic data may be filtered according to various criteria.

구체적으로, 트래픽 데이터는 전송 형식(예컨대, FTP 형식)에 따라 필터링되거나, 트래픽의 이동 방향(예컨대, 목적지 MAC 주소, 수신지 MAC 주소)에 기초하여 필터링되거나, 전송 대상(예컨대, 데이터 트래픽)에 기초하여 필터링될 수 있다. Specifically, the traffic data may be filtered according to a transmission format (e.g., FTP format), filtered based on the direction of traffic movement (e.g., destination MAC address, destination MAC address) Can be filtered.

또한, NIC(110)는 필터링을 위하여 각 패킷의 해더를 열람하고, 해더 정보에 기초하여 필터링을 수행할 수 있다. In addition, the NIC 110 may browse the header of each packet for filtering and perform filtering based on the header information.

아울러, NIC(110)는 TAB 장치(21)로부터 수신한 패킷의 일부만을 출력할 수 있다. 예를 들어, NIC(110)는 패킷의 흐름을 판단하기 위해 필요한 패킷의 해더 부분만 복제할 수 있다.In addition, the NIC 110 can output only a part of the packet received from the TAB device 21. [ For example, the NIC 110 may replicate only the header portion of the packet needed to determine the flow of the packet.

프로세서(150)는 멀티 스레딩을 위하여 복수 개의 코어(151 내지 154)를 포함하고 있을 수 있다. 각 코어(151 내지 154)에서는 적어도 하나의 스레드가 수행될 수도 있으나, 이하 설명의 편의를 위하여 하나의 코어에서는 하나의 스레드가 수행되는 것으로 설명한다. The processor 150 may include a plurality of cores 151 through 154 for multithreading. At least one thread may be executed in each of the cores 151 to 154, but one thread is executed in one core for convenience of explanation.

복수 개의 코어(151 내지 154)는 프로세서(150)간 통신(InterProcessor Communication, 이하 IPC)에 의하여 데이터 또는 제어 신호를 교환할 수 있다. The plurality of cores 151 to 154 may exchange data or control signals by interprocessor communication (IPC) between the processors 150.

각 코어(151 내지 154)에서 수행되는 스레드를 위하여 메모리(120)에는 복수 개의 가상 수신 버퍼(121 내지 124)가 설정될 수 있다. 가상 수신 버퍼(121 내지 124)는 NIC(110)에서 수신된 트래픽 데이터가 임시 저장되는 공간으로 가상 수신 버퍼(121 내지 124)는 미리 스레드 별로 지정되어 설정되어 있을 수 있으나, 각 스레드에 의하여 동적으로 할당될 수도 있다. A plurality of virtual receiving buffers 121 to 124 may be set in the memory 120 for a thread to be executed in each of the cores 151 to 154. [ The virtual receiving buffers 121 to 124 are space for temporarily storing the traffic data received from the NIC 110. The virtual receiving buffers 121 to 124 may be previously set for each thread, .

아울러, 각 가상 수신 버퍼(121 내지 124)의 크기는 서로 상이하게 설정될 수 있다. 예를 들어, 가상 수신 버퍼(121 내지 124)의 크기는 가상 수신 버퍼(121 내지 124)에 저장된 트래픽 데이터가 저장될 하드 디스크의 기록에 영향을 주는 요인(예를 들어, 디스크의 회전 속도 또는 하드 디스크의 버퍼 크기)을 고려하여 기록 시간을 최소화하도록 결정될 수 있다. In addition, the sizes of the virtual reception buffers 121 to 124 may be set to be different from each other. For example, the size of the virtual receiving buffers 121 to 124 may be determined based on factors affecting the recording of the hard disk on which the traffic data stored in the virtual receiving buffers 121 to 124 is to be stored (for example, The buffer size of the disc) to minimize the recording time.

또한, 이하에서는 하나의 스레드에 하나의 가상 버퍼를 할당된 것으로 설명하나, 하나의 스레드에 복수 개의 가상 수신 버퍼(121 내지 124)가 할당되거나, 하나의 가상 수신 버퍼(121 내지 124)를 복수 개의 스레드가 공유할 수도 있다. In the following description, one virtual buffer is allocated to one thread. However, a plurality of virtual receiving buffers 121 to 124 may be allocated to one thread, or one virtual receiving buffer 121 to 124 may be allocated to a plurality of Threads can also be shared.

DMA 컨트롤러(130)는 스레드의 제어 신호에 따라 트래픽 데이터의 입출력을 제어할 수 있다. 구체적으로, DMA 컨트롤러(130)는 NIC(110)에서 수신된 트래픽 데이터가 출력되면, 출력된 트래픽 데이터가 지정된 가상 수신 버퍼(121 내지 124)로 입력되도록 버스(170)를 제어할 수 있다.The DMA controller 130 can control input / output of traffic data according to a control signal of a thread. Specifically, when the traffic data received from the NIC 110 is output, the DMA controller 130 can control the bus 170 such that the output traffic data is input to the designated virtual receiving buffers 121 to 124.

또한, DMA 컨트롤러(130)는 스레드가 설정한 조건에 따라 트리거를 생성할 수 있다. 예를 들어, DMA 컨트롤러(130)는 스레드가 설정한 조건만큼 특정 수신 버퍼가 채워지면 트리거를 생성할 수 있다.Further, the DMA controller 130 can generate a trigger according to the condition set by the thread. For example, the DMA controller 130 may generate a trigger when a particular receive buffer is filled by the condition set by the thread.

한편, 상술한 바와 같이 NIC(110)에 DMA 컨트롤러(130)가 포함될 수도 있다.Meanwhile, the DMA controller 130 may be included in the NIC 110 as described above.

트래픽 저장 장치(10)의 각 구성들은 버스(170)를 통해 데이터를 서로 전송한다. 이때, 버스(170)는 각 구성들 사이에 데이터 전송을 위해 사용되는 데이터 버스, 데이터가 저장된 주소를 전송하기 위한 주소 버스, 제어 신호의 전송을 위해 사용되는 제어 버스를 포함할 수 있다.
Each configuration of the traffic storage device 10 transfers data to each other via a bus 170. [ At this time, the bus 170 may include a data bus used for data transmission between the respective structures, an address bus for transmitting an address where data is stored, and a control bus used for transmitting a control signal.

이하, 도 4 및 도 5을 참조하여 NIC(110)에 의하여 수신된 트래픽 데이터의 분산 저장에 대하여 상세히 설명한다. The distributed storage of the traffic data received by the NIC 110 will be described in detail with reference to FIGS. 4 and 5. FIG.

도 4은 트래픽의 분산 저장을 위한 멀티 스레딩에 대하여 설명하기 위한 도면이고, 도 5은 일 실시예에 따른 트래픽 저장 방법에서 트래픽 데이터의 흐름을 설명하기 위한 도면들이다.FIG. 4 is a diagram for explaining multithreading for distributed storage of traffic, and FIG. 5 is a view for explaining a flow of traffic data in a traffic storing method according to an embodiment.

도 3 내지 5를 참조하면, 복수 개의 코어(151 내지 154) 각각에서는 트래픽 데이터의 분산 저장을 관리하기 위한 스레드가 수행된다. 스레드는 복수 개의 가상 수신 버퍼(121 내지 124) 중 하나의 가상 수신 버퍼와 복수 개의 하드 디스크(141 내지 144) 중 하나의 하드 디스크를 관리할 수 있다. Referring to FIGS. 3 to 5, a thread for managing distributed storage of traffic data is performed in each of the plurality of cores 151 to 154. [ The thread can manage the virtual receive buffer of one of the plurality of virtual receive buffers 121 to 124 and the hard disk of one of the plurality of hard disks 141 to 144. [

예를 들어, 제1 스레드(Thread #1)는 제1 가상 수신 버퍼(121)와 제1 하드 디스크(141)를 관리하고, 제n 스레드는 제n 가상 수신 버퍼와 제n 하드 디스크를 관리할 수 있다. For example, the first thread (Thread # 1) manages the first virtual receive buffer 121 and the first hard disk 141, and the nth thread manages the nth virtual receive buffer and the nth hard disk .

도 4에 도시된 바와 같이, 스레드는 대기 상태에서 활성 상태로 전환되거나, 활성 상태에서 대기 상태로 전환하면서, 연속적으로 수신되는 트래픽 데이터를 여러 개의 하드 디스크(141 내지 144)에 분산하여 기록할 수 있다. As shown in FIG. 4, the thread can be switched from the standby state to the active state, or from the active state to the standby state, the continuously received traffic data can be distributed to the plurality of hard disks 141 to 144 have.

구체적으로, NIC(110)로부터 수신된 트래픽 데이터는 DMA 컨트롤러(130)에 의하여 제1 가상 수신 버퍼(121)에 순차적으로 저장된다. 이때, 제1 가상 수신 버퍼(121)에 저장된 트래픽 데이터는 제1 스레드(Thread #1)에 의하여 순차적으로 제1 하드 디스크(141)에 기록된다. 아울러, 제1 하드 디스크(141)에 기록이 완료된 트래픽 데이터가 저장된 제1 가상 수신 버퍼(121)에는 새로운 트래픽 데이터가 입력될 수 있다.Specifically, the traffic data received from the NIC 110 is sequentially stored in the first virtual receive buffer 121 by the DMA controller 130. At this time, the traffic data stored in the first virtual receiving buffer 121 is sequentially written to the first hard disk 141 by the first thread (Thread # 1). In addition, new traffic data may be input to the first virtual receiving buffer 121 where the recorded traffic data is stored in the first hard disk 141.

제1 가상 수신 버퍼(121)에 트래픽 데이터가 저장되고 있는 중 제1 전환 트리거(ST 1)가 발생되어, 제1 가상 수신 버퍼(121)에 오버플로우(Overflow)를 방지할 수 있다.A first transition trigger ST 1 is generated while traffic data is stored in the first virtual reception buffer 121 to prevent an overflow in the first virtual reception buffer 121.

전환 트리거는 수신 버퍼의 오버플로우(Overflow)를 방지한다. 일반적으로, 하드 디스크와 같은 저장장치의 데이터 입출력 속도는 일정하다. The transition trigger prevents the receive buffer from overflowing. In general, the data input / output speed of a storage device such as a hard disk is constant.

그러므로, 트래픽 발생이 증가하여 단위 시간당 수신 버퍼에 저장되는 트래픽 데이터의 양이 증가하게 되어 하드 디스크의 데이터 입출력 속도보다 빠른 속도로 메모리에 트래픽 데이터가 입력되면 오버플로우가 발생하다. Therefore, the amount of traffic data stored in the reception buffer per unit time increases due to an increase in traffic generation, and overflow occurs when traffic data is input to the memory at a speed faster than the data input / output speed of the hard disk.

즉, 하드 디스크의 데이터 입출력 속도보다 빠른 속도로 메모리에 트래픽 데이터가 입력되면 수신 버퍼에 저장된 트래픽 데이터가 미쳐 하드 디스크에 저장되기 이전에 새로운 트래픽 데이터가 입력되어 일부 트래픽 데이터의 손실이 발생한다.That is, if traffic data is input to the memory at a speed higher than the data input / output speed of the hard disk, new traffic data is input before the traffic data stored in the receiving buffer is stored in the hard disk, and some traffic data is lost.

따라서, 전환 트리거는 수신 버퍼의 오버플로우(Overflow)가 발생하기 이전에 발생하여, NIC(110)에서 출력되는 트래픽 데이터가 저장되는 수신 버퍼를 변경시킬 수 있다. Accordingly, the change trigger may occur before the overflow of the receive buffer occurs, and may change the receive buffer where the traffic data output from the NIC 110 is stored.

이를 위해, 전환 트리거는 미리 설정된 조건이 만족되면 발생할 수 있다. 예를 들어, 전환 트리거는 NIC(110)로부터 수신된 트래픽 데이터가 저장되는 수신 버퍼가 일정 정도 이상 채워지면 발생할 수 있으며, 프로세서(150)는 트래픽 데이터가 저장되는 수신 버퍼가 일정 정도 이상 채워지면 전환 트리거가 발생하도록 DMA 컨트롤러를 설정할 수 있다. To this end, the transition trigger may occur if a predetermined condition is met. For example, the transition trigger may occur when the receiving buffer in which the traffic data received from the NIC 110 is stored is filled to a certain degree or more, and the processor 150, if the receiving buffer in which the traffic data is stored is filled to a certain degree or more, You can set the DMA controller to trigger.

구체적으로, 제1 스레드(Thread #1)는 DMA 컨트롤러(130)에 트래픽 데이터를 저장할 제1 가상 수신 버퍼(121)의 주소의 설정과 함께 제 1 가상 수신 버퍼(121)가 특정 크기로 채워지면 제1 전환 트리거(ST 1)를 발생시키도록 설정할 수 있다. DMA 컨트롤러(130)는 제 1 가상 수신 버퍼(121)가 특정 크기 이상 채워지면 제1 전환 트리거(ST 1)를 생성하여 제1 스레드(Thread #1)에 전달할 수 있다. Specifically, when the first virtual receive buffer 121 is filled with a specific size together with the setting of the address of the first virtual receive buffer 121 for storing traffic data in the DMA controller 130, the first thread (Thread # 1) Can be set to generate the first switching trigger (ST 1). The DMA controller 130 may generate and deliver a first transition trigger ST 1 to the first thread (Thread # 1) when the first virtual receive buffer 121 is filled to a certain size or more.

예컨대, 제1 스레드(Thread #1)가 제1 가상 수신 버퍼(121)가 90%이상 채워지면 제1 전환 트리거(ST 1)가 발생하도록 DMA 컨트롤러(130)를 설정하면, DMA 컨트롤러(130)는 도 5a에 도시된 바와 같이 제1 가상 수신 버퍼(121)가 90%이상 채워지면 제1 전환 트리거(ST 1)를 생성한다.For example, if the DMA controller 130 is set so that the first thread (Thread # 1) generates the first switching trigger (ST 1) when the first virtual receiving buffer 121 is filled with 90% or more, As shown in FIG. 5A, when the first virtual receiving buffer 121 is filled with 90% or more, the first conversion trigger ST1 is generated.

이와 같이 제1 전환 트리거(ST 1)가 발생하면 제1 스레드(Thread #1) 대기 상태의 제2 스레드(Thread #2)를 활성화할 수 있다. 이때, 제1 스레드(Thread #1)가 활성화할 제2 스레드(Thread #2)는 미리 설정된 것일 수 있으나 이에 한정되는 것이 아니다. When the first switching trigger ST1 occurs, the second thread (Thread # 2) in the standby state of the first thread (Thread # 1) can be activated. At this time, the second thread (Thread # 2) to be activated by the first thread (Thread # 1) may be a predetermined one, but is not limited thereto.

예를 들어, 제1 스레드(Thread #1)는 복수 개의 대기 스레드 중 미리 설정된 기준을 만족하는 하나의 스레드를 활성화될 제2 스레드(Thread #2)로 결정할 수 있다. For example, the first thread (Thread # 1) may determine a thread that satisfies a preset criterion among a plurality of waiting threads as a second thread to be activated (Thread # 2).

제1 스레드(Thread #1)는 제2 스레드(Thread #2)를 활성화하기 위하여 제1 활성 이벤트(AE 1)를 생성할 수 있다. 제1 스레드(Thread #1)에 의하여 생성된 제1 활성 이벤트(AE 1)는 IPC를 통하여 제2 스레드(Thread #2)로 전송될 수 있다.The first thread (Thread # 1) may generate the first active event (AE 1) to activate the second thread (Thread # 2). The first active event AE 1 generated by the first thread (Thread # 1) may be transmitted to the second thread (Thread # 2) through the IPC.

제1 활성 이벤트(AE 1)를 수신한 제2 스레드(Thread #2)는 DMA 컨트롤러(130)에 소정의 제어 신호를 생성하여 NIC(110)에서 수신된 트래픽 데이터가 저장될 메모리(120)의 위치를 변경할 수 있다. The second thread (Thread # 2) receiving the first activity event (AE 1) generates a predetermined control signal to the DMA controller (130) and transmits a control signal to the memory (120) in which the traffic data received from the NIC You can change the location.

구체적으로, 제2 스레드(Thread #2)는 제2 가상 수신 버퍼(122)에 트래픽 데이터가 저장되도록 DMA 컨트롤러(130)에 제어 신호를 보낼 수 있다. 이때, 제2 스레드(Thread #2)는 DMA컨트롤러에 제2 가상 수신 버퍼(122)의 90%가 채워지면 제2 전환 트리거(ST 2)를 발생하라는 제어 신호를 함께 보낼 수도 있다.Specifically, the second thread (Thread # 2) may send a control signal to the DMA controller 130 to store the traffic data in the second virtual receiving buffer 122. At this time, the second thread (Thread # 2) may send a control signal to the DMA controller to generate a second switching trigger (ST 2) when 90% of the second virtual receiving buffer 122 is filled.

즉, 제2 스레드(Thread #2)의 제어 신호에 따라, NIC(110)에서 수신된 트래픽 데이터는 제2 가상 수신 버퍼(122)에 저장되며, 제2 가상 수신 버퍼(122)에 저장된 트래픽 데이터는 제2 스레드(Thread #2)의 제어에 따라 제2 하드 디스크(142)에 기록된다. 한편, 제1 활성 이벤트(AE 1)를 생성한 제1 스레드(Thread #1)는 제1 가상 수신 버퍼(121)에 저장된 트래픽 데이터를 제1 하드 디스크(141)계속하여 기록할 수 있다. That is, according to the control signal of the second thread (Thread # 2), the traffic data received at the NIC 110 is stored in the second virtual receiving buffer 122, and the traffic data stored in the second virtual receiving buffer 122 Is recorded in the second hard disk 142 under the control of the second thread (Thread # 2). Meanwhile, the first thread (Thread # 1) that has generated the first activity event (AE 1) can continuously record the traffic data stored in the first virtual receiving buffer 121 to the first hard disk 141.

한편, 제1 스레드(Thread #1)는 제1 하드 디스크(141)에 저장되는 트래픽 데이터를 식별자를 가진 파일 형태로 기록할 수 있다. 이때, 식별자는 서로 중복되지 않도록 부여될 수 있다. 예를 들어, 식별자는 동시에 발생할 수 없는 전환 트리거의 발생 시간에 기초하여 부여될 수 있다. On the other hand, the first thread (Thread # 1) may record the traffic data stored in the first hard disk 141 as a file having an identifier. At this time, the identifiers may be assigned so as not to overlap each other. For example, an identifier may be assigned based on the occurrence time of a conversion trigger that can not occur at the same time.

이와 같이 고유한 식별자를 각 트래픽 데이터 파일에 부여함으로써, 최한시의 분산 저장되어 있는 트래픽 데이터의 병합이 용이하도록 트래픽 데이터 파일을 저장할 수 있다. 이에 대해서는 아래에서 상세히 설명한다. By assigning such a unique identifier to each traffic data file, it is possible to store the traffic data file so as to facilitate merging of traffic data stored at the shortest time. This will be described in detail below.

즉, 도 5a와 같은 트래픽 데이터가 저장되는 단계에서 제1 전환 트리거(ST 1)가 발생하면, 도 5b와 같이 트래픽 데이터의 저장 흐름이 변화하게 된다. That is, when the first transition trigger ST 1 occurs in the step of storing the traffic data as shown in FIG. 5A, the storage flow of the traffic data changes as shown in FIG. 5B.

한편, 트래픽 데이터가 제 2 가상 수신 버퍼(122)의 90%이상 트래픽 데이터가 저장되면 DMA 컨트롤러(130)는 제2 전환 트리거(ST 2)를 발생시킬 수 있다. On the other hand, if more than 90% of the traffic data is stored in the second virtual receiving buffer 122, the DMA controller 130 can generate the second switching trigger ST 2.

제2 전환 트리거(ST 2)가 발생하면 제2 스레드(Thread #2)는 제2 활성 이벤트(AE 2)를 생성하고, 대기 상태인 제3 스레드(Thread #3)에 제2 활성 이벤트(AE 2)를 전달할 수 있다. When the second switching trigger ST2 occurs, the second thread Thread # 2 generates a second active event AE2 and the third active thread AE 2).

이때, 제2 활성 이벤트(AE 2)는 IPC를 통해 제3 스레드(Thread #3)로 전달될 수 있다. At this time, the second active event (AE 2) may be transferred to the third thread (Thread # 3) through the IPC.

제2 활성 이벤트(AE 2)를 수신한 제3 스레드(Thread #3)는 DMA 컨트롤러(130)에 소정의 제어 신호를 생성하여 NIC(110)에서 수신된 트래픽 데이터가 제3 가상 수신 버퍼(123)에 저장되도록 설정할 수 있다. 또한, 제3 스레드(Thread #3)는 DMA 컨트롤러(130)에 제3 가상 수신 버퍼(123)의 90% 이상 채워지면 제3 전환 트리거(ST 3)를 발생하라는 제어 신호를 함께 보낼 수도 있다. The third thread (Thread # 3) receiving the second active event AE 2 generates a predetermined control signal to the DMA controller 130 so that the traffic data received from the NIC 110 is transmitted to the third virtual receiving buffer 123 As shown in Fig. The third thread (Thread # 3) may send a control signal to the DMA controller 130 to generate a third switching trigger (ST 3) if more than 90% of the third virtual receiving buffer 123 is filled.

따라서, 도 5b와 같은 트래픽 데이터가 저장되는 단계에서 제2 전환 트리거(ST 2)가 발생하면, 도 5c와 같이 NIC(110)에서 수신된 트래픽 데이터는 제3 가상 수신 버퍼(123)에 저장되고, 제3 가상 수신 버퍼(123)에 저장된 트래픽 데이터는 제3 스레드(Thread #3)의 제어에 따라 제3 하드 디스크(143)에 기록된다.5B, when the second switching trigger ST2 is generated, the traffic data received from the NIC 110 is stored in the third virtual receiving buffer 123 as shown in FIG. 5C , The traffic data stored in the third virtual receiving buffer 123 is written to the third hard disk 143 under the control of the third thread (Thread # 3).

또한, 제1 스레드(Thread #1)와 제2 스레드(Thread #2)에 의해 각각 제1, 2 가상 수신 버퍼(121, 122)에 저장된 트래픽 데이터는 제1, 2 하드 디스크(141, 142)에 기록된다. The traffic data stored in the first and second virtual receiving buffers 121 and 122 by the first thread (Thread # 1) and the second thread (Thread # 2) are stored in the first and second hard disks 141 and 142, respectively. .

한편, 제1 가상 수신 버퍼(121)에 저장된 트래픽 데이터가 모두 제1 하드 디스크(141)에 저장되면 제1 스레드(Thread #1)는 대기 상태로 전환된다. 이때, 제1 가상 수신 버퍼(121)에 저장된 트래픽 데이터가 모두 제1 하드 디스크(141)에 저장되면 제1 종료 트리거(ET 1)가 발생할 수 있다. On the other hand, if all the traffic data stored in the first virtual receiving buffer 121 is stored in the first hard disk 141, the first thread (Thread # 1) is switched to the standby state. At this time, if all the traffic data stored in the first virtual receiving buffer 121 is stored in the first hard disk 141, a first end trigger ET 1 may occur.

이때, 제1 종료 트리거(ET 1)는 분산저장장치(140)의 각 하드 디스크(141 내지 144)를 전반적으로 관리하는 컨트롤러(미도시)에 의하여 발생할 수도 있으나, 제1 스레드(Thread #1)에 의하여 발생할 수도 있다. At this time, the first end trigger ET 1 may be generated by a controller (not shown) that manages each hard disk 141 to 144 of the distributed storage device 140 as a whole, but the first thread (Thread # 1) Lt; / RTI >

이와 같이 제1 종료 트리거(ET 1)가 발생하면 제1 스레드(Thread #1)는 대기 상태로 전환된다. 그러므로, 제1 종료 트리거(ET 1)가 발생하면 도 4에 도시된 바와 같이 제1 스레드(Thread #1)는 대기 상태로 전환되고, 이에 따라. 트래픽 데이터의 흐름이 도 5d에 도시된 바와 같이 변화한다.When the first end trigger ET 1 is generated in this way, the first thread (Thread # 1) is switched to the standby state. Therefore, when the first end trigger ET 1 occurs, the first thread (Thread # 1) is switched to the standby state as shown in Fig. The flow of the traffic data changes as shown in Fig. 5D.

이후, 제 3 전환 트리거(ST 3)가 발생하면 제3 스레드(Thread #3)의 제3 활성 이벤트(AE 3)에 따라 제4 스레드(Thread #4)가 활성화되어, NIC(110)에서 출력되는 트래픽 데이터는 제4 가상 수신 버퍼(124)에 저장된다. Thereafter, when the third switching trigger ST 3 occurs, the fourth thread (Thread # 4) is activated in accordance with the third active event (AE 3) of the third thread (Thread # 3) Is stored in the fourth virtual receiving buffer 124. [0064]

또한, 제2 스레드(Thread #2), 제3 스레드(Thread #3), 및 제4 스레드(Thread #2) 각각은 제2, 3, 4 가상 수신 버퍼(122, 123, 124)에 저장된 트래픽 데이터를 제2, 3, 4 하드 디스크(142, 143, 144)에 각각 저장한다, In addition, each of the second thread (Thread # 2), the third thread (Thread # 3), and the fourth thread (Thread # 2) And stores the data in the second, third, and fourth hard disks 142, 143, and 144, respectively,

또한, 제2 종료 트리거(ET 2)가 발생하면, 도 4에 도시된 바와 같이 제2 스레드(Thread #2)가 대기 상태로 전환되며, 트래픽 데이터의 흐름은 도 5e 같이 변화한다. When the second end trigger ET 2 is generated, the second thread (Thread # 2) is switched to the standby state as shown in FIG. 4, and the flow of the traffic data changes as shown in FIG. 5E.

한편, 전환 트리거가 가상 수신 버퍼(121 내지 124)가 미리 설정된 임계치 이상 채워지면 발생하는 것으로 설명하였으나, 전환 트리거는 가상 수신 버퍼(121 내지 124)에서 오버플로우를 방지하기 위한 것으로 다른 조건에 의하여서도 발생할 수 있다. On the other hand, although it has been described that the switching trigger occurs when the virtual receiving buffers 121 to 124 are filled up to a predetermined threshold value or more, the switching trigger is for preventing overflow in the virtual receiving buffers 121 to 124, Lt; / RTI >

예를 들어, 수신 버퍼에 트래픽 데이터가 전송된 시간이 미리 설정된 임계 시간을 경과하면 전환 트리거가 발생할 수 있다. 이때, 임계 시점은 트래픽 데이터의 전송 속도와 하드 디스크의 트래픽 데이터 입출력 속도 차이에 기초하여 계산될 수도 있다. 다시 말하면, 수신 버퍼에 데이터가 저장되는 입력 속도와 하드 디스크로 데이터가 출력되는 출력 속도의 차이에 기초하여 임계 시점을 설정할 수 있다. For example, a transition trigger may occur when the time at which the traffic data is transmitted to the receive buffer exceeds a predetermined threshold time. At this time, the threshold time point may be calculated based on the difference between the transmission rate of the traffic data and the traffic data input / output rate of the hard disk. In other words, the threshold time point can be set based on the difference between the input speed at which data is stored in the reception buffer and the output speed at which data is output to the hard disk.

트래픽 저장 장치(10)는 상술한 바와 같이 멀티 스레딩 방식에 따라 트래픽을 여러 개의 하드 디스크(141 내지 144)에 분산하여 저장할 수 있다. 구체적으로, 도 5에 도시된 바와 같이 한번에 복수 개의 하드 디스크(141 내지 144)에 트래픽 데이터를 저장하게 된다. As described above, the traffic storage device 10 can distribute and store traffic to a plurality of hard disks 141 to 144 according to a multithreading scheme. Specifically, as shown in FIG. 5, traffic data is stored in a plurality of hard disks 141 to 144 at a time.

이와 같은 트래픽 데이터의 분산저장으로 인하여 하드 디스크(141 내지 144)의 느린 데이터 기록 속도를 보상하여 하드 디스크(141 내지 144)의 저장 지연으로 인한 트래픽 손실을 최소화할 수 있다.Due to the distributed storage of the traffic data, the slow data recording speed of the hard disks 141 to 144 is compensated to minimize the traffic loss due to the storage delay of the hard disks 141 to 144.

한편, 트래픽 저장 장치(10)의 하드 디스크의 크기는 도 5에 도시된 바와 같이 서로 상이할 수 있는 바, 트래픽 저장 장치(10)를 용이하게 구성할 수 있다.Meanwhile, the size of the hard disk of the traffic storage device 10 may be different from each other as shown in FIG. 5, so that the traffic storage device 10 can be easily configured.

즉, 멀티 스레딩 방식에 따라 각 가상 수신 버퍼(121 내지 124)에 저장된 데이터를 서로 다른 하드 디스크에 저장하기 때문에 RAID와 같은 분산 저장 방식에 비하여 하드 디스크의 조합에 있어서 더 자유로울 수 있다. That is, since the data stored in the respective virtual reception buffers 121 to 124 are stored in different hard disks according to the multithreading scheme, it is possible to freely combine hard disks in comparison with a distributed storage method such as RAID.

아울러, 활성화될 스레드의 선택에 따라 트래픽 데이터가 저장될 하드 디스크를 결정할 수 있는 바, 특정 하드 디스크에 부하의 집중을 방지하여 하드 디스크의 수명을 연장시킬 수 있다. In addition, according to the selection of the thread to be activated, the hard disk on which the traffic data is to be stored can be determined, and the load on the specific hard disk can be prevented from being concentrated, thereby extending the service life of the hard disk.

프로세서(150)는 이와 같이 여러 개의 하드 디스크(141 내지 144)에 분산되어 저장된 트래픽 데이터를 통합할 수 있다. The processor 150 may integrate the traffic data distributed and stored in the plurality of hard disks 141 to 144 as described above.

트래픽 데이터의 병합에는 하드 디스크(141 내지 144)에 기록될 때 부여된 고유한 식별자가 이용될 수 있으며, 트래픽 데이터의 병합은 상대적으로 트래픽의 발생량이 적은 때에 수행될 수 있다. The merging of the traffic data may be performed using a unique identifier assigned to the hard disks 141 to 144 when the data is recorded in the hard disks 141 to 144. The merge of the traffic data may be performed when the amount of traffic is relatively small.

이를 위해, 프로세서(150)는 트래픽 데이터의 전송량을 모니터링하고 트래픽 데이터의 전송량이 미리 설정된 기준치보다 낮아지면 트래픽 데이터의 병합을 수행하여 통합저장디스크(160)에 저장할 수 있다. For this, the processor 150 monitors the amount of traffic data transmission and, if the amount of traffic data transmission is lower than a preset reference value, merges the traffic data and stores it in the integrated storage disk 160.

한편, 도 3 내지 4에서는 4개의 코어(151 내지 154)에 의하여 트래픽 데이터가 분산되어 저장되는 것으로 설명하였으나, 이에 한정되는 것이 아니다. 예를 들어, 하나의 코어에서 복수 개의 스레드가 수행되어 트래픽 데이터가 분산되어 저장될 수도 있다. 3 to 4, traffic data is distributed and stored by the four cores 151 to 154, but the present invention is not limited thereto. For example, a plurality of threads may be executed in one core so that traffic data may be distributed and stored.

또한, 이상에서는 4개의 스레드에 의하여 트래픽 데이터가 분산되어 처리되는 설명하였으나, 트래픽 데이터의 전송량에 따라 동시에 수행되는 스레드의 개수는 달라질 수 있음을 이해하여야 한다.
In the above description, traffic data is distributed and processed by four threads. However, it should be understood that the number of threads executed at the same time may vary depending on the amount of traffic data to be transmitted.

이하, 도 3 내지 7을 참조하여 트래픽 데이터의 저장 방법에 대하여 구체적으로 설명한다. Hereinafter, a method of storing traffic data will be described in detail with reference to FIGS.

도 6는 일 실시예에 따른 트래픽 저장 방법을 설명하기 위한 순서도이고, 도 7는 도 6의 S530단계를 상세히 설명하기 위한 순서도이다.FIG. 6 is a flowchart for explaining a traffic storing method according to an embodiment, and FIG. 7 is a flowchart for explaining step S530 of FIG. 6 in detail.

도 6에 도시된 바와 같이, 트래픽 저장 장치(10)는 트래픽 데이터를 수신할 수 있다(S510). 구체적으로, 네트워크 인터페이스 카드(network interface card, 이하 NIC(110))는 TAB 장치(31)로부터 트래픽 데이터를 수신할 수 있다. 이때, TAB 장치(31)는 전체 패킷 중 미리 설정된 조건을 만족하는 패킷만을 필터링하여 NIC(110)로 전송할 수 있다. 또한, TAB 장치(31)는 패킷의 일부분만 복제하여 NIC(110)로 전송할 수도 있다.As shown in FIG. 6, the traffic storage device 10 may receive traffic data (S510). Specifically, a network interface card (hereinafter NIC 110) can receive traffic data from the TAB device 31. At this time, the TAB device 31 can filter only the packets satisfying the predetermined condition among all the packets and transmit them to the NIC 110. The TAB device 31 may also copy a portion of the packet and transmit it to the NIC 110. [

한편, 수신된 트래픽 데이터는 NIC(110)에 의하여 필터링될 수 있다(S520). 즉, NIC(110)는 프로세서(150)의 제어에 따라 수신된 트래픽 데이터를 필터링하여 특정 트래픽 데이터만을 출력할 수 있다.Meanwhile, the received traffic data may be filtered by the NIC 110 (S520). That is, the NIC 110 may filter the received traffic data under the control of the processor 150 to output only specific traffic data.

필터링된 트래픽 데이터는 분산 기록될 수 있다(S530). 즉, 트래픽 데이터는 활성화된 스레드에 의하여 지정된 복수 개의 가상 수신 버퍼(121 내지 124) 중 특정 가상 수신 버퍼(121 내지 124)에 저장되고, 가상 수신 버퍼(121 내지 124)에 저장된 트래픽 데이터는 활성화된 스레드에 의하여 가상 수신 버퍼(121 내지 124)와 매핑된 하드 디스크(141 내지 144)에 분산되어 기록될 수 있다. The filtered traffic data may be distributedly recorded (S530). That is, the traffic data is stored in the specific virtual receiving buffers 121 to 124 among the plurality of virtual receiving buffers 121 to 124 specified by the activated thread, and the traffic data stored in the virtual receiving buffers 121 to 124 is stored in the activated May be distributed and recorded in the hard disks 141 to 144 mapped with the virtual reception buffers 121 to 124 by the thread.

이때, 각 하드 디스크(141 내지 144)에 기록되는 트래픽 데이터는 미리 설정된 기준에 따라 고유한 식별자를 가진 파일로 저장될 수 있다. At this time, the traffic data recorded in each of the hard disks 141 to 144 may be stored as a file having a unique identifier according to a preset reference.

분산 기록된 트래픽 데이터는 병합될 수 있다(S540). 트래픽 데이터의 병합에는 하드 디스크(141 내지 144)에 기록될 때 부여된 고유한 식별자가 이용될 수 있으며, 트래픽 데이터의 병합은 상대적으로 트래픽의 발생량이 적은 때에 수행될 수 있다. The distributed recorded traffic data may be merged (S540). The merging of the traffic data may be performed using a unique identifier assigned to the hard disks 141 to 144 when the data is recorded in the hard disks 141 to 144. The merge of the traffic data may be performed when the amount of traffic is relatively small.

이하, 7를 참조하여 도 6의 S530단계를 더 상세히 설명한다. Hereinafter, step S530 of FIG. 6 will be described in more detail with reference to FIG.

트래픽 데이터는 제1 하드 디스크에 기록된다(S531). 이때, 필터링된 트래픽 데이터는 활성화된 제1 스레드에 의하여 지정된 제1 가상 수신 버퍼에 저장될 수 있으며, 제1 스레드는 제1 가상 수신 버퍼에 저장된 트래픽 데이터를 제1 하드 디스크에 기록할 수 있다. Traffic data is recorded on the first hard disk (S531). At this time, the filtered traffic data may be stored in the first virtual receive buffer designated by the activated first thread, and the first thread may write the traffic data stored in the first virtual receive buffer to the first hard disk.

한편, 트래픽 데이터는 DMA 방식에 따라 프로세서(150)의 처리를 거치지 않고 직접 제1 가상 수신 버퍼에 저장될 수 있다. 이를 위해, 제1 스레드는 DMA 컨트롤러(130)에 제어 신호를 전송하여 트래픽 데이터가 저장될 제1 가상 수신 버퍼의 위치 및 크기를 지정할 수 있다.Meanwhile, the traffic data may be directly stored in the first virtual receive buffer without being processed by the processor 150 according to the DMA scheme. To this end, the first thread may send a control signal to the DMA controller 130 to specify the location and size of the first virtual receive buffer in which the traffic data is to be stored.

제1 가상 수신 버퍼의 저장량이 임계치보다 작으면(S532의 아니오) NIC를 통해 입력된 트래픽 데이터는 계속하여 제1 가상 수신 버퍼에 저장되고, 제1 가상 수신 버퍼에 저장된 트래픽 데이터는 제1 스레드에 의하여 계속하여 제1 하드 디스크에 기록된다.(S531). If the storage amount of the first virtual receiving buffer is smaller than the threshold value (NO in S532), the traffic data input through the NIC is continuously stored in the first virtual receiving buffer, and the traffic data stored in the first virtual receiving buffer is stored in the first thread And then recorded on the first hard disk (S531).

한편, 제1 하드 디스크의 기록 속도보다 제1 가상 수신 버퍼에 트래픽 데이터가 저장되는 속도가 빨라지면. 제1 가상 수신 버퍼의 저장량이 임계치보다 커진다(S532의 예). On the other hand, if the speed at which traffic data is stored in the first virtual receiving buffer becomes faster than the recording speed of the first hard disk. The storage amount of the first virtual reception buffer becomes larger than the threshold value (YES in S532).

이와 같이 제1 가상 수신 버퍼의 저장량이 임계치보다 커지면(S532의 예) 전환 트리거가 생성된다(S533). 여기서, 전환 트리거는 상술한 바와 같이 제1 가상 수신 버퍼에 오버플로우가 발생하지 않도록 하는 것으로 S531단계는 전환 트리거의 발생 조건에 따라 달라질 수 있음을 이해하여야 한다. When the storage amount of the first virtual receiving buffer is larger than the threshold value (YES in S532), a switching trigger is generated (S533). Here, it should be understood that the switching trigger does not cause an overflow in the first virtual receiving buffer as described above, and that the step S531 may vary depending on the generation condition of the switching trigger.

예를 들어, S532 단계는 미리 지정된 시간의 경과를 판단하는 단계로 치환될 수 있다.For example, the step S532 may be replaced with a step of determining the elapse of a predetermined time.

아울러, 전환 트리거가 발생하면 대기 스레드 중 활성화 될 제2 스레드가 결정될 수 있다(S534). 예를 들어, 제1 스레드는 복수 개의 대기 스레드 중 미리 설정된 기준을 만족하는 하나의 스레드를 활성화될 제2 스레드로 결정할 수 있다. In addition, when the switching trigger occurs, the second thread to be activated among the waiting threads may be determined (S534). For example, the first thread may determine a thread that meets a predetermined criterion among a plurality of waiting threads as a second thread to be activated.

이때, 제1 스레드는 결정된 제2 스레드에 IPC를 통해 활성화 이벤트를 전송할 수 있다. At this time, the first thread can transmit the activation event via the IPC to the determined second thread.

제1 스레드는 지정된 제1 가상 수신 버퍼에 저장된 트래픽 데이터를 제1 하드 디스크에 기록할 수 있다(S535). 이때, 제1 스레드는 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 모두 1 하드 디스크에 기록되면 대기 상태로 전환될 수 있다.The first thread may write the traffic data stored in the designated first virtual receive buffer to the first hard disk (S535). At this time, the first thread can be switched to the standby state when all the traffic data stored in the first virtual receiving buffer is written to one hard disk.

활성화된 제2 스레드는 필터링된 트래픽 데이터를 제2 하드 디스크에 기록한다(S536). 구체적으로, 활성화 된 제2 스레드는 DMA 컨트롤러(130)에 제어 신호를 전송하여 필터링된 트래픽 데이터가 저장될 제2 가상 수신 버퍼(122)를 지정할 수 있다. The activated second thread writes the filtered traffic data to the second hard disk (S536). Specifically, the activated second thread may send a control signal to the DMA controller 130 to specify a second virtual receive buffer 122 in which the filtered traffic data is to be stored.

따라서, 필터링된 트래픽 데이터는 DMA 컨트롤러에 의하여 제2 가상 수신 버퍼에 저장되고, 제2 가상 수신 버퍼에 저장된 트래픽 데이터는 제2 스레드에 의하여 제2 하드 디스크에 기록될 수 있다.
Thus, the filtered traffic data is stored in the second virtual receive buffer by the DMA controller, and the traffic data stored in the second virtual receive buffer can be written to the second hard disk by the second thread.

일 실시예에 따른 트래픽 저장 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며, 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media) 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다.
The traffic storing method according to an exemplary embodiment of the present invention can be implemented as a computer-readable code on a computer-readable recording medium. The computer readable recording medium may include program instructions, data files, data structures, and the like, alone or in combination, and includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include an optical recording medium such as a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, a compact disk read only memory (CD-ROM), and a digital video disk (ROM), random access memory (RAM), flash memory, and the like, such as a magneto-optical medium such as a magneto-optical medium and a floppy disk, And hardware devices that are specifically configured to perform the functions described herein.

100: 트래픽 저장 장치 110: NIC
111: Port 112: 드라이버
120: 메모리 130: DMA 컨트롤러
140: 분산저장장치 150: 통합저장디스크
100: traffic storage device 110: NIC
111: Port 112: Driver
120: memory 130: DMA controller
140: Distributed storage device 150: Integrated storage disk

Claims (15)

복수 개의 하드 디스크에 트래픽을 분산하여 저장하는 트래픽 저장 방법에 있어서,
수신된 트래픽 데이터가 제1 스레드에 의하여 지정된 제1 가상 수신 버퍼에 저장되고, 상기 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 제1 하드 디스크에 기록되는 기록 단계;
스레드 전환 트리거가 발생하면 복수 개의 대기 스레드 중에서 활성화될 제 2 스레드를 결정하는 단계;
결정된 제2 스레드가 활성화되는 활성 단계; 및
상기 트래픽 데이터가 상기 제2 스레드에 의하여 지정된 제2 가상 수신 버퍼에 저장되고, 상기 제1, 2 가상 수신 버퍼에 저장된 트래픽 데이터가 각각 제1, 2 하드 디스크에 기록되는 분산 기록 단계;
를 포함하는 트래픽 저장 방법.
A traffic storing method for distributing and storing traffic on a plurality of hard disks,
Wherein the received traffic data is stored in a first virtual receive buffer specified by a first thread and the traffic data stored in the first virtual receive buffer is recorded in a first hard disk;
Determining a second thread to be activated among the plurality of standby threads when a thread change trigger occurs;
An active stage in which the determined second thread is activated; And
Wherein the traffic data is stored in a second virtual receive buffer specified by the second thread, and traffic data stored in the first and second virtual receive buffers are respectively recorded in first and second hard disks;
Lt; / RTI >
제1항에 있어서,
상기 기록 단계는,
네트워크로부터 상기 트래픽 데이터를 수신하는 단계; 및
상기 트래픽 데이터를 필터링하는 단계;
를 포함하는 트래픽 저장 방법.
The method according to claim 1,
The recording step includes:
Receiving the traffic data from a network; And
Filtering the traffic data;
Lt; / RTI >
제1항에 있어서,
상기 활성 단계는,
상기 제1 가상 수신 버퍼가 임계치 이상 채워지면 상기 전환 트리거가 발생하는 단계;
를 포함하는 트래픽 저장 방법.
The method according to claim 1,
Wherein the activating step comprises:
Generating the transition trigger if the first virtual receive buffer is filled above a threshold;
Lt; / RTI >
제1항에 있어서,
상기 활성 단계는,
상기 제1 가상 수신 버퍼에 트래픽 데이터가 저장되고 미리 설정된 시간이 경과하면 상기 전환 트리거가 발생하는 단계;
를 포함하는 트래픽 저장 방법.
The method according to claim 1,
Wherein the activating step comprises:
Generating the switch trigger when traffic data is stored in the first virtual receive buffer and a preset time elapses;
Lt; / RTI >
삭제delete 제1항에 있어서,
상기 활성단계는,
상기 제1 스레드는 프로세서 간 통신(IPC)을 이용하여 상기 제2 스레드를 활성화하는 단계;
를 포함하는 트래픽 저장 방법.
The method according to claim 1,
Wherein the activating step comprises:
The first thread activating the second thread using interprocessor communication (IPC);
Lt; / RTI >
제1항에 있어서,
상기 분산 기록 단계는,
상기 제1 가상 수신 버퍼에 저장된 트래픽 데이터가 모두 상기 제1 하드 디스크에 기록되면, 상기 제1 스레드가 대기 상태로 전환되는 단계;
를 포함하는 트래픽 저장 방법.
The method according to claim 1,
Wherein the dispersion recording step comprises:
When the traffic data stored in the first virtual receiving buffer is all written to the first hard disk, switching the first thread to a standby state;
Lt; / RTI >
제1항에 있어서,
상기 트래픽 데이터가 전송량이 미리 설정된 기준치 이하로 낮아지면, 상기 복수 개의 하드 디스크에 분산되어 저장된 트래픽 데이터가 병합되는 단계;를 포함하는 트래픽 저장 방법.
The method according to claim 1,
And merging the traffic data distributed and stored in the plurality of hard disks when the traffic data becomes lower than a preset reference value.
제1항에 있어서,
상기 트래픽 데이터는 고유한 식별자를 가진 파일 형태로 상기 하드 디스크에 저장되는 트래픽 저장 방법.
The method according to claim 1,
Wherein the traffic data is stored in the hard disk in the form of a file having a unique identifier.
제1항 내지 제4항, 제6항 내지 제9항 중 어느 하나에 따른 방법에 대한 프로그램이 저장된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium storing a program for a method according to any one of claims 1 to 4, 6 to 9. 네트워크로부터 트래픽 데이터를 수신하는 네트워크 인터페이스;
복수 개의 수신 버퍼가 설정된 메모리;
상기 복수 개의 수신 버퍼에 대응하여 마련된 복수 개의 하드 디스크;
제1 스레드에 의하여 지정된 제1 수신 버퍼에 상기 트래픽 데이터를 저장하는 DMA 컨트롤러;

상기 제1 수신 버퍼에 저장된 트래픽 데이터를 제1 하드 디스크에 기록하고, 전환 트리거에 따라 대기 상태인 제2 스레드를 활성화하는 제1 스레드는 상기 제 1 수신 버퍼에 저장된 트래픽 데이터가 모두 기록되면 대기 상태로 전환되고, 상기 제 2 스레드가 활성화 되면 상기 트래픽 데이터가 제2 수신 버퍼에 저장되도록 상기 DMA 컨트롤러를 설정하고, 상기 제2 수신 버퍼에 저장된 트래픽 데이터를 제2 하드 디스크에 기록하는 제2 스레드가 수행되는 프로세서;
를 포함하는 트래픽 저장 장치.
A network interface for receiving traffic data from a network;
A memory in which a plurality of reception buffers are set;
A plurality of hard disks corresponding to the plurality of reception buffers;
A DMA controller for storing the traffic data in a first receiving buffer specified by a first thread;
And
The first thread writes the traffic data stored in the first receiving buffer to the first hard disk and activates the second thread in the waiting state according to the switching trigger, A second thread for setting the DMA controller to store the traffic data in the second receiving buffer when the second thread is activated and a second thread for writing the traffic data stored in the second receiving buffer to the second hard disk, A processor to be executed;
Lt; / RTI >
제11항에 있어서,
상기 네트워크 인터페이스는,
네트워크로부터 수신한 트래픽 데이터를 필터링하여 출력하는 트래픽 저장 장치.
12. The method of claim 11,
Wherein the network interface comprises:
A traffic storage device for filtering and outputting traffic data received from a network.
제11항에 있어서,
상기 전환 트리거는 상기 제1 수신 버퍼가 임계치 이상 채워지거나 상기 제1 수신 버퍼에 트래픽 데이터가 저장되고 미리 설정된 임계 시간이 경과하면 발생하는 트래픽 저장 장치.
12. The method of claim 11,
Wherein the switching trigger occurs when the first receiving buffer is filled with a threshold value or more, or when traffic data is stored in the first receiving buffer and a predetermined threshold time elapses.
삭제delete 제11항에 있어서,
복수 개의 하드 디스크에 분산 기록된 트래픽 데이터가 병합되어 저장되는 통합저장장치를 더 포함하는 트래픽 저장 장치.
12. The method of claim 11,
And an integrated storage device in which traffic data distributedly recorded on a plurality of hard disks are merged and stored.
KR1020140074301A 2014-06-18 2014-06-18 Apparatus and method of traffic storage, and computer-readable recording medium KR101626279B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140074301A KR101626279B1 (en) 2014-06-18 2014-06-18 Apparatus and method of traffic storage, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140074301A KR101626279B1 (en) 2014-06-18 2014-06-18 Apparatus and method of traffic storage, and computer-readable recording medium

Publications (2)

Publication Number Publication Date
KR20150145049A KR20150145049A (en) 2015-12-29
KR101626279B1 true KR101626279B1 (en) 2016-06-13

Family

ID=56191310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140074301A KR101626279B1 (en) 2014-06-18 2014-06-18 Apparatus and method of traffic storage, and computer-readable recording medium

Country Status (1)

Country Link
KR (1) KR101626279B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102080479B1 (en) * 2019-06-20 2020-02-24 주식회사 쿼드마이너 Scenario-based real-time attack detection system and scenario-based real-time attack detection method using the same
KR102080478B1 (en) * 2019-06-20 2020-02-24 주식회사 쿼드마이너 Pattern-based indexing system and pattern-based indexing method using the same
KR102080477B1 (en) * 2019-06-20 2020-02-24 주식회사 쿼드마이너 High performance packet stream storage system and high performance packet stream storage method using the same
JP7391847B2 (en) * 2019-06-20 2023-12-05 クワッド マイナーズ Network forensic system and network forensic method using the same
KR102332727B1 (en) * 2020-12-04 2021-12-01 한국서부발전 주식회사 Anomaly detection system using distrubuted storage of traffic of power plant contrl netwrok assets
CN115914140B (en) * 2023-01-10 2023-06-20 苏州浪潮智能科技有限公司 Stored data processing method and device, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177930B1 (en) 2002-10-11 2007-02-13 Network General Technology Method and system for network traffic analysis with configuration enhancements

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177930B1 (en) 2002-10-11 2007-02-13 Network General Technology Method and system for network traffic analysis with configuration enhancements

Also Published As

Publication number Publication date
KR20150145049A (en) 2015-12-29

Similar Documents

Publication Publication Date Title
KR101626279B1 (en) Apparatus and method of traffic storage, and computer-readable recording medium
US10798207B2 (en) System and method for managing application performance
US10003649B2 (en) Systems and methods to improve read/write performance in object storage applications
US20180052797A1 (en) Preventing input/output (i/o) traffic overloading of an interconnect channel in a distributed data storage system
US20190163371A1 (en) Next generation storage controller in hybrid environments
US9858013B1 (en) Scalable distributed storage system infrastructure
US8589919B2 (en) Traffic forwarding for virtual machines
US7457925B2 (en) Storage control method and system
US9785522B2 (en) Adaptive datacenter topology for distributed frameworks job control through network awareness
US9092259B2 (en) Apparatus and method for controlling a resource utilization policy in a virtual environment
JP2013509658A (en) Allocation of storage memory based on future usage estimates
US11265253B2 (en) Network resource management for hyperconverged infrastructures
US10210338B2 (en) Reducing decryption latency for encryption processing
US9509627B2 (en) Resource over-subscription
JP2010102464A (en) Computer system and duplicate creation method in computer system
KR20150121891A (en) System for managing cloud streaming server, method of managing cloud streaming server and apparatus for the same
US8458719B2 (en) Storage management in a data processing system
US8612701B1 (en) Method and apparatus for accessing a tape drive from a plurality of nodes
CN113031857B (en) Data writing method, device, server and storage medium
US8473643B2 (en) Method and apparatus of tier storage management awareness networking
JP5612223B1 (en) Storage system, storage apparatus control method and program
JP2008129828A (en) Dynamic allocation method of blade server
CN114064362B (en) Data recovery method, system and computer readable storage medium for distributed storage
KR102579474B1 (en) Method and apparatus for network load balancing
KR101432745B1 (en) Distributed file system of cluster in the virtualized cloud environment and data replication method

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
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4