2011-10-07 3 views
1

일부 네트워크 트래픽 (레이어 7)에서 서명 기반 검색을 수행 할 응용 프로그램을 작성하는 임무를 받았습니다. 매칭은 실시간으로 수행되며 시스템이 항상 응답 성을 유지할 수 있도록 신속하게 처리해야합니다.(빠른) 서명 기반 검색을위한 프로그래밍 라이브러리?

처음에는 정규 표현식을 서명으로 사용하고 pcre를 일치시키기 라이브러리로 사용하려고 생각했습니다. 그러나 이것은 너무 느린 것 같습니다. 매칭을 위해 수천 개의 서명이있을 것입니다.

내가 요구하고 서명 기반 콘텐츠 매칭에 많은 경험을 가지고 있지 않기 때문에 :

  1. 내가 서명과 같은 정규 표현식을 사용하여 몇 가지 빠른 라이브러리를 찾을해야 하는가?
  2. 빠른 서명 기반 검색을위한 다른 라이브러리 (무료 또는 상업용)가 있습니까?

답변

1

효율적인 RE 일치자를 만들기 위해 수락 및 승인되지 않은 상태의 유한 상태 시스템으로 컴파일합니다.

RE가 두 개 이상인 경우 쉽게 논리적으로 분리 된 형태를 만들 수 있으며, 수용 할 수없는 상태의 FSA와 RE를 수락 한 상태로 컴파일 할 수 있습니다.

따라서 수천 개의 RE를 사용하면 하나의 거대한 분리를 계산하고 해당 세트에 대한 FSA를 구축 할 수 있습니다.

대부분의 표준 렉싱 엔진 (예 : FLEX)은 토큰 당 하나의 RE를 사용하여 정확하게 이것을 수행하고 어떤 토큰인지 알려줍니다. 따라서 FLEX를 시작 장소로 사용할 수 있어야합니다.

관련 문제