KR20230142957A - 고속 패킷 검색 방법 및 장치 - Google Patents
고속 패킷 검색 방법 및 장치 Download PDFInfo
- Publication number
- KR20230142957A KR20230142957A KR1020220041642A KR20220041642A KR20230142957A KR 20230142957 A KR20230142957 A KR 20230142957A KR 1020220041642 A KR1020220041642 A KR 1020220041642A KR 20220041642 A KR20220041642 A KR 20220041642A KR 20230142957 A KR20230142957 A KR 20230142957A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- index
- field
- recorded
- node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000001186 cumulative effect Effects 0.000 claims description 9
- 230000009191 jumping Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
- G06F16/902—Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/695—Types of network addresses using masks or ranges of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 개시의 일 실시 예에 따른 고속 패킷 검색 방법은 네트워크에서 수집된 패킷들 중에서 검색 조건에 해당하는 패킷을 고속으로 검색하는 방법에 있어서, 상기 검색 조건에 특화된 데이터를 생성하여 데이터베이스에 저장하는 단계; 및 상기 검색 조건이 입력되면, 상기 저장된 데이터에 기초하여, 상기 입력된 검색 조건에 해당하는 패킷을 검색하는 단계를 포함한다.
Description
본 개시는 고속 패킷 검색 방법 및 장치에 관한 것이다. 더욱 상세하게는 풀 패킷 분석 기반의 네트워크 탐지 및 대응(Network Detection and Response) 기술이 적용된 환경에서 검색 조건에 해당하는 패킷을 고속으로 검색할 수 있는 방법 및 장치에 관한 것이다.
풀 패킷 수집 및 분석 기반의 네트워크 탐지 및 대응 기술(Network Detection and Response)은 기업의 네트워크를 통해 들어오고 나가는 모든 패킷을 고속으로 수집 및 분석해 위협을 발견하고 대응할 수 있는 기술이다.
풀 패킷 수집 및 분석 기반의 네트워크 탐지 및 대응 기술에 따르면, 기업의 내부 직원에 의한 비정상적인 행위 분석은 물론 기업에서 운영하고 있는 서비스에서 발생할 수 있는 보안위협 분석까지 가능하다.
이러한 장점에도 불구하고 풀 패킷(full packet)이라는 대량의 데이터에서 원하는 패킷을 검색하는데에는 여전히 상당한 시간이 소요되고 있는 실정이다.
본 개시가 해결하고자 하는 과제는 풀 패킷이라는 대량의 데이터에서 검색 조건에 해당하는 패킷을 고속으로 검색할 수 있는 패킷 고속 검색 방법 및 장치를 제공하는 것이다.
본 개시가 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위하여, 본 개시의 일 실시 예에 따른 고속 패킷 검색 방법은, 네트워크에서 수집된 패킷들 중에서 검색 조건에 해당하는 패킷을 고속으로 검색하는 방법에 있어서, 상기 검색 조건에 특화된 데이터를 생성하여 데이터베이스에 저장하는 단계; 및 상기 저장된 데이터에 기초하여, 입력된 검색 조건에 해당하는 패킷을 검색하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시의 실시 예들에 따르면, 풀 패킷이라는 대량의 데이터에서 검색 조건에 해당하는 패킷을 고속으로 검색할 수 있으므로, 기업의 보안 관리자가 사이버 공격을 인지하고 대응하는데 소요되는 시간을 단축시킬 수 있다.
본 개시의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 실시 예에 따른 고속 패킷 검색 장치의 구성을 도시한 도면이다.
도 2는 본 개시의 실시 예에 따른 메타 테이블을 예시한 도면이다.
도 3은 본 개시의 실시 예에 따른 메타 디스크립션 테이블을 예시한 도면이다.
도 4는 본 개시의 실시 예에 따른 IP 인덱스 테이블을 예시한 도면이다.
도 5는 도 4의 IP 인덱스 테이블을 이용한 검색 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 실시 예에 따른 LPM 테이블을 예시한 도면이다.
도 7은 본 개시의 실시 예에 따른 URL 및 URL의 상수화된 값을 포함하는 변환 테이블을 예시한 도면이다.
도 8은 본 개시의 실시 예에 따른 해시 테이블을 예시한 도면이다.
도 9는 본 개시의 실시 예에 따른 고속 패킷 검색 방법을 도시한 순서도이다.
도 2는 본 개시의 실시 예에 따른 메타 테이블을 예시한 도면이다.
도 3은 본 개시의 실시 예에 따른 메타 디스크립션 테이블을 예시한 도면이다.
도 4는 본 개시의 실시 예에 따른 IP 인덱스 테이블을 예시한 도면이다.
도 5는 도 4의 IP 인덱스 테이블을 이용한 검색 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 실시 예에 따른 LPM 테이블을 예시한 도면이다.
도 7은 본 개시의 실시 예에 따른 URL 및 URL의 상수화된 값을 포함하는 변환 테이블을 예시한 도면이다.
도 8은 본 개시의 실시 예에 따른 해시 테이블을 예시한 도면이다.
도 9는 본 개시의 실시 예에 따른 고속 패킷 검색 방법을 도시한 순서도이다.
본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시 예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시는 청구항의 범주에 의해 정의될 뿐이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 출입문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 첨부된 도면들을 참조하여 본 개시의 실시 예들을 설명한다. 도면에서 동일한 도면 부호는 동일한 구성요소를 나타낸다.
도 1은 본 개시의 실시 예에 따른 고속 패킷 검색 장치(100)의 구성을 도시한 도면이다.
본 개시의 실시 예에 따른 고속 패킷 검색 장치(100)는 다양한 기능을 갖는 관계형 데이터베이스(RDBMS) 대신 패킷 검색 기능에 특화된 데이터베이스를 사용한다. 특히, IP, 포트, URL, 어플리케이션 및 파일 등의 다양한 검색 조건들 중에서도 IP 및 URL이라는 검색 조건에 특화된 데이터베이스를 사용한다.
도 1을 참조하면, 고속 패킷 검색 장치(100)는 메타 테이블 생성부(110), 메타 디스크립션 테이블 생성부(120), IP 인덱스 테이블 생성부(130), LPM 테이블 생성부(140), 변환 테이블 생성부(150), 해시 테이블 생성부(160), 데이터베이스(170) 및 제어부(180)를 포함한다.
도 1에 도시된 구성요소들 중에서 메타 테이블 생성부(110), 메타 디스크립션 테이블 생성부(120), IP 인덱스 테이블 생성부(130)는 제1 검색 엔진으로써 동작할 수 있다. 제1 검색 엔진은 검색 조건으로써, 기준 개수 미만의 IP가 입력되는 경우, 입력된 IP에 해당하는 패킷을 고속으로 검색하는데 필요한 데이터를 생성하여 데이터베이스(170)에 저장한다.
도 1에 도시된 구성요소들 중에서 메타 테이블 생성부(110) 및 LPM 테이블 생성부(140)는 제2 검색 엔진으로서 동작할 수 있다. 제2 검색 엔진은 검색 조건으로써, 기준 개수 이상의 대량의 IP 리스트가 입력되는 경우, 네트워크에서 수집된 패킷의 IP가 입력된 IP 리스트에 포함되는지의 여부를 고속으로 판단하는데 필요한 데이터를 생성하여 데이터베이스에 저장한다.
도 1에 도시된 구성요소들 중에서 변환 테이블 생성부(150) 및 해시 테이블 생성부(160)는 제3 검색 엔진으로서 동작할 수 있다. 제3 검색 엔진은 검색 조건으로써, URL이 입력되는 경우, 입력된 URL에 해당하는 패킷을 고속으로 검색하는데 필요한 데이터를 생성하여 데이터베이스에 저장한다.
제어부(180)는 입력된 검색 조건의 종류 및/또는 개수를 판단한다. 예를 들면, 입력된 검색 조건이 IP인지, URL인지를 판단한다. 만약 입력된 검색 조건이 IP라면, 기준 개수 미만의 IP가 입력된 것인지, 대량의 IP 리스트가 입력된 것인지를 판단한다. 제어부(180)는 이러한 판단 결과에 기초하여, 데이터베이스(170)에 저장되어 있는 데이터들 중에서 검색에 활용할 데이터를 선택할 수 있다.
이하, 도 1에 도시된 구성요소들에 대해서 좀 더 구체적으로 설명하기로 한다.
메타 테이블 생성부(110)는 수집된 패킷들을 IP를 기준으로 정렬하여 도 2에 예시된 바와 같은 메타 테이블(meta table)을 생성한다. 도 2를 참조하면, IP들이 오름 차순으로 정렬되어 있는 것을 알 수 있으며, 정렬된 IP들에는 메타 테이블 내에서의 위치를 가리키는 번호인 1차 인덱스가 할당되어 있는 것을 알 수 있다. 또한, 메타 테이블은 수집된 패킷들을 IP를 기준으로 모두 정렬한 것이므로, 동일한 IP가 중복되어 나타나는 것을 알 수 있다. 이하, 설명의 편의를 위하여 동일한 IP들로 이루어진 그룹을 '동일 IP 구간'이라 칭한다.
메타 디스크립션 테이블 생성부(120)는 메타 테이블의 각 동일 IP 구간에서 첫 번째에 위치한 IP 및 해당 IP의 1차 인덱스를 추출하여 도 3에 예시된 바와 같은 메타 디스크립션 테이블(meta description table)을 생성한다. 도 3을 참조하면, 각 동일 IP 구간에서 추출된 첫 번째 IP들은 1차 인덱스를 기준으로 정렬되어 있는 것을 알 수 있다. 또한, 정렬된 IP들에는 메타 디스크립션 테이블 내에서의 위치를 가리키는 번호인 2차 인덱스가 할당되어 있는 것을 알 수 있다.
IP 인덱스 테이블 생성부(130)는 메타 디스크립션 테이블에 기초하여 도 4에 예시된 바와 같은 IP 인덱스 테이블을 생성한다. IP 인덱스 테이블은 검색하고자 하는 IP와 관련하여, 메타 디스크립션 테이블 내에서의 2차 인덱스를 빠르게 검색하는데 사용된다.
도 4를 참조하여 IP 인덱스 테이블을 구체적으로 설명하기에 앞서, IP에 대해서 간단히 설명하기로 한다. IP는 IPv4 체계와 IPv6 체계로 나뉜다. IPv4 체계에 따르면, 하나의 IP는 3자리의 숫자가 4 마디로 표시된다. 각 마디는 옥텟(Octect)이라고 부르며, 내부적으로 32 비트(각 마디당 8 비트)로 처리된다. 예를 들어, 192.168.123.123은 11000000.10101000.1111011.1111011 으로 표시된다.
IP는 대역에 따라 A, B, C, D, E 클래스로 나뉜다. A 클래스는 대규모 네트워크 환경에 쓰이며, 첫 번째 마디의 8 비트가 네트워크 ID를 나타내고, 두 번째 내지 네 번째 마디의 24 비트가 호스트 ID를 나타낸다. B 클래스는 중규모 네트워크 환경에 쓰이며, 첫 번째 마디 및 두 번째 마디의 16 비트가 네트워크 ID를 나타내고, 세 번째 마디 및 두 번재 마디의 16 비트가 호스트 ID를 나타낸다. C 클래스는 소규모 네트워크 환경에 쓰이며, 첫 번째 내지 세 번째 마디의 24 비트가 네트워크 ID를 나타내고, 네 번째 마디의 8 비트가 호스트 ID를 나타낸다. D 클래스는 멀티캐스팅용으로 쓰인다. E 클래스는 연구/개발용 혹은 미래에 사용하기 위해 남겨놓은 클래스로 일반적인 용도로 사용되지 않는다. 상술한 바와 같은 IPv4 클래스 분류를 표로 도시하면 표 1과 같다.
[표 1]
도 4를 참조하면, IP 인덱스 테이블의 기본 단위는 네 개의 필드로 구성된다. 구체적으로, 기본 단위는 클래스 필드, 밸류 필드, 인덱스 필드 및 점프 필드를 포함하도록 구성되며, 이러한 기본 단위들이 모여 IP 인덱스 테이블을 형성한다. 각각의 기본 단위에는 IP 인덱스 테이블 내에서의 위치를 나타내는 번호인 3차 인덱스가 할당될 수 있다.
클래스 필드에는 IP의 옥텟의 위치를 나타내는 인덱스가 기록된다. 즉, 각 마디의 위치를 나타내는 인덱스가 기록된다. 예를 들어, C 클래스의 경우, 4개의 마디 중에서 첫 번째 내지 세 번째 마디가 네트워크 아이디를 나타낸다. 따라서, 첫 번째 내지 세 번째 마디를 구분하기 위한 인덱스가 필요하다. 실시 예에 따르면, 첫 번째 마디에 대한 인덱스는 '0'으로 설정되고, 두 번째 마디에 대한 인덱스는 '1'로 설정되고, 세 번째 마디에 대한 인덱스는 '2'로 설정될 수 있다. 다시 말해 Octet 1=0, Octet 2=1, Octet 3=2 인 것으로 이해될 수 있다.
밸류 필드에는 클래스 필드의 인덱스에 대응하는 마디의 값이 기록된다. 예를 들어, 클래스 필드에 0이 기록되어 있다면, 밸류 필드에는 IP의 첫 번째 마디의 값이 기록된다. 만약 클래스 필드에 1이 기록되어 있다면, 밸류 필드에는 IP의 두 번째 마디의 값이 기록된다.
인덱스 필드에는 메타 디스크립션 테이블의 2차 인덱스들 중에서 밸류 필드에 기록되어 있는 값과 관련된 2차 인덱스가 기록된다. 관련된 2차 인덱스가 없는 경우, 인덱스 필드에는 '0'이 기록될 수 있다.
점프 필드에는 밸류 필드에 기록되어 있는 값과 검색하려는 IP의 값이 일치하지 않을 경우, 다음 번으로 비교할 값이 기록되어 있는 기본 단위의 3차 인덱스가 기록된다.
도 4는 각각의 기본 단위들이 수직 방향으로 정렬되어 있는 경우를 도시하고 있으나, 기본 단위들은 가로 방향으로 정렬될 수도 있고, 행렬 형태로 정렬될 수도 있다. 생성된 IP 인덱스 테이블은 데이터베이스에 저장될 수 있다.
도 5는 도 4에 예시된 IP 인덱스 테이블을 이용하여 특정 IP를 검색하는 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 도 4에 예시된 IP 인덱스 테이블의 기본 단위들이 가로 방향으로 나열되어 있는 것을 알 수 있으며, 일부 기본 단위들이 계단식으로 구분되어 있는 것을 알 수 있다.
검색 조건으로써, 1.2.1.1 라는 IP가 입력된 경우를 가정하자. 이 경우, IP 인덱스 테이블에서 3차 인덱스가 '0'인 기본 단위가 가장 먼저 참조된다. IP 인덱스 테이블에서 해당 기본 단위의 클래스 필드 및 밸류 필드에 기록되어 있는 값들을 해석하면 '첫 번째 마디의 값이 1인가'이다. 검색 조건으로 입력된 IP에서 첫 번째 마디의 값은 '1' 이므로, 밸류 필드에 기록되어 있는 값인 '1'과 일치한다. 그런데 참조된 기본 단위의 인덱스 필드에는 '0'이 기록되어 있는 것을 알 수 있다. 이는, 메타 디스크립션 테이블 내에서의 2차 인덱스가 없음을 의미한다. 따라서, 다음 순서의 3차 인덱스가 할당되어 있는 기본 단위가 참조된다. 즉, 3차 인덱스가 '1'인 기본 단위가 참조된다.
참조된 기본 단위의 클래스 필드 및 밸류 필드에 기록되어 있는 값들을 해석하면 '두 번째 마디의 값이 1인가'이다. 검색 조건으로 입력된 IP에서 두 번째 마디의 값은 '2' 이므로, 밸류 필드에 기록되어 있는 값인 '1'과 일치하지 않는다. 이처럼 값이 서로 일치하지 않는 경우에는 참조된 기본 단위의 점프 필드를 확인한다. 점프 필드에는 '4'가 기록되어 있는 것을 알 수 있다. 이는, 3차 인덱스가 '2'인 기본 단위와 '3'인 기본 단위는 건너뛰고, 3차 인덱스가 '4'인 기본 단위로 점프해야함을 의미한다. 그 결과, 3차 인덱스가 '4'인 기본 단위가 참조된다.
참조된 기본 단위의 클래스 필드 및 밸류 필드에 기록되어 있는 값들을 해석하면 '두 번째 마디의 값이 2인가'이다. 검색 조건으로 입력된 IP에서 두 번째 마디의 값은 '2' 이므로, 밸류 필드에 기록되어 있는 값인 '2'와 일치한다. 그런데 참조된 기본 단위의 인덱스 필드에는 '0'이 기록되어 있는 것을 알 수 있다. 이는, 메타 디스크립션 테이블 내에서의 2차 인덱스가 없음을 의미한다. 따라서, 다음 순서의 3차 인덱스가 할당되어 있는 기본 단위가 참조된다. 즉, 3차 인덱스가 '5'인 기본 단위가 참조된다.
참조된 기본 단위의 클래스 필드 및 밸류 필드에 기록되어 있는 값들을 해석하면 '세 번째 마디의 값이 1인가'이다. 검색 조건으로 입력된 IP에서 세 번째 마디의 값은 '1' 이므로, 밸류 필드에 기록되어 있는 값인 '1'과 일치한다. 그런데 참조된 기본 단위의 인덱스 필드에는 '30'이 기록되어 있는 것을 알 수 있다. 이처럼, 인덱스 필드에 기록되어 있는 값이 있는 경우, 해당 값을 획득한다.
이후, 인덱스 필드로부터 획득한 값인 '30'과 동일한 2차 인덱스를 메타 디스크립션 테이블 내에서 검색한다. 그 결과, 2차 인덱스에 대응하는 1차 인덱스를 획득한다. 도 3을 참조하면, 2차 인덱스 '30'에는 1차 인덱스 '200'이 대응되어 있는 것을 알 수 있다. 1차 인덱스가 획득되면, 1차 인덱스에 해당하는 IP 주소들을 기 저장되어 있는 메타 테이블에서 검색할 수 있다.
다시 도 1을 참조하면, LPM 테이블 생성부(140)는 기준 개수 이상의 IP 리스트를 LPM(Longest Prefix Matching) 테이블로 변환한다. LPM 테이블은 가로 방향을 따라 256개의 셀이 배치된다. 이하, 가로 방향을 따라 배치된 256개의 셀을 '기준 행'이라 칭한다. 기준 행에 포함된 256개의 셀에는 0~255의 인덱스가 할당된다(이하, '가로 방향 인덱스'라 칭한다). 각 셀은 0 및 1 중에서 하나의 값을 가질 수 있다. 구체적으로, 기준 행의 셀들 중에서 IP 리스트에 포함되어 있는 IP의 첫 번째 마디의 값과 동일한 가로 방향 인덱스를 가지는 셀은 값이 '1'로 설정된다. 예를 들어, IP 리스트에 다음과 같은 IP들이 포함된다고 하자.
192.168.10.232
193.168.10.232
이 경우, 첫 번째 마디의 값은 192 및 193 이다. 따라서, 기준 행의 셀들 중에서 가로 방향 인덱스가 '192'인 셀과 가로 방향 인덱스가 '193'인 셀의 값이 각각 1로 설정될 수 있다. 나머지 셀들의 값은 모두 0으로 설정될 수 있다.
기준 행의 하단에는 기준 행과 동일한 개수의 셀들을 포함하는 행들이 연달아 배치된다. 세로 방향을 따라 배치된 셀들에는 첫 번째 마디의 값의 범위에 대응하는 인덱스들, 두 번째 마디의 값의 범위에 대응하는 인덱스들, 세 번째 마디의 값의 범위에 대응하는 인덱스들이 차례로 할당된다(이하, '세로 방향 인덱스'라 칭한다). IP 리스트에 포함된 IP들이 C 클래스에 해당하는 경우, 첫 번째 마디의 값의 범위는 192~223 이다. 그리고 두 번째 마디의 값의 범위 및 세 번째 마디의 값은 범위는 각각 0~255 이다. 따라서 세로 방향을 따라 배치된 셀들에는 첫 번째 마디의 값의 범위에 해당하는 192~223의 세로 방향 인덱스들, 두 번째 마디의 값의 범위에 해당하는 0~255의 세로 방향 인덱스들, 세 번째 마디의 값의 범위에 해당하는 0~255의 세로 방향 인덱스들이 차례로 할당된다.
예를 들어, IP 리스트에 "192.168.10.232"라는 IP만 포함되어 있다면, 도 6에 도시된 바와 같은 LPM 테이블이 생성된다. IP의 첫 번째 마디의 값이 192 이므로, 기준 행의 셀들 중에서 가로 방향 인덱스가 192인 셀의 값이 1로 설정된다(값이 1인 셀은 나머지 셀들과 다른 색상으로 표시되어 있다). 그리고 첫 번째 마디의 값이 192일 때 두 번째 마디의 값은 168 이므로, 첫 번째 마디의 값의 범위에 대응하는 세로 방향 인덱스들 중에서 세로 방향 인덱스가 192인 행이 선택되고, 선택된 행에 속하는 셀들 중에서 가로 방향 인덱스가 168인 셀의 값이 1로 설정된다. 또한, 두 번째 마디의 값이 168일 때 세 번째 마디의 값은 10 이므로, 두 번째 마디의 값의 범위에 대응하는 세로 방향 인덱스들 중에서 세로 방향 인덱스가 168인 행이 선택되고, 선택된 행에 속하는 셀들 중에서 가로 방향의 인덱스가 10인 셀의 값이 1로 설정된다. 또한, 세 번째 마디의 값이 10일 때 네 번째 마디의 값은 232 이므로, 세 번째 마디의 값의 범위에 대응하는 세로 방향 인덱스들 중에서 세로 방향 인덱스가 10인 행이 선택되고, 선택된 행에 속하는 셀들 중에서 가로 방향 인덱스가 232인 셀의 값이 1로 설정된다.
이러한 방식으로 LPM 테이블이 생성된 후, 실제 수집된 패킷의 IP가 "192.168.10.232"인 경우, 수집된 패킷의 IP를 IP 리스트에서 조회하는 과정을 설명하면 다음과 같다.
우선, IP의 첫 번째 마디의 값에 대한 조회가 이루어진다. LPM 테이블의 기준 행에서 가로 방향 인덱스가 192인 셀의 값이 1이므로, 첫 번째 마디의 값은 LPM 테이블에 존재하는 것으로 판단된다. 따라서, 두 번째 마디의 값에 대한 조회가 이루어진다. LPM 테이블에서 세로 방향 인덱스가 192이고 가로 방향 인덱스가 168인 셀의 값이 1이므로, 두 번째 마디의 값은 LPM 테이블에 존재하는 것으로 판단된다. 따라서, 세 번째 마디의 값에 대한 조회가 이루어진다. LPM 테이블에서 세로 방향 인덱스가 168이고 가로 방향 인덱스가 10인 셀의 값이 1이므로, 세 번째 마디의 값은 LPM 테이블에 존재하는 것으로 판단된다. 따라서 네 번재 마디의 값에 대한 조회가 이루어진다. LPM 테이블에서 세로 방향 인덱스가 10이고, 가로 방향 인덱스가 232인 셀의 값이 1이므로, 네 번째 마디의 값은 LPM 테이블이 존재하는 것으로 판단된다. 이처럼 해당 IP가 IP 리스트에 포함되는지의 여부를 총 4번의 비교 과정을 통해 판단할 수 있으므로, 종래에 비하여 비교 횟수를 대폭 감소시킬 수 있다. 구체적으로, 수집된 패킷에서 획득된 IP가 n개이고, 기업에서 기 보유하고 있는 블랙 IP 리스트가 m개인 경우, 종래에는 nxm 번의 비교를 수행해야 한다. 그러나 본 개시의 실시 예에 따른 LPM 테이블을 이용하면, 최소 nx1 번 내지 최대 nx4 번의 비교만을 수행하면 되므로, 비교 횟수가 대폭 감소된다. 그리고 비교 횟수가 감소된 만큼 검색 속도가 향상된다.
다시 도 1을 참조하면, 변환 테이블 생성부(150)는 수집된 패킷의 URL을 상수화된 값으로 변환한다. URL은 길이가 지정되지 않은 텍스트 형식을 갖는데, 이러한 URL을 상수화된 값으로 변환한다는 것은 URL에 대하여 ID를 할당한다는 것을 의미한다. 여기서 ID는 기본 키(Primary Key, PK)를 의미할 수 있다. URL 및 URL의 상수화된 값을 포함하는 변환 테이블을 예시하면 도 7과 같다.
해시 테이블 생성부(160)는 상수화된 값에 기초하여 기준 크기의 해시 테이블을 생성한다. 기준 크기는 예를 들어, 65536일 수 있다. 그러나 기준 크기가 예시된 것으로 한정되는 것은 아니며, 예시된 크기보다 더 작거나 더 클 수도 있다. 이하, 설명의 편의를 위하여 기준 크기가 65536인 경우를 예로 들어 설명하기로 한다.
도 8은 본 개시의 실시 예에 따른 해시 테이블을 예시한 도면이다.
도 8을 참조하면, 해시 테이블은 해시 인덱스와 누적 값을 포함한다. 해시 인덱스는 URL의 ID를 65536으로 나누었을 때의 나머지로 결정된다. 따라서, 해시 인덱스는 0~65535의 범위를 갖는다. 동일한 해시 인덱스를 가지는 ID들은 해당 해시 인덱스에 차례로 기록된다.
누적 값은 해시 인덱스에 기록된 ID의 개수들을 차례로 누적한 값이 기록된다. 예를 들어, 해시 인덱스 0에는 총 3개의 ID가 기록되어 있고, 해시 인덱스 1에는 총 4개의 ID가 기록되어 있으며, 해치 인덱스 2에는 총 2개의 ID가 기록되어 있는 것을 알 수 있다. 이 경우, 해시 인덱스 1에 대한 누적 값은 3+4=7 이다. 그리고 해시 인덱스 2에 대한 누적 값은 7+2=9 이다.
이러한 누적 값은 검색 범위를 좁히는데 사용될 수 있다. 예를 들어, 검색 조건으로써, 'naver.com'이라는 URL이 입력되었다고 하자. 도 7을 참조하면, 'naver.com'이라는 URL에 대한 ID는 2이므로, 해시 인덱스 역시 2이다. 도 8에서 해시 인덱스 2에 대한 누적 값은 9이고, 바로 이전의 누적 값은 7인 것을 알 수 있다. 이는 7회 내지 9회의 메티데이터만 검색해 보면 결과를 얻을 수 있다.
도 9는 본 개시의 실시 예에 따른 고속 패킷 검색 방법을 도시한 순서도이다.
우선, 검색 조건에 특화된 데이터를 생성하여 데이터베이스에 저장한다(S910). 여기서, 검색 조건으로는 IP 및 URL을 예로 들 수 있다. IP의 경우, 기준 개수 미만의 IP가 검색 조건으로 사용될 수도 있고, 기준 개수 이상의 IP 리스트가 검색 조건으로 사용될 수도 있다. 예를 들면, 기업이 기 확보하고 있는 백만 건 이상의 IP 주소가 포함된 블랙 IP 리스트가 검색 조건으로 사용될 수도 있다. 기준 개수 미만의 IP 검색에 특화된 데이터로는 메타 테이블, 메타 디스크립션 테이블, IP 인덱스 테이블을 예로 들 수 있다. IP 리스트 검색에 특화된 데이터로는 LPM 테이블을 예로 들 수 있다. URL 검색에 특화된 데이터로는 URL 및 URL의 상수화된 값을 포함하는 변환 테이블, 해시 테이블을 예로 들 수 있다.
이후, 데이터베이스에 저장된 데이터에 기초하여, 입력된 검색 조건에 해당하는 패킷을 검색한다(S920).
상기 S920 단계에서, 입력된 검색 조건이 기준 개수 미만의 IP라면, 데이터베이스에 저장되어 있는 데이터들 중에서 IP 인덱스 테이블, 메타 디스크립션 테이블 및 메타 테이블이 선택될 수 있다. 검색 조건으로 입력된 IP의 각 마디의 값은 IP 인덱스 테이블의 기준 단위의 클래스 필드 및 밸류 필드에 의해 결정되는 값과 비교된다. 비교 결과 두 값이 일치하는 경우에는 기준 단위의 인덱스 필드의 값을 이용하여 메타 디스크립션 테이블에서 2차 인덱스 및 1차 인덱스가 검색된다. 비교 결과 두 값이 일치하지 않는 경우에는 기준 단위의 점프 필드의 값이 가리키는 기준 단위로 점프하게 된다. 이처럼 점프 필드의 값을 이용하면, 비교 횟수가 감소되고, 비교 횟수가 감소된 만큼 검색 속도가 향상된다.
상기 S920 단계에서, 입력된 검색 조건이 대량의 IP 리스트라면, 데이터베이스에 저장되어 있는 데이터들 중에서 LPM 테이블이 선택될 수 있다. 그리고 대량의 IP 리스트의 각 마디의 값과 LPM 테이블의 각 셀의 값의 비교가 이루어진다. 비교 과정에서, IP 리스트의 각 마디의 값이 LPM 테이블에 기록되어 있지 않은 것으로 판단되면, 비교 과정이 즉시 중단된다.
상기 S920 단계에서, 입력된 검색 조건이 URL이라면, 데이터베이스에 저장되어 있는 변환 테이블 및 해시 테이블이 선택될 수 있다. 변환 테이블을 참조하면, 검색 조건으로 입력된 URL에 대응하는 ID가 검색된다. 이후 검색된 ID를 65536로 나누었을 때의 나머지가 연산되면, 연산된 값과 동일한 값을 가지는 해시 인덱스 및 그에 대응하는 누적 값을 해시 테이블로부터 얻을 수 있다.
이상으로, 본 개시의 실시 예들을 설명하였다. 전술한 설명에서 도 1에 도시된 고속 패킷 검색 장치를 구성하는 구성요소들은 모듈로 구현될 수 있다. 모듈은 소프트웨어 또는 Field Programmable Gate Array(FPGA)나 주문형 반도체(Application Specific Integrated Circuit, ASIC)와 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다.
따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록매체를 포함한다. 예를 들어, ROM(read only memory), RAM(random access memory), 자기 테이프, 자기 디스크, 플래쉬 메모리(200), 광 데이터 저장장치 등이 있을 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 기록 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접 배포되거나, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 기록 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
이상과 첨부된 도면을 참조하여 본 개시에 따른 실시 예들을 설명하였다. 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 본 개시가 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 고속 패킷 검색 장치
Claims (10)
- 네트워크에서 수집된 패킷들 중에서 검색 조건에 해당하는 패킷을 고속으로 검색하는 방법에 있어서,
상기 검색 조건에 특화된 데이터를 생성하여 데이터베이스에 저장하는 단계; 및
상기 저장된 데이터에 기초하여, 입력된 검색 조건에 해당하는 패킷을 검색하는 단계를 포함하는,
고속 패킷 검색 방법. - 제1항에 있어서,
상기 저장하는 단계는,
상기 네트워크에서 수집된 패킷들을 IP를 기준으로 정렬하고 정렬된 패킷들에 1차 인덱스를 할당하여 메타 테이블을 생성하는 단계;
상기 메타 테이블의 동일 IP 구간마다 첫 번째에 위치한 IP 및 상기 첫 번째에 위치한 IP의 1차 인덱스를 추출하고, 추출된 IP들에 2차 인덱스를 할당하여 메타 디스크립션 테이블을 생성하는 단계; 및
상기 메타 디스크립션 테이블의 2차 인덱스들 중에서 상기 검색 조건으로 입력된 IP와 관련된 2차 인덱스에 고속으로 접근하기 위한 IP 인덱스 테이블을 생성하는 단계를 포함하는,
고속 패킷 검색 방법. - 제2항에 있어서,
상기 IP 인덱스 테이블은 복수의 기본 단위를 포함하고,
상기 기본 단위는 클래스 필드, 밸류 필드, 인덱스 필드 및 점프 필드를 포함하며,
상기 복수의 기본 단위에는 3차 인덱스가 할당되는,
고속 패킷 검색 방법. - 제3항에 있어서,
상기 클래스 필드에는 상기 메타 디스크립션 테이블에 포함되어 있는 IP의 각 마디의 위치를 나타내는 인덱스가 기록되고,
상기 밸류 필드에는 상기 클래스 필드의 인덱스에 대응하는 마디의 값이 기록되며,
상기 인덱스 필드에는 상기 메타 디스크립션 테이블의 2차 인덱스들 중에서 상기 밸류 필드에 기록되어 있는 값과 관련된 2차 인덱스가 기록되고,
상기 점프 필드에는 상기 밸류 필드에 기록되어 있는 값과 상기 검색 조건으로 입력된 IP의 값이 일치하지 않을 경우, 다음 번으로 비교할 값이 기록되어 있는 기본 단위의 3차 인덱스가 기록되는,
고속 패킷 검색 방법. - 제4항에 있어서,
상기 검색하는 단계는
상기 검색 조건으로 입력된 IP의 각 마디의 값을 상기 IP 인덱스 테이블의 기준 단위의 클래스 필드 및 밸류 필드에 의해 결정되는 값과 비교하는 단계;
상기 비교 결과, 두 값이 일치하는 경우, 상기 기준 단위의 인덱스 필드의 값을 이용하여 상기 메타 디스크립션 테이블에서 2차 인덱스를 검색하는 단계;
상기 비교 결과, 두 값이 일치하지 않는 경우, 상기 기준 단위의 점프 필드의 값이 가리키는 기준 단위로 점프하는 단계를 포함하는,
고속 패킷 검색 방법. - 제1항에 있어서,
상기 저장하는 단계는,
상기 네트워크에서 수집된 패킷들을 IP를 기준으로 정렬하여 메타 테이블을 생성하는 단계; 및
기 확보된 IP 리스트에 대한 LPM(Longest Prefix Matching) 테이블을 생성하는 단계를 포함하는,
고속 패킷 검색 방법. - 제6항에 있어서,
상기 LPM 테이블은
가로 방향을 따라 배치된 256개의 셀을 포함하는 기준 행; 및
상기 기준 행과 동일한 개수의 셀을 포함하며, 상기 기준 행의 하단에 세로 방향을 따라 배치되는 복수의 행을 포함하며,
상기 기준 행의 셀들에는 가로 방향 인덱스가 할당되고,
상기 세로 방향을 따라 배치된 셀들에는 상기 IP 리스트에 포함된 IP의 첫 번째 마디의 값의 범위에 대응하는 인덱스들, 두 번째 마디의 값의 범위에 대응하는 인덱스들, 세 번째 마디의 값의 범위에 대응하는 인덱스들이 차례로 할당되는,
고속 패킷 검색 방법. - 제7항에 있어서,
상기 검색하는 단계는,
상기 검색 조건으로 입력된 IP 리스트의 각 마디의 값과 상기 LPM 테이블의 각 셀의 값을 비교하는 단계; 및
상기 입력된 IP 리스트의 각 마디의 값이 상기 LPM 테이블에 기록되어 있지 않은 경우, 비교를 중단하는 단계를 포함하는,
고속 패킷 검색 방법. - 제1항에 있어서,
상기 저장하는 단계는,
상기 네트워크에서 수집된 패킷들을 URL을 기준으로 정렬하고 정렬된 URL들에 상기 URL들을 상수화한 값인 ID를 할당하는 단계;
상기 ID를 기준 크기로 나누었을 때의 나머지를 해시 인덱스로 하는 해시 테이블을 생성하는 단계;
동일한 해시 인덱스를 가지는 ID들을 상기 해시 테이블의 해당 해시 인덱스에 차례로 기록하는 단계; 및
해시 인덱스에 기록된 ID의 개수에 대한 누적 값을 기록하는 단계를 포함하는,
고속 패킷 검색 방법. - 제1항 내지 제9항 중에서 어느 한 항에 기재된 고속 패킷 검색 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된, 컴퓨터 판독 가능 기록 매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220041642A KR102655234B1 (ko) | 2022-04-04 | 2022-04-04 | 고속 패킷 검색 방법 및 장치 |
PCT/KR2023/004419 WO2023195697A1 (ko) | 2022-04-04 | 2023-04-03 | 고속 패킷 검색 방법 및 장치 |
KR1020240044618A KR20240046700A (ko) | 2022-04-04 | 2024-04-02 | 풀패킷 데이터를 검색하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220041642A KR102655234B1 (ko) | 2022-04-04 | 2022-04-04 | 고속 패킷 검색 방법 및 장치 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240044618A Division KR20240046700A (ko) | 2022-04-04 | 2024-04-02 | 풀패킷 데이터를 검색하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230142957A true KR20230142957A (ko) | 2023-10-11 |
KR102655234B1 KR102655234B1 (ko) | 2024-04-05 |
Family
ID=88243197
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220041642A KR102655234B1 (ko) | 2022-04-04 | 2022-04-04 | 고속 패킷 검색 방법 및 장치 |
KR1020240044618A KR20240046700A (ko) | 2022-04-04 | 2024-04-02 | 풀패킷 데이터를 검색하는 방법 및 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240044618A KR20240046700A (ko) | 2022-04-04 | 2024-04-02 | 풀패킷 데이터를 검색하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
KR (2) | KR102655234B1 (ko) |
WO (1) | WO2023195697A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100808023B1 (ko) * | 2003-10-20 | 2008-02-28 | 인텔 코포레이션 | 2-스테이지 패킷 분류 방법 및 장치, 컴퓨터 판독가능한 기록 매체 및 머신 액세스가능 매체 |
US20150131451A1 (en) * | 2013-11-12 | 2015-05-14 | Fujitsu Limited | Packet storage method and packet storage apparatus |
KR101837935B1 (ko) * | 2017-03-31 | 2018-03-13 | 주식회사 젠틸리언 | 전수 패킷 저장 기반의 데이터 검색 성능 향상을 위한 수신 패킷 저장 장치 및 그 방법 |
KR102080478B1 (ko) | 2019-06-20 | 2020-02-24 | 주식회사 쿼드마이너 | 패턴 기반 색인 처리 시스템 및 이를 이용한 패턴 기반 색인 처리 방법 |
KR102363757B1 (ko) * | 2020-12-01 | 2022-02-16 | (주)모니터랩 | Ip 주소 비교 방법 및 장치 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102423039B1 (ko) * | 2020-06-30 | 2022-07-21 | 주식회사 맥데이타 | 대용량 네트워크 모니터링을 위한 실시간 패킷 데이터 저장 방법 및 장치 |
-
2022
- 2022-04-04 KR KR1020220041642A patent/KR102655234B1/ko active IP Right Grant
-
2023
- 2023-04-03 WO PCT/KR2023/004419 patent/WO2023195697A1/ko unknown
-
2024
- 2024-04-02 KR KR1020240044618A patent/KR20240046700A/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100808023B1 (ko) * | 2003-10-20 | 2008-02-28 | 인텔 코포레이션 | 2-스테이지 패킷 분류 방법 및 장치, 컴퓨터 판독가능한 기록 매체 및 머신 액세스가능 매체 |
US20150131451A1 (en) * | 2013-11-12 | 2015-05-14 | Fujitsu Limited | Packet storage method and packet storage apparatus |
KR101837935B1 (ko) * | 2017-03-31 | 2018-03-13 | 주식회사 젠틸리언 | 전수 패킷 저장 기반의 데이터 검색 성능 향상을 위한 수신 패킷 저장 장치 및 그 방법 |
KR102080478B1 (ko) | 2019-06-20 | 2020-02-24 | 주식회사 쿼드마이너 | 패턴 기반 색인 처리 시스템 및 이를 이용한 패턴 기반 색인 처리 방법 |
KR102363757B1 (ko) * | 2020-12-01 | 2022-02-16 | (주)모니터랩 | Ip 주소 비교 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20240046700A (ko) | 2024-04-09 |
WO2023195697A1 (ko) | 2023-10-12 |
KR102655234B1 (ko) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
US9237161B2 (en) | Malware detection and identification | |
JP5328808B2 (ja) | データをクラスタリングする方法、システム、装置およびその方法を適用するためのコンピュータ・プログラム | |
CN109460386B (zh) | 基于多维模糊哈希匹配的恶意文件同源性分析方法及装置 | |
JP5518301B2 (ja) | 情報処理装置 | |
CN104700033A (zh) | 病毒检测的方法及装置 | |
CN107066262A (zh) | 源代码文件克隆邻接表合并检测方法 | |
CN109104421B (zh) | 一种网站内容篡改检测方法、装置、设备及可读存储介质 | |
CN112333195B (zh) | 基于多源日志关联分析的apt攻击场景还原检测方法及系统 | |
CN111800404B (zh) | 一种对恶意域名的识别方法、装置以及存储介质 | |
CN111835781B (zh) | 一种基于失陷主机发现同源攻击的主机的方法及系统 | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
CN106844553B (zh) | 基于样本数据的数据探测和扩充方法及装置 | |
CN111723371A (zh) | 构建恶意文件的检测模型以及检测恶意文件的方法 | |
CN111061972B (zh) | 一种用于url路径匹配的ac查找优化方法和装置 | |
Li et al. | MDBA: Detecting malware based on bytes n-gram with association mining | |
CN116975865B (zh) | 恶意Office文档检测方法、装置、设备及存储介质 | |
KR102655234B1 (ko) | 고속 패킷 검색 방법 및 장치 | |
US20100280759A1 (en) | Mass spectrometer output analysis tool for identification of proteins | |
US12067115B2 (en) | Malware attributes database and clustering | |
US11386340B2 (en) | Method and apparatus for performing block retrieval on block to be processed of urine sediment image | |
CN114816518A (zh) | 基于simhash的源代码中开源成分筛选识别方法及系统 | |
CN110633466B (zh) | 基于语义分析的短信犯罪识别方法、系统和可读存储介质 | |
CN114024701A (zh) | 域名检测方法、装置及通信系统 | |
CN112163217A (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |