KR101617323B1 - 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스 - Google Patents

서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스 Download PDF

Info

Publication number
KR101617323B1
KR101617323B1 KR1020147032798A KR20147032798A KR101617323B1 KR 101617323 B1 KR101617323 B1 KR 101617323B1 KR 1020147032798 A KR1020147032798 A KR 1020147032798A KR 20147032798 A KR20147032798 A KR 20147032798A KR 101617323 B1 KR101617323 B1 KR 101617323B1
Authority
KR
South Korea
Prior art keywords
scheduling
service
services
processing modules
processing
Prior art date
Application number
KR1020147032798A
Other languages
English (en)
Other versions
KR20150035544A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20150035544A publication Critical patent/KR20150035544A/ko
Application granted granted Critical
Publication of KR101617323B1 publication Critical patent/KR101617323B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

서비스 스케줄링 방법은, 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득하는 단계; 상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성하는 단계; 상기 생성된 스케줄링 논리에 따라, 각 처리 모듈을 호출하여 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하는 단계; 및 각 서비스의 스케줄링 지점 정보에 따라, 각 서비스의 스케줄링 지점에서 대응하는 서비스를 호출하는 단계를 포함한다. 따라서, 본 발명의 실시예는 또한 서비스 스케줄링 장치 및 네트워크 디바이스도 제공한다. 본 발명의 실시예에서는, 전술한 기술적 방안을 이용함으로써, 종래의 패킷 처리 프로세스가 세분되고, 복수의 서비스 스케줄링 지점이 정의되며, 요구된 서비스는 패킷 처리 결과에 따라 유연하게 스케줄링되어, 반복된 스케줄링을 회피하고, 서비스 스케줄링의 유연성 및 성능을 향상시키며, 네트워크 디바이스의 경쟁력을 증대시킨다.

Description

서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스 {SERVICE SCHEDULING METHOD AND APPARATUS, AND NETWORK DEVICE}
본 발명은 통신 기술 분야에 관한 것으로, 특히, 서비스 스케줄링 방법 및 장치, 네트워크 디바이스, 그리고 통신 시스템에 관한 것이다.

관련 출원의 상호 참조
본 출원은, 2013년 7월 2일에 출원된 중국 특허출원 제201310274883.0호에 대해 우선권을 주장하는, 2014년 1월 23일에 출원된 국제출원 PCT/CN2014/071176의 계속출원이며, 상기 두 출원 모두는 그 전체가 인용에 의해 본 명세서에 포함된다.
통신 시스템에서, 네트워크 디바이스에 대한, 특히 라우터, 교환기(switch), 및 게이트웨이와 같은 코어 네트워크 디바이스에 대한 애플리케이션 서비스는 계속 증가하고 있다. 도 1에 도시된 바와 같이, 애플리케이션 계층(서비스 계층)에는, 공통 자원 위치자 필터(Uniform Resource Locator Filter, URLF), WAN 최적화 컨트롤러(WAN Optimization Controller, WOC), 애플리케이션 딜리버리 컨트롤러(Application Delivery Controller, ADC), 침입 방지 서비스(Intrusion Prevention System, IPS)와 같은 보안 서비스, 분산형 서비스 거부(Distributed Denial of Service, DDOS), 및 방화벽(firewall, FW)뿐 아니라, 대역폭 제어, 및 서비스 품질(Quality of Service, QOS) 제어 등의 복수 타입의 서비스가 일반적으로 배치되어 있다. 각 서비스의 실행은, 예를 들어, 패킷 심층 분석(Deep Packet Inspection, DPI), 보안 소켓 계층(Secure Sockets Layer, SSL), 및 럼펠-지브(Lempel-Ziv, LZ) 압축 등의, 네트워크 데이터에 대한 데이터 처리 계층에 의한 구체적인 처리에 의존한다. 상이한 서비스는 데이터 처리 방식 및 시간 시퀀스에 대한 상이한 요건을 가진다. 서비스 스케줄링의 목적은 상이한 서비스 요건을 충족시키고, 합리적인 스케줄링을 수행하며, 반복된 스케줄링 및 과다 스케줄링(over-scheduling)을 회피하는 것이다.
종래기술에서는, 일반적으로 서비스 기반 스케줄링 방식이 채택된다. 이러한 스케줄링 방식에서는, 각 서비스를 별개로 실행하는 한편, 일부 범용 기능(예를 들어, IP 단편화 처리)은 데이터 처리 모듈로 캡슐화되고; 각 처리 모듈은 필요할 때 직접 호출(invoke)된다. 서비스 실행 시퀀스는 일반적으로 사용자의 서비스 요구에 따라 미리 설정된다. 디바이스가 패킷을 수신한 때, 디바이스는 시퀀스에 따라 처리를 위해 각 서비스에 그 패킷을 전송한다. 서비스가 패킷에 대해 특정한 처리를 수행할 필요가 있을 때, 그 서비스는 처리를 수행하는 서비스 논리에 따라 관련된 처리 모듈을 호출한다. 도 2에 도시된 바와 같이, 디바이스가 IPS 서비스 및 ADC 서비스로 구성된다고 가정하면, 패킷을 처리할 때, IPS 서비스는 요건(requirement)에 따라 DPI 모듈과 LZ 모듈을 별개로 호출하는 반면, ADC 서비스는 DPI 모듈, LZ 모듈 및 SSL 모듈을 호출한다.
전술한 프로세스 설명에 따르면, 종래기술의 스케줄링 방식은 다음 두 가지 문제가 있다: 첫 번째 문제는 서비스 실행 순서가 고정되어 있고 유연성 부족하다는 것이고, 두 번째 문제는 동일한 처리 모듈이 여러 번 호출되고 패킷이 반복하여 처리되는 경우가 있어, 이것이 서비스 실행 효율에 영향을 미친다는 것이다.
본 발명의 실시예는 서비스 스케줄링의 유연성 및 성능을 향상시키기 위해, 서비스 스케줄링 방법, 네트워크 디바이스, 및 통신 시스템을 제공한다.
제1 측면에 따르면, 본 발명의 실시예는 서비스 스케줄링 방법을 제공하고, 상기 방법은,
스케줄러가, 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득하는 단계;
상기 스케줄러가, 상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리(scheduling logic)를 생성하는 단계 - 상기 스케줄링 논리는 패킷을 처리하는 복수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점(scheduling point) 사이의 매핑 관계를 포함하고, 상기 각 서비스의 스케줄링 지점은 상기 스케줄러가 상기 서비스를 스케줄링하는 논리적인 제어 지점임 -; 및
상기 스케줄러가, 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈의 각 처리 모듈을 연속적으로, 상기 생성된 스케줄링 논리에 포함되어 있는 상기 복수의 처리 모듈의 실행 시퀀스에 따라, 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하는 단계를 포함한다.
상기 제1 측면의 제1 가능한 구현 방식에서,
상기 스케줄러가, 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득하는 단계는,
상기 스케줄러가, 상기 네트워크 디바이스에 의해 전달된 구성 파일(configuration file)을 수신하고, 상기 구성 파일을 파싱하여 상기 복수의 서비스의 스케줄링 정보를 획득하는 단계를 포함한다.
상기 제1 측면 또는 상기 제1 측면의 제1 가능한 구현 방식을 참조하여, 제2 가능한 구현 방식에서, 상기 각 서비스의 스케줄링 정보는, 각 서비스의 서비스 규칙 및 각 서비스와 다른 서비스 사이의 의존 관계(dependence relationship)를 포함하고;
상기 스케줄러가, 상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성하는 단계는,
상기 스케줄러가, 상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 상기 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고, 각 스케줄링 지점과 상기 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하는 단계 - 상기 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -; 및
상기 서비스들 사이의 의존 관계에 따라 상기 N개의 처리 모듈의 실행 시퀀스를 결정하는 단계 - 상기 스케줄링 논리는, 상기 N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 상기 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있음 -를 포함한다.
상기 제1 측면 또는 상기 제1 측면의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈의 각 처리 모듈을 연속적으로, 상기 생성된 스케줄링 논리에 포함되어 있는 상기 복수의 처리 모듈의 실행 시퀀스에 따라, 호출하는 것은,
상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 대응하는 처리 모듈을 연속적으로, 상기 N개의 처리 모듈의 결정된 실행 시퀀스에 따라, 호출하여, N개의 패킷 처리 결과를 획득하는 것을 포함한다.
상기 제1 측면의 제2 또는 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하는 것은,
서비스가 스케줄링되어야 하는, 상기 N개의 처리 모듈의 처리 모듈들 사이의 및/또는 상기 N개 처리 모듈의 각 처리 모듈 내부의, 각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고;
상기 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고;
스케줄링되어야 하는 서비스가 복수 존재하면, 스케줄링되어야 하는 상기 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 상기 스케줄링 지점에서 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고;
스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 스케줄링되어야 하는 상기 서비스를 직접 호출하는 것을 포함한다.
상기 제1 측면의 제3 또는 제4 가능한 구현 방식을 참조하여, 제5 가능한 구현 방식에서, 상기 서비스 스케줄링 방법은,
상기 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 상기 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, 상기 N개의 처리 모듈 중, 상기 P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, 상기 N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하는 단계를 더 포함하고, P는 1보다 큰 양의 정수이고, P는 N보다 작다.
제2 측면에 따르면, 본 발명의 실시예는,
네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득하도록 구성된 획득 모듈;
상기 획득 모듈에 의해 획득된 스케줄링 정보에 따라 스케줄링 논리를 생성하는 스케줄링 논리 생성 모듈 - 상기 스케줄링 논리는 패킷을 처리하는 복수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 상기 각 서비스의 스케줄링 지점은 서비스 스케줄링 장치가 상기 서비스를 스케줄링하는 논리적인 제어 지점임 -; 및
상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈의 각 처리 모듈을 연속적으로, 상기 생성된 스케줄링 논리에 포함되어 있는 상기 복수의 처리 모듈의 실행 시퀀스에 따라, 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록 구성되어 있는 스케줄링 모듈을 포함하는 서비스 스케줄링 장치를 제공한다.
상기 제2 측면의 제1 가능한 구현 방식에서, 상기 획득 모듈은 구체적으로, 상기 네트워크 디바이스에 의해 전달된 구성 파일을 수신하고, 상기 구성 파일을 파싱하여 상기 복수의 서비스의 스케줄링 정보를 획득하도록 구성되어 있다.
상기 제2 측면, 또는 상기 제2 측면의 제1 가능한 구현 방식을 참조하여, 상기 제2 측면의 제2 가능한 구현 방식에서, 상기 각 서비스의 스케줄링 정보는, 각 서비스의 서비스 규칙, 및 각 서비스와 다른 서비스 사이의 의존 관계를 포함하고;
상기 스케줄링 논리 생성 모듈은,
상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 상기 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고, 각 스케줄링 지점과 상기 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하도록 구성되어 있는 매핑 유닛 - 상기 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -; 및
상기 서비스들 사이의 의존 관계에 따라 상기 N개의 처리 모듈의 각 처리 모듈에 대한 실행 시퀀스를 결정하도록 구성되어 있는 정렬 유닛(sorting unit) - 상기 스케줄링 논리는, 상기 N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 상기 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있음 -을 포함한다.
상기 제2 측면의 제2 가능한 구현 방식을 참조하여, 상기 제2 측면의 제3 가능한 구현 방식에서, 상기 스케줄링 모듈은 구체적으로, 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈의 각 처리 모듈을 연속적으로, 상기 N개의 처리 모듈의 결정된 실행 시퀀스에 따라, 호출하여, N개의 패킷 처리 결과를 획득하도록 구성되어 있다.
상기 제2 측면의 제2 또는 제3 가능한 구현 방식을 참조하여, 상기 제2 측면의 제4 가능한 구현 방식에서, 상기 스케줄링 모듈은 구체적으로,
상기 매핑 유닛에 의해 결정된 각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고; 상기 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고; 스케줄링되어야 하는 서비스가 복수 존재하면, 상기 스케줄링되어야 하는 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 상기 스케줄링 지점에서 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고; 스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 상기 스케줄링되어야 하는 서비스를 직접 호출하도록, 구성되어 있다.
상기 제2 측면의 제3 또는 제4 가능한 구현 방식을 참조하여, 상기 제2 측면의 제5 가능한 구현 방식에서, 상기 서비스 스케줄링 장치는,
상기 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 상기 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, 상기 N개의 처리 모듈 중, 상기 P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, 상기 N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하도록 구성되어 있는 조정 모듈을 더 포함하고, P는 1보다 큰 양의 정수이고, P는 N보다 작다.
상기 제3 측면에 따르면, 본 발명의 실시예는 또한 송수신기 모듈, 스케줄러, 및 복수의 처리 모듈을 포함하는 네트워크 디바이스를 제공하며,
상기 송수신기 모듈은, 상기 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보 및 패킷을 수신하도록 구성되어 있고,
상기 스케줄러는,
상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성하도록 구성되어 있고 - 상기 스케줄링 논리는 상기 송수신기 모듈에 의해 수신된 패킷을 처리하는 복수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 상기 각 서비스의 스케줄링 지점은 상기 스케줄러가 상기 서비스를 스케줄링하는 논리적인 제어 지점임 -;
상기 송수신기 모듈에 의해 수신된 네트워크 패킷을 처리하기 위해 상기 복수의 처리 모듈의 각 처리 모듈을 연속적으로, 상기 생성된 스케줄링 논리에 포함되어 있는 상기 복수의 처리 모듈의 실행 시퀀스에 따라, 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록 더 구성되어 있다.
상기 제3 측면의 제1 가능한 구현 방식에서, 상기 송수신기 모듈은 구체적으로 상기 네트워크 디바이스에 의해 전달된 구성 파일을 수신하고, 상기 구성 파일을 파싱하여 각 서비스의 스케줄링 정보를 획득하도록 구성되어 있다.
상기 제3 측면 또는 상기 제3 측면의 제1 가능한 구현 방식을 참조하여, 제2 가능한 구현 방식에서, 각 서비스의 스케줄링 정보는 각 서비스의 서비스 규칙, 및 각 서비스와 다른 서비스 사이의 의존 관계를 포함하고,
상기 스케줄러는 구체적으로, 상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 모든 처리 모듈, 및 상기 모든 처리 모듈의 처리 모듈들 사이에 및/또는 상기 모든 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고; 각 스케줄링 지점과 상기 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하고; 상기 서비스들 사이의 의존 관계에 따라 상기 모든 처리 모듈의 실행 시퀀스를 결정하도록, 구성되어 있고, 상기 스케줄링 논리는, N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 상기 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있다.
상기 제3 측면의 제2 가능한 구현 방식을 참조하여, 제3 가능한 구현 방식에서, 상기 스케줄러는 구체적으로, 결정된 각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고; 상기 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고; 스케줄링되어야 하는 서비스가 복수 존재하면, 스케줄링되어야 하는 상기 복수의 서비스의 각 서비스에 대한 우선순위의 내림차순에 따라, 상기 스케줄링 지점에서 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고; 스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 스케줄링되어야 하는 상기서비스를 직접 호출하도록, 구성되어 있다.
상기 제3 측면 또는 상기 제3 측면의 제1, 제2, 또는 제3 가능한 구현 방식을 참조하여, 제4 가능한 구현 방식에서,
상기 복수의 처리 모듈은 상기 네트워크 디바이스의 복수의 프로세서 코어상에 배치되어 있고, 상기 스케줄러는 분산 방식으로 상기 복수의 프로세서 코어상에 배치되어 있다.
전술한 기술적 방안으로부터 알 수 있듯이, 본 발명의 실시예에 의해 제공되는 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스를 사용함으로써, 커스터마이징 가능한(customizable) 멀티서비스 스케줄러가 복수의 서비스의 유연한 스케줄링을 구현하는 데 사용되고, 스케줄러는 서비스에 대한 스케줄링 정보를 획득한다. 또, 요구된 서비스를 유연하게 스케줄하고 반복된 스케줄링을 피하기 위해, 종래의 패킷 처리 프로세스는 세분화되고, 스케줄링 논리는 서비스의 스케줄링 정보에 따라 동적으로 생성되고 복수의 서비스 스케줄링 지점이 정의되어, 서비스 스케줄링의 유연성 및 성능을 향상시키고 네트워크 디바이스의 경쟁력을 더욱 증대시킨다.
본 발명의 실시예에서의 기술적 방안을 더욱 명확하게 설명하기 위해, 실시예의 설명에 필요한 첨부도면을 간단히 소개한다. 명백히, 아래의 설명에서의 첨부도면은 단지 본 발명의 일부 실시예일 뿐이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진자(이하, 당업자라고 함)라면 여전히 창의적인 노력 없이 이들 첨부도면에 따라 다른 도면을 도출할 수 있을 것이다.
도 1은 본 발명에 따른 다중 서비스 정책 제어(multiservice policy control)의 계층 배치 방식의 개략도이다.
도 2는 종래기술에서의 서비스 스케줄링 방법의 개략도이다.
도 3은 본 발명의 실시예에 따른 기업 사설 클라우드(enterprise private cloud)의 네트워크의 개략도이다.
도 4는 본 발명의 실시예에 따른 서비스 스케줄링 방법의 개략 흐름도이다.
도 5는 본 발명의 실시예에 따른 서비스 스케줄링 처리 방법의 흐름도이다.
도 6은 본 발명의 실시예에 따른 스케줄러에 의한 서비스 스케줄링의 개략 흐름도이며;
도 7은 본 발명의 실시예에 따른 네트워크 디바이스의 개략도이다.
도 8은 본 발명의 실시예에 따른 다른 네트워크 디바이스의 개략도이다.
도 9는 본 발명의 실시예에 따른 다른 네트워크 디바이스의 개략도이다.
도 10은 본 발명의 실시예에 따른 다른 네트워크 디바이스의 개략도이다.
도 11은 본 발명의 실시예에 따른 서비스 스케줄링 장치의 개략도이다.
도 12는 본 발명의 실시예에 따른 네트워크 디바이스의 개략도이다.
서비스 스케줄링 방법을 제공본 발명의 목적, 기술 방안, 및 이점을 더욱 명확하게 하기 위해, 이하에 본 발명의 실시예에서의 첨부도면을 참조하여 본 발명의 실시예의 기술적 방안을 명확하게 설명한다. 명백히, 설명되는 실시예는 단지 본 발명의 실시예의 일부이다. 본 발명의 이하의 실시예에 기초하여, 당업자는 창의적인 노력 없이 기술적 특징의 일부나 심지어는 전부를 등가적으로 변경함으로써, 본 발명의 기술적 과제를 해결하고 본 발명의 기술적 효과를 달성할 수 있는 다른 실시예를 여전히 얻을 수 있다. 변경에 의해 얻은 실시예는 명백히 본 발명에서 개시된 범위 내에 속한다.
당업자가 본 발명의 실시예에 의해 제공되는 기술적 방안을 더 잘 이해할 수 있도록, 본 발명의 실시예에 의해 제공되는 기술적 방안의 애플리케이션 시나리오를 먼저 소개한다. 본 발명의 실시예에 의해 제공되는 기술적 방안은, 예를 들어, 홈 영역 네트워크(home area network), 액세스 네트워크(access network), 통합 네트워크(aggregation network), 백본 네트워크(backbone network), 기업 네트워크(enterprise network), 운영자 네트워크(operator network) 및 다양한 사설/공용 클라우드(private/public cloud) 등의, 멀티서비스 정책 제어 시나리오에 적용될 수 있다.
이하는 간단한 설명을 위해 기업 네트워크가 전형적인 애플리케이션 시나리오의 역할을 하는 것을 예로 사용한다. 도 3은 기업이 외부에 서비스를 제공하는 일반적인 시나리오를 설명하며, 사용자가 서비스를 요청하기 위해 이동 단말기 또는 고정 단말기를 사용하여 네트워크에 액세스한다. 기업의 내부 네트워크는 일반적으로 라우터(router), 교환기(swich) 및 서버와 같은 네트워크 디바이스로 구성된다. 요구에 따라, IPS, 대역폭 제어, URL 필터링, WOC 및 ADC와 같은 서비스가 하나 이상의 네트워크 디바이스에 배치된다. 일반적으로, 다수의 서비스가 동일한 디바이스에 배치된다. 이 경우, 네트워크 디바이스상의 다수의 서비스는 유연성과 서비스 처리의 성능을 향상시키기 위해 적절히 스케줄링되어야 한다. 본 발명의 실시예에 의해 제공되는 기술적 방안은 이러한 멀티서비스 처리 시나리오에 적용 가능하다. 예를 들어, 도 3에 도시된 라우터나 교환기가 본 발명의 실시예에 의해 제공되는 기술적 방안을 구현하는 데 사용될 수 있다. 유의해야 할 것은, 기업 네트워크 시나리오는 본 발명의 기술적 방향의 전형적인 애플리케이션 시나리오일 뿐이며, 본 발명의 애플리케이션 시나리오에 대한 제한을 의미하지는 않는다는 것이다. 본 발명의 실시예의 기술적 방안은 여러 타입의 서비스의 스케줄링이 관련되는 다른 애플리케이션 시나리오에 항상 적용 가능하다.
본 발명의 실시예는 서비스 스케줄링 방법을 제공한다. 도 4에 도시된 바와 같이, 다수의 서비스(예를 들어, 도 4에 도시된 서비스 1 및 서비스 2)가 현재의 네트워크 디바이스상에 실행되고 있고, 하나 이상의 처리 모듈, 예를 들어 도 4에 도시된 처리 모듈 1, 처리 모듈 2 ... 처리 모듈 n이 현재 네트워크 디바이스상에 배치되어 있고, 스케줄러는 서비스 스케줄링 기능을 구현하도록 구성되어 있다고 가정하자. 구체적으로, 스케줄러는, 사용자에 의해 구성되고 각 서비스에 대한 스케줄링 정보를 포함하는 구성 파일에 기초하여, 각 처리 모듈에 의한 패킷을 처리하는 프로세스에서의 각 스케줄링 지점에서 패킷 처리 결과 정보를 취득하고, 서비스 요건에 따라 패킷을 처리하기 위해 대응하는 서비스를 스케줄링하며, 스케줄링 지점은, 스케줄러가 서비스 스케줄링을 수행하고 처리 모듈과 결합되는 논리적 제어 지점이다. 전술한 설명에 기초하여, 본 발명의 이 실시예에서 제공된 서비스 스케줄링 방법은 구체적으로 스케줄러에 의해 구현될 수 있으며, 스케줄러는 도 3에 도시된 라우터 또는 교환기상에 배치될 수 있다. 도 5는 스케줄러에 의해 수행된 서비스 스케줄링의 방법 프로세스를 설명한다. 도 5에 따르면, 상기 방법 프로세스는 다음의 단계를 포함한다.
단계 501: 스케줄러가 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득한다.
유의해야 할 것은, 전술한 다수의 서비스의 각 서비스에 대한 스케줄링 정보는 서비스를 스케줄링하는 정책을 나타내기 위해 사용된다는 것이다. 각 서비스의 스케줄링 정보는 서비스의 정책 정보, 서비스가 의존하는 처리 모듈에 관한 정보, 등을 포함하지만 이에 한정되는 것은 아니다. 이 실시예에서의 스케줄링 지점은 서비스와 처리 모듈의 조합에 의해 결정되고, 처리 모듈은 패킷에 대한 구체적인 처리, 예를 들어, IP 단편화(fragmentation) 처리, 데이터 스트림 관리, L1-L3 처리, L7 처리, 등을 수행하도록 구성되어 있다는 것에 유의하여야 한다.
실시예에서, 전술한 각 서비스의 스케줄링 정보는 서비스를 스케줄링하기 위해 명시적으로 지정된 규칙 또는 타이밍일 수 있으며, 예를 들어 스케줄링 정보는 스케줄러에 특정한(specific) 처리 모듈이 패킷 처리를 완료한 후에 일정한(certain) 서비스를 스케줄링하도록 또는 특정한 처리 모듈이 패킷에 대한 특정한 처리를 완료한 단계(stage) 후에 일정한 서비스를 스케줄링하도록 명령하는데 사용될 수 있다. 예를 들어, IPS 서비스는 패킷에 대한 계층 4 처리가 완료된 후 스케줄링되고, ADC 서비스는 패킷의 헤더 필드의 파싱이 완료된 후 스케줄링되도록 지정될 수 있다. 또한, 스케줄링 정보는, 서비스를 위해 지정된 특정한 데이터 스트림의 스케줄링 정보를 포함할 수 있다. 예를 들어, ADC 서비스가 구성될 때, 스케줄러는 8080 포트의 데이터 스트림만을 처리하도록 또는 특정한 IP 어드레스 또는 특정한 프로토콜, 등의 데이터 스트림을 처리하도록 지정될 수 있다.
다른 실시예에서, 각 서비스의 스케줄링 정보는 또한, 파싱 및 추출과 같은 방식으로 서비스의 서비스 규칙으로부터의 추출에 의해 암묵적으로 지정되는 스케줄링 정보일 수도 있다. 즉, 서비스에 대응하는 서비스 규칙에 포함된 조건에 따라, 패킷에 대해 특정한 처리를 수행하고 포함된 조건의 결정이 의존하는 처리 모듈뿐 아니라, 그 서비스가 종속되는 모듈에 관한 정보를 결정한다. 유의해야 할 것은, 서비스 규칙은 서비스가 실행될 때 따라야 하는 규칙이라는 것이다. 하나의 서비스 규칙은 두 부분: 조건(condition) 및 동작(action)을 포함한다. 구체적으로, 하나의 서비스 규칙은 하나 이상의 조건을 포함할 수 있고, 동일한 서비스 규칙에서의 다수의 조건은 상이한 레벨 또는 상이한 차원의 패킷 정보에 관련될 수 있고, 또는 더욱 정확하게는 각 서비스 규칙이 매칭되는지를 판단하여야 하는 경우, 서비스 규칙에 포함된 조건이 충족되는지를 판단할 필요가 있다. 그러나, 서비스 규칙 내의 조건의 결정은 적어도 패킷의 하나의 차원에 관한 정보에 의존한다. 예를 들어, 규칙 if(IP = 1.1.1.1 && HTTP.host = www.huawei.com) then do ADC에서, "IP = 1.1.1.1"과 "HTTP.host = www.huawei.com"은 두 개의 병렬 조건이며, 전자는 계층 3 조건이고 후자는 계층 7 조건이고, 두 가지 조건은 "And" 논리 관계에 있다. 따라서, ADC 서비스의 실행은 패킷에 대한 계층 3 및 계층 7의 처리가 완료되는 것에 종속되어야 한다.
IPS 서비스를 예로 사용하여, IPS 서비스에 포함된 서비스 규칙이 if (HTTP. Requtet.URL = www.huawei.com) {do action}이라고 가정하면, 서비스의 스케줄링 정보는 서비스 규칙을 파싱함으로써 획득될 수 있고, 스케줄링 정보는 다음을 포함한다: 스케줄링 위치는 데이터 스트림의 요청 방향에 있고; 식별 모듈은 데이터 스트림의 프로토콜을 식별하기 위해 스케줄링되어야 하고; 프로토콜이 HTTP 프로토콜이면, 파싱에 의해 URL 정보를 획득하기 위해 파싱 모듈도 또한 호출되어야 한다.
더 많은 예시적인 실시예에서, 각 서비스의 스케줄링 정보는 서비스의 우선순위 정보를 더 포함할 수 있고, 서비스의 우선순위 정보는 서비스의 우선순위를 나타내는데 사용된다. 동일한 스케줄링 지점에서 다수의 서비스가 스케줄링되어야 하는 경우, 우선순위가 높은 서비스일수록 먼저 스케줄링되며, 스케줄링 지점은 스케줄러가 서비스의 스케줄링을 수행하는 논리적인 제어 지점이다. 예를 들어, IPS 서비스와 ADC 서비스 둘 다가 계층 7 처리 중에 스케줄링될 수 있고, IPS 서비스가 ADC 서비스 이전에 스케줄링되도록, 우선순위가 설정될 수 있다.
유의해야 할 것은, 전술한 다수의 서비스의 스케줄링 정보는 사용자에 의해 구성되거나 네트워크 디바이스에 의해 생성된 구성 파일에 포함될 수 있다는 것이다. 서비스 스케줄링이 수행되기 전에, 네트워크 디바이스는 스케줄러에 구성 파일을 전달하고, 스케줄러는 각 서비스의 스케줄링 정보를 획득하기 위해 구성 파일을 파싱할 수 있다.
이렇게 하여, 서비스 및 스케줄러의 통합이 구현된다. 구체적으로, 구성 파일은, 예를 들어, 범용 파일 불러오기(import) 방식으로 전달, GUI 인터페이스 불러오기 방식으로 전달, CLI 명령 라인 방식으로 구성, 네트워크 디바이스의 네트워크 관리 시스템에 의한 전달, 등 여러 방식으로 전달될 수 있으며, 여기서는 구체적으로 한정되지 않는다.
단계 502: 스케줄링 정보에 따라 스케줄링 논리(scheduling logic)를 생성하며, 스케줄링 논리는 패킷을 처리하는 다수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 각 서비스의 스케줄링 지점은 스케줄러가 서비스를 스케줄링하는 논리적인 제어 지점이다.
이 단계에서, 스케줄러는 먼저 네트워크 상에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한다, 즉, 스케줄러는 어느 처리 모듈과 서비스가 현재의 네트워크 디바이스에 배치되어 있는지를 알게 되며, 일련의 스케줄링 지점이 처리 모듈 내부에 제공될 수 있다, 즉 일정한(certain) 처리 모듈 내부의 하나의 스케줄링 지점에 일정한 서비스가 스케줄링되도록 지정될 수 있다. 예를 들어, 파싱 모듈이 패킷의 헤드 필드의 파싱을 완료한 때, IPS 서비스가 스케줄링되도록 지정될 수 있다. 또, 일련의 스케줄링 지점은 처리 모듈들 사이에 정의될 수 있다. 이렇게 하여, 일정한 처리 모듈이 패킷 처리를 완료한 후에 일정한 서비스가 스케줄링될 수 있다, 예를 들어 ADC 서비스는 파싱 모듈과 L7 처리 모듈 사이의 스케줄링 지점에 스케줄링되도록 지정될 수 있다. 이 경우에, ADC 서비스는, 파싱 모듈이 캐시의 파싱을 완료한 후이고 그 패킷이 처리를 위해 L7 처리 모듈에 전송되기 전에, 호출된다. 여기서 스케줄링 지점은 스케줄러가 서비스 스케줄링을 수행하는 논리적인 제어 지점이다. 네트워크 디바이스상에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한 후, 스케줄러는 또한 처리 모듈들 사이에 그리고 각 처리 모듈 내부에 존재하는 스케줄링 지점, 서비스들 사이의 의존 관계, 등을 결정하고, 각 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성한다. 스케줄링 논리는 다음의 주요 내용을 포함한다:
(1) 패킷을 처리해야 하는 모든 처리 모듈의 실행 시퀀스(이들 처리 모듈에 의해 패킷을 처리하기 위한 시퀀스); 및
(2) 스케줄링되어야 하는 각 서비스의 스케줄링 지점 정보. 구체적으로, 각 서비스의 스케줄링 지점 정보는 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함할 수 있다. 예를 들어, 실시예에서, 스케줄링되어야 하는 각 서비스의 식별자는, 스케줄러가 서비스를 스케줄링하는 스케줄링 지점의 식별자와 연관될 수 있고, 그 연관관계에 관한 정보는 서비스의 스케줄링 지점 정보의 역할을 하도록 특정한 데이터 구조로 저장된다.
구체적인 실시예에서, 네트워크 디바이스상에 배치된 다수의 서비스의 각 서비스에 대한 스케줄링 정보는 구체적으로 그 서비스의 서비스 규칙 및 그 서비스와 다른 서비스 간의 의존 관계를 포함할 수 있다. 이 상황에서, 스케줄러는 다음의 방식에 따라 스케줄링 논리를 생성할 수 있다:
복수의 서비스에 대응하는 모든 서비스 규칙에 포함된 조건에 따라, 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 서비스가 스케줄링되어야 하는, N개의 처리 모듈의 처리 모듈들 사이에 및/또는 N개 처리 모듈의 각 처리 모듈 내부에, 적어도 하나의 스케줄링 지점을 결정하고, 각 스케줄링 지점과 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하며; 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하이고;
다수의 서비스의 서비스들 사이의 의존 관계에 따라 N개의 처리 모듈의 실행 시퀀스를 결정하고, 생성된 스케줄링 논리는, N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 N개의 처리 모듈의 각 처리 모듈 내부에 있다.
유의해야 할 것은, 전술한 단계들이 실행된 후, N개의 모듈에 대한 결정된 실행 시퀀스 및 전술한 매핑 관계는 생성된 스케줄링 논리로서 사용하기 위해 통합될 수 있다는 것이다. 구체적으로, 본 발명의 이 실시예에서, 스케줄링 논리는, 구성 파일, 명령 라인(command line) 또는 차트와 같은, 여러 방식으로 제공될 수 있으며, 본 명세서에서 구체적으로 한정되지 않는다.
유의해야 할 것은, 본 발명의 이 실시예에서의 스케줄링 지점은, 처리 모듈이 패킷의 처리를 완료한 후의 스케줄링을 위한 스케줄링 지점으로 한정되지 않고, 처리 모듈 내부의 처리의 상이한 단계에서 스케줄링을 위한 스케줄링 지점을 포함한다. 예를 들어, 네트워크 디바이스가 URL 필터링 서비스로 구성된 경우, 스케줄러는, 헤더 필드의 파싱을 완료한 후 URL 필터링 서비스를 스케줄링할 수 있고, URL 필터링 서비스를 스케줄링하기 전에 전체 패킷의 파싱을 완료할 필요는 없다.
단계 503: 스케줄러가, 생성된 스케줄링 논리에 포함되어 있는 다수의 처리 모듈의 실행 시퀀스에 따라, 네트워크 디바이스에 의해 수신된 패킷을 연속적으로 처리하기 위해 다수의 처리 모듈의 각 처리 모듈을 호출하고, 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출한다.
구체적으로, 스케줄러는 단계 502에서 설명한 방식에 따라 스케줄링 논리를 생성한 후, 스케줄러는, N개의 처리 모듈의 결정된 실행 시퀀스에 따라, 대응하는 처리 모듈을 호출하여 네트워크 디바이스에 의해 수신된 패킷을 연속하여 처리하여, N개의 패킷 처리 결과를 획득할 수 있다.
또한, 스케줄러는, 전술한 생성된 매핑 관계에 따라 결정되어 있는 각 스케줄링 지점에서, 스케줄링 지점에 대응하는 모든 서비스를 결정하고; 그런 다음 스케줄러는, 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 스케줄링 조건을 충족시키는 서비스를 스케줄링 지점에서 스케줄링되어야 하는 서비스로서 결정한다. 실시예에서, 스케줄링 지점에 스케줄링되어야 하는 서비스가 하나뿐이면, 스케줄러는 스케줄링 지점에서 스케줄링되어야 하는 서비스를 직접 호출한다. 다른 실시예에서, 스케줄링 지점에 스케줄링되어야 하는 서비스가 여러 개 있으면, 스케줄러는, 스케줄링되어야 하는 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상이한 우선순위의 서비스들을 스케줄링한다.
유의해야 할 것은, 서비스의 스케줄링 조건은 서비스를 스케줄링하는 정책이고 조건을 나타내기 위해 사용되며, 그 조건이 충족될 때만 서비스가 스케줄링될 수 있다는 것이다. 구체적으로, 서비스에 대해 하나 이상의 서비스 조건이 있을 수 있고, 동일한 서비스에 대해 다수의 서비스 조건이 상이한 레벨 또는 상이한 차원의 패킷 정보에 관련될 수 있다. 예를 들어, 스케줄링 조건 if(IP = 1.1.1.1 && HTTP. host = www.huawei.com) then invoke ADC에서, "IP = 1.1.1.1"과 "HTTP. host = www.huawei.com"는 두 개의 병렬 조건이며, 전자는 계층 3 조건이고 후자는 계층 7 조건이고, 이 두 가지 조건은 "And" 논리 관계에 있다. 따라서, 두 개의 서비스 조건이 모두 충족될 때, ADC 서비스가 실행될 수 있다.
구체적으로, 단계 503은 아래와 같이 설명될 수 있다:
(1) 대응하는 처리 모듈은 스케줄링 논리에 포함된 처리 모듈의 실행 시퀀스에 따라 패킷 처리를 수행하도록 연속적으로 스케줄링된다.
(2) 스케줄링 논리에 포함된 각 서비스의 스케줄링 지점 정보에 따라, 각 처리 모듈의 내부 및 처리 모듈들 사이의 각 스케줄링 지점에서 서비스가 스케줄링되어야 하는지를 결정하고; 각 처리 모듈 내부 및 처리 모듈들 사이의 각 스케줄링 지점에서 서비스가 스케줄링되어야 하는 것으로 결정되면, 스케줄링 지점에 대응하는 서비스를 호출하고; 각 처리 모듈 내부 및 처리 모듈들 사이의 각 스케줄링 지점에서 서비스가 스케줄링될 필요가 없는 것으로 결정되면, 서비스가 스케줄링되어야 하는 다음 스케줄링 지점이 결정될 때까지 패킷 처리 프로세스를 계속한다.
(3) 동일한 스케줄링 지점에 다수의 서비스가 스케줄링되어야 하는 경우, 각 서비스의 우선순위에 따라 서비스들이 스케줄링된다.
바람직하게는, 다른 실시예에서, 스케줄러는 또한 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, N개의 처리 모듈 중, P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하고, P는 1보다 큰 양의 정수이고, P는 N보다 작다.
이하에 전술한 S501 내지 S503을 구체적인 예를 사용하여 설명한다. 도 6에 도시된 바와 같이, 스케줄러는 각 서비스에 대해 구성된 스케줄링 정보를 수신하며, 각 서비스의 스케줄링 정보는 아래의 표에 열거되어 있다:
Figure 112014112736548-pct00001
예로서 IPS 서비스를 사용하면, 위의 표로부터 서비스 규칙이 다음과 같다는 것을 알 수 있다: 프로토콜 타입이 TCP인 패킷/데이터 스크림에 대한 TCP 처리가 끝난 후에 WOC 서비스가 실행되고, IPS 서비스의 실행은 WOC 서비스에 의존한다. 도 6에 도시된 바와 같이, HTTP 데이터 스트림이 요청 방향에서 수신된다고 가정하면, 스케줄링 정보에 따라 스케줄링 논리를 생성하는 프로세스는 다음과 같다.
(a) 각 서비스의 스케줄링 정보에 따라, 데이터 스트림에 대한 처리를 수행해야 하는 처리 모듈, 예를 들어, URL 모듈, L1-L3 처리 모듈, 데이터 스트림 관리 모듈, TCP 처리 모듈, 및 DPI 처리 모듈을 결정한다.
(b) 전술한 처리 모듈을 결정한 후에, 스케줄러는 또한 처리 모듈들 사이에 및/또는 각 처리 모듈의 내부에 존재하는 모든 스케줄링 지점: D1(L1-L3 계층 처리 종료), D2(데이터 스트림 관리 종료), D3(TCP 처리 종료), D4(프로토콜 식별 종료), D5(패킷 헤더 필드의 파싱 종료) 및 D6(DPI 처리 종료)을 결정할 수 있다.
(c) 서비스들 사이의 의존 관계에 따라 (결정된 실행 시퀀스가 도 6에 도시된 왼쪽에서 오른쪽 시퀀스라고 가정한) 이들 처리 모듈의 실행 시퀀스를 결정하고, 또한 스케줄링 지점 D1 내지 D6 중에서, 스케줄링 지점 D1 내지 D3에 스케줄링되어야 하는 서비스를 확인하고(D1과 D2에 스케줄링되어야 하는 대응하는 서비스는 없음), 각 스케줄링 지점과 호출되어야 하는 서비스 사이의 매핑 관계를 생성한다. 예를 들어, 스케줄링 지점 D3에 대응하는 서비스가 WOC 및 IPS이고, D4에 대응하는 서비스가 DDOS이고, D5에 대응하는 서비스가 URLF이고, D6에 대응하는 서비스가 ADC이다.
스케줄링 논리가 생성된 후, 데이터 스트림의 처리가 시작된다:
(1) 스케줄링 지점 D1과 D2에 스케줄링되어야 하는 서비스가 없기 때문에, 데이터 스트림이 계속 처리된다. 두 개의 서비스가 스케줄링 지점 D3에서 스케줄링 되어야 한다. 서비스 우선 순위에 따르면, WOC 서비스가 IPS 서비스보다 우선순위가 높기 때문에, WOC 서비스가 데이터 스트림을 처리하기 위해 먼저 스케줄링된다.
(2) IPS 서비스가 데이터 스트림을 처리하기 위해 스케줄링된다.
(3) 스케줄링 포인트 D4에 대응하는 서비스는 DDOS이다. 그러나, 데이터 스트림의 식별 결과는 CIFS 서비스가 아니므로, DDOS 서비스는 스케줄링될 필요가 없고 데이터 스트림이 계속하여 처리된다.
(4) URLF 서비스가 데이터 스트림을 처리하기 위해 스케줄링 지점 D5에 스케줄링 된다.
(5) ADC 서비스는 데이터 스트림을 처리하기 위해 스케줄링 지점 D6에 스케줄링 된다.
(6) 전술한 처리를 거친 데이터 스트림이 전송된다.
본 발명의 이 실시예에 의해 제공되는 서비스의 스케줄링 방법에서는, 종래의 패킷 처리 프로세스가 세분화되고, 다수의 서비스 스케줄링 지점이 정의된다. 또, 서비스 스케줄링 논리는 서비스의 스케줄링 정보에 따라 동적으로 결정되고; 스케줄러는 스케줄링 논리에 따라 다수의 서비스의 유연한 스케줄링을 구현하며, 이로써 반복 스케줄링을 회피하고, 서비스 스케줄링의 유연성 및 성능을 향상시키고, 네트워크 디바이스의 경쟁력을 증대시킨다.
본 발명의 실시예의 전술한 방안의 더 나은 구현하기 위해, 이하에 전술한 방법을 구현하는 데 사용되는 관련 장치를 제공한다.
도 7에 도시된 바와 같이, 본 발명의 실시예는 네트워크 디바이스를 제공한다. 도 7에 따르면, 하나 이상의 서비스 애플리케이션(예를 들어, 도 7에 도시된 서비스 1, 서비스 2, 서비스 n)이 네트워크 디바이스(70)상에 배치되어 있다. 네트워크 디바이스(70)는 송수신기 모듈(710), 스케줄러(730), 및 다수의 네트워크 처리 모듈(본 발명의 이 실시예는 예로서 도 7에 도시된 처리 모듈(720)을 사용한다). 각 데이터 처리 모듈은 패킷에 대해 한 가지 타입의 처리를 수행할 수 있다, 예를 들어, URL 모듈은 패킷의 URL을 분석(resolve)하도록 구성될 수 있고, L1-L3 처리 모듈은 패킷에 대해 계층 1-3 처리를 수행할 수 있고, DPI 처리 모듈은 패킷에 대해 심도있는 식별을 수행할 수 있는 등이다. 본 발명의 이 실시예는 구체적으로는 네트워크 디바이스에 포함된 처리 모듈의 수량과 타입을 한정하지 않는다.
송수신기 모듈(710)은 네트워크 디바이스(70)상에 배치된 다수의 서비스의 스케줄링 정보 및 패킷을 수신하도록 구성되어 있고, 각 서비스의 스케줄링 정보는 서비스를 스케줄링하는 정책을 나타내기 위해 사용되며; 각 서비스의 스케줄링 정보는 서비스의 서비스 규칙, 서비스가 의존하는 처리 모듈에 관한 정보, 서비스가 의존하는 다른 서비스에 관한 정보 등을 포함할 수 있지만, 이에 한정되는 것은 아니다.
스케줄러(730)는, 송수신기 모듈(710)에 의해 수신된 스케줄링 정보에 따라 스케줄링 논리를 생성하고 - 스케줄링 논리는 패킷을 처리하는 다수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 각 서비스의 스케줄링 지점은 스케줄러가 서비스를 스케줄링하는 논리적인 제어 지점임 -; 송수신기 모듈(710)에 의해 수신된 네트워크 패킷을 처리하기 위해 대응하는 처리 모듈을 연소적으로, 생성된 스케줄링 논리에 포함되어 있는 실행 시퀀스에 따라, 호출하고; 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록, 구성되어 있다.
구체적인 실시예에서, 전술한 다수의 서비스의 스케줄링 정보는 사용자에 의해 구성되거나 네트워크 디바이스에 의해 생성된 구성 파일에 포함될 수 있다는 것이다. 서비스 스케줄링이 수행되기 전에, 송수신기 모듈(710)은 네트워크 디바이스(70)에 의해 전달되는 구성 파일을 수신할 수 있고, 그 구성 파일을 파싱하여 각 서비스의 스케줄링 정보를 획득할 수 있다.
다른 구체적인 실시예에서, 스케줄러(730)는 네트워크 디바이스(70)에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한다, 즉, 스케줄러(730)는 어떤 처리 모듈과 서비스가 현재의 네트워크 디바이스(70)에 배치되어 있는지를 알게 되며, 일련의 스케줄링 지점이 처리 모듈 내부에 제공될 수 있다, 즉 일정한 처리 모듈 내부의 하나의 스케줄링 지점에 일정한 서비스가 스케줄링되도록 지정될 수 있다. 예를 들어, 파싱 모듈이 패킷의 헤드 필드의 파싱을 완료한 때, IPS 서비스가 스케줄링되도록 지정될 수 있다. 또, 일련의 스케줄링 지점은 처리 모듈들 사이에 정의될 수 있다. 이렇게 하여, 일정한 처리 모듈이 패킷 처리를 완료한 후에 일정한 서비스가 스케줄링될 수 있다, 예를 들어 ADC 서비스는 파싱 모듈과 L7 처리 모듈 사이의 스케줄링 지점에서 스케줄링되도록 지정될 수 있다. 이 경우에, ADC 서비스는, 파싱 모듈이 캐시의 파싱을 완료한 후이고 그 패킷이 처리를 위해 L7 처리 모듈에 전송되기 전에, 호출된다. 여기서 스케줄링 지점은 스케줄러(730)가 서비스 스케줄링을 수행하는 논리적인 제어 지점이다. 네트워크 디바이스(70)상에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한 후, 스케줄러는 또한 처리 모듈들 사이에 그리고 각 처리 모듈 내부에 존재하는 스케줄링 지점, 서비스들 사이의 의존 관계, 등을 결정하고, 각 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성한다. 스케줄링 논리는 다음의 주요 내용을 포함한다:
(1) 패킷을 처리해야 하는 모든 처리 모듈의 실행 시퀀스(이들 처리 모듈에 의해 패킷을 처리하기 위한 시퀀스); 및
(2) 스케줄링되어야 하는 각 서비스의 스케줄링 지점 정보. 구체적으로, 각 서비스의 스케줄링 지점 정보는 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함할 수 있다. 예를 들어, 실시예에서, 스케줄링되어야 하는 각 서비스의 식별자는, 스케줄러가 서비스를 스케줄링하는 스케줄링 지점의 식별자와 연관될 수 있고, 그 연관관계에 관한 정보는 서비스의 스케줄링 지점 정보로서의 역할을 하도록 특정한 데이터 구조로 저장된다.
구체적인 실시예에서, 네트워크 디바이스상에 배치된 다수의 서비스의 각 서비스의 스케줄링 정보는 구체적으로 서비스의 서비스 규칙 및 그 서비스와 다른 서비스 간의 의존 관계를 포함할 수 있다. 이 상황에서, 스케줄러는 다음의 방식에 따라 스케줄링 논리를 생성할 수 있다:
다수의 서비스에 대응하는 모든 서비스 규칙에 포함된 조건에 따라, 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 서비스가 스케줄링되어야 하는, N개의 처리 모듈의 처리 모듈들 사이에 및/또는 N개 처리 모듈의 각 처리 모듈 내부에, 적어도 하나의 스케줄링 지점을 결정하고, 각 스케줄링 지점과 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하며; 네트워크 디바이스는 M개의 처리 모듈을 포함하고 - M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -;
다수의 서비스의 서비스들 사이의 의존 관계에 따라 N개의 처리 모듈의 실행 시퀀스를 결정하고, 생성된 스케줄링 논리는, N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 N개의 처리 모듈의 각 처리 모듈 내부에 있다.
유의해야 할 것은, 전술한 단계들이 실행된 후, 스케줄러(730)는 N개 모듈의 결정된 실행 시퀀스 및 전술한 매핑 관계는 생성를 스케줄링 논리로서 사용하기 위해 통합할 수 있다는 것이다. 구체적으로, 본 발명의 이 실시예에서, 스케줄링 논리는, 구성 파일, 명령 라인(command line) 또는 차트와 같은, 여러 방식으로 제공될 수 있으며, 본 명세서에서 구체적으로 한정되지 않는다.
유의해야 할 것은, 본 발명의 이 실시예에서의 스케줄링 지점은, 처리 모듈이 패킷의 처리를 완료한 후의 스케줄링을 위한 스케줄링 지점으로 한정되지 않고, 처리 모듈 내부의 처리의 상이한 단계에서 스케줄링을 위한 스케줄링 지점을 포함한다. 예를 들어, 네트워크 디바이스가 URL 필터링 서비스로 구성된 경우, 스케줄러(730)는, 헤더 필드의 파싱을 완료한 후 URL 필터링 서비스를 스케줄링할 수 있고, URL 필터링 서비스를 스케줄링하기 전에 전체 패킷의 파싱을 완료할 필요는 없다.
또한 실시예에서, 송수신기 모듈(710)은 각 서비스의 스케줄링이 완료된 후, 각 처리 모듈 및 각 서비스에 의해 처리를 거친 네트워크 패킷을 전송하도록 더 구성되어 있다.
바람직하게는, 다른 실시예에서, 스케줄링 논리가 생성된 후, 스케줄러(730)는, N개의 처리 모듈의 결정된 실행 시퀀스에 따라, 대응하는 처리 모듈을 호출하여 네트워크 디바이스에 의해 수신된 패킷을 연속하여 처리하여, N개의 패킷 처리 결과를 획득할 수 있다. 구체적으로, 스케줄러(730)는 이하의 방식에 따라 서비스를 스케줄링할 수 있다.
스케줄러는, 전술한 생성된 매핑 관계에 따라 결정되어 있는 각 스케줄링 지점에서, 스케줄링 지점에 대응하는 모든 서비스를 결정하고; 그런 다음 스케줄러는, 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 스케줄링 조건을 충족시키는 서비스를 스케줄링 지점에서 스케줄링되어야 하는 서비스로서 결정한다. 실시예에서, 스케줄링 지점에 스케줄링되어야 하는 서비스가 하나뿐이면, 스케줄러는 스케줄링 지점에서 스케줄링되어야 하는 서비스를 직접 호출한다. 다른 실시예에서, 스케줄링 지점에 스케줄링되어야 하는 서비스가 여러 개 있으면, 스케줄러는, 스케줄링되어야 하는 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상이한 우선순위의 서비스들을 스케줄링한다.
유의해야 할 것은, 서비스의 스케줄링 조건은 서비스를 스케줄링하는 정책이며 조건을 나타내기 위해 사용되고, 그 조건이 충족될 때만 서비스가 스케줄링될 수 있다는 것이다. 예를 들어, 스케줄링 조건 if(IP = 1.1.1.1 && HTTP. Host = www.huawei.com) then invoke ADC에서, "IP = 1.1.1.1"과 "HTTP. host = www.huawei.com"는 두 개의 병렬 조건이며, 전자는 계층 3 조건이고 후자는 계층 7 조건이고, 이 두 가지 조건은 "And" 논리 관계에 있다. 두 개의 서비스 조건이 모두 충족될 때, ADC 서비스가 실행될 수 있다.
바람직하게는, 다른 실시예에서, 스케줄러(730)는 또한 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, N개의 처리 모듈 중, P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정할 수 있고, N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정할 수 있고, P는 1보다 큰 양의 정수이고, P는 N보다 작다. 이렇게 하여, 스케줄링 정책은 처리 모듈에 의한 패킷에 대한 처리 결과에 따라 동적으로 조정될 수 있고, 이에 따라 스케줄링 유연성 및 성능을 더욱 향상시키다.
유의해야 할 것은, 네크워크 디바이스(70) 내의 기능 모듈의 기능은 전술한 방법 실시예에서의 방법에 따라 구체적으로 구현될 수 있다는 것이다. 구체적인 구현 프로세스에 관한 상세한 내용은, 전술한 방법 실시예에 관한 설명을 참조할 수 있으므로, 상세한 것은 여기서는 반복하여 설명하지 않는다. 또, 네트워크 디바이스(70)의 기능 모듈은 소프트웨어에 의해 구현된 기능 모듈일 수도 있고, 또한 비용이 관계없는 경우에는 하드웨어를 사용하여 구현될 수도 있다. 예를 들어, 송수신기 모듈(710)은, 네트워크 어댑터, 무선 주파수 모듈, Wi-Fi 칩 등과 같은, 통신 기능을 갖는 하드웨어 유닛일 수 있고; 스케줄러(730)는 중앙 처리 유닛(Central Processing Unit, 약칭하여 CPU) 또는 주문형 집적 회로(Application Specific Integrated Circuit, 야칭하여 ASIC) 일 수 있고, 본 발명의 이 실시예에서의 스케줄러의 기능을 구현하는 하나 이상의 집적 회로로서 구성될 수 있으며; 처리 모듈은 CPU, 멀티-코어 프로세서에서의 하나의 코어, 처리 기능을 가진 논리 회로, 등일 수 있다. 스케줄러(730)에 의한 스케줄링 지점에서의 서비스를 호출하는 방법은, 콜백 함수(callback function)를 등록하는 방식, 하드웨어/소프트웨어 인터럽트, 및 트리거에 의한 트리거링 방법 등을 포함하지만, 이에 한정되지 않는다.
단일 디바이스 또는 단일 시스템을 가지는 시나리오에서, 본 발명의 이 실시예의 스케줄러(730)는 네트워크 디바이스(70)의 베이스 계층에 배치될 수 있다. 도 8에 도시된 바와 같이, 사용자는 구성 파일을 사용하여 서비스 정보 및 스케줄링 정보를 구성하고, 시스템은 정책 제어를 수행하기 위해 각 서비스에 서비스 정보를 전달하고, 스케줄링 로직을 생성하기 위해 스케줄러(730)에 스케쥴링 정보를 전달한다. 사용자는 네트워크 디바이스(70)상에 서비스 정보 및 스케줄링 정보를 포함하는 구성파일을 구성할 수 있고, 시스템의 다른 디바이스상에 구성 파일을 구성할 수도 있다. 여기서 베이스 계층은 운영체제(operating system)일 수도 있고, 제3자 라이브러리 계층일 수도 있으며, 하이웨어의 차이점을 가려내는 SDK(Software Development Kit, 소프트웨어 개발 키트)와 유사한 논리 계층일 수도 있다.
도 8에 도시된 바와 같이, 스케줄링 요구사항이 더 높은 시나리오에서, 스케줄러(730)는 하드웨어 계층에서 구현될 수 있고, 스케줄러(730)는 또한 하드웨어 계층에 배치되어 있는 처리 모듈(예를 들어, 도 8에 도시된 처리 모듈 1, 처리 모듈 2, 및 처리 모듈 3)을 스케줄링할 수 있고, 또한 소프트웨어로 구현된 처리 모듈(예를 들어, 도 8에 도시된 처리 모듈 3 및 처리 모듈 4)을 스케줄링할 수 있다. 유사하게, 사용자는 서비스 정보 및 스케줄링 정보를 포함하는 구성 파일을 네트워크 디바이스(70)상에 구성할 수 있고, 또한 시스템의 다른 디바이스상에 구성 파일을 구성할 수 있다. 스케줄러(730)는 각 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성한 후에, 스케줄러(730)는 통합된 방식(unified manner )으로 스케줄링 논리를 컴파일하여야 하고 그 후 컴파일된 스케줄링 논리를 실행을 위해 하드웨어에 기록하며, 이에 따라 스케줄링 실행 효율을 향상시킨다.
도 9에 도시된 바와 같이, 멀티 코어 시나리오에서, 네트워크 디바이스에 배치된 각 서비스 및 각 처리 모듈은 각각의 독립적인 프로세서 코어상에서 실행되고, 각 데이터 스트림의 패킷은 처리를 위해 단 하나의 코어에 입력된다. 이때, 스케줄러는 분산 방식으로 다수의 코어상에 배치되어 있다, 즉, 스케줄링 모듈은 스케줄러와 동일한 기능을 실행하기 위해 각 코어상에 독립적으로 배치되어 있다. 이러한 방식으로, 각 코어는 독립적인 서비스 처리 시스템으로서 간주될 수 있다. 이때, 스케줄링 정보는 각 프로세서 코어상의 스케줄링 모듈에 전달되어야 한다. 전술한 시나리오와 유사하게, 각 코어상에 배치 스케줄링 모듈은 베이스 계층 이상의 소프트웨어 계층에서 구현될 수 있고, 또한 하드웨어 방식으로도 구현될 수 있으며, 자세한 것은 여기서 반복 설명하지 않는다.
도 10에 도시된 바와 같이 다른 멀티코어 시나리오에서, 네트워크 디바이스의 각 코어(10) 상에 배치된 서비스와 처리 모듈은 상이하다; 각 코어는 서비스의 일부만 처리하고, 각 데이터 스트림의 패킷은 처리를 위해 하나 이상의 코어에 입력된다. 또, 스케줄러는 분산 방식으로 다수의 코어상에 배치된다, 즉, 스케줄링 모듈은 스케줄러와 동일한 기능을 독립적으로 실행하기 위해 각 코어상에 배치된다. 이 경우, 각 코어상에 배치 스케줄링 모듈은 동일 스트림상의 스케줄링 정보가 시스템에서 통합되는 것을 보장하기 위해 관련된 정보를 전송하여야 한다. 구체적으로, 스케줄링 정보는 각 코어상의 스케줄러에 전달되어야 하고, 각 코어상에 배치된 스케줄러는, 스케줄링 정보 및 각 코어상에서 실행되는 서비스에 관한 정보에 따라, 자신의 스케줄링 논리를 생성하고, 생성된 스케줄링 논리에 따라, 대응하는 처리 모듈을 호출하여 수신 모둘에 의해 수신된 패킷을 처리한다. 또, 코어가 패킷 처리 및 서비스 스케줄링을 완료한 후, 코어는 스케줄링 정보와 처리 모듈에 의해 수행된 패킷에 대한 처리 결과를 그 패킷을 처리하는 다음 코어와 동기화하여야 한다. 즉, 다수의 코어가 협력하여 처리하는 이 시나리오에서, 상이한 코어상의 스케줄러는 또한 스케줄링 정보를 교환하여야 한다.
유의해야 할 것은, 본 발명의 이 실시예에서 네트워크 디바이스에 관한 구체적인 구현에 대한 세부사항의 경우, 전술한 방법 및 장치의 실시예를 참조할 수 있으므로, 자세한 것은 여기서 반복하여 설명하지 않는다는 것이다.
본 발명의 이 실시예에서 제공되는 네트워크 디바이스에서, 스케줄러는 다수의 서비스의 유연한 스케줄링을 구현하기 위해 사용되고; 종래의 패킷 처리 프로세스는 세분화되고, 다수의 서비스 스케줄링 지점이 정의된다. 또, 서비스 스케줄링 논리는 서비스의 스케줄링 정보에 따라 동적으로 결정되고, 스케줄링 논리에 따라 다수의 서비스의 유연한 스케줄링이 구현되며, 이로써 반복된 스케줄링을 회피하고, 서비스 스케줄링의 유연성 및 성능을 향상시키고, 네트워크 디바이스의 경쟁력을 증대시킨다.
이하에 전술한 방법을 구현하기 위해 사용되는 다른 장치를 설명한다. 도 11에 도시된 바와 같이, 본 발명의 실시예는 획득 모듈(110), 스케줄링 논리 생성 모듈(120), 및 스케줄링 모듈(130)을 포함하는 서비스 스케줄링 장치(11)를 제공한다.
획득 모듈(110)은 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보를 획득하도록 구성되어 있다.
각 서비스의 스케줄링 정보는 서비스를 스케줄링하는 정책을 나타내는 데 사용된다. 각 서비스의 스케줄링 정보는 서비스의 정책 정보, 서비스가 의존하는 처리 모듈에 관한 정보, 서비스가 의존하는 다른 서비스에 관한 정보, 등을 포함할 수 있지만, 이에 한정되지는 않는다. 유의해야 할 것은, 본 발명의 실시예에서의 스케줄링 지점은 서비스와 처리 모듈의 조합에 의해 결정되고, 처리 모듈은 패킷에 대한 구체적인 처리, 예를 들어, IP 단편화 처리, 데이터 스트림 관리, L1-L3 처리, L7 처리, 등을 수행하도록 구성되어 있다는 것이다.
실시예에서, 전술한 각 서비스의 스케줄링 정보는 서비스를 스케줄링하기 위한 명시적으로 지정된 규칙 또는 타이밍일 수 있으며, 예를 들어 스케줄링 정보는 스케줄러에, 특정한) 처리 모듈이 패킷 처리를 완료한 후에 일정한 서비스를 스케줄링하도록 또는 특정한 처리 모듈이 패킷에 대한 특정한 처리를 완료한 단계 후에 일정한 서비스를 스케줄링하도록 명령하는데 사용될 수 있다. 예를 들어, IPS 서비스는 패킷에 대한 계층 4 처리가 완료된 후 스케줄링되고, ADC 서비스는 패킷의 헤더 필드의 파싱이 완료된 후 스케줄링되도록 지정될 수 있다. 또한, 스케줄링 정보는, 서비스를 위해 지정된 특정한 데이터 스트림의 스케줄링 정보를 더 포함할 수 있다. 예를 들어, ADC 서비스가 구성될 때, 스케줄러는 8080 포트의 데이터 스트림만을 처리하도록 또는 특정한 IP 또는 특정한 프로토콜, 등의 데이터 스트림을 처리하도록 지정될 수 있다.
다른 실시예에서, 각 서비스의 스케줄링 정보는 또한, 파싱 및 추출과 같은 방식으로 서비스의 서비스 규칙으로부터의 추출에 의해 암묵적으로 지정되는 스케줄링 정보일 수도 있다. 즉, 서비스에 대응하는 서비스 규칙에 포함된 조건에 따라, 패킷에 대해 특정한 처리를 수행하고 포함된 조건의 결정을 의존하는 처리 모듈뿐 아니라, 그 서비스가 의존하는 모듈에 관한 정보를 결정하는 것이다. 유의해야 할 것은, 서비스 규칙은 서비스가 실행될 때 따라야 하는 규칙이라는 것이다. 하나의 서비스 규칙은 두 부분: 조건 및 동작을 포함한다. 구체적으로, 하나의 서비스 규칙은 하나 이상의 조건을 포함할 수 있고, 동일한 서비스 규칙 내의 다수의 조건은 상이한 레벨 또는 상이한 차원의 패킷 정보에 관련될 수 있고, 또는 더욱 정확하게는 각 서비스 규칙이 매칭되는지를 판단하여야 하는 경우, 서비스 규칙에 포함된 조건이 충족되는지를 판단할 필요가 있다. 그러나, 서비스 규칙 내의 조건의 결정은 적어도 패킷의 하나의 차원(dimension)에 관한 정보에 의존한다. 예를 들어, 규칙 if(IP = 1.1.1.1 && HTTP.host = www.huawei.com는) then do ADC에서, "IP = 1.1.1.1"과 "HTTP.host = www.huawei.com"은 두 개의 병렬 조건이며, 전자는 계층 3 조건이고 후자는 계층 7 조건이고, 두 가지 조건은 "And" 논리 관계에 있다. 따라서, ADC 서비스의 실행은 패킷에 대한 계층 3 및 계층 7의 처리가 완료되는 것에 의존하여야 한다.
IPS 서비스를 예로 사용하여, IPS 서비스에 포함된 서비스 규칙이 if (HTTP. Requtet.URL == www.huawei.com) {do action}이라고 가정하면, 서비스의 스케줄링 정보는 서비스 규칙을 파싱함으로써 획득될 수 있고, 스케줄링 정보는 다음을 포함한다: 스케줄링 위치는 데이터 스트림의 요청 방향에 있고; 식별 모듈은 데이터 스트림의 프로토콜을 식별하기 위해 스케줄링되어야 하고; 프로토콜이 HTTP 프로토콜이면, 파싱에 의해 URL 정보를 획득하기 위해 파싱 모듈도 또한 호출되어야 한다.
더 많은 예시적인 실시예에서, 각 서비스의 스케줄링 정보는 서비스의 우선순위 정보를 더 포함할 수 있다. 예를 들어, IPS 서비스와 ADC 서비스 둘 다가 계층 7 처리 중에 스케줄링될 수 있고, IPS 서비스가 ADC 서비스 이전에 스케줄링되도록, 우선순위가 설정될 수 있다.
유의해야 할 것은, 전술한 다수의 서비스의 스케줄링 정보는 사용자에 의해 구성되거나 네트워크 디바이스에 의해 생성된 구성 파일에 포함될 수 있다는 것이다. 서비스 스케줄링이 수행되기 전에, 획득 모듈(110)은 각 서비스의 스케줄링 정보를 획득하기 위해 구성 파일을 파싱할 수 있다. 이렇게 하여, 서비스 및 스케줄러의 통합이 구현된다.
스케줄링 논리 생성 모듈(120)은 획득 모듈(110)에 의해 획득된 스케줄링 정보에 따라 스케줄링 논리를 생성하도록 구성되어 있고, 스케줄링 논리는 패킷을 처리하는 다수의 처리 모듈의 실행 시퀀스와, 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 각 서비스의 스케줄링 지점은 스케줄러가 서비스를 스케줄링하는 논리적인 제어 지점이다.
구체적으로, 스케줄링 논리 생성 모듈(120)은 먼저 네트워크 디바이스상에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한다, 즉, 스케줄링 논리 생성 모듈(120)은 어느 처리 모듈과 서비스가 네트워크 디바이스상에 배치되어 있는지를 알게 되며, 일련의 스케줄링 지점이 처리 모듈 내부에 제공될 수 있다, 즉 일정한 처리 모듈 내부의 하나의 스케줄링 지점에 일정한 서비스가 스케줄링되도록 지정될 수 있다. 예를 들어, 파싱 모듈이 패킷의 헤드 필드의 파싱을 완료한 때, IPS 서비스가 스케줄링되도록 지정될 수 있다. 또, 일련의 스케줄링 지점은 처리 모듈들 사이에 정의될 수 있다. 이렇게 하여, 일정한 처리 모듈이 패킷 처리를 완료한 후에 일정한 서비스가 스케줄링될 수 있다, 예를 들어 ADC 서비스는 파싱 모듈과 L7 처리 모듈 사이의 스케줄링 지점에 스케줄링되도록 지정될 수 있다. 이 경우에, ADC 서비스는, 파싱 모듈이 캐시의 파싱을 완료한 후이고 그 패킷이 처리를 위해 L7 처리 모듈에 전송되기 전에, 호출된다. 여기서 스케줄링 지점은 서비스 스케줄링 장치가 서비스 스케줄링을 수행하는 논리적인 제어 지점이다. 네트워크 디바이스상에 배치된 처리 모듈 및 서비스에 관한 정보를 획득한 후, 스케줄링 논리 생성 모듈(120)은 또한 처리 모듈들 사이에 그리고 각 처리 모듈 내부에 존재하는 스케줄링 지점, 서비스들 사이의 의존 관계, 등을 결정하고, 각 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성한다. 스케줄링 논리는 다음의 주요 내용을 포함한다:
(1) 패킷을 처리해야 하는 모든 처리 모듈의 실행 시퀀스(이들 처리 모듈에 의해 패킷을 처리하기 위한 시퀀스); 및
(2) 스케줄링되어야 하는 각 서비스의 스케줄링 지점 정보. 구체적으로, 각 서비스의 스케줄링 지점 정보는 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함할 수 있다. 예를 들어, 실시예에서, 스케줄링되어야 하는 각 서비스의 식별자는, 스케줄러가 서비스를 스케줄링하는 스케줄링 지점의 식별자와 연관될 수 있고, 그 연관관계에 관한 정보는 서비스의 스케줄링 지점 정보의 역할을 하도록 특정한 데이터 구조로 저장된다.
구체적인 실시예에서, 네트워크 디바이스상에 배치된 다수의 서비스의 각 서비스에 대한 스케줄링 정보는 구체적으로 서비스의 서비스 규칙 및 서비스와 다른 서비스 사이의 의존 관계를 포함할 이 상황에서, 스케줄링 논리 생성 모듈(120)은 구체적으로,
다수의 서비스의 서비스 규칙에 포함된 조건에 따라, 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고, 각 스케줄링 지점과 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하도록 구성되어 있는 매핑 유닛 - 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -; 및
복수의 서비스의 서비스들 사이의 의존 관계에 따라 N개의 처리 모듈의 실행 시퀀스를 결정하도록 구성되어 있는 정렬 유닛(sorting unit) - 생성된 스케줄링 논리는, N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 스케줄링 지점과 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 스케줄링 지점은 N개 처리 모듈의 처리 모듈들 사이 및/또는 N개의 처리 모듈의 각 처리 모듈 내부에 있음 -을 포함한다.
유의해야 할 것은, 스케줄링 논리 생성 모듈(120)은 N개 모듈의 결정된 실행 시퀀스 및 전술한 매핑 관계를 생성된 스케줄링 논리로서 사용하기 위해 통합할 수 있다는 것이다. 구체적으로, 본 발명의 이 실시예에서, 스케줄링 논리는, 구성 파일, 명령 라인 또는 차트와 같은, 여러 방식으로 제공될 수 있으며, 여기에서 구체적으로 한정되지 않는다.
유의해야 할 것은, 본 발명의 이 실시예에서의 스케줄링 지점은, 처리 모듈이 패킷의 처리를 완료한 후의 스케줄링을 위한 스케줄링 지점으로 한정되지 않고, 처리 모듈 내부의 처리의 상이한 단계에서 스케줄링을 위한 스케줄링 지점을 포함한다. 예를 들어, 네트워크 디바이스가 URL 필터링 서비스로 구성된 경우, 스케줄링 논리 생성 모듈(120)은 헤더 필드의 파싱을 완료한 후 URL 필터링 서비스를 스케줄링할 수 있고, URL 필터링 서비스를 스케줄링하기 전에 전체 패킷의 파싱을 완료할 필요는 없다.
스케줄링 모듈(130)은, 스케줄링 논리 생성 모듈(120)에 의해 생성된 스케줄링 논리에 포함되어 있는 다수의 처리 모듈의 실행 시퀀스에 따라, 네트워크 디바이스에 의해 수신된 패킷을 연속적으로 처리하기 위해 대응하는 처리 모듈을 호출하고, 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록 구성되어 있다.
구체적으로, 스케줄링 모듈(130)은, 스케줄링 논리 생성 모듈(120)에 의해 결정된 각 스케줄링 지점에서 스케줄링 논리 생성 모듈(120)에 의해 생된된 매핑 관계에 따라, 스케줄링 지점에 대응하는 모든 서비스를 결정하고; 그 후 스케줄링 모듈(130)은 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정한다. 실시예에서,
스케줄링 지점에서 스케줄링되어야 하는 서비스가 하나만 존재하면, 스케줄링 모듈(130)은 스케줄링 지점에서 스케줄링되어야 하는 서비스를 직접 호출한다. 다른 실시예에서, 스케줄링 지점에서 스케줄링되어야 하는 서비스가 다수 존재하면, 스케줄링 모듈(130)은, 스케줄링되어야 하는 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상이한 우선순위의 서비스들을 호출한다.
유의해야 할 것은, 서비스의 스케줄링 조건은 서비스를 스케줄링하는 정책이며 조건을 나타내기 위해 사용되고, 그 조건이 충족될 때만 서비스가 스케줄링될 수 있다는 것이다.
바람직하게는, 실시예에서, 서비스 스케줄링 장치(11) 또한 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 네트워크 디바이스에 의해 수신된 패킷에 대한, 처리 결과에 따라, N개의 처리 모듈 중, P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, N-P개의 처리 모듈의 처리 모듈들 사이 및/또는 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하도록 구성되어 있는 조정 모듈(140)을 더 포함하고, P는 1보다 큰 양의 정수이고, P는 N보다 작다. 이렇게 하여, 스케줄링 정책이 처리 모듈에 의한 패킷에 대한 처리 결과에 따라 동적으로 조정될 수 있어, 스케줄링 유연성과 성능을 더욱 향상시킨다.
이 실시예에서 서비스 스케줄링 장치(11)의 기능 모듈의 기능은 전술한 방법 실시예에서의 방법에 따라 구체적으로 구현될 수 있다는 것을 알 수 있을 것이다. 구체적인 구현 프로세스에 관한 상세한 내용은, 전술한 방법 실시예에 관한 설명을 참조할 수 있으므로, 상세한 것은 여기서는 반복하여 설명하지 않는다. 또, 서비스 스케줄링 장치(11)의 기능 모듈은 소프트웨어에 의해 구현된 기능 모듈일 수도 있고, 또한 비용이 관계없는 경우에는 하드웨어를 사용하여 구현될 수도 있다. 예를 들어, 획득 모듈(110)은, 네트워크 어댑터, 무선 주파수 모듈, Wi-Fi 칩 등과 같은, 통신 기능을 갖는 하드웨어 유닛일 수 있고; 스케줄링 논리 생성 모듈(120)과 스케줄링 모듈(130)은 중앙 처리 유닛(Central Processing Unit, 약칭하여 CPU) 또는 주문형 집적 회로(Application Specific Integrated Circuit, 약칭하여 ASIC) 일 수 있고, 본 발명의 실시예에 의해 제공된 논리 생성 모듈과 스케줄링 모듈의 기능을 구현하는 하나 이상의 집적 회로로서 구성될 수 있다.
본 발명의 이 실시예에 의해 제공되는 서비스의 스케줄링 장치에서는, 종래의 패킷 처리 프로세스가 세분화되고, 다수의 서비스 스케줄링 지점이 정의된다. 또, 서비스 스케줄링 논리는 서비스의 스케줄링 정보에 따라 동적으로 결정되고; 스케줄러는 스케줄링 논리에 따라 다수의 서비스의 유연한 스케줄링을 구현하며, 이로써 반복 스케줄링을 회피하고, 서비스 스케줄링의 유연성 및 성능을 향상시키고, 네트워크 디바이스의 경쟁력을 증대시킨다.
도 12는 본 발명의 실시에에 따른 네트워크 디바이스의 개략도이다. 도 12에 도시된 바와 같이, 네트워크 디바이스(12)는 적어도 하나의 프로세서(120), 스토리지(1202), 통신 인터페이스(1203), 및 버스(1204)를 포함한다. 프로세서(120), 스토리지(1202), 및 통신 인터페이스(1203)는 연결되어 있고 버스(1204)를 사용하여 상호 통신을 구현한다. 버스(1204)는 산업 표준 아키텍처(Industry Standard Architecture, 약칭하여 ISA) 버스, 주변 구성요소 상호연결(Peripheral Component Interconnect, 약칭하여 PCI) 버스, 확장형 산업 표준 아키텍처(Extended Industry Standard Architecture, 약칭하여 EISA) 버스, 등일 수 있다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 나뉠 수 있다. 설명을 용이하게 하기 위해, 도 12에서의 버스는 하나의 굵은 선을 사용하여 나타내지만, 이것이 단 하나의 버스 또는 한 종류의 버스만이 있다는 것을 의미하지 않는다.
스토리지(1202)는 실행 가능한 프로그램 코드를 저장하도록 구성되어 있고, 프로그램 코드는 컴퓨터 연산 명령어를 포함한다. 스토리지(1202)는 고속 RAM 메모리를 포함할 수 있고, 또한, 예를 들어, 적어도 하나의 자기 디스크 스토리지와 같은 비휘발성 메모리(non-volatile memory)를 포함할 수 있다. 스토리지(1202)는 선택적으로 전술한 프로세서(1201)로부터 떨어져 있는 스토리지 장치를 포함할 수 있다.
실시예에서, 프로세서(1201)는 스토리지(1202)에 저장된 시행 가능한 프로그램을 판독 및 실행하여,
통신 인터페이스(1203)를 사용하여 다수의 서비스의 스케줄링 정보를 수신하고 - 통신 인터페이스(1203)는 데이터 수신 및 송신 기능을 구현할 수 있는, 예를 들어, 네트워크 포트, USB 인터페이스, 무선 주파수 유닛, 안테나, Wi-Fi 통신 모듈, 등과 같은 구성요소 또는 유닛일 수 있음 -;
다수의 서비스의 각 서비스에 대한 스케줄링 정보에 따라 스케줄링 논리를 생성하고 - 스케줄링 논리는 패킷을 처리하는 다수의 처리 모듈의 실행 시퀀스와 각 서비스와 각 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 각 서비스의 스케줄링 지점은 스케줄러가 서비스를 스케줄링하는 논리적인 제어 지점임 -;
생성된 스케줄링 논리에 포함되어 있는 다수의 처리 모듈의 실행 시퀀스에 따라, 네트워크 디바이스에 의해 수신된 패킷을 연속적으로 처리하기 위해 다수의 처리 모듈의 각 처리 모듈을 호출하고, 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출한다.
전술한 프로세스에 관한 구체적인 사항에 대해서는, 전술한 방법 및 장치의 실시예를 참조할 수 있으므로, 자세한 것은 여기서 반복 설명하지 않는다.
프로세서(1201)는 중앙 처리 유닛(Central Processing Unit, 약칭하여 CPU) 또는 주문형 집적 회로(Application Specific Integrated Circuit, 야칭하여 ASIC)일 수 있고, 또는 본 발명의 실시예를 구현하는 하나 이상의 집적 회로로 구성될 수 있다.
유의해야 할 것은, 전술한 기능 외에, 프로세서(1201)는 전술한 방법 실시예에서의 다른 프로세스들을 실행하도록 더 구성될 수 있으며, 자세한 것은 여기서 반복 설명하지 않는다.
본 출원에 제공된 여러 실시예에서, 개시된 서비스 스케줄링 장치 및 방법, 그리고 네트워크 디바이스가 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 이상에서 설명한 장치 실시예는 예시일 뿐이다.
개별 부분으로 설명한 유닛은 물리적으로 분리되어 있을 수도, 않을 수도 있고, 유닛으로 표시된 부분은, 물리적인 유닛일 수도, 아닐 수도 있으며, 한 곳에 위치할 수도, 복수의 네트워크 유닛상에 분산되어 있을 수도 있다. 유닛의 일부 또는 전부는 실시예의 방안의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
또, 본 발명의 실시예에 의해 제공된 네트워크 디바이스의 기능 유닛은 하나의 처리 유닛에 통합될 수도 있고, 또는 각각의 유닛이 단독으로 물리적으로 존재할 수 있고, 또는 2개 이상의 유닛이 하나의 유닛으로 통합되어 있다. 집적된 유닛은 하드웨어의 형태로 구현될 수 있고, 또는 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
집적 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립된 제품으로서 판매 또는 사용될 때, 집적 유닛은 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본질적으로 본 발명의 기술적 방안, 또는 종래 기술에 기여하는 부분, 기술적 방안의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고, 본 발명의 실시예에서 설명한 방법의 단계들 전부 또는 일부를 수행하도록 (개인용 컴퓨터, 서버, 또는 네트워크 장치일 수 있는) 컴퓨터 디바이스에 명령하기 위한 여러 명령어를 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 탈착 가능한 하드 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 임의 접근 메모리 (Random Access Memory, RAM), 자기 디스크, 또는 광디스크와 같은, 프로그램 코드를 저장할 수 있는 임의 매체를 포함한다.
마지막으로, 전술한 실시예는 단지 본 발명의 기술적 방안을 설명하기 위한 것이고 본 발명을 한정하려는 것이 아님에 유의해야 한다. 전술한 실시예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면, 본 발명의 실시예의 기술적 방안의 범위를 벗어나지 않으면서, 전술한 실시예에서 설명한 기술적 방안에 대해 수정을 가하거나, 그 기술적 특징의 일부를 동등물로 대체할 수 있을 것이다.

Claims (17)

  1. 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법으로서,
    상기 네트워크 디바이스는 상기 복수의 서비스에 의해 요구되는 복수의 처리 모듈을 포함하고, 상기 처리 모듈 각각은 상기 네트워크 디바이스에 의해 수신된 패킷에 대해 특정 유형의 처리를 수행하도록 구성되어 있고,
    상기 방법은,
    스케줄러가, 상기 복수의 서비스의 스케줄링 정보를 획득하는 단계 - 상기 스케줄링 정보는 상기 복수의 서비스를 스케줄링하는 정책을 나타내기 위해 사용됨 - ;
    상기 스케줄러가, 상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리(scheduling logic)를 생성하는 단계 - 상기 스케줄링 논리는 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈로부터 선택된 복수의 처리 모듈의 실행 시퀀스, 및 상기 복수의 서비스와 상기 복수의 서비스의 스케줄링 지점(scheduling point) 사이의 매핑 관계를 포함하고, 개별 서비스 각각의 스케줄링 지점은 상기 스케줄러가 상기 개별 서비스를 스케줄링하는 논리적인 제어 지점(logical control point)임 -; 및
    상기 스케줄러가, 상기 스케줄링 논리에 의해 지정된 상기 실행 시퀀스에 따라, 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 상기 선택된 처리 모듈을 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하는 단계
    를 포함하는 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법.
  2. 제1항에 있어서,
    상기 스케줄러가, 상기 복수의 서비스의 스케줄링 정보를 획득하는 단계는,
    상기 스케줄러가, 상기 네트워크 디바이스에 의해 전달된 구성 파일(configuration file)을 수신하고, 상기 구성 파일을 파싱하여 상기 복수의 서비스의 스케줄링 정보를 획득하는 단계를 포함하는, 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법.
  3. 제1항에 있어서,
    상기 개별 서비스 각각의 스케줄링 정보는, 상기 개별 서비스의 서비스 규칙 및 상기 개별 서비스와 다른 서비스 사이의 의존 관계(dependence relationship)를 포함하고;
    상기 스케줄러가, 상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성하는 단계는,
    상기 스케줄러가, 상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 상기 N개의 처리 모듈 중 두 개의 처리 모듈마다의 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고, 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하는 단계 - 상기 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -; 및
    상기 서비스들 사이의 의존 관계에 따라, 상기 N개의 처리 모듈의 실행 시퀀스를 결정하는 단계 - 상기 스케줄링 논리는, 상기 N개의 처리 모듈의 실행 시퀀스, 및 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 개별 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있음 -
    를 포함하는, 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법.
  4. 제3항에 있어서,
    상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하는 것은,
    각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고;
    상기 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고;
    스케줄링되어야 하는 서비스가 복수 존재하면, 스케줄링되어야 하는 상기 서비스들의 우선순위의 내림차순에 따라, 상기 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고;
    스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 스케줄링되어야 하는 상기 서비스를 직접 호출하는 것을 포함하는, 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법.
  5. 제3항에 있어서,
    상기 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 상기 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, 상기 N개의 처리 모듈 중, 상기 P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, 상기 N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하는 단계를 더 포함하고, P는 1보다 큰 양의 정수이고, P는 N보다 작은, 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 방법.
  6. 네트워크 디바이스 상에 배치된 복수의 서비스를 스케줄링하는 서비스 스케줄링 장치로서,
    상기 네트워크 디바이스는 상기 복수의 서비스에 의해 요구되는 복수의 처리 모듈을 포함하고, 상기 처리 모듈 각각은 상기 네트워크 디바이스에 의해 수신된 패킷에 대해 특정 유형의 처리를 수행하도록 구성되어 있고,
    상기 서비스 스케줄링 장치는,
    상기 복수의 서비스의 스케줄링 정보를 획득하도록 구성된 획득 모듈 - 상기 스케줄링 정보는 상기 복수의 서비스를 스케줄링하는 정책을 나타내기 위해 사용됨 - ;
    상기 획득 모듈에 의해 획득된 스케줄링 정보에 따라 스케줄링 논리를 생성하는 스케줄링 논리 생성 모듈 - 상기 스케줄링 논리는, 패킷을 처리하기 위해 상기 복수의 처리 모듈로부터 선택된 복수의 처리 모듈의 실행 시퀀스, 및 상기 복수의 서비스와 상기 복수의 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 개별 서비스 각각의 스케줄링 지점은 서비스 스케줄링 장치가 상기 개별 서비스를 스케줄링하는 논리적인 제어 지점임 -; 및
    상기 스케줄링 논리에 의해 지정된 상기 실행 시퀀스에 따라, 상기 네트워크 디바이스에 의해 수신된 패킷을 처리하기 위해 처리 모듈 세트를 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록 구성되어 있는 스케줄링 모듈
    을 포함하는 서비스 스케줄링 장치.
  7. 제6항에 있어서,
    상기 획득 모듈은, 상기 네트워크 디바이스에 의해 전달된 구성 파일을 수신하고, 상기 구성 파일을 파싱하여 상기 복수의 서비스의 스케줄링 정보를 획득하도록 구성되어 있는, 서비스 스케줄링 장치.
  8. 제6항에 있어서,
    상기 개별 서비스 각각의 스케줄링 정보는 상기 개별 서비스의 서비스 규칙, 및 상기 개별 서비스와 다른 서비스 사이의 의존 관계를 포함하고;
    상기 스케줄링 논리 생성 모듈은,
    상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 상기 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고, 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하도록 구성되어 있는 매핑 유닛 - 상기 네트워크 디바이스는 M개의 처리 모듈을 포함하고, M과 N은 1 이상의 양의 정수이고, N은 M 이하임 -; 및
    상기 서비스들 사이의 의존 관계에 따라 상기 N개의 처리 모듈의 각 처리 모듈에 대한 실행 시퀀스를 결정하도록 구성되어 있는 정렬 유닛(sorting unit) - 상기 스케줄링 논리는, 상기 N개의 처리 모듈의 실행 시퀀스, 및 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 개별 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있음 -
    을 포함하는, 서비스 스케줄링 장치.
  9. 제8항에 있어서,
    상기 스케줄링 모듈은,
    상기 매핑 유닛에 의해 결정된 각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고;
    상기 패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고;
    스케줄링되어야 하는 서비스가 복수 존재하면, 스케줄링되어야 하는 상기 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 상기 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고;
    스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 스케줄링되어야 하는 상기 서비스를 직접 호출하도록, 구성되어 있는, 서비스 스케줄링 장치.
  10. 제8항에 있어서,
    상기 N개의 처리 모듈 중 P개의 처리 모듈에 의해, 상기 네트워크 디바이스에 의해 수신된 패킷에 대해, 처리 결과에 따라, 상기 N개의 처리 모듈 중, 상기 P개의 처리 모듈에 더해, N-P개의 처리 모듈의 실행 시퀀스를 조정하고, 상기 N-P개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N-P개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 스케줄링 지점을 다시 결정하도록 구성되어 있는 조정 모듈을 더 포함하고, P는 1보다 큰 양의 정수이고, P는 N보다 작은, 서비스 스케줄링 장치.
  11. 송수신기 모듈, 스케줄러, 및 복수의 처리 모듈을 포함하는 네트워크 디바이스로서,
    상기 처리 모듈 각각은 패킷에 대해 특정 유형의 처리를 수행하도록 구성되어 있고,
    상기 송수신기 모듈은, 상기 네트워크 디바이스상에 배치된 복수의 서비스의 스케줄링 정보 및 패킷을 수신하도록 구성되어 있고,
    여기서, 상기 스케줄링 정보는 상기 복수의 서비스를 스케줄링하는 정책을 나타내기 위해 사용되고,
    상기 스케줄러는,
    상기 복수의 서비스의 스케줄링 정보에 따라 스케줄링 논리를 생성하도록 구성되어 있고 - 상기 스케줄링 논리는 상기 송수신기 모듈에 의해 수신된 패킷을 처리하기 위해 상기 복수의 처리 모듈로부터 선택된 복수의 처리 모듈의 실행 시퀀스, 및 상기 복수의 서비스와 상기 복수의 서비스의 스케줄링 지점 사이의 매핑 관계를 포함하고, 개별 서비스 각각의 스케줄링 지점은 상기 스케줄러가 상기 개별 서비스를 스케줄링하는 논리적인 제어 지점임 -;
    상기 스케줄링 논리에 의해 지정된 상기 실행 시퀀스에 따라, 상기 송수신기 모듈에 의해 수신된 패킷을 처리하기 위해 처리 모듈 세트를 호출하고, 상기 스케줄링 논리에 포함된 매핑 관계에 따라 각 스케줄링 지점에서 대응하는 서비스를 호출하도록 더 구성되어 있는,
    네트워크 디바이스.
  12. 제11항에 있어서,
    상기 송수신기 모듈은 상기 네트워크 디바이스에 의해 전달된 구성 파일을 수신하고, 상기 구성 파일을 파싱하여 각 서비스의 스케줄링 정보를 획득하도록 구성되어 있는, 네트워크 디바이스.
  13. 제11항에 있어서,
    각 서비스의 스케줄링 정보는 각 서비스의 서비스 규칙, 및 각 서비스와 다른 서비스 사이의 의존 관계를 포함하고,
    상기 스케줄러는 구체적으로,
    상기 복수의 서비스의 서비스 규칙에 포함된 조건에 따라, 상기 조건이 충족되는지를 판단하기 위해 필요한 N개의 처리 모듈, 및 상기 N개의 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에, 서비스가 스케줄링되어야 하는 하나 이상의 스케줄링 지점을 결정하고; 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에서 호출되어야 하는 서비스 사이의 매핑 관계를 생성하고; 상기 서비스들 사이의 의존 관계에 따라 상기 N개의 처리 모듈의 실행 시퀀스를 결정하도록 구성되어 있고,
    상기 스케줄링 논리는, N개의 처리 모듈의 실행 시퀀스, 및 서비스가 스케줄링되어야 하는 각 개별 스케줄링 지점과 상기 개별 스케줄링 지점에 호출되어야 하는 서비스 사이의 매핑 관계를 포함하고, 각 개별 스케줄링 지점은 상기 N개 처리 모듈의 처리 모듈들 사이에 및/또는 상기 N개의 처리 모듈의 각 처리 모듈 내부에 있는, 네트워크 디바이스.
  14. 제13항에 있어서,
    상기 스케줄러는,
    결정된 각 스케줄링 지점에서, 상기 생성된 매핑 관계에 따라 상기 스케줄링 지점에 대응하는 모든 서비스를 결정하고;
    패킷 처리 결과 중 적어도 하나에 따라, 모든 서비스의 각 서비스에 대한 스케줄링 조건이 충족되는지를 결정하고, 상기 스케줄링 조건을 충족시키는 서비스를 상기 스케줄링 지점에서 스케줄링되어야 하는 서비스로 결정하고;
    스케줄링되어야 하는 서비스가 복수 존재하면, 스케줄링되어야 하는 상기 서비스들의 각 서비스에 대한 우선순위의 내림차순에 따라, 상기 스케줄링 지점에 연속적으로 스케줄링되어야 하는 상기 서비스들을 호출하고;
    스케줄링되어야 하는 서비스가 하나만 존재하면, 상기 스케줄링 지점에서 스케줄링되어야 하는 상기 서비스를 직접 호출하도록,
    구성되어 있는, 네트워크 디바이스.
  15. 제11항에 있어서,
    상기 복수의 처리 모듈은 상기 네트워크 디바이스의 복수의 프로세서 코어상에 배치되어 있고,
    상기 스케줄러는 분산 방식으로 상기 복수의 프로세서 코어상에 배치되어 있는, 네트워크 디바이스.
  16. 삭제
  17. 삭제
KR1020147032798A 2013-07-02 2014-01-23 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스 KR101617323B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310274883.0 2013-07-02
CN201310274883.0A CN103346980B (zh) 2013-07-02 2013-07-02 一种业务调度方法、装置及网络设备
PCT/CN2014/071176 WO2015000295A1 (zh) 2013-07-02 2014-01-23 一种业务调度方法、装置及网络设备

Publications (2)

Publication Number Publication Date
KR20150035544A KR20150035544A (ko) 2015-04-06
KR101617323B1 true KR101617323B1 (ko) 2016-05-02

Family

ID=49281755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147032798A KR101617323B1 (ko) 2013-07-02 2014-01-23 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스

Country Status (6)

Country Link
US (2) US10489194B2 (ko)
EP (2) EP2846503B1 (ko)
JP (1) JP6004410B2 (ko)
KR (1) KR101617323B1 (ko)
CN (1) CN103346980B (ko)
WO (1) WO2015000295A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103346980B (zh) 2013-07-02 2016-08-10 华为技术有限公司 一种业务调度方法、装置及网络设备
US10284619B2 (en) * 2014-01-22 2019-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Method for scalable distributed network traffic analytics in telco
JP6232137B2 (ja) * 2014-07-08 2017-11-15 株式会社Nttドコモ 制御ノード、ノード作成システム及びノード作成方法
CN106162906B (zh) 2015-03-31 2019-01-15 中兴通讯股份有限公司 调度信息发送、接收方法及装置
CN105812276B (zh) * 2016-04-27 2023-11-10 深圳市风云实业有限公司 采用多核处理器的报文转发自适应系统和方法
CN107517112A (zh) * 2016-06-16 2017-12-26 工业和信息化部电信研究院 一种模块调度方法
CN107959682A (zh) * 2017-12-07 2018-04-24 中盈优创资讯科技有限公司 多安全业务的并行防护方法及装置
CN109743399B (zh) * 2019-01-14 2021-09-03 浙江外国语学院 一种体检中心多任务调度的内外网数据传输方法及系统
CN110266747B (zh) * 2019-04-12 2022-04-08 创新先进技术有限公司 业务请求的机房转接方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004029805A2 (en) * 2002-09-30 2004-04-08 International Business Machines Corporation A common scheduler web service for distributed network environments
US20100115048A1 (en) * 2007-03-16 2010-05-06 Scahill Francis J Data transmission scheduler

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58107759A (ja) * 1981-12-22 1983-06-27 Fujitsu Ltd 蓄積交換方式
US6412005B1 (en) * 1997-08-25 2002-06-25 Marconi Communications, Inc. Method and apparatus for providing service to entities
US6882642B1 (en) * 1999-10-14 2005-04-19 Nokia, Inc. Method and apparatus for input rate regulation associated with a packet processing pipeline
US20020159411A1 (en) * 2001-03-23 2002-10-31 Manish Airy Method and system for scheduling the transmission of wireless data
US7185342B1 (en) * 2001-07-24 2007-02-27 Oracle International Corporation Distributed service aggregation and composition
US20030043848A1 (en) * 2001-08-30 2003-03-06 Sonksen Bradley Stephen Method and apparatus for data item processing control
US7626986B1 (en) * 2002-11-18 2009-12-01 At&T Corp. Method for operating a router having multiple processing paths
CN100411367C (zh) * 2002-11-19 2008-08-13 华为技术有限公司 一种服务器同时处理多业务逻辑的实现方法和装置
US7188250B1 (en) * 2002-12-13 2007-03-06 Nvidia Corporation Method and apparatus for performing network processing functions
US20050289244A1 (en) * 2004-06-28 2005-12-29 Himansu Sahu Method for service chaining in a communication network
CN101442513B (zh) * 2007-11-20 2012-05-23 杭州华三通信技术有限公司 实现多种业务处理功能的方法和多核处理器设备
CN101459660A (zh) * 2007-12-13 2009-06-17 国际商业机器公司 用于集成多个威胁安全服务的方法及其设备
US8127262B1 (en) * 2008-12-18 2012-02-28 Xilinx, Inc. Communicating state data between stages of pipelined packet processor
CN101510164B (zh) * 2009-03-25 2013-05-22 北京中星微电子有限公司 一种多业务调度方法、装置与系统
US8356332B2 (en) * 2009-07-30 2013-01-15 Alcatel Lucent Extensible protocol validation
EP2540091A2 (en) * 2010-02-26 2013-01-02 Thomson Licensing System and method for synchronizing an electronic program guide with paused programs
EP2551768A4 (en) * 2010-03-24 2013-10-09 Fujitsu Ltd MULTICLE SYSTEM AND STARTING PROCEDURE
JP5417626B2 (ja) * 2010-04-30 2014-02-19 株式会社日立製作所 管理計算機、ジョブスケジューリング方法及びジョブスケジューリングプログラム
DE112011100714B4 (de) * 2010-05-14 2018-07-19 International Business Machines Corporation Computersystem, Verfahren und Programm
KR20120017294A (ko) 2010-08-18 2012-02-28 삼성전자주식회사 어플리케이션을 효율적으로 처리하는 스케쥴링 시스템 및 스케쥴링 방법
CN102694926B (zh) * 2011-03-22 2016-03-30 中兴通讯股份有限公司 一种支持多业务融合的综合增值业务系统及方法
CN102411510A (zh) * 2011-09-16 2012-04-11 华为技术有限公司 在多核处理器的虚拟机上映射业务数据流的方法和装置
US9710307B1 (en) * 2012-05-07 2017-07-18 Amazon Technologies, Inc. Extensible workflows for processing content
WO2014108748A1 (en) * 2013-01-10 2014-07-17 Freescale Semiconductor, Inc. Packet processing architecture and method therefor
EP2784673A1 (en) * 2013-03-28 2014-10-01 Alcatel Lucent Scheduling
US9660905B2 (en) * 2013-04-12 2017-05-23 Futurewei Technologies, Inc. Service chain policy for distributed gateways in virtual overlay networks
CN103346974B (zh) 2013-06-03 2015-04-08 华为技术有限公司 一种业务流程的控制方法及网络设备
US9686192B2 (en) * 2013-06-28 2017-06-20 Niciria, Inc. Network service slotting
CN103346980B (zh) * 2013-07-02 2016-08-10 华为技术有限公司 一种业务调度方法、装置及网络设备
US9462084B2 (en) * 2014-12-23 2016-10-04 Intel Corporation Parallel processing of service functions in service function chains

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004029805A2 (en) * 2002-09-30 2004-04-08 International Business Machines Corporation A common scheduler web service for distributed network environments
US20100115048A1 (en) * 2007-03-16 2010-05-06 Scahill Francis J Data transmission scheduler

Also Published As

Publication number Publication date
US20200142734A1 (en) 2020-05-07
EP3364617A1 (en) 2018-08-22
KR20150035544A (ko) 2015-04-06
EP3364617B1 (en) 2019-09-18
WO2015000295A1 (zh) 2015-01-08
EP2846503B1 (en) 2018-11-21
JP2015527838A (ja) 2015-09-17
CN103346980A (zh) 2013-10-09
EP2846503A4 (en) 2015-07-08
CN103346980B (zh) 2016-08-10
US11016806B2 (en) 2021-05-25
EP2846503A1 (en) 2015-03-11
US10489194B2 (en) 2019-11-26
US20150121385A1 (en) 2015-04-30
JP6004410B2 (ja) 2016-10-05

Similar Documents

Publication Publication Date Title
KR101617323B1 (ko) 서비스 스케줄링 방법 및 장치, 그리고 네트워크 디바이스
JP5943331B2 (ja) サービスプロセス制御方法およびネットワークデバイス
WO2017166136A1 (zh) 一种vnf的资源分配方法及装置
WO2020164476A1 (zh) 数据下载的方法及相关装置
JP7270036B2 (ja) ネットワークノードでのロックなし通信処理のための方法、システム、およびコンピュータ読取可能媒体
CN113727369A (zh) 网络组件的管理方法和网络设备
EP3319270A1 (en) Service registration method, usage method and relevant apparatus
WO2013169422A1 (en) Communications management
CN107426109B (zh) 一种流量调度方法、vnf模块及流量调度服务器
CN113438169A (zh) 一种数据调度方法、电子设备及存储介质
CN109076027B (zh) 网络服务请求
EP3012736A1 (en) Data stream processing method, device and system
US20220006735A1 (en) Network device and packet processing method using same
CN113839981A (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
FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 4