서지주요정보
Networking stack abstraction for high-performance flow-processing middleboxes = 고성능 플로우 처리 미들박스를 위한 네트워킹 스택 추상화
서명 / 저자 Networking stack abstraction for high-performance flow-processing middleboxes = 고성능 플로우 처리 미들박스를 위한 네트워킹 스택 추상화 / Muhammad Asim Jamshed.
발행사항 [대전 : 한국과학기술원, 2017].
Online Access 원문보기 원문인쇄

소장정보

등록번호

8031072

소장위치/청구기호

학술문화관(문화관) 보존서고

DEE 17011

휴대폰 전송

도서상태

이용가능(대출불가)

사유안내

반납예정일

리뷰정보

초록정보

The rise of network function virtualization (NFV) frameworks, along with the introduction of hardware innovations in commodity systems have made software-based middleboxes much more relevant than hardware-based solutions. Software-based middleboxes are generally more flexible, in terms of reconfigurability, and easily adapt to the changes observed in the network traffic over time. However, building a high performance, stateful software-based middlebox remains challenging. This is because it is usually difficult to develop a networking system that can derive optimal performance from a system equipped with state-of-the-art commodity hardware (including multi-queue NICs, many-core programmable GPUs, and processors based on non-uniform memory architectures). In short, there is still considerable room, in the research domain, for introducing novel abstractions that can help create efficient, flow-processing software middleboxes on commodity computing hardware. This dissertation first discusses how a commodity heterogeneous system is used to build a highly scalable software-based middlebox appliance: a network intrusion detection system (NIDS) called Kargus. Kargus is a stateful NIDS capable of monitoring network traffic at multi-10 Gbps networks. It employs multi-queue NICs, multi-core CPU processors and many-core graphics processing units (GPUs) for highly parallelizeable operations. More specifically: (i) it batch processes workload items from the network device layer all the way up to the application layer; (ii) it parallelizes pattern matching workloads on CPU and GPU cores; and $(iii)$ it implements an adaptive resource usage algorithm that saves power consumption on low input traffic rates. As a result of these optimizations Kargus performs $1.9 \times$ to $4.3 \times$ faster than the prior state-of-the-art system. The second half of the dissertation discusses the lessons we learn while we develop Kargus with respect to high-speed network traffic flow management. First, designing a stateful middlebox (such as a NIDS) with efficient flow processing is challenging because it requires a deep understanding of TCP flow state management. Second, existing networking APIs only offer abstractions to develop endpoint applications and therefore lack proper flow-based programming constructs for stateful middlebox processing. Based on these lessons, we design and implement a networking stack that provides intuitive and elegant abstractions for building new middlebox applications. Our stack provides an API that allows developers to focus only on the core middlebox application logic (such as intrusion detection and firewalling) instead of dealing with implementing low-level TCP flow processing. The core stack, under the hood, implements an efficient event-based system that is derived from mTCP, a high-performance user-level TCP/IP stack. We evaluate our stack and show that middlebox applications built on our subsystem reduce development efforts significantly and induce negligible performance overhead.

범용 컴퓨팅 하드웨어 시스템의 눈부신 발전과 최근 활발하게 사용되고 있는 네트워크 기능 가상화 (NFV) 기술은 소프트웨어로 제작하는 미들박스에 대한 수요를 빠르게 증가시키고 있다. 전용 하드웨어 기반 미들박스에 비해 소프트웨어 기반의 미들박스는 새로운 기능을 추가하거나 불필요한 기능을 삭제하기 쉽고, 여러 기능의 유연한 설정을 도모할 수 있다는 측면에서 장점이 있다. 하지만 범용 하드웨어로 제작되는 특성 때문에 전용 하드웨어 미들박스 대비 고성능을 내기가 어렵고, 특히 플로우 상태를 추적하거나 플로우 내용을 검사하는 복잡한 미들박스의 경우 구현의 복잡성 때문에 쉽게 제작하기 어려운 단점이 존재한다. 본 논문에서는 고성능을 내기 위한 소프트웨어 미들박스 구조에 대한 연구 및 제작 편의성을 높일 수 있는 설계 원칙 및 기법에 대해 논의한다. 우선, 고성능을 낼 수 있는 소프트웨어 미들박스 구조는 범용 컴퓨팅 자원의 병렬성을 어떻게 성능 확장성으로 연결할 수 있는가에 달려 있다. 본 논문은 소프트웨어 기반 네트워크 침입 탐지시스템인 Kargus를 설계/구현함으로써 수십 Gbps정도의 고성능을 낼 수 있는 미들박스의 소프트웨어 구조에 대한 설계 원칙을 제시한다. Kargus는 다중 큐 NIC, NUMA 아키텍처, 멀티 코어 CPU, 매니 코어 GPU등의 범용 컴퓨팅 하드웨어의 병렬성을 극대화하여, 전체 처리 성능을 이전 최고 성능 시스템에 비해 1.9배에서 4.3배 높인 결과를 보여준다. Kargus는 패킷 입출력에서 일괄 처리를 통해 효율적으로 자원을 활용하고, 고비용의 패턴 매칭을 GPU로 오프로딩하여 CPU와 병렬처리를 통해 전체 자원활용도를 높인다. 또 패킷 입력의 로드에 따라 컴퓨팅 자원의 전력소모량을 최적화시켜주는 알고리즘을 구현하여 성능에 따라 전력소모량을 조절할 수 있게끔 하였다. 본 논문의 후반부에서는, 플로우 관리를 하거나 플로우 내용을 검사해야 하는 복잡한 미들박스를 어떻게 쉽고, 간편하게 제작할 수 있을 지에 대해 다루고 있다. 미들박스에서 TCP 플로우 관리 구현을 하는 경우 개발 시간도 오래 걸릴 뿐 아니라 구현의 복잡성에 기인한 프로그램상의 오류 등이 많아지는 현실적인 문제가 존재한다. 이는 프로그래밍을 패킷처리부터 시작하여 미들박스가 원하는 상위 기능까지 모두 구현해야 하는 번거러움 및 미들박스 고유의 기능과 네트워킹 스택이 분리되어 있지 않은 점때문에 생기는 코드 관리의 복잡성등에 기인한다. 본 논문에서는 TCP 플로우 관리를 하는 여러 미들박스를 쉽게 개발할 수 있게 하기 위해, 재사용가능한 네트워킹 스택 및 직관적이고 사용하기 편한 API를 제공함으로써 이 문제를 해결하고자 한다. 이 스택과 API를 활용하여, 미들박스 개발자들은 TCP 플로우 처리에 대한 직접적인 구현 없이, 미들박스 장비의 핵심 로직 (예: 침입 탐지 알고리즘, 방화벽 기능)에만 집중할 수 있어, 쉽고 빠르게 구현을 할 수 있을 것으로 기대한다. 이 스택은 효율적이고 유연한 이벤트 기반 시스템을 제공해 복잡한 이벤트도 쉽게 표현할 수 있으며, mTCP 라는 고성능 유저레벨 TCP/IP 스택을 기반으로 설계되어 성능 확장성을 제공한다. 본 논문에서 수행한 실험 결과에 따르면 새로 제안하는 미들박스를 위한 네트워킹 스택이 플로우 기반 복잡한 미들박스을 개발하는데 상당한 구현 노력을 줄여주면서도 동시에 무시할 수 있을 정도로 매우 낮은 성능상 부하를 보임을 알 수 있다.

서지기타정보

서지기타정보
청구기호 {DEE 17011
형태사항 viii, 102 p. : 삽화 ; 30 cm
언어 영어
일반주기 지도교수의 영문표기 : KyoungSoo Park
지도교수의 한글표기 : 박경수
수록잡지명 : "Kargus: A Highly -scalable Software-based Intrusion Detection System". ACM Conference on Computer and Communications Security , (2012)
수록잡지명 : "kStack: A Reusable Networking Stack for Flow Monitoring Middleboxes". USENIX Symposium on Networked Systems Design and Implementation , (2017)
학위논문 학위논문(박사) - 한국과학기술원 : 전기및전자공학부,
서지주기 References : p. 91-98
QR CODE

책소개

전체보기

목차

전체보기

이 주제의 인기대출도서