KR100608541B1 - An apparatus for capturing Internet ProtocolIP packet with sampling and signature searching function, and a method thereof - Google Patents
An apparatus for capturing Internet ProtocolIP packet with sampling and signature searching function, and a method thereof Download PDFInfo
- Publication number
- KR100608541B1 KR100608541B1 KR1020050032363A KR20050032363A KR100608541B1 KR 100608541 B1 KR100608541 B1 KR 100608541B1 KR 1020050032363 A KR1020050032363 A KR 1020050032363A KR 20050032363 A KR20050032363 A KR 20050032363A KR 100608541 B1 KR100608541 B1 KR 100608541B1
- Authority
- KR
- South Korea
- Prior art keywords
- signature
- packet
- sampling
- search
- signature search
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
본 발명은 고속의 인터넷 회선으로부터 패킷을 수집하기 위해서 지금까지 분석 소프트웨어에서 수행되던 샘플링 기능과 시그너쳐 검색 기능을 하드웨어로 구현한 IP 패킷 수집 장치 및 그 방법에 관한 것이다. 본 발명에 따르면, 지금까지 분석 소프트웨어에서 수행되던 샘플링 기능과 시그너쳐 검색 기능을 FPGA(Field Programmable Gate Array) 하드웨어로 구현함으로써 고속의 인터넷 회선에 대한 트래픽 수집에 요구되는 많은 컴퓨팅 자원을 줄일 수 있으며 보다 정확한 실시간 분석이 가능한 모니터링 시스템을 효율적으로 구축할 수 있다.The present invention relates to an IP packet collection device and method for hardware-implementing a sampling function and a signature retrieval function which have been performed in analysis software to collect packets from a high-speed Internet circuit. According to the present invention, the field-programmable gate array (FPGA) hardware, which has been performed in analysis software so far, can be implemented with FPGA (Field Programmable Gate Array) hardware to reduce the amount of computing resources required for traffic collection on high-speed Internet circuits, and more precisely. A monitoring system capable of real time analysis can be efficiently constructed.
IP 패킷 수집, 플로우 샘플링, 시그너쳐 검색, 모니터링, FPGA IP Packet Acquisition, Flow Sampling, Signature Search, Monitoring, FPGA
Description
도 1은 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 장치의 블록 구성도이다.1 is a block diagram of an IP packet collection device having a sampling and signature search function according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 방법의 동작 흐름도이다.2 is an operation flowchart of an IP packet collection method having a sampling and signature search function according to an embodiment of the present invention.
도 3은 본 발명의 실시예에 따른 샘플링 방법을 나타내는 구체적인 동작 흐름도이다.3 is a detailed operation flowchart illustrating a sampling method according to an embodiment of the present invention.
도 4는 본 발명의 실시예에 따른 시그너쳐 검색 방법을 나타내는 구체적인 동작 흐름도이다.4 is a detailed operation flowchart illustrating a signature search method according to an embodiment of the present invention.
본 발명은 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 장치 및 그 방법에 관한 것으로, 고속의 인터넷 회선으로부터 패킷을 수집하기 위해서 지금까지 분석 소프트웨어에서 수행되던 샘플링 기능과 시그너쳐 검색 기능을 FPGA(Field Programmable Gate Array) 하드웨어로 구현한 IP 패킷 수집 장치 및 그 방법에 관한 것이다.The present invention relates to an IP packet collecting device having a sampling and signature retrieval function and a method thereof. The present invention relates to an FPGA (Field Programmable) method for collecting a sampling function and a signature retrieval function that have been performed in analysis software to collect packets from a high-speed Internet circuit. Gate Array) The present invention relates to an IP packet collecting device implemented in hardware and a method thereof.
먼저, 샘플링의 종류는 패킷 샘플링과 플로우 샘플링으로 구분할 수 있는데, 이중에서 플로우 샘플링은 같은 특성을 가지는 패킷들을 하나의 플로우로 정의하고, 이러한 플로우를 중심으로 미리 정해진 연산 규칙을 이용하여 패킷들을 샘플링하는 방법이다.First, the sampling type can be divided into packet sampling and flow sampling. Among them, flow sampling defines packets having the same characteristics as one flow and samples packets using a predetermined calculation rule based on the flow. Way.
인터넷에서 플로우에 대한 예를 들면, 소스 인터넷 프로토콜(IP) 주소, 목적지 IP 주소, 프로토콜, 소스 포트 번호, 목적지 포트 번호가 같은 패킷들의 모임을 하나의 플로우로 정의할 수 있다.For example, for a flow on the Internet, a collection of packets with the same source internet protocol (IP) address, destination IP address, protocol, source port number, and destination port number can be defined as a flow.
또한, 수집된 IP 패킷에 대한 TCP나 UDP와 같은 L4 PDU(Protocol Data Unit)의 페이로드 안에 패킷 속성을 미리 결정할 수 있는 특정 패턴이나 문자열과 같은 시그너쳐가 존재하는지 검사하여, 만약 정해진 시그너쳐가 존재하면 페이로드를 그냥 붙여 정해진 고정된 수집 크기만큼 잘라 보내고, 그렇지 않으면 페이로드를 버리고 L4 헤더까지만 분석 소프트웨어에게 수집된 패킷을 전달한다.It also checks whether a signature, such as a specific pattern or string, exists in the payload of an L4 PDU (Protocol Data Unit), such as TCP or UDP, for a collected IP packet. Just attach the payload and truncate it to a fixed fixed collection size, otherwise discard the payload and pass the collected packets up to the L4 header to the analysis software.
이렇게 함으로써, IP 패킷 수집 장치가 분석 서버에게 전달하는 수집 데이터 양을 최소한으로 줄여 트래픽 분석 시스템이 보다 많은 수의 패킷을 빠르고 정확하게 고속의 인터넷 회선에서도 분석이 가능할 수 있게 된다.By doing so, the amount of data collected by the IP packet collector to the analysis server is reduced to a minimum, so that the traffic analysis system can analyze a larger number of packets quickly and accurately even on a high-speed Internet circuit.
현재 운영 중인 망(Network)의 운영 상태와 트래픽 특성 파악, 설계 및 계획, 유해한 트래픽 차단, 과금, QoS(Quality of Service) 보장을 위해서는 트래픽 측정 기술이 필요하다.Traffic measurement technology is needed to understand the operational status and traffic characteristics, design and plan, block harmful traffic, billing and quality of service (QoS) of the currently operating network.
이러한 트래픽 측정은 능동적(Active) 측정과 수동적(Passive) 측정으로 구분할 수 있다.Such traffic measurement can be divided into active measurement and passive measurement.
능동적 측정은 측정을 위한 패킷들을 망에 직접 실어 보내어 그 결과를 측정하는 방법으로서, 단방향 지연과 같이 얻고자 하는 메트릭(metric)을 쉽게 구할 수 있는 장점이 있지만 인터넷 망의 최선의(best-effort) 서비스 특성으로 인한 측정 결과의 부정확성과 현재 정상적인 망 트래픽에 영향을 준다는 단점이 있다.Active measurement is a method of measuring the result by sending packets for measurement directly to the network, which has the advantage of easily obtaining the metric desired to obtain such as one-way delay, but the best-effort of the Internet network. There are disadvantages of inaccurate measurement results due to service characteristics and current normal network traffic.
반면에, 수동적 측정은 물리적인 링크 회선을 태핑(tapping)하거나 스위치 또는 라우터의 포트 미러링(mirroring) 기능을 이용하여 회선을 분류하고 모니터링을 위한 하나의 회선을 따로 두어 측정하는 방법이다. 이 방법은 회선에 흐르는 모든 트래픽을 수집할 수 있을 뿐만 아니라 현재 운영 중인 망에 전혀 영향을 주지 않는 장점이 있다. 그러나 회선의 물리적인 태핑을 위해서 현재 운영 중인 망을 일시적으로 중단해야 하는 문제가 있다.Passive measurement, on the other hand, is a method of tapping a physical link circuit or using a port mirroring function of a switch or a router to classify circuits and set one circuit separately for monitoring. This method has the advantage of not only collecting all the traffic flowing through the circuit but also having no effect on the current network. However, there is a problem that the network currently in operation must be temporarily stopped for physical tapping of the circuit.
그런데, 망 운영자는 망의 상황을 실시간으로 파악하여 관리하고, 현재 망 성능에 영향을 주지 않으면서 효율적으로 망을 운영하기를 원하기 때문에 수동적인 측정 방법이 더 많이 사용된다.However, because network operators want to know and manage the network situation in real time and operate the network efficiently without affecting the current network performance, manual measurement methods are more used.
한편, 인터넷 사용자의 증가와 다양한 응용 서비스들의 등장으로 인해서 오늘날 인터넷 망은 대규모화되어 수 100Mbps에서 수 10Gbps에 이르고 있다. 이러한 고속의 회선을 일반 범용 NIC(Network Interface Card) 카드를 이용해서 측정하고자 할 경우에는 몇 가지 문제점이 있다.Meanwhile, due to the increase in the number of Internet users and the emergence of various application services, the Internet network has become large in size, ranging from several 100Mbps to several 10Gbps. There are some problems when trying to measure such a high speed line using a general purpose network interface card (NIC) card.
첫 번째 문제점으로, 트래픽 양이 많아지면 매 패킷에 대한 인터럽트 처리의 증가로 인한 CPU(Central Processing Unit) 사용량이 급격히 증가하여 패킷 손실이 발생하고 심지어는 시스템 자체가 정지하는 경우도 있다.The first problem is that as the traffic volume increases, the central processing unit (CPU) usage increases rapidly due to the increased interrupt processing for every packet, causing packet loss and even the system itself to stop.
두 번째 문제점으로, 일반 NIC 카드는 시간을 계산하는 기능이 없기 때문에 시스템의 현재 시간을 패킷이 도착한 시간의 타임 스탬프(time stamp)로 사용하는데, 이것 또한 각 시스템마다 시간 차이가 존재하며 실제로 도착한 시간보다 뒤늦게 계산되는 문제가 있다.The second problem is that since a regular NIC card does not have the ability to calculate time, it uses the system's current time as the time stamp of the time the packet arrived, which also differs from time to time for each system. There is a problem that is calculated later.
세 번째 문제점으로는, 고속의 회선으로부터 수집된 많은 양의 데이터를 실시간으로 저장하기에 충분히 빠른 저장장치가 없다는 것이다.The third problem is that there is no storage fast enough to store large amounts of data collected from high speed lines in real time.
따라서 전술한 문제점을 해결하기 위해서는 수집 카드 내에서 GPS(Global Positioning System)나 CDMA(Code Division Multiple Access)를 이용하여 정확한 패킷 도착 시간에 대한 타임 스탬프를 계산하고, 매 패킷에 대한 인터럽트 처리를 수행하는 대신에 일정한 양의 수집 데이터를 모아서 한번에 처리함으로써 CPU 사용량을 줄일 수 있는 수집 전용 장치가 필요하다.Therefore, in order to solve the above-mentioned problem, a time stamp for accurate packet arrival time is calculated using a Global Positioning System (GPS) or a Code Division Multiple Access (CDMA) in a collection card, and interrupt processing is performed for every packet. Instead, a dedicated collection device is needed that can collect a certain amount of collected data and process it all at once to reduce CPU usage.
그러나, 고속의 링크를 모니터링하기 위해서는 수집 전용 장치만으로는 근본적으로 해결할 수 없기 때문에 회선에 흐르는 모든 패킷들에 대한 측정 대신에 샘플링을 통하여 수집할 수밖에 없다.However, in order to monitor a high-speed link, a collection-only device cannot solve the fundamental problem. Therefore, instead of measuring all packets flowing through a circuit, sampling is required.
현재 패킷 샘플링은 라우터의 인터페이스 카드별로 수행되고 있지만, 라우터의 성능 저하로 인해서 자주 사용하지 않고 있다. 특히, 플로우에 기반한 샘플링은 분석 소프트웨어에 의해서만 수행되기 때문에 모니터링 시스템의 성능에 많은 영향을 미친다.Currently, packet sampling is performed by the router's interface card, but it is not frequently used due to the poor performance of the router. In particular, flow-based sampling only affects the performance of the monitoring system because it is performed only by analysis software.
따라서 이러한 샘플링 기능이 하드웨어로 구현된 수집 장치가 필요하다. 그리고 고속의 회선으로부터 정해진 길이만큼의 패킷을 수집하게 되면 많은 양의 데이터가 생성되며, 이것을 수집 장치에서 시스템 메모리로 전달하고 다시 분석 소프트웨어가 분석하기 위해 이것을 저장할 수 있는 충분히 빠른 속도의 하드디스크 저장 장치가 필요하다. 그런데, 저장 장치의 속도는 고속의 인터넷 회선에서 발생하는 많은 양의 데이터를 모두 저장할 만큼 충분히 빠르지 않다는 문제가 있다.Therefore, there is a need for a collection device in which such a sampling function is implemented in hardware. Collecting packets of a given length from a high-speed line generates a large amount of data, which is a fast enough hard disk storage device that can pass it from the acquisition unit to system memory and store it for analysis software again. Is needed. However, there is a problem that the speed of the storage device is not fast enough to store all of a large amount of data generated in a high speed Internet line.
따라서 발생되는 수집 데이터 양을 최소한으로 줄여 저장 속도에 맞추어서 수집하고 또한 한편으로는 분석 소프트웨어가 분석하는 시간을 단축시킬 필요가 있다.Thus, there is a need to reduce the amount of collected data generated to a minimum, so that it can be collected at a storage speed and, on the other hand, to reduce the analysis software analysis time.
한편, 분석 소프트웨어는 응용 서비스별 통계값을 계산하기 위해서 수집된 패킷이 어느 응용에 속하는지 구분할 필요가 있는데, 이것은 특정 패턴이나 시그너쳐를 L4 패킷의 페이로드 내에서 검색함으로써 가능하다.On the other hand, the analysis software needs to distinguish which application the collected packet belongs to in order to calculate application-specific statistics. This can be done by searching for a specific pattern or signature in the payload of the L4 packet.
그러나 이러한 작업은 많은 시간과 컴퓨터 자원이 소요되는 것으로써 모니터링 시스템 전체 성능에 많은 영향을 준다.However, these tasks are time-consuming and computer-intensive, which greatly affects the overall performance of the monitoring system.
따라서 이 기능을 수집 장치 내에서 하드웨어로 구현하여 분석 소프트웨어의 분석 속도를 향상시키고 불필요한 데이터를 버림으로써 장치로부터 발생되는 데이터 양을 최소화시킬 필요가 있다.Therefore, it is necessary to implement this function in hardware in the collection device to speed up the analysis software analysis and to minimize the amount of data generated from the device by discarding unnecessary data.
또한, 최종적으로 수집되어 처리된 패킷이 생성될 때마다 DMA 인터럽트를 호출하여 PCI 버스를 통해 시스템 메모리로 복사하는 대신에, 일정 양의 수집된 패킷 데이터가 저장될 때까지 기다렸다가 한번의 DMA 인터럽트를 호출함으로써 고속 회 선에서 발생하는 많은 인터럽트 호출에 의한 CPU 자원 낭비를 줄일 필요가 있다.In addition, instead of invoking a DMA interrupt every time a packet is finally collected and processed, copying it to system memory over the PCI bus, wait until a certain amount of collected packet data is stored before invoking one DMA interrupt. By doing so, it is necessary to reduce CPU resource waste caused by many interrupt calls occurring on a high speed line.
상기 문제점을 해결하기 위한 본 발명의 목적은, 분석 소프트웨어에서 수행되던 샘플링 기능과 시그너쳐 검색 기능을 FPGA(Field Programmable Gate Array) 하드웨어로 구현함으로써 보다 빠르고 정확하게 패킷을 수집할 수 있는 샘플링과 시그너쳐 검색 기능을 구비한 인터넷 프로토콜 패킷 수집 장치 및 그 방법을 제공하기 위한 것이다.An object of the present invention to solve the above problems is to implement a sampling function and a signature search function performed in the analysis software with FPGA (Field Programmable Gate Array) hardware to provide a sampling and signature search function that can collect packets faster and more accurately. The present invention provides an apparatus for collecting internet protocol packets and a method thereof.
상기의 목적을 달성하기 위한 수단으로서, 본 발명에 따른 IP 패킷 수집 장치는,As a means for achieving the above object, the IP packet collection device according to the present invention,
물리적인 회선으로부터 비트 스트림을 생성하는 네트워크 인터페이스 접속부로부터 트래픽을 입력받아서 L2 링크 계층의 프레임을 생성하는 L2 프레임 생성부;An L2 frame generation unit configured to generate a frame of an L2 link layer by receiving traffic from a network interface connection unit generating a bit stream from a physical circuit;
상기 L2 프레임 생성부가 생성한 프레임 데이터를 저장하는 입력 프레임 저장부;An input frame storage unit for storing frame data generated by the L2 frame generation unit;
상기 입력 프레임 저장부로부터 하나의 프레임을 입력받아 L2 헤더, IP 헤더, L4 헤더 및 페이로드를 구분하고, 각 L4 프로토콜에 따라 정의된 시그너쳐 검색 규칙(rule)을 참조하여 시그너쳐 검색을 수행하는 시그너쳐 검색부; 및Signature search for distinguishing L2 header, IP header, L4 header and payload by receiving one frame from the input frame storage unit, and performing signature search with reference to signature search rules defined according to each L4 protocol part; And
상기 입력 프레임 저장부로부터 하나의 프레임을 입력받아 L2 헤더, IP 헤더, L4 헤더 및 페이로드를 구분한 후, IP 패킷에 대해서 샘플링 모드에 따라 샘플링을 수행하고, 상기 샘플링 결과가 성공인 패킷에 대해서 시그너쳐 검색 모드가 켜져 있으면, 상기 시그너쳐 검색부의 결과에 따라 시그너쳐 검색 실패일 경우 페이로드를 버리고, 시그너쳐 검색 성공일 경우 정해진 수집 크기에 따라 패킷을 처리하는 중앙 패킷 처리부After receiving one frame from the input frame storage unit, the L2 header, the IP header, the L4 header, and the payload are classified, and the IP packet is sampled according to a sampling mode. If the signature search mode is turned on, the central packet processing unit discards the payload if the signature search fails according to the result of the signature search unit, and processes the packet according to a predetermined collection size if the signature search succeeds.
를 포함하는 것을 특징으로 한다.Characterized in that it comprises a.
또한, 상기 목적을 달성하기 위한 다른 수단으로서, 본 발명에 따른 IP 패킷 수집 방법은,In addition, as another means for achieving the above object, the IP packet collection method according to the present invention,
범용 PC나 서버의 PCI 버스를 통해 데이터가 전달되며, 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 방법에 있어서,In the IP packet collection method that the data is transmitted through the PCI bus of the general-purpose PC or server, and has a sampling and signature search function,
a) 물리적인 회선으로부터 하나의 L2 프레임을 생성한 후, 상기 L2 프레임을 L2 헤더와 IP 패킷으로 구분하는 단계;a) generating one L2 frame from a physical circuit, and then dividing the L2 frame into an L2 header and an IP packet;
b) 상기 입력 패킷이 IP 패킷인 경우, 샘플링 모드를 검사하여, 샘플링 모드가 켜져 있으면 모드 유형에 해당하는 샘플링을 수행하는 단계;b) when the input packet is an IP packet, checking a sampling mode and performing sampling corresponding to a mode type if a sampling mode is turned on;
c) 상기 샘플링 수행 결과가 성공일 경우, 시그너쳐 모드를 검사하고, 상기 시그너쳐 모드가 켜져 있으면, 시그너쳐 검색 과정을 수행하는 단계;c) checking a signature mode when the sampling performance is successful, and performing a signature search process when the signature mode is turned on;
d) 상기 시그너쳐 검색 결과가 실패이면 TCP나 UDP의 L4 헤더 이후의 페이로드 부분을 버리고 시각 동기화 신호를 이용하여 타임 스탬프를 추가한 후 PCI 출력 버퍼에 처리된 수집 데이터를 저장하는 단계;d) discarding the payload portion after the L4 header of TCP or UDP if the signature search result is unsuccessful, adding a time stamp using a time synchronization signal, and storing the processed acquisition data in a PCI output buffer;
e) 상기 시그너쳐 모드가 꺼져 있거나 상기 시그너쳐 검색 결과가 성공일 경우, 미리 정해진 수집 길이 이후의 IP 패킷 부분을 버리고 시각 동기화 신호를 이용하여 타임 스탬프를 추가한 후, PCI 출력 버퍼에 처리된 수집 데이터를 저장하는 단계; 및e) If the signature mode is off or the signature search result is successful, discard the portion of the IP packet after a predetermined acquisition length, add a time stamp using a time synchronization signal, and then process the collected data into the PCI output buffer. Storing; And
f) 상기 저장된 최종 수집 데이터가 정해진 크기의 양에 도달했을 경우, DMA(Direct Memory Access) 인터럽트를 호출하여 PCI 버스를 통해 시스템 메모리로 전달하는 단계f) invoking a direct memory access (DMA) interrupt to the system memory via the PCI bus when the last collected stored data reaches a predetermined amount;
를 포함하는 것을 특징으로 한다.Characterized in that it comprises a.
이하, 첨부된 도면을 참조하여, 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 장치 및 그 방법을 상세히 설명한다.Hereinafter, an IP packet collecting device having a sampling and signature search function and a method thereof according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
본 발명의 실시예는 고속 회선의 측정에 따르는 기술적인 문제점을 해결하도록, 샘플링과 시그너쳐 검색 기능을 포함하는 수집 장치의 일반적인 구성과 방법을 정의하며, 또한, 패킷 샘플링과 플로우 샘플링에 대한 방법을 정의하고, L4 패킷의 페이로드 안의 특정 시그너쳐를 검색하는 방법에 대하여 정의한다.Embodiments of the present invention define a general configuration and method of a collection device including sampling and signature retrieval functions, and also define methods for packet sampling and flow sampling, in order to solve the technical problems of measuring high-speed lines. Then, a method of searching for a specific signature in the payload of the L4 packet is defined.
또한, 본 발명의 실시예는 상기의 방법들을 하드웨어로 구현함으로써, 다양한 기능과 최적의 성능을 보장할 수 있는 모니터링 수집 전용 장치와 그 방법을 개시한다.In addition, an embodiment of the present invention discloses an apparatus and method for monitoring collection dedicated to ensure various functions and optimal performance by implementing the above methods in hardware.
한편, 도 1은 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 장치의 블록 구성도이다.FIG. 1 is a block diagram illustrating an IP packet collection apparatus having a sampling and signature search function according to an exemplary embodiment of the present invention.
도 1을 참조하면, 본 발명의 실시예에 따른 IP 패킷 수집 장치(100)는, 부터(Booter: 110), 네트워크 인터페이스 접속부(120), L2 프레임 생성부(130), 입력 프레임 저장부(140), 시그너쳐 검색부(150), 중앙 패킷 처리부(160), GPS/CDMA 시각 신호 접속부(170), 수집 패킷 저장부(180) 및 PCI 버스 제어부(190)를 포함할 수 있고, 또한, SDRAM(Synchronous Dynamic Random Access Memory) 메모리(151) 및 TCAM(Ternary Content Addressable Memory) 메모리(152)를 추가로 포함할 수 있다.Referring to FIG. 1, the IP
먼저, 상기 네트워크 인터페이스 접속부(120)는 물리적인 회선으로부터 비트 스트림을 생성한다.First, the
상기 GPS/CDMA 시각 신호 접속부(170)는 GPS 또는 CDMA 시간 정보를 RJ45 포트를 통해 입력받아서 정밀한 타임 스탬프를 생성할 수 있다.The GPS / CDMA visual
상기 L2 프레임 생성부(130)는 상기 네트워크 접속부(120)로부터 트래픽을 입력받아서 L2 링크 계층의 프레임을 생성한다.The
상기 입력 프레임 저장부(140)는 상기 L2 프레임 생성부(130)가 생성한 프레임 데이터를 저장하며, FIFO(First In First Out) 버퍼로 구현된다.The input
상기 시그너쳐 검색부(150)는 상기 입력 프레임 저장부(140)로부터 하나의 프레임을 입력받아 L2 헤더 및 IP 헤더 그리고 TCP나 UDP와 같은 L4 헤더와 페이로드를 구분한 후에, 각 L4 프로토콜에 따라 정의된 시그너쳐 검색 규칙(rule)을 참조하여 시그너쳐 검색을 수행하며, FPGA로 구현될 수 있다.The
여기서, 상기 SDRAM 메모리(151)는 상기 시그너쳐 검색에 사용될 규칙을 저장하며, 또한, 상기 TCAM 메모리(152)는 상기 시그너쳐 검색부(150)가 특정 패턴의 존재 유무를 결정하는데 필요한 메모리이다.Here, the
또한, 상기 중앙 패킷 처리부(160)는 상기 입력 프레임 저장부(140)로부터 하나의 프레임을 입력받아 L2 헤더 및 IP 헤더 그리고 TCP나 UDP와 같은 L4 헤더와 페이로드를 구분한 후에, IP 패킷인지를 검사하고 IP 패킷에 대해서 샘플링 모드에 따라 샘플링 과정을 수행한다. 이때, 그 결과가 성공인 패킷에 대해서만 다시 시그너쳐 검색 모드가 켜져 있으면 상기의 시그너쳐 검색부(150)의 결과에 따라 만약 실패일 경우에는 페이로드를 버리고 성공일 경우에는 정해진 수집 크기에 따라 패킷을 처리하며, 상기 GPS/CDMA 시각 신호 접속부(170)로부터 시간 정보를 입력받아 타임 스탬프와 함께 최종적으로 IP 패킷에 대한 수집 데이터를 생성하여 PCI 출력 버퍼에 저장한다.In addition, the central
상기 수집 패킷 저장부(180)는 상기 중앙 패킷 처리부(160)에 의해 생성된 최종 수집 데이터를 저장하기 위한 것으로, FIFO 버퍼로 구현된다.The collected
상기 PCI 버스 제어부(190)는 상기 수집 패킷 저장부(180)에 저장된 처리된 수집 데이터가 일정 크기의 양이 되면 DMA 인터럽트를 단 한번 호출하여 시스템 메모리로 전달하는 역할을 한다.The
상기 부터(110)는 수집 장치(100)의 모든 설정값들을 초기화하는 역할을 한다.From 110 serves to initialize all the set values of the collection device (100).
구체적으로, 본 발명의 실시예에 따른 IP 패킷 수집 장치(100)에 있어서, 네트워크 인터페이스 접속부(120)는 인터넷 고속 회선이 가능한 모든 종류의 물리적인 링크와 신호 프로토콜을 포함한다.Specifically, in the IP
예를 들면, 가능한 케이블 회선은 UTP(Unshield Twisted Pair) 케이블, 광(optical) 케이블 형태이며, 물리적인 신호 프로토콜과 속도는 Giga 이더넷, ATM(Asynchronous Transfer Mode), 그리고 OC(Optical Carrier)-12/48/192/768 등이 있다.For example, possible cable lines are in the form of Unshield Twisted Pair (UTP) cables, optical cables, and the physical signal protocols and speeds are Giga Ethernet, Asynchronous Transfer Mode (ATM), and Optical Carrier (OC) -12 /. 48/192/768, etc.
한편, 도 2는 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 방법의 동작 흐름도이다.2 is a flowchart illustrating a method of collecting an IP packet having a sampling and signature search function according to an embodiment of the present invention.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 방법은, 먼저, 전원이 공급되면 Booter(110)에 의해 장치의 모든 설정값들을 초기화(S201)하고, 이후, 디바이스 드라이버에 의해서 업(up)이 되면 패킷 대기 상태(S202)로 이동한다.1 and 2, an IP packet collection method having a sampling and signature retrieval function according to an embodiment of the present invention, first, initializes all setting values of a device by a
다음으로, 상기 패킷 대기 상태(S202)에서 네트워크 인터페이스 접속부(120)로부터 비트 스트림이 들어오면, 상기 L2 프레임 생성부(130)가 입력 프레임을 생성한 후에 입력 프레임 저장부(140)에 삽입한다(S203).Next, when the bit stream comes from the network
다음으로, 상기 입력 프레임 저장부(140)에 하나의 프레임이 들어오면 인터넷 회선의 인터페이스의 종류에 따라 L2 프레임 헤더와 IP 헤더를 분류한다(S204).Next, when one frame enters the input
다음으로, 입력 프레임이 IP 패킷인지 여부를 확인하여(S205), 만약 입력 프레임이 IP 패킷이 아니면 상기 패킷 대기 상태(S202)로 이동하고, IP 패킷에 대해서만 알고리즘을 계속 진행한다.Next, it is checked whether the input frame is an IP packet (S205), and if the input frame is not an IP packet, the process moves to the packet waiting state (S202), and the algorithm continues for only the IP packet.
다음으로, 상기 입력 프레임이 IP 패킷인 경우, 샘플링 모드가 켜져 있는지를 검사하고(S206), 샘플링 모드가 켜져 있는 경우, 샘플링 모드 유형이 Cyclic, Random, Hash 중에 하나이면 해당하는 유형에 따라 샘플링을 수행한다(S207).Next, when the input frame is an IP packet, it is checked whether a sampling mode is turned on (S206). When the sampling mode is turned on, if the sampling mode type is one of Cyclic, Random, and Hash, sampling is performed according to a corresponding type. It performs (S207).
이때, 상기 샘플링 수행 결과가 성공인지 확인하여(S208), 만일 샘플링 수행 결과가 실패이면 전술한 패킷 대기 상태(S202)로 이동하고, 만일 샘플링 수행 결과가 성공이면 다음 시그너쳐 검색 모드를 비교하는 부분(S209)으로 진행한다.In this case, it is checked whether the sampling performance is successful (S208). If the sampling performance is unsuccessful, the process moves to the aforementioned packet waiting state (S202), and if the sampling performance is successful, comparing the next signature search mode ( S209).
다음으로, 전술한 S206 단계에서 샘플링 기능이 꺼져 있거나, 또는 전술한 S208 과정에서 샘플링 수행 결과가 성공일 경우, 시그너쳐 검색 모드를 검사한다(S209).Next, when the sampling function is turned off in the above-described step S206 or the sampling execution result is successful in the above-described step S208, the signature search mode is checked (S209).
만약, 시그너쳐 검색 모드가 켜져 있으면 TCP나 UDP와 같은 L4 프로토콜에 따라 정해진 시그너쳐 검색 과정을 수행한다(S210). 이후, 시그너쳐 검색이 성공인 여부를 확인하여(S211), 상기 시그너쳐 검색 수행 결과가 실패이면, 후술할 S213 단계로 이동하고, 만일 시그너쳐 검색 수행 결과가 성공이면 다음의 S212 단계로 이동한다.If the signature search mode is turned on, the signature search process is performed according to the L4 protocol such as TCP or UDP (S210). Thereafter, it is checked whether the signature search is successful (S211). If the signature search execution result is unsuccessful, the procedure proceeds to step S213 which will be described later. If the signature search execution result is successful, the process moves to the next step S212.
만약, 전술한 S211 단계에서 시그너쳐 검색 수행 결과가 실패이면, TCP나 UDP와 같은 L4 프로토콜의 모든 페이로드 부분을 버리고, IP 헤더를 포함한 L4 헤더까지만 선택하고, 상기 GPS/CDMA 시각 신호 접속부(170)로부터 시간 정보를 입력받아 타임 스탬프를 추가하여, IP 패킷에 대한 최종 수집 정보를 만든 후에 수집 패킷 저장부(180) 출력 버퍼에 저장한다(S213).If the signature search execution fails in step S211 described above, all payload parts of the L4 protocol such as TCP or UDP are discarded, only the L4 header including the IP header is selected, and the GPS / CDMA visual
그렇지 않고, 만약 상기 S209 단계에서 시그너쳐 모드가 꺼져 있거나, 또는 상기 S211 단계에서 시그너쳐 검색 결과가 성공일 경우, 미리 정해진 IP 패킷 수집 길이 이후의 페이로드 부분을 버리고 상기 GPS/CDMA 시각 신호 접속부(170)로부터 시간 정보를 입력받아 타임 스탬프를 추가하여 IP 패킷에 대한 최종 수집 정보를 만든 후에 상기 수집 패킷 저장부(180)의 출력 버퍼에 저장한다(S212).Otherwise, if the signature mode is turned off in step S209 or the signature search result is successful in step S211, the payload portion after the predetermined IP packet collection length is discarded and the GPS / CDMA visual
이와 같이, 전술한 S212 및 S213 단계에서 저장된 최종 수집 데이터는 PCI 버스 제어부(190)에 의해서 일정 양의 처리된 수집 데이터가 모아지면, 한번의 DMA 인터럽트를 호출하여 시스템의 커널 메모리로 패킷이 전달된다(S214).As such, when the collected data stored in the above-described steps S212 and S213 are collected by the
한편, 도 3 및 도 4를 참조하여, 전술한 S207 단계의 샘플링 방법 및 S210 단계의 시그너쳐 검색 방법을 각각 구체적으로 설명한다.3 and 4, the above-described sampling method of step S207 and the signature search method of step S210 will be described in detail.
도 3은 본 발명의 실시예에 따른 샘플링 방법을 나타내는 구체적인 동작 흐름도이다.3 is a detailed operation flowchart illustrating a sampling method according to an embodiment of the present invention.
도 3을 참조하면, 본 발명의 실시예에 따른 샘플링(S207) 방법은, 먼저 샘플링 유형을 비교한다(S207-1).Referring to FIG. 3, the sampling method according to an embodiment of the present invention first compares sampling types (S207-1).
만약, 샘플링 모드 유형이 주기적(Cyclic)이면 현재의 입력 패킷 개수를 나타내는 InPktCnt 내부 변수를 하나 증가시킨다(S207-2). 이후, 이 InPktCnt 값과 미리 지정된 샘플링할 패킷 수인 Cyclic_N의 값을 비교하여(S207-5) 두 값이 다르면 검색 결과를 실패로 결정하고(S207-10), 만일 InPktCnt 값과 Cyclic_N의 값이 같으면 InPktCnt 값을 0으로 초기화(S207-8)하고, 샘플링 결과를 성공으로 결정한다(S207-9).If the sampling mode type is cyclic, the InPktCnt internal variable representing the current number of input packets is increased by one (S207-2). Then, this InPktCnt value is compared with the value of Cyclic_N, which is a predetermined number of packets to be sampled (S207-5), and if the two values are different, the search result is determined to be failed (S207-10). The value is initialized to 0 (S207-8), and the sampling result is determined to be successful (S207-9).
만약 샘플링 모드 유형이 랜덤(Random)이면, 균일 분포를 따르는 0과 1사이의 임의의 확률 값을 생성하여 내부 변수 p에 저장한다(S207-3). 이후, 생성된 확률 값 p와 미리 정의되어 샘플링할 확률을 나타내는 Random_P 값과 비교하여(S207-6), 상기 p 값이 Random_P 값보다 크면 샘플링 결과를 실패로 결정하고(S207-10), 그렇지 않고 생성된 확률 값 p가 Random_P 값보다 작거나 같으면 샘플링 결과를 성공으로 결정한다(S207-9).If the sampling mode type is random, a random probability value between 0 and 1 along a uniform distribution is generated and stored in the internal variable p (S207-3). Thereafter, the generated probability value p is compared with a random_P value that is predefined and represents a probability of sampling (S207-6). If the p value is larger than the Random_P value, the sampling result is determined as a failure (S207-10). If the generated probability value p is less than or equal to the Random_P value, the sampling result is determined to be success (S207-9).
만약 샘플링 모드 유형이 Hash이면, 플로우를 구별할 수 있는 키(key) 값들 나타내는 K=(k0, k1, ..., kn-1) 값을 패킷의 헤더로부터 추출한다(S207-4). 이렇게 추출된 키 값들인 K를 미리 정해진 해쉬 함수인 hash(K)에 입력하여 계산하고, 그 결과값을 미리 지정된 샘플링할 해쉬 값의 개수를 나타내는 Hahs_M 값으로 나눈 나머지 값과, 즉 hash(K) % Hash_M, 미리 입력되어 샘플링할 결과값을 나타내는 Hash_N과 비교한다(S207-7). 앞의 두 값의 비교 결과가 같으면 샘플링 검색 결과를 성공으로 결정하고(S207-9), 만일 두 값의 비교 결과가 다르면 샘플링 검색 결과를 실패로 결정한다(S207-10).If the sampling mode type is Hash, a value of K = (k 0 , k 1 , ..., k n-1 ) representing key values that can distinguish the flow is extracted from the header of the packet (S207-4). ). The extracted key values K are calculated by inputting them into hash (K), which is a predetermined hash function, and the result is divided by a Hahs_M value representing a predetermined number of hash values to be sampled, that is, hash (K). % Hash_M is compared with Hash_N indicating a result value to be input and sampled in advance (S207-7). If the comparison result of the previous two values is the same, the sampling search result is determined as success (S207-9). If the comparison result of the two values is different, the sampling search result is determined as failure (S207-10).
본 발명의 실시예에 따르는 샘플링 방법에서 샘플링 모드 유형이 Cyclic 또는 Random인 경우는 패킷 샘플링에 해당하고, Hash인 경우에는 플로우 샘플링에 해당한다.In the sampling method according to the embodiment of the present invention, when the sampling mode type is Cyclic or Random, it corresponds to packet sampling, and when Hash, it corresponds to flow sampling.
특히, 플로우 샘플링에서는 플로우 속성을 구별해 주는 키 값들인 K의 선택과 플로우가 샘플링 시에 균일하게 적용되기 위해서는 값의 분포가 거의 균일하게 계산되면서 빠르고 간단한 hash(K) 함수의 사용이 필요하다.In particular, in flow sampling, the selection of K, the key values that distinguish flow attributes, and the uniform distribution of values are required to use the fast and simple hash (K) function in order for the flow to be uniformly applied during sampling.
본 발명의 실시예에 다른 K와 hash(K)는 일반적인 대부분의 적용 가능한 K와 hash(K)의 경우를 포함한다. 예를 들면, 플로우를 구별하는 키 값들은 IP 패킷의 IP 헤더와 TCP나 UDP 헤더로부터 추출 가능하며, 그 예로는 K = (소스 IP 주소, 목적지 IP 주소, 프로토콜 번호, 소스 포트 번호, 목적지 포트 번호)와 같이 정의할 수 있다. 또한, 상기 해쉬 함수는 H(k) = (소스 IP 주소 + 목적지 IP 주소 + 프로토콜 번호 + 소스 포트 번호 + (목적지 포트 번호<<16))와 같이 정의할 수 있다.Other K's and hash (K) 's in the embodiments of the present invention include the general case of most applicable K's and hash (K). For example, key values that distinguish flows can be extracted from the IP header and TCP or UDP header of an IP packet, for example, K = (source IP address, destination IP address, protocol number, source port number, destination port number. Can be defined as In addition, the hash function may be defined as H (k) = (source IP address + destination IP address + protocol number + source port number + (destination port number << 16)).
한편, 도 4는 본 발명의 실시예에 따른 시그너쳐 검색 방법을 나타내는 구체적인 동작 흐름도이다.4 is a detailed flowchart illustrating a signature searching method according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 실시예에 따른 시그너쳐 검색(S210) 방법은, 먼저 입력 패킷의 L4 프로토콜 유형을 비교한다(S210-1).Referring to FIG. 4, the signature search method according to an embodiment of the present invention first compares an L4 protocol type of an input packet (S210-1).
만약 L4 프로토콜 유형이 TCP나 UDP이면, 소스 포트 또는 목적지 포트에 대한 지정된 시그너쳐 검색 규칙(rule)이 있는지 검사하여(S210-2), 상기 시그너쳐 검색 규칙이 존재하면, 검색할 페이로드의 시작 위치에서 끝 위치 사이에 시그너쳐가 존재하는지 검색을 수행한다(S210-4).If the L4 protocol type is TCP or UDP, it is checked whether there is a specified signature search rule for the source port or the destination port (S210-2), and if the signature search rule exists, at the start position of the payload to be searched. A search is performed to see whether a signature exists between end positions (S210-4).
앞의 검색 수행 결과 상기 시그너쳐가 존재하는지 확인하여(S210-7), 상기 시그너쳐가 존재하는 경우, 시그너쳐 검색 결과를 성공으로 결정하고(S210-10), 그렇지 않으면 다시 S210-2 단계로 이동한다.As a result of the previous search, it is checked whether the signature exists (S210-7). If the signature exists, the signature search result is determined to be successful (S210-10).
그렇지 않고 S210-2 단계에서 소스 또는 목적지 포트에 대한 시그너쳐 검색 규칙이 더 이상 존재하지 않으면 임의의(any) 포트에 대한 시그너쳐 검색 규칙이 존재하는지를 검사한다(S210-3). 만약 S210-3 단계에서 시그너쳐 검색 규칙이 존재하면, 검색할 페이로드의 시작 위치에서 끝 위치 사이에 시그너쳐가 존재하는지 검색을 수행한다(S210-5).Otherwise, if the signature search rule for the source or destination port no longer exists in step S210-2, it is checked whether the signature search rule for any port exists (S210-3). If there is a signature search rule in step S210-3, a search is performed to see whether a signature exists between the start position and the end position of the payload to be searched (S210-5).
앞의 검색 수행 결과 상기 시그너쳐가 존재하는지 확인하여(S210-8), 상기 시그너쳐가 존재하는 경우, 시그너쳐 검색 결과를 성공으로 결정하고(S210-10), 그렇지 않으면 다시 S210-3 단계로 이동한다. 그렇지 않고 만약 S210-3 단계에서 임의의(any) 포트에 대한 시그너쳐 검색 규칙이 더 이상 존재하지 않으면, 시그너쳐 검색 결과를 실패로 결정한다(S210-11).As a result of the previous search, it is checked whether the signature exists (S210-8). If the signature exists, the signature search result is determined to be successful (S210-10), otherwise, the process proceeds to S210-3 again. Otherwise, if the signature search rule for any port no longer exists in step S210-3, the signature search result is determined to fail (S210-11).
만약 S210-1 단계에서, L4 프로토콜 유형이 TCP나 UDP가 아닌 경우, 각 해당 프로토콜에 정해진 검색 규칙에 따라 시그너쳐가 존재하는지 검색을 수행한다(S210-6). 만약, 앞의 검색 수행 결과 시그너쳐가 존재하는지 확인하여(S210-9), 상기 시그너쳐가 존재하는 경우, 시그너쳐 검색 결과를 성공으로 결정하고(S210-10), 그렇지 않으면 검색 결과를 실패로 결정한다(S210-11).If the L4 protocol type is not TCP or UDP in step S210-1, a search is performed to see whether a signature exists according to a search rule defined for each corresponding protocol (S210-6). If the signature check result is present (S210-9), if the signature exists, the signature search result is determined as success (S210-10), otherwise the search result is determined as failure (S210-9). S210-11).
본 발명의 실시예에 따른 시그너쳐 검색 방법에 있어서, 시그너쳐 검색 규칙의 한 예를 들면, <적용 프로토콜, 포트 번호, 검색 시작 위치, 검색 끝 위치, 시그너쳐 길이, 시그너쳐>와 같이 정의할 수 있다.In the signature retrieval method according to an embodiment of the present invention, one example of the signature retrieval rule may be defined as <application protocol, port number, retrieval start position, retrieval end position, signature length, signature>.
이때, 적용 프로토콜은 TCP 소스, TCP 목적지, UDP 소스, UDP 목적지로 구분할 수 있으며, 포트 번호가 0번일 경우는 임의의 포트 번호이고, 그 외에는 해당 포트 번호를 의미하며, 검색할 페이로드의 시작과 끝 위치, 검색할 시그너쳐의 길이와 실제 패턴으로 구성될 수 있다. 또한, TCP나 UDP가 아닌 다른 L4 프로토콜에 대해서는 각 프로토콜에 따라 시그너쳐 검색 규칙을 따로 적용할 수 있다.In this case, the applied protocol can be classified into TCP source, TCP destination, UDP source, and UDP destination. If the port number is 0, it is an arbitrary port number. Otherwise, it means the corresponding port number. It can consist of the end position, the length of the signature to retrieve and the actual pattern. In addition, for L4 protocols other than TCP or UDP, signature search rules may be applied separately according to each protocol.
본 발명의 실시예에서 입력 패킷과 최종 처리된 수집 패킷을 저장하기 위한 버퍼로 FIFO를 사용하였으나, 다른 버퍼 소자를 사용할 수도 있으며, 시그너쳐 검색 규칙을 저장하기 위해서 SDRAM을 사용하였으나 다른 저장 메모리를 사용할 수도 있다.In the embodiment of the present invention, although the FIFO is used as a buffer for storing the input packet and the last processed acquisition packet, another buffer element may be used, and an SDRAM is used to store the signature search rule, but another storage memory may be used. have.
또한, 시그너쳐 검색부 FPGA가 특정 패턴이 존재하는지 결정하는데 필요한 메모리 종류로 TCAM을 사용하였으나, 유사한 기능의 다른 종류의 메모리를 사용할 수도 있다. 또한, 샘플링 기능과 시그너쳐 검색 기능 중에 필요에 따라 하나의 기능만을 이용하여 수집 장치를 제작할 수도 있다.In addition, although the signature search unit FPGA uses TCAM as a memory type required to determine whether a specific pattern exists, other types of memory having similar functions may be used. In addition, a collection device may be manufactured using only one function, as needed, among the sampling function and the signature search function.
결국, 본 발명의 실시예는, 고속의 인터넷 회선으로부터 IP 패킷을 수집하고자 할 경우에 패킷 및 플로우 샘플링을 통하여 수집된 데이터 양을 줄이고 TCP(Transmission Control Protocol)나 UDP(User Datagram Protocol)와 같은 L4 패킷의 페이로드(payload)에서 특정 응용 패턴을 나타내는 시그너쳐를 검색하여 불필요한 페이로드 부분을 버림으로써, PCI(Peripheral Component Interconnect)를 통해 전달되는 데이터 양을 최소화하게 된다. 특히, 플로우 샘플링은 지정된 플로우에 해당하는 모든 패킷들을 추출할 수 있도록 함으로써 트래픽 분석 시스템이 보다 정확하게 응용 플로우들에 대하여 분석할 수 있다.As a result, embodiments of the present invention reduce the amount of data collected through packet and flow sampling and collect L4, such as Transmission Control Protocol (TCP) or User Datagram Protocol (UDP), when attempting to collect IP packets from a high-speed Internet circuit. By retrieving a signature representing a specific application pattern from the payload of the packet and discarding the unnecessary payload part, the amount of data transmitted through the Peripheral Component Interconnect (PCI) is minimized. In particular, flow sampling enables the traffic analysis system to analyze application flows more accurately by allowing all packets corresponding to a given flow to be extracted.
또한, 본 발명의 실시예는 상기 샘플링과 시그너쳐 검색 기능을 구비한 IP 패킷 수집 방법의 모든 단계, 상기의 샘플링 수행 방법의 모든 단계, 그리고 상기의 시그너쳐 검색 수행 방법에 포함되는 모든 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공할 수 있다.Also, an embodiment of the present invention provides a method for executing all steps of the IP packet collection method including the sampling and signature retrieval functions, all the steps of the sampling retrieval method, and all the steps included in the signature retrieval method. A computer readable recording medium having recorded a program can be provided.
이상의 설명에서 본 발명은 특정의 실시예와 관련하여 도시 및 설명하였지만, 특허청구범위에 의해 나타난 발명의 사상 및 영역으로부터 벗어나지 않는 한도 내에서 다양한 개조 및 변화가 가능하다는 것을 당업계에서 통상의 지식을 가진 자라면 누구나 쉽게 알 수 있을 것이다.While the invention has been shown and described in connection with specific embodiments thereof, it will be appreciated that various modifications and changes can be made without departing from the spirit and scope of the invention as indicated by the claims. Anyone who owns it can easily find out.
본 발명에 따르면, 고속의 인터넷 회선으로부터 샘플링과 시그너쳐 검색 기 능을 포함한 IP 패킷 수집 장치를 제작할 경우에, GPS나 CDMA를 이용하여 시각 동기화를 수행하여 정밀한 타임 스탬프를 생성할 수 있고, 기존의 분석 소프트웨어서 수행되었던 패킷 샘플링과 플로우 샘플링 그리고 많은 컴퓨터 자원을 필요로 하는 시그너쳐 검색 기능을 하드웨어로 구현함으로써 보다 적은 CPU 자원을 사용하여 고속의 회선으로부터 발생하는 패킷을 수집하는데 필요한 다양한 기능을 빠르게 제공할 수 있다.According to the present invention, when manufacturing an IP packet collection device including sampling and signature retrieval functions from a high-speed Internet line, time synchronization can be performed using GPS or CDMA to generate precise time stamps, and existing analysis By implementing the packet sampling, flow sampling, and signature retrieval functions that require a lot of computer resources in software, the hardware can quickly provide the various functions needed to collect packets from high-speed lines using less CPU resources. have.
또한, 본 발명에 따르면, 플로우 샘플링은 응용 플로우에 해당하는 모든 패킷들을 수집할 수 있기 때문에 기존의 패킷 샘플링에서의 플로우별 분석에 있어서 부정확성 문제를 해결할 수 있으며, 특히, TCP나 UDP와 같은 L4 프로토콜에 따라 시그너쳐 검색 규칙을 적용하여 시그너쳐 검색만을 전담으로 수행하는 부분을 FPGA로 따로 구현함에 따라 속도를 향상시키고 최종적으로 처리되어 수집된 데이터 양을 최소화시킬 수 있다.In addition, according to the present invention, since the flow sampling can collect all packets corresponding to the application flow, it is possible to solve the inaccuracy problem in the flow analysis in the existing packet sampling, and in particular, L4 protocol such as TCP or UDP. By applying signature search rules, the FPGA can implement the part dedicated to signature search only to improve the speed and minimize the amount of data finally processed and collected.
또한, 본 발명에 따르면, 처리된 수집 데이터가 일정 양에 도달할 경우에만 DMA 인터럽트 호출을 하여 시스템 메모리로 데이터를 전달하기 때문에 CPU 자원을 효율적으로 사용할 수 있다.In addition, according to the present invention, CPU resources can be efficiently used because the DMA interrupt calls are transferred to the system memory only when the collected data reaches a predetermined amount.
또한, 본 발명에 따르면, 고속의 회선으로부터 샘플링과 시그너쳐 검색 기능이 가능하여 범용 PC나 서버가 실시간으로 패킷을 수집하여 분석할 수 있을 뿐만 아니라, 바이러스 침입 경고, DDoS(Distributed Denial of Service) 공격 탐지, 실시간 QoS 보장, NIDS(Network Intrusion Detection System), 트래픽 관리 등에 필요한 저비용의 고속 인터넷 회선 모니터링 시스템을 구축할 수 있다.In addition, according to the present invention, sampling and signature retrieval functions are possible from a high-speed line, so that a general-purpose PC or server can collect and analyze packets in real time, as well as detect virus intrusion alerts and distributed denial of service attacks. You can build a low-cost, high-speed Internet line monitoring system for real-time QoS assurance, Network Intrusion Detection System (NIDS), and traffic management.
Claims (14)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20040101957 | 2004-12-06 | ||
KR1020040101957 | 2004-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060063564A KR20060063564A (en) | 2006-06-12 |
KR100608541B1 true KR100608541B1 (en) | 2006-08-03 |
Family
ID=37159539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050032363A KR100608541B1 (en) | 2004-12-06 | 2005-04-19 | An apparatus for capturing Internet ProtocolIP packet with sampling and signature searching function, and a method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100608541B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100895102B1 (en) | 2007-05-21 | 2009-04-28 | 한국전자통신연구원 | System and method detection of a file |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100869887B1 (en) * | 2007-06-13 | 2008-11-24 | 주식회사 케이티 | Traffic identification system and method with analysis on signature of packets |
KR100901696B1 (en) | 2007-07-04 | 2009-06-08 | 한국전자통신연구원 | Apparatus of content-based Sampling for Security events and method thereof |
KR100951930B1 (en) * | 2007-11-19 | 2010-04-09 | (주) 시스메이트 | Method and Apparatus for classificating Harmful Packet |
US8336098B2 (en) | 2009-03-25 | 2012-12-18 | Sysmate Co., Ltd. | Method and apparatus for classifying harmful packet |
WO2016175846A1 (en) * | 2015-04-30 | 2016-11-03 | Hewlett Packard Enterprise Development Lp | Extracting data from network communications |
-
2005
- 2005-04-19 KR KR1020050032363A patent/KR100608541B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100895102B1 (en) | 2007-05-21 | 2009-04-28 | 한국전자통신연구원 | System and method detection of a file |
Also Published As
Publication number | Publication date |
---|---|
KR20060063564A (en) | 2006-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108701187B (en) | Apparatus and method for hybrid hardware-software distributed threat analysis | |
US8065722B2 (en) | Semantically-aware network intrusion signature generator | |
EP1788490B1 (en) | Method and apparatus for monitoring traffic in a network | |
US8180916B1 (en) | System and method for identifying network applications based on packet content signatures | |
US8010685B2 (en) | Method and apparatus for content classification | |
US10097464B1 (en) | Sampling based on large flow detection for network visibility monitoring | |
US7602780B2 (en) | Scalably detecting and blocking signatures at high speeds | |
US9100319B2 (en) | Context-aware pattern matching accelerator | |
EP2868045B1 (en) | A method of and network server for detecting data patterns in an input data stream | |
US9979624B1 (en) | Large flow detection for network visibility monitoring | |
US10536360B1 (en) | Counters for large flow detection | |
KR100608541B1 (en) | An apparatus for capturing Internet ProtocolIP packet with sampling and signature searching function, and a method thereof | |
US10003515B1 (en) | Network visibility monitoring | |
KR20110070464A (en) | Apparatus for capturing traffic and apparatus, system and method for analyzing traffic | |
US20170295068A1 (en) | Logical network topology analyzer | |
KR101602189B1 (en) | traffic analysis and network monitoring system by packet capturing of 10-giga bit data | |
EP3364601A1 (en) | Testing method, device and system | |
WO2023103231A1 (en) | Low-rate ddos attack detection method and system, and related device | |
EP3065343B1 (en) | Network monitoring method and apparatus, and packet filtering method and apparatus | |
CN107864110B (en) | Botnet main control terminal detection method and device | |
Wu et al. | Bcac: Batch classifier based on agglomerative clustering for traffic classification in a backbone network | |
CN114710444A (en) | Data center flow statistical method and system based on tower abstract and evictable flow table | |
Hao et al. | Fast payload-based flow estimation for traffic monitoring and network security | |
AU2004201907B2 (en) | A searching apparatus and method | |
Park et al. | A lightweight software model for signature-based application-level traffic classification system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120710 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130624 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |