KR100965621B1 - 디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및컴퓨터 시스템 - Google Patents

디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및컴퓨터 시스템 Download PDF

Info

Publication number
KR100965621B1
KR100965621B1 KR1020057009721A KR20057009721A KR100965621B1 KR 100965621 B1 KR100965621 B1 KR 100965621B1 KR 1020057009721 A KR1020057009721 A KR 1020057009721A KR 20057009721 A KR20057009721 A KR 20057009721A KR 100965621 B1 KR100965621 B1 KR 100965621B1
Authority
KR
South Korea
Prior art keywords
protocol
action
filter
value
state
Prior art date
Application number
KR1020057009721A
Other languages
English (en)
Other versions
KR20050085208A (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 KR20050085208A publication Critical patent/KR20050085208A/ko
Application granted granted Critical
Publication of KR100965621B1 publication Critical patent/KR100965621B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • 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/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/246Connectivity information discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

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

Abstract

본 발명은 하나 이상의 프로토콜(protocol) 속성의 하나 이상의 조건들로부터 초래된 3가지의 가능한 상태들을 갖는 적어도 하나의 필터에 의해 제공된 디지털 프로세싱 시스템(1 및 2)에 관한 것이다. 각 프로토콜 속성은 시맨틱 스트림(semantic stream)에서 사용되는 정렬된 일련의 프로토콜 이름 및 파라미터 이름에 의해 지정되며, 여기서 상기 파라미터 이름은 상기 정렬된 일련의 프로토콜 이름들 내에 이름이 표시된 프로토콜 이름에 의해 전송된다. 상기 디지털 프로세싱 디바이스는 필터링 엔진(1)과 액션 엔진(2)을 포함하며, 여기서 상기 필터링 엔진(1)은 상기 데이터가 필터의 유효 상태 또는 무효 상태를 초래하는 프로토콜 속성값을 제공할 때까지, 통신 데이터에 필터를 적용하고, 그리고 상기 액션 엔진(2)은 상기 필터의 상태가 유효일 때 상기 액션을 트리거링(triggering) 한다.

Description

디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및 컴퓨터 시스템{METHOD AND COMPUTER SYSTEM FOR TRIGGERING AN ACTION ON DIGITAL COMMUNICATION DATA}
삭제
본 발명은 디지털 통신 데이터의 형태로 전송되는 정보 스트림(information stream)의 제어 및 관리에 관한 것이다. 공지된 예를 들면 라우팅, 자원의 관리, 서비스의 품질, 보안 제어, 특정 콘텐츠의 관찰, 그리고 통신 수단 사용의 요금부과가 제시될 수 있다.
라우팅은 송신자로부터 수신자로의 통신 데이터의 경로를 결정하기 위해 네트워크 계층에서 필수적으로 적용되는 것이다. 회선 교환에서는, 라우팅은 고정된 종단-대-종단(end-to-end) 물리적 링크를 설정하는 신호에 의해서 수행된다. 패킷 교환에서는, IP 어드레스와 같은 어드레스가 전체 통신에 대해 물리적 라인을 독점할 필요성을 제거하여 가능한 다른 물리 계층에 의해 구현되는 다수의 네트워크를 통과할 수 있게 한다. ATM 프로토콜에 의해 제공될 수 있는 것과 같은 셀 교환에서는, 가상 회선을 설정하여 패킷 교환에서 제공되는 것처럼 물리 자원을 최적으로 이용할 수 있게 하면서도, 회선 교환에 의해 제공되는 것과 같은 속도를 제공한다. 일반적으로는, 라우팅은 지형적 위치에 기초하여 미리 결정된 네트워크 어드레스에 본질적으로 의존한다. 그러나, 네트워크 서비스의 추상화를 향한 요구들이 있다. 이러한 요구들에 대한 해결책은 이미 제시된 예를 들면, 가상 근거리 네트워크(VLAN : Virtual Local Area Network)와 같은 해결책 기술이 존재한다. 그러나 데이터의 경로를 결정하기 위해 라우터에 의해 수행되는 액션들은, 아키텍처의 기존 사양들 및 미리 결정된 엔터프라이즈에 가상 근거리 네트워크를 할당하기 위한 어드레스들의 기존 사양과 같은 상대적으로 고정된 기준으로 인해 조건적일 수밖에 없다. 바람직한 것은, 가상 네트워크가 특정 애플리케이션, 데이터의 특정 타입, 또는 그 밖에 특정 서비스와 연결되도록 하는 것이다. 그러나 불행히도, 그러한 접근법을 채택하는 것은 개발의 복잡성 및 관리의 복잡성으로 인해 선호되지 않는다.
자원 및 서비스 품질의 관리는, 신택틱(syntactic) 데이터 흐름에 처리량(throughput) 또는 전송 우선순위 레벨을 할당하기 위한 액션들과 같은 액션들을 수행하는 것을 포함한다. 신택틱 흐름은 네트워크 계층 또는 전송 계층, 또는 심지어 세션 계층 범주에 의해 식별되는 패킷들의 세트에 대응되는 것이다. 만약 음악 및 필름(오디오 또는 비디오 스트리밍)의 끊김 없는 복원(restitution), 가상 네트워크의 구성원 자격, 교환 그룹의 구성원 자격, 송수신 되는 콘텐츠 코딩으로서, 예컨대 G721 코딩 및 사운드 압축 표준에 의해 규정 바에 따라 송수신 되는 콘텐츠 코딩, 정해진 통신 상에서 대역폭을 구매하기 위한 사용자 또는 키워드의 식별과 같은 것들에 의해 제공되는 서비스의 기능 모두가 애플리케이션 레벨에서 달성될 수 있기를 희망한다면, 신택틱 흐름을 인지하는 것에 기초하여 상기 자원 및 서비스 품질을 관리하는 것은 만족스럽지 못한 결과로 이어질 수밖에 없다. 동일 신택틱 흐름은 다른 타입의 데이터를 전송할 수도 있는데, 예를 들면, 클라이언트 스테이션에 디스플레이되는 http 흐름은 시스템의 용량이 점진적으로 한가해질 때 이미지가 디스플레이되도록 이미지는 나중에 디스플레이하고, 먼저 문자 데이터를 표시한다. 문자 데이터의 전송을 위해서는 작은 대역폭이 충분하고, 시각적 또는 청각적 데이터를 전송하는데에는 큰 대역폭이 충분함에도, 신택틱 흐름의 전부에 대해 고유의(unique) 대역폭을 할당하는 것은 만족스럽지 못한 것이다.
보안 제어(security control)는 오직 인증된 사람에게만 디지털 통신 데이터 또는 브로드캐스팅 에 대한 액세스를 유지하기 위하여, 전송되는 디지털 통신 데이터에서 수행되는 액션을 포함한다. 방화벽은 IP와 같은 네트워크 어드레스 또는 TCP 또는 UDP와 같은 전송 포트를 인식하는 기능을 이용하여 데이터 패킷을 허가 또는 금지한다. 그러나 그러한 기준은 동적으로 교섭되는 포트를 사용하는 애플리케이션에는 적용되기 어려운 문제가 있다. 예를 들면, FTP 프로토콜의 경우에서, 커맨드 접속이 TCP21 포트를 통하여 일반적으로 먼저 열린다. 이 접속은 클라이언트가 서버에 연결할 수 있도록 하고, 리모트 파일 시스템 트리 구조를 이동할 수 있게 하고, 그리고 서버에 질의(GET)할 수 있게 한다. 상기 클라이언트가 질의를 수행할 때, 상기 서버는 클라이언트가 요구되는 파일을 찾기 위해 접속해야만 하는 특정 포트를 상기 클라이언트에게 알려주고, 그것에 의해 데이터 접속을 개방한다. 상기 트랜잭션은 동적으로 교섭(negotiation)되는 포트에서 발생하지만, 후자는 특정 헤더(header)를 가지고 있지 않기 때문에 이 접속을 분석함으로써 FTP 프로토콜을 인식한다는 것은 불가능하다. 단지 교환되는 파일의 바이너리 데이터만이 상대편으로 이동한다. 이어서 모든 데이터 접속을 확인하기 위해서 커맨드 세션이 완료된 콘텐츠를 분석하는 것이 필요하다. 그런 것은 멀티미디어 시스템과 관련된 H.323 표준에 의해 포함되는 다수의 프로토콜 및 RTP(실시간 애플리케이션 접속(real time application connection))를 위해 마련되어 있다. H.323 세션이 개시될 때, 음성 및/또는 비디오가 전송될 RTP 접속을 정의하기 위해, 사용자 인터페이스 제어와 관련된 H.245 프로토콜의 도움으로 동적으로 포트가 할당된다. 각각의 음성 패킷을 위해 사용되는 특정 헤더가 RTP 접속을 인식할 수 있게 하기 때문에 포트에 대한 사전 지식 없이도 가능하다.
또한, 디지털 통신 데이터 상에서 수행되는 보안 액션들 중 암호화 분야에서는 암호화, 서명, 또는 메시지 인증의 액션이 알려져 있다. 그것은 대개 상기 암호 액션을 트리거링 하는 메시지들을 관리하는 애플리케이션이다. 또한, LAN에서 WAN으로 전송되는 데이터를 암호화하기 위한 예를 들면 IPSEC처럼 네트워크 계층에서 암호화 액션을 트리거링 하기 위한 수단이 존재한다. 상기 트리거링 기준은 여전히 신택틱 타입의 흐름으로 지속 된다. 예를 들면 연산 자원(computational resources)을 절약하기 위해서, 디지털 통신 데이터 상의 콘텐츠의 가장 민감한 부분에 사후에 암호 또는 인증 액션을 애플리케이션과 무관하게 트리거링 하는 것은 어려운 문제다.
에러율, 전송되는 정보의 크기, 또는 교환되는 정보의 의미에 대한 통계를 산출하기 위해서 콘텐츠를 관찰(모니터링)하는 것이 유용하다. 동작의 제어는 이러한 유형의 통신 기능의 부분을 형성한다. 여기서, 시맨틱 흐름마다 이 콘텐츠 또는 저 콘텐츠를 관찰하기 위한 선택이 필수적으로 만들어질 수 있다. 상기 관찰 액션들은 그것들이 관련되어 있는 데이터에 대한 임의의 미세한 구분없이도, 통신 데이터의 전체 세트에서 때때로 트리거링 된다. 의도된 관찰 액션들은 그것들의 이용과 관련된 소팅(sorting)을 위해 유용한 것일 수 있다.
여기에 제시된 문제들은 통신 수단의 사용자 요금청구 또는 데이터의 압축과 같은 다른 통신 기능에서도 발견될 수 있는 것이다. 이는 일반적으로, 데이터 압축 및 압축 해제 액션을 트리거링 하는 애플리케이션에서 발견될 수 있다. 또한, 압축 액션을 전송 레벨에서 트리거링 하는 것도 가능한데, 예를 들면 특별한 전용 포트를 통하여 보내지는 모든 통신 데이터에 대해서 트리거링 하는 것도 가능하다. 그러나 그러한 접근법은 상위 기능 레벨에는 거의 적용되지 않거나 또는 불충분하게 적용되는 시맨틱 성질의 문제를 남겨둔다.
더욱이, 각각의 통신 기능은 트리거링 될 액션 및 고려될 신택틱 흐름들을 사전에 정의함으로써, 개발 목적 또는 때로는 특정한 개발의 목적을 일반적으로 형성한다. 그러나 이는 통신 기능의 폭을 넓히기 위해서는 유연성이 부족한 문제가 있다.
요약하면, 디지털 통신 데이터는 신택틱 흐름들을 정의하기에 적절한 프로토콜 정보를 코딩(coding)하는 시그널과, 애플리케이션 패키지 레벨 정보를 코딩하는 시그널을 포함하는 헤더를 포함하며, 여기서 후자는 종종 유용한 데이터(또는 페이로드)로 더빙(dubbing) 된다. 각각의 통신 기능을 위하여, 액션들이 애플리케이션 패키지 레벨의 출발지 또는 도착지 둘 중 하나에서 이러한 통신 데이터 상에서 트리거링 되거나 또는 신택틱 흐름을 식별하기 위해 알려진 값의 헤더 부분을 인식함으로써 전송과정에서 트리거링 된다.
상기 후자처럼 될 수 있다면, 애플리케이션의 맞춰진 파라미터화는 엔터프라이즈 또는 컴퓨팅 사이트에서 실행되는 다수의 애플리케이션에 맞추어 개발이 되는 점에서 빠르게 제한요소가 될 것이다.
신택틱 흐름들을 식별하기 위한 알려진 값들의 인지에 의해 야기되는 엄밀함(rigidity)은 예를 들어 포트가 동적으로 교섭되는 경우, 또는 상기 액션이 상위 기능 레벨의 기준 기능으로서 몇개의 시맨틱 흐름들에서 공통적으로 또는 임의의 시맨틱 흐름에서 단지 부분적으로만 수행되어야 하는 경우에 항상 적합한 것은 아니므로, 결국 그것을 위한 요구사항이 자신의 존재를 서비스에서 스스로 인식시키게 한다.
본 발명의 목적은 애플리케이션 또는 애플리케이션의 소스에 있는 애플리케이션들과 무관하게 통신 데이터에서 액션들을 트리거링 할 수 있도록 하고, 그리고 신택틱 흐름들로 제한된 순전히 프로토콜 기반인 분석에 제한되지 않으면서 트리거링 할 수 있도록 하기 위함이다.
또한, 본 발명의 목적은 액션 트리거(trigger)들을 함께 그룹화하는 통신 기능들을 개발하고, 그리고 최대 유연성을 가질 수 있도록 하기 위함이다.
그 해결책은 통신 데이터를 시맨틱 흐름으로 분류하는 것이며, 여기서 각각의 액션의 트리거링이 주어진 시맨틱 흐름에 할당되어진다.
신택틱 흐름과는 다르게, 시맨틱 흐름은 주어진 서비스를 만족시키기 위해 공통 기능 기준(common fuctional criterion)을 만족시키는 모든 통신 데이터를 함께 그룹화한다. 신택틱 흐름은 다수의 서로 다른 다른 시맨틱 흐름들을 전송할 수 있다. 동일한 시맨틱 흐름은 그것이 운반되기 위해서 몇개의 신택틱 흐름들을 필요로 할 수 있다.
시맨틱 흐름 기반 분류화의 이점은 액션 트리거링 기준을 무한히 확장할 수 있다는 것으로서, 분산 네트워크의 구조 내에서 특히 이점이 있다.
본 발명의 목적은 디지털 통신 데이터가 액션이 예정된 동일한 시맨틱 흐름에 속할 때 디지털 프로세싱 디바이스 수단에 의하여 디지털 통신 데이터에 적어도 하나의 액션을 트리거링 하기 위한 방법에 관한 것이다.
상기 방법은:
- 상기 디바이스에 적어도 하나의 필터가 입력되는 단계와, 여기서 상기 필터는 상기 시맨틱 흐름에 대해 규정된 하나 이상의 프로토콜 속성들의 하나 이상의 조건들로부터 기인된 3가지의 가능한 상태들을 가지며, 여기서 상기 3가지의 가능한 상태들은 상기 조건 또는 조건들이 만족됨을 확인하는 프로토콜 속성값들에 대응되는 유효 상태(valid state), 상기 조건 또는 조건들이 만족되지 않음을 확인하는 프로토콜 속성값들에 대응되는 무효 상태(invalid state), 그리고 상기 조건 또는 조건들이 만족되거나 만족되지 않음을 확인하는 프로토콜 속성값이 존재하지 않는 것에 대응되는 불확실 상태(uncertain state)를 포함하고, 여기서 각각 프로토콜 속성은 시맨틱 흐름에서 사용되는 정렬된 일련의 프로토콜 이름들(ordered sequence of protocol names) 및 상기 정렬된 일련의 프로토콜 이름들 내에 이름이 표시된 프로토콜에 의해 운반된 파라미터 이름에 의해 규정되고;
- 상기 디지털 프로세싱 디바이스는 상기 필터의 불확실 상태의 원인이 되는 프로토콜 속성값들이 아닌 다른 프로토콜 속성값들을 상기 데이터가 제공하지 않는 한 상기 통신 데이터에 상기 필터(three-state filter)를 적용하는 단계와;
- 상기 디지털 프로세싱 디바이스는 상기 필터의 유효 상태가 상기 통신 데이터에 의해 제공된 프로토콜 속성값으로부터 기인된 것일 때, 상기 액션을 트리거링 하는 단계를 포함하는 특징이 있다.
이 방법에서, 상기 필터는 동일 시맨틱 흐름에 속하는 통신 데이터 상의 반응 요소를 구성한다. 이 요소는 시맨틱 흐름에 의한 통신 데이터의 분류의 관점에서 큰 유연성을 제공한다. 사용자는 많은 요구조건들을 만족시키기 위하여 프로토콜 속성들을 채택할 수 있다. 예를 들면, 임의의 새로운 프로토콜 아키텍처에 대해, 사용되는 순서 정렬된 일련의 프로토콜 이름들을 지정하는 것으로 충분하다. 상기 사용자는 액션을 트리거링 하기 바라는 시맨틱 흐름에 적합한 파라미터를, 프로토콜의 이름을 통하여 자유롭게 정의할 수 있다. 상기 사용자는 디지털 프로세싱 디바이스에 제공하기 위해, 필요하다면 다른 프로토콜 속성들을 지닌 다른 필터를 단순히 생성함으로써 다른 시맨틱 흐름을 부가할 수 있다.
상기 디지털 프로세싱 디바이스에 의해 행해지는 동작은 다양한 시맨틱 흐름들을 정의하기 위한 필터들의 공식화(formulation)로부터 분리된다는 점을 주목하자.
상기 필터를 상기 통신데이터에 적용할 때, 상기 방법의 적용의 추가적 유연성이 제공된다.
- 상기 디지털 프로세싱 디바이스는 필터의 상태가 유효 또는 무효일때까지, 또는 모든 프로토콜 속성이 디스패치(dispatch)될 때까지, 순서 정렬된 일련의 프로토콜 이름들로 표시된 프로토콜에 할당된 프로토콜 속성 인터페이스에 상기 프로토콜 속성들 중 하나를 디스패치하고,
- 상기 프로토콜 속성 인터페이스는 통신 데이터를 통해 지정된 파라미터의 값을 찾고, 그리고 만약 상기 파라미터의 값이 찾아진다면 디지털 프로세싱 디바이스에 이 값을 전송하고,
- 상기 디지털 프로세싱 디바이스는 상기 프로토콜 속성 인터페이스에 의해 전송된 값 또는 상기 값의 부존재에 대응하는 필터의 상태를 평가한다.
이는 파라미터가 사용되는 프로토콜에 의해 프로토콜 속성들의 값을 찾는 것을 특수화하고, 디지털 프로세싱 디바이스의 디자인을 간략히 할 수 있게 만든다.
유용하게, 상기 디지털 프로세싱 디바이스에 입력하기 위한 각각의 필터가 규칙들의 논리 조합(logical combination)에 의해 제 1 테이블에 정의되고, 각각의 규칙은 적어도 하나의 비교 연산자(comparison operator)를 포함하는 검증 식(verification expression)에 의해 제 2 테이블에 정의되며, 여기서 상기 비교 연산자의 인수(argument)는 프로토콜 속성이다.
특히, 상기 프로토콜 속성 인터페이스에 의해 전송된 값 또는 전송된 값의 부존재에 대응되는 필터의 상태를 평가하기 위해서, 상기 디지털 프로세싱 디바이스는 값의 전송에 따라 논리 조합 내의 적어도 하나의 규칙의 상태를 평가하고, 상기 평가된 규칙들의 상태들에 적용되는 논리 조합에 의해 주어진 상태를 평가한다.
시맨틱 흐름의 통신 데이터의 구성원 자격(membership)은 시간에 따라 변화될 수 있다. 이러한 환경에 대처하기 위해서, 본 발명의 방법은 값의 변화에 대응되는 필터 상태의 변화를 평가할 수 있도록 하기 위해, 프로토콜 속성 값의 임의 변화를 검출하도록 디지털 통신 데이터가 스캐닝(scanning) 되는 단계를 포함한다.
본 발명의 다른 양상은 디지털 통신 데이터가 액션(action)이 예정된 동일한 시맨틱 흐름에 속할 때, 디지털 통신 데이터에 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템에 관한 것이다.
상기 컴퓨터 시스템은:
- 필터링 엔진과 액션 엔진으로 구성되는 디지털 프로세싱 디바이스와;
- 상기 필터링 엔진에 적어도 하나의 필터를 입력하기 위한 액션 데이터베이스(6)와, 여기서 상기 적어도 하나의 필터는 상기 시맨틱 흐름에 대해 지정된 하나 이상의 프로토콜 속성에서 하나 이상의 조건들로부터 초래된 3가지의 가능한 상태를 가지며,
- 유효 상태, 무효 상태, 불확실 상태를 카테고리화 하기 위한 적어도 하나의 데이터 구조와, 여기서 상기 유효 상태는 상기 조건 또는 조건들이 만족됨을 확인하는 프로토콜 속성값들에 대응되는 상태이며, 무효 상태는 상기 조건 또는 조건들이 만족되지 않음을 확인하는 프로토콜 속성값들에 대응되는 상태이고, 그리고 상기 불확실 상태는 상기 조건 또는 조건들이 만족 되거나 만족 되지 않음을 확인하는 프로토콜 속성값들이 존재하지 않는 것에 대응되는 상태이고, 여기서 각각 프로토콜 속성은 시맨틱 흐름에서 사용되는 순서 정렬된 프로토콜 이름들 및 파라미터 이름에 의해 지정되고, 상기 파라미터 이름은 상기 순서 정렬된 프로토콜 이름들 내에 그 이름이 표시된 프로토콜에 의해 전송되고,
- 상기 필터의 불확실 상태의 원인이 되는 프로토콜 속성값과는 다른 프로토콜 속성값을 상기 통신 데이터가 제공할 수 없는 한, 상기 통신 데이터에 각각의 필요한 필터를 적용하기 위해 상기 필터링 엔진에 의해 사용될 수 있는 통신 데이터를 수신하기 위한 수단과, 그리고
- 상기 유효 상태가 상기 데이터 구조에 포함될 때 상기 액션을 트리거링하기 위해 상기 액션 엔진에 의해 사용될 수 있는 통신 데이터를 전송하기 위한 수단을 포함하는 것을 특징으로 한다.
이 컴퓨터 시스템은 본 발명에 따른 방법을 실시할 수 있게 해주며, 상기 컴퓨터 시스템에서, 필터링 엔진과 액션 엔진은 두 개의 분리된 디지털 프로세싱 디바이스 요소를 구성한다.
상기 컴퓨터 시스템이 상기 시맨틱 흐름 내에서 사용가능한 각각의 프로토콜에 할당된 프로토콜 속성 인터페이스를 포함하고, 상기 프로토콜 속성 인터페이스가 상기 필터링 엔진으로부터 상기 프로토콜 속성을 수신하도록 되어있으며, 상기 프로토콜 속성은 상기 프로토콜 속성 인터페이스가 할당된 상기 프로토콜을 위해 정의된 것이고,
- 상기 프로토콜 속성 인터페이스는 통신 데이터를 통해 지정된 파라미터의 값을 찾고 이 값이 찾아진다면 이 값을 필터링 엔진으로 전송하도록 되어있고,
- 상기 필터링 엔진은 이 값에 대응하는 또는 상기 프로토콜 속성 인터페이스에 의해 전송된 값의 부존재에 대응하는 필터의 상태를 평가하도록 되어 있을 때, 상기 컴퓨터 시스템은 통신 기술의 개량에 따른 새로운 프로토콜이 나타나도 쉽게 채택될 수 있을 것이다.
그것은 상기 시스템의 전체를 재구성하지 않고서도 이 새로운 프로토콜을 위해 특별히 설계된 프로토콜 속성 인터페이스를 부가하는 것으로 충분하다.
유용하게는 상기 데이터베이스는 제 1 테이블 및 제 2 테이블을 포함하고, 여기서 상기 제 1 테이블은 각각의 필터에 대해 규칙들의 논리 조합을 포함하며, 상기 제 2 테이블은 각각의 규칙에 대해 검증식을 포함하고, 상기 검증식은 적어도 하나의 비교 연산자를 포함하는데, 여기서 상기 비교 연산자의 인수는 프로토콜 속성이다.
특히, 상기 디지털 프로세싱 디바이스는 필터의 상태(상기 프로토콜 속성 인터페이스에 의해 전송된 값 또는 전송 값의 부존재에 대응됨)를 평가하기 위해서, 논리 조합 내의 적어도 하나의 규칙의 상태를 값의 전송에 따라 평가하고, 이어서 상기 평가된 규칙 상태에 적용되는 논리 조합에 의해 주어진 상태를 평가하도록 고안된다.
컴퓨터 시스템의 유익한 양상은 특정 필터가 관련된 다른 시맨틱 흐름을 위해 각각 설계된 액션들의 다수의 이름을 갖는 적어도 제 3 테이블(61, 62, 63)을 포함하는 데이터베이스이다.
이는 각각이 시맨틱 흐름에 적합한 하나 이상의 액션들을 트리거링 할 수 있게 한다.
본 발명의 다른 이점 및 특징들이 하기의 도면을 참조로 하여 예시적인 구현들의 설명으로부터 이해될 수 있다.
도 1은 본 발명에 따른 컴퓨터 시스템을 도시한다.
도 2는 도 1의 컴퓨터 시스템에 대한 데이터베이스 구조를 나타낸다.
도 3은 본 발명의 특별한 진리표(truth table)를 나타낸다.
도 4 및 도 5는 본 발명을 따르는 방법 단계의 논리 흐름 차트이다.
도 6은 상기 방법을 실행하는 동안의 상태에서 컴퓨터 시스템의 데이터 구조를 나타낸다.
도 1은 본 발명을 구현하는 컴퓨터 시스템 아키텍처를 도시한다.
이하 설명되는 바와 같이 디지털 통신 데이터들을 액션 엔진(2)에 전송하기 전에 이러한 디지털 통신 데이터를 분석하기 위해 고안된 필터링 엔진(1)에 디지털 통신 데이터가 전송된다.
도 1의 예시에서, 상기 디지털 통신 데이터는 입력 커플러(coupler)(4)로부터 패킷 형태로 디지털 통신 데이터를 수신하는 접속 추출기(3)로부터 나온 것이다. 상기 접속 추출기(3)는 수신된 각각의 패킷으로부터 수신된 상기 패킷이 속하는 현 접속을 식별할 수 있게 하는 정보를 추출하기 위해 고안된 것이다. 이 정보는 일반적으로 일련의 정렬된 제 1 프로토콜 이름들 중 적어도 하나 이상에 대해 순서 정렬된 일련의 프로토콜 이름들, 소스 어드레스, 목적지 어드레스를 포함한다. 순서 정렬된 일련의 프로토콜 이름들은 패킷이 속하는 연결의 프로토콜 스택(stack)에 의해 사용되는 프로토콜 이름들을 포함한다. 각각의 패킷은 접속을 완벽하게 식별하기 위해 전체 정보를 포함할 필요는 없고, 단지 일반적으로 수신된 패킷이 속하는 현재의 접속을 다른 패킷이 속하는 다른 접속과 구별할 수 있게 하는 최소한의 정보를 포함하면 된다. 패킷들이 수신될 때, 상기 접속 추출기(3)는 수신된 패킷으로부터 접속 식별 정보를 추출하고, 그 정보를 현 접속의 테이블(5)의 행에 저장하도록 고안되었으며, 이것은 상기 패킷이 속하는 접속에 대응된다. 따라서, 상기 접속 추출기(3)는 현 접속을 식별하기 위해 상기 테이블(5)의 각각의 행에 가능한 많이 채워지는 방식으로 점진적으로 풍부해지도록 한다. 결국, 수신된 각각의 패킷은 필터링 엔진(1)에 제공되는데, 이는 패킷의 구별되는 정보와 관련된 대응 현재의 접속을 식별하기 위한 정보를 포함하는 테이블(5)의 행을 참조로 함으로써 제공되는 것이다.
Peter Newman 외 저, 네트워킹시의 IEEE/ACM 트랜잭션, 6권, 2 발행(1998 4월), 페이지 117-129의 간행물에 개시된 것과 같은 기술은 이하에서 더 상세히 설명될 필요가 없도록 접속 추출기(3)의 구현에 대해 제시하고 있다. 특허 출원 FR0209599는 예를 들면 개선된 성능을 갖는 접속 추출기(3) 동작을 위한 분석 방법 및 프로토콜 인식을 제시하고 있다.
상기 접속 추출기(3)는 예를 들면 본 발명의 대상인 컴퓨터 시스템이, 상기 필터링 엔진(1)에 제공되는 디지털 통신 정보를 포함하는 현재 접속 패킷을 입력 커플러(4)에 전송하기 위한 통신 네트워크 노드에 위치한 프록시 서버 타입 장비 내부로 통합될 때 유용하다.
더욱이 상기 접속 추출기(3)는 본 발명의 대상인 상기 컴퓨터 시스템이, 접속의 디지털 통신 데이터를 스스로 생성하고 다른 수단을 통하여 스스로 관리하는 통신 프로토콜 스택의 접속 식별 정보에 대한 액세스를 가질 수 있는 장비에 통합될 때에는 없어서는 안될 유용한 것이 된다.
패킷에 의한 디지털 통신 데이터의 제공은 패킷이 상기 입력 커플러(4)에 수신될 때, 또는 패킷들이 관련 시스템을 호스트로 하는 장비에 의해 생성될 때, 전체 데이터를 전송하기 위해 대기할 필요 없이, 그리고 데이터를 저장할 필요도 없이 실시간으로 상기 통신 데이터를 처리할 수 있게 한다. 그러나 상기 시스템은 로그(log) 되었을 수 있는 접속의 디지털 통신 데이터 세트에 대한 귀납적 처리(posteriori) (BATCH)라는 관점에서 또한 유용하다.
상기 필터링 엔진(1)은 도 2를 참조로하여 이하에 기술된 액션 데이터베이스(6)를 액세스하도록 고안되었다.
상기 액션 데이터베이스(6)는 하나 이상의 링크 테이블들(61, 62, 63), 적어도 하나의 필터 테이블(64), 그리고 적어도 하나의 규칙 테이블(65)을 포함한다.
링크 테이블들의 각각의 행은 필터 이름을 액션 이름과 관련짓는다. 상기 액션 이름들은 높은 우선순위 액션 이름이 제 1행에 인덱스 되고, 그리고 디폴트 액션의 이름이 링크테이블의 가장 마지막 행에 인덱스 되도록, 우선순위 내림 순서로 인덱스 된다. 상기 디폴트 액션은 트리거링 되어야 할 높은 우선순위의 액션이 존재하지 않는 경우에, 트리거링 되어야할 액션을 지정한 것이다. 상기 디폴트 액션은 널(null) 액션일 수도 있는데, 즉, 이는 어떠한 작용도 없는 액션을 의미한다.
본 명세서에 표시된 테이블(61)은 측정 링크 테이블이며, 이는 디지털 통신 데이터의 특성 또는 콘텐츠를 관찰(모니터링)할 수 있도록 설계된 것이다. 다양한 측정기준(metric)이 디지털 통신 데이터에서 관찰되어야 할 것이 무엇인지를 정의할 수 있다. 예를 들면, 많은 바이트들 또는 다수의 바이트들로 표현되는 통신 데이터의 볼륨에 대한 추정(또는 측정), 다가올 볼륨에 관한 예측, 통신의 지속시간, 장래에 요구되는 초당바이트 또는 초당 바이트의 배수로 표현된 처리량등의 기재가 작성될 수 있다. 또한, 상기 기재는 데이터가 주는 의미, 행위 제어 관련 제어, 전송 에러 또는 차단물에 대해 모니터링되는 문자열과 같은 특정 타입의 정보를 태핑 오프(tapping off) 할 수 있도록 작성될 수 있다.
테이블(61)의 열(66)에 인덱스 된 각각의 이름에 대하여, 하나 이상의 측정기준을 만족시키기 위해 설계된 액션이 대응된다. 예를 들면, "명령문 1 (statement1)"은 볼륨 및 지연(latency) 평가를 위한 측정기준을 만족시키도록, 패킷 당 바이트의 양을 표현되는 수를 합산하고, 2개의 연속적인 패킷 도착을 구별하는 지속 시간을 저장하는 액션에 대응된다. "명령문 2(statement 2)"는 볼륨 평가 행렬을 만족시키기 위해, 패킷 당 다수의 바이트들을 합산하는 액션에 대응된다. 다시, "명령문 i (statement i)"는 아무것도 하지 않는 액션에 대응된다. 테이블(61)의 마지막 행의 열(66)에 인덱스된 이름은 테이블(61)의 끝을 표시하는 특정 이름 "def"와 관련되며, 그리고 상기 인덱스된 이름은 디폴트로 트리거링 되어야 할 액션의 이름을 나타낸다.
열(67)의 필터 이름은 열(66)의 각각 액션 이름에 관한 것이다. 명명된 각각의 필터는 동일한 시맨틱 흐름에 속하는 일련의 통신 데이터를 인식하는 기능을 갖는다. 시맨틱 흐름이라 함은 시스템의 사용자가 특정한 의미를 제공한 통신 데이터의 스트림이다. 사용자가 상기 의미가 통신 데이터를 송신 또는 수신하기 위한 장소, 날짜(date), 또는 전송 경로를 지칭하도록 한다면, 이 의미는 물리 계층일 수 있다. 만약 상기 사용자가 상기 의미가 특정 애플리케이션, 애플리케이션의 타입, 또는 애플리케이션 사용자를 지칭하도록 한다면, 이 의미는 애플리케이션 패키지 계층일 수 있다. 또한, 이 의미는 시스템이 사용자가 의미를 제공하는 대상에 따라, 임의로 조합된 물리, 애플리케이션 계층 및/또는 중간 레벨일 수 있다. 하나 이상의 접속이 동일 시맨틱 흐름에 속할 수도 있다. 그러한 식으로, 접속은 다수의 시맨틱 흐름에 속할 수 있다. 따라서, 각각의 액션은 상기 액션이 트리거링 되어야 할 시맨틱 흐름과 관련된다.
테이블(62)에 여기에 표현된 것은 소위 방화벽 링크 테이블이며, 이는 동일 시맨틱 흐름의 디지털 통신 데이터의 전송을 인증 또는 금지할 수 있도록 디자인된 것이다.
테이블(62)의 열(66)에 인덱스된 각각의 이름은, 디지털 통신 데이터 상에서 인증 또는 이 데이터들의 전송 금지 기능으로서 작용(act)하도록 된 액션들에 대응한다. 예를 들어, "거절(reject)"은 데이터의 수신자로 데이터를 전송하는 것을 차단하고 이 차단을 송신자에게 알리는 액션에 대응한다. 명칭 "폐기(discard)"는 송신자에게 알리지 않고 통신 데이터를 파기하는 액션에 대응한다. 예를 들어, "허용(accept)"은 디지털 통신 데이터를 수정하지 않고 종단 송신자에게 전송하는 액션에 대응한다.
또한, 테이블(62)에서, 열(67)의 필터 이름은 열(66)의 각각 액션 이름과 관련된다. 측정 액션 및 방화벽 액션이 동일한 시맨틱 흐름을 위해 적합한 것일 때, 테이블(62)의 열(67)의 필터 이름은 테이블(61) 내의 열(67)의 필터이름과 동일하게 된다. 디지털 통신 데이터가 관찰 및 전송의 인증 또는 전송의 금지에 관하여 다른 시맨틱 흐름에 속할 때에는, 테이블(62) 내의 열(67)의 필터 이름이 테이블(61) 내의 열(67)의 필터이름과 다를 수 있다. 명명된 액션이 다수의 다른 시맨틱 흐름에 적용될 수 있을 때, 동일 액션 이름은 링크 테이블의 다수 행에서 인덱스 될 수 있다. 반면에 필터 이름이 동일 시맨틱 흐름에 관하여 호환될 수 없는 액션들을 트리거링 하는데에는 불일치하기 때문에, 상기 필터 이름은 많아봐야 단지 한 번만 각각의 링크 테이블과 관련될 수 있다. 테이블(62)의 마지막 행의 열(66) 내에 인덱스 된 이름은 테이블(62)의 마지막을 지시하는 특정 이름 "def"와 관련되며, 그리고 인덱스 된 상기 이름은 디폴트로 트리거링 되어야 할 액션의 이름을 나타낸다.
테이블(63)에 나타난 것은 디지털 통신 데이터에 다양한 전송 처리량을 할당하도록 디자인된 서비스 링크 테이블에 관한 것이다.
테이블(63)의 열(66) 내에 인덱스 된 각각의 이름이 특정한 디지털 통신 데이터에 전송 처리량을 이러한 데이터를 위한 서비스의 미리 결정된 품질에 따라 할당하도록 디자인된 액션과 대응된다. 알려진 방식으로 고안된 대기 큐(wait queue)에 특화된 처리량을 가장 잘 따르면서도, 상기 데이터를 재전송하기 위해서, 상기 액션은 일반적으로 대기 큐(queue)에 의해 통신 데이터가 수신될 때의 통신 데이터를 전송한다. 예를 들면 "큐 20 Kb/s"는 20 Kb/s의 전송 처리량을 갖는 대기 큐에 데이터를 보내는 액션과 대응된다. "큐 50Kb/s"는 50Kb/s의 전송 처리량을 갖는 대기 큐에 데이터를 전송하는 액션과 대응된다. 그리고 "큐 10 Kb/s"는 10 Kb/s의 전송 처리량을 갖는 대기 큐에 데이터를 보내는 액션과 대응된다.
또한, 테이블(63)에서, 열 (67) 내의 필터 이름은 열(66)의 각각 액션 이름과 관련된다.
시스템의 사용자가 디지털 통신 데이터에서 데이터가 속하는 시맨틱 흐름의 기능이 수행되도록 바라는 프로세싱에 따라 표현되는 링크 테이블의 모델에서, 압축 또는 압축해제 링크 테이블, 암호 링크 테이블, 라우팅 링크 테이블, 또는 임의의 다른 링크 테이블과 같은 다른 링크 테이블들(도시되지 않음)이 존재할 수 있다. 압축 링크 테이블의 열(66)에서는, 통신 데이터에 적용될 다양한 압축 비율에 대응되는 액션들의 이름을 찾을 수 있다. 암호 링크 테이블의 열(66)에서는, 상기 통신 데이터에 적용되어야 할 다양한 암호 또는 인증 키에 대응되는 액션의 이름을 찾을 수 있다. 암호 링크 테이블의 열(66)에서, 통신 데이터를 다시 보내기 위한 다양한 목적지 어드레스에 대응되는 액션 이름을 찾을 수 있다.
필터 테이블(64)의 각각의 행은 열(68) 내에 인덱스 된 필터 이름과 관련되며, 이는 다시 열(69)의 동일 행에서 인덱스 된 규칙들의 논리 조합과 관련된다. 링크 테이블의 열(67) 내에 인덱스 된 각각의 필터 이름은 사실 중복하여 대응되는 "def" 명칭은 가능한 예외로 하더라도, 테이블(64)의 열(68) 내에 단지 한 번만 인덱스 된다.
열(69)의 논리 조합은 도 3을 참조로 하여 설명된 진리표(55, 56, 57, 58)에 따라 정의된 3가지의 상태를 갖는 논리 연산자를 사용한다. 논리 연산자의 인수는 3가지의 상태를 갖는데, 이는 -1 값에 의해 나타나는 무효 상태, 1에 의해 표시되는 유효 상태, 그리고 0에 의해 표시되는 불확실 상태이다.
테이블(58)은 2개 인수 모두가 유효 상태이면 유효 상태를 제공하고, 하나의 인수만이라도 무효 상태이면 무효 상태를 제공하고, 그리고 다른 경우에는 불확실 상태를 제공하는 "AND" 논리 연산자의 진리표를 나타낸다.
테이블(57)은 하나의 인수가 유효 상태이면 유효 상태를 제공하고, 2개의 인수 모두가 무효 상태이면 무효 상태를 제공하고, 그리고 다른 경우에는 불확실 상태를 제공하는 "OR" 논리 연산자의 진리표를 나타낸다.
테이블(56)은 하나의 인수가 유효 상태, 그리고 다른 하나의 인수가 무효 상태이면 유효 상태를 제공하고, 2개의 인수 모두가 무효 상태이면 또는 유효 상태이면 무효 상태를 제공하고, 그리고 다른 경우에는 불확실 상태를 제공하는 "XOR" 논리 연산자의 진리표를 나타낸다.
테이블(55)은 하나의 인수가 무효 상태이면 유효 상태, 그리고 하나의 인수가 유효 상태이면 무효 상태를 제공하고, 그리고 다른 경우에는 불확실 상태를 제공하는 "NOT" 1진법 논리 연산자의 진리표를 나타낸다.
도 2에 도시된 테이블(64)의 열(69)에서, 논리 조합은 1개 또는 2개의 인수에 적용될 수 있는 논리 연산자로 시작한다. 각각의 인수는 분기들 모두가 규칙 이름으로 끝나는 논리 동작의 트리를 서술하기 위해서 규칙 이름 또는 논리 조합 자체이다.
테이블(64)의 열(69)에서 사용되는 규칙 이름들은 테이블(65)의 열(59)에서 하나마다 단 한 번 인덱스 된다. 상기 규칙 테이블(65)은 각각의 규칙 이름과 프로토콜 속성 관련 검증식을 관련짓는데, 여기서 상기 검증식은 열(59)에 포함된 규칙 이름의 행과 동일한 행의 열(60)에 포함된다. 상기 규칙 테이블은 각각의 규칙 이름을 열(59) 내에 포함된 규칙 이름의 행과 동일한 행의 열(39)에 포함된 자연스러운 또는 부자연스러운 표시와 관련지음으로써, 개선될 수 있다. 상기 자연스럽다 함은 상기 프로토콜 속성값이 상기 규칙이 활성화된 현 접속에 속하는 통신 데이터로부터 추출될 수 있다는 것을 나타낸다. 상기 부자연스럽다 함음 상기 프로토콜 속성값이 상기 규칙이 활성화된 현 접속의 피어(peer) 접속에 속하는 통신 데이터로부터 추출될 수 있다는 것을 나타낸다.
프로토콜 속성은 프로토콜 스택 내의 주어진 프로토콜에 의해 운반된 파라미터이다. 바람직하게는, 각각의 프로토콜 속성은 3가지의 신택틱 요소들에 의해 규정된다. 제 1 신택틱 요소는 프로토콜 이름들의 문자열을 포함하며, 여기서 하나 이상의 문자 '*'가 임의의 이름 또는 이름 문자열의 임의의 부분이 적절하다는 것을 표시하는 것이 가능하다. 제 2 신택틱 요소는 상기 문자열 내의 파라미터를 사용하는 프로토콜 이름을 라벨링(labeling)하기 위한 마크를 포함하며, 예를 들어, 각괄호들(bracket) 사이의 이 프로토콜 이름 또는 디폴트로 문자열 내의 마지막 이름의 특색 같은 것들이 이 것이다. 제 3 신택틱 요소는 사용되는 파라미터 이름을 포함한다. 예를 들면, 속성 *.ip.ip:saddr은 캡슐화되는 IP 패킷의 출발지 어드레스를 나타내며, 속성 *.[ip].ip:saddr은 가장 낮은 레벨의 IP 패킷 출발지 어드레스를 나타낸다. 파라미터 이름은 TCP 및 UDP프로토콜의 출발지 또는 목적지 포트 번호를 지정할 수 있다. 또한, 파라미터 이름은 http 프로토콜을 위한 호스트 서버 이름, 요청된 전송 처리량, 전송되는 분명한 프로토콜 이름, 또는 SNET에 의해 정해진 것과 같은 서브넷(subnet) 표현을 지정할 수 있다.
상기 파라미터는 디지털 통신 데이터의 임의 부분에 관한 것일 수 있다. 상기 파라미터는 신택틱 흐름들을 정의하기에 적절한 프로토콜 정보를 코딩하는 시그널에 관한 것일 필요는 없다. 또한, 상기 파라미터는 이전에 명명된 것과 같은 유용한 데이터에 관한 것일 수도 있다.
유용하게는, 상기 프로토콜 속성은 시스템이 지원되는 프로토콜의 전체 세트에 대해 포괄적인 논리적, 산술적, 그리고 비교 연산을 수행할 수 있도록한 타입들이다. 다음의 타입, 즉, 사인 됨/사인 되지 않음/8,16,32,64 비트 정수, Mac 어드레스, IP 어드레스/서브넷 마스크, 문자열, 시간 유닛, 바이너리 문자열이 기재될 수 있다. 예를 들면, BASE.*.UPP:SPORT에 의해 정의된 UDP 패킷의 포트는 16비트 사인 되지 않은 정수에 대한 타입 유닛 16이다. IMAP 프로토콜의 이메일 어드레스는 *.IMAP:SENDER에 의해 지정되며, 이는 문자행에 의해 정의된다.
규칙은 프로토콜 속성의 조건이다. 규칙의 상태는 동일 접속의 디지털 통신 데이터의 전체 세트에 대해 적절한 것이다. 검증식은 그것의 타입의 기능에 관한 프로토콜 속성값에 영향을 주는 비교 연산자를 포함하는데, 이는 같다는 표현을 위한 =, 서열 관계 표현을 위한 >, <, >=, <=, 같지 않다는 표현을 위한 !=, 그리고 정규 표현을 검사하기 위한 연산자에 대한 ~ 등이 있다.
도 2에 표현된 예에서, 만약 Attributel 프로토콜 속성이 value1과 동일한 값을 갖는 경우에는 R1은 유효 상태이고, 만약 상기 값이 다른 경우에는 상기 R1은 무효 상태이고, 그리고 프로토콜 속성값이 알려지지 않은 경우에는 R1 규칙은 불확실 상태에 있는 것이다. 만약 Attribute2 프로토콜 속성이 엄밀하게 value1보다 작은 값을 갖는 경우에는 R2 규칙이 유효 상태이고, 프로토콜 속성값이 value1 보다 엄밀하게 작지 않은 경우에는 R2 규칙이 무효 상태, 그리고 상기 프로토콜 속성값이 알려지지 않은 경우에는 R2 규칙은 불확실 상태에 있는 것이다. 따라서, 테이블(65)은 테이블(64) 내에서 사용될 수 있는 규칙들의 전체 세트를 동일한 방식으로 정의한다. 예를 들면, Attribute1 프로토콜 속성이 값 X의 정규 표현을 만족시키는 값을 갖는 경우, Ri 규칙은 유효 상태에 있다. 알려진 정규 표현들 중에는, 문자 또는 임의의 문자들의 행으로 대체될 수 있는 특수한 문자를 포함하고, 포맷(정수, 날짜, 재무 값의 존재)을 나타내거나, 또는 만약 값들이 정규 표현을 만족시키지 못하는 경우에는 무효 상태, 프로토콜 속성값이 알려지지 않은 경우에는 불확실 상태 내의 데이터 타입(숫자, 어드레스, 문자열)을 참조하는 문자열의 형태로 표현된 예시 방식으로 만들어질 수 있다.
필터들은 논리 규칙 함수들이라는 점에 주의하여야 한다. 필터를 유효하게 하기 위하여, 가능한 해결책은 필터가 호출될 때마다 상기 필터가 필터링 엔진에 의해 해석되도록 하는 것이 있다. 유용하게는, 상기 필터들은 더욱 쉽게 실행될 수 있는 신택틱 트리의 형태의 바이너리 포맷으로 사전에 컴파일된다. 예를 들면, 규칙들의 이름들은 규칙 이름에 대응되는 테이블(65)의 행에서 바이너리 포맷의 포인터로 각각 대체된다. 신택틱 트리는 메모리 공간을 줄이고, 실행 속도를 증가 시키기 위해서 스스로 최적화된다.
테이블(61 내지 65)의 콘텐츠는 액션 데이터베이스(6) 내에 선재(preexist)해 있을 수 있다. 유용하게는, 상기 액션 데이터베이스(6)는 시스템의 사용자가 선재한 콘텐츠에 근거하여, 그리고 선재한 콘텐츠를 넘어서, 또는 심지어 초기의 빈 콘텐츠에 이 테이블들의 콘텐츠를 채울 수 있도록 고안된 인간/기계 인터페이스(man/machine interface)와 연결된다.
상기 사용자에게 특정한 시맨틱 흐름에 대해 트리거링 되어야할 새로운 액션을 정의할 수 있게 하기 위해서, 링크 테이블의 기존 이름의 제 1 빈 목록, 또는 비어있지 않은 목록을 드롭다운 메뉴 형태로 제공하고, 그리고 새로운 링크 테이블 이름을 생성하기 위한 제 1 옵션을 추가할 수 있도록 상기 인간/기계 인터페이스가 고안될 수 있다. 상기 인간/기계 인터페이스는 사용자가 제 1 생성 옵션을 선택할 때, 상기 사용자가 윈도우에 입력하는 링크 테이블 이름을 제 1 목록에 추가하고, 그리고 액션 데이터베이스(6)에 입력된 이름에 의해 명명된 초기의 새로운 빈 링크 테이블을 생성할 수 있게끔, 제 1 윈도우를 열 수 있도록 고안된다.
상기 인간/기계 인터페이스는 제 1 목록의 링크 테이블 이름을 선택 또는 부가하고 난후에, 그 선택 또는 부가된 링크 테이블 내에서 액션들의 기존 이름들의 제 2 빈 목록, 또는 비어 있지 않은 목록을 드롭다운 메뉴 형태로 제공할 수 있도록 고안된다. 새로운 액션 이름을 생성하는 제 2 옵션은 드롭다운 메뉴 내의 제 2 목록에 추가된다. 상기 인간/기계 인터페이스는 상기 사용자가 제 2 생성 옵션을 선택할 때 제 2 윈도우를 열 수 있게하여, 상기 사용자가 윈도우에 입력하는 액션 이름을 제 2 목록에 추가할 수 있게, 그리고 입력된 상기 이름에 의해 명명된 액션을 정의하는 데이터 구조를 상기 액션 데이터베이스(6)에 생성할 수 있도록 고안된다. 상기 인간/기계 인터페이스는 사용자에 의해 정해진 우선순위에 따라, 현 링크 테이블에서 선택되거나 생성된 액션 이름을 삽입할 수 있도록 고안된다.
상기 인간/기계 인터페이스는 2 목록에 액션 이름을 선택 또는 삽입하고 난후에, 필터 테이블(64) 내에서 기존의 필터 이름들의 제 3 빈 목록, 또는 비어 있지 않은 목록을 드롭다운 메뉴 형태로 제공할 수 있도록 고안된다. 새로운 필터 이름을 생성하는 제 3 옵션이 드롭다운 메뉴 내의 제 3 목록에 추가된다. 상기 인간/기계 인터페이스는 상기 사용자가 제 3 생성 옵션을 선택할 때 제 3 윈도우를 열 수 있게, 상기 사용자가 윈도우에 입력하는 필터 이름을 제 3 목록에 입력할 수 있게, 그리고 입력된 상기 이름에 의해 명명된 필터를 정의하는 논리 조합을 테이블(64) 내의 열(69)에 생성할 수 있도록 고안된다. 상기 인간/기계 인터페이스는 링크 테이블 내에 삽입된 액션 이름과, 제 3 목록 내에 선택되거나 혹은 생성된 필터 이름을 관련 짓는다.
논리 조합을 생성할 수 있게 하기 위해서, 상기 인간/기계 인터페이스는 테이블(65)의 기존 규칙 이름들의 제 4 빈 목록, 또는 비어있지 않은 목록을 드롭다운 메뉴 형태로 제공하도록 고안될 수 있다. 논리 조합에 입력되어야 할 새로운 규칙 이름을 생성하는 제 4 옵션이 드롭다운 메뉴의 제 4 목록에 추가된다. 상기 인간/기계 인터페이스는 사용자가 제 4 생성 옵션을 선택할 때, 상기 사용자가 윈도우에 입력하는 규칙 이름을 제 4 목록에 추가하고, 그리고 테이블(65)의 열(60)에 입력된 이름에 의해 명명된 규칙을 정의하는 검증식을 생성할 수 있도록 고안된다. 제4 윈도우는 사용자로 하여금 상기 규칙이 자연적 또는 부자연적임을 명시할 수 있게 함으로써 개선될 수 있으며, 상기 자연적 또는 부자연적임의 표시는 테이블(65)의 열(39)에 저장된다. 인간/기계 인터페이스는 제4 목록에서 선택 또는 추가된 각각의 규칙 이름들을, 논리 조합의 논리 연산자의 인수(argument)로서 제공하도록 고안된다.
검증식을 생성할 수 있게 하기 위해서, 상기 인간/기계 인터페이스는 프로토콜 속성의 기존 이름들의 제 5 빈 목록 또는 비어있지 않은 목록을 드롭다운 메뉴 형태로 제공하고, 이 목록에는 상기 검증식 내에 들어올 새로운 프로토콜 속성 이름을 생성하는 제 5옵션이 제공되도록 고안될 수 있다. 상기 인간/기계 인터페이스는 상기 사용자가 제 5 생성 옵션을 선택할 때 제 5 윈도우를 열 수 있고, 상기 사용자가 상기 윈도우에 입력하는 프로토콜 속성 이름을 제 5 목록내에 추가 할 수 있도록 고안된다. 상기 인간/기계 인터페이스는 테이블(65)의 열(60)내에서, 제 5 목록 내에 선택되거나 추가된 프로토콜 속성 이름과 타입 값이 그 뒤에 오는 비교 연산자를 연관시킨다.
상기 인간/기계 인터페이스가 제 4 목록에 추가된 규칙 이름을 위해 생성된 검증식이 테이블(65) 내에 이미 존재하고 있는 규칙 이름을 위한 검사표현과 동일하다고 검출하는 경우, 상기 인간/기계 인터페이스는 각각의 규칙이 테이블(65) 내에서 하나마다 한 번만 나타나도록, 제 4 목록 내에 규칙 이름을 추가하지 않고, 이미 존재하고 있는 규칙 이름 내에 위치하며, 그리고 테이블(65)의 열(60)내에 새로운 임의의 검증식을 생성하지 않는다.
상기 인간/기계 인터페이스가 제 3 목록에 추가된 필터 이름을 위해 생성된 논리 조합이 테이블(64) 내에 이미 존재하고 있는 필터 이름을 위한 논리 조합과 동일하다고 검출하는 경우, 상기 인간/기계 인터페이스는 각각의 필터가 테이블(64) 내에서 하나마다 한 번만 나타나도록, 제 3 목록 내에 필터 이름을 추가하지 않고, 이미 존재하고 있는 필터 이름 내에 위치하며, 그리고 테이블(64)의 열(69)내에 새로운 임의의 논리 조합을 생성하지 않는다.
상기 액션 데이터베이스(6)와 연결된 상기 인간/기계 인터페이스는 상기 사용자가 디지털 통신 데이터에서 트리거링 되어야할 액션 및 액션을 트리거링 하는 데이터가 속한 시맨틱 흐름을 유연하게 정의하거나, 또는 그러한 정의를 행하는 것을 선택할 수 있게 한다. 설명되는 바와 같이, 그것은 프로토콜 속성이 이러한 데이터가 제공될 필터들을 검사하는 접속의 그것일 수 있다.
구체적으로, 도 1에 대한 참조로 설명된 시스템에서, 테이블(5)은 테이블(5)의 대응되는 행 내에 인덱스 된 현재의 접속과 관련하여 지정된 상태를 저장하도록 고안된 데이터 구조들(50, 51, 52)에 대한 포인터들을 각 행에 저장한다.
각각의 데이터 구조들(50, 51, 52)은 접속 링크 테이블(53), 필터 상태 테이블(54), 그리고 규칙 상태 테이블(55)을 포함한다. 테이블(53)의 각각의 행은 다른 링크 테이블(61, 62, 63)에도 할당되며, 여기서 여전히 트리거링 될 수 있는 액션들 간에 가장 높은 우선순위를 갖는 액션 이름이 열(49)내에 인덱스 된다. 열(49)내에 인덱스 된 각각의 액션이름은 열(48)내의 상태, 즉, 유효 또는 불확실과 관련된다. 테이블(64)의 각각의 행은 열(47)내에 인덱스 된 이름을 갖는 다른 필터들에도 할당될 수 있다. 열(47) 내에 인덱스 된 각각의 필터 이름은 열(46) 내의 상태, 즉 유효 또는 무효, 또는 불확실과 관련된다. 테이블(54)의 각각의 행은 열(45)내에 인덱스 된 이름을 갖는 규칙들에도 할당될 수 있다. 열(45)내에 인덱스 된 각각의 규칙 이름은 열(44)내의 상태, 즉 유효, 또는 무효, 또는 불확실과 관련된다.
디지털 통신 데이터 내에 검출된 새로운 접속을 위한 테이블(5)의 행 생성시, 상기 링크 테이블(53)은 각각의 링크 테이블(61, 62, 63)의 각각의 액션 이름을 열(49)내에 포함하도록, 그리고 각각의 관련 필터 이름을 열(48)내에 포함하도록, 링크 테이블(61, 62, 63)의 행들 모두를 기재한 이미지로 초기화된다. 테이블(54 및 55)은 초기에는 비어있다.
도 6에 나타난 테이블(53, 54, 55)의 구성은 접속이 진행되는 동안, 접속의 진행을 순차적으로 나타낸 것이다.
도 1을 참조로 하여 설명된 시스템은 사용될 수 있는 각각의 프로토콜을 위해 프로토콜의 속성들(40, 41, 42, 43)의 인터페이스를 포함한다. 각각의 프로토콜 속성 인터페이스는 특정 프로토콜에 할당된다. 이 특정 프로토콜을 위하여, 프로토콜 속성 인터페이스는 통신 데이터들 중에서 이 파라미터를 사용함으로써 특정 프로토콜을 나타내는 프로토콜 속성 내에 표시된 파라미터 값을 추출하도록 고안된다. 유용하게는 인간/기계 인터페이스는 프로토콜 속성 이름이 제 5 목록에 추가될 때, 그리고 파라미터 값을 복구하도록 고안된 어떠한 프로토콜 속성 인터페이스도 존재하지 않을 때, 사용자가 적절한 프로토콜 속성 인터페이스를 로드할 수 있게 고안되었다. 따라서 상기 시스템은 임의의 프로토콜 아키텍처 수정을 고려할 수 있도록 유연하게 고안될 수 있다.
한편으로는 액션 데이터베이스(6)를 사용하여 액션 및 시맨틱 흐름을 정의하고, 다른 한편으로는 프로토콜 속성 인터페이스를 사용하여 가능한 프로토콜 아키텍처를 정의하는 것은 서로 무관하게 달성될 수 있는 것이다.
필터링 엔진(1)은 도 4 및 도 5를 참조로 하여 기술되는 방법을 실행하는 것과 같은 방식으로 상기 데이터 구조들(50, 51, 52)을 읽고, 쓸 수 있도록, 그리고 프로토콜 속성 인터페이스들(40, 41, 42, 43)을 활성화할 수 있게 하기 위해서, 테이블(5) 및 액션 데이터베이스(6)를 읽을 수 있게끔 고안되었다.
상기 방법은 상기 통신 데이터가 단계(100)에서 패킷으로 전송되는 특별한 경우를 위해 기술된다. 이의 이점은 통신 데이터가 이러한 패킷을 저장하지 않고서도 패킷으로 수신될 수 있는 것과 같이 실시간으로 통신 데이터를 처리할 수 있는 기능이다. 상기 방법은 통신 데이터의 광범위한 프로세싱(배치(batch) 프로세싱), 예를 들면 매일, 단계들이 실질적으로 동일하게 남겨지는 것처럼 적용될 수 있다. 오히려 트리거링 될 액션들, 즉 방화벽 링크의 테이블의 액션들과 서비스 링크의 테이블의 액션들에 차이가 있으며, 실시간 프로세싱에 더 유용하고, 측정 링크와 압축 링크의 테이블 간의 액션에 차이가 있으며, 고정적인 프로세싱의 구조만큼이나 실시간 프로세싱의 구조 내에서 유용하다.
단계(100)에서 패킷이 필터링 엔진(1)에 도달할 때, 그것은 상기 패킷이 속하는 현재의 접속에 대응되는 테이블(5)의 행에 대한 참조를 수반한다.
패킷에 수반된 참조는 상기 필터링 엔진(1)이 단계(101)에서 현 접속과 관련된 데이터 구조들(50, 51, 52) 중 하나에 대한 포인터를 찾을 수 있게 한다. 예를 들면, 도 4에서 사용된 참조(50)는 포인팅된 데이터 구조가 데이터 구조(50)이지만 후속하는 설명은 임의의 다른 데이터 구조를 위해서도 여전히 적절한 것이다.
업데이트 단계(103)에서는, 상기 필터링 엔진(1)은 대응 규칙들 및 필터들이 현재의 통신 데이터에 대해서 재평가될 것이기 때문에, 각각 열(46) 및 열(44)에 포함된 상태가 불확실(uncertain)인 모든 행들을 테이블(54) 및 테이블(55)로부터 삭제한다.
단계(102)에서, 상기 필터링 엔진(1)은 제 1 행에서 시작하여, 테이블(53)을 매 행마다 스캐닝한다. 상기 필터링 엔진(1)은 스캐닝 된 각각의 행에 대해서, 스캐닝된 테이블(53)의 행의 열(48)에 표시된 필터 이름을 테이블(54)의 열(47)을 통하여 검색한다.
테이블(54)의 어떠한 행도 열(47) 내에 상기 필터 이름을 포함하지 않을 때, 필터링 엔진(1)은 테이블(54)에, 열(47) 내에 상기 필터 이름을 갖는 행을 추가한다. 이어서 현 접속은 열(47)내에 그 이름이 추가된 필터에 의해 결정된 시맨틱 스트림과 관련하여 분류된다. 이러한 경우에, 상기 필터링 엔진(1)은 단계(102)로 돌아 가기 전에, 상기 필터를 평가하기 위해 연속적인 단계들(104 내지 110)을 트리거링한다.
테이블(54)의 행이 열(46)내에 무효 상태(-1)를 갖는 필터 이름을 포함할 때, 상기 필터링 엔진(1)은 테이블(53)로부터, 열(48) 내에 이 필터 이름을 포함하는 행을 삭제한다. 이어서 상기 필터링 엔진(1)은 테이블(53) 내에 다음 행이 존재하는지 여부를 테스트한다. 만약 테이블(53) 내에 어떠한 다음 행도 존재하지 않는다면, 시맨틱 흐름에 따라 현 접속을 분류할 필요가 전혀 없기 때문에, 상기 필터링 엔진(1)은 도 4를 참조로 하여 나타난 과정을 마친다. 만약 테이블(53) 내에 다음 행이 존재한다면, 상기 및 하기에 나타난 바와 같은 단계(102)를 계속 실행하기 위해서 다음 행이 스캐닝 된다.
테이블(54)의 행이 열(46) 내에 불확실 상태(0)를 갖는 필터 이름을 포함할 때, 필터링 엔진(1)은 테이블(53) 내에 다음 행이 존재하는지 여부를 테스트한다. 만약 테이블(53) 내에 어떠한 다음 행도 존재하지 않는다면, 시맨틱 흐름에 따라 현 접속을 분류할 필요가 전혀 없기 때문에, 상기 필터링 엔진(1)은 도 4를 참조로 하여 나타난 과정을 마친다. 만약 테이블(53) 내에 다음 행이 존재한다면, 상기 및 하기에 나타난 바와 같은 단계(102)를 계속 실행하기 위해서 다음 행이 스캐닝 된다.
테이블(54)의 행이 열(46) 내에 유효 상태(+1)를 갖는 필터 이름을 포함할 때, 상기 필터링 엔진(1)은 현재 스캐닝 되는 행의 우선순위 보다 낮은 우선순위의 액션이름들을 열(49) 내에 포함하는 테이블(53)의 행들을 삭제한다. 이어서 상기 필터링 엔진(1)은 테이블(53) 내에 다음 행이 존재하는지 여부를 테스트한다. 만약 테이블(53) 내에 어떠한 다음 행도 존재하지 않는다면, 시맨틱 흐름에 따라 현 접속을 분류할 필요가 전혀 없기 때문에, 상기 필터링 엔진(1)은 도 4를 참조로 하여 나타난 과정을 마친다. 만약 테이블(53) 내에 다음 행이 존재한다면, 상기 및 하기에 나타난 바와 같은 단계(102)를 계속 실행하기 위해서 다음 행이 스캐닝 된다.
단계(104)에서, 상기 필터링 엔진(1)은 상기 필터를 평가하는데 요구되는 규칙들의 논리 조합(logical combination)을 열(69)에서 획득하기 위해 테이블(54)의 열(47) 내의 필터 이름과 동일한 필터 이름을 열(68) 내에 포함하는 테이블(64)의 행을 포인팅한다. 이어서, 상기 필터링 엔진(1)은 논리 조합 내에서 논리 연산자들의 인수(argument)로서 취해지는 규칙들을 위해 연속적인 단계들(105 내지 109)을 트리거링 하며, 이는 논리 조합의 모든 규칙들이 검토될 때까지, 또는 유효 또는 무효의 확정적 상태의 필터 평가(evaluation)가 획득될 때까지 반복된다.
단계(105)에서, 테이블(55)의 행에 포함되지 않은 규칙 이름에 도달할 때까지, 상기 필터링 엔진(1)은 테이블(55)을 통하여 열(45) 내에 규칙 이름들을 포함한 행들을 찾는다.
규칙 이름이 테이블(55)의 행에 포함되지 않을 때, 상기 필터링 엔진(1)은 테이블(55)에 열(45)내에 규칙 이름을 갖는 행을 추가한다. 만약 상기 규칙이 소위 부자연스러운 것(antinatural sense)인 경우에는, 이 규칙을 평가하기 위해 요구되는 데이터가 현재의 접속 내에 존재하는 것이 아니라, 피어(peer) 접속 내에 존재하는 것이므로, 상기 필터링 엔진(1)은 불확실 상태의 값(0)을 행의 열(44)에 배치한다. 만약 규칙이 자연스러운 것(natural sense)인 경우, 상기 필터링 엔진(1)은 상기 규칙을 평가하기 위해 단계(106)를 트리거링 한다.
단계(106)에서는, 관련된 검증식을 열(60)에 로드(load)하기 위해서, 테이블(55)에 추가된 행의 열(45)의 규칙 이름과 같은 규칙 이름을 열(59)에 포함하는 테이블(65)의 행을 액세스한다. 상기 필터링 엔진은 프로토콜 속성의 신택스(syntax)에 의해 지정된 프로토콜에 할당된 프로토콜 속성 인터페이스들(40, 41, 42, 43) 중 하나에 프로토콜 속성 이름을 제공한다. 이어서, 상기 프로토콜 속성 인터페이스는 현재의 통신 데이터를 통하여 프로토콜 속성의 값을 찾는다. 만약 상기 프로토콜 속성 인터페이스가 제공된 프로토콜 속성의 값을 찾는다면, 이 값을 필터링 엔진에 전송하고, 그리고 이 값을 현재의 접속에 대한 전용 레지스터에 저장한다. 만약 상기 프로토콜 속성 인터페이스가 제공된 프로토콜 속성의 값을 찾지 못한다면, 상기 값이 찾아지지 않았다는 것을 나타내는 신호를 상기 필터링 엔진(1)에 전송한다.
상기 프로토콜 속성 인터페이스가 상기 값이 찾아지지 않았다는 것을 나타내는 신호를 전송할 때, 상기 필터링 엔진은 상기 규칙이 불확실 상태에 있는 것으로 평가한다.
상기 프로토콜 속성 인터페이스가 상기 프로토콜 속성의 값을 전송할 때, 상기 필터링 엔진은 상기 전송된 값이 검증식의 조건을 만족시키는 경우에는 상기 규칙을 유효 상태로 평가하고, 그리고 만약 상기 전송된 값이 검증식을 만족시키지 못하는 경우에는 상기 규칙을 무효 상태로 평가한다.
단계(107)에서, 상기 필터링 엔진은 상기 평가된 규칙의 상태를 테이블(55)의 대응 열(44)내에 저장 한다.
상기 필터 평가 단계(108)에서, 상기 필터링 엔진(1)은 진리표들(55, 56, 57, 58)에 따라 열(69)내에 포함된 논리 조합을 열(60)에 포함된 규칙 상태에 적용한다.
단계(109)에서, 상기 필터링 엔진(1)은 상기 평가된 필터의 상태가 불확실한지와 상기 필터의 논리 조합을 위해 평가되어야할 규칙들이 남아 있는지의 여부를 평가한다.
상기 평가된 필터의 상태가 불확실하고, 상기 필터의 논리 조합을 위해 평가되어야할 규칙이 남아 있는 경우에는, 상기 필터링 엔진(1)은 단계(104)로 돌아 가서 논리 조합 내에서 평가되어야할 다음 규칙에 스스로 위치한다.
반대의 경우에는, 상기 필터링 엔진(1)은 단계(110)를 트리거링 한다.
단계(110)에서 상기 필터링 엔진(1)은 그것들의 실행을 계속하는 단계(102)로 돌아가기 전에, 평가된 필터의 상태를 테이블(54)의 열(46)내에 저장한다.
상기 필터링 엔진(1)이 도 4를 참조로 하여 도시된 프로세스를 마칠 때, 상기 필터링 엔진(1)은 특히 더욱 유용한 방식인 도 5를 참조로 하여 도시된 프로세스로 들어간다. 도 5를 참조하여 도시된 프로세스는 현재의 접속과 피어 접속을 분 류하는 시맨틱 흐름을 결정하는데 유용한 통신 데이터에서 정보 아이템들을 고려할 수 있다.
단계(110)에서, 상기 필터링 엔진은 테이블(5)에 인덱스 된 피어 접속을 찾는다. 테이블(5)은 현 접속의 데이터 구조와는 다른 데이터 구조에 대한 포인터를 피어 접속의 행에 포함하는데, 상기 포인터는 데이터 구조(52)에 대한 것임을 결정한다고 가정한다.
연속적인 단계들(114 내지 116)은 데이터 구조(52)가 테이블(55)의 열(45)내에 인덱스 된 이름을 갖는 소위 부자연스러운 각각의 규칙을 위해 트리거링 된다.
단계(114)에서, 상기 필터링 엔진(1)은 평가될 예정이거나, 혹은 재평가될 예정인 부자연스러운 규칙을 선택한다. 평가될 예정이거나, 혹은 재평가될 예정인 규칙들을 불확실 상태를 갖는 것이라고 간주하는 것은, 평가되어야할 규칙들의 수를 제한함으로써 프로세싱을 좋은 속도로 유지할 수 있게 한다. 평가될 예정이거나, 혹은 재평가될 예정인 규칙들을 부자연스러운 것이라고 간주하는 것은, 규칙의 상태를 변화시킬 수 있는 프로토콜 속성의 값의 어떠한 수정이라도 고려할 수 있게 한다.
규칙 평가 단계(115)에서, 상기 필터링 엔진은 프로토콜 속성의 신택스에 의해 지정된 프로토콜에 할당된 프로토콜 속성 인터페이스에 검증식의 프로토콜 속성 이름을 제공한다. 만약 상기 프로토콜 속성 인터페이스가 프로토콜 속성값을 반환한다면, 상기 필터링 엔진은 반환된 값에 검증식을 적용함으로써 규칙의 상태를 계산할 수 있게 된다. 만약 상기 프로토콜 속성 인터페이스가 어떠한 프로토콜 속성값이라도 반환하지 않는다면, 상기 필터링 엔진은 규칙의 상태가 변화되지 않도록 그대로 둔다.
단계(116)에서, 필터링 엔진(1)이 규칙의 상태를 데이터 구조(52)의 테이블(55)의 열(45)에 저장한다.
부자연스러운 규칙들을 평가하는 것이 하나 이상의 시맨틱 흐름에서 피어 접속의 분류를 완료하기 위해 필요한 단지 그러한 규칙들에서만 되도록 한정하기 위해서, 단계(112)가 피어 접속이 여전히 분류중인지 여부를 결정하도록 디자인되었다.
단계(112)에서, 상기 필터링 엔진은 데이터 구조(52)의 테이블(54)을 통하여 열(46)내의 상태가 불확실 상태인 필터의 이름을 찾는다. 불확실 상태를 갖는 각각의 필터 이름에 대하여, 상기 필터링 엔진은 단계(113)를 트리거링 한다. 테이블(54)을 통한 찾기가 완료되었을 때, 상기 필터링 엔진은 단계(117)를 트리거링 한다.
테이블(54)에서 결정되지 않은 상태와 관련된 이름을 갖는 필터의 선택에 대응되는 단계(113)에서, 상기 필터링 엔진은 논리 조합의 규칙들의 이름이 테이블(64)의 필터이름과 관련되어 있다고 고려하고, 부자연스러운 각각의 규칙 이름을 위해 연속적인 단계(114 내지 116)를 실행한다.
시맨틱 흐름의 접속의 구성원 자격은 시간에 따라 변화될 수 있다. 예를 들면, 이는 동일한 낮은 레벨 접속에서 다수의 종단-대-종단 접속들의 멀티플렉싱의 경우에 발생하거나, 혹은 이미지들 및 문자들에 대해 서로 다른 시맨틱 의미를 갖는 경우에, 먼저 주어진 순간에서 접속에서 이미지를 전송하고 이어서 이미지에 관련된 문자를 전송하는 경우를 들 수 있다.
본 발명을 따르는 방법의 성능은 하기 설명될 바와 같이 단계(103)의 개선으로 인해 더욱 개선될 수 있다.
업데이트 단계(103)에서, 상기 패킷이 속하는 현재의 접속을 위해 필터링 엔진(1)에 의해 이미 질의가 완료된 상기 패킷 내에 포함된 통신 데이터는 각각의 프로토콜 속성 인터페이스(40, 41, 42, 43)에 이해 탐색 된다. 상기 프로토콜 송성 인터페이스가 이미 상기 필터링 엔진과 통신했던 값을 갖는 프로토콜 속성에 대한 값의 변화를 탐지할 때, 상기 프로토콜 속성 인터페이스는 상기 값이 변화한 프로토콜 속성의 이름을 상기 필터링 엔진에 통보한다.
다음으로, 상기 필터링 엔진은 테이블(65) 내에서 이 프로토콜 속성을 사용하는 규칙 또는 규칙들, 테이블(64) 내에서 상기 규칙 또는 상기 규칙들을 사용하는 필터 또는 필터들, 그리고 이어서 링크 테이블 또는 테이블들(61, 62, 63) 내에서 결정된 필터의 이름과 관련된 이름을 갖는 각각의 액션을 결정한다.
다음으로, 결정된 각각의 액션 이름에 대해서, 상기 필터링 엔진(1)은 다음의 기준의 기능으로 테이블(53)에 행을 추가 또는 추가하지 않는다고 결정한다.
링크 테이블(예를 들면, 링크 테이블(61))의 다수의 액션들이 동시에 트리거링 될 수 있을 때, 상기 필터링 엔진은 링크 테이블(61)에 의해 정의된 순서를 따르면서도, 테이블(61) 내에 결정된 액션 이름에 대응되는 행의 사본을 테이블(53)에 삽입한다. 만약 이 행에 대한 사본이 이미 테이블(53)에 존재한다면, 상기 필터링 엔진은 필요시 필터에 새로운 평가를 지시하기 위해서 테이블(54)로부터 대응 필터 행을 삭제한다.
예를 들면 링크 테이블(62 또는 63)의 단독 액션이 트리거링 될 수 있는데, 즉, 유효 상태에서 가장 높은 순위를 갖는 액션 또는 디폴트 액션이 트리거링 될 수 있을 때에 결정된 액션이 트리거링 될 수 있는 액션보다 더 높은 우선순위를 갖는 경우에만, 상기 필터링 엔진은 상기 링크 테이블(62, 63)에 의해 정의된 순서를 따르면서도 테이블(61) 내에 결정된 액션 이름에 대응되는 행의 사본을 테이블(53) 내에 입력한다. 만약 이 행의 사본이 테이블(53) 내에 이미 존재하고 있었다면, 상기 필터링 엔진은 필요시 새로운 평가를 상기 필터에 지시하기 위해서 테이블(54) 내의 대응 필터 행을 삭제한다.
평가될 필요가 있는 모든 의미 규칙들이 자연스러운 규칙들을 위해 도 4를 참조로 하여 도시된 프로세스에서 평가가 완료되었을 때, 그리고 부자연스러운 규칙들을 위해 도 5를 참조로 하여 도시된 프로세스에서 보완적인 방식으로 평가가 완료되었을 때, 단계(117)가 실행된다.
단계(117)에서, 상기 필터링 엔진은 수신된 패킷을 액션 엔진(2)에 전송한다.
상기 액션 엔진(2)은 현재의 접속의 데이터 구조(50)의 테이블(53)을 포인팅한다. 테이블(53) 내의 액션 이름들과 관련된 필터 이름들과 테이블(54) 내의 상태들을 관련시켜, 상기 액션 엔진(2)은 트리거링 되어야 할 또는 트리거링 되지 않을 액션을 결정한다.
예를 들면, 링크 테이블의 다수 액션들이 동시에 트리거링 될 수 있을 때, 상기 액션 엔진은 테이블(54) 내의 유효 상태의 필터 이름과 테이블(53)에서 관련된 이름을 갖는 모든 액션들을 트리거링 하거나, 또는 테이블(54) 내의 유효 상태의 필터 이름과 테이블(53)에서 관련된 이름을 갖는 액션이 전혀 존재하지 않을 때, 테이블(54) 내의 불확실 상태의 필터 이름과 테이블(53)에서 관련된 이름을 갖는 모든 액션들을 트리거링 하거나, 또는 이 링크 테이블에 대한 미리 정의된 트리거링 정책에 따라 디폴트 액션을 트리거링 한다.
링크 테이블(예를 들면, 링크테이블(62, 또는 64))의 단독 액션이 트리거링 될 수 있을 때, 즉 다시 말하면 유효 상태를 갖는 높은 순위의 액션 또는 디폴트 액션이 트리거링 될 수 있을 때, 상기 액션 엔진(2)은 테이블(54) 내의 유효 상태의 필터 이름과 테이블(53)에서 관련된 이름을 갖는 액션을 트리거링 하거나, 또는 테이블(54) 내의 유효 상태의 필터 이름과 테이블(53)에서 관련된 이름을 갖는 어떠한 액션도 존재하지 않을 때에는 디폴트 액션을 트리거링 한다.
액션 엔진은 액션 데이터베이스(6)에 부여된 정의에 따라, 각각의 액션을 트리거링한다. 앞서서 보여진 바와 같이, 트리거링된 어떤 액션들은 헤더 또는 패킷 본체의 내용을 수정할 수 있다. 그 후, 액션 엔진(2)은 출력(7)으로 이동하며, 트리거링된 다양한 액션들이 패킷에 실행되게 된다.

Claims (10)

  1. 액션(action)이 예정된 동일한 시맨틱 흐름에 디지털 통신 데이터가 속할 때, 디지털 프로세싱 디바이스(1 및 2)에 의해 적어도 하나의 액션을 상기 디지털 통신 데이터에 트리거링(triggering)하기 위한 방법에 있어서,
    - 상기 디지털 프로세싱 디바이스(1 및 2)에 적어도 하나의 필터를 입력하는 단계와, 여기서 상기 필터는 상기 시맨틱 흐름에 대해 규정된 하나 이상의 프로토콜 속성들의 하나 이상의 조건들로부터 기인된 3가지의 가능한 상태들을 가지며, 여기서 상기 3가지의 가능한 상태들은, 상기 조건 또는 조건들이 만족됨을 확인하는 프로토콜 속성값에 대응되는 유효 상태(valid state)와, 상기 조건 또는 조건들이 만족되지 않음을 확인하는 프로토콜 속성값에 대응되는 무효 상태(invalid state)와, 그리고 상기 조건 또는 조건들이 만족되거나 만족되지 않음을 확인하는 프로토콜 속성값이 존재하지 않는 것에 대응되는 불확실 상태(uncertain state)를 포함하고, 여기서 각각의 프로토콜 속성은 상기 시맨틱 흐름에서 사용되는 정렬된 일련의 프로토콜 이름들 및 상기 정렬된 일련의 프로토콜 이름들 내에 이름이 표시된 프로토콜에 의해 운반된 파라미터 이름에 의해 규정되고;
    - 상기 통신 데이터가 상기 필터의 상기 불확실 상태의 원인이 되는 프로토콜 속성값이 아닌 다른 프로토콜 속성값을 제공하지 않는 한, 상기 디지털 프로세싱 디바이스(1)가 상기 통신 데이터에 상기 3가지의 가능한 상태들을 가지는 필터(three-state filter)를 적용하는 단계와;
    - 상기 필터의 상기 유효 상태가 상기 통신 데이터에 의해 제공된 프로토콜 속성값들로부터 기인된 것일 때, 상기 디지털 프로세싱 디바이스(2)가 상기 액션을 트리거링하는 단계를 포함하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링하기 위한 방법.
  2. 제 1항의 방법에 있어서, 상기 필터를 상기 통신 데이터에 적용하는 단계는,
    - 상기 디지털 프로세싱 디바이스(1)가, 상기 필터의 상태가 유효 또는 무효일 때까지 또는 모든 프로토콜 속성들이 디스패치(dispatch)될 때까지, 상기 정렬된 일련의 프로토콜 이름들 내에 표시된 프로토콜에 할당된 프로토콜 속성 인터페이스(40, 41, 42, 43)에 상기 프로토콜 속성들 중 하나를 디스패치하고,
    - 상기 프로토콜 속성 인터페이스(40, 41, 42, 43)가 상기 통신 데이터를 통해 지정된 파라미터의 값을 찾고, 만약 상기 파라미터의 값을 발견한다면 이 값을 상기 디지털 프로세싱 디바이스(1)에 전송하고,
    - 상기 디지털 프로세싱 디바이스(1)가 상기 프로토콜 속성 인터페이스(40, 41, 42, 43)에 의해 전송된 값 또는 상기 값의 부존재에 대응하는 상기 필터의 상태를 평가하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링하기 위한 방법.
  3. 제 1항 또는 제 2항에 있어서,
    상기 디지털 프로세싱 디바이스(1, 2)에 입력하기 위한 각각의 필터는, 규칙들(rule)의 논리 조합(logical combination)에 의해 제 1 테이블(64)에 정의되고, 그리고 상기 규칙들 각각은 적어도 하나의 비교 연산자를 포함하는 검증식(verification expression)에 의해 제 2 테이블(65)에 정의되며, 여기서 상기 비교 연산자의 인수(argument)는 상기 프로토콜 속성인 것을 특징으로 하는 적어도 하나의 액션을 트리거링하기 위한 방법.
  4. 제 2항에 있어서,
    상기 디지털 프로세싱 디바이스(1, 2)에 입력하기 위한 각각의 필터는, 규칙들의 논리 조합에 의해 제 1 테이블(64)에 정의되고, 상기 규칙들 각각은 적어도 하나의 비교 연산자를 포함하는 검증식에 의해 제 2 테이블(65)에 정의되며, 여기서 상기 비교 연산자의 인수는 상기 프로토콜 속성이며,
    상기 디지털 프로세싱 디바이스(1)는 상기 프로토콜 속성 인터페이스에 의해 전송된 값 또는 상기 전송된 값의 부존재에 대응되는 필터의 상태를 평가하기 위하여, 상기 논리 조합 내의 적어도 하나의 규칙의 상태를 상기 값의 전송에 따라 평가하고, 이어서 평가된 상기 규칙의 상태에 적용되는 논리 조합에 의해 주어진 상태를 평가하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링하기 위한 방법.
  5. 제 1항에 있어서,
    값의 변화에 대응하는 상기 필터의 상태 변화를 평가할 수 있게 하기 위하여, 프로토콜 속성 값의 임의의 변화를 검출하도록 상기 디지털 통신 데이터가 스캐닝(scanning) 되는 단계(103)를 포함하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링하기 위한 방법.
  6. 액션(action)이 예정된 동일한 시맨틱 흐름에 디지털 통신 데이터가 속할 때, 상기 디지털 통신 데이터에 적어도 하나의 액션을 트리거링하기 위한 컴퓨터 시스템에 있어서,
    - 필터링 엔진(1)과 액션 엔진(2)으로 구성되는 디지털 프로세싱 디바이스와;
    - 상기 필터링 엔진(1)에 적어도 하나의 필터를 입력하기 위한 액션 데이터베이스(6)와, 여기서 상기 적어도 하나의 필터는 상기 시맨틱 흐름에 대해 규정된 하나 이상의 프로토콜 속성들의 하나 이상의 조건들로부터 기인된 3가지의 가능한 상태들을 가지며,
    - 유효 상태, 무효 상태, 불확실 상태를 카테고리화 하기 위한 적어도 하나의 데이터 구조(50, 51, 52)와, 여기서 상기 유효 상태는 상기 조건 또는 조건들이 만족됨을 확인하는 프로토콜 속성값에 대응되는 상태이며, 상기 무효 상태는 상기 조건 또는 조건들이 만족되지 않음을 확인하는 프로토콜 속성값에 대응되는 상태이고, 그리고 상기 불확실 상태는 상기 조건 또는 조건들이 만족되거나 만족되지 않음을 확인하는 프로토콜 속성값이 존재하지 않는 것에 대응되는 상태이고, 여기서 각각 프로토콜 속성은, 상기 시맨틱 흐름에서 사용되는 정렬된 일련의 프로토콜 이름들 및 상기 정렬된 일련의 프로토콜 이름들 내에 이름이 표시된 프로토콜에 의해 운반된 파라미터 이름에 의해 규정되고,
    - 상기 통신 데이터가 상기 필터의 불확실 상태의 원인이 되는 프로토콜 속성값이 아닌 다른 프로토콜 속성값을 제공하지 않는 한, 상기 통신 데이터에 각각의 필요한 필터를 적용하기 위해 상기 필터링 엔진(1)에 의해 사용될 수 있는 통신 데이터를 수신하기 위한 수단(100)과; 그리고
    - 상기 유효 상태가 상기 데이터 구조(50, 51, 52)에 포함될 때, 상기 액션을 트리거링하기 위해 상기 액션 엔진(2)에 의해 사용될 수 있는 통신 데이터를 전송하기(117) 위한 수단을 포함하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템.
  7. 제 6항에 있어서,
    상기 시맨틱 흐름 내에서 사용될 수 있는 각각의 프로토콜에 할당된 프로토콜 속성 인터페이스(40, 41, 42, 43)를 포함하고, 상기 프로토콜 속성 인터페이스는 상기 필터링 엔진(1)으로부터 상기 프로토콜 속성을 수신하도록 되어있으며, 여기서 상기 프로토콜 속성은 상기 프로토콜 속성 인터페이스가 할당된 상기 프로토콜을 위해 정의되며;
    - 상기 프로토콜 속성 인터페이스(40, 41, 42, 43)는 상기 통신 데이터를 통해 지정된 파라미터의 값을 찾고, 만약 상기 파라미터의 값을 발견한다면 이 값을 상기 필터링 엔진(1)에 전송하도록 되어있고,
    - 상기 필터링 엔진(1)은 상기 프로토콜 속성 인터페이스(40, 41, 42, 43)에 의해 전송된 값 또는 상기 값의 부존재에 대응하는 상기 필터의 상태를 평가하도록 되어있는 것을 특징으로 하는 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템.
  8. 제 6항 또는 7항에 있어서,
    상기 액션 데이터베이스(6)는 제 1 테이블(64) 및 제 2 테이블(65)을 포함하고, 여기서 상기 제 1 테이블(64)은 각각의 필터를 위한 규칙들의 논리 조합을 포함하며, 상기 제 2 테이블(65)은 각각의 규칙을 위한 검증식을 포함하고, 상기 검증식은 적어도 하나의 비교 연산자를 포함하며, 상기 비교 연산자의 인수는 상기 프로토콜 속성인 것을 특징으로 하는 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템.
  9. 제 7항에 있어서,
    상기 액션 데이터베이스(6)는 각각의 필터를 위한 규칙들의 논리 조합을 포함하는 제 1 테이블(54) 및 각각의 규칙을 위한 검증식을 포함하는 제 2 테이블(65)을 포함하고, 상기 검증식은 적어도 하나의 비교 연산자를 포함하며, 상기 비교 연산자의 인수는 상기 프로토콜 속성이고,
    상기 프로토콜 속성 인터페이스에 의해 전송된 값 또는 상기 전송된 값의 부존재에 대응하는 상기 필터의 상태를 평가하기 위하여, 상기 디지털 프로세싱 디바이스는 상기 논리 조합 내의 적어도 하나의 규칙의 상태를 상기 값의 전송에 따라 평가하고, 이어서 평가된 상기 규칙의 상태에 적용되는 논리 조합에 의해 주어진 상태를 평가하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템.
  10. 제 6항에 있어서,
    상기 액션 데이터베이스(6)는 특정 필터가 관련된 다른 시맨틱 흐름을 위해 각각 설계된 다수의 액션 이름들을 갖는 적어도 하나의 제 3 테이블(61, 62, 63)을 포함하는 것을 특징으로 하는 적어도 하나의 액션을 트리거링 하기 위한 컴퓨터 시스템.
KR1020057009721A 2002-11-28 2003-11-24 디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및컴퓨터 시스템 KR100965621B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0214960A FR2848044B1 (fr) 2002-11-28 2002-11-28 Procede et systeme informatique pour declencher une action sur des donnees de communication numerique
FR02/14,960 2002-11-28

Publications (2)

Publication Number Publication Date
KR20050085208A KR20050085208A (ko) 2005-08-29
KR100965621B1 true KR100965621B1 (ko) 2010-06-23

Family

ID=32309789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057009721A KR100965621B1 (ko) 2002-11-28 2003-11-24 디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및컴퓨터 시스템

Country Status (8)

Country Link
US (1) US7596626B2 (ko)
EP (1) EP1566043B1 (ko)
JP (1) JP4429173B2 (ko)
KR (1) KR100965621B1 (ko)
CN (1) CN100593935C (ko)
AU (1) AU2003294072A1 (ko)
FR (1) FR2848044B1 (ko)
WO (1) WO2004051965A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4558571B2 (ja) * 2005-04-25 2010-10-06 株式会社エヌ・ティ・ティ・ドコモ 属性通信経路制御装置及び属性通信システム
JP2007243300A (ja) * 2006-03-06 2007-09-20 Fujitsu Ltd 帯域制御プログラム、帯域制御装置、帯域制御方法
WO2008157503A1 (en) * 2007-06-15 2008-12-24 Shell Oil Company Remote monitoring systems and methods
US8965956B2 (en) * 2007-10-09 2015-02-24 Cleversafe, Inc. Integrated client for use with a dispersed data storage network
US9577842B2 (en) * 2008-02-25 2017-02-21 Cisco Technology, Inc. Shared L2 bridging domains for L3 virtual networks
CN101577704A (zh) * 2008-05-08 2009-11-11 北京东华合创数码科技股份有限公司 一种网络应用层协议识别方法和系统
US20100058232A1 (en) * 2008-08-26 2010-03-04 Cisco Technology, Inc. Virtual network join protocol
WO2011022499A1 (en) * 2009-08-18 2011-02-24 Black Oak Partners, Llc Process and method for data assurance management by applying data assurance metrics
EP2944055A4 (en) * 2013-01-11 2016-08-17 Db Networks Inc SYSTEMS AND METHOD FOR DETECTING AND WEAKING DOWN THREATS FOR A STRUCTURED DATA STORAGE SYSTEM

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793954A (en) 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
WO2001022686A1 (en) * 1999-09-21 2001-03-29 Infineon Technologies North America Corp. Rule based ip data processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266716B1 (en) * 1998-01-26 2001-07-24 International Business Machines Corporation Method and system for controlling data acquisition over an information bus
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
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
US20030041050A1 (en) * 2001-04-16 2003-02-27 Greg Smith System and method for web-based marketing and campaign management
US7027400B2 (en) * 2001-06-26 2006-04-11 Flarion Technologies, Inc. Messages and control methods for controlling resource allocation and flow admission control in a mobile communications system
US6744729B2 (en) * 2001-08-17 2004-06-01 Interactive Sapience Corp. Intelligent fabric
US7385924B1 (en) * 2003-09-30 2008-06-10 Packeteer, Inc. Enhanced flow data records including traffic type data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793954A (en) 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
WO2001022686A1 (en) * 1999-09-21 2001-03-29 Infineon Technologies North America Corp. Rule based ip data processing

Also Published As

Publication number Publication date
WO2004051965A1 (fr) 2004-06-17
US7596626B2 (en) 2009-09-29
CN1717915A (zh) 2006-01-04
KR20050085208A (ko) 2005-08-29
FR2848044B1 (fr) 2005-04-01
EP1566043B1 (fr) 2016-04-27
EP1566043A1 (fr) 2005-08-24
JP2006508597A (ja) 2006-03-09
US20060048206A1 (en) 2006-03-02
AU2003294072A1 (en) 2004-06-23
CN100593935C (zh) 2010-03-10
JP4429173B2 (ja) 2010-03-10
FR2848044A1 (fr) 2004-06-04

Similar Documents

Publication Publication Date Title
US7003578B2 (en) Method and system for controlling a policy-based network
CN106209506B (zh) 一种虚拟化深度包检测流量分析方法及系统
US6772223B1 (en) Configurable classification interface for networking devices supporting multiple action packet handling rules
US8649395B2 (en) Protocol stack using shared memory
US6625650B2 (en) System for multi-layer broadband provisioning in computer networks
CN108833299B (zh) 一种基于可重构交换芯片架构的大规模网络数据处理方法
US6940864B2 (en) Network access traffic sorter
US7474654B2 (en) Method and system for classification of packets based on meta-rules
CA2679634C (en) A method and system for monitoring messages passed over a network
US6788648B1 (en) Method and apparatus for load balancing a distributed processing system
US9356844B2 (en) Efficient application recognition in network traffic
US7149211B2 (en) Virtual reassembly system and method of operation thereof
US6359886B1 (en) Method and apparatus for filtering and routing communications frames
US20040177139A1 (en) Method and apparatus for computing priorities between conflicting rules for network services
US7751319B2 (en) Method and processor for classifying data packet units
US6988235B2 (en) Checksum engine and a method of operation thereof
JP2006512012A (ja) 複数のネットワークサービスのためのパケットフローを管理する方法及び装置
KR100965621B1 (ko) 디지털 통신 데이터에 액션을 트리거링 하기 위한 방법 및컴퓨터 시스템
CN1973503B (zh) 流处理
US5907550A (en) Network paging gateway
CN107103058A (zh) 基于Artifact的大数据服务组合方法及复合服务组合方法
CN104753726A (zh) 一种串行数据流的审计控制方法及系统
JP4524734B2 (ja) 外部デバイス伝送システムおよびこれを採用する高速パターンプロセッサ
JP2004015504A (ja) パケット伝送装置、パケット伝送方法およびパケット伝送プログラム
CN115396363A (zh) 一种sdn网络环境下的流量分类方法及系统

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: 20130527

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140526

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160525

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170526

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180525

Year of fee payment: 9