KR101990902B1 - 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 - Google Patents
빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 Download PDFInfo
- Publication number
- KR101990902B1 KR101990902B1 KR1020180034956A KR20180034956A KR101990902B1 KR 101990902 B1 KR101990902 B1 KR 101990902B1 KR 1020180034956 A KR1020180034956 A KR 1020180034956A KR 20180034956 A KR20180034956 A KR 20180034956A KR 101990902 B1 KR101990902 B1 KR 101990902B1
- Authority
- KR
- South Korea
- Prior art keywords
- policy
- partitioning
- static
- size
- packet classification
- Prior art date
Links
Images
Classifications
-
- 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/02—Topology update or discovery
-
- 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/48—Routing tree calculation
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 패킷 분류 방법에 관한 것으로서, 보다 구체적으로는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에 있어서, (1) 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계; (2) 상기 단계 (1)에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 단계; 및 (3) 상기 단계 (1) 및 (2)에서 나뉜 정책 집합을 검색하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
또한, 본 발명은 패킷 분류 시스템에 관한 것으로서, 보다 구체적으로는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템에 있어서, 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 정적 파티셔닝 모듈; 상기 정적 파티셔닝 모듈에 의해 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 동적 파티셔닝 모듈; 및 상기 정적 파티셔닝 모듈 및 동적 파티셔닝 모듈에 의해 나뉜 정책 집합을 검색하는 검색 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템에 따르면, 기존의 다양한 정책에 대한 분석을 통해 정책 공통 특성을 사용하여 미리 정해진 규칙에 따라 테이블 정적 빌딩을 함으로써, 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요 없이 빠르게 테이블을 업데이트할 수 있다.
또한, 본 발명에 따르면, 최적의 검색 속도를 지원하기 위해 테이블 정적 빌딩 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용함으로써, 정책의 자체 고유 특성을 반영할 수 있게 하여 검색 성능을 크게 높일 수 있다.
더 나아가, 본 발명에 따르면, 파티셔닝을 할 때, 정책의 중복을 최대한 피하도록 파티셔닝을 함으로써, 검색 시간과 업데이트 시간의 증가를 억제할 수 있다.
또한, 본 발명은 패킷 분류 시스템에 관한 것으로서, 보다 구체적으로는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템에 있어서, 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 정적 파티셔닝 모듈; 상기 정적 파티셔닝 모듈에 의해 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 동적 파티셔닝 모듈; 및 상기 정적 파티셔닝 모듈 및 동적 파티셔닝 모듈에 의해 나뉜 정책 집합을 검색하는 검색 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
본 발명에서 제안하고 있는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템에 따르면, 기존의 다양한 정책에 대한 분석을 통해 정책 공통 특성을 사용하여 미리 정해진 규칙에 따라 테이블 정적 빌딩을 함으로써, 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요 없이 빠르게 테이블을 업데이트할 수 있다.
또한, 본 발명에 따르면, 최적의 검색 속도를 지원하기 위해 테이블 정적 빌딩 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용함으로써, 정책의 자체 고유 특성을 반영할 수 있게 하여 검색 성능을 크게 높일 수 있다.
더 나아가, 본 발명에 따르면, 파티셔닝을 할 때, 정책의 중복을 최대한 피하도록 파티셔닝을 함으로써, 검색 시간과 업데이트 시간의 증가를 억제할 수 있다.
Description
본 발명은 패킷 분류 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템에 관한 것이다.
현대의 네트워크는 IoT(Internet of Things)로 인해 크기가 대형화되고 있다. 이에 따라 정책 집합들이 복잡해지고, 그 크기와 개수 또한 빠르게 증가하고 있다. 이러한 대용량 보안 정책들로 인해, 높은 분류 속도와 작은 테이블 크기를 동시에 가질 수 있는 새로운 패킷 분류 알고리즘에 대한 요구가 높아지고 있다. 그러나 일반적으로 패킷 분류 속도와 테이블 크기는 Trade-off 관계를 가진다. 따라서 기술적으로 패킷 분류 알고리즘의 속도와 테이블 크기를 동시에 개선하는 것은 매우 어려운 실정이다.
METIS는 유럽 5G 프로젝트로 높은 유연성과 관리의 용이성을 제공하기 위해 SDN/NFV(Software Defined Networking/Network Function Virtualization)를 적용하고 있으며, 이를 통해 다양한 서비스를 손쉽게 제공할 수 있게 된다. 하지만 SDN/NFV 기술은 소프트웨어를 통해 네트워크의 다양한 기능을 구현하는 만큼 패킷 전송 성능과 지연에서는 기존 방식에 비해 불리하게 된다.
따라서 5G에서 SDN/NFV 기술을 적용하면서 동시에 신뢰적이며 저지연 통신 서비스를 제공하기 위한 연구들이 진행되어 왔다. 이를 통해 여러 가지 문제점들이 발견되었는데, 이 중 주요 문제점은 다음과 같다.
첫 번째, SDN 컨트롤러의 스위치 수용용량이 현재 200개 정도이며, OpenFlow 스위치의 경우 플로우 엔트리 수가 1,000~4,000개 정도에 머무르고 있어, 캐리어 동급인 10,000~50,000개에는 크게 부족하다는 것이다. 이는 T-CAM 용량을 증설함으로써 플로우 엔트리 수를 증가할 수 있지만, T-CAM의 경우 고가이기 때문에 많은 용량을 지원하는데 한계가 있다.
두 번째, OpenFlow 스위치에서 플로우 테이블 상에서 오버플로우가 발생할 때, 종단 간 지연 시간이 수 백 ms 이상 크게 증가하며 동시에 패킷 유실이 발생하여 신뢰적이며 저지연 통신 서비스를 제공하는데 제약이 있다는 점이다.
세 번째, 고속의 T-CAM 대신 패킷 분류 알고리즘 기반의 소프트웨어 방식을 사용할 경우 패킷 분류 성능은 뛰어난 반면, 실시간 플로우 업데이트 속도와 플로우 용량에 대한 캐리어 등급 수준을 지원할 수 있는 알고리즘이 전무하다는 점이다.
따라서, 이를 해결하기 위하여 새로운 특정을 갖는 순수 소프트웨어 방식의 패킷 분류 알고리즘이 필요하다.
이와 관련된 선행기술로는, 등록특허 제10-0965552호(발명의 명칭: 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치) 등이 제안된 바 있다.
본 발명은 기존에 제안된 방법들의 상기와 같은 문제점들을 해결하기 위해 제안된 것으로서, 기존의 다양한 정책에 대한 분석을 통해 정책 공통 특성을 사용하여 미리 정해진 규칙에 따라 테이블 정적 빌딩을 함으로써, 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요 없이 빠르게 테이블을 업데이트할 수 있는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은, 최적의 검색 속도를 지원하기 위해 테이블 정적 빌딩 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용함으로써, 정책 자체의 고유한 특성을 반영할 수 있게 하여 검색 성능을 크게 높일 수 있는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템을 제공하는 것을 다른 목적으로 한다.
더 나아가, 본 발명은, 파티셔닝을 할 때, 정책의 중복을 최대한 피하도록 파티셔닝을 함으로써, 검색 시간과 업데이트 시간의 증가를 억제할 수 있는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템을 제공하는 것을 또 다른 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법은,
패킷을 분류하는 패킷 분류 방법에 있어서,
(1) 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계;
(2) 상기 단계 (1)에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 단계; 및
(3) 상기 단계 (1) 및 (2)에서 나뉜 정책 집합을 검색하는 단계를 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 단계 (1)은,
중복 정책이 발생하지 않도록 파티셔닝 될 수 있다.
바람직하게는, 상기 단계 (1)은,
DIP, SIP, Protocol, DPort, SIP, DIP 필드 순으로 해시 기반 파티셔닝을 사용할 수 있다.
바람직하게는, 상기 단계 (1)은,
정책간 공통 특성을 사용하여 미리 정해진 규칙에 따라 정적 테이블을 형성할 수 있다.
더 바람직하게는, 상기 정책간 공통 특성은,
IP Prefix의 길이는 대부분 8이상인 것, IP Protocol 중 ICMP, TCP, UDP에 대한 정책이 대부분인 것, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 정책의 수가 다수인 것을 포함할 수 있다.
더 바람직하게는, 상기 정책간 공통 특성은,
정책이 업데이트 되어도 유지가 될 수 있다.
바람직하게는, 상기 단계 (2)는,
비트 기반 동적 파티셔닝을 사용한 B-Tree 테이블 동적 빌딩을 통해 leaf 노드에 포함된 정책의 수를 줄이도록 구현될 수 있다.
바람직하게는, 상기 단계 (3)은,
중복 정책 없는 트리 검색과 중복 정책 있는 트리 검색이 병렬적으로 이루어질 수 있다.
바람직하게는, 상기 고속 패킷 분류 방법은,
정적 테이블에 대한 정책 업데이트 시 고정된 시간이 걸릴 수 있다.
바람직하게는, 상기 고속 패킷 분류 방법은,
소프트웨어 기반 방식으로 패킷 분류를 수행할 수 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템은,
패킷을 분류하는 패킷 분류 시스템에 있어서,
해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 정적 파티셔닝 모듈;
상기 정적 파티셔닝 모듈에 의해 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 동적 파티셔닝 모듈; 및
상기 정적 파티셔닝 모듈 및 상기 동적 파티셔닝 모듈에 의해 나뉜 정책 집합을 검색하는 검색 모듈을 포함하는 것을 그 구성상의 특징으로 한다.
바람직하게는, 상기 정적 파티셔닝 모듈은,
중복 정책이 발생하지 않도록 파티셔닝을 할 수 있다.
바람직하게는, 상기 정적 파티셔닝 모듈은,
DIP, SIP, Protocol, DPort, SIP, DIP 필드 순으로 해시 기반 파티셔닝을 할 수 있다.
바람직하게는, 상기 테이블 정적 빌딩은,
정책간 공통 특성을 사용하여 미리 정해진 규칙에 따라 정적 테이블을 형성할 수 있다.
더 바람직하게는, 상기 정책간 공통 특성은,
IP Prefix의 길이는 대부분 8이상인 것, IP Protocol 중 ICMP, TCP, UDP에 대한 정책이 대부분인 것, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 정책의 수가 다수인 것을 포함할 수 있다.
더 바람직하게는, 상기 정책간 공통 특성은,
정책이 업데이트 되어도 유지가 될 수 있다.
바람직하게는, 상기 동적 파티셔닝 모듈은,
비트 기반 동적 파티셔닝을 사용한 B-Tree 테이블 동적 빌딩을 통해 leaf 노드에 포함된 정책의 수를 줄이도록 구현될 수 있다.
바람직하게는, 상기 검색 모듈은,
중복 정책 없는 트리 검색과 중복 정책 있는 트리 검색이 병렬적으로 이루어질 수 있다.
바람직하게는, 상기 고속 패킷 분류 시스템은,
정적 테이블에 대한 정책 업데이트 시 고정된 시간이 걸릴 수 있다.
바람직하게는, 상기 고속 패킷 분류 시스템은,
소프트웨어 기반 방식으로 패킷 분류를 수행할 수 있다.
본 발명에서 제안하고 있는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템에 따르면, 기존의 다양한 정책에 대한 분석을 통해 정책 공통 특성을 사용하여 미리 정해진 규칙에 따라 테이블 정적 빌딩을 함으로써, 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요 없이 빠르게 테이블을 업데이트할 수 있다.
또한, 본 발명에 따르면, 최적의 검색 속도를 지원하기 위해 테이블 정적 빌딩 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용함으로써, 정책 자체의 고유한 특성을 반영할 수 있게 하여 검색 성능을 크게 높일 수 있다.
더 나아가, 본 발명에 따르면, 파티셔닝을 할 때, 정책의 중복을 최대한 피하도록 파티셔닝을 함으로써, 검색 시간과 업데이트 시간의 증가를 억제할 수 있다.
도 1은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 구성을 도시한 도면.
도 2는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 DIP 기반 정적 테이블의 구성을 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol table에서 사용되는 Protocol 해시 함수에 대한 키 및 해시 값을 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol 기반 정적 테이블의 구성을 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 B-Tree 동적 파티셔닝의 구성을 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 액세스된 메모리의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 메모리 액세스 량과 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면.
도 7은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 총 테이블의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 크기와 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면.
도 8은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 테이블 업데이트 시간을 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 업데이트 시간과 룰셋의 크기의 비율을 나타낸 그래프를 도시한 도면.
도 9는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 룰셋의 크기에 따른 룰셋의 중복 비율을 도시한 도면.
도 10은 본 발명의 다른 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템(100)의 세부 구성을 도시한 도면.
도 2는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 DIP 기반 정적 테이블의 구성을 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol table에서 사용되는 Protocol 해시 함수에 대한 키 및 해시 값을 도시한 도면.
도 4는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol 기반 정적 테이블의 구성을 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 B-Tree 동적 파티셔닝의 구성을 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 액세스된 메모리의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 메모리 액세스 량과 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면.
도 7은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 총 테이블의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 크기와 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면.
도 8은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 테이블 업데이트 시간을 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 업데이트 시간과 룰셋의 크기의 비율을 나타낸 그래프를 도시한 도면.
도 9는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 룰셋의 크기에 따른 룰셋의 중복 비율을 도시한 도면.
도 10은 본 발명의 다른 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템(100)의 세부 구성을 도시한 도면.
이하에서는 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일 또는 유사한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 ‘연결’되어 있다고 할 때, 이는 ‘직접적으로 연결’되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 ‘간접적으로 연결’되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 ‘포함’한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 구성을 도시한 도면이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법은, 패킷을 분류하는 패킷 분류 방법에 있어서, (1) 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계(S100); (2) 단계 S100에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 단계(S200); 및 (3) 단계 S100 및 S200에서 나뉜 정책 집합을 검색하는 단계(S300)를 포함할 수 있다. 이하에서는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 각각의 구성에 대해 상세히 설명하기로 한다.
단계 S100에서는, 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나눈다. 디시전 트리 기반 방식을 비롯한 기존의 많은 패킷 분류 알고리즘은 파티셔닝 기법을 사용할 수 있다. 파티셔닝은 크기가 큰 정책 집합을 다수의 작은 크기를 갖는 정책 집합으로 나누는 방법이며, 이 과정에서 특정 정책의 경우 복수개의 작은 정책 집합에 동시에 포함되는 경우가 발생할 수 있다. 이와 같은 정책을 중복 정책이라 부르기로 한다. 이와 같은, 중복 정책은 파티셔닝의 효율과 검색 속도를 떨어뜨리며 특히 업데이트 시간을 증가시키는 주요 원인이 된다. 하나의 정책을 업데이트하더라도 해당 정책의 중복 정책이 포함된 모든 파티션을 업데이트하여야 하기 때문이다. 따라서, 이를 해결하기 위해서는 파티셔닝을 할 때 정책의 중복을 최대한 피하도록 파티셔닝을 하여야한다. 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법은 이를 위해 정적 테이블 빌딩 시 중복 정책이 발생하지 않도록 할 수 있다. 정책 중복을 피하는 방법은 다음과 같다.
특정 필드 F에 대한 값들의 집합을 f라고 할 때 f에 속한 모든 값들이 해시 함수 H에 의해 매칭 되는 값들의 집합을 g라고 하고 f>>g가 되는 H를 사용하여 파티셔닝을 수행한다고 하면, r번째 룰의 F필드에 대해 매칭 되는 전체키의 집합을 R이라고 하고 임의의 집합 A와 B가 집합 R에 포함되고 집합 A와 B가 같지 않을 때, Ha와 Hb가 동일하지 않은 집합 A와 B가 존재한다면 r은 F필드에 대해 중복 정책될 수 있다. 하지만 f>>g이기 때문에 모든 집합 A와 B에 대해 Ha=Hb가 되어 중복 정책이 되지 않는 경우가 발생할 수 있다. 따라서, 위 해시함수를 사용하여 파티셔닝을 하는 경우, 전체 중복 정책의 수를 줄일 수 있다.
단계 S100에서는, 정책간 공통 특성을 사용하여 미리 정해진 규칙에 따라 정적 테이블을 형성할 수 있다. 이때, 상기 정책간 공통 특성은, IP Prefix의 길이는 대부분 8이상인 것, IP Protocol 중 ICMP, TCP, UDP에 대한 정책이 대부분인 것, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 정책의 수가 다수인 것을 포함할 수 있다. 또한, 상기의 정책간 공통 특성은 정책이 업데이트 되어도 항상 유지될 수 있어 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요가 없을 수 있다. 따라서, 테이블을 빠르게 업데이트할 수 있어 SDN/NFV에서 중요한 incremental update를 지원할 수 있다.
단계 S100은, DIP, SIP, Protocol, DPort, SIP, DIP 필드 순으로 해시 기반 파티셔닝을 수행할 수 있다. 도 2는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 DIP 기반 정적 테이블의 구성을 도시한 도면이다. 도 2에 도시된 바와 같이, DIP의 첫 바이트 값을 해시 값으로 생성하는 해시 함수를 사용하여 총 256개 엔트리로 구성된 테이블을 구성할 수 있다. 각 엔트리는 포인터 값을 갖는데, 엔트리에 대응되는 룰의 크기에 따라 총 세 가지 경우를 갖는다. 먼저, 최대 리프 노드 크기(MAX_LEAF)보다 작으면 해당 파티션에 포함된 정책들을 가리키는 리프 노드에 대해 포인터로 세팅될 수 있다. 반면, MAX_LEAF보다 크고 최대 동적 파티셔닝 노드(MAX_DYN)보다 작으면 동적 파티셔닝 트리의 루트 노드에 대해 포인터로 세팅될 수 있다. 그리고, MAX_DYN보다 크면 다음 레벨의 정적 테이블(SIP 기반 해시 테이블)에 대해 포인터로 세팅될 수 있다. 다음 레벨 테이블은 DIP 정적 테이블과 동일한 구조를 갖되 DIP 대신 SIP를 키로 갖는 해시 함수를 사용할 수 있다.
DIP 혹은 SIP 해시 테이블에 의해 파티셔닝 된 정책의 크기가 아직 MAX_DYN보다 크면 다음 레벨 테이블인 Protocol 기반 해시 테이블을 사용하여 파티셔닝을 할 수 있다. Protocol 필드는 8비트로 총 256개의 엔트리가 필요하지만, 실제 사용되는 Protocol은 ICMP, TCP, UDP 등에 집중되기 때문에 256개 크기의 테이블을 사용하는 것은 낭비가 될 수 있다. 도 3은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol table에서 사용되는 Protocol 해시 함수에 대한 키 및 해시 값을 도시한 도면이다. 도 3에 도시된 바와 같이, 이를 해결하기 위해 0~5번호를 갖는 해시 함수를 사용함으로써, 6개의 엔트리만을 사용하여 테이블 크기를 크게 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 Protocol 기반 정적 테이블의 구성을 도시한 도면이다. 도 4에 도시된 바와 같이, 각 엔트리의 값은 기존 IP 기반 정적 테이블의 경우와 유사할 수 있다. 해당 정책의 크기가 MAX_LEAF보다 작으면 리프 노드를 가리키고 MAX_DYN보다 작은 경우에는 동적 파티셔닝 트리의 루트 노드를 가리킨다. MAX_DYN보다 크다면 Protocol 번호에 따라 동작이 달라질 수 있다. Protocol 6과 17번에 대응되는 엔트리의 경우 다음 레벨의 테이블인 DPort(Destination Port) 기반 테이블을 가리킬 수 있다.
Destination Port는 16비트로 구성되므로 총 64K개의 테이블 엔트리가 필요할 수 있다. 하지만 이중에서 빈번히 사용되는 포트 번호는 한정되어 있으며, 특히 1023보다 작은 Well-known 포트와 1024~49151의 Registered 포트 등 포트 번호에 따라서 사용되는 빈도에서 크게 차이가 날 수 있다. 따라서, 64k 엔트리를 모두 사용하는 것은 낭비이므로 Protocol table과 마찬가지로 DPort 전용 해시 함수를 사용할 수 있다. Protocol 해시 함수처럼 DPort 기반 해시 함수를 이용하면 기존 포트번호에 대해 매칭 되는 해시 키 값을 찾기 위한 추가적인 테이블이 필요 없기 때문에, 메모리 액세스 수와 전체 테이블 크기를 줄일 수 있다.
Short IP table은 기존 IP table이 0~7, 8비트를 키로 한 것과는 달리, 0~3, 4비트만을 키로 할 수 있다. 이는 IP 필드에 대해 class A보다 넓은 범위를 나타내는 조건으로 설정된 경우를 파티셔닝하기 위한 테이블일 수 있다. 따라서 SIP에 대해 중복 정책에 포함된 경우에만 Level2 SIP 테이블을 사용할 수 있다. DIP에 대해서도 마찬가지이며 만일 SIP와 DIP에 대해 동시에 중복 정책에 포함된 경우에는 Level 2 SIP와 Level 2 DIP 테이블을 함께 가질 수 있다. 다만, DIP 보다 SIP가 중복 정책이 많은 것이 일반적이므로 Level 2 SIP 테이블을 먼저 사용할 수 있다.
테이블 정적 빌딩을 사용할 경우 정책 자체의 고유한 특정을 반영할 수 없어 최적의 검색 속도를 지원하는데 한계가 있으므로, 이를 해결하기 위해 테이블 정적 빌딩을 한 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용할 수 있다. 다만, 테이블 동적 빌딩은 최소한으로 한정되어 사용됨으로써, 테이블 정적 빌딩에 의한 장점이 유지되도록 할 수 있다.
단계 S200에서는, 상기 단계 S100에서 나뉜 정책 집합의 크기가 일정 크기보다 큰 경우에 비트 기반 동적 파티셔닝을 사용한 B-Tree 테이블 동적 빌딩을 통해 leaf 노드에 포함된 정책의 수를 줄일 수 있다. 리프 노드에 포함된 정책의 집합을 S, 특정 필드 f의 b번째 비트 값이 0인 정책의 집합을 O, 1인 정책의 집합을 P라고 할 수 있다. 그리고 모든 필드와 모든 비트 값에 대해 수학식 1을 구하고 이를 통해 S를 파티셔닝할 수 있다.
각 파티션의 크기가 MAX_LEAF보다 작으면 파티셔닝은 종료되고 디시전 트리를 만들 수 있다. 도 5는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 B-Tree 동적 파티셔닝의 구성을 도시한 도면이다. 도 5에 도시된 바와 같이, 아직도 큰 파티션이 있으면 가장 큰 파티션에 대해 다시 최적의 파티셔닝 필드와 비트를 구하고 기존에 구한 필드와 비트를 사용하여 B-Tree를 구성할 수 있다. 도면 5에서 <f, b>는 필드 f의 b번째 비트를 이용하여 파티셔닝한다는 것을 의미한다.
단계 S300에서는, 상기 단계 S100 및 단계 S200에서 나뉜 정책 집합을 검색한다. 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 정책 검색은 중복 정책 없는 트리와 중복 정책 있는 트리를 모두 검색할 수 있다. 또한 중복 정책 없는 트리와 중복 정책 있는 트리의 검색은 병렬적으로 이루어질 수 있다.
중복 정책 없는 트리 중 정적 테이블은 해시 함수와 테이블의 구조 및 크기가 고정되어 있으므로 정책을 업데이트하는데 항상 고정적인 시간이 걸릴 수 있다. 또한, 중복 정책에 대한 검색 역시 정적 트리에 대해서는 정책 업데이트 시 항상 고정된 시간이 걸릴 수 있다.
빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법은, 소프트웨어 기반 방식으로 패킷 분류를 수행할 수 있다.
이하에서는 도 6 내지 도 9를 참조하여, 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 성능을 비교하였다. 성능 평가를 위해 Classbench를 이용하여 방화벽 룰셋(FW), Access control list(ACL), IPC 등 다양한 룰셋을 생성하였고 기존 알고리즘으로는 Hypercuts 방법과 Efficuts 방법을 사용하여 비교하였다. 정책의 수를 20,000에서 100,000까지 증가시키면서 분류 속도, 테이블 크기, 정책 업데이트 속도와 룰셋 중복 비율을 측정하였다.
도 6은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 액세스된 메모리의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 메모리 액세스 량과 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면이다. 도면 6의 (a)에서, X축은 룰셋의 크기, Y축은 액세스된 메모리의 크기이다. 도 6의 (a)에 도시된 바와 같이, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법은 기존의 Efficuts 방법에 비하면 2배 가까운 성능이 개선되었으며 Hypercuts 방법과 유사한 성능을 얻을 수 있음을 알 수 있다.
일반적으로 정책의 수가 증가함에 따라 분류 성능은 느려지게 된다. 이때 정책 수가 증가할 때 분류 성능이 증가하는 속도는 느려야만 대용량 정책을 지원하는데 유리하다. 이에 대한 특성을 알아보기 위해 정책의 수를 20K에서 1,000K까지 증가하면서 메모리 액세스 량과 룰셋 크기의 비율을 측정해보았다. 도 6의 (b)에 도시된 바와 같이, 정책 증가에 비해 분류 성능은 매우 느리게 떨어짐을 알 수 있다. 결국 대용량 정책을 지원하더라도 매우 높은 분류 성능을 유지할 수 있음을 알 수 있다.
도 7은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 총 테이블의 크기를 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 크기와 룰셋 크기의 비율을 나타낸 그래프를 도시한 도면이다. 도 7의 (a)에 도시된 바와 같이, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법을 사용한 경우, 다른 방법을 사용한 것에 비해 테이블 크기를 크게 개선하고 있음을 알 수 있다. Efficuts 방법이 Hypercuts 방법과 비교하여 분류 성능을 희생하여 테이블 크기를 크게 개선하였다는 것을 고려할 때, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법의 경우 분류 성능을 Efficuts 방법과 유사하게 유지하면서 Efficuts 방법보다 테이블 크기를 더욱 개선하였다는 점에서 매우 큰 의미가 있다고 하겠다.
테이블 크기는 룰셋의 크기에 따라 증가할 수 있다. 따라서 테이블 크기와 룰셋의 비율을 보는 것은 매우 중요할 수 있다. 도 7의 (b)에 도시된 바와 같이, 룰셋의 크기가 커질수록 테이블 크기에 대한 비율이 전체적으로 감소하고 있어 1M 이상의 대용량 정책을 지원하는데 매우 유리하다고 판단할 수 있다. 이는 V2X에서 상당히 중요한 특성으로 기존 T-CAM을 기반 SDN 스위치들이 갖고 있는 플로우 오버플로우를 근본적으로 해결함으로서, 기존 SDN 스위치들의 지연 문제를 해결하였음을 알 수 있다.
도 8은 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 (a) 룰셋의 크기에 따른 테이블 업데이트 시간을 나타낸 그래프와 (b) 정책의 수를 20K에서 1,000K까지 증가하면서 테이블 업데이트 시간과 룰셋의 크기의 비율을 나타낸 그래프를 도시한 도면이다. 기존 방법들은 incremental 정책 업데이트를 지원하지 않는다. 따라서 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에 대해서만 실험을 수행하였다. 다만, 참고하기 위해 기존 방법에 대해서는 테이블 전체 빌딩 시간을 함께 나타내기로 한다. 정책 업데이트 시간을 측정하기 위해서 전체 정책들을 하나씩 삭제하는데 걸리는 시간을 각각 측정하고 이들에 대한 평균값으로 정책 업데이트 시간을 계산하였다.
도 8의 (a)에 도시된 바와 같이, 하나의 정책을 업데이트하는데 걸리는 시간은 모든 경우에 대해 5 usec 보다 작음을 알 수 있고, 도 8의 (b)에 도시된 바와 같이, 정책의 크기가 증가할수록 비율은 감소하므로 정책이 큰 경우에도 빠른 업데이트가 가능함을 확인할 수 있다.
도 9는 본 발명의 일 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법에서 룰셋의 크기에 따른 룰셋의 중복 비율을 도시한 도면이다. 확장성에 대한 중요한 요소 중 하나는 테이블 내에 발생하는 룰셋 중복 비율이다. 이는 전체 룰셋에 대해 파티셔닝을 하면서 발생한 룰셋의 크기 비율을 의미한다. 따라서, 1일 경우 중복 룰셋이 전혀 없음을 의미한다. 중복 룰셋은 패킷 분류 성능, 테이블 크기와, 테이블 업데이트 시간에 모두 악영향을 끼치기 때문에 룰셋의 크기에 상관없이 매우 낮은 값을 유지하는 것이 매우 중요하다. 도 9에 도시된 바와 같이, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법을 사용한 경우, 모든 경우에 대해 상당히 작은 값을 유지함을 알 수 있다.
도 10은 본 발명의 다른 실시예에 따른 빠른 업데이트를 지원하는 고속 패킷 분류 시스템(100)의 세부 구성을 도시한 도면이다. 도 10에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템은, 정적 파티셔닝 모듈(110), 동적 파티셔닝 모듈(120), 및 검색 모듈(130)을 포함할 수 있다.
정적 파티셔닝 모듈(110)은, 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나눌 수 있다. 동적 파티셔닝 모듈(120)은, 상기 정적 파티셔닝 모듈(110)에 의해 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 정책 집합을 나눌 수 있다. 검색 모듈(130)은, 상기 정적 파티셔닝 모듈(110) 및 상기 동적 파티셔닝 모듈(120)에 의해 나뉜 정책 집합을 검색할 수 있다. 각각의 모듈에서 수행되는 정보 처리는, 고속 패킷 분류 방법의 각각의 단계에서 수행되는 정보 처리와 대응될 수 있다.
전술한 바와 같이, 본 발명에서 제안하고 있는 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템에 따르면, 기존의 다양한 정책에 대한 분석을 통해 정책 공통 특성을 사용하여 미리 정해진 규칙에 따라 테이블 정적 빌딩을 함으로써, 정책이 업데이트 되어도 전체 테이블을 새로 생성할 필요 없이 빠르게 테이블을 업데이트할 수 있다. 또한, 본 발명에 따르면, 최적의 검색 속도를 지원하기 위해 테이블 정적 빌딩 후 필요한 경우에는 테이블 동적 빌딩을 부분적으로 사용함으로써, 정책의 자체 고유 특성을 반영할 수 있게 하여 검색 성능을 크게 높일 수 있다. 더 나아가, 본 발명에 따르면, 파티셔닝을 할 때, 정책의 중복을 최대한 피하도록 파티셔닝을 함으로써, 검색 시간과 업데이트 시간의 증가를 억제할 수 있다.
이상 설명한 본 발명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에 의하여 다양한 변형이나 응용이 가능하며, 본 발명에 따른 기술적 사상의 범위는 아래의 청구범위에 의하여 정해져야 할 것이다.
100: 본 발명의 일실시예에 따른 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템
110: 정적 파티셔닝 모듈
120: 동적 파티셔닝 모듈
130: 검색 모듈
S100: 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계
S200: 단계 S100에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 동적 테이블을 통해 작은 크기의 정책 집합으로 나누는 단계
S300: 단계 S100 및 단계 S200에서 나뉜 정책 집합을 검색하는 단계
110: 정적 파티셔닝 모듈
120: 동적 파티셔닝 모듈
130: 검색 모듈
S100: 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계
S200: 단계 S100에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 동적 테이블을 통해 작은 크기의 정책 집합으로 나누는 단계
S300: 단계 S100 및 단계 S200에서 나뉜 정책 집합을 검색하는 단계
Claims (20)
- 패킷을 분류하는 패킷 분류 방법에 있어서,
(1) 해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 단계;
(2) 상기 단계 (1)에서 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 단계; 및
(3) 상기 단계 (1) 및 (2)에서 나뉜 정책 집합을 검색하는 단계를 포함하며,
상기 단계 (1)은,
정책간 공통 특성을 사용하여 미리 정해진 규칙에 따라 정적 테이블을 형성하되, 상기 정책간 공통 특성은, 정책이 업데이트 되어도 유지가 되며, IP Prefix의 길이는 8이상인 것, IP Protocol 중 ICMP, TCP, UDP에 대한 것, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 것을 포함하고,
상기 단계 (1)은,
DIP, SIP, Protocol, DPort, SIP, DIP 필드 순으로 해시 기반 파티셔닝을 수행하되,
DIP의 첫 바이트 값을 해시 값으로 생성하는 해시 함수를 사용하여 총 256개 엔트리로 구성된 DIP 정적 테이블을 구성하여 파티셔닝을 수행하고,
상기 구성된 DIP 정적 테이블에 의해 파티셔닝 된 정책의 크기가 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, DIP와 정적 테이블과 동일한 구조를 갖되 DIP 대신 SIP를 키로 갖는 해시 함수를 사용하여 SIP 정적 테이블을 구성하여 파티셔닝을 수행하고,
상기 구성된 SIP 정적 테이블에 의해 파티셔닝 된 정책의 크기가 상기 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, Protocol 기반 해시 테이블을 사용하되, 상기 IP Protocol 중 ICMP, TCP, UDP에 대한 것을 포함하는 정책간 공통 특성을 사용하여 크기가 축소된 Protocol 기반 해시 테이블을 구성하여 파티셔닝을 수행하며,
상기 구성된 Protocol 기반 해시 테이블에 의해 파티셔닝 된 정책의 크기가 상기 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 것을 포함하는 정책간 공통 특성을 사용하여 DPort 전용 해시 함수를 이용해 메모리 액세스 수와 전체 테이블 크기가 축소된 테이블을 구성하여 파티셔닝을 수행하는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 제1항에 있어서, 상기 단계 (1)은,
중복 정책이 발생하지 않도록 파티셔닝 되는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 제1항에 있어서, 상기 단계 (2)는,
비트 기반 동적 파티셔닝을 사용한 B-Tree 테이블 동적 빌딩을 통해 leaf 노드에 포함된 정책의 수를 줄이도록 구현된 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 제1항에 있어서, 상기 단계 (3)은,
중복 정책 없는 트리 검색과 중복 정책 있는 트리 검색이 병렬적으로 이루어지는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 제1항에 있어서, 상기 고속 패킷 분류 방법은,
정적 테이블에 대한 정책 업데이트 시 고정된 시간이 걸리는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 제1항에 있어서, 상기 고속 패킷 분류 방법은,
소프트웨어 기반 방식으로 패킷 분류를 수행하는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법.
- 패킷을 분류하는 패킷 분류 시스템에 있어서,
해시 기반 파티셔닝을 사용하여 테이블 정적 빌딩을 통해 기존 정책을 작은 크기의 정책 집합으로 나누는 정적 파티셔닝 모듈;
상기 정적 파티셔닝 모듈에 의해 나뉜 정책 집합이 일정 크기보다 큰 경우에 비트 기반 테이블 동적 빌딩을 통해 작은 크기의 정책 집합으로 나누는 동적 파티셔닝 모듈; 및
상기 정적 파티셔닝 모듈 및 동적 파티셔닝 모듈에 의해 나뉜 정책 집합을 검색하는 검색 모듈을 포함하며,
상기 테이블 정적 빌딩은,
정책간 공통 특성을 사용하여 미리 정해진 규칙에 따라 정적 테이블을 형성하되, 상기 정책간 공통 특성은, 정책이 업데이트 되어도 유지가 되며, IP Prefix의 길이는 8이상인 것, IP Protocol 중 ICMP, TCP, UDP에 대한 것, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 것을 포함하고,
상기 정적 파티셔닝 모듈은,
DIP, SIP, Protocol, DPort, SIP, DIP 필드 순으로 해시 기반 파티셔닝을 하되,
DIP의 첫 바이트 값을 해시 값으로 생성하는 해시 함수를 사용하여 총 256개 엔트리로 구성된 DIP 정적 테이블을 구성하여 파티셔닝을 수행하고,
상기 구성된 DIP 정적 테이블에 의해 파티셔닝 된 정책의 크기가 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, DIP와 정적 테이블과 동일한 구조를 갖되 DIP 대신 SIP를 키로 갖는 해시 함수를 사용하여 SIP 정적 테이블을 구성하여 파티셔닝을 수행하고,
상기 구성된 SIP 정적 테이블에 의해 파티셔닝 된 정책의 크기가 상기 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, Protocol 기반 해시 테이블을 사용하되, 상기 IP Protocol 중 ICMP, TCP, UDP에 대한 것을 포함하는 정책간 공통 특성을 사용하여 크기가 축소된 Protocol 기반 해시 테이블을 구성하여 파티셔닝을 수행하며,
상기 구성된 Protocol 기반 해시 테이블에 의해 파티셔닝 된 정책의 크기가 상기 최대 동적 파티셔닝 노드(MAX_DYN)보다 크면, 많이 이용되는 서비스에 사용되는 포트를 매칭범위로 하는 것을 포함하는 정책간 공통 특성을 사용하여 DPort 전용 해시 함수를 이용해 메모리 액세스 수와 전체 테이블 크기가 축소된 테이블을 구성하여 파티셔닝을 수행하는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
- 제11항에 있어서, 상기 정적 파티셔닝 모듈은,
중복 정책이 발생하지 않도록 파티셔닝 하는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 제11항에 있어서, 상기 동적 파티셔닝 모듈은,
비트 기반 동적 파티셔닝을 사용한 B-Tree 테이블 동적 빌딩을 통해 leaf 노드에 포함된 정책의 수를 줄이도록 구현된 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
- 제11항에 있어서, 상기 검색 모듈은,
중복 정책 없는 트리 검색과 중복 정책 있는 트리 검색이 병렬적으로 이루어지는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
- 제11항에 있어서, 상기 고속 패킷 분류 시스템은,
정적 테이블에 대한 정책 업데이트 시 고정된 시간이 걸리는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
- 제11항에 있어서, 상기 고속 패킷 분류 시스템은,
소프트웨어 기반 방식으로 패킷 분류를 수행하는 것을 특징으로 하는, 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180034956A KR101990902B1 (ko) | 2018-03-27 | 2018-03-27 | 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180034956A KR101990902B1 (ko) | 2018-03-27 | 2018-03-27 | 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101990902B1 true KR101990902B1 (ko) | 2019-06-19 |
Family
ID=67104117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180034956A KR101990902B1 (ko) | 2018-03-27 | 2018-03-27 | 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101990902B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100965552B1 (ko) * | 2008-08-06 | 2010-06-23 | 이화여자대학교 산학협력단 | 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치 |
KR101301607B1 (ko) * | 2011-10-31 | 2013-09-10 | 삼성에스디에스 주식회사 | 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법 |
KR101586145B1 (ko) * | 2013-05-15 | 2016-02-02 | 울산과학기술원 산학협력단 | Gpu 기반 트리 탐색 방법 |
-
2018
- 2018-03-27 KR KR1020180034956A patent/KR101990902B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100965552B1 (ko) * | 2008-08-06 | 2010-06-23 | 이화여자대학교 산학협력단 | 영역분할을 이용한 패킷 분류 테이블 생성 방법 및 패킷분류 방법과 장치 |
KR101301607B1 (ko) * | 2011-10-31 | 2013-09-10 | 삼성에스디에스 주식회사 | 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법 |
KR101586145B1 (ko) * | 2013-05-15 | 2016-02-02 | 울산과학기술원 산학협력단 | Gpu 기반 트리 탐색 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gupta et al. | Packet classification using hierarchical intelligent cuttings | |
JP3790217B2 (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
US7937355B2 (en) | Decision tree multi-field classification dynamic rules updating and rebuilding | |
US8432914B2 (en) | Method for optimizing a network prefix-list search | |
US8112547B2 (en) | Efficiently hashing packet keys into a firewall connection table | |
US6581106B1 (en) | Fast address lookup in routing tables | |
Rottenstreich et al. | Optimal rule caching and lossy compression for longest prefix matching | |
US20060221967A1 (en) | Methods for performing packet classification | |
US10277481B2 (en) | Stateless forwarding in information centric networks with bloom filters | |
KR20150053620A (ko) | 패킷 전송 장치 및 방법 | |
US7624226B1 (en) | Network search engine (NSE) and method for performing interval location using prefix matching | |
US7487255B2 (en) | Routing cache management with route fragmentation | |
CN112367278A (zh) | 基于可编程数据交换机的云网关系统及其报文处理方法 | |
Li et al. | Taming the wildcards: Towards dependency-free rule caching with freecache | |
US9742702B1 (en) | End-to-end cache for network elements | |
Khalid et al. | Optimized cuckoo filters for efficient distributed SDN and NFV applications | |
Wan et al. | T-cache: Efficient policy-based forwarding using small tcam | |
CN106789668B (zh) | 一种处理报文的方法和装置 | |
KR101153940B1 (ko) | 패킷 분류 장치 및 그 방법 | |
Ahmed et al. | PCIU: an efficient packet classification algorithm with an incremental update capability | |
KR101990902B1 (ko) | 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템 | |
Ruia et al. | Flowcache: A cache-based approach for improving SDN scalability | |
Pak | Fast packet classification for V2X services in 5G networks | |
US10205658B1 (en) | Reducing size of policy databases using bidirectional rules | |
Trabelsi et al. | Enhanced session table architecture for stateful firewalls |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |