KR101788961B1 - 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템 - Google Patents

서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템 Download PDF

Info

Publication number
KR101788961B1
KR101788961B1 KR1020160022573A KR20160022573A KR101788961B1 KR 101788961 B1 KR101788961 B1 KR 101788961B1 KR 1020160022573 A KR1020160022573 A KR 1020160022573A KR 20160022573 A KR20160022573 A KR 20160022573A KR 101788961 B1 KR101788961 B1 KR 101788961B1
Authority
KR
South Korea
Prior art keywords
data path
sfc
traffic
controller
performance acceleration
Prior art date
Application number
KR1020160022573A
Other languages
English (en)
Other versions
KR20170100250A (ko
Inventor
정치욱
유현
백은경
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to KR1020160022573A priority Critical patent/KR101788961B1/ko
Publication of KR20170100250A publication Critical patent/KR20170100250A/ko
Application granted granted Critical
Publication of KR101788961B1 publication Critical patent/KR101788961B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

서비스 기능 체이닝을 위한 성능 가속화 데이터 패스에 대한 성능과 안정성을 관리/제어하는 방법 및 시스템이 개시된다. 컨트롤러에서 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 방법은, SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 수집하는 단계와; 데이터 패스에 대한 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 SFC 트래픽이 경유할 데이터 패스를 결정하는 단계와; SFC 트래픽이 결정된 데이터 패스에 따라 처리되도록 스위치를 제어하는 단계를 포함한다. 따라서, 데이터 패스의 요구 사항 또는 성능 가속화 데이터 패스의 상태 정보를 충족시키는 데이터 패스의 경로를 결정함으로써, 데이터 패스의 성능을 개선시킬 수 있다.

Description

서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템{METHOD AND SYSTEM OF CONTROLLING PERFORMANCE ACCELERATION DATA PATH FOR SERVICE FUNCTION CHAINING}
본 발명은 소프트웨어 정의 네트워킹에 관한 것으로, 더욱 상세하게는 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스에 대한 성능과 안정성을 관리/제어하는 방법 및 시스템에 관한 것이다.
소프트웨어 정의 네트워킹(Software Defined Networking, SDN)은 통신 네트워크의 유연한 운영과 비용절감을 위해 통신 시스템을 데이터 평면(Data Plane)과 제어 평면(Control Plane)으로 분리함으로써, 네트워크에 대한 관리, 모니터링, 제어에 관련된 처리를 하나의 집중화된 제어장치에서 처리하도록 하는 중앙 집중식 네트워크 구조에 관한 기술이다.
소프트웨어 정의 네트워킹에서는 네트워크 장비(라우터)들에 대한 정보를 OpenFlow와 같이 표준화된 제어 평면 인터페이스를 통해 SDN 제어기로 일괄 취합하고, 이를 추상화된 네트워크 자원 정보로 운용자에게 제공한다.
운용자는 이러한 추상화된 네트워크 자원 정보를 기반으로 기존의 네트워크 운용 방식보다 성능이 최적화되도록 네트워크를 유연하게 관리할 수 있다.
네트워크 기능 가상화(Network Functions Virtualization, NFV) 기술은 기존에 Hardware Appliances들로 구현된 NAT, Firewall, IPS, VPN 등의 다양한 네트워크 기능을 소프트웨어 형태의 Virtual Appliances로 구현하고 운용하는 가상화 기술이다. 따라서, NFV 기술을 활용하면 소프트웨어 기반 프레임워크를 사용하여 네트워크 서비스의 유연성을 향상시킬 수 있다.
또한, 트래픽에 따라 필요한 네트워크 기능들을 선택적으로 조합 및 실행하여 하나의 네트워크 서비스를 구현하는 서비스 체이닝(Service Chaining) 또는 서비스 기능 체이닝(Service Function Chaining, SFC) 기술에 대한 관심이 증대되고 있다.
SFC 기술은 종단간 서비스에 필요한 다양한 서비스 기능(SF: Service Function)들(e.g., NAT, FW, DPI, WAF, etc.)을 사용자 별로 체이닝하여 제공함으로서 네트워크 자원이 적재 적소에 사용될 수 있도록 해준다.
한편, NFV방식으로 서버 내부에 SFC를 구성함에 있어서, 데이터 패스의 성능 개선을 위해 다양한 성능 가속화 기술이 적용될 수 있으나, 다양한 특성을 가진 성능 가속화 기술이 적용된 데이터 패스로 인한 문제가 발생할 수 있다.
예를 들어, Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though, Shared Memory와 같은 성능 가속화 기술은 가상화로 인한 패킷 처리 과정의 병목현상들로 인한 서비스 품질의 저하, 필요 서버 자원의 증가로 인한 운용 비용의 증가 등과 같은 문제를 초래할 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 컨트롤러에서 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 서비스 기능 체이닝(Service Function Chaining, SFC)을 위해 복수의 가상화된 서비스 기능을 수행하는 서버에서 수행되는 데이터 패스 제어 방법을 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 시스템을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 컨트롤러에서 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 방법은, SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 수집하는 단계와; 데이터 패스에 대한 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 SFC 트래픽이 경유할 데이터 패스를 결정하는 단계와; SFC 트래픽이 결정된 데이터 패스에 따라 처리되도록 스위치를 제어하는 단계를 포함한다.
여기에서, 상기 성능 가속화 데이터 패스는, Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though 및 Shared Memory 기법 중 적어도 하나가 적용될 수 있다.
여기에서, 상기 데이터 패스의 요구 사항 및 상기 성능 가속화 데이터 패스의 상태 정보는, SFC 트래픽을 위한 데이터 패킷의 헤더에 기록될 수 있다.
여기에서, 상기 결정된 데이터 패스에 따라 처리되도록 제어하는 단계는, 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성하는 단계와; 플로우 테이블 변경 메시지를 스위치에 전송하는 단계를 포함할 수 있다.
여기에서, 상기 서버는, 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신 및 복수의 가상 스위치를 포함하여 구성될 수 있다.
여기에서, 상기 컨트롤러는, 복수의 가상 머신 및 복수의 가상 스위치와 연동하여 SFC 트래픽을 위한 데이터 패스를 제어할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 서비스 기능 체이닝(Service Function Chaining, SFC)을 위해 복수의 가상화된 서비스 기능을 수행하는 서버에서 수행되는 데이터 패스 제어 방법은, SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 컨트롤러로 전달하는 단계와; 데이터 패스에 대한 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 컨트롤러에 의해 결정된 데이터 패스에 따라 SFC 트래픽을 처리하는 단계를 포함한다.
여기에서, 상기 방법은, 컨트롤러에 의해 결정된 데이터 패스에 따라 SFC 트래픽을 처리한 후, 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 갱신하는 단계를 더 포함할 수 있다.
여기에서, 상기 컨트롤러에 의해 결정된 데이터 패스에 따라 상기 SFC 트래픽을 처리하는 단계는, 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 컨트롤러로부터 수신하는 단계와; 플로우 테이블 변경 메시지에 따라 플로우 테이블을 변경하는 단계를 포함할 수 있다.
여기에서, 상기 서버는, 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신 및 복수의 가상 스위치를 포함하여 구성될 수 있다.
상기 또 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 시스템은, 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신을 이용하여 SFC 트래픽을 처리하는 서버와; 서버로부터 수집된 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 SFC 트래픽이 경유할 데이터 패스를 결정하는 컨트롤러를 포함한다.
여기에서, 상기 컨트롤러는, 서버에 포함된 스위치 및 복수의 가상 머신에 포함된 가상 스위치와 연동할 수 있다.
여기에서, 상기 컨트롤러는, 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성하고, 생성된 플로우 테이블 변경 메시지를 서버에 전송함으로써, SFC 트래픽이 상기 결정된 데이터 패스에 따라 처리되도록 제어할 수 있다
상기와 같은 본 발명의 실시예에 따른 SFC를 위한 데이터 패스 제어 방법은, SDN 기술을 활용하여 SFC 트래픽 처리 상태에 따라 변경되는 데이터 패스의 요구 사항들(예를 들어, 대역폭, 지연, 안정성) 및 서버의 구성에 따라 변경되는 성능 가속화 데이터 패스의 상태 정보를 효과적으로 수집/관리할 수 있다.
또한, 데이터 패스의 요구 사항 또는 성능 가속화 데이터 패스의 상태 정보를 충족시키는 데이터 패스의 경로를 결정함으로써, 데이터 패스의 성능을 개선시킬 수 있다.
도 1은 서버 내에 구성된 SFC를 설명하기 위한 예시도이다.
도 2는 서버 내에서 패킷을 처리하는 과정에서 발생하는 병목 현상을 설명하기 위한 예시도이다.
도 3은 서버 내에서의 패킷 처리를 위한 성능 가속화 기술의 적용을 설명하기 위한 예시도이다.
도 4는 본 발명의 실시예에 따라 서버 내에서의 패킷 처리를 위한 성능 가속화 데이터 패스를 제어하기 위한 컨트롤러를 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따라 서버 내에 데이터 패스를 설정하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따라 서버 내의 성능 가속화 데이터 패스를 제어하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 다른 실시예에 따라 서버 내의 성능 가속화 데이터 패스를 제어하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시예에 따라 서버 내의 성능 가속화 데이터 패스에 대한 설정을 설명하기 위한 예시도이다.
도 9는 본 발명의 실시예에 따라 서버 내의 성능 가속화 데이터 패스에 대한 변경을 설명하기 위한 예시도이다.
도 10은 본 발명의 실시예에 따라 서버 내의 신규 성능 가속화 데이터 패스에 대한 추가를 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에서 언급되는 컨트롤러는 SDN 또는 SFC 서비스를 안정적으로 제공하기 위해 관련 구성 요소(예를 들면, 스위치, 라우터 등)를 제어하는 기능 요소(entity)를 의미하는 것으로, 물리적인 구현 형태나 구현 위치 등에 한정되지 않는다. 예를 들어, 컨트롤러는 ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 컨트롤러 기능 요소(entity)를 의미한다.
또한, 본 발명에서 언급되는 네트워크 장치는 트래픽(또는 패킷)을 실질적으로 포워딩하거나 스위칭 또는 라우팅하는 기능 요소를 의미하는 것으로, ONF, IETF, ETSI 및/또는 ITU-T 등에서 정의하고 있는 스위치, 라우터, 스위치 요소, 라우터 요소, 포워딩 요소, SFF(Service Function Forwarder) 등을 의미한다.
서비스 기능 체이닝(Service Function Chaining, SFC)는 네트워크 이용자의 트래픽이 NAT, Firewall, IPS등과 같은 네트워크 서비스 중에서 이용자에게 필요한 기능들만 선택적으로 경유하도록 하는 개념이며, 이러한 서비스들은 물리적인 서버에서 동작할 수도 있고 가상머신 상에서 동작할 수도 있다. 따라서, SFC는 NFV(Network Function Virtualization)와 밀접한 관계를 가지는 개념으로 이해될 수 있다.
SF(Service Function)는 수신된 패킷을 처리하는 기능 블록으로 이해될 수 있으며, 다양한 레이어의 프로토콜 스택에서 작동할 수 있다. SF는 논리적 구성으로서, 물리 네트워크 구성(physical network component)에 임베디드된 가상 요소(virtual element)를 의미할 수 있다. 또한, 복수의 SF가 하나의 네트워크 구성에 임베디드될 수 있다. 예를 들어, SF는 Firewall, IPS(Intrusion Prevention System), DPI(Deep Packet Inspection) 및 NAT(Network Address Translation) 기능을 수행하는 개념 요소를 의미할 수 있다.
SFF(Service Function Forwarder)는 수신된 패킷을 SF에 전달하는 기능을 수행한다. 즉, SFF는 SFC encapsulation에서 전달된 정보에 따라 적어도 하나의 SF에 트래픽 또는 패킷을 전달할 수 있다. 또한, SFF는 패킷을 다른 SFF에 전달하는 기능을 수행할 수 있다.
SFP(Service Function Path)는 추상적 개념의 SFC를 구현하기 위해 패킷이 경유하는 실제의 네트워크 경로를 의미할 수 있다. SFP 상에는 복수의 SF가 존재할 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 서버 내에 구성된 SFC를 설명하기 위한 예시도이고, 도 2는 서버 내에서 패킷을 처리하는 과정에서 발생하는 병목 현상을 설명하기 위한 예시도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 서버(100)는, 네트워크 인터페이스 카드(Network Interface Card, NIC)(210, 220), 복수의 서비스 기능(Service Function, SF)를 수행하는 복수의 가상 머신들(410, 420, 430) 및 스위치(300)로 구성될 수 있다.
스위치(300)는 SDN 또는 SFC를 지원할 수 있는 라우터를 의미할 수 있고, 복수의 가상 머신들(410, 420, 430)은 종단간 서비스에 필요한 다양한 서비스 기능들, 예를 들어, NAT(Network Address Translation), DPI(Deep Packet Inspection), 방화벽(Firewall), VPN(Virtual Private Network) 등을 지원할 수 있다.
외부 네트워크로부터 서버(100)의 네트워크 인터페이스 카드(Network Interface Card, NIC)(210)를 통해 수신된 트래픽은 설정된 SFC에 따른 경로로 처리될 수 있다.
예를 들어, 제1 SFC에 대한 경로가 설정된 트래픽에는 제2 SF와 제3 SF에 해당하는 기능이 수행될 수 있고, 제2 SFC에 대한 경로가 설정된 트래픽에는 제1 SF와 제3 SF에 해당하는 기능이 수행될 수 있다.
즉, 외부 네트워크를 통해 수신된 트래픽은 SFC 설정 정보를 포함할 수 있고, 서버(100)는 SFC 설정 정보에 따른 서비스 기능을 적용한 후 NIC(220)을 통해 다른 외부 네트워크로 트래픽을 전달할 수 있다.
도 2를 참조하면, 서버(100) 내에서 트래픽이 처리되는 과정에서 다양한 병목 현상이 발생할 수 있다.
보다 상세하게는, 서버(100)는 Host Kernel 영역과 Host User Space 영역으로 구분될 수 있고, Host Kernel 영역에는 NIC(210, 220)과 스위치(300)가 위치하고, Host User Space 영역에는 복수의 가상 머신들(410, 420, 430)이 위치할 수 있다.
또한, 복수의 가상 머신들(410, 420, 430)의 각각은 Guest Kernel 영역과 Guest User Space 영역으로 구분될 수 있다.
외부 네트워크를 통해 수신된 트래픽은 다음과 같이 각각의 구간에서 성능 저하가 발생할 수 있다.
A 구간: 물리 NIC에서 전달된 트래픽을 Host Kernel로 전달하는 구간
B 구간: Host Kernel에서 트래픽에 대해 알맞은 경로를 결정하는 구간
C 구간: 트래픽을 Host Kernel에서 Host User space로 전달하는 구간
D 구간: 트래픽을 Host Userspace에서 Guest Kernel로 전달하는 구간
E 구간: 트래픽을 Guest Kernel에서 Guest User space에 있는 서비스 기능으로 전달하는 구간
따라서, 서버(100) 내에는 패킷 처리에 대한 다양한 병목 현상을 해결하기 위해서 다양한 종류의 성능 가속화 기술이 적용될 수 있다.
도 3은 서버 내에서의 패킷 처리를 위한 성능 가속화 기술의 적용을 설명하기 위한 예시도이고, 도 4는 본 발명의 실시예에 따라 서버 내에서의 패킷 처리를 위한 성능 가속화 데이터 패스를 제어하기 위한 컨트롤러를 설명하기 위한 예시도이다.
도 3을 참조하면, 도 2와 같이 서버(100) 내에서 패킷이 처리되는 과정에서 발생하는 성능 저하를 극복하고자 다양한 성능 가속화 기술이 적용될 수 있다.
상세하게는, 서버(100) 내의 패킷 처리에 대한 다양한 병목 현상을 해결하기 위해서 Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though, Shared Memory와 같은 다양한 종류의 성능 가속화 기술이 적용될 수 있다.
예를 들어, 제1 NIC(210)와 제1 가상 머신(410) 사이에는 SR-IOV(10)가 지원될 수 있고, 제1 가상 머신(410)과 제2 가상 머신(420) 사이에는 Shared Memory(20)가 지원될 수 있으며, 제2 가상 머신(420)과 제2 NIC(220) 사이에는 DPDK Enabled vSwitch(500)와 위치하여 DPDK(31, 32)가 지원될 수 있다.
한편, 도 1 내지 도 3과 같이 NFV방식으로 서버(100) 내부에 SFC가 구성될 때, 데이터 패스(Data Path, DP)의 성능 개선을 위한 성능 가속화 기술이 적용될 수 있으나, 다양한 특성을 가진 성능 가속화 기술의 적용에 따른 문제가 발생할 수 있다.
본 발명의 실시예에 따른 성능 가속화 기술은 SFC의 서비스 기능을 HW가 아닌 SW로서 서버(100) 내에 Network Function Virtualization(NFV) 방식으로 구성한다. 따라서, SW 또는 가상화로 인한 패킷 처리과 정의 병목현상들로 인해 서비스 품질의 저하나, 필요 서버 자원의 증가로 인한 운용 비용의 증가를 초래할 수 있다.
특히, 성능 가속화 기술이 적용된 데이터 패스는 성능 가속화 기술의 특성에 따라 다양한 특성을 가지게 된다.
예를 들어, SR-IOV가 적용된 데이터 패스(10)의 경우에는 NIC(210)에서 물리적으로 패킷 포워딩이 이뤄지기 때문에, NIC(210)의 패킷 처리 속도와 거의 유사한 고성능의 대역폭, 지연 및 높은 안정성을 갖지만, 설정 가능한 포워딩 규칙과 동적인 네트워크 구성이 어렵다.
또한, Shared Memory가 적용된 데이터 패스(20)의 경우에는 제1 가상 머신(410)과 제2 가상 머신(420) 간에 최고 100G bps에 이를 정도로 높은 성능을 보이지만, 메모리를 공유하는 방식이기 때문에 안정성 면에서 취약하다.
더 나아가, 성능 가속화 기술이 적용된 데이터 패스는 서버(100) 내의 설정이 변경되거나, 서버(100)의 자원의 투입량이 변경됨에 따라 수시로 변경되는 특성(성능, 안정성)을 갖는다. 따라서, 트래픽의 상황에 따라 변경되는 데이터 패스의 성능 및 안정성에 대한 요구 사항을 빠르게 반영하는데는 한계가 있다. 또한, 지속적으로 새로운 종류의 성능 가속화 기술에 개발됨에 따라 이를 수용하여 기존의 데이터 패스의 운용과 호환되도록 운용하는 것이 어려운 실정이다.
즉, 서버(100) 내부에서 구성되는 SFC에서 단지 논리적인 서비스 기능과 가상 스위치에 대한 네트워크 구성 정보만으로 SFC가 구성되고, 해당 SFC에 해당되는 포워딩 규칙에 따라서만 패킷이 전달된다면, 효율적인 패킷 전달이라 할 수는 없을 것이다.
도 4를 참조하면, 본 발명의 실시예에 따른 서버(100)는 컨트롤러(600)에 의해 관리 및 제어될 수 있다.
컨트롤러(600)는 SFC 관리 모듈(610)과 성능 가속화 데이터 패스(DP) 관리 모듈(620)을 포함하여 구성될 수 있으나, 이에 한정되는 것은 아니다.
먼저, SFC 관리 모듈(610)은 사용자의 요구에 따른 SFC 트래픽을 위한 데이터 패스의 요구 사항에 대한 정보를 수집하여 관리할 수 있고, 이를 이용하여 SFC 트래픽의 경로를 제어할 수 있다.
다음으로, 성능 가속화 DP 관리 모듈(620)은 서버(100) 내에 적용된 성능 가속화 데이터 패스의 상태 및 변화를 모니터링하고, 이를 반영하여 SFC 트래픽의 경로를 제어할 수 있다.
또한, 서버(100) 내의 가상 머신(410, 420) 각각은 가상 스위츠(411, 421)를 포함하여 구성될 수 있다.
보다 상세하게는, 컨트롤러(600)는 서버(100) 내의 스위치에 연결되어 서버(100) 내의 성능 가속화 데이터 패스에 대한 정보를 취합할 수 있다. 예를 들어, 컨트롤러(600)는 확장된 OpenFlow 메시지를 통해 서버(100) 내부의 성능 가속화 데이터 패스의 구성 및 설정 정보를 수집 및 관리할 수 있다. 다만, 컨트롤러(600)가 활용하는 메시지는 OpenFlow 메시지에 한정되는 것은 아니다.
서비스 기능을 거치면서 변해가는 SFC 트래픽의 성능 가속화 DP의 상태 정보는 확장된 SFC 헤더에 명시될 수 있다. 성능 가속화 DP의 상태 정보는 서버(100)에 포함된 스위치(300) 또는 가상 스위치(411, 421)에 의해 SFC 헤더에 명시될 수 있으나, 이에 한정되는 것은 아니다.
또한, 컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 데이터 패스를 결정할 수 있고, 결정된 데이터 패스를 따라 SFC 트래픽이 처리되도록 서버(100)에 포함된 스위치(300) 또는 가상 스위치(411, 421)를 제어할 수 있다. 즉, 컨트롤러(600)는 서버(100) 내 성능 가속화 DP들의 구성, 상태, 특성 정보를 파악할 수 있으며, 이러한 정보를 기반으로 가상 머신(410, 420) 내부에 위치한 가상 스위치(411, 421)을 제어하여 SFC 트래픽을 처리할 수 있다.
따라서, 본 발명의 실시예에 따른 데이터 패스 제어 방법은, SDN 기술을 활용하여 1) SFC 트래픽 처리 상태에 따라 변경되는 데이터 패스의 요구 사항들 (예를 들어, 대역폭, 지연, 안정성)과 2) 서버의 구성에 따라 변경되는 성능 가속화 데이터 패스의 상태 정보를 수집 및 관리하고, 3) 수집 및 관리하는 정보(데이터 패스의 요구 사항 또는 성능 가속화 데이터 패스의 상태 정보)를 충족시키는 데이터 패스의 경로를 결정함으로써, 데이터 패스의 성능을 개선할 수 있다.
또한, 지속적으로 새로운 종류의 성능 가속화 기술에 개발됨에 따라 이를 수용하여 기존의 데이터 패스의 운용과 호환되도록 운용하기에 효율적이다.
따라서, 본 발명의 실시예에 따른 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 시스템은, 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신을 이용하여 SFC 트래픽을 처리하는 서버(100)와; 서버(100)로부터 수집된 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 SFC 트래픽이 경유할 데이터 패스를 결정하는 컨트롤러(600)를 포함하여 구성될 수 있다. 여기서, 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보는 SFC 트래픽을 위한 데이터 패킷의 헤더에 기록될 수 있다.
특히, 컨트롤러(600)는 서버(100)에 포함된 스위치(300) 및 복수의 가상 머신(410, 420)에 포함된 가상 스위치(411, 421)와 연동할 수 있다.
또한, 컨트롤러(600)는 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성하고, 생성된 플로우 테이블 변경 메시지를 서버(100)에 전송함으로써, SFC 트래픽이 결정된 데이터 패스에 따라 처리되도록 제어할 수 있다.
도 5는 본 발명의 실시예에 따라 서버 내에 데이터 패스를 설정하는 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 본 발명의 실시예에 따르면 외부 네트워크를 통해 수신되는 SFC 트래픽은 사용자의 요구 사항을 반영한 데이터 패스의 요구 사항에 대한 정보를 포함할 수 있고, 데이터 패스의 요구 사항에 따른 경로를 선택하여 SFC를 지원할 수 있다.
예를 들어, 외부 네트워크로부터 수신된 SFC 트래픽은 제1 SF로 처리된 후, 제2 SF로 처리되는 것으로 데이터 패스의 요구 사항이 설정될 수 있다(S511). 여기서, 제1 가상 머신(410)은 제1 SF를 지원하고, 제2 가상 머신(420)은 제2 SF를 지원할 수 있다.
스위치(300)는 외부 네트워크로부터 수신된 SFC 트래픽을 분석하여 데이터 패스의 요구 사항을 확인할 수 있다.
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 스위치(300)의 포트 정보를 스위치(300)에 요청할 수 있고, 이를 위하여 OFPT_MULTIPART_REQUEST 메시지를 활용할 수 있다(S513).
스위치(300)는 컨트롤러(600)의 요청에 따라 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 스위치(300)의 포트 정보를 컨터롤러(600)로 전송할 수 있고, 이를 위하여 OFPT_MULTIPART_REPLY 메시지를 활용할 수 있다(S515).
따라서, 컨트롤러(600)는 스위치(300)를 통해 수집한 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 스위치(300)의 포트 정보를 관리할 수 있다(S517).
스위치(300)는 SFC 트래픽을 처음 수신하게 되면, 플로우 테이블 엔트리에 일치하는 정보가 없기 때문에, OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전송할 수 있다(S521).
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 스위치(300)의 포트 정보 등을 고려하여 SFC 트래픽을 위한 데이터 패스를 결정할 수 있고(S523), 결정된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300)로 전송할 수 있다(S525).
스위치(300)는 OFPT_FLOW_MOD 메시지에 따라 SFC 트래픽이 제1 SF 및 제2 SF에 의해 순차적으로 처리되도록 할 수 있다.
상세하게는, 스위치(300)는 SFC 트래픽을 제1 가상 머신(410)으로 전달하고(S527), 제1 SF 처리가 완료된 SFC 트래픽을 제1 가상 머신(410)으로부터 수신할 수 있다(S529).
또한, 스위치(300)는 제1 SF 처리가 완료된 SFC 트래픽에 상응하는 OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전달할 수 있고(S531), 컨트롤러(600)는 SFC 트래픽에 대한 변경 사항을 반영하여 데이터 패스를 결정할 수 있다(S533).
컨트롤러(600)는 결정된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300)로 전송할 수 있다(S535).
스위치(300)는 SFC 트래픽을 제2 가상 머신(420)으로 전달하고(S537), 제2 SF 처리가 완료된 SFC 트래픽을 제2 가상 머신(410)으로부터 수신할 수 있다(S539).
스위치(300)는 제1 SF 및 제2 SF 처리가 완료된 SFC 트래픽에 상응하는 OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전달할 수 있고(S541), 컨트롤러(600)는 SFC 트래픽에 대한 변경 사항을 반영하여 데이터 패스를 결정할 수 있다(S543).
컨트롤러(600)는 결정된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300)로 전송할 수 있고(S545), 스위치(300)는 SFC 트래픽을 외부 네트워크로 전달할 수 있다(S547).
도 6은 본 발명의 일 실시예에 따라 서버 내의 성능 가속화 데이터 패스를 제어하는 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 컨트롤러(600)는 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 스위치(300) 및 가상 머신들(410, 420)에 요청할 수 있고, 이를 위하여 OFPT_MULTIPART_REQUEST 메시지를 활용할 수 있다(S611).
스위치(300) 및 가상 머신들(410, 420)은 컨트롤러(600)의 요청에 따라 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 컨터롤러(600)로 전송할 수 있고, 이를 위하여 OFPT_MULTIPART_REPLY 메시지를 활용할 수 있다(S613).
컨트롤러(600)는 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 고려하여 SFC 트래픽을 위한 데이터 패스를 결정할 수 있다(S621).
스위치(300)는 SFC 트래픽을 처음 수신하게 되면, 플로우 테이블 엔트리에 일치하는 정보가 없기 때문에, OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전송할 수 있다(S623).
컨트롤러(600)는 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 고려하여 결정된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300) 및 가상 머신들(410, 420)로 전송할 수 있다(S625).
스위치(300) 및 가상 머신들(410, 420)에서 성능 가속화 데이터 패스의 상태 변경이 발생할 수 있다(S630).
컨트롤러(600)는 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 스위치(300) 및 가상 머신들(410, 420)에 주기적으로 요청할 수 있고, 이를 위하여 OFPT_MULTIPART_REQUEST 메시지를 활용할 수 있다(S641).
스위치(300) 및 가상 머신들(410, 420)은 컨트롤러(600)의 요청에 따라 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 컨터롤러(600)로 전송할 수 있고, 이를 위하여 OFPT_MULTIPART_REPLY 메시지를 활용할 수 있다(S643).
컨트롤러(600)는 SFC 트래픽을 위한 성능 가속화 데이터 패스의 상태 정보를 고려하여 데이터 패스를 갱신할 수 있고(S651), 스위치(300)는 SFC 트래픽이 수신하게 되면, OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전송할 수 있다(S653).
컨트롤러(600)는 갱신된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300) 및 가상 머신들(410, 420)로 전송할 수 있다(S655).
도 7은 본 발명의 다른 실시예에 따라 서버 내의 성능 가속화 데이터 패스를 제어하는 방법을 설명하기 위한 흐름도이다.
도 7을 참조하면, 본 발명의 실시예에 따르면 외부 네트워크를 통해 수신되는 SFC 트래픽은 사용자의 요구 사항을 반영한 데이터 패스의 요구 사항에 대한 정보를 포함할 수 있고(S711), 데이터 패스의 요구 사항에 따른 경로를 선택하여 SFC를 지원할 수 있다.
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 스위치(300) 및 가상 머신들(410, 420)에 요청할 수 있고, 이를 위하여 OFPT_MULTIPART_REQUEST 메시지를 활용할 수 있다(S713).
스위치(300) 및 가상 머신들(410, 420)은 컨트롤러(600)의 요청에 따라 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 컨터롤러(600)로 전송할 수 있고, 이를 위하여 OFPT_MULTIPART_REPLY 메시지를 활용할 수 있다(S715).
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 고려하여 SFC 트래픽을 위한 데이터 패스를 결정할 수 있다(S721).
스위치(300)는 SFC 트래픽을 처음 수신하게 되면, 플로우 테이블 엔트리에 일치하는 정보가 없기 때문에, OFPT_PACKET_IN 메시지를 생성하여 컨트롤러(600)로 전송할 수 있다(S723).
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 고려하여 결정된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 스위치(300) 및 가상 머신들(410, 420)로 전송할 수 있다(S725).
제1 가상 머신(410)에서 성능 가속화 데이터 패스의 상태 변경이 발생할 수 있다(S731).
제1 가상 머신(410)은 성능 가속화 데이터 패스의 상태 변경에 따른 데이터 패스 변경을 컨트롤러(600)에 요청할 수 있다(S733).
컨트롤러(600)는 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 고려하여 데이터 패스를 갱신할 수 있다(S725).
컨트롤러(600)는 갱신된 데이터 패스가 SFC 트래픽에 적용되도록 플로우 테이블 변경을 위한 메시지인 OFPT_FLOW_MOD 메시지를 제1 가상 머신(410)으로 전송할 수 있다(S737).
따라서, 도 5 내지 도 7을 참조하면, 본 발명의 실시예에 따른 컨트롤러(600)에서 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 방법은 SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 수집하는 단계와; 데이터 패스에 대한 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 SFC 트래픽이 경유할 데이터 패스를 결정하는 단계와; SFC 트래픽이 결정된 데이터 패스에 따라 처리되도록 스위치(300)를 제어하는 단계를 포함한다. 여기서, 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보는 SFC 트래픽을 위한 데이터 패킷의 헤더에 기록될 수 있다.
또한, 컨트롤러(600)는 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성할 수 있고, 플로우 테이블 변경 메시지를 스위치(300)에 전송할 수 있다.
따라서, SFC 트래픽은, 복수의 가상화된 서비스 기능을 수행하는 서버(100) 내에서 처리될 수 있다.
또한, 본 발명의 실시예에 따른 서비스 기능 체이닝(Service Function Chaining, SFC)을 위해 복수의 가상화된 서비스 기능을 수행하는 서버(100)에서 수행되는 데이터 패스 제어 방법은, SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 컨트롤러(600)로 전달하는 단계와; 데이터 패스에 대한 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 컨트롤러(600)에 의해 결정된 데이터 패스에 따라 SFC 트래픽을 처리하는 단계를 포함한다.
그리고, 서버(100)는 컨트롤러(600)에 의해 결정된 데이터 패스에 따라 SFC 트래픽을 처리한 후, 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 갱신할 수 있다.
또한, 서버(100)는 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 컨트롤러(600)로부터 수신하고, 플로우 테이블 변경 메시지에 따라 플로우 테이블을 변경할 수 있다.
도 8은 본 발명의 실시예에 따라 서버 내의 성능 가속화 데이터 패스에 대한 설정을 설명하기 위한 예시도이고, 도 9는 본 발명의 실시예에 따라 서버 내의 성능 가속화 데이터 패스에 대한 변경을 설명하기 위한 예시도이며, 도 10은 본 발명의 실시예에 따라 서버 내의 신규 성능 가속화 데이터 패스에 대한 추가를 설명하기 위한 예시도이다.
도 8을 참조하면, 제1 NIC(210)와 제1 가상 머신(410) 사이에는 SR-IOV(10)가 지원될 수 있고, 제1 가상 머신(410)과 제2 가상 머신(420) 사이에는 Shared Memory(20)가 지원될 수 있으며, 제2 가상 머신(420)과 제2 NIC(220) 사이에는 DPDK Enabled vSwitch(500)와 위치하여 DPDK(31, 32)가 지원될 수 있다.
컨트롤러(600)는 서버(100) 내의 스위치에 연결되어 서버(100) 내의 성능 가속화 데이터 패스에 대한 정보를 취합할 수 있다. 예를 들어, 컨트롤러(600)는 확장된 OpenFlow 메시지를 통해 서버(100) 내부의 성능 가속화 데이터 패스의 구성 및 설정 정보를 수집 및 관리할 수 있다.
따라서, SFC 트래픽은 SR-IOV(10)을 통해 제1 가상 머신(410)으로 전달되고, Shared Memory(20)을 통해 제2 가상 머신(420)으로 전달되며, DPDK(31, 32)를 통해 외부 네트워크로 전달될 수 있다.
도 9를 참조하면, 제1 가상 머신(410)과 제2 가상 머신(420) 사이에 Shared Memory(20)가 지원되는 상태에서 일반 데이터 패스로 변경되는 경우를 설명한다. 즉, 도 9를 보면, 점선과 같은 Shared Memory(20)을 지원하는 상태에서 실선과 같은 일반 데이터 패스를 지원하는 것으로 변경될 수 있다.
또한, 도 10을 참조하면, 제2 가상 머신(420)와 제2 NIC(220) 사이에 DPDK Enabled vSwitch(500)를 추가하여 신규 성능 가속화 데이터 패스를 추가할 수 있다.
예를 들어, 도 10의 왼쪽 그림은 DPDK가 지원되지 않는 상태를 나타내고, 도 10의 오른쪽 그림은 DPDK가 신규 추가되어 지원되는 상태를 나타낸다.
즉, DPDK와 같은 신규 성능 가속화 데이터 패스가 추가된 경우에도 컨트롤러(600)는 이에 대한 변경 정보를 수집하고, 수집된 변경 정보에 상응하도록 SFC 트래픽의 데이터 패스를 결정할 수 있고, 결정된 데이터 패스를 SFC 트래픽에 적용함으로써, 성능 가속화 데이터 패스의 변경에 능동적으로 대처할 수 있도록 한다.
상술한 본 발명의 실시예에 따른 SFC를 위한 데이터 패스 제어 방법은, SDN 기술을 활용하여 SFC 트래픽 처리 상태에 따라 변경되는 데이터 패스의 요구 사항들(예를 들어, 대역폭, 지연, 안정성) 및 서버의 구성에 따라 변경되는 성능 가속화 데이터 패스의 상태 정보를 효과적으로 수집/관리할 수 있다.
또한, 데이터 패스의 요구 사항 또는 성능 가속화 데이터 패스의 상태 정보를 충족시키는 데이터 패스의 경로를 결정함으로써, 데이터 패스의 성능을 개선시킬 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 서버 210: 제1 NIC
220: 제2 NIC 300: 스위치
410: 제1 가상 머신 420: 제2 가상 머신
411: 제1 가상 스위치 421: 제2 가상 스위치
500: DPDK Enabled vSwitch 600: 컨트롤러
610: SFC 관리 모듈 620: 성능 가속화 DP 관리 모듈

Claims (17)

  1. 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하기 위한, 소프트웨어 정의 네트워크(Software Defined Network, SDN) 컨트롤러에서 수행되는 방법에 있어서,
    SFC 트래픽을 위한 서비스 체인을 구성하는 서비스 기능들 간의 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 수집하는 단계;
    상기 데이터 패스에 대한 요구 사항 및 상기 성능 가속화 데이터 패스의 상태 정보에 기반하여 상기 SFC 트래픽이 경유할 데이터 패스를 결정하는 단계; 및
    상기 SFC 트래픽이 상기 결정된 데이터 패스에 따라 처리되도록 스위치를 제어하는 단계를 포함하는,
    데이터 패스 제어 방법.
  2. 청구항 1에 있어서,
    상기 성능 가속화 데이터 패스는,
    Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though 및 Shared Memory 기법 중 적어도 하나가 적용된 것을 특징으로 하는,
    데이터 패스 제어 방법.
  3. 청구항 1에 있어서,
    상기 데이터 패스의 요구 사항 및 상기 성능 가속화 데이터 패스의 상태 정보는,
    상기 SFC 트래픽을 위한 데이터 패킷의 헤더에 기록되는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  4. 청구항 1에 있어서,
    상기 결정된 데이터 패스에 따라 처리되도록 제어하는 단계는,
    상기 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성하는 단계; 및
    상기 플로우 테이블 변경 메시지를 상기 스위치에 전송하는 단계를 포함하는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  5. 청구항 1에 있어서,
    상기 SFC 트래픽은,
    복수의 가상화된 서비스 기능을 수행하는 서버 내에서 처리되는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  6. 청구항 5에 있어서,
    상기 서버는,
    상기 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신 및 복수의 가상 스위치를 포함하여 구성되는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  7. 청구항 6에 있어서,
    상기 컨트롤러는,
    상기 복수의 가상 머신 및 상기 복수의 가상 스위치와 연동하여 상기 SFC 트래픽을 위한 데이터 패스를 제어하는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  8. 서비스 기능 체이닝(Service Function Chaining, SFC)을 위해 복수의 가상화된 서비스 기능을 수행하는 서버에서 수행되는 데이터 패스 제어 방법에 있어서,
    SFC 트래픽을 위한 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 컨트롤러로 전달하는 단계; 및
    상기 데이터 패스에 대한 요구 사항 및 상기 성능 가속화 데이터 패스의 상태 정보에 기반하여 상기 컨트롤러에 의해 결정된 데이터 패스에 따라 상기 SFC 트래픽을 처리하는 단계를 포함하는,
    데이터 패스 제어 방법.
  9. 청구항 8에 있어서,
    상기 성능 가속화 데이터 패스는,
    Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though 및 Shared Memory 기법 중 적어도 하나가 적용된 것을 특징으로 하는,
    데이터 패스 제어 방법.
  10. 청구항 8에 있어서,
    상기 컨트롤러에 의해 결정된 데이터 패스에 따라 상기 SFC 트래픽을 처리한 후,
    상기 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  11. 청구항 8에 있어서,
    상기 컨트롤러에 의해 결정된 데이터 패스에 따라 상기 SFC 트래픽을 처리하는 단계는,
    상기 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 상기 컨트롤러로부터 수신하는 단계; 및
    상기 플로우 테이블 변경 메시지에 따라 플로우 테이블을 변경하는 단계를 포함하는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  12. 청구항 8에 있어서,
    상기 서버는,
    상기 복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신 및 복수의 가상 스위치를 포함하여 구성되는 것을 특징으로 하는,
    데이터 패스 제어 방법.
  13. 서비스 기능 체이닝(Service Function Chaining, SFC)을 위한 데이터 패스를 제어하는 시스템에 있어서,
    복수의 가상화된 서비스 기능을 수행하는 복수의 가상 머신을 이용하여 SFC 트래픽을 처리하는 서버; 및
    상기 서버로부터 수집된 상기 SFC 트래픽을 위한 서비스 체인을 구성하는 서비스 기능들 간의 데이터 패스의 요구 사항 및 성능 가속화 데이터 패스의 상태 정보에 기반하여 상기 SFC 트래픽이 경유할 데이터 패스를 결정하는 소프트웨어 정의 네트워크(Software Defined Network, SDN) 컨트롤러를 포함하는,
    데이터 패스 제어 시스템.
  14. 청구항 13에 있어서,
    상기 컨트롤러는,
    상기 서버에 포함된 스위치 및 상기 복수의 가상 머신에 포함된 가상 스위치와 연동하는 것을 특징으로 하는,
    데이터 패스 제어 시스템.
  15. 청구항 13에 있어서,
    상기 성능 가속화 데이터 패스는,
    Data Plane Development Kit(DPDK), Single Root I/O Virtualization(SR-IOV), PIC Path-though 및 Shared Memory 기법 중 적어도 하나가 적용된 것을 특징으로 하는,
    데이터 패스 제어 시스템.
  16. 청구항 13에 있어서,
    상기 데이터 패스의 요구 사항 및 상기 성능 가속화 데이터 패스의 상태 정보는,
    상기 SFC 트래픽을 위한 데이터 패킷의 헤더에 기록되는 것을 특징으로 하는,
    데이터 패스 제어 시스템.
  17. 청구항 13에 있어서,
    상기 컨트롤러는,
    상기 결정된 데이터 패스의 적용을 위한 플로우 테이블 변경 메시지를 생성하고, 상기 생성된 플로우 테이블 변경 메시지를 상기 서버에 전송함으로써, 상기 SFC 트래픽이 상기 결정된 데이터 패스에 따라 처리되도록 제어하는 것을 특징으로 하는,
    데이터 패스 제어 시스템.
KR1020160022573A 2016-02-25 2016-02-25 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템 KR101788961B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160022573A KR101788961B1 (ko) 2016-02-25 2016-02-25 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160022573A KR101788961B1 (ko) 2016-02-25 2016-02-25 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170100250A KR20170100250A (ko) 2017-09-04
KR101788961B1 true KR101788961B1 (ko) 2017-10-20

Family

ID=59924297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160022573A KR101788961B1 (ko) 2016-02-25 2016-02-25 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101788961B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102420481B1 (ko) * 2019-12-10 2022-07-14 디노플러스 (주) 적응형 데이터 계측 가속화 기술을 이용한 저지연 클라우드 서비스제공장치
CN117339199B (zh) * 2023-10-27 2024-04-12 常州贝壳网络科技有限公司 一种多路径游戏加速系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150215172A1 (en) * 2014-01-30 2015-07-30 Cisco Technology, Inc. Service-Function Chaining
JP2015524237A (ja) * 2012-10-05 2015-08-20 エヌイーシー ラボラトリーズ アメリカ インクNEC Laboratories America, Inc. ネットワーク管理

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015524237A (ja) * 2012-10-05 2015-08-20 エヌイーシー ラボラトリーズ アメリカ インクNEC Laboratories America, Inc. ネットワーク管理
US20150215172A1 (en) * 2014-01-30 2015-07-30 Cisco Technology, Inc. Service-Function Chaining

Also Published As

Publication number Publication date
KR20170100250A (ko) 2017-09-04

Similar Documents

Publication Publication Date Title
US20220141138A1 (en) Fast data center congestion response
US11394649B2 (en) Non-random flowlet-based routing
CN110943924B (zh) 网络中分段源路由的方法及存储介质
US20150312147A1 (en) Switching system, switching control system, and storage medium
EP2615782A1 (en) Computer system and communication method in computer system
WO2011087085A1 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
EP3771163A1 (en) Using and processing per slice segment identifers in a network employing segment routing
KR20130128461A (ko) 통신 제어 시스템, 스위치 노드 및 통신 제어 방법
US10050906B2 (en) Virtual node having separate control and data planes
KR20160122226A (ko) 통신 시스템, 제어 장치, 통신 제어 방법 및 프로그램
KR101788961B1 (ko) 서비스 기능 체이닝을 위한 성능 가속화 데이터 패스를 제어하는 방법 및 시스템
CN109981456B (zh) 网络装置内用于分组重新排序的方法和装置
CN113330715A (zh) 用于检测自动化网络中的网络用户的方法和自动化网络
KR101812856B1 (ko) 스위치 장치, vlan 설정 관리 방법, 및 컴퓨터 판독가능 저장매체
KR102455367B1 (ko) 패킷 송신 방법, 장치 및 시스템, 및 저장 매체
CN114422415B (zh) 在分段路由中的出口节点处理流
KR101867881B1 (ko) 서비스 기능 체이닝을 운용하는 방법, 장치 및 컴퓨터 프로그램
Singh et al. INT-SDN: Evaluation of various P4 parameters using optical telemetry having reconfigurable data plane on 40 Gbps line rate
US20130188647A1 (en) Computer system fabric switch having a blind route
US10523597B2 (en) Data center network node
WO2012043731A1 (ja) データ処理システムと方法
US9749236B2 (en) Increased network scalability by router aware switches
JPWO2015052854A1 (ja) トラフィック管理システムおよびトラフィック管理方法
EP3029953B1 (en) Input module and central control unit for a switching system and switching system thereof
CN115150313A (zh) 发送报文、生成路由的方法、装置、存储介质及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant