KR20160042441A - 애플리케이션-인식 네트워크 관리 - Google Patents

애플리케이션-인식 네트워크 관리 Download PDF

Info

Publication number
KR20160042441A
KR20160042441A KR1020167006416A KR20167006416A KR20160042441A KR 20160042441 A KR20160042441 A KR 20160042441A KR 1020167006416 A KR1020167006416 A KR 1020167006416A KR 20167006416 A KR20167006416 A KR 20167006416A KR 20160042441 A KR20160042441 A KR 20160042441A
Authority
KR
South Korea
Prior art keywords
network
application
application identification
flow
module
Prior art date
Application number
KR1020167006416A
Other languages
English (en)
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 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피
Publication of KR20160042441A publication Critical patent/KR20160042441A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/803Application aware

Abstract

일 구현형태에서, 애플리케이션-인식 네트워크 제어 시스템은 네트워크 흐름이 인스턴스화되었다고 결정하고, 네트워크 흐름이 인스턴스화되었다고 결정하는 것에 응답하여 상기 네트워크 흐름과 연관되는 네트워크 흐름 피쳐를 유도하며, 상기 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공한다. 애플리케이션 식별 신호에 응답하여, 애플리케이션-인식 네트워크 제어 시스템은 네트워크 흐름 피쳐를 유도하는 것을 중지하고, 애플리케이션 식별 모듈로부터 수신되는 애플리케이션 식별 보고에 기초하여 흐름 동작을 네트워크 흐름에 적용한다.

Description

애플리케이션-인식 네트워크 관리{APPLICATION-AWARE NETWORK MANAGEMENT}
본 발명은 애플리케이션-인식 네트워크 관리에 관한 것이다
몇 가지 네트워크 관리 시스템(예를 들어, 네트워크 디바이스 및/ 또는 네트워크 디바이스에서 호스팅되는 소프트웨어)은 상기 애플리케이션이 통신하는 매체인 네트워크 연결의 정적 속성에 기초하여 애플리케이션-인식 네트워크 관리 기능(또는 성능)을 제공하려고 시도한다. 예를 들어, 몇 가지 네트워크 관리 시스템은 네트워크를 통하여 통신하는 애플리케이션의 아이덴티티를 포트 번호, 인터넷 프로토콜(IP) 어드레스, 도메인 명칭, 또는 이들의 조합을 식별함으로써 결정한다.
다른 네트워크 관리 시스템은 데이터 패킷 내에 포함되는 서비스 품질(QoS) 값을 존중하는데, 이 값을 사용하여 말단-사용자 디바이스 상의 애플리케이션은 자기 자신의 등급을 매길 수 있다. 이러한 네트워크 관리 시스템은 애플리케이션의 아이덴티티를 결정하기 위하여 묵시적으로 애플리케이션에 의하여 제공되는 QoS 정보를 신뢰한다. 또 다른 네트워크 관리 시스템은 애플리케이션을 식별하기 위하여 심층 패킷 검사(deep packet inspection; DPI)에 의존한다. 하나 이상의 애플리케이션의 아이덴티티를 결정한 이후에, 이러한 네트워크 관리 시스템은 애플리케이션의 아이덴티티에 기초하여 네트워크를 제공한다(예를 들어, 네트워크의 서비스 품질(QoS) 파라미터 또는 방화벽 파라미터를 변경한다).
도 1 은 일 구현형태에 따르는 통신 네트워크 및 애플리케이션-인식 네트워크 제어 시스템을 포함하는 환경의 개략적인 블록도이다.
도 2 는 일 구현형태에 따르는 애플리케이션-인식 네트워크 관리 프로세스의 흐름도이다.
도 3 은 일 구현형태에 따르는 네트워크 제어기와 네트워크 디바이스 사이의 통신 흐름을 예시하는 다른 다이어그램이다.
도 4 는 다른 구현형태에 따르는 애플리케이션-인식 네트워크 관리 프로세스의 흐름도이다.
도 5 는 일 구현형태에 따르는 애플리케이션-인식 네트워크 제어 시스템을 호스팅하는 네트워크 디바이스의 개략적인 블록도이다.
애플리케이션 인식을 제공하기 위하여(즉, 네트워크 연결을 통하여 통신하는 애플리케이션을 식별하기 위하여) 그러한 네트워크 연결의 정적 속성에 의존하는 네트워크 관리 시스템(예를 들어, 네트워크 디바이스 및/또는 네트워크 디바이스에서 호스팅되는 소프트웨어)은 흔히 다양한 이유 때문에 애플리케이션의 아이덴티티를 정확하게 결정할 수 없다. 예를 들어, 많은 애플리케이션은 그들이 통신하는 매체인 네트워크 연결의 세션 단위 속성(예를 들어, 애플리케이션 포트 번호)을 동적으로 협상한다. 다르게 말하면, 이러한 애플리케이션이 의존하는 네트워크 연결의 속성은 사전에 정의되지 않는다. 따라서, 네트워크 관리 시스템은 애플리케이션을 식별하기 위하여 네트워크 연결의 정적으로 정의된 속성에 의존할 수 없다.
또한, 많은 애플리케이션은 이러한 정적 속성을 공유하는 네트워크 연결을 통하여 통신한다. 예를 들어, 보이스 오버 인터넷 프로토콜(VoIP) 애플리케이션의 그룹은 각각 공통 포트 번호를 사용하여 네트워크 연결을 통해 통신할 수 있다. 따라서, 이러한 애플리케이션은 그들의 네트워크 연결의 이러한 속성에 의하여 개별적으로 식별될 수 없다. 다른 예로서, 많은 그 외의 애플리케이션 및 애플리케이션의 그 외의 클래스는 데이터를 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol; HTTP) 또는 하이퍼텍스트 전송 프로토콜 시큐어(Hypertext Transfer Protocol Secure; HTTPS)를 사용하여 전송한다. 결과적으로, 이러한 애플리케이션의 네트워크 연결의 데이터 패킷 헤더 내에 포함되는 세션 단위 속성 중 많은 것 또는 모든 것이 동일하게 된다. 이러한 네트워크 연결의 세션 단위 속성이 많은 애플리케이션에 걸쳐 공유되기 때문에, 이러한 네트워크 관리 시스템은 이러한 애플리케이션의 식별자를 정적 속성에 기초하여 결정할 수 없다.
더욱이, 애플리케이션(예를 들어, 말단-사용자 디바이스 또는 네트워크를 통하여 통신하는 다른 디바이스에서 호스팅되는 애플리케이션)에 의하여 제공되는 식별 정보에 의존하는 네트워크 관리 시스템은 애플리케이션으로부터 잘못된 정보가 제공되는 것에 취약적이게 된다. 예를 들어, 애플리케이션은, 이러한 네트워크 관리 시스템이 의도되지는 않지만 바람직한 방식으로(예를 들어, 향상된 서비스 품질(QoS), 추가적 쓰루풋 또는 그러한 애플리케이션용의 리던던트 통신 링크) 네트워크를 제공하게 하는 것이 소망되는 서비스의 클래스를 요청하거나 식별함으로써, 스스로를 다른 더 높은 우선순위 애플리케이션인 것으로 식별할 수 있다. 이러한 네트워크 관리 시스템은 애플리케이션에 의하여 제공되는 식별 정보를 묵시적으로 식별하기 때문에, 이러한 네트워크 관리 시스템은 애플리케이션에 의하여 제공되는 오정보에 기초하여 네트워크를 제공할 수 있어서, 결과적으로 네트워크 구축자나 관리자에 의하여 의도되지 않는 네트워크 내로 리소스가 할당되게 된다.
심층 패킷 검사(DPI)는 애플리케이션에 의하여 교환되는 데이터를 분석함으로써 정확한 애플리케이션 식별을 제공할 수 있지만, 높은 계산 비용이 발생하고 스케일링하기가 어려우며, 단-대-단 암호화된 트래픽(예를 들어, 가상 사설 네트워크(virtual private network; VPN), 하이퍼텍스트 수송 프로토콜 시큐어(HTTPS) 통신, 및 보안 실시간 프로토콜(secure real-time protocol; SRTP) 통신)에서 사용하기에는 신뢰성이 없다. 결과적으로, DPI는 통상적으로, 네트워크 연결로부터의 데이터 분석을 위하여 미러링되거나 전달되는 하이엔드 네트워크 장비 또는 전용 컴퓨팅 시스템에서 수행된다.
본 명세서에서 논의되는 구현형태는 애플리케이션-인식 네트워크 관리를 위하여 통신 네트워크 내의 효율적 애플리케이션 식별을 용이하게 하는 시스템 및 방법론을 설명한다. 예를 들어, 본 명세서에서 논의되는 구현형태는, 네트워크의 제어 평면 내에서 애플리케이션 식별 에이전트에 의하여 제공되는 애플리케이션 식별자를 사용하여 애플리케이션 분류자를 생성하고, 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하며, 그러한 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용하여 통신 네트워크 내에서 해당 네트워크 흐름을 통하여 통신하는 애플리케이션의 아이덴티티를 결정하는 네트워크 디바이스를 포함한다. 더욱이, 몇 가지 본 명세서에서 논의되는 구현형태는 애플리케이션 서명을 유지하기 위하여 인간의 노력을 요구하지 않는 방식으로 애플리케이션-인식 네트워크 관리를 수행한다. 그러면 네트워크 디바이스는 애플리케이션의 아이덴티티 에 기초하여 네트워크 흐름에 동작을 적용하고, 애플리케이션 프로그래밍 인터페이스(API)와 같은 인터페이스를 통하여 애플리케이션의 아이덴티티를 다른 네트워크 디바이스 또는 네트워크 제어기로 제공하며(또는 이용가능하게 하며), 및/또는 통신 네트워크를 관리하기 위하여 애플리케이션의 아이덴티티를 이용할 수 있다. 이러한 시스템 및 방법론은, 이들이 네트워크 관리를(예를 들어, 동작을 적용하는 것) 애플리케이션의 아이덴티티에 기초하여 수행하기 때문에 애플리케이션-인식형이라고 불릴 수 있다.
더욱이, 본 명세서에서 논의되는 몇 가지 구현형태는 프로그래밍가능한 네트워크 또는 소프트웨어-정의 네트워크(software-defined network; SDN)에 유리하게 적용될 수 있다. 이러한 구현형태에서, 결정에 관련된 기능 또는 네트워크 흐름이 어떻게 처리되는지(즉, 제어 평면)에 대한 지능은 네트워크 흐름(즉, 데이터 평면) 내의 데이터의 교환과 분리되거나 디커플링된다. 결과적으로, 본 명세서에서 논의되는 방법론은 SDN 내의 다양한 네트워크 디바이스에 적용될 수 있다.
특정한 예로서, SDN은 네트워크 흐름의 전달에 관련되는 네트워크 디바이스로 명령을 제공하는 제어 평면 내에서 제어기(또는 네트워크 제어기 또는 제어기들의 클러스터)를 포함할 수 있다. 이러한 네트워크 디바이스 중 일부는 네트워크 흐름과 연관되는 애플리케이션을 식별하기 위하여 애플리케이션 식별 모듈을 호스팅할 수 있다. 이러한 네트워크 디바이스는 애플리케이션 분류자를 제어기로부터 수신하고, 네트워크 흐름과 연관되는 애플리케이션을 식별하기 위해 애플리케이션 식별 모듈 내의 이러한 애플리케이션 분류자를 적용할 수 있다. 다른 네트워크 디바이스는 애플리케이션 식별 모듈을 호스팅하지 않을 수도 있다. 이러한 네트워크 디바이스는 네트워크 흐름 또는 그것의 네트워크 흐름 피쳐를 제어기(또는 제어 평면 내의 일부 다른 네트워크 디바이스 또는 서비스)로 전달할 수 있고, 네트워크 제어기는 네트워크 흐름과 연관되는 애플리케이션을 식별하기 위하여 애플리케이션 식별 모듈 내의 이러한 애플리케이션 분류자를 적용할 수 있다.
제어기가 애플리케이션 분류자를 애플리케이션 식별 모듈을 호스팅할 수 있는 네트워크 디바이스로 제공하고, 애플리케이션 식별 모듈을 호스팅할 수 없는 네트워크 디바이스의 네트워크 흐름을 분류하기 때문에, 애플리케이션은 SDN에 걸쳐 일관적으로 식별될 수 있다. 더욱이, 제어기는 정책을 SDN에 걸쳐서 분산하거나 액세스가능하게 할 수 있다. 이러한 정책은 특정 애플리케이션과 연관되는 네트워크 흐름(예를 들어, 네트워크 디바이스에서 또는 네트워크 디바이스에 의하여)으로 적용될 동작을 정의할 수 있고, SDN 내에서 일관적으로 적용될 수 있다. 추가적으로, 다양한 이종 네트워크 디바이스를 횡단하는 네트워크 흐름이 분류될 수 있다(즉, 그러한 네트워크 흐름과 연관되는 애플리케이션이 식별될 수 있다). 즉, 네트워크 흐름은 애플리케이션 식별 모듈을 호스팅하는 것을 지원하는 네트워크 디바이스에서 또는 애플리케이션 식별 모듈을 호스팅하는 것을 지원하지 않는 네트워크 디바이스에 대한 제어 평면 내에(예를 들어, 제어기 또는 제어 평면 내의 다른 네트워크 디바이스 또는 서비스에서) 분류될 수 있다.
SDN 내에서의, 본 명세서에서 논의되는 구현형태들의 다른 예로서, 네트워크 흐름과 연관되는 애플리케이션에 관련되는 그라운드 트루스(ground truth) 데이터(예를 들어, 특정 네트워크 흐름과 연관되는 애플리케이션 식별 에이전트에 의하여 제공되는 애플리케이션 식별자)는 다양한 애플리케이션 식별 에이전트로부터, SDN의 다른 부분 또는 세그먼트로부터 수신될 수 있다. 즉, 네트워크 디바이스는 이러한 그라운드 트루스를 제어기로 제공할 수 있고, 제어기는 이러한 그라운드 트루스에 기초하여 애플리케이션 분류자를 SDN을 거쳐 네트워크 디바이스로 제공할 수 있다. 이에 상응하여, 그라운드 트루스 데이터는 개개의 네트워크 디바이스, 작은 그룹의 네트워크 디바이스, 또는 SDN의 제한된 부분 또는 세그먼트가 아니라 SDN에 걸쳐서 널리 적용될 수 있다. 추가적으로, 어느 SDN 내에서, 제어기는 그라운드 트루스 데이터를 다른 SDN 내의 제어기로 제어부; 따라서 그라운드 트루스는 임의의 SDN에 걸쳐 그리고 애플리케이션 식별 에이전트가 없는 디바이스만을 포함하는 개개의 논리적, 가상화된, 또는 물리적 통신 네트워크를 포함하는 임의의 디바이스에 걸쳐 널리 그리고 일관적으로 적용될 수 있다.
도 1 은 일 구현형태에 따르는 통신 네트워크 및 애플리케이션-인식 네트워크 제어 시스템을 포함하는 환경의 개략적인 블록도이다. 도 1 에 도시된 환경(100)은 애플리케이션-인식 네트워크 제어 시스템(110), 분류자 트레이닝 모듈(들)(120), 애플리케이션 식별 모듈(들)(130), 에이전트(141 및 142), 통신 네트워크(160), 및 네트워크 서비스(191 및 192)를 포함한다. 애플리케이션-인식 네트워크 제어 시스템(110)은 통신 네트워크(160)의 네트워크 흐름을 통해서 통신하는 애플리케이션의 식별을 가능하게 하는 시스템이다.
도 1 에 도시된 바와 같이, 애플리케이션-인식 네트워크 제어 시스템(110)은 애플리케이션-인식 네트워크 제어 시스템(110)의 다양한 기능을 수행하는 모듈의 그룹을 포함한다. 본 명세서에서 사용될 때, 용어 "모듈"은 하드웨어(예를 들어, 집적 회로 또는 다른 회로 또는 프로세서-판독가능 매체와 같은 프로세서 이러한) 및 소프트웨어(예를 들어, 머신- 또는 프로세서-실행가능한 명령, 커맨드, 또는 펌웨어, 프로그래밍, 또는 오브젝트 코드와 같은 코드)의 조합을 가리킨다. 하드웨어 및 소프트웨어의 조합은 하드웨어만(즉, ASIC과 같이 소프트웨어 엘리먼트가 없는 하드웨어 엘리먼트), 하드웨어에서 호스팅되는 소프트웨어(예를 들어, RAM과 같은 메모리, 하드-디스크 또는 고상 드라이브, 저항성 메모리, 또는 DVD와 같은 광학적 미디어에 저장되고 프로세서에서 실행되거나 해석되는 소프트웨어), 또는 하드웨어에서 호스팅되는 하드웨어 및 소프트웨어를 포함한다.
검출 모듈(111)은 통신 네트워크 내에서의 네트워크 흐름의 인스턴스화(instantiation)를 검출하는 하드웨어 및 소프트웨어의 조합이다. 네트워크 흐름은 통신 네트워크를 통하여 전파되거나 교환되거나 송신되는 관련된 데이터의 콜렉션이다. 예를 들어, 네트워크 흐름은 관련된 데이터 패킷의 그룹일 수 있다. 더욱 특정한 예로서, 네트워크 흐름은 특정 포트 번호가 있는 전송 제어 프로토콜(Transport Control Protocol; TCP) 연결, 두 개의 인터넷 프로토콜(IP) 어드레스 사이에서 교환되는 범용 데이터그램 프로토콜 데이터 패킷 또는 메시지의 그룹, 특정 미디어 액세스 제어(Media Access Control; MAC) 어드레스 또는 IP 어드레스로부터의 또는 그것으로 향하는 모든 데이터 패킷, 공통(즉, 동일한) 가상 근거리 네트워크(Virtual Local Area Network; VLAN) 태그(즉, 식별자)가 있는 데이터 패킷, 또는 공통 네트워크 디바이스(예를 들어, 스위치) 물리적 포트로부터 또는 그것으로 향하는 모든 데이터 패킷일 수 있다.
검출 모듈(111)은 네트워크 디바이스(또는 거기에 호스팅되는 소프트웨어)와 통신하거나 이를 모니터링하여 새로운 네트워크 흐름이 언제 인스턴스화되었는지를 결정한다. 예를 들어, 검출 모듈(111)은 네트워크 디바이스 내의 액세스 테이블(예를 들어, 포워딩 또는 라우팅 테이블)에 액세스하고, 네트워크 디바이스(또는 거기에 호스팅되는 소프트웨어) 또는 네트워크 디바이스와 연관되는 네트워크 제어기로부터 신호(또는 통지)를 수신하며, 또는 네트워크 디바이스와 네트워크 제어기 사이의 통신을 해석하여, TCP 연결과 같은 네트워크 연결이 요청되거나 구축되었다고 결정한다.
선택 모듈(112)은, 다양한 방법론에 따라서 애플리케이션 분류자를 생성하기 위하여 사용될, 검출 모듈(111)에 의하여 검출되는 새롭게(또는 최근) 인스턴스화된 네트워크 흐름 중에서 네트워크 흐름을 선택한다. 예를 들어, 선택 모듈(112)은 수집 모듈(113)과 통신하여 검출 모듈(111)에 의하여 검출된 새롭게 인스턴스화된 네트워크 흐름 중 어느 것에 대하여 애플리케이션 식별자가 이용가능한지(예를 들어, 좀 더 상세하게 후술되는 바와 같이 수집 모듈(113)에 의하여 수신되었는지)를 결정할 수 있고, 그러한 네트워크 흐름을 선택할 수 있다. 몇 가지 구현형태들에서, 모든 이러한 네트워크 흐름(즉, 애플리케이션 식별자가 이용가능한 네트워크 흐름)은 선택 모듈(112)에 의하여 선택된다. 다른 구현형태들에서, 이러한 네트워크 흐름의 서브세트가 선택 모듈(112)에 의하여 선택된다. 따라서, 몇 가지 구현형태들에서, 애플리케이션 식별자가 이용가능한 대상인 모든 네트워크 흐름이 선택 모듈(112)에 의하여 선택되는 것은 아니다.
일 예로서, 몇 가지 구현형태들에서, 애플리케이션 식별자가 이용가능한 새롭게 인스턴스화된 네트워크 흐름으로부터의 네트워크 흐름은 무작위로 선택되어, 예를 들어 처리 오버헤드를 감소시키고 애플리케이션-인식 네트워크 제어 시스템의 확장성을 증가시킨다. 본 명세서에서 사용될 때, 용어 "랜덤" 및 "무작위로"는 순전히 랜덤한 프로세스 또는 메커니즘 및 준-무작위 프로세스 또는 메커니즘 모두에 적용된다. 따라서, 애플리케이션 식별자가 이용가능한 새롭게 인스턴스화된 네트워크 흐름으로부터의 네트워크 흐름은, 예를 들어, 준무작위 번호 생성기, 순수한 랜덤 입력, 또는 이들의 조합(예를 들어, 순수한 랜덤 입력을 시드 값으로서 가지는 준무작위 번호 생성기)을 사용하여 무작위로 선택될 수 있다.
다른 예로서, 선택 모듈(112)은 수집 모듈(113)과 통신하여, 어떤 네트워크 흐름이 애플리케이션 식별 에이전트를 호스팅하는 특정 컴퓨팅 시스템에 의하여 요청되거나 개시되는지를 결정할 수 있고(또는 특정 애플리케이션 식별 에이전트를 호스팅하는 컴퓨팅 시스템에 의하여), 그러한 네트워크 흐름을 선택할 수 있다. 다르게 말하면, 선택 모듈(112)은 특정 컴퓨팅 시스템(또는 그러한 계산 시스템에서 호스팅되는 특정 애플리케이션 식별 에이전트)을 가지는 네트워크 흐름을 통신 네트워크를 통한 통신의 종단점(또는 종단점의 호스트)으로서 선택할 수 있다.
또 다른 예로서, 선택 모듈(112)은 수집 모듈(113)과 통신하여, 애플리케이션 식별자가 이용가능한 네트워크 흐름에 대한(또는 이와 연관되는) 애플리케이션 식별자(예를 들어, 애플리케이션 명칭 또는 타입)를 결정할 수 있다. 그러면 선택 모듈(112)은 특정 애플리케이션 또는 특정 애플리케이션과 연관되는 네트워크 흐름의 일부 또는 퍼센트와 연관되는(예를 들어, 이것으로 가거나 이것으로부터 수신되거나 종단점으로서 이것을 가지는) 네트워크 흐름을 선택할 수 있다. 즉, 선택 모듈(112)은, 특정 애플리케이션의 다양한 인스턴스(즉, 하나 또는 다수의 컴퓨팅 시스템으로서 호스팅되는 애플리케이션의 인스턴스)가 통신하는 매체가 되는 네트워크 흐름의 전부 또는 몇 가지 부분을 선택할 수 있다. 애플리케이션(또는 애플리케이션의 인스턴스)이 통신하는 매체가 되는 네트워크 흐름은 해당 네트워크 흐름에 대한 것이거나 이와 관련된다고 지칭될 수 있다.
더욱이, 몇 가지 구현형태들에서, 선택 모듈(112)은 네트워크 흐름을 다양한 방법론에 따라서 적응적으로 선택할 수 있다. 예를 들어, 선택 모듈(112)은 수집 모듈(113)과 통신하여 애플리케이션 식별자가 이용가능한 대상인 네트워크 흐름에 대한 애플리케이션 식별자를 결정할 수 있고, 분류자 트레이닝 모듈(들)(120)(또는 통신 네트워크의 제어 평면 내의 몇 가지 다른 엔티티)과 같은 분류자 트레이닝 모듈과 통신하여 어떤 애플리케이션에 대하여 추가적 트레이닝 데이터(그라운드 트루스 네트워크 흐름 피쳐)가 애플리케이션 분류자를 개선시킬 것인지 결정할 수도 있다.
따라서, 예를 들어, 선택 모듈(112)은 특정 애플리케이션과 연관되는 네트워크 흐름의 전부 또는 대부분을 분류자 트레이닝 모듈로부터의 입력에 기초하여 한 번에 선택할 수 있다. 이것은, 분류자 트레이닝 모듈이 해당 특정 애플리케이션에 대한 초기 애플리케이션 분류자를 생성하려고 시도하고 있는 경우에 유용할 수 있다. 추후에, 선택 모듈(112)은 해당 특정 애플리케이션과 연관되는 네트워크 흐름의 소부분 또는 적은 부분을 분류자 트레이닝 모듈로부터의 입력에 기초하여 한 번에 선택할 수 있다. 이것은, 분류자 트레이닝 모듈이 해당 특정 애플리케이션에 대한 초기 애플리케이션 분류자를 생성(또는 트레이닝)한 바 있고 개정된 애플리케이션 분류자를 생성하고 있으며(해당 애플리케이션에 대한 네트워크 흐름의 소부분을 사용하여) 또는 개정된 애플리케이션 분류자를 생성하는 것이 정책을 만족시키기 위하여 요구되는지 여부를 결정하도록 초기 애플리케이션 분류자를 인증하고 있는 이후에 유용할 수 있다. 몇 가지 구현형태들에서, 분류자 트레이닝 모듈이 개정된 애플리케이션 분류자(즉, 초기 또는 이전에 생성된 애플리케이션 분류자에 상대적으로 업데이트되거나 개정된 애플리케이션 분류자)를 생성하기로 결정하는 경우, 분류자 트레이닝 모듈은 선택 모듈(112)이 해당 특정 애플리케이션과 연관된 네트워크 흐름의 전부 또는 대부분을 다시 선택하게 하는 신호를 선택 모듈(112)로 제공할 수 있다.
다른 구현형태들에서, 선택 모듈(112)은 네트워크 제어기(161)(또는 통신 네트워크의 제어 평면 내의 몇 가지 다른 엔티티)와 통신하여 통신 네트워크 또는 분류자 트레이닝 모듈을 호스팅하는 네트워크 디바이스의 부하(또는 이용량)를 결정할 수 있고, 부하가 낮은 경우 높은 퍼센티지의 네트워크 흐름을 선택하고 부하가 높은 경우 낮은 퍼센티지의 네트워크 흐름을 선택하여 통신 네트워크 및/또는 통신 네트워크 내의 네트워크 디바이스의 비효율적인 사용을 회피할 수 있다.
수집 모듈(113)은 애플리케이션 식별 에이전트와 통신하여 네트워크 흐름이 통신 네트워크 내에서 인스턴스화되는 대상이 되는 애플리케이션의 애플리케이션 식별자를 수신한다. 애플리케이션 식별자는 애플리케이션을 식별하는 영숫자 스트링과 같은 값 이다. 몇 가지 구현형태들에서, 애플리케이션 식별자는 애플리케이션의 명칭이거나 이를 포함한다. 몇 가지 구현형태들에서, 애플리케이션 식별자는 애플리케이션의 버전 또는 빌드에 대한 정보를 포함한다. 더욱이, 몇 가지 구현형태들에서, 애플리케이션 식별자는 애플리케이션의 타입 또는 클래스에 대한 정보를 포함한다. 추가적으로, 수집 모듈(113)은 애플리케이션 식별 에이전트 및/또는 검출 모듈(111)과 통신하여 애플리케이션 식별 에이전트로부터 수신되는 각각의 애플리케이션 식별자와 연관되는 네트워크 흐름을 식별한다. 따라서, 수집 모듈(113)은 검출 모듈(111)에 의하여 검출되는 새롭게 인스턴스화된 네트워크 흐름과 애플리케이션 식별 에이전트로부터 수신되는 애플리케이션 식별자 사이의 매핑을 구축할 수 있다.
애플리케이션 식별 에이전트는 통신 네트워크의 클라이언트에서 호스팅되는 애플리케이션(예를 들어, 하나 이상의 비-일시적 프로세서-판독가능 매체에 저장되는 명령)이고, 네트워크 흐름을 개시 또는 요청하거나 통신 네트워크 내에서 네트워크 흐름 요청에 응답하는 애플리케이션에 대한 정보를 제공한다. 이러한 정보는 네트워크 흐름을 식별하기 위하여 사용될 수 있는 네트워크 흐름의 애플리케이션 및 파라미터의 애플리케이션 식별자를 포함할 수 있다. 통신 네트워크의 클라이언트는 해당 통신 네트워크를 통하여 통신하는 디바이스이다. 예를 들어, 노트북, 태블릿 디바이스, 스마트 폰, 데스크탑, 서버, 네트워크 스위치, 네트워크 라우터, 네트워크 게이트웨이, 네트워크 브릿지, 또는 그 위에 호스팅되는 다른 컴퓨팅 시스템 또는 애플리케이션과 같은, 통신 네트워크를 통하여 통신하는 컴퓨팅 시스템은 통신 네트워크의 클라이언트라고 지칭될 수 있다.
예를 들어, 애플리케이션 식별 에이전트는 복수 개의 컴퓨팅 시스템의 각각에 설치되어 컴퓨팅 시스템에 호스팅되는 어떤 애플리케이션이 네트워크 흐름 정보를 요청 또는 개시하는지를 결정할 수 있다. 특정한 예로서, 애플리케이션 식별 에이전트는 네트워크 소켓과 같은 파라미터(예를 들어, IP 어드레스 및 포트 번호 쌍) 및 애플리케이션의 식별자를 네트워크 소켓(예를 들어, 실행되면 애플리케이션 식별 에이전트를 실현시키는 명령을 포함하는 실행가능한 파일의 파일명 또는 애플리케이션을 식별하는 고유한 영숫자 스트링)을 사용하여 수집할 수 있다. 그러면 애플리케이션 식별 에이전트는 이러한 정보를 수집 모듈(113)과 같은 수집 모듈로 실시간으로(즉, 정보가 수집될 때에) 또는 다양한 시간 간격마다 제공할 수 있다. 수집 모듈(113)은 또한 네트워크 디바이스에 있는, 통신 네트워크 내의 네트워크 흐름의 파라미터(예를 들어, IP 어드레스 및 포트 번호 쌍)에 액세스하여 애플리케이션 식별 에이전트로부터 수신되는 정보를 통신 네트워크 내의 네트워크 흐름과 상관시켜서 애플리케이션 식별자에 대응하는 네트워크 흐름을 식별할 수도 있다.
피쳐 추출 모듈(114)은 통신 네트워크 내의 네트워크 흐름의 피쳐를 추출(또는 유도)한다. 본 명세서에서 논의된 바와 같이, 네트워크 흐름의 피쳐(또는 네트워크 흐름 피쳐)는 네트워크 흐름 내에서 전달되는 데이터(예를 들어, 데이터 패킷 내의 데이터)로부터 유도된다. 예를 들어, 후속하는 네트워크 흐름 피쳐가 네트워크 흐름으로부터 추출될 수 있다:
소스 IP/목적지 IP/소스 포트/목적지 포트;
흐름 시작 에포크 시간(밀리초 단위 또는 더 높은 정확도);
흐름 종료 에포크 시간(밀리초 단위 또는 더 높은 정확도);
데이터 패킷의 도달 시간(절대적이거나 서로에 대해 상대적임);
총 업링크/다운링크 데이터 패킷;
총 업링크/다운링크 바이트;
업링크 내의 처음 l 개의 패킷(예를 들어, 종단점에 상대적으로)의 패킷 사이즈;
다운링크 내의 처음 m 개의 패킷(예를 들어, 종단점에 상대적으로)의 패킷 사이즈; 및
양방향의 처음 n 개의 패킷(예를 들어, 종단점에 상대적으로)의 패킷 사이즈.
위의 예에서, 용어 "l", "m", 및 "n"은 임의의 숫자일 수도 있다. 특정 실시예를 이용하면, l = 7, m = 6, 이고 n =13 이다. 몇 가지 구현형태들에서, 네트워크 흐름의 데이터 패킷은 해당 네트워크 흐름의 네트워크 흐름 피쳐라고도 불릴 수 있다. 이러한 구현형태에서, 위에서 논의된 것들과 같은 네트워크 흐름 피쳐는 애플리케이션 식별 모듈, 분류자 트레이닝 모듈, 또는 몇 가지 다른 엔티티에 있는 네트워크 흐름의 데이터 패킷으로부터 유도될 수 있다.
추가적으로, 피쳐 추출 모듈(114)은 선택 모듈(111)에 의하여 선택되는 연관된 애플리케이션 식별자가 있는 네트워크 흐름에 대한 네트워크 흐름 피쳐를 분류자 트레이닝 모듈(들)(120)과 같은 트레이닝 모듈로 제공하여 애플리케이션 분류자를 생성한다. 피쳐 추출 모듈(114)도 네트워크 흐름의 네트워크 흐름 피쳐를 애플리케이션 식별 모듈(들)(130)과 같은 애플리케이션 식별 모듈로 제공하여 그러한 네트워크 흐름과 연관되는 애플리케이션을 식별한다. 이러한 네트워크 흐름 피쳐는 실시간으로, 다양한 시간 간격마다(예를 들어, 주기적으로), 및/또는 신호에 응답하여 제공될 수 있다. 더욱이, 피쳐 추출 모듈(114)은 검출 모듈(111)과 통신하여 네트워크 흐름 피쳐를 새롭게 인스턴스화된 네트워크 흐름이 검출되는 것에 응답하여 제공할 수 있다. 다르게 말하면, 애플리케이션-인식 네트워크 제어 시스템(110)은 새롭게 인스턴스화된 네트워크 흐름이 검출되는 경우 네트워크 흐름 피쳐를 분류자 트레이닝 모듈 또는 애플리케이션 식별 모듈로 제공하는 하나 이상의 규칙을 포함할 수 있다.
본 명세서에서 사용될 때, 용어 "제공"은 푸시 메커니즘(예를 들어, 데이터를 통신 경로 또는 채널을 통해서 컴퓨팅 시스템 또는 에이전트로 전송하는 것), 풀 메커니즘(예를 들어, 데이터를 컴퓨팅 시스템 또는 에이전트로부터의 요청에 응답하여 컴퓨팅 시스템 또는 에이전트로 전달하는 것), 및 저장 메커니즘(예를 들어, 데이터를 컴퓨팅 시스템 또는 에이전트가 데이터에 액세스할 수 있는 데이터 저장소 또는 서비스에 저장하는 것)을 포함한다. 따라서, 몇 가지 구현형태들에서, 피쳐 추출 모듈(114)은 네트워크 흐름 피쳐를 분류자 트레이닝 모듈 및/또는 애플리케이션 식별 모듈로 푸시(또는 사전에 전송)함으로써 네트워크 흐름 피쳐를 제공할 수 있다. 다른 구현형태들에서, 피쳐 추출 모듈(114)은 분류자 트레이닝 모듈 및/또는 애플리케이션 식별 모듈이 네트워크 흐름 피쳐에 액세스하거나 이것을 요청하는 매체가 되는 API를 제공함으로써 네트워크 흐름 피쳐를 제공할 수 있다. 또 다른 구현형태에서, 피쳐 추출 모듈(114)은 이러한 메커니즘의 조합을 채용할 수 있다.
더욱이, 피쳐 추출 모듈(114)은 한 흐름에 대하여 충분한 수의 네트워크 흐름 피쳐가 유도/또는 제공된 바 있다는 것을 표시하는 애플리케이션 식별 신호에 응답한다. 이러한 신호에 응답하여, 피쳐 추출 모듈(114)은 네트워크 흐름 피쳐를 유도 및/또는 제공하는 것을 중지한다. 이것은, 추가적 네트워크 흐름 피쳐가 유용하지 않을 경우에 네트워크 흐름 피쳐를 유도 및/또는 제공하는 것을 중지함으로써 피쳐 추출 모듈(114)이 리소스(예를 들어, 처리 또는 컴퓨팅 리소스 및 네트워크 리소스)를 효율적으로 사용하게 한다.
애플리케이션 식별 신호는 애플리케이션 식별 프로세스의 상태변화를 표시하는 통지(예를 들어, 값 천이, 데이터 세트, 메시지, 또는 제어 데이터 패킷)이다. 예를 들어, 애플리케이션 식별 신호는 애플리케이션 식별 모듈에서 애플리케이션을 식별하기 위하여 또는 분류자 트레이닝 모듈에서 애플리케이션 분류자를 생성하기 위하여 추가적 네트워크 흐름 피쳐가 더 이상 요구되지 않는다는 것을 표시할 수 있다. 이러한 애플리케이션 식별 신호는 애플리케이션-인식 네트워크 제어 시스템(110) 내에서(예를 들어, 피쳐 추출 모듈(114) 자체에 의하여) 또는 외부에서 분류자 트레이닝 모듈, 애플리케이션 식별 모듈, 네트워크 제어기, 및/또는 네트워크 디바이스에서 생성될 수 있다. 특정한 예로서, 애플리케이션 식별 신호는 피쳐 추출 모듈(114) 내의 데이터 패킷 카운터(또는 변수)가 선결정된 값에 도달하는 경우 생성될 수 있다. 다른 예로서, 애플리케이션 식별 신호는, 흐름이 해당 네트워크 흐름을 통해서 통신하는 애플리케이션을 식별하기에 충분한 개수의, 네트워크 흐름에 대한 네트워크 흐름 피쳐가 수신된 이후에 애플리케이션 식별 모듈로부터 전송된 제어 데이터 패킷일 수 있는데, 호름은 애플리케이션 분류자를 그러한 네트워크 흐름 피쳐에 적용시킴으로써 애플리케이션을 식별한다.
동작 모듈(115)은 네트워크 흐름에 동작을 적용시킨다. 예를 들어, 동작 모듈(115)은, 그에 대한 애플리케이션 식별자가 수집 모듈(113)에 의하여 수신되지 않았던 네트워크 흐름과 연관되는 애플리케이션의 애플리케이션 식별자를 포함하는 애플리케이션 식별 모듈(들)(130)과 같은 애플리케이션 식별 모듈로부터 애플리케이션 식별 보고를 수신할 수 있다. 그러면 동작 모듈(115)은 애플리케이션 식별 보고 또는 애플리케이션 식별 보고 내에 포함된 동작 식별자에 기초하여 네트워크 흐름의 다양한 파라미터 또는 속성을 변경할 수 있다. 예를 들어, 동작 모듈(115)은 네트워크 흐름을 네트워크 디바이스의 다른 물리적 포트로 리디렉팅 할 수 있고, 네트워크 흐름에 할당된 네트워크 리소스를 변경할 수 있으며, 네트워크 흐름을 드롭(또는 종료)시키고, 선결정되거나 관리측에 의하여(administratively) 지정된 QoS를 네트워크 흐름에 적용하고, 선결정되거나 관리측에 의하여 지정된 레이트 한계를 네트워크 흐름에 적용하거나, 몇 가지 다른 동작을 네트워크 흐름에 적용시킬 수 있다.
애플리케이션 식별 보고는 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용시킨 결과를 포함한다. 예를 들어, 애플리케이션 식별 보고는 애플리케이션 식별자, 동작 식별자, 네트워크 흐름의 분류에 관련되는 추가적 데이터, 및/또는 이들의 조합을 포함할 수 있다.
인가될 동작은 애플리케이션 식별 보고 내에 규정되거나 포함될 수 있거나(예를 들어, 동작 식별자로서 또는 묵시적으로 애플리케이션 식별자로서), 네트워크 디바이스에 있거나 네트워크 디바이스 외부에 있는 네트워크 제어기에 의하여 구축되는 정책 저장부에 액세스될 수 있거나, 통신 네트워크의 제어 평면 내의 네트워크 제어기와 같은 엔티티에 의하여 규정될 수 있다. 예를 들어, 애플리케이션-인식 네트워크 제어 시스템(110)은 애플리케이션 식별 보고를 네트워크 흐름과 연관되는 애플리케이션을 식별하는 애플리케이션 분류자 모듈(들)(130)로부터 수신할 수 있다. 애플리케이션-인식 네트워크 제어 시스템(110) 또는 애플리케이션-인식 네트워크 제어 시스템(110)을 호스팅하는 네트워크 디바이스는, 네트워크 제어기(161)가 해당 네트워크 흐름과 연관되는 애플리케이션의 아이덴티티를 결정할 수 있는 데에 매체가 되는 API를 제공할 수 있고, 네트워크 흐름에 적용할 동작 모듈(115)에 대한 동작을 규정하기 위한 동작 식별자를 제공할 수 있다. 대안적으로는, 네트워크 제어기(161)는 특정 애플리케이션이 식별된다면, 동작을 수행하도록(예를 들어, API를 통하여) 애플리케이션-인식 네트워크 제어 시스템(110)을 사전-프로그래밍 또는 구성할 수 있다.
몇 가지 구현형태들에서, 동작 모듈은 집행 모듈이라고 지칭될 수 있고 하나 이상의 네트워크 디바이스에 구현된다. 예를 들어, 몇 가지 구현형태들에서 동작 모듈(또는 동작 모듈)은 통신 네트워크의 유입 시에 또는 통신 네트워크의 유출 시에 네트워크 흐름에 동작을 적용하도록, 하나 이상의 에지 디바이스에서 구현(또는 호스팅)될 수 있다. 몇 가지 구현형태들에서, 동작 모듈(또는 동작 모듈들)은 통신 네트워크 내의 다수의 네트워크 디바이스에 구현될 수 있다. 따라서, 애플리케이션 식별 보고는 통신 네트워크 내의(또는 통신 네트워크의) 네트워크 디바이스에 걸쳐 동작을 일관적으로 적용시키도록 다수의 네트워크 디바이스(또는 그 위에 호스팅되는 동작 모듈)로 제공될 수 있다.
분류자 트레이닝 모듈(들)(120)은 네트워크 흐름의 네트워크 흐름 피쳐 및 해당 네트워크 흐름과 연관되는 애플리케이션의 애플리케이션 식별자를 사용하여 애플리케이션 분류자를 생성 또는 트레이닝하는 하드웨어 및 소프트웨어의 조합이다. 예를 들어, 분류자 트레이닝 모듈(들)(120)은 하나의 애플리케이션 또는 애플리케이션의 그룹에 대한 네트워크 흐름의 그룹의 네트워크 흐름 피쳐를 사용하여 애플리케이션 분류자(예를 들어, 머신 학습 분류자)를 트레이닝(또는 생성)할 수도 있다. 몇 가지 구현형태들에서, 분류자 트레이닝 모듈(들)(120)은 애플리케이션-인식 네트워크 제어 시스템(110)으로부터 수신되는 네트워크 흐름 피쳐로부터 추가적 네트워크 흐름 피쳐를 유도한다.
도 1 에 도시된 바와 같이, 분류자 트레이닝 모듈(들)(120)은 분류자 트레이닝 모듈의 하나 이상의 인스턴스를 포함할 수 있다. 예를 들어, 통신 네트워크(160)의 제어 평면은 통신 네트워크(160)내의 다양한 네트워크 디바이스에서 호스팅되는 분류자 트레이닝 모듈의 클러스터를 포함할 수 있다. 몇 가지 구현형태들에서, 클러스터 내의 분류자 트레이닝 모듈(120)은 일반적(generic)일 수 있고(즉, 많은 애플리케이션 또는 애플리케이션 타입에 대한 애플리케이션 분류자를 생성할 수 있고) 부하 평형을 위하여 애플리케이션 분류자의 생성을 다수의 네트워크 디바이스에 걸쳐서 분산시키도록 사용될 수 있다. 다른 구현형태들에서, 클러스터 내의 분류자 트레이닝 모듈(120)은 특정적일 수 있고(즉, 단일 애플리케이션 또는 적은 수의 애플리케이션 또는 애플리케이션 타입에 대한 애플리케이션 분류자를 생성할 수 있고), 각각은 특정한 애플리케이션(또는 적은 수의 애플리케이션) 또는 애플리케이션 타입에 대한 애플리케이션 분류자를 생성하기 위하여 사용된다. 다르게 말하면, 네트워크 흐름의 네트워크 흐름 피쳐는 그러한 네트워크 흐름과 연관되는 애플리케이션의 애플리케이션 식별자에 기초하여 다른 분류자 트레이닝 모듈로 제공될 수 있다.
분류자 트레이닝 모듈(들)(120)에서 생성되는 생성된(또는 학습된) 애플리케이션 분류자는 다양한 머신 학습 분류자 중 임의의 것일 수 있다. 예를 들어, 애플리케이션 분류자는 나이브 베이즈(
Figure pct00001
) 분류자, 서포트 벡터 머신(support vector machine SVM) 기초 분류자, C4.5 또는 C5.0 기초 결정 트리 분류자, 또는 몇 가지 다른 적합한 머신 학습 분류자일 수 있다. 나이브 베이즈 분류자는 강한 독립성 가정을 가지는 베이즈 이론을 적용하는 것에 기초하는 간단한 확률적 분류자이다. 이러한 분류자는, 네트워크 흐름 피쳐의 클래스 또는 애플리케이션 식별자가 입력으로서 제공된다면 네트워크 흐름 피쳐가 서로 독립적이라는 것을 가정한다. 그러나, 네트워크 흐름 피쳐는 반드시 독립적일 필요가 없다.
다른 예로서, SVM 접근법 또는 메커니즘은 다른 애플리케이션 식별자에 대응하는 다른 클래스(예를 들어, 두 개의 다른 클래스) 사이의 마진을 최대화하는 애플리케이션 분류자를 구축할 수도 있다. C4.5 기초 결정 트리 분류자에서, 분류 규칙은 트리 내의 각각의 노드에서의 결정 규칙에 대한 해답이 해당 트리를 따르는 경로를 결정하는 트리 방식으로 구현될 수도 있다. C5.0 기초 결정 트리 분류자도 역시 부스팅(boosting)을 지원하는데, 이것은 다수의 분류자를 생성 및 결합하여 예측 정확도를 개선하기 위한 기술이다. 나이브 베이즈와는 달리, SVM 기초 및 결정 트리 분류자 양자 모두는 다른 네트워크 흐름 피쳐들 사이의 의존성을 고려할 수도 있다. 이러한 분류자의 각각에서, k-폴드 교차-인증과 같은 방법을 사용함으로써, 트레이닝 데이터로의 분류자(예를 들어, 네트워크 흐름 피쳐 및 애플리케이션 식별자)의 과대 맞춤(over-fitting)을 방지하도록 하는 단계들이 수행될 수도 있다.
애플리케이션 식별 모듈(들)(130)은 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용하여(또는, 다르게 말하면, 네트워크 흐름 피쳐를 애플리케이션 분류자로 적용하여) 그러한 네트워크 흐름 피쳐가 유도된 소스가 되는 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정하는 하드웨어 및 소프트웨어의 조합이다. 다르게 말하면, 애플리케이션 식별 모듈(들)(130)은 분류자 트레이닝 모듈(들)(120)에서 생성되고 그로부터 수신되는 애플리케이션 분류자를 사용하여 네트워크 흐름을 통해서 통신하는 애플리케이션의 애플리케이션 식별자를 결정한다. 몇 가지 구현형태들에서, 애플리케이션 식별자 모듈(들)(130)은 애플리케이션-인식 네트워크 제어 시스템(110)으로부터 수신되는 네트워크 흐름 피쳐로부터 추가적 네트워크 흐름 피쳐를 유도한다.
분류자 트레이닝 모듈(들)(120)과 유사하게, 도 1 에 도시된 바와 같이, 애플리케이션 식별 모듈(들)(130)은 애플리케이션 식별 모듈의 하나 이상의 인스턴스를 포함할 수 있다. 따라서, 애플리케이션 식별 모듈(들)(130)은 일반적일 수도 있고(예를 들어, 많은 다른 애플리케이션 분류자를 네트워크 흐름의 네트워크 흐름 피쳐에 적용시킬 수 있고) 부하 평형을 위하여 애플리케이션 식별을 다수의 네트워크 디바이스에 걸쳐서 분산시키기 위하여 사용된다. 다른 구현형태들에서, 클러스터 내의 애플리케이션 식별 모듈(들)(130)은 특정할 수 있고(즉, 단일 애플리케이션 분류자 또는 적은 수의 다른 애플리케이션 분류자를 네트워크 흐름의 네트워크 흐름 피쳐에 적용시킴) 및 각각은 특정한 애플리케이션(또는 적은 수의 애플리케이션) 또는 애플리케이션 타입을 식별하기 위하여 사용된다. 이에 상응하여, 네트워크 흐름의 네트워크 흐름 피쳐는 해당 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정하도록 다수의 애플리케이션 식별 모듈로 제공될 수 있다.
비록 특정 모듈(즉, 하드웨어 및 소프트웨어)의 조합이 구체적으로 애플리케이션-인식 네트워크 제어 시스템(110) 및 도 1 및 본 명세서에서 일반적으로 논의되는 예시적인 구현형태들과 관련하여 예시되고 논의되지만, 모듈의 다른 조합 또는 서브-조합이 다른 구현형태에 포함될 수 있다. 다르게 말하면, 비록 도 1 에 도시되고 다른 예시적인 구현형태에서 논의되는 모듈이 본 명세서에서 논의되는 예들의 특정한 기능성을 수행하지만, 이러한 기능성과 다른 기능성은 다른 모듈에서 또는 모듈의 조합에서 달성, 구현, 또는 실현될 수 있다.
예를 들어, 분리되는 것으로 예시되고 및/또는 논의되는 두 개 이상의 모듈은 두 개의 모듈과 관련하여 논의되는 기능성을 수행하는 하나의 모듈로 통합될 수 있다. 다른 예로서, 이러한 예와 관련하여 논의되는 바와 같은 하나의 모듈에서 수행되는 기능성은 다른 모듈 또는 다른 모듈들에서 수행될 수 있다. 더욱이, 모듈의 특정 타입에 관련하여 본 명세서에서 논의되는 모듈은 다른 구현형태들에서는 다른 타입의 모듈로서 구현될 수 있다. 예를 들어, 검출 모듈은 전자 및/또는 광학 회로(또는 회로부)의 그룹으로서 또는 비-일시적 프로세서-판독가능 매체에 또는 메모리에 저장되고 프로세서에서 실행되는 명령으로서 구현될 수 있다. 다른 예로서, 몇 가지 구현형태들에서, 애플리케이션-인식 네트워크 제어 시스템(110)은 분류자 트레이닝 모듈(들)(120) 및/또는 애플리케이션 식별 모듈(들)(130)을 포함할 수 있다.
도 1 에 도시된 바와 같이, 통신 네트워크(160)는 다양한 네트워크 디바이스를 포함한다. 구체적으로 설명하면, 도 1 에 도시된 바와 같이, 통신 네트워크(160)는 에지 디바이스(162), 에지 디바이스(163), 네트워크 디바이스(164), 네트워크 디바이스(165), 네트워크 디바이스(166), 및 네트워크 디바이스(167)를 포함한다. 추가적으로, 통신 네트워크(160)는 네트워크 제어기(161)를 포함한다. 네트워크 디바이스는 하나 이상의 통신 인터페이스를 포함하고 데이터를 통신 네트워크 내에서 전송하도록 이러한 통신 인터페이스를 통해 서로 통신하는 컴퓨팅 시스템이다. 예를 들어, 라우터, 스위치, 무선 액세스 포인트, 게이트웨이, 브릿지, 부하 평형기(balancer), 서버, 및 유사한 컴퓨팅 시스템이 네트워크 디바이스가 될 수 있다. 네트워크 흐름의 종단점(예를 들어, 통신 네트워크를 통해서 통신하는 애플리케이션을 호스팅하는 컴퓨팅 시스템)이 직접적으로 통신하는 네트워크 디바이스는 에지 디바이스라고 지칭될 수 있다(즉, 이러한 디바이스는 통신 네트워크의 에지에서 작동한다).
도 1 에 도시된 예에서, 통신 네트워크(160)는 네트워크 제어기(161)를 포함한다. 네트워크 제어기(161)는 라우팅, 포워딩, 및 다른 관리 정보를 통신 네트워크(160) 내의 네트워크 디바이스로 제공하는, 네트워크 디바이스에서 호스팅되는 모듈 또는 통신 네트워크(160)와 통신하는 컴퓨팅 시스템이다. 다르게 말하면, 통신 네트워크(160)는 SDN일 수 있다. 네트워크 제어기(161)는 오픈플로우(OpenFlow®)와 같은 프로토콜을 통해 통신 네트워크(160)의 네트워크 디바이스와 통신하여 그러한 네트워크 디바이스를 제어 또는 관리할 수 있다.
애플리케이션-인식 네트워크 제어 시스템(110), 분류자 트레이닝 모듈(들)(120), 및 애플리케이션 식별 모듈(들)(130)은 통신 네트워크(160)의 네트워크 디바이스 중 임의의 것에서 또는 통신 네트워크(160)와 통신하는 다른 컴퓨팅 시스템(예를 들어, 미들 박스)에서 호스팅될 수 있다. 몇 가지 구현형태들에서, 이러한 다른 컴퓨팅 시스템은 통신 네트워크(160)의 제어 평면의 일부이거나 그 안에 속한다고 말할 수 있다. 몇 가지 구현형태들에서, 애플리케이션-인식 네트워크 제어 시스템(110), 분류자 트레이닝 모듈(들)(120), 및 애플리케이션 식별 모듈(들)(130) 중 두 개 이상은 공통 네트워크 디바이스에서 호스팅된다. 다른 구현형태들에서, 애플리케이션-인식 네트워크 제어 시스템(110), 분류자 트레이닝 모듈(들)(120), 및 애플리케이션 식별 모듈(들)(130)은 다른 네트워크 디바이스에서 호스팅된다.
예를 들어, 애플리케이션-인식 네트워크 제어 시스템(110) 및 애플리케이션 식별 모듈(들)(130)은 에지 디바이스(162)에서 호스팅될 수 있고 분류자 트레이닝 모듈(들)(120)은 네트워크 디바이스(167)에서 호스팅될 수 있다. 몇 가지 구현형태들에서, 애플리케이션-인식 네트워크 제어 시스템(110)은 통신 네트워크의 에지 디바이스에서 호스팅되는 것이 유리한데, 이것은 일부 네트워크 흐름이 통신 네트워크의 내부 계층 또는 코어 내의 네트워크 디바이스를 통과하거나 횡단하지 않기 때문이다. 예를 들어, 피어-투-피어 애플리케이션에 대한 네트워크 흐름은 에지 디바이스 외의 네트워크 디바이스를 횡단하지 않을 수도 있다. 이에 상응하여, 몇 가지 통신 네트워크 및/또는 애플리케이션에 대하여, 다른 네트워크 디바이스에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템 보다 에지 디바이스에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템에게 더 많은 네트워크 흐름이 접근가능하다.
에이전트(141 및 142)는 컴퓨팅 시스템에서 호스팅되는 애플리케이션 식별 에이전트이다(간결성을 위하여 도 1 에는 에이전트(141)를 호스팅하는 디바이스(151)만이 도시됨). 경로(180)는 통신 네트워크(160)를 통과하는 네트워크 흐름을 도시한다. 좀 더 구체적으로는, 디바이스(151)에서 호스팅되는 애플리케이션이 네트워크 서비스(192)로의 네트워크 흐름을 개시한다. 달리 말하면, 해당 애플리케이션이 경로(180)로 예시되는 네트워크 흐름을 통하여 네트워크 서비스(192)로의 액세스를 요청한다. 네트워크 서비스(191 및 192)는 웹페이지 또는 웹사이트와 같은 서비스, 데이터베이스 관리 시스템과 같은 데이터 저장소, 스트리밍 비디오 또는 오디오 애플리케이션과 같은 통신 애플리케이션, 협력 애플리케이션, 또는 통신 네트워크를 통하여 액세스가능한 다른 서비스이다.
디바이스(151)에서 호스팅되는 애플리케이션과 네트워크 리소스(192) 사이에서 통신되는 데이터 패킷은 에지 디바이스(162) 및 네트워크 디바이스(164, 165, 및 166)를 횡단한다. 이에 상응하여, 애플리케이션-인식 네트워크 제어 시스템(110) 이러한 네트워크 디바이스 중 임의의 것(즉, 에지 디바이스(162) 및 네트워크 디바이스(164, 165, 및 166))에서 호스팅되어, 경로(180)로 예시되는 네트워크 흐름으로부터 네트워크 흐름 피쳐를 유도하여 이러한 네트워크 흐름 피쳐 및 에이전트(141)로부터 수신되는 애플리케이션 식별자를 분류자 트레이닝 모듈(들)(120)로 제공함으로써 식별자를 트레이닝시키거나, 이러한 네트워크 흐름 피쳐를 애플리케이션 식별 모듈(들)(130)로 제공함으로써 경로(180)로 예시되는 네트워크 흐름과 연관된 애플리케이션을 식별할 수 있다.
더욱이, 애플리케이션 식별 에이전트(141 및/또는 142)로부터 수신되는 애플리케이션 식별자 및 그러한 애플리케이션 식별자를 가지는 애플리케이션과 연관된 네트워크 흐름의 네트워크 흐름 피쳐에 기초하여 생성된 애플리케이션 분류자를 사용함으로써, 애플리케이션-인식 네트워크 제어 시스템(110)은 애플리케이션 식별 에이전트가 호스팅되지 않는 디바이스로부터 또는 해당 디바이스로 향하는 네트워크 흐름과 연관되는 애플리케이션을 식별할 수 있다. 예를 들어, 애플리케이션-인식 네트워크 제어 시스템(110)은 디바이스(152)에서 호스팅되는 애플리케이션으로부터의 네트워크 흐름이 통과하여 횡단하는 통신 네트워크(160)의 하나 이상의 네트워크 디바이스에서 호스팅될 수 있다. 애플리케이션-인식 네트워크 제어 시스템(110)은 해당 네트워크 흐름의 네트워크 흐름 피쳐를 애플리케이션 식별 모듈(들)(130)로 제공할 수 있고(이것은 애플리케이션-인식 네트워크 내의 제어 시스템(110)과 함께 공동 호스팅되거나 그 안에 포함될 수도 있음), 애플리케이션 식별 모듈(들)(130)은 해당 네트워크 흐름과 연관된 애플리케이션을 식별하기 위하여 그러한 애플리케이션 분류자를 적용할 수 있다. 따라서, 호스트 애플리케이션 식별 에이전트를 호스팅하지 않는 디바이스에 있는 애플리케이션은 본 명세서에서 논의되는 방법론에 따라서 식별될 수 있다.
도 2 는 일 구현형태에 따르는 애플리케이션-인식 네트워크 관리 프로세스의 흐름도이다. 프로세스(200)라고 표시되는 예에서, 애플리케이션 분류자는 이전에 생성되었다. 애플리케이션 분류자의 생성은 도 3 및 도 4 와 관련하여 논의되는 것들과 같은 다른 예들에서 좀 더 상세하게 논의될 것이다. 프로세스(200)는 네트워크 디바이스 또는 다른 컴퓨팅 시스템에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템(110)및 같은 애플리케이션-인식 네트워크 제어 시스템(또는 그것의 모듈과 같은 컴포넌트에 의하여 구현될 수 있다. 이에 상응하여, 본 명세서에서 몇 가지 동작을 수행하는 프로세스(200)를 참조하여 이루어지는 모든 언급은 프로세스(200)를 구현하는 애플리케이션-인식 네트워크 제어 시스템이 그러한 동작을 수행한다는 것을 의미하는 것으로 이해되어야 한다.
더욱이, 도 2 에서 예시되는 프로세스(200)는 애플리케이션-인식 네트워크 관리 프로세스의 예시적인 구현형태이다. 본 명세서의 몇 가지 예들에서 강조되는 바와 같이, 다른 구현형태들에서, 리소스 분류 프로세스는 도 2 에 예시된 것보다 추가적이거나 더 적거나, 다른 블록(또는 단계)을 포함할 수 있다.
블록 210 에서, 프로세스(200)는 네트워크 흐름이 통신 네트워크 내에서 인스턴스화되었다고 결정한다. 예를 들어, 검출 모듈은 통신 네트워크의 네트워크 디바이스에서 새롭게 인스턴스화된 네트워크 흐름을 식별할 수 있다. 블록 210 에서의 결정에 응답하여, 새롭게 인스턴스화된 네트워크 흐름의 네트워크 흐름 피쳐가 블록 220 에서 애플리케이션 식별 모듈로 제공된다. 특정 예로서, 위의 예에서 검출 모듈과 통신하는 추출 모듈은 새롭게 인스턴스화된 네트워크 흐름의 네트워크 흐름 피쳐를 유도하고 그러한 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공한다. 이러한 예에서, 애플리케이션 식별 모듈은 이전에 생성된 애플리케이션 분류자로 접근한다.
네트워크 흐름 피쳐는 애플리케이션 식별 신호가 블록 230 에서 수신(또는 검출)될 때까지 애플리케이션 식별 모듈로 제공된다. 애플리케이션 식별 신호가 블록 230 에서 수신(또는 검출)된 이후에, 프로세스(200)는 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공하는 것을 중지한다. 예를 들어, 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 애플리케이션 식별 모듈로부터 수신될 때까지 해당 애플리케이션 식별 모듈로 제공될 수 있다.
다른 구현형태들에서, 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 블록 230 에서 수신(또는 검출)될 때까지 유도되는데, 이에 응답하여 프로세스(200)는 네트워크 흐름 피쳐를 유도하는 것을 중지한다. 그러면 유도된 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 애플리케이션 식별 신호에 응답하여 수신(직접적으로 또는 네트워크 제어기와 같은 몇 가지 다른 엔티티를 통하여)된 이후에 애플리케이션 식별 모듈로 제공된다. 또 다른 구현형태에서, 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 블록 230 에서 수신(또는 검출)될 때까지 유도되고, 그리고 유도된 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 해당 네트워크 흐름 피쳐에 대한 애플리케이션 식별 모듈로부터의 요청에 응답하여 수신될 이후에 애플리케이션 식별 모듈로 제공된다. 예를 들어, 애플리케이션 식별 모듈은 프로세스(200)를 구현하는 애플리케이션-인식 네트워크 제어 시스템의 API를 통하여 네트워크 흐름 피쳐를 요청할 수 있다.
블록 250 에서, 새롭게 인스턴스화된 네트워크 흐름과 연관되는 애플리케이션의 애플리케이션 식별자를 포함하는 애플리케이션 식별 보고가 애플리케이션 식별 모듈로부터 수신된다. 예를 들어, 애플리케이션 식별 모듈은 분류자 트레이닝 모듈에서 생성되는 하나 이상의 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용하여 새롭게 인스턴스화된 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정할 수 있고, 해당 애플리케이션을 식별하는 애플리케이션 식별 보고를 프로세스(200)로 제공할 수 있다.
몇 가지 구현형태들에서, 애플리케이션 식별 보고는 통신 네트워크의 제어 평면 내의 네트워크 제어기와 같은 몇 가지 다른 엔티티로부터 수신된다. 예를 들어, 애플리케이션 식별 모듈은 애플리케이션 식별자(또는 애플리케이션 식별자를 포함하는 애플리케이션 식별 보고)를 네트워크 제어기로 제공할 수 있고, 네트워크 제어기는 애플리케이션 식별 보고를 프로세스(200)로 제공할 수 있다. 또 다른 구현형태에서, 애플리케이션 식별 보고에 포함되는 동작 식별자는 프로세스(200)에 의하여 수신된다. 즉, 몇 가지 이런 구현형태들에서, 애플리케이션 식별 보고는 애플리케이션 식별자를 포함하지 않는다. 오히려, 애플리케이션 식별 보고는 새롭게 인스턴스화된 네트워크 흐름에 적용될 동작을 설명 또는 정의하는 동작 식별자를 포함한다.
그러면 프로세스(200)는 블록 260 에서 블록 250 에서 수신된 정보에 기초하여 흐름 동작을 새롭게 인스턴스화된 네트워크 흐름에 적용한다. 도 2 에 도시된 예에서, 흐름 동작은 애플리케이션 식별 보고에 기초하여 새롭게 인스턴스화된 네트워크 흐름에 적용된다. 위에서 논의된 바와 같이, 애플리케이션 식별 보고는 애플리케이션 식별자, 동작 식별자, 및/또는 이들의 조합을 포함할 수 있다.
도 3 은 일 구현형태에 따르는 네트워크 제어기와 네트워크 디바이스 사이의 통신 흐름을 예시하는 다른 다이어그램이다. 도 3 에 도시된 예에서, 네트워크 디바이스(162) 및 네트워크 디바이스(166)는 도 1 과 관련하여 도시되고 위에서 논의된 애플리케이션-인식 네트워크 제어 시스템(110)과 같은 애플리케이션-인식 네트워크 제어 시스템을 각각 호스팅한다. 애플리케이션-인식 네트워크 제어 시스템을 호스팅하는 것에 추가하여, 네트워크 디바이스(162)는 호스트 애플리케이션 식별 모듈도 역시 호스팅한다. 예를 들어, 애플리케이션 식별 모듈은 네트워크 디바이스(162)에 있는 애플리케이션 공간 또는 사용자 공간에 호스팅될 수 있다. 네트워크 제어기(161)는 분류자 트레이닝 모듈 및 애플리케이션 식별 모듈을 포함한다(또는 이들과 함께 네트워크 디바이스에서 공동 호스팅된다). 위에서 논의된 바와 같은 애플리케이션-인식 네트워크 제어 시스템, 애플리케이션 식별 모듈, 또는 분류자 트레이닝 모듈의 몇 가지 동작을 수행하는 네트워크 디바이스(162), 네트워크 디바이스(166), 또는 네트워크 제어기(161)를 본 명세서에서 가리키는 것은, 네트워크 디바이스(162), 네트워크 디바이스(166), 또는 네트워크 제어기(161)에서 호스팅되거나 이와 함께 호스팅되는 것으로 논의되는 바와 같은 애플리케이션-인식 네트워크 제어 시스템, 애플리케이션 식별 모듈, 또는 분류자 트레이닝 모듈이 해당 동작을 수행한다는 것을 의미하는 것으로 이해되어야 한다.
새로운 네트워크 흐름이 검출되고 해당 네트워크 흐름과 연관된 애플리케이션의 애플리케이션 식별자가 네트워크 디바이스(162)에 있는 애플리케이션 식별 에이전트로부터 수신된다(즉, 네트워크 디바이스(162)에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템에 의하여). 이와 유사하게, 그 외의 네트워크 흐름이 검출되고 해당 네트워크 흐름과 연관된 애플리케이션의 애플리케이션 식별자가 네트워크 디바이스(166)에 있는 애플리케이션 식별 에이전트로부터 수신된다(즉, 네트워크 디바이스(166)에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템에 의하여). 이러한 예에서, 네트워크 디바이스(162 및 166)에 의하여 검출되는 네트워크 흐름은 동일한 애플리케이션의 별개의 인스턴스와 연관된다. 다르게 말하면, 네트워크 디바이스(162 및 166)에 의하여 수신되는 애플리케이션 식별자들은 동일하다.
새로운 네트워크 흐름의 검출 및 애플리케이션 식별자의 수신에 응답하여(예를 들어, 네트워크 디바이스(162 및 166)에 있는 네트워크 제어기(161)에 의하여 구축되는 정책의 규칙 또는 규칙들에 기초하여), 네트워크 디바이스(162) 및 네트워크 디바이스(166) 각각은 애플리케이션 식별 에이전트로부터 수신되는 애플리케이션 식별자를 네트워크 제어기(161)로 제공하고, 각각에서 검출된 새로운 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하고 네트워크 제어기(161)로(즉, 네트워크 제어기(161)와 함께 포함되거나 공동 호스팅되는 분류자 트레이닝 모듈로) 제공한다.
그러면 네트워크 디바이스(162)는 네트워크 디바이스(162)에서 생성되는 애플리케이션 식별 신호에 기초하여(예를 들어, 데이터 패킷 카운터가 선결정된 값에 도달하는 것에 응답하여), 충분한 수의 네트워크 흐름 피쳐가 네트워크 제어기(162)로 제공되었다고 결정하고 네트워크 흐름 피쳐를 네트워크 제어기(161)로 제공하는 것을 중지한다. 그러면 네트워크 제어기(161)는 애플리케이션 분류자(1)를 생성(또는 트레이닝)하고, 애플리케이션 분류자(1)를 네트워크 디바이스(162)로 제공한다. 애플리케이션 분류자(1)는 네트워크 흐름이 네트워크 디바이스(162)에 의하여 이전에 수신된 애플리케이션 식별자에 의하여 식별되는 애플리케이션과 연관되는지 여부를 결정하기 위하여 네트워크 디바이스(162)에서 호스팅되는 애플리케이션 식별 모듈에서 사용될 것이다. 몇 가지 구현형태들에서, 애플리케이션 식별 모듈은 네트워크 흐름 피쳐로부터 다양한 다른 애플리케이션을 식별하기 위하여 두 개 이상의 애플리케이션 분류자로의 액세스를 가진다. 여기에서, 간결성을 위하여 오직 하나의 애플리케이션에 대한 애플리케이션 분류자만이 도시된다.
네트워크 제어기(161)는 네트워크 디바이스(166)로부터 수신되는 네트워크 흐름 피쳐를 모니터링하고 충분한 양의 네트워크 흐름 피쳐가 애플리케이션 분류자를 생성(또는 개정)하도록 제공되었을 경우에는 애플리케이션 식별 신호를 네트워크 디바이스(166)로 제공한다. 네트워크 디바이스(166)에 의하여 제공되는 네트워크 흐름 피쳐가 네트워크 디바이스(162)에 의하여 제공되는 네트워크 흐름 피쳐와 공통 애플리케이션에 대한 것이기 때문에, 네트워크 제어기는 네트워크 디바이스(166)로부터의 네트워크 흐름 피쳐를 사용하여 애플리케이션 분류자(1)(초기 애플리케이션 분류자)를 개정하여 애플리케이션 분류자(2)(개정된 애플리케이션 분류자)를 생성한다. 추가적으로, 네트워크 디바이스(162)가 애플리케이션 식별 모듈을 호스팅하기 때문에 네트워크 제어기(161)는 애플리케이션 분류자(2)를 네트워크 디바이스(162)로 제공한다.
도 3 에 도시된 바와 같이, 네트워크 디바이스(162)가 애플리케이션 식별 모듈을 호스팅하기 때문에, 네트워크 디바이스(162)는 네트워크 흐름 피쳐를 네트워크 제어기로 전송하지 않는다. 오히려, 네트워크 디바이스(162)는 네트워크 제어기(161)로부터 수신되는 애플리케이션 분류자(예를 들어, 애플리케이션 분류자(2))를, 네트워크 디바이스(162)에서 호스팅되는 애플리케이션 식별 모듈을 사용하여 네트워크 디바이스(162)에서 유도되는 네트워크 흐름 피쳐에 적용한다.
좀 더 구체적으로는, 네트워크 디바이스(162)는 새롭게 인스턴스화된 네트워크 흐름을 검출하고 해당 네트워크 흐름의 네트워크 흐름 피쳐를 유도하며, 그러한 네트워크 흐름 피쳐를 네트워크 디바이스(162)에서 호스팅되는 애플리케이션 식별 모듈로 제공한다. 네트워크 디바이스(162)는 애플리케이션 식별 신호에 응답하여 네트워크 흐름 피쳐를 유도하고 제공하는 것을 중지하고, 이제 애플리케이션 분류자(2)를 새롭게 인스턴스화된 네트워크 흐름으로부터 유도된 네트워크 흐름 피쳐에 적용한다. 다르게 말하면, 애플리케이션 분류자(2)는 새롭게 인스턴스화된 네트워크 흐름을 네트워크 흐름 피쳐에 기초하여 분류하도록 사용된다.
위에서 논의된 바와 같이, 몇 가지 구현형태들에서, 애플리케이션 식별 모듈은 다수의 애플리케이션 분류자를 포함할 수 있고 두 개 이상의 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용하여 그러한 네트워크 흐름 피쳐가 유도되었던 소스인 네트워크 흐름과 연관되는 애플리케이션을 식별할 수 있다. 분류의 결과는 새롭게 인스턴스화된 네트워크 흐름과 연관되는 애플리케이션을 식별하는 애플리케이션 식별 보고이다. 그러면 네트워크 디바이스(162)는 해당 애플리케이션의 아이덴티티에 기초하여 흐름 동작을 적용한다.
이에 반해, 네트워크 디바이스(166)는 애플리케이션 식별 모듈을 포함하지 않고, 애플리케이션 아이덴티티를 결정하기 위하여 네트워크 제어기(161) 내의 또는 이것과 공동 호스팅되는 애플리케이션 식별 모듈에 의존한다. 좀 더 구체적으로는, 도 3 에 도시되는 예에서 예시된 바와 같이, 네트워크 디바이스(166)는 새롭게 인스턴스화된 네트워크 흐름을 검출하고, 이에 응답하여, 네트워크 흐름 피쳐를 유도하고 네트워크 제어기(161)로 제공한다. 충분한 양의 네트워크 흐름 피쳐가 새롭게 인스턴스화된 네트워크 흐름으로부터 유도되고 네트워크 제어기(161)로 제공된 이후에, 네트워크 제어기(161)는 애플리케이션 식별 신호를 네트워크 디바이스(166)로 제공하여 추가적 네트워크 흐름 피쳐가 요구되지 않는다고 네트워크 디바이스(166)에 통지한다. 네트워크 디바이스(166)는 애플리케이션 식별 신호에 응답하여 네트워크 흐름 피쳐를 유도하고 및/또는 제공하는 것을 중지한다.
그러면 네트워크 제어기(161)는 애플리케이션 분류자(2)를 네트워크 디바이스(166)에 의하여 제공되는 네트워크 흐름 피쳐에 적용하여 새롭게 인스턴스화된 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정한다. 위에서 논의된 바와 같이, 몇 가지 구현형태들에서, 애플리케이션 식별 모듈은 다수의 애플리케이션 분류자를 포함할 수 있고 두 개 이상의 애플리케이션 분류자를 네트워크 흐름 피쳐에 적용하여 그러한 네트워크 흐름 피쳐가 유도되었던 소스인 네트워크 흐름과 연관되는 애플리케이션을 식별할 수 있다.
분류의 결과는 새롭게 인스턴스화된 네트워크 흐름과 연관되는 애플리케이션을 식별하는 애플리케이션 식별 보고이다. 네트워크 제어기(161)는 애플리케이션 식별 보고를 네트워크 디바이스(166)로 제공한다. 네트워크 디바이스(166)는 애플리케이션 식별 보고를 수신하고, 이제 새롭게 인스턴스화된 네트워크 흐름과 연관된 애플리케이션의 아이덴티티에 기초하여 흐름 동작을 적용한다.
본 명세서에서 논의되는 프로세스는 추가적인 새롭게 인스턴스화된 네트워크 흐름이 네트워크 디바이스(162 및 166)에서 검출되고, 몇 가지 새롭게 인스턴스화된 네트워크 흐름에 대하여 애플리케이션 식별자가 수신되는 경우에 계속될 것이다. 다르게 말하면, 네트워크 디바이스(162 및 166) 및 네트워크 제어기(161)는 본 명세서에서 설명된 바와 같이 계속 동작하여 새롭거나 정제된 애플리케이션 분류자를 생성하고 새롭게 인스턴스화된 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정할 수 있다.
다른 구현형태들에서, 도 3 과 관련하여 논의된 예의 다양한 세부사항들은 상이할 수 있다. 예를 들어, 다른 구현형태들에서, 추가적 네트워크 디바이스, 애플리케이션 분류자, 및/또는 분류자 트레이닝 모듈이 사용될 수 있다. 더욱이, 몇 가지 구현형태들에서, 분류자 트레이닝 모듈은 네트워크 제어기와 공동 호스팅되지 않고, 별개의 네트워크 디바이스에서 호스팅된다.
도 4 는 다른 구현형태에 따르는 애플리케이션-인식 네트워크 관리 프로세스의 흐름도이다. 프로세스(400)는 네트워크 디바이스 또는 다른 컴퓨팅 시스템에서 호스팅되는 애플리케이션-인식 네트워크 제어 시스템(110)과 같은 애플리케이션-인식 네트워크 제어 시스템(또는 그것의 모듈과 같은 컴포넌트에 의하여 구현될 수 있다. 이에 상응하여, 본 명세서에서 몇 가지 동작을 수행하는 프로세스(400)를 참조하여 이루어지는 모든 언급은 프로세스(200)를 구현하는 애플리케이션-인식 네트워크 제어 시스템이 그러한 동작을 수행한다는 것을 의미하는 것으로 이해되어야 한다.
더욱이, 도 4 에서 예시되는 프로세스(400)는 애플리케이션-인식 네트워크 관리 프로세스의 예시적인 구현형태이다. 본 명세서의 몇 가지 예들에서 논의되는 바와 같이, 다른 구현형태들에서, 리소스 분류 프로세스는 도 4 에 예시된 것보다 추가적이거나 더 적거나, 다른 블록(또는 단계)을 포함할 수 있다.
블록 410 에서, 프로세스(400)는 해당 네트워크 흐름이 인스턴스화되었다고 결정하고, 블록 420 에서 애플리케이션 식별자가 해당 네트워크 흐름에 대 하여 이용가능한지 여부를 결정한다. 만일 애플리케이션 식별자가 해당 네트워크 흐름에 대하여 이용가능하지 않다면(예를 들어, 애플리케이션 식별자가 애플리케이션 식별 에이전트에 의하여 제공되지 않았다면), 해당 네트워크 흐름은 해당 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정하도록 분류되어야 한다. 이에 상응하여, 애플리케이션 식별 신호가 블록 430 에서 수신될 때까지 네트워크 흐름 피쳐는 블록 421 에서 네트워크 흐름으로부터 유도된다.
블록 430 에서 애플리케이션 식별 신호를 수신하는 것에 응답하여, 프로세스(400)는 네트워크 흐름으로부터 네트워크 흐름 피쳐를 유도하는 것을 중지하고 블록 432 에서 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공한다. 애플리케이션 식별 모듈은 하나 이상의 애플리케이션 분류자를 블록 421 에서 유도된 네트워크 흐름 피쳐에 적용하여 네트워크 흐름을 분류하고 해당 네트워크 흐름과 연관된 애플리케이션의 아이덴티티를 결정하며, 애플리케이션 식별 보고를 생성한다. 애플리케이션 식별 보고는 블록 433 에서 수신되고, 프로세스(400)는 블록 434 에서 애플리케이션 식별 보고에 기초하여 네트워크 흐름에 흐름 동작을 적용한다. 그러면 프로세스(400)는 블록 410 으로 진행하여 추가적인 새롭게 인스턴스화된 네트워크 흐름을 식별한다.
다시 블록 420 을 참조하면, 애플리케이션 식별자가 해당 네트워크 흐름에 대하여 이용가능하다면(예를 들어, 애플리케이션 식별 에이전트로부터 수신되는 수신되었다면), 블록 422 에서 흐름 동작이 해당 애플리케이션 식별자에 기초하여 해당 흐름에 적용될 수 있다. 다른 구현형태들에서, 흐름 동작은 블록 440 이후에 또는 블록 450 이후에 해당 애플리케이션 식별자에 기초하여 흐름에 적용될 수 있다.
그러면 프로세스(400)는 블록 440 에서 애플리케이션 분류자를 생성(또는 규정) 또는 정제하는 데에 사용되기 위한 네트워크 흐름을 선택할지 여부를 결정한다. 위에서 논의된 바와 같이, 프로세스(400)는 다양한 기준들 및 방법론을 사용하여 네트워크 흐름을 선택할 수 있다. 만일 네트워크 흐름이 블록 440 에서 선택되지 않는다면, 프로세스(400)는 블록 410 으로 진행하여 추가적인 새롭게 인스턴스화된 네트워크 흐름을 식별한다. 그러나, 네트워크 흐름이 블록 440 에서 선택된다면, 네트워크 흐름에 대한 정보가 분류자 트레이닝 모듈로 제공되어 애플리케이션 분류자를 생성하거나 정제한다.
좀 더 구체적으로는, 도 4 에 도시된 예에서, 네트워크 흐름에 대한 애플리케이션 식별자가 블록 441 에서 분류자 트레이닝 모듈로 제공되고, 네트워크 흐름 피쳐가 블록 442 에서 네트워크 흐름으로부터 유도되며, 네트워크 흐름 피쳐가 블록 443 에서 분류자 트레이닝 모듈로 제공된다. 블록 442 및 443 은 블록 450 에서 애플리케이션 식별 신호가 수신되고 프로세스(400)가 네트워크 흐름 피쳐를 유도하고 제공하는 것을 중지할 때까지 반복된다. 위에서 논의되고 블록 421, 430, 431 및 432 에 의하여 예시되는 바와 같이, 몇 가지 구현형태들에서, 네트워크 흐름 피쳐는 애플리케이션 식별 신호가 수신될 때까지 유도되는데, 이에 응답하여 프로세스(400)는 네트워크 흐름 피쳐를 유도하는 것을 중지하고 네트워크 흐름 피쳐를 분류자 트레이닝 모듈 또는 애플리케이션 식별 모듈과 같은 엔티티로 제공한다.
프로세스(400)가 블록 450 에서 수신된 애플리케이션 식별 신호에 응답하여 네트워크 흐름 피쳐를 유도하고 분류자 트레이닝 모듈로 제공하는 것을 중지한 이후에, 프로세스(400)는 블록 410 으로 진행하여 추가적인 새롭게 인스턴스화된 네트워크 흐름을 식별한다. 분류자 트레이닝 모듈은 애플리케이션 분류자를 생성(또는 개정)하고 애플리케이션 분류자를 하나 이상의 애플리케이션 식별 모듈로 제공한다.
위에서 논의된 바와 같이, 도 4 에 도시된 예에 다양한 변형이 이루어질 수 있다. 예를 들어, 몇 가지 구현형태들에서, 프로세스(400)는 애플리케이션 식별 신호가 수신되기 이전에 하나 이상의 애플리케이션 식별 보고를 수신한다. 더욱이, 프로세스(400)는 애플리케이션 식별 신호가 수신되기 이전에 이러한 애플리케이션 식별 보고에 응답하여 흐름 동작을 적용할 수 있다. 예를 들어, 애플리케이션 식별 모듈이 예비 애플리케이션 식별 보고를 애플리케이션-인식 네트워크 제어 시스템으로 제공하게 하는 것이 유용할 수 있는데, 이에 응답하여 네트워크 흐름과 연관되는 애플리케이션의 식별이 정제되는 동안에 애플리케이션-인식 네트워크 제어 시스템이 몇 가지 동작을 적용할 수 있다.
특정 예로서, 네트워크 흐름과 연관되는 애플리케이션은 특정 비디오 화상회의 애플리케이션일 수 있고, 애플리케이션 식별 모듈은 협력 애플리케이션 및 비디오 화상회의 애플리케이션에 대한 일반적인 애플리케이션 분류자 특정 비디오 화상회의 애플리케이션에 대한 및 특정한 애플리케이션 분류자를 포함할 수 있다. 네트워크 흐름으로부터 유도되는 적은 양의 네트워크 흐름 피쳐가 이러한 분류자에 적용된 이후에, 애플리케이션 식별 모듈은 해당 애플리케이션을 일반적으로(generically) 협력 애플리케이션인 것으로 식별하고, 해당 애플리케이션을 협력 애플리케이션인 것으로 일반적으로 식별하는 예비 애플리케이션 식별 보고를 애플리케이션-인식 네트워크 제어 시스템으로 제공한다. 예비 애플리케이션 식별 보고는 그에 대하여 정제된 애플리케이션 식별 보고 또는 보고들이 기대되는 애플리케이션 식별 보고이다. 정제된 애플리케이션 식별 보고는 예비 애플리케이션 식별 보고보다 더 특유하거나 특정적인 애플리케이션 식별 보고이다. 이에 응답하여, 애플리케이션-인식 네트워크 제어 시스템은 대응하는 흐름 동작을 적용한다.
네트워크 흐름으로부터 유도되는 추가적인 네트워크 흐름 피쳐가 이러한 분류자에 적용된 이후에, 애플리케이션 식별 모듈은 해당 애플리케이션을 일반적으로(generically) 화상 회의 애플리케이션인 것으로 식별하고, 해당 애플리케이션을 화상 회의 애플리케이션인 것으로 일반적으로 식별하는 예비 애플리케이션 식별 보고를 애플리케이션-인식 네트워크 제어 시스템으로 제공한다. 여기에서, 이러한 예비 애플리케이션 식별 보고는 이전의 예비 애플리케이션 식별 보고의 정제된 애플리케이션 식별 보고라고 역시 지칭될 수 있다. 이러한 예비 애플리케이션 식별 보고에 응답하여, 애플리케이션-인식 네트워크 제어 시스템은 일반적인 비디오 화상회의 애플리케이션에 대응하는 흐름 동작을 적용한다.
마지막으로, 네트워크 흐름으로부터 유도되는 추가적인 네트워크 흐름 피쳐가 이러한 분류자에 적용된 이후에, 애플리케이션 식별 모듈은 해당 애플리케이션을 특정 화상 회의 애플리케이션인 것으로 특정적으로 식별하고, 해당 애플리케이션을 특정 화상 회의 애플리케이션인 것으로 특정적으로 식별하는 정제된 애플리케이션 식별 보고를 애플리케이션-인식 네트워크 제어 시스템 및 애플리케이션 식별 신호로 제공한다. 여기에서, 이러한 애플리케이션 식별 보고는 추가적인 정제된 애플리케이션 식별 보고 또는 보고들이 기대되지 않기 때문에 예비 애플리케이션 식별 보고라고 불리지 않는다. 이러한 정제된 애플리케이션 식별 보고에 응답하여, 애플리케이션-인식 네트워크 제어 시스템은 네트워크 흐름 피쳐를 유도하고 제공하는 것을 중지하고, 해당하는 특정 비디오 화상회의 애플리케이션에 대응하는 흐름 동작을 적용한다. 이에 상응하여, 다양한 흐름 동작이 네트워크 흐름 피쳐가 네트워크 흐름으로부터 유도되는 동안에 해당 네트워크 흐름에 적용될 수 있다.
도 5 는 일 구현형태에 따르는 애플리케이션-인식 네트워크 제어 시스템을 호스팅하는 네트워크 디바이스의 개략적인 블록도이다. 도 5 에 도시된 예에서, 네트워크 디바이스(500)는 프로세서(510), 통신 인터페이스(521 및 522), 및 메모리(530)를 포함한다. 네트워크 디바이스(500)는 예를 들어, 스위치, 라우터, 브릿지, 게이트웨이, 서버, 또는 몇 가지 다른 네트워크 디바이스일 수 있다. 몇 가지 구현형태들에서, 애플리케이션-인식 네트워크 제어 시스템을 호스팅하는 네트워크 디바이스는 그 자체로서 애플리케이션-인식 네트워크 제어 시스템이라고 지칭된다.
프로세서(510)는 명령, 코드, 또는 신호를 실행 또는 해석하는 하드웨어 및 소프트웨어의 임의의 조합이다. 예를 들어, 프로세서(510)는 마이크로프로세서, 주문형 집적회로(ASIC), 예컨대 범용 GPU(GPGPU)와 같은 그래픽 처리 유닛(GPU), 클러스터 또는 프로세서 또는 컴퓨팅 시스템의 네트워크와 같은 분산형 프로세서, 멀티코어 또는 멀티-프로세서 프로세서, 또는 가상 머신의 가상 또는 논리적 프로세서일 수 있다. 특정한 예로서, 몇 가지 구현형태들에서, 프로세서(510)는 데이터 패킷을 통신 인터페이스(521 및 522)의 고속 또는 라인 레이트에서 처리하는 하나 이상의 범용 프로세서 및 하나 이상의 애플리케이션-특정한 데이터 패킷 프로세서와 같은 다수의 프로세서를 포함할 수 있다.
통신 인터페이스(520)는 프로세서(510)가 다른 프로세서, 네트워크 디바이스, 또는 통신 링크를 통해 컴퓨팅 시스템과 통신할 수 있는 매체가 되는 모듈이다. 특정 예로서, 통신 인터페이스(520)는 데이터를 리소스 기관으로부터 수신하고 데이터를 이러한 기관으로 전송하기 위한 네트워크 인터페이스 카드 및 통신 프로세서(510)에 호스팅되는 프로토콜 스택(예를 들어, 메모리(530)에 저장되고 프로세서(510)에서 실행되거나 해석되어 네트워크 프로토콜을 구현하는 명령 또는 코드)을 포함할 수 있다. 특정한 예로서, 통신 인터페이스(520)는 유선 인터페이스, 무선 인터페이스, 광학적 인터페이스, 이더넷 인터페이스, 섬유 채널 인터페이스, 인피니밴드(InfiniBand) 인터페이스, IEEE 802.11 인터페이스, 또는 그것을 통하여 프로세서(510)가 신호 또는 데이터를 나타내는 심볼을 다른 프로세서 또는 컴퓨팅 시스템과 통신할 수 있는 몇 가지 다른 통신 인터페이스일 수 있다.
메모리(530)는 명령, 코드, 데이터, 또는 다른 정보를 저장하는 프로세서-판독가능 매체이다. 본 명세서에서 사용될 때, 프로세서-판독가능 매체는 저장 명령, 코드, 데이터, 또는 다른 정보를 일시적이 아닌 방식으로 저장하는 임의의 매체이고, 프로세서로 직접적으로 또는 간접적으로 액세스가능하다. 달리 말하면, 프로세서-판독가능 매체는 프로세서가 명령, 코드, 데이터, 또는 다른 정보에 액세스할 수 있는 비-일시적 매체이다. 예를 들어, 메모리(530)는 휘발성 랜덤 액세스 메모리(RAM), 하드-디스크 드라이브 또는 고상 드라이브와 같은 지속적 데이터 저장소, 콤팩트 디스크(CD), 디지털 다기능 디스크(DVD), 시큐어 디지털(Secure Digital™; SD) 카드, 멀티미디어카드(MultiMediaCard; MMC) 카드, 콤팩트플래쉬(CompactFlash™; CF) 카드, 또는 이들의 또는 다른 메모리의 조합일 수 있다. 다르게 말하면, 메모리(530)는 다수의 프로세서-판독가능 미디어를 나타낼 수 있다. 몇 가지 구현형태들에서, 메모리(530)는 프로세서(510)와 통합되거나, 프로세서(510)와 별개이거나, 또는 컴퓨팅 시스템(500)의 외부에 있을 수 있다.
메모리(530)는 프로세서(510)에 의하여 실행되는 경우 운영 체제(531) 및 애플리케이션-인식 네트워크 제어 시스템(532)의 컴포넌트(또는 모듈)와 같은 다른 모듈을 구현하는 명령 또는 코드를 포함한다. 다르게 말하면, 메모리(530)에 저장되는 명령 또는 코드가 모듈이라고 지칭될 수 있다. 메모리(530)는 또한 도 5 에서 도시되지 않는 다른 모듈을 구현하기 위한 추가적인 코드 또는 명령 및/또는 라우팅 또는 포워딩 테이블과 같은 다른 데이터 세트를 저장하도록 동작가능하다.
몇 가지 구현형태들에서, 네트워크 디바이스(500)는 가상화된 네트워크 디바이스일 수 있다. 예를 들어, 네트워크 디바이스(500)는 컴퓨팅 서버 또는 물리적 네트워크 디바이스에서 가상 머신으로서 호스팅될 수 있다.
애플리케이션-인식 네트워크 제어 시스템(532)은 다양한 메모리 또는 프로세서-판독가능 미디어로부터 네트워크 디바이스(500)에서 액세스되거나 설치될 수 있다. 예를 들어, 네트워크 디바이스(500)는 통신 인터페이스(미도시)를 통하여 원격 프로세서-판독가능 매체에 있는 액세스 애플리케이션-인식 네트워크 제어 시스템(532)에 액세스할 수 있다. 특정한 예로서, 네트워크 디바이스(500)는 부트 프로세스(또는 시퀀스) 도중에 운영 체제(531) 및 애플리케이션-인식 네트워크 제어 시스템(532)의 컴포넌트에 액세스하는 네트워크-부트 디바이스일 수 있다.
다른 예로서, 리소스(500)는 프로세서-판독가능 매체(예를 들어, 임베딩된 플래쉬 메모리, 고상 디스크 드라이브, 또는 하드-디스크 드라이브) 또는 이러한 프로세서-판독가능 매체에 액세스하기 위한 디바이스(도 5 에는 미도시)를 포함할 수 있고, 해당 프로세서-판독가능 매체 액세스 디바이스를 통하여 프로세서-판독가능 매체에 있는 애플리케이션-인식 네트워크 제어 시스템(532)의 컴포넌트에 액세스할 수 있다.
특정한 구현형태가 위에서 도시되고 설명되었지만, 형태 및 세부 사항에 있어서 다양한 변형이 이루어질 수도 있다. 예를 들어, 하나의 구현형태 및/또는 프로세스와 관련하여 설명된 바 있는 일부 피쳐는 다른 구현형태와 관련될 수 있다. 다르게 말하면, 하나의 구현형태와 관련하여 설명된 프로세스, 피쳐, 컴포넌트, 및/또는 속성은 다른 구현형태들에서도 유용할 수 있다. 다른 예로서, 특정한 모듈 또는 엘리먼트와 관련하여 위에서 논의된 기능성은 다른 구현형태들에서는 다른 모듈, 엔진, 또는 컴포넌트에 포함될 수 있다. 더욱이, 본 명세서에서 설명되는 해당 시스템, 장치, 및 방법이 설명되는 다른 구현형태의 다양한 컴포넌트 및/또는 피쳐의 조합 및/또는 서브-조합을 포함할 수 있다는 것이 이해되어야 한다. 따라서, 하나 이상의 구현형태를 참조하여 설명된 피쳐는 본 명세서에서 설명되는 다른 구현형태와 결합될 수 있다.
본 명세서에서 사용될 때, 단수 형태인 "한" "하나" 및 "그것"은 문맥이 그렇지 않다고 명백하게 표시하지 않으면 복수의 참조 부재를 포함한다. 따라서, 예를 들어, 용어 "모듈"은 하나 이상의 모듈 또는 모듈의 조합을 의미하는 것으로 의도된다. 더 나아가 본 명세서에서 사용될 때, "기초하여"라는 용어는 적어도 부분적으로 기초한다는 것을 의미한다. 따라서, 몇 가지 원인에 기초하는 것으로 설명되는 피쳐는 해당 원인에만 기초하거나 하나 이상의 다른 원인에 기초할 수 있다.

Claims (15)

  1. 프로세서-판독가능 매체로서,
    상기 프로세서에서 실행되는 경우 프로세서로 하여금:
    네트워크 흐름이 인스턴스화되었다(instantiated)고 결정하고;
    네트워크 흐름이 인스턴스화되었다고 결정하는 것에 응답하여, 상기 네트워크 흐름과 연관되는 네트워크 흐름 피쳐를 유도하며;
    상기 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공하고;
    애플리케이션 식별 신호에 응답하여, 상기 네트워크 흐름 피쳐를 상기 애플리케이션 식별 모듈로 유도하는 것을 중지하며;
    상기 애플리케이션 식별 모듈로부터 수신되는 애플리케이션 식별 보고에 기초하여 흐름 동작(flow action)을 상기 네트워크 흐름에 적용하게 하는 명령을 표현하는 코드를 저장하는, 프로세서-판독가능 매체.
  2. 제 1 항에 있어서,
    상기 프로세서에서 실행되는 경우 프로세서로 하여금:
    애플리케이션 식별 에이전트로부터 애플리케이션 식별자를 수신하고;
    애플리케이션 분류자(classifier)를 상기 애플리케이션 식별 모듈로 제공하도록 상기 애플리케이션 식별자를 상기 애플리케이션 식별 모듈과 통신하는 분류자 트레이닝 모듈(classifier training module)로 제공하게 하는 명령을 표현하는 코드를 더 저장하는, 프로세서-판독가능 매체.
  3. 제 1 항에 있어서,
    상기 애플리케이션 식별 신호는 상기 네트워크 흐름 내에서 선결정된 개수의 데이터 패킷의 송신에 응답하여 생성되고;
    상기 네트워크 흐름 피쳐는 상기 선결정된 개수의 데이터 패킷으로부터 유도되는, 프로세서-판독가능 매체.
  4. 제 1 항에 있어서,
    상기 프로세서에서 실행되는 경우 프로세서로 하여금:
    상기 애플리케이션 식별 모듈로부터 상기 애플리케이션 식별 신호를 수신하게 하는 명령을 표현하는 코드를 더 저장하는, 프로세서-판독가능 매체.
  5. 제 1 항에 있어서,
    상기 애플리케이션 식별 보고는 정제된 애플리케이션 식별 보고이고 상기 흐름 동작은 제 2 흐름 동작이며,
    상기 프로세서-판독가능 매체는, 상기 프로세서에서 실행되는 경우 프로세서로 하여금:
    제 1 시간에 상기 애플리케이션 식별 모듈로부터 예비 애플리케이션 식별 보고를 수신하고;
    상기 예비 애플리케이션 식별 보고에 기초하여 상기 네트워크 흐름에 제 1 흐름 동작을 적용하며;
    제 1 시간 이후의 제 2 시간에, 상기 애플리케이션 식별 모듈로부터 상기 정제된 애플리케이션 식별 보고를 수신하게 하는 명령을 표현하는 코드를 더 저장하고,
    상기 제 2 흐름 동작은 상기 정제된 애플리케이션 식별 보고에 기초하는, 프로세서-판독가능 매체.
  6. 제 1 항에 있어서,
    상기 프로세서에서 실행되는 경우 프로세서로 하여금:
    상기 애플리케이션 식별 모듈 또는 정책 저장부 중 하나로부터 상기 흐름 동작의 흐름 동작 식별자에 접근하게 하는 명령을 표현하는 코드를 더 저장하는, 프로세서-판독가능 매체.
  7. 애플리케이션-인식 네트워크 관리 방법으로서,
    제 1 의 복수 개의 네트워크 흐름을 선택하는 단계로서, 상기 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름은 새롭게 인스턴스화된 네트워크 흐름인, 선택 단계;
    애플리케이션 식별자가 상기 제 1 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대하여 이용가능하다고 결정하는 단계;
    상기 제 1 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 그리고 제 2 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하는 단계;
    상기 제 1 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐 및 애플리케이션 식별자를 분류자 트레이닝 모듈로 제공하는 단계;
    상기 제 2 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐를 애플리케이션 식별 모듈로 제공하는 단계; 및
    상기 제 1 의 복수 개의 네트워크 흐름 및 상기 제 2 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐를 제공하는 것을, 해당 네트워크 흐름에 대한 애플리케이션 식별 신호에 응답하여 중지하는 단계를 포함하는, 애플리케이션-인식 네트워크 관리 방법.
  8. 제 7 항에 있어서,
    상기 선택 단계는 무작위 선택 또는 적응적 선택인, 애플리케이션-인식 네트워크 관리 방법.
  9. 제 7 항에 있어서,
    상기 애플리케이션 식별 모듈로부터 상기 제 2 의 복수 개의 네트워크 흐름 중의 네트워크 흐름과 연관되는 애플리케이션 식별 보고를 수신하는 단계; 및
    상기 제 2 의 복수 개의 네트워크 흐름 중 상기 애플리케이션 식별 보고와 연관된 네트워크 흐름에 흐름 동작을 적용하는 단계를 더 포함하는, 애플리케이션-인식 네트워크 관리 방법.
  10. 애플리케이션-인식 네트워크 제어 시스템으로서,
    제 1 의 복수 개의 네트워크 흐름의 인스턴스화(instantiation)를 검출하는 검출 모듈로서, 상기 제 1 의 복수 개의 네트워크 흐름은 제 2 의 복수 개의 네트워크 흐름 및 제 3 의 복수 개의 네트워크 흐름을 포함하는, 검출 모듈;
    상기 제 1 의 복수 개의 네트워크 흐름으로부터 상기 제 2 의 복수 개의 네트워크 흐름을 선택하는 선택 모듈;
    복수 개의 애플리케이션 식별자를 수신하고, 상기 복수 개의 애플리케이션 식별자를 분류자 트레이닝 모듈로 제공하는 수집 모듈로서, 상기 복수 개의 애플리케이션 식별자 중의 각각의 애플리케이션 식별자는 상기 제 2 의 복수 개의 네트워크 흐름 중의 네트워크 흐름과 연관되는, 수집 모듈;
    상기 제 1 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하고, 상기 제 2 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 네트워크 흐름 피쳐를 분류자 트레이닝 모듈로 제공하며, 상기 제 1 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하는 것을, 해당 네트워크 흐름과 연관되는 애플리케이션 식별 신호에 응답하여 중지하는 피쳐 추출 모듈; 및
    애플리케이션 식별 모듈로부터 수신되는 애플리케이션 식별 보고에 기초하여 상기 제 3 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 흐름 동작을 적용하는 동작 모듈을 포함하는, 애플리케이션-인식 네트워크 제어 시스템.
  11. 제 10 항에 있어서,
    상기 선택 모듈은 상기 제 1 의 복수 개의 네트워크 흐름으로부터 상기 제 2 의 복수 개의 네트워크 흐름을 무작위로 선택하는, 애플리케이션-인식 네트워크 제어 시스템.
  12. 제 10 항에 있어서,
    상기 선택 모듈은 상기 제 1 의 복수 개의 네트워크 흐름으로부터 상기 제 2 의 복수 개의 네트워크 흐름을 적응적 선택하는, 애플리케이션-인식 네트워크 제어 시스템.
  13. 제 10 항에 있어서,
    상기 애플리케이션-인식 네트워크 제어 시스템은,
    상기 분류자 트레이닝 모듈을 더 포함하고,
    상기 분류자 트레이닝 모듈은 상기 복수 개의 애플리케이션 식별자 및 복수 개의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐에 기초하여 애플리케이션 분류자를 생성하고, 상기 애플리케이션 분류자를 상기 애플리케이션 식별 모듈로 제공하기 위한 것인, 애플리케이션-인식 네트워크 제어 시스템.
  14. 제 10 항에 있어서,
    상기 피쳐 추출 모듈은 상기 제 3 의 복수 개의 네트워크 흐름 중의 각각의 네트워크 흐름에 대한 네트워크 흐름 피쳐를 유도하고, 상기 제 3 의 복수 개의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐를 상기 애플리케이션 식별 모듈에 제공하기 위한 것이고,
    상기 시스템은 상기 애플리케이션 식별 모듈을 더 포함하며,
    상기 애플리케이션 식별 모듈은 애플리케이션 분류자를 상기 분류자 트레이닝 모듈로부터 수신하고, 상기 애플리케이션 분류자를 상기 제 3 의 복수 개의 네트워크 흐름에 대한 상기 네트워크 흐름 피쳐에 적용시킴으로써 상기 제 3 의 복수 개의 네트워크 흐름과 연관된 애플리케이션을 식별하며, 상기 애플리케이션 식별 보고를 생성하기 위한 것인, 애플리케이션-인식 네트워크 제어 시스템.
  15. 제 10 항에 있어서,
    애플리케이션 식별자는 복수 개의 애플리케이션 식별 에이전트로부터 수신되고,
    상기 복수 개의 애플리케이션 식별 에이전트 중의 각각의 애플리케이션 식별 에이전트는 네트워크 호스트에서 호스팅되고, 상기 네트워크 호스트에서 호스팅되는 애플리케이션으로부터의 네트워크 흐름에 대한 요청에 응답하여 애플리케이션 식별자를 제공하는, 애플리케이션-인식 네트워크 제어 시스템.
KR1020167006416A 2013-08-12 2013-08-12 애플리케이션-인식 네트워크 관리 KR20160042441A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/054589 WO2015023256A1 (en) 2013-08-12 2013-08-12 Application-aware network management

Publications (1)

Publication Number Publication Date
KR20160042441A true KR20160042441A (ko) 2016-04-19

Family

ID=52468526

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167006416A KR20160042441A (ko) 2013-08-12 2013-08-12 애플리케이션-인식 네트워크 관리

Country Status (6)

Country Link
US (1) US9954743B2 (ko)
EP (1) EP3033687B1 (ko)
JP (1) JP6162337B2 (ko)
KR (1) KR20160042441A (ko)
CN (1) CN105579990B (ko)
WO (1) WO2015023256A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200007912A (ko) * 2017-05-23 2020-01-22 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 트래픽을 모니터링하기 위한 방법, 장치 및 시스템

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9356876B1 (en) * 2013-11-24 2016-05-31 Cisco Technology, Inc. System and method for classifying and managing applications over compressed or encrypted traffic
US10439944B2 (en) * 2014-03-31 2019-10-08 Telefonaktiebolaget Lm Ericsson (Publ) Handling of traffic flows in a communications system
US10749926B2 (en) * 2014-04-23 2020-08-18 Rimini Street, Inc. Proxy for modifying HTTP messages to comply with browser
JP6541482B2 (ja) * 2015-07-13 2019-07-10 Kddi株式会社 検証装置、検証方法及び検証プログラム
US10430442B2 (en) 2016-03-09 2019-10-01 Symantec Corporation Systems and methods for automated classification of application network activity
US10666675B1 (en) 2016-09-27 2020-05-26 Ca, Inc. Systems and methods for creating automatic computer-generated classifications
US11063836B2 (en) 2017-03-21 2021-07-13 Cisco Technology, Inc. Mixing rule-based and machine learning-based indicators in network assurance systems
US10944733B2 (en) 2017-07-31 2021-03-09 Cisco Technology, Inc. Dynamic disassociated channel encryption key distribution
EP3662695A4 (en) * 2017-08-03 2020-06-10 Drivenets Ltd. NETWORK SENSITIVE ELEMENT AND METHOD OF USING SAME
CN108092920B (zh) * 2017-12-19 2020-06-19 西安交通大学 一种基于软件定义和用户中心网络的应用感知系统及其方法
US10958681B2 (en) * 2018-03-23 2021-03-23 Cisco Technology, Inc. Network security indicator of compromise based on human control classifications
US10892973B2 (en) * 2018-04-27 2021-01-12 Hewlett Packard Enterprise Development Lp Network health monitoring
JP7052634B2 (ja) * 2018-08-13 2022-04-12 日本電信電話株式会社 負荷分散システム及び負荷分散方法
CN110460488B (zh) * 2019-07-01 2022-10-18 华为技术有限公司 业务流识别方法和装置、模型生成方法和装置
CN112637069B (zh) * 2020-12-18 2022-05-06 支付宝(杭州)信息技术有限公司 数据报文的传输方法和装置
CN115442300A (zh) * 2021-06-04 2022-12-06 华为技术有限公司 报文转发方法、装置及通信网络

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463470B1 (en) 1998-10-26 2002-10-08 Cisco Technology, Inc. Method and apparatus of storing policies for policy-based management of quality of service treatments of network data traffic flows
US6934745B2 (en) * 2001-06-28 2005-08-23 Packeteer, Inc. Methods, apparatuses and systems enabling a network services provider to deliver application performance management services
US7664048B1 (en) * 2003-11-24 2010-02-16 Packeteer, Inc. Heuristic behavior pattern matching of data flows in enhanced network traffic classification
US7496661B1 (en) * 2004-03-29 2009-02-24 Packeteer, Inc. Adaptive, application-aware selection of differentiated network services
US20050232153A1 (en) * 2004-04-16 2005-10-20 Vieo, Inc. Method and system for application-aware network quality of service
US7769875B1 (en) * 2004-08-03 2010-08-03 Juniper Networks, Inc. Managing a network flow using application classification information and active signaling relay
US7447768B2 (en) 2005-01-19 2008-11-04 Facetime Communications, Inc. Categorizing, classifying, and identifying network flows using network and host components
JP4232828B2 (ja) * 2007-02-01 2009-03-04 沖電気工業株式会社 アプリケーション分類方法、ネットワーク異常検知方法、アプリケーション分類プログラム、ネットワーク異常検知プログラム、アプリケーション分類装置、ネットワーク異常検知装置
US9419867B2 (en) * 2007-03-30 2016-08-16 Blue Coat Systems, Inc. Data and control plane architecture for network application traffic management device
CN101252541B (zh) * 2008-04-09 2011-05-04 中国科学院计算技术研究所 一种网络流量分类模型的建立方法及相应系统
US8413111B2 (en) * 2008-10-02 2013-04-02 Actiance, Inc. Techniques for dynamic updating and loading of custom application detectors
US8572717B2 (en) * 2008-10-09 2013-10-29 Juniper Networks, Inc. Dynamic access control policy with port restrictions for a network security appliance
CN103221943A (zh) * 2010-09-28 2013-07-24 海德沃特合作I有限公司 用于接入网络的企业接入控制和记账分配
CN102209032A (zh) * 2011-05-24 2011-10-05 北京网康科技有限公司 一种用户自定义的应用识别方法及其设备
US8839404B2 (en) 2011-05-26 2014-09-16 Blue Coat Systems, Inc. System and method for building intelligent and distributed L2-L7 unified threat management infrastructure for IPv4 and IPv6 environments
CN103843295A (zh) 2011-09-28 2014-06-04 瑞典爱立信有限公司 集中式数据面流控制
US9130826B2 (en) * 2013-03-15 2015-09-08 Enterasys Networks, Inc. System and related method for network monitoring and control based on applications
US9813447B2 (en) * 2013-03-15 2017-11-07 Extreme Networks, Inc. Device and related method for establishing network policy based on applications

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200007912A (ko) * 2017-05-23 2020-01-22 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 트래픽을 모니터링하기 위한 방법, 장치 및 시스템

Also Published As

Publication number Publication date
EP3033687A1 (en) 2016-06-22
CN105579990A (zh) 2016-05-11
EP3033687A4 (en) 2017-07-05
JP2016528630A (ja) 2016-09-15
US9954743B2 (en) 2018-04-24
US20160191348A1 (en) 2016-06-30
EP3033687B1 (en) 2019-07-03
JP6162337B2 (ja) 2017-07-12
CN105579990B (zh) 2018-09-14
WO2015023256A1 (en) 2015-02-19

Similar Documents

Publication Publication Date Title
JP6162337B2 (ja) アプリケーションアウェアネットワーク管理
CN107005472B (zh) 一种用于提供域间服务功能链接的方法及装置
US10341389B2 (en) Policy based on a requested behavior
US9614739B2 (en) Defining service chains in terms of service functions
US9654395B2 (en) SDN-based service chaining system
US9917729B2 (en) Methods, systems, and computer readable media for multi-layer orchestration in software defined networks (SDNs)
EP3195535B1 (en) Chaining of network service functions in a communication network
US10257066B2 (en) Interconnect congestion control in a storage grid
US20160301603A1 (en) Integrated routing method based on software-defined network and system thereof
US10594565B2 (en) Multicast advertisement message for a network switch in a storage area network
US9674080B2 (en) Proxy for port to service instance mapping
US9800551B2 (en) AVC Bi-directional correlation using an overlay fabric header
US10243849B2 (en) Distributed methodology for peer-to-peer transmission of stateful packet flows
CN112398676A (zh) 多租户环境中服务接入端点的基于供应商无关简档的建模
WO2019061169A1 (zh) 一种基于混合资源的路由选路方法、装置和服务器
JP2016046736A (ja) サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法
US20230239250A1 (en) Method and computing devices for enforcing packet order based on packet marking
US10079718B1 (en) Network traffic processing system
WO2024069219A1 (en) Receive side application auto-scaling
JP5937526B2 (ja) トラフィック制御システム及びトラフィック制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application