DOI QR코드

DOI QR Code

듀얼 프로세서 기반 DPI (Deep Packet Inspection) 엔진을 위한 효율적 패킷 프로세싱 방안 구현 및 성능 분석

Implementation and Performance Analysis of Efficient Packet Processing Method For DPI (Deep Packet Inspection) System using Dual-Processors

  • 양준호 (한국지역정보개발원 시도 사이버침해대응지원센터) ;
  • 한승재 (연세대학교 컴퓨터과학과)
  • 발행 : 2009.08.31

초록

특화된 하드웨어의 도움 없이 범용 다중 프로세서 플랫폼에서 DPI(Deep Packet Inspection) 시스템을 구현하는 방법은 비용 측면에서 매력적이다. 문제는 성능인데, 일반적으로 다중 프로세서 시스템에서는 작업들을 여러 프로세서에 적절하게 배분하는 로드밸런싱 방법과 DPI 프로세싱 전용 개별 프로세서를 지정하여 시스템의 성능을 향상 시킨다. 그러나, 우리는 DPI 시스템의 경우 위와 같은 단순한 프로세서 통제 방안이 반드시 최선책이 아니라고 생각한다. 본 논문에서는 작업의 종류에 따라 정해진 프로세서에 할당한 후, 프로세서 상태에 따라 역할을 변경하는 방식을 제안한다. 우리는 제안하는 방식을 리눅스 기반 듀얼 프로세서 시스템에 구현하고 실험을 통해 그 성능을 기존의 로드밸런싱 방식과 비교하였다. 제안된 방식에서는 하나의 프로세서는 인터럽트 처리를 포함한 일반적 패킷 프로세싱 역할만을 담당토록 하고 다른 프로세서는 DPI엔진을 전담하도록 역할로 분리시켜 캐시접근실패 (cache miss) 과 스핀락(spin lock) 발생빈도를 낮추었으며, DPI 전담 프로세서가 처리한계에 이르렀을 경우에는 두 프로세서 모두 DPI를 위해 자원을 사용토록 하여, 기존의 리눅스 로드 밸런싱 방식 DPI 시스템 대비 약 60%의 성능향상을 달성하였다.

Implementation of DPI(Deep Packet Inspection) system on a general purpose multiprocessor platform is an attractive option from the implementation cost point of view, since it does not require high-cost customized hardware. Load balancing has been considered as a primary means to achieve high performance in multi processor systems. We claim, however, that in case of DPI system design simply balancing the load of each processor does not necessarily yield the highest system performance. Instead, we propose a method in which tasks are allocated to processors based on their functions. We implemented the proposed method in dual processor Linux system and compare its performance with the existing load balancing methods. Under the proposed method, one processor is dedicated to deal with interrupt handling and generic packet processing, while another processor is dedicated to DPI processing. According to experimental results, the proposed scheme outperforms the existing schemes by 60%, mainly because of the reduction of cache miss and spin lock occurrences.

키워드

참고문헌

  1. Ido Dubrawsky, http://www.securityfocus.com/infocus/1716,SecurityFocus, July, 2003
  2. G.Grill, 'IRQ DISTRIBUTION IN MULTIPROCESSOR SYSTEMS', Linux Kernel Hacking Free Course 3rd edition, April, 2006
  3. http://irqbalance.org/documentation.php
  4. Barry Arndt, 'Linux Networking Scalability on High-Performance Scalable Servers', IBM Systems and Technology Group, April, 2007
  5. Robert Love, 'Kernel Locking Techniques', Aug, 2002
  6. Rusty Russell, Harald Welte, 'Linux netfilter Hacking HOWTO', July, 2002
  7. Lennert Buytenhek, http://linux.die.net/man/8/brctl
  8. Nick Fedchik, Grzegorz Borowiak, http://ebtables.sourceforge.net/
  9. netfilter core team, http://www.netfilter.org/projects/iptables/index.html
  10. S. Bradner, http://www.faqs.org/rfcs/rfc2544.html, Network Working Group, March, 1999
  11. http://nsslabs.com/grouptests/ips/edition2/appendix_b/ appendix_b.htm
  12. John Levon, http://oprofile.sourceforge.net/doc/internals/index.html, 2003