KR20080017046A - 데이터 프로세싱 시스템 - Google Patents
데이터 프로세싱 시스템 Download PDFInfo
- Publication number
- KR20080017046A KR20080017046A KR1020077029632A KR20077029632A KR20080017046A KR 20080017046 A KR20080017046 A KR 20080017046A KR 1020077029632 A KR1020077029632 A KR 1020077029632A KR 20077029632 A KR20077029632 A KR 20077029632A KR 20080017046 A KR20080017046 A KR 20080017046A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- communication control
- database
- packet
- control device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
복수 개의 데이터베이스를 적절하게 운용하는 기술을 제공한다.
통신 제어 시스템(100)은, 패킷을 프로세싱하기 위한 복수 개의 통신 제어 장치(10a, 10b, 10c,...)와 복수 개의 통신 제어 장치(10)의 운용 상황을 관리하는 운용 감시 서버(100)를 포함한다. 복수 개의 통신 제어 장치(10)는 패킷의 프로세싱에 사용된 데이터베이스를 분할하고 지지한다. 통신 제어 장치(10)는 데이터베이스를 분할하고 지지하는데 필요한 수보다도 적어도 1대 많이 설치된다. 운용 감시 서버(110)는 데이터베이스를 분할하고 지지하는데 필요한 수의 통신 제어 장치(10)를 운용시킴과 동시에 적어도 1대의 통신 제어 장치(10)를 대기시킨다. 운용 감시 서버(110)는 데이터베이스를 업데이트 할때 대기중의 통신 제어 장치(10)에 운용중의 통신 제어 장치(10) 중 어떠한 통신 제어 장치(10)가 지지하고 있는 데이터베이스의 업데이트 데이터를 저장한 후에, 업데이트 전의 데이터베이스를 지지하는 통신 제어 장치(10)로부터 업데이트 후의 데이터베이스를 지지하는 통신 제어 장치(10)에 운용을 전환한다.
통신 제어, 데이터베이스, 업데이트
Description
본 발명은 데이터 프로세싱 기술에 관한 것이며, 특히 복수 개의 데이터베이스를 운용하는 기술에 관한 것이다.
인터넷의 인프라가 정비되고 휴대 전화 단말, 퍼스널 컴퓨터, VoIP(Voice over Internet Protocol) 전화 단말 등의 통신 단말이 폭넓게 보급됨으로 인해 현재 인터넷의 이용자는 폭발적으로 증가하고 있다. 이와 같은 상황 아래에서, 컴퓨터 바이러스, 해킹, 스팸 메일과 같은 보안 문제가 표면화되고 있고, 통신을 적절하게 제어하는 기술이 요구되고 있다.
인터넷을 이용하여 방대한 정보에 용이하게 접근할 수 있게 되었다. 반면에, 유해한 정보가 급격하게 증가하여 유해한 정보의 발신원에 대한 규제가 그 증가량을 따라잡지 못하는 상황이다. 누구나 안심하면서 효과적으로 인터넷을 이용하는 환경을 갖추기 위해서, 유해한 컨텐츠에 대한 접근을 적절하게 제어하는 기술이 요청된다.
예를 들면, 접근 허가 사이트의 리스트,접근 금지 사이트의 리스트, 금지어 키워드, 유용어 키워드 등의 데이터베이스를 준비하고, 인터넷을 이용하여 외부 정보에 접근할 때에 상기 데이터베이스를 참조하여 접근을 제어하는 기술이 제안되고 있다(예를 들면, 특허 문헌1 참조). [특허 문헌 1] 일본특허 공개번호 제2001-282797호 공보.
특허 문헌 1에 기재되는 것 같은 접근 제어를 실현하는 시스템에 있어서 사용자 수가 증가하는 경우 데이터베이스가 방대하게 되어 저장 가능한 용량을 초과할 가능성이 있다. 이 경우에 전체 시스템을 교체하는 것은 불필요한 비용을 필요로 하기 때문에 비효율적이다. 또한, 데이터베이스를 업데이트하는 등 운용을 정지해야만 하는 때를 대비하여 운용하기 위한 다른 시스템을 준비하는 것은, 시스템의 규모가 크면 클수록 낭비가 많고 비효율적이다.
본 발명은 이러한 상황을 감안하고 이루어진 것이고, 그 목적은 복수 개의 데이터베이스를 적절하게 운용하는 기술을 제공하는 것이다.
본 발명의 일 양상은 데이터 프로세싱 장치에 관한 것이다. 상기 데이터 프로세싱 시스템은 취득한 데이터를 프로세싱하는 데이터 프로세싱부와, 상기 데이터의 프로세싱에 사용되는 데이터베이스를 저장하기 위한 복수 개의 데이터 지지부를 구비하는 데이터 프로세싱 시스템에 있어, 상기 복수 개의 데이터 지지부는 제1 데이터베이스를 공통으로 유지함과 동시에 제2 데이터베이스를 분할하여 각각 지지하고, 상기 데이터 프로세싱 시스템은 상기 제1 데이터베이스 및 분할된 상기 제2 데이터베이스를 지지할 수 있는 상기 데이터 지지부를 적어도1개 구비한 것을 특징으로 한다.
복수 개의 데이터 지지부에 데이터베이스를 분할하고 지지시켜 그것들을 협동시키고 운용함으로써, 개별적인 데이터 지지부의 규모를 억제할 수 있기 때문에 데이터량의 증대에 수반하여 시스템의 규모를 증대시킬 때의 비용이나 인시(man-hours)를 절감할 수 있다.또한, 데이터베이스의 업데이트 등을 위해 대규모 데이터 프로세싱 장치 전체를 이중화하여 대기시킬 필요가 없고, 비교적 소규모의 데이터 지지부를 적어도 1대 여분으로 설치하고 대기시키면 되기 때문에, 시스템의 구성이 간소화되어 초기 투자나 운용 비용을 억제할 수 있다.
상기 제1 데이터베이스는, 상기 제2 데이터베이스의 어느 부분이 데이터를 프로세싱하는데 사용될 것인지를 결정하는 데이터를 저장할 수 있다. 예를 들면, 제1 데이터베이스는 사용자를 인증하기 위한 데이터를 저장하고, 제2 데이터베이스는 각 사용자를 위한 데이터 프로세싱의 정보가 저장할 수 있다.
데이터 프로세싱 시스템은 상기 복수 개의 데이터 지지부의 운용 상황을 관리하는 운용 관리부를 더 포함할 수 있다. 상기 운용 관리부는 상기 제2 데이터베이스를 분할하고 지지하는데 필요한 수의 데이터 지지부를 운용시킴과 동시에, 그 밖의 데이터 지지부를 대기시킨다. 상기 운용 관리부는 상기 데이터 지지부로 유지되는 데이터베이스를 업데이트할 때에 대기중의 데이터 지지부에 운용 중의 데이터 지지부 중 한쪽의 데이터 지지부가 지지하고 있는 데이터베이스의 업데이트 데이터를 저장한 후, 업데이트 전의 데이터베이스를 지지하는 상기 데이터 지지부로부터 업데이트 후의 데이터베이스를 지지하는 상기 데이터 지지부에 운용을 전환할 수 있다. 따라서, 운용을 정지함이 없이 데이터베이스는 업데이트 될 수 있다.
상기 운용 관리부는, 운용중의 데이터 지지부가 운용 불가능한 상태에 있음을 감지할 때에, 상기 데이터 지지부가 지지하고 있던 데이터베이스를 대기중의 데이터 지지부에 유지시켜, 대기중의 데이터 지지부에 운용을 전환할 수 있다. 따라서, 어떠한 데이터 지지부가 고장 등에 의하여 정지한 경우라도 적절하게 운용을 계속할 수 있다.
상기 대기중의 데이터 지지부는 상기 제1 데이터베이스가 미리 저장할 수 있다. 공통으로 사용되고, 데이터를 프로세싱하는데 사용되는 제2 데이터베이스의 부분을 결정하는 데이터를 포함하는 제1 데이터베이스를 상기 데이터 지지부에 저장하면, 어떠한 데이터 지지부가 운용 불가능한 상태에 있을 때, 즉시 대기중의 데이터 지지부에 운용을 전환할 수 있다.
상기 데이터 프로세싱부는 상기 복수 개의 데이터 지지부의 각각에 대응하도록 설치될 수 있다. 상기 데이터 프로세싱 시스템은, 취득한 데이터를 상기 복수 개의 데이터 프로세싱부에 동시에 공급하는 데이터 공급부를 더 포함할 수 있다. 이것에 의해, 데이터 지지부를 추가하여도 또는 데이터베이스의 업데이트에 의하여 각각의 데이터 지지부가 지지하는 데이터베이스의 내용이 변하여도, 적절하게 데이터 프로세싱부에 의하여 데이터를 프로세싱할 수 있다.
상기 데이터 공급부는, 취득한 데이터를 프로세싱하지 않고 본래의 형태로 상기 복수 개의 데이터 프로세싱부에 동시에 공급할 수 있다. 결과적으로, 데이터 공급부는 데이터를 프로세싱할 필요가 없고, 따라서 데이터 프로세싱 속도를 향상시킬 수 있다.
상기 데이터 공급부로부터 데이터를 취득할 때, 상기 복수 개의 데이터 프로세싱부는 대응하는 상기 데이터 지지부가 지지하는 데이터베이스를 참조하고, 자신이 프로세싱해야 할 데이터인지 아닌지를 판정할 수 있다. 따라서, 프로세싱해야 할 데이터 프로세싱부에 적절하게 데이터를 프로세싱할 수 있다.
상기 데이터 프로세싱부는, 패킷을 취득하고 통신을 제어하는 통신 제어 장치이고, 상기 데이터 공급부로부터 패킷을 취득할 때 데이터 프로세싱부 자체로 보내지는 패킷인지를 판정하지 않고 패킷을 취득하며, 대응하는 상기 데이터 지지부가 지지하는 데이터베이스를 참조하고 자신이 프로세싱해야 할 패킷인지를 판정할 수 있다. 결과적으로, 데이터 프로세싱부는 MAC 어드레스 또는 IP 어드레스를 체크할 필요가 없고, 따라서 패킷의 프로세싱 속도를 향상시킬 수 있다.
상기 통신 제어 장치는, 상기 패킷의 헤더 부에 저장된 정보가 아니라 데이터 부에 저장된 정보를 이용하여 자신이 프로세싱해야 할 패킷인지를 판정할 수 있다. 상기 통신 제어 장치는, 대응하는 상기 데이터 지지부가 지지하는 제1 데이터베이스를 참조하여 자신이 프로세싱해야 할 패킷인지를 판정할 수 있다.
자신이 프로세싱해야 할 패킷이라고 판정한 데이터 프로세싱부는 그 패킷을 프로세싱하고, 자신이 프로세싱해야 할 패킷이 아니라고 판정한 데이터 프로세싱부는 그 패킷을 파기할 수 있다.
상기 데이터 공급부는, 브로드캐스트 패킷으로 변환하지 않고, 유니캐스트로서 취득한 패킷을 복수 개의 통신 제어 장치에 동시에 공급할 수 있다. 결과적으로, 데이터 공급부가 패킷을 브로드캐스트에 변환하기 위해 헤더를 가공하는 등의 프로세싱을 줄이고, 따라서 패킷의 프로세싱 속도를 향상시킬 수 있다.
또한, 이상의 구성 요소를 임의로 조합하여, 본 발명의 표현을 방법, 장치, 시스템, 기록 매체, 컴퓨터 프로그램 등으로 변환하는 것도, 본 발명의 양상으로서 유효하다.
도 1은 전제 기술에 따른 통신 제어 시스템의 구성을 나타내는 도면이다.
도 2는 종래의 통신 제어 장치의 구성을 나타내는 도면이다.
도 3은 전제 기술에 따른 통신 제어 장치의 구성을 나타내는 도면이다.
도 4는 패킷 프로세싱 회로의 내부 구성을 나타내는 도면이다.
도 5는 위치 검출 회로의 내부 구성을 나타내는 도면이다.
도 6은 제1 데이터베이스의 내부 데이터의 예를 나타내는 도면이다.
도 7은 제1 데이터베이스의 내부 데이터의 다른 예를 나타내는 도면이다.
도 8은 제1 데이터베이스의 내부 데이터의 또 다른 예를 나타내는 도면이다.
도 9는 이진 탐색 회로에 포함된 비교 회로의 구성을 나타내는 도면이다.
도 10은 제2 데이터베이스의 내부 데이터의 예를 나타내는 도면이다.
도 11은 제2 데이터베이스의 내부 데이터의 다른 예를 나타내는 도면이다.
도 12는 URL 필터링을 위한 패킷 프로세싱 회로의 내부 구성을 나타내는 도면이다.
도 13a는 바이러스 리스트의 내부 데이터의 예를 나타내는 도면이고, 도 13b는 화이트 리스트의 내부 데이터의 예를 나타내는 도면이고, 도 13c 블랙 리스트의 내부 데이터의 예를 나타내는 도면이다.
도 14는 공통 카테고리 리스트의 내부 데이터의 예를 나타내는 도면이다.
도 15a,b,c 및 d는 제2 데이터베이스의 내부 데이터의 예를 나타내는 도면이다.
도 16은 바이러스 리스트,화이트 리스트,블랙 리스트,및 공통 카테고리 리스트의 우선도를 나타내는 도면이다.
도 17은 본 발명의 실시예에 따른 통신 제어 시스템의 구성을 나타내는 도면이다.
도 18은 본 발명의 실시예에 따른 통신 제어 장치의 구성을 나타내는 도면이다.
도 19는 운용 감시 서버에 설치된 관리 테이블의 내부 데이터의 예를 나타내는 도면이다.
도 20은 통신 제어 장치가 고장 났을 경우의 운용 방법을 설명하기 위한 도면이다.
도 21a,b 및 c는 통신 제어 장치의 데이터베이스를 업데이트하는 방법을 설명하기 위한 도면이다.
도 22는 복수 개의 통신 제어 장치에 의하여 패킷을 프로세싱하기 위해 설치된 통신 경로 제어 장치의 구성을 나타내는 도면이다.
[부호의 설명]
10 : 통신 제어 장치 20 : 패킷 프로세싱 회로
30 : 탐색 회로 32 : 위치 검출 회로
33 : 비교 회로 34 : 인덱스 회로
35 : 비교 회로 36 : 이진 탐색 회로
40 : 프로세싱 실행 회로 50 : 제1 데이터베이스
57 : 사용자 데이터베이스 60 : 제2 데이터베이스
100 : 통신 제어 시스템 110 : 운용 감시 서버
111 : 관리 테이블 120 : 접속 관리 서버
130 : 메시지 출력 서버 140 : 로그 관리 서버
150 : 데이터베이스 서버 160 : URL 데이터베이스
161 : 바이러스 리스트 162 : 화이트 리스트
163 : 블랙 리스트 164 : 공통 카테고리 리스트
200 : 통신 경로 제어 장치 210 : 스위치
220 : 광 스플리터 230 : 스위치
(전제 기술)
먼저, 전제 기술으로서, 데이터 프로세싱 장치의 일례인 통신 제어 장치 및 그 주변 장치의 구성 및 동작의 개요에 관하여 설명하고, 통신 제어 장치를 이용하는 URL 필터링 기술에 관하여 설명한 후, 실시의 형태로서 복수 개의 통신 제어 장치를 운용하는 기술에 관하여 설명하도록 한다.
도 1은 전제 기술에 따른 통신 제어 시스템의 구성을 나타낸다. 통신 제어 시스템(100)은 통신 제어 장치(10) 및 통신 제어 장치(10)의 동작을 지원하기 위해 설치되는 각종 주변 장치를 포함한다. 전제 기술의 통신 제어 장치(10)는 인터넷 서비스 제공자 등에 의하여 제공되는 URL 필터링 기능을 실현한다. 네트워크의 경로에 설치된 통신 제어 장치(10)는, 컨텐츠에 대한 접근 요청을 취득하고 컨텐츠를 해석하며 컨텐츠에 대한 접근의 허부를 판단한다. 컨텐츠에 대한 접근이 허가된 경우에 통신 제어 장치(10)는, 컨텐츠를 지지하는 서버에 상기 접근 요청을 송출한다. 컨텐츠에 대한 접근이 금지된 경우에, 통신 제어 장치(10)는 접근 요청을 파기하고, 요청원에 대해 경고 메시지 등을 회신한다. 전제 기술에 따른 통신 제어 장치(10)는 HTTP(HyperText Transfer Protocol)의 「GET」요청 메시지 등의 접근 요청을 수신하고, 접근할 컨텐츠의 URL이 접근의 허부를 판단하기 위한 기준 데이터의 리스트에 일치하는지를 요청하여 컨텐츠에 대한 접근의 허부를 판단한다.
주변 장치는 운용 감시 서버(110), 접속 관리 서버(120), 메시지 출력 서버(130), 로그 관리 서버(140),및 데이터베이스 서버(150)를 포함한다. 접속 관리 서버(120)는 통신 제어 장치(10)에 대한 접속을 관리한다. 접속 관리 서버(120)는,예컨대 휴대 전화 단말로부터 송출되는 패킷을 통신 제어 장치(10)로 프로세싱할 때에, 패킷에 포함된 휴대 전화 단말을 식별하는 정보를 이용하여 통신 제어 장치(10)의 사용자인 것을 인증한다. 일단 인증되면, 그 휴대 전화 단말에 일시적으로 부착된 IP 어드레스로부터 송출된 패킷은, 일정한 기간 동안은 접속 관리 서버(120)로 인증하지 않고 통신 제어 장치(10)에 보내지고 프로세싱된다. 메시지 출력 서버(130)는 통신 제어 장치(10)에 의해 판정된 접근의 허부의 결과에 따라, 접근의 요청선 또는 요청원에 대한 메시지를 출력한다. 로그 관리 서버(140)는 통신 제어 장치(10)의 운용 이력을 관리한다. 데이터베이스 서버(150)는 URL 데이터베이스(160)로부터 최신의 데이터베이스를 취득하고 통신 제어 장치(10)에 입력한다. 통신 제어 장치(10)의 운용을 고정하지 않고 데이터베이스를 업데이트하기 위해서, 통신 제어 장치(10)는 백업용의 데이터베이스를 포함할 수 있다. 운용 감시 서버(110)는, 통신 제어 장치(10), 접속 관리 서버(120), 메시지 출력 서버(130), 로그 관리 서버(140), 데이터베이스 서버(150) 등의 주변 장치의 운용 상황을 감시한다. 운용 감시 서버(110)는 통신 제어 시스템(100) 가운데에서 가장 우선도가 높고, 통신 제어 장치(10) 및 모든 주변 장치의 감시 제어를 수행한다. 통신 제어 장치(10)는, 후술할 바와 같이, 전용의 하드웨어 회로에 의하여 구성되지만, 운용 감시 서버(110)는 본 출원인에 의한 특허 제3041340호 등의 기술을 이용하여 바운더리 스캔 회로를 이용하고 감시를 위한 데이터를 통신 제어 장치(10) 등과의 사이에서 입출력함으로써, 통신 제어 장치(10)의 운용중에도 운용 상황을 감시할 수 있다.
전제 기술에 따른 통신 제어 시스템(100)은, 이하 설명한 바와 같이, 고속화를 위해 전용의 하드웨어 회로에 의하여 구성된 통신 제어 장치(10)를 주변에 접속된 각종의 기능을 갖는 서버군에 의하여 제어하는 구성으로 하고 서버군의 소프트웨어를 적당하게 교체함으로써, 동일한 구성에 의하여 각종 기능을 실현할 수 있다. 전제 기술에 따르면, 이와 같은 유연성이 높은 통신 제어 시스템을 제공할 수 있다.
도 2는 종래의 통신 제어 장치(1)의 구성을 나타낸다. 종래의 통신 제어 장 치(1)는 수신 측의 통신 제어부(2)와, 패킷 프로세싱부(3)와, 송출 측의 통신 제어부(4)를 구비한다. 통신 제어부(2, 4)는 각각 패킷의 물리 층의 프로세싱을 수행하는 PHY 프로세싱부(5a, 5b)와, 패킷의 MAC 층의 프로세싱을 수행하는 MAC 프로세싱부(6a, 6b)를 구비한다. 패킷 프로세싱부(3)는 IP(Internet Protocol)의 프로토콜 프로세싱을 수행하는 IP 프로세싱부(7), TCP(Transport Control Protocol)의 프로토콜 프로세싱을 수행하는 TCP 프로세싱부(8) 등 프로토콜에 따른 프로세싱을 수행한 프로토콜 프로세싱부와, 어플리케이션 층의 프로세싱을 수행하는 AP 프로세싱부(9)를 구비한다. AP 프로세싱부(9)는 패킷에 포함된 데이터에 따라 필터링 등의 프로세싱을 실행한다.
종래 통신 제어 장치(1)의 패킷 프로세싱부(3)는 범용 프로세서, CPU, 또는CPU에서 운영되는 OS를 이용하는 소프트웨어에 의하여 수행된다. 하지만, 상기의 구성에서는, 통신 제어 장치(1)의 성능이 CPU의 성능에 의존하여, 고속으로 대용량의 패킷을 프로세싱 가능토록 하는 통신 제어 장치를 실현하려고 하여도 한계가 있다.예컨대 64 비트의 CPU 라면 한번에 동시에 프로세싱 가능한 데이터량은 최대로 64 비트이고, 그 이상의 성능을 갖는 통신 제어 장치는 존재하지 않는다.또한, 범용적인 기능을 갖는 OS의 존재를 전제로 하고 있기 때문에, 보안 홀(security holes) 등이 존재할 가능성이 전혀 없지 않다. OS의 업그레이드 등의 유지 작업을 필요로 하고 있다.
도 3은 전제 기술에 따른 통신 제어 장치의 구성을 나타낸다. 통신 제어 장치(10)는 도 2에 도시된 종래의 통신 제어 장치(1)에 있어서 CPU 및 OS를 포함하는 소프트웨어에 의해 수행되는 패킷 프로세싱부(3)를 대신하여, 유선 로직 회로에 의한 전용의 하드웨어로 구성된 패킷 프로세싱 회로(20)를 구비한다.OS와 CPU와 같은 범용 프로세싱 회로에서 운용하는 소프트웨어에 의해 통신 데이터를 프로세싱하지 않고, 통신 데이터를 프로세스 하기 위한 전용의 하드웨어 회로를 설치함으로써, CPU나 OS 등에 기인한 성능의 한계를 극복하고 프로세싱 능력이 높은 통신 제어 장치를 실현하는 것이 가능하다.
예를 들면, 패킷 필터링 등을 수행하기 위해 패킷에 포함된 데이터에 필터링의 판단 기준인 기준 데이터가 포함되었는지를 탐색하는 경우에, CPU를 이용하여 상기 통신 데이터와 기준 데이터를 비교하면 한번에 64 비트 밖에 비교할 수 없고, 프로세싱 속도를 향상시키려 하여도 CPU의 성능으로 인해 한계가 있는 문제점이 있다. CPU는 64 비트의 통신 데이터를 메모리에 로딩하고 그것을 기준 데이터와 비교하는 프로세스를 반복할 필요가 있기 때문에, 메모리 로드 시간은 프로세싱 속도를 제한하는 방해물이 된다.
그것에 대해서, 전제 기술에서는 통신 데이터와 기준 데이터를 비교하기 위해서, 유선 로직 회로에 의해 구성된 전용의 하드웨어 회로가 제공된다. 이 회로는 64 비트보다도 긴 데이터 길이, 예컨대 1024 비트의 데이터 길이 비교를 가능하게 하기 위해 병렬로 설치된 복수 개의 비교기를 포함한다. 이와 같이 전용의 하드웨어를 설치함으로써, 다수의 비트 매칭을 동시에 수행할 수 있다. 종래의 CPU를 이용하는 통신 제어 장치(1)로는 한번에 64 비트 밖에 프로세스할 수 없었던 것을 한번에 1024 비트의 프로세스를 가능하게 함으로써, 비약적으로 프로세싱 속도를 향 상시킬 수 있다. 상기 비교기의 수를 증가시키면 프로세스 능력도 향상되지만, 비용이나 사이즈도 증가하기 때문에, 원하는 프로세싱 성능과 비용, 사이즈 등을 고려하여 최적의 하드웨어 회로를 설계할 수 있다. 전용의 하드웨어 회로는 FPGA 등(Field Programmable Gate Array)을 이용하여 실현될 수 있다.
또한, 전제 기술에 따른 통신 제어 장치(10)는 유선 로직 회로에 의한 전용의 하드웨어로 구성되기 때문에, OS(Operating System)를 필요로 하지 않는다. 이 때문에 OS 설치, 버그 대응, 버젼 업데이트 등의 작업이 필요 없고, 관리나 유지를 위한 비용이나 인시(man-hours)를 절감할 수 있다. 또한, 범용적인 기능이 요청되는 CPU와는 달리 불필요한 기능을 포함하고 있지 않기 때문에, 쓸데없는 리소스를 이용하지 않고 저비용화, 회로 면적의 절감, 프로세싱 속도의 향상 등을 바랄 수 있다. 또한, OS를 이용하는 종래의 통신 제어 장치와는 달리, 여분의 기능을 갖지 않기 때문에 보안 홀 등이 발생할 가능성이 낮고, 네트워크를 이용하는 악의 있는 제 삼자로부터의 공격에 대한 내성이 뛰어나다.
도 4는 패킷 프로세싱 회로의 내부 구성을 나타낸다. 패킷 프로세싱 회로(20)는, 통신 데이터에 대하여 수행되는 프로세싱을 결정하기 위한 기준이 되는 기준 데이터를 저장하는 제1 데이터베이스(50)와, 통신 데이터와 기준 데이터를 비교함으로써 수신된 통신 데이터 중에 기준 데이터가 포함되어 있는지를 탐색하는 탐색 회로(30)와, 탐색 회로(30)에 의한 탐색 결과와 통신 데이터에 대하여 수행한 프로세싱의 컨텐츠를 대응시키고 저장하는 제2 데이터베이스(60)와, 탐색 회로(30)에 의한 탐색 결과와 제2 데이터베이스(60)에 저장되는 조건에 근거하여 통신 데이 터를 프로세싱하는 프로세스 수행 회로(40)를 포함한다.
탐색 회로(30)는 통신 데이터 중에서 기준 데이터와 비교해야 할 비교 대상 데이터의 위치를 검출하는 위치 검출 회로(32)와, 제1 데이터베이스(50)에 저장되는 기준 데이터를 3개 이상의 범위로 분할할 때 비교 대상 데이터가 그러한 범위 중 어느 범위에 속하는지를 판정하는 판정 회로의 일례인 인덱스 회로(34)와, 판정된 범위 가운데에서 비교 대상 데이터와 맞는 기준 데이터를 탐색하는 이진 탐색 회로(36)를 포함한다. 비교 대상 데이터를 기준 데이터 중에서 탐색한 방법은 임의의 탐색 기술이 이용 가능하지만, 전제 기술에서는 이진 탐색 방법을 이용한다.
도 5는 위치 검출 회로의 내부 구성을 나타낸다. 위치 검출 회로(32)는 비교 대상 데이터의 위치를 특정하기 위한 위치 특정 데이터와 통신 데이터를 비교하기 위한 복수 개의 비교 회로(33a ~ 33f)를 포함한다.도면에서는 6개의 비교 회로(33a ~ 33f)가 도시되었지만, 후술하는 바와 같이 비교 회로의 개수는 임의적일 수 있다. 각각의 비교 회로(33a ~ 33f)에는 통신 데이터가 소정의 데이터 길이, 예컨대 1 바이트씩 이동되어 입력된다. 그리고, 상기 복수 개의 비교 회로(33a ~ 33f)에 있어, 검출해야 할 위치 특정 데이터와 통신 데이터와의 비교가 동시에 이루어진다.
기본 기술에 있어서는 통신 제어 장치(10)의 동작을 설명하기 위한 예로서, 통신 데이터에 포함된「No. ###」 문자열을 검출하고,그 문자열 중에 포함된 숫자「###」를 기준 데이터와 비교하여 기준 데이터에 일치한 경우는 패킷의 통과를 허가하고, 일치하지 않는 경우는 패킷을 파기하는 프로세스를 수행하는 경우 에 관하여 설명한다.
도 5의 예에서, 통신 데이터에서 숫자「###」의 위치를 특정하기 위한 위치 특정 데이터「No.」를 검출하기 위해서 통신 데이터「01No. 361···」를 1 문자씩 이동시키며 비교 회로(33a∼33f)에 입력하고 있다.즉, 비교 회로(33a)에는 「01N」이, 비교 회로(33b)에는 「1No」가 , 비교 회로(33c)에는 「No.」가, 비교 회로(33d)에는 「o. 」가, 비교 회로(33e)에는 「. 3」이, 비교 회로(33f)에는 「 3 6」이 각각 입력된다. 다음으로, 비교 회로(33a∼33f)가 위치 특정 데이터「No.」비교를 동시에 수행한다.결과적으로, 비교 회로(33c)와 매치되고, 이는 통신 데이터의 선두로부터 세 번째 문자에 존재하는 「No.」문자열을 가리킨다. 따라서, 위치 검출 회로(32)에 의하여 검출된 위치 특정 데이터「No.」 다음에 존재하는 비교 대상 데이터로서 수적 데이터가 결정된다.
CPU에 의하여 동일한 프로세싱이 수행될 때, 문자열「01N」을 「No.」와 비교하고 나서 계속해서 문자열「1No」를 「No.」와 비교하는 것과 같이,선두로부터 순서로 1개씩 비교 프로세스를 수행할 필요가 있기 때문에 검출 속도의 향상을 바랄 수 없다. 대조적으로, 기본 기술의 통신 제어 장치(10)는, 복수 개의 비교 회로(33a∼33f)를 병렬로 설치하여 CPU로 수행되지 않았던 동시적인 병렬적 비교 프로세싱이 가능해지고, 프로세싱 속도를 현격하게 향상시킬 수 있다. 비교 회로는 많으면 많을수록 동시에 비교 가능한 문자가 많아지기 때문에, 검출 속도를 향상시킬 것이다. 비용 또는 크기를 고려하여 원하는 검출 속도를 얻을 수 있도록 충분한 수의 비교 회로를 설치할 수 있다.
위치 검출 회로(32)는 위치 특정 데이터를 검출하기 위해서뿐만 아니라, 범용적으로 문자열을 검출하는 회로로 이용될 수 있다. 또한, 단지 문자 열로서가 아닌 비트 단위로 위치 특정 데이터를 검출하도록 구성될 수 있다.
도 6은 제1 데이터베이스의 내부 데이터의 예를 나타낸다. 제1 데이터베이스(50)는 필터링, 루팅, 스위칭, 치환과 같은 패킷의 프로세싱을 결정하기 위한 기준이 되는 기준 데이터를 저장한다. 기준 데이터는 몇몇 분류 조건에 따라 분류된다. 도 6의 예에서는, 1000개의 기준 데이터가 저장된다.
제1 데이터베이스(50)의 선두의 레코드에는, 통신 데이터에 있는 비교 대상 데이터의 위치를 나타내는 오프셋(51)을 포함한다. 예를 들면, TCP 패킷에 있어서는, 패킷 안의 데이터 구성이 비트 단위로 정해져 있다. 그러므로 패킷의 프로세싱을 결정하기 위한 플래그 정보 등의 위치를 오프셋(51)으로서 설정해 두면,필요한 비트만을 비교하고 프로세싱을 결정할 수 있기 때문에, 프로세싱 효율을 향상시킬 수 있다. 또한, 패킷의 데이터 구성이 변경될지라도 오프셋(51)에 따라 변경시킴으로써 어드레스를 지정할 수 있다. 제1 데이터베이스(50)는 비교 대상 데이터의 데이터 길이를 저장할 수 있다. 이러한 경우, 필요한 비교기만을 동작시켜 비교를 수행할 수 있기 때문에 탐색 효율을 향상시킬 수 있다.
인덱스 회로(34)는 제1 데이터베이스(50)에 저장되어 있는 기준 데이터를 3개 이상의 범위(52a∼52d)에 분할할 때, 비교 대상 데이터가 그러한 범위 중 어느 쪽에 속하는지를 판정한다. 도 6 예에서는, 1000의 기준 데이터가 250씩 4개의 범위(52a∼52d)에 분할된다. 인덱스 회로(34)는 범위 경계의 기준 데이터와 비교 대 상 데이터를 비교하는 복수 개의 비교 회로(35a∼35c)를 포함한다. 비교 회로(35a∼35c)에 의하여 비교 대상 데이터와 경계의 기준 데이터를 동시에 병렬시키고 비교함으로써, 비교 대상 데이터가 어느 범위에 속하는지를 단일의 비교 프로세싱 운용으로 판정할 수 있다.
전술한 바와 같이, CPU에 의해 이진 탐색을 수행하는 경우는 동시에 복수 개의 비교를 수행할 수 없지만, 기본 기술의 통신 제어 장치(10)는 복수 개의 비교 회로(35a∼35c)를 병렬로 설치함으로써 동시에 병렬적인 비교 프로세싱을 가능하게 하고 탐색 속도를 현격하게 향상시킬 수 있다.
인덱스 회로(34)에 의해서 범위가 판정되면 이진 탐색 회로(36)가 이진 탐색 법에 의하여 탐색을 수행한다. 이진 탐색 회로(36)는 인덱스 회로(34)에 의하여 판정된 범위를 추가적으로 2 분할하고 그 경계 위치에 있는 기준 데이터와 비교 대상 데이터를 비교함으로써 어느 범위에 속하는지를 판정한다. 이진 탐색 회로(36)는, 기준 데이터와 비교 대상 데이터를 비트 단위로 비교하는 비교 회로를 복수 개,예를 들면 기본 기술에서는 1024개를 포함하고 1024 비트의 비트 매칭을 동시에 수행한다. 또한, 2 분할된 범위의 어느 쪽에 속하는지가 판정되면, 그 범위를 2 분할하고 경계 위치에 있는 기준 데이터를 해독하여 비교 대상 데이터와 비교한다. 이후, 이 프로세스를 반복함으로써 범위를 더욱 한정하여 최종적으로 비교 대상 데이터와 맞는 기준 데이터를 탐색한다.
전술한 예를 이용하여 상세히 동작을 설명한다. 도 5에 도시된 통신 데이터에 있어서, 위치 특정 데이터「No.」에 뒤따라 비교 대상 데이터인 「361」숫자가 있다. 위치 특정 데이터「No.」및 비교 대상 데이터「361」 사이에는 1 문자의 공간이 존재하기 때문에, 이 공간을 비교 대상 데이터로부터 제외하기 위해서 오프셋(51)이 「8」비트에 설정된다. 따라서, 이진 탐색 회로(36)는 위치 특정 데이터「No.」에 뒤따르는 통신 데이터로부터 「8」비트, 즉 1바이트 부분을 넘기고 뒤따르는「361」 을 비교 대상 데이터로서 읽는다.
인덱스 회로(34)의 비교 회로(35a∼35c)는 비교 대상 데이터로서 「361」이 입력되고, 기준 데이터로서 비교 회로(35a)에는 범위 52a와 52b 경계에 있는 기준 데이터「378」이, 비교 회로(35b)에는 범위 52b와 52c 경계에 있는 기준 데이터「704」가, 비교 회로(35c)에는 범위 52c와 52d 경계에 있는 기준 데이터「937」이 각각 입력된다.비교 회로(35a∼35c)에 의해서 동시에 비교가 행해지고, 비교 대상 데이터「361」이 범위 52a에 속한 것이 판정된다. 이후, 이진 탐색 회로(36)가 기준 데이터에 비교 대상 데이터「361」이 존재하는지 아닌지를 탐색한다.
도 7은 제1 데이터베이스의 내부 데이터의 다른 예를 나타낸다. 도 7에 나타낸 예에서, 기준 데이터의 데이터 수는 제1 데이터베이스(50)에 저장 가능한 데이터 수, 예컨대 이 경우에서는 1000개보다도 적다. 이때, 제1 데이터베이스(50)에는 최종 데이터 위치에서 시작하여 하강하는 순서로 기준 데이터가 저장된다. 그리고, 나머지 데이터에는 0이 저장된다. 데이터베이스의 로딩 방법으로서, 선두로부터 데이터를 배치하지 않고 로딩 지역의 뒤쪽으로부터 배치하여 로딩 지역 선두에 빈 곳이 생긴 경우는 모든 빈 곳을 필요하면 0으로 대체한다. 결과적으로, 데이터베이스는 항상 꽉찬 상채로 로드되어 있어, 이진 탐색 경우의 최대 시간을 일정하게 할 수 있다. 또한, 이진 탐색 회로(36)는 탐색 중에 기준 데이터로서 「0」을 읽은 때에는 비교 결과가 자명하기 때문에, 비교를 행하지 않고 범위를 특정하여 다음 비교로 이전할 수 있다. 결과적으로, 탐색 속도를 향상시킬 수 있다.
CPU에 의한 소프트웨어 프로세싱에 있어서, 제1 데이터베이스(50)에 기준 데이터를 저장할 때에 처음의 데이터 위치로부터 상승 순서로 기준 데이터가 저장된다. 나머지 데이터에는, 예를 들면 최대치가 저장되는 것이지만, 이 경우 이진 탐색에 있어,상기한 바와 같은 비교 프로세싱의 생략은 가능하지 않다. 상기한 비교 기술은 전용의 하드웨어 회로에 의하여 탐색 회로(30)를 구성함으로써 실현된다.
도 8은 제1 데이터베이스의 내부 데이터의 또한 다른 예를 나타낸다. 도 8에 나타낸 예에서는, 기준 데이터를 균등하게 3개 이상의 범위로 분할한 것이 아니고, 범위(52a)는 500개, 범위(52b)는 100개와 같이, 범위에 속하는 기준 데이터의 수가 불균일하다. 이러한 범위는, 통신 데이터에 있어서 기준 데이터의 출현 빈도의 분포에 따라 설정될 수 있다. 즉, 각각의 범위에 속한 기준 데이터의 출현 빈도의 합이 거의 동일해지도록 범위가 설정될 수 있다. 명확하게는, 탐색 효율을 향상시킬 수 있다. 인덱스 회로(34)의 비교 회로(35a∼35c)에 입력된 기준 데이터는 외부로부터 변경 가능할 수 있다. 그러한 경우에 범위를 동적으로 설정할 수 있고 탐색 효율을 최적화할 수 있다.
도 9는 이진 탐색 회로에 포함된 비교 회로의 구성을 나타낸다. 전술한 바와 같이 이진 탐색 회로(36)는 1024개의 비교 회로(36a, 36b,···)를 포함한다. 각각의 비교 회로(36a, 36b,···)에는 기준 데이터(54)와 비교 대상 데이터(56)가 1 비트씩 입력되어 대소가 비교된다. 인덱스 회로(34)의 각 비교 회로(35a∼35c)의 내부 구성도 마찬가지이다. 이와 같이, 전용의 하드웨어 회로에서 비교 프로세싱을 수행함으로써, 복수 개의 비교 회로를 병렬시켜 동작시키고 복수 개의 비트를 동시에 비교할 수 있기 때문에 비교 프로세싱을 고속화할 수 있다.
도 10은 제2 데이터베이스의 내부 데이터의 예를 나타낸다. 제2 데이터베이스(60)는 탐색 회로(30)에 의한 탐색 결과를 저장하는 탐색 결과 영역(62)과 통신 데이터에 대하여 수행하는 프로세싱 컨텐츠를 저장하는 프로세싱 컨텐츠 영역(64)을 포함하고, 탐색 결과와 프로세싱 컨텐츠를 대응시키고 지지한다.상기 데이터베이스는 탐색 결과 및 상호 관련된 프로세싱 컨텐츠를 저장한다. 도 10 예에서, 통신 데이터에 기준 데이터가 포함되어 있는 경우는 그 패킷의 통과를 허가하고, 포함되어 있지 않은 경우에 그 패킷을 파기하는 조건이 설정된다. 프로세싱 수행 회로(40)는 탐색 결과에 근거하여 제2 데이터베이스(60)로부터 프로세싱 컨텐츠를 탐색하고, 통신 데이터에 대하여 프로세싱을 수행한다. 또한, 프로세싱 수행 회로(40)는 유선 로직 회로에 의하여 실현될 수 있다.
도 11은 제2 데이터베이스의 내부 데이터의 다른 예를 나타낸다.도 11의 예에서는, 기준 데이터마다 프로세싱 컨텐츠가 설정된다. 패킷의 치환을 행한 경우 치환선의 데이터를 제2 데이터베이스(60)에 저장할 수 있다. 패킷의 루팅이나 스위칭을 행한 경우 경로에 관한 정보를 제2 데이터베이스(60)에 저장할 수 있다. 프로세싱 수행 회로(40)는 필터링, 루팅, 스위칭, 치환 등의 프로세싱을 수행하고, 이는 탐색 회로(30)에 의한 탐색 결과에 따라 제2 데이터베이스(60)에 저장된다. 도 11과 같이, 기준 데이터마다 프로세싱 컨텐츠를 설정한 경우 제1 데이터베이스(50)와 제2 데이터베이스(60)를 통합할 수 있다.
제1 데이터베이스 및 제2 데이터베이스는 외부로부터 개서 가능하게 설치된다.이러한 데이터베이스를 넣고 바꾸는 것에 의하여,동일한 통신 제어 장치(10)를 이용해서 다양한 데이터 프로세싱 또는 통신 제어를 실현할 수 있다. 또한, 탐색 대상으로 된 기준 데이터를 저장하는 데이터베이스를 2개 이상 설치하고, 다단계의 탐색 프로세싱을 수행할 수 있다. 이때, 탐색 결과와 프로세싱 컨텐츠를 대응시키고 저장한 데이터베이스를 2개 이상 설치하고, 좀더 복잡한 조건 분기를 실현할 수 있다. 이와 같이, 데이터베이스를 다수개 설치하고 다단계의 탐색을 행한 경우에 위치 검출 회로(32), 인덱스 회로(34), 이진 탐색 회로(36) 등을 복수 개 설치할 수 있다.
상기한 비교에 사용된 데이터는 동일한 압축 로직에 의하여 압축될 수 있다.비교 원래의 데이터와 비교선의 데이터가 동일한 방식으로 압축되면,통상과 동일한 비교가 가능하고, 따라서 비교시의 로딩하는 데이터량을 절감할 수 있다. 로딩하는 데이터량이 적어지면, 메모리로부터 데이터를 판독하는데 필요한 시간이 단축되기 때문에, 전체적인 프로세싱 시간도 단축할 수 있다. 또한, 비교기의 양을 감소시킴으로써, 장치의 소형화, 경량화, 저비용화에 기여할 수 있다. 비교에 사용된 데이터는 압축된 형식으로 저장될 수 있고, 메모리로부터 판독 후 비교 이전에 압축될 수도 있다.
상기한 데이터 프로세싱 장치로서 후술하는 양상들이 제공될 수 있다.
[양상 1]
취득한 데이터에 대하여 수행한 프로세싱의 컨텐츠를 결정하기 위한 기준으로 된 기준 데이터를 포함하는 제1 저장부;
상기 데이터와 상기 기준 데이터를 비교함으로써 상기 데이터에 상기 기준 데이터가 포함되어 있는지 아닌지를 탐색하는 탐색부;
상기 탐색부에 의한 탐색 결과와 상기 프로세싱의 컨텐츠를 대응시키고 저장하는 제2 저장부; 및
상기 탐색 결과에 근거하여, 상기 탐색 결과에 대응된 프로세싱을 상기 데이터에 대하여 수행하는 프로세싱부를 포함하고, 상기 탐색부는 유선 로직 회로에 의하여 구성되는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 2]
상기 양상 1의 데이터 프로세싱 장치에 있어서, 상기 유선 로직 회로는 상기 데이터와 상기 기준 데이터를 비트 단위로 비교하는 제1 비교 회로를 복수 개 포함하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 3]
상기 양상 1의 데이터 프로세싱 장치에 있어서, 상기 탐색부는 상기 데이터에서 상기 기준 데이터와 비교해야 할 비교 대상 데이터의 위치를 검출하는 위치 검출 회로를 포함하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 4]
상기 양상 3의 데이터 프로세싱 장치에 있어서, 상기 위치 검출 회로는 상기 비 교 대상 데이터의 위치를 특정하기 위한 위치 특정 데이터와 상기 데이터를 비교하는 제2 비교 회로를 복수 개 포함하고, 상기 복수 개의 제2 비교 회로에 상기 데이터를 소정의 데이터 길이씩 위치를 이동시켜 입력하고, 상기 위치 특정 데이터와 동시에 병렬적으로 비교하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 5]
상기 양상 1 혹은 양상 2의 어느 한쪽의 데이터 프로세싱 장치에 있어서, 상기 탐색부는 이진 탐색에 의하여 상기 데이터에 상기 기준 데이터가 포함되어 있는지 아닌지를 탐색하는 이진 탐색 회로를 포함하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 6]
상기 양상 5의 데이터 프로세싱 장치에 있어서,상기 제1 저장부에 저장 가능한 데이터 수보다도 상기 기준 데이터의 데이터 수의 쪽이 적은 경우에 상기 제1 저장부의 최종 데이터 위치에서 하강 순서로 상기 기준 데이터를 저장하고, 나머지 데이터에 0을 저장하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 7]
상기 양상 1로부터 양상 6의 어느 한쪽의 데이터 프로세싱 장치에 있어서, 상기 탐색부는 상기 제1 저장부에 저장된 복수 개의 기준 데이터를 3개 이상의 범위에 분할할 때, 상기 기준 데이터와 비교해야 할 비교 대상 데이터가 그러한 범위 중 어느 쪽에 속하는지를 판정하는 판정 회로를 포함하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 8]
상기 양상 7의 데이터 프로세싱 장치에 있어서, 상기 판정 회로는 상기 범위의 경계의 기준 데이터와 상기 비교 대상 데이터를 비교하는 제3 비교 회로를 복수 개 포함하고, 상기 복수 개의 제3 비교 회로에 의하여 상기 비교 대상 데이터가 상기 3개 이상의 범위에서 어느 쪽에 속하는지를 동시에 병렬적으로 판정하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 9]
상기 양상 7 또는 양상 8의 데이터 프로세싱 장치에 있어서, 상기 범위는 상기 데이터에 있어서 상기 기준 데이터의 출현 빈도의 분포에 따라 설정되는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 10]
상기 양상 1로부터 양상 9의 어느 한쪽의 데이터 프로세싱 장치에 있어서, 상기 제1 저장부는, 상기 데이터의 비교 대상 데이터의 위치를 나타내는 정보를 추가적으로 기억하고, 상기 탐색부는 상기 위치를 나타내는 정보에 근거하여 상기 비교 대상 데이터를 추출하는 것을 특징으로 하는 데이터 프로세싱 장치.
[양상 11]
상기 양상1로부터 양상 10의 어느 한쪽의 데이터 프로세싱 장치에 있어서, 상기 제1 저장부 또는 상기 제2 저장부는 외부로부터 개서 가능하게 설치되는 것을 특징으로 하는 데이터 프로세싱 장치.
다음으로, 상기한 통신 제어 장치(10)를 이용한 URL 필터링 기술에 관하여 설명한다.
도 12는URL 필터링을 위한 패킷 프로세싱 회로(20)의 내부 구성을 나타낸다. 패킷 프로세싱 회로(20)는 제1 데이터베이스(50)로서, 사용자 데이터베이스(57), 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163) 및 공통 카테고리 리스트(164)를 구비한다. 사용자 데이터베이스(57)는, 통신 제어 장치(10)를 이용하는 사용자의 정보를 저장한다. 통신 제어 장치(10)는 사용자로부터 사용자를 식별하는 정보를 제공받고, 탐색 회로(30)에 의해 제공받은 정보를 사용자 데이터베이스(57)와 매칭하여 사용자를 인증한다. 사용자를 식별하는 정보로서 TCP/IP 패킷의 IP 헤더에 저장된 소스 어드레스를 이용할 수 있고, 사용자로부터 사용자 ID 및 패스워드 등을 제공받을 수 있다. 전자의 경우 패킷 중의 소스 어드레스의 저장 위치가 정해져 있기 때문에, 탐색 회로(30)에 있어 사용자 데이터베이스(57)와 매칭할 때에, 위치 검출 회로(32)에 의하여 위치를 검출할 필요가 없고 오프셋(51)으로서 소스 어드레스의 저장 위치를 지정할 수 있다. 사용자 데이터베이스(57)에 등록된 사용자인 것이 인증되면, 컨텐츠에 대한 접근의 허부를 판단하기 위해, 컨텐츠의 URL이 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 및 공통 카테고리 리스트(164)에 조합된다.화이트 리스트(162) 및 블랙 리스트(163)는 사용자마다 제공되기 때문에, 사용자가 인증되고 사용자 ID가 특정되면, 그 사용자의 화이트 리스트(162) 및 블랙 리스트(163)가 탐색 회로(30)에 제공된다.
바이러스 리스트(161)는, 컴퓨터 바이러스를 포함하는 컨텐츠의 URL의 리스트를 저장한다. 바이러스 리스트(161)에 저장되는 URL의 컨텐츠에 대한 접근 요청 은 거부된다. 화이트 리스트(162)는 사용자마다 제공되어 접근을 허가한 컨텐츠의 URL의 리스트를 저장한다. 블랙 리스트(163)는 사용자마다 제공되어 접근을 금지한 컨텐츠의 URL의 리스트를 저장한다. 도 13a는 바이러스 리스트(161)의 내부 데이터의 예를 나타내고 도 13b는 화이트 리스트(162)의 내부 데이터의 예를 나타내고, 도 13c는 블랙 리스트(163)의 내부 데이터의 예를 나타낸다. 바이러스 리스트 (161), 화이트 리스트(162) 및 블랙 리스트(163)에는 각각 카테고리 번호 영역(165), URL 영역(166) 및 타이틀 영역(167)이 구비되어 있다. URL 영역(166)에는 접근이 허가된 또는 금지된 컨텐츠의 URL이 구비된다. 카테고리 번호 영역(165)에는 컨텐츠의 카테고리 번호가 저장된다. 타이틀 영역(167)에는 컨텐츠의 타이틀이 구비된다.
공통 카테고리 리스트(164)는 URL로 나타나는 컨텐츠를 복수 개의 카테고리로 분류하기 위한 리스트를 저장한다. 도 14는 공통 카테고리 리스트(164)의 내부 데이터의 예를 나타낸다. 공통 카테고리 리스트(164)도 카테고리 번호 영역(165), URL 영역(166) 및 타이틀 영역(167)이 포함된다.
통신 제어 장치(10)는「GET」요청 메세지 등에 포함된 URL을 추출하고 그 URL이 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 또는 공통 카테고리 리스트(164)에 포함되었는지 아닌지를 탐색 회로(30)에 의해서 탐색한다. 이때, 예를 들면 위치 검출 회로(32)에 의하여「http://」 문자열을 검출하고, 그 문자열에 뒤따르는 데이터열을 대상 데이터로서 추출할 수 있다. 추출된 URL은 인덱스 회로(34) 및 이진 탐색 회로(36)에 의해서, 바이러스 리스트(161), 화이트 리 스트(162), 블랙 리스트(163), 및 공통 카테고리 리스트(164)의 기준 데이터와 매칭된다.
도 15a, b, c 및 d는 URL 필터링을 위한 제2 데이터베이스(60)의 내부 데이터의 예를 나타낸다. 도 15a는 바이러스 리스트(161)에 대한 탐색 결과와 프로세싱 컨텐츠를 나타낸다. GET 요청 등에 포함된 URL이 바이러스 리스트(161)에 포함된 URL과 일치하는 경우, 그 URL에 대한 접근은 금지된다. 도 15b는 화이트 리스트(162)에 대한 탐색 결과와 프로세싱 컨텐츠를 나타낸다.GET 요청 등에 포함된 URL이 화이트 리스트(162) 포함된 URL과 일치하는 경우 그 URL에 대한 접근은 허가된다. 도 15c는 블랙 리스트(163)에 대한 탐색 결과와 프로세싱 컨텐츠를 나타낸다.GET 요청 등에 포함된 URL이 블랙 리스트(163)에 포함된 URL과 일치한 경우 그 URL에 대한 접근은 금지된다.
도 15d는 공통 카테고리 리스트(164)에 대한 탐색 결과와 프로세싱 컨텐츠를 나타낸다.도 15d에 도시된 바와 같이, 공통 카테고리 리스트(164)에 대한 탐색 결과에 대해서, 사용자는 카테고리마다 그 카테고리에 속한 컨텐츠에 대한 접근을 허가하는지 금지하는지를 개별적으로 설정한다. 공통 카테고리 리스트(164)에 관한 제2 데이터베이스(60)에는, 사용자 ID 영역(168) 및 카테고리 영역(169)이 포함된다. 사용자 ID 영역(168)에는 사용자를 식별하기 위한 ID가 저장된다. 카테고리 영역(169)에는 57 종으로 분류되었던 카테고리의 각각에 관하여 카테고리에 속한 컨텐츠에 대한 접근를 사용자가 허가하는지 아닌지를 나타내는 정보가 저장된다. GET 요청에 포함된 URL이 공통 카테고리 리스트(164)에 포함된 URL과 일치하는 경우, 그 URL의 카테고리와 사용자 ID에 근거하여 그 URL에 대한 접근의 허부가 판정된다. 또한 도 15d에서는 공통 카테고리의 수가 57이지만, 이에 한정되지 않는다.
도 16은 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 및 공통 카테고리 리스트(164)의 우선도를 나타낸다. 전제 기술에서, 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 공통 카테고리 리스트(164)의 순서로 우선도가 높고, 예컨대 화이트 리스트(162)에 저장된 접근이 허가된 컨텐츠의 URL로서, 그 URL이 바이러스 리스트(161)에 저장되어 있으면 컴퓨터 바이러스를 포함하는 컨텐츠라 하여 접근이 금지된다.
종래에는 소프트웨어를 이용하여 이와 같은 우선도를 고려한 매칭을 수행할 때, 예를 들면 우선도가 높은 리스트로부터 순서로 매칭을 행하고 처음에 매치한 것을 이용한다. 대안적으로, 우선도가 낮은 리스트로부터 순서로 매칭을 행하고 이전의 매치를 대체하기 위해서 최근의 매치가 이용된다. 하지만, 전제 기술에서는, 전용의 하드웨어 회로로 구성된 통신 제어 장치(10)를 이용함으로써, 바이러스 리스트(161)의 매칭을 수행하는 탐색 회로(30a)와, 화이트 리스트(162)의 매칭을 수행하는 탐색 회로(30b)와, 블랙 리스트(163)의 매칭을 수행하는 탐색 회로 (30c)와, 공통 카테고리 리스트(164)의 매칭을 수행하는 탐색 회로(30d)를 설치하고 각각의 탐색 회로(30)에 있어 동시에 병렬적으로 매칭을 수행한다. 또한 복수 개의 리스트로 매칭하는 경우에는, 우선도가 높은 것을 이용한다. 이것에 의해 복수 개의 데이터베이스가 설치되어 그것들에 우선도가 설정된 경우라도 탐색 시간을 대폭적으로 단축할 수 있다.
바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 및 공통 카테고리 리스트(164)의 어느 쪽을 우선하고 접근의 허용 여부를 판단하는가는, 예를 들면 제2 데이터베이스(60)에 제공될 수 있다. 제2 데이터베이스(60)의 조건은 리스트의 우선도에 의존하여 변경될 수 있다.
컨텐츠에 대한 접근이 허가된 경우에, 프로세싱 회로(40)는 메시지 출력 서버(130)에 그 취지를 통지하기 위한 신호를 출력한다. 메시지 출력 서버(130)는 컨텐츠를 포함하는 서버로 향하고「GET」요청 메시지를 송출한다. 컨텐츠에 대한 접근이 금지되는 경우에, 프로세싱 수행 회로(40)가 메시지 출력 서버(130)에 그 취지를 통지하기 위한 신호를 출력하면, 메시지 출력 서버(130)는 접근할 서버에 「GET」요청 메시지를 송신하지 않고 파기한다. 이때, 접근이 금지된다는 취지의 응답 메시지를 요청원에 송신할 수 있다. 또한, 강제적으로 다른 웹 페이지에 전송할 수 있다. 이 경우, 프로세싱 수행 회로(40)는 목적지 어드레스와 URL을 전송처의 것으로 개서하고 송출한다. 응답 메시지나 전송처의 URL 등의 정보는 제2 데이터베이스(60) 등에 저장될 수 있다.
이상의 구성 및 동작에 의해서 부적절한 컨텐츠로의 접근을 금지할 수 있다. 또한, 탐색 회로(30)는 FPGA등에 의해 구성된 전용의 하드웨어 회로이기 때문에, 상기한 것처럼 고속의 탐색 프로세싱이 실현되어 통신량에 주는 영향을 최소한으로 억제하면서 필터링 프로세싱을 수행할 수 있다. 인터넷 서비스 제공자등이 이와 같은 필터링 서비스를 제공함으로써, 부가 가치가 높아지고 좀더 많은 사용자를 모을수 있다.
화이트 리스트(162) 또는 블랙 리스트(163)는 모든 사용자에 대하여 공통으로 제공될 수 있다.
(실시의 형태)
계속해서, 통신 제어 시스템(100)에 있어서, 복수 개의 통신 제어 장치(10)를 설치할 때의 운용 기술에 관하여 설명한다. 예를 들면, 상술한 URL에 의한 필터링 제어를 수행하는 통신 제어 장치(10)에 있어, 데이터베이스를 저장하기 위한 RAM (Random Access Memory) 등의 기억 장치가 10만명의 사용자에 대응하는 데이터를 저장할 수 있는 용량을 갖는 것으로 가정한다. 이때, 통신 제어 시스템(10)의 사용자가 10만명을 초과하면, 종래에는 10만명 이상의 사용자 데이터가 저장 가능한 기억 장치를 설치한 통신 제어 장치(10)로 대체해야 했다. 하지만, 본 발명 실시 형태의 기술에 따르면, 복수 개의 통신 제어 장치를 설치하고 그러한 통신 제어 장치의 기억 장치에 화이트 리스트(162)나 블랙 리스트(163) 등의 데이터베이스를 분할하고 지지시켜 그것들을 협동시키고 운용함으로써, 1대의 대규모 통신 제어 장치(10)로서 기능 하는 것이 가능해진다. 따라서, 사용자 수가 통신 제어 장치(10)의 용량을 초과한 경우라도, 새롭게 통신 제어 장치를 추가함으로써 사용자의 증가에 대응할 수 있다. 이와 같이, 본 발명의 실시 형태에서는, 범용성 및 유연성이 높은 통신 제어 장치(10)의 운용 기술을 제안한다. 이 기술에 따르면, 이용자의 증대에 수반하는 시스템의 개변에 필요한 인시 및 비용을 절감할 수 있음과 동시에, 당초부터 이용자의 증대를 기대하고 대규모 시스템을 구축할 필요가 없으며, 이용자 수에 따라 적절한 수의 통신 제어 장치를 설치할 수 있기 때문에, 초기 투자도 감소시킬 수 있다.
도 17은 본 발명의 실시예에 따른 통신 제어 시스템(100)의 구성을 나타낸다. 본 발명의 실시예에 따른 통신 제어 시스템(100)은, 복수 개의 통신 제어 장치(10a, 10b, 10c, ...)가 설치되고, 그것들을 협동시켜 전제 기술로 설명한 통신 제어 장치(10)로서 기능 하도록 한다. 그 밖의 구성 및 동작은 도 1에 도시된 전제 기술에 따른 통신 제어 시스템(100)과 동일하다.
본 발명의 실시예에 따른 통신 제어 시스템(100)에서, 통신 제어 장치는 패킷의 프로세싱에 필요한 데이터베이스의 적어도 일부를 분할하고 지지하는데 필요한 수보다 적어도 1대 이상 여분으로 설치된다. 예를 들면, 상술한 예에서, 사용자 수가 30만명 이상 40만명 미만인 경우에, 운용에 필요한 통신 제어 장치의 수는 4 대이지만, 어떠한 통신 제어 장치가 고장 났을 때를 대신하여 운용시키기 위한 대기용으로서, 또는 통신 제어 장치에 포함된 데이터베이스를 업데이트할 때의 대기용으로서 1대 이상의 통신 제어 장치를 추가적으로 설치할 수 있고, 따라서 적어도 총 5대의 통신 제어 장치가 설치된다. 종래에는 내고장성을 고려하여 시스템 전체를 이중화시킬 필요가 있지만, 본 발명의 실시예에 따르면, 분할된 단위의 통신 제어 장치(10)를 여분으로 마련해 둘 수 있고, 따라서 비용을 절감할 수 있다. 상기 복수 개의 통신 제어 장치(10a, 10b, 10c, ...)의 운용 상황은 운용 감시 서버(110)에 의하여 관리된다. 본 발명의 실시예에 따른 운용 감시 서버(110)는 통신 제어 장치의 운용 상황을 관리하기 위한 관리 테이블을 갖는다.
도 18은 본 발명의 실시예에 따른 통신 제어 장치(10)의 구성을 나타낸다. 도 18에 도시된 구성에 있어서, 탐색 회로(30) 및 프로세싱 수행 회로(40)는 본 발명에 있어서 데이터 프로세싱부에 대응하고, 제1 데이터베이스(50) 및 제2 데이터베이스(60)를 지지하는 구성은 데이터 지지부에 대응한다. 도 18에 도시된 예에서, 각각의 통신 제어 장치(10a, 10b, 10c)는 데이터 지지부 및 그것에 대응하는 데이터 프로세싱부를 포함하지만, 상기 통신 제어 장치는 일체적으로 1개의 장치 내에 설치될 수 있다. 또한, 1개의 데이터 프로세싱부가 복수 개의 데이터 지지부로 유지되는 데이터베이스를 참조하고 데이터를 프로세싱할 수 있다. 또한, 데이터 지지부는 RAM 등의 기억 장치일 수 있고, 또는 기억 장치의 내부의 일부 영역일 수 있다. 또한, 복수 개의 저장 장치가 1개의 데이터 지지부로 간주될 수 있다.
통신 제어 장치(10)에 있어서, 패킷 프로세싱에 사용되는 데이터베이스 중 제1 데이터베이스(50)의 화이트 리스트(162, 도 13b) 및 블랙 리스트(163, 도13c) 및 제2 데이터베이스(60)의 각 사용자의 공통 카테고리 리스트의 접근 허부를 저장하는 것(도 15d)은, 사용자 수에 비례하여 큰 용량을 필요로 한다. 따라서, 이러한 데이터베이스를 분할하고 통신 제어 장치(10a, 10b, 10c,...)의 데이터 지지부에 유지시킨다.즉, 화이트 리스트(162)나 블랙 리스트(163)는, 본 발명에 있어서 제2의 데이터베이스에 대응한다. 바이러스 리스트(161, 도 13a) 및 공통 카테고리 리스트(164, 도 14)는 모든 사용자에 의해 공통으로 사용되고 그다지 용량이 크지 않기 때문에, 모든 통신 제어 장치(10a, 10b, 10c,...)의 데이터 지지부에 공통으로 유지시킨다.
후술할 바와 같이, 본 발명의 실시예에 따른 통신 제어 시스템(100)은, 프로 세싱해야 할 통신 패킷을 운용중의 모든 통신 제어 장치(10a, 10b, 10c,...)로 공급하고, 각각의 통신 제어 장치가 공급되는 패킷을 프로세싱하는지를 판단한다. 그 패킷의 프로세싱을 담당하는 통신 제어 장치, 즉 그 패킷을 송신하는 사용자의 데이터를 지지하는 통신 제어 장치만이 패킷을 프로세싱하고 그 밖의 통신 제어 장치는 패킷을 ㅍ기한다. 이 때문에 어느 통신 제어 장치가 패킷을 프로세싱하는데 사용되어야 하는지를 판정하기 위한 데이터를 저장하는 사용자 데이터베이스(57)는 필수적이고, 이것이 없이는 패킷을 프로세싱할 수 없다. 따라서, 사용자 데이터베이스(57)는 모든 통신 제어 장치에 공통으로 유지된다. 따라서,사용자 데이터베이스(57)는 본 발명에 있어서 주요한 데이터베이스에 대응한다.
본 발명의 실시예에서, 모든 통신 제어 장치(10a, 10b, 10c,...)로 모든 사용자의 데이터를 저장하는 사용자 데이터베이스(57)가 지지된다. 각각의 통신 제어 장치는 운용 감시 서버(110)로부터 자신이 담당해야 할 사용자의 사용자 ID의 범위를 통지받고, 사용자 데이터베이스(57) 중 통지된 범위의 사용자 ID의 데이터를 이용하여 사용자 인증을 수행하며, 수신한 패킷을 프로세싱할지를 판단한다.
도 19는 운용 감시 서버(110)에 설치된 관리 테이블(111)의 내부 데이터의 예를 나타낸다. 관리 테이블(111)은 장치 ID 영역(112), 운용 상황 영역(113), 사용자 ID 영역(114)을 포함한다. 장치 ID 영역(112)은 통신 제어 장치(10a, 10b...) 의 장치 ID가 저장되고, 운용 상황 영역(113)은 상기 통신 제어 장치의 운용 상황이 저장되며, 사용자 ID 영역(114)은 상기 통신 제어 장치가 담당해야 하는 사용자 ID의 범위가 저장된다. 운용 상황에는 예컨대, 「운용중」,「대기중」,「고장중 」,「데이터 업데이트중」등이 있다.운용 상황 영역(113)은 통신 제어 장치(10a, 10b,....)의 운용 상황이 변경될 때마다 운용 감시 서버(110)에 의하여 업데이트된다. 도 19에 도시된 예에서는, 「465183」명의 사용자가 통신 제어 시스템(100)을 이용하고 있기 때문에, 장치 ID「1」∼「5」의 5 대의 통신 제어 장치(10)가 운용되고 있고, 장치 ID「6」의 통신 제어 장치(10)는 대기중 상태로 되어 있다.
운용 감시 서버(110)는 복수 개의 통신 제어 장치(10)의 운용 상황을 감시하고, 어떠한 통신 제어 장치(10)에 문제가 발생하여 운용이 불가능한 상태가 되는 것을 감지할 때에, 대기중 상태로 되어 있는 통신 제어 장치(10)에 운용이 정지된 통신 제어 장치(10)와 동일한 데이터를 저장하고, 그 통신 제어 장치(10)에 운용을 전환한다. 예를 들면,도 20에 도시된 바와 같이, 장치 ID「2」의 통신 제어 장치(10)가 고장으로 운용을 정지한 경우에, 대기중 상태였던 장치 ID「6」의 통신 제어 장치(10)에 사용자 ID「100001∼200000」의 데이터를 저장하고 운용을 시작하도록 한다. 따라서, 어떠한 문제로 인해 통신 제어 장치(10)가 정지되는 상황에도,적절하게 운용을 계속할 수 있다. 대기중의 통신 제어 장치(10)에는 미리 임의의 데이터를 저장해 줄 수 있고, 자동 대기 상태 또는 수동 대기 상태로 할 수 있다.
본 발명의 실시예에서, 대기중의 통신 제어 장치(10)의 데이터 지지부에 미리 사용자 데이터베이스(57)를 저장한다. 따라서, 만약 통신 제어 장치(10)가 운용 불가능한 상태가 되어도, 즉시 대기중의 통신 제어 장치(10)에 운용을 전환할 수 있다. 전술한 바와 같이, 각각의 통신 제어 장치(10)는 사용자 ID를 이용하고 패킷을 프로세싱하는지를 판단하기 때문에, 만약 통신 제어 장치(10)가 운용 불가능한 상태가 되면 그 통신 제어 장치(10)가 담당하고 있던 사용자의 패킷을 수신할 때에 그 패킷을 프로세싱하는 통신 제어 장치(10)가 존재하지 않는 상태로 되어 패킷이 프로세싱되지 않는 상황이 발생한다. 이와 같은 상황을 신속하게 복구하기 위해서,대기중인 통신 제어 장치(10)의 데이터 지지부도 사용자 데이터베이스(57)를 미리 저장해 두고, 운용 감시 서버(110)는 운용 불가능으로 된 통신 제어 장치(10)가 담당하고 있던 사용자를 대기중의 통신 제어 장치(10)에 담당시키도록 사용자 ID의 범위를 통지한다. 결과적으로, 대기중의 통신 제어 장치(10)를 즉시 운용시킬 수 있고, 패킷이 프로세싱되지 않는 상황을 최소와 할 수 있다.
화이트 리스트(162) 또는 블랙 리스트(163) 등의 데이터베이스를 전부 대기중의 통신 제어 장치(10)에 나서 운용을 전환하면, 데이터베이스의 저장에 시간을 필요로 하고 패킷이 프로세싱되지 않는 상태가 장기간 계속될 가능성이 있기 때문에, 사용자 데이터베이스(57)만이 저장된 상태에서 대기중의 통신 제어 장치(10)에 운용을 전환할 수 있다. 따라서, 완전한 URL 필터링 서비스를 제공할 수는 없지만,패킷이 프로세싱되지 않는 상황은 피할 수 있다. 저장되지 않은 데이터베이스는 유지 작업시 또는 데이터베이스의 업데이트시에 저장할 수 있다. 바이러스 리스트(161) 또는 공통 카테고리 리스트(164) 등의 공통으로 사용되는 데이터베이스도,미리 대기중의 통신 제어 장치(10)에 저장될 수 있다. 따라서, 운용을 전환할 때에, 바이러스 리스트(161)에 저장된 URL에의 접근을 거부한 등의 일부의 서비스를 제공할 수 있다.
다음으로, 통신 제어 장치(10)에 포함된 데이터베이스를 업데이트하는 순서 에 대해서 설명한다.데이터베이스 서버(150)는 소정의 시간에 URL 데이터베이스(160)로부터 최신의 데이터베이스를 취득하고 지지한다. 또한, 사용자의 신규 등록이나 탈퇴에 대응하여 사용자 데이터베이스를 업데이트하고 지지한다. 운용 감시 서버(110)는 소정의 시간에 데이터베이스 서버(150)로 유지되는 최신의 데이터베이스를 통신 제어 장치(10)에 반영시키기 위해서, 데이터베이스 서버(150)로부터 통신 제어 장치(10)에 데이터를 전송하고 저장시킨다.
도 21a,b, 및 c는 데이터베이스를 업데이트하는 과정을 설명하기 위한 도면이다. 도 21a는 도 19와 마찬가지로, 장치 ID「1」∼「5」의 통신 제어 장치(10)가 운용중이고, 장치 ID「6」의 통신 제어 장치(10)가 대기중인 상황을 나타낸다.운용 감시 서버(110)는 데이터베이스를 업데이트하는 시간이 도래하면, 현재 대기중 상태인 통신 제어 장치(10)를 특정하고, 그 통신 제어 장치(10)에 대하여 데이터를 저장하도록 데이터베이스 서버(150)에 지시한다. 도 21a의 예에서, 장치 ID「6」의 통신 제어 장치(10)가 대기중이기 때문에, 이 통신 제어 장치(10)에 데이터베이스 서버(150)로부터 데이터가 저장된다. 이때,운용 감시 서버(110)는 장치 ID「6」의 운용 상황 영역(113)을 「데이터 업데이트 중」으로 변경한다.
도 21b는 통신 제어 장치(10)의 데이터베이스가 업데이트 중인 상황을 나타낸다. 데이터베이스 서버(150)는 운용중의 통신 제어 장치(10)의 어느 한쪽이 담당하는 사용자 데이터를 대기중이었던 장치 ID「6」의 통신 제어 장치(10)의 사용자 데이터베이스(57)에 저장한다. 또한, 바이러스 리스트(161), 화이트 리스트(162), 블랙 리스트(163), 공통 카테고리 리스트(164), 제2 데이터베이스(60)의 데이터도 저장한다. 도 21b의 예에서, 장치 ID「1」의 통신 제어 장치(10)가 담당하고 있는 사용자 ID「000001∼100000」의 사용자의 데이터를, 장치 ID「6」의 통신 제어 장치(10)에 저장한다.
도 21c는 장치 ID「6」의 통신 제어 장치(10)의 데이터베이스가 업데이트되어 운용이 시작되고,대신 장치 ID「1」의 통신 제어 장치(10)가 대기중인 상태인 상황을 나타낸다. 운용 감시 서버(110)는, 장치 ID「6」의 통신 제어 장치(10)에 대한 데이터의 저장이 종료되면, 업데이트된 데이터베이스를 지지하는 장치 ID「6」의 통신 제어 장치(10)의 운용을 시작하고, 업데이트 전의 데이터베이스를 지지하는 장치 ID「1」의 통신 제어 장치(10)의 운용을 정지하고 대기중 상태에 있도록 한다. 따라서, 데이터베이스가 업데이트된 통신 제어 장치(10)가 운용하게 된다. 계속하여, 장치 ID「1」의 통신 제어 장치(10)에 사용자 ID「100001∼200000」의 사용자의 데이터를 저장한 후, 장치 ID「1」의 통신 제어 장치(10)의 운용을 시작하고, 장치 ID「2」의 통신 제어 장치(10)의 운용을 정지한다. 이후에,마찬가지로 순차적으로 데이터베이스를 업데이트 함으로써, 통신 제어 시스템(100)의 운용을 정지하지 않고, 모든 통신 제어 장치(10)의 데이터베이스를 배후에서 업데이트할 수 있다.
이와 같이, 본 발명의 실시예에 따른 통신 제어 장치(10)에서는 각각의 통신 제어 장치(10)에 저장되는 데이터가 고정적이 아니고, 따라서 통신 제어 장치(10)는 시간에 따라 변화하는 특정 사용자의 데이터를 저장한다. 각 통신 제어 장치(10) 패킷을 보내기 전에, 어느 통신 제어 장치(10)에 그 사용자의 데이터가 존 재하는지를 판정하는 프로세싱을 수행하면, 그 프로세싱에 필요로 하는 시간을 추가적으로 필요로 한다. 따라서, 본 발명의 실시예에서는, 수신한 패킷을 모든 통신 제어 장치(10)에 공급하고, 각 통신 제어 장치(10)는 그 패킷을 보낸 사용자의 데이터를 지지하고 있는지를 판정하여 지지하고 있던 통신 제어 장치(10)만이 패킷을 프로세싱하고 지지하고 있지 않던 통신 제어 장치(10)는 패킷을 무시한다. 이하, 이와 같은 구조를 실현하기 위한 기술에 관하여 설명한다.
도 22는 복수 개의 통신 제어 장치(10)에 의하여 패킷을 프로세싱하기 위해 설치된 통신 경로 제어 장치의 구성을 나타낸다. 통신 경로 제어 장치(200)는, 스위치(210), 데이터 공급부의 일례인 광 스플리터(220), 및 스위치(230)를 구비한다. 스위치(210)는 수신한 패킷을 통신 제어 장치(10)에 송신한다. 여기서, 스위치(210)와 통신 제어 장치(10)의 사이에는 복수 개의 통신 제어 장치(10a, 10b, 10c)에 패킷을 동시에 공급하기 위한 광 스플리터(220)가 마련되어 있고, 스위치(210)는 실제로 광 스플리터(220)에 패킷을 송신하고, 광 스플리터(220)는 각 통신 제어 장치에 패킷을 동시에 송신한다.
복수 개의 통신 제어 장치(10a, 10b, 10c)에 패킷을 송신하기 위해서 패킷을 브로드캐스트로 변환하면, 예컨대 헤더에 타임 스탬프를 추가하는 등의 추가적인 프로세싱이 발생하고, 그 결과 프로세싱 속도가 저하된다. 그 때문에, 패킷에 변경을 가하지 않고 광 스플리터(220)에 의해 분할시키고, 유니캐스트인 채로 복수 개의 통신 제어 장치(10a, 10b, 10c)에 패킷을 송신한다. 이러한 방식을 본 명세서에서는 「패러렐 캐스트(parallelcast)」라고 부른다.
각 통신 제어 장치는, 장치의 MAC 어드레스로 향하는 패킷만을 수신하는 모드가 아니라, 수신인의 MAC 어드레스에 관계없이 모든 패킷을 수신하는 모드로 설정된다.각각의 통신 제어 장치는 광 스플리터(220)로부터 패러렐 캐스트된 패킷을 수신하면, MAC 어드레스의 매칭 프로세싱을 줄이고 모든 패킷을 일단 취득하고, 데이터 지지부로 유지되는 사용자 데이터베이스(57)를 참조하여 전제 기술로 설명한 사용자 ID의 매칭 프로세싱을 수행하고, 자신이 프로세싱해야 할 패킷인가를 판정한다. 도 22에 도시된 예에서, 패킷을 발신한 사용자의 데이터가 통신 제어 장치(10c)에 존재하고 있었기 때문에, 통신 제어 장치(10a 및 10b)는 그 패킷을 파기하고, 통신 제어 장치(10c)는 상술한 URL 필터링 프로세싱을 수행한다.
통신 제어 장치(10c)는 접근이 금지되는 경우 등 사용자 앞에 패킷을 회신하는 경우에는 광 스플리터(220)를 이용하지 않고 스위치(210)에 응답 패킷을 송신한다. 통신 제어 장치(10c)가 패킷을 프로세싱한 결과 접근이 허가되는 경우에는, 그 패킷을 내용의 요청선에 송신한다. 여기서 통신 제어 장치(10)와 상류의 통신 회선의 사이에는, 복수 개의 통신 제어 장치(10a, 10b, 10c)로부터 송출된 패킷을 집약하기 위한 스위치(230)가 마련되어 있고, 통신 제어 장치(10c)는 실제로 스위치(230)에 패킷을 송신하고 스위치(230)가 상류의 통신 회선에 패킷을 송출한다.
컨텐츠의 요청선으로부터 회신된 패킷을 스위치(230)가 수신하면, 이 패킷은 통신 제어 장치(10)에 의한 프로세싱을 필요로 하지 않기 때문에, 스위치(230)의 포트(232)로부터 스위치(210)의 포트(212)에 전송된다. 그러므로, 패킷은 스위치(210)로부터 사용자로 전송된다. 일반적으로, 인터넷에서는 패킷에 대한 응답 패 킷이 확실하게 송신원에 회신되도록 회신 경로를 확보하기 위해서, 송신시의 경로가 패킷에 기록된다. 그러나,본 발명의 실시예에서는, 통신 제어 경로 장치(200) 안에 회신 경로가 미리 준비되어 있기 때문에, 경로를 기록하지 않고 즉, 패킷을 가공하지 않고 장치 사이의 통신을 수행한다. 결과적으로, 불필요한 프로세싱을 줄이고, 프로세싱 속도를 향상시킬 수 있다.
도 22의 예에서, 컨텐츠를 지지하는 서버에 사용자로부터 발신된 컨텐츠의 취득 요청을 포함하는 패킷을 송출하는 경우에만 패킷을 프로세싱하고, 컨텐츠를 지지하는 서버로부터 사용자에게 송출되는 패킷은 프로세싱하지 않고 통과시키는 경우의 구성을 나타내고 있지만, 통신 제어 장치(10)가 양방향의 패킷을 프로세싱하도록 구성될 수 있다. 이 경우에, 통신 제어 장치(10)의 양측에 광 스플리터(220)를 설치할 수 있다. 또한, 스위치(230)로부터 스위치(210)에의 바이패스 경로는 설치하지 않을 수 있다.
이와 같이, 복수 개의 통신 제어 장치 중 패킷을 프로세싱해야 할 통신 제어 장치를 미리 특정하지 않아도 모든 통신 제어 장치에 동일한 패킷을 패럴렐 캐스트 하는 것에 의해서, 프로세싱해야 할 통신 제어 장치에 적절하게 패킷을 프로세싱시킬 수 있다.
이상은 본 발명을 실시의 형태를 기초로 설명하였다. 이 실시의 형태는 예시적인 것이고, 그러한 각 구성 요소나 각 프로세싱 프로세스의 조합에 다양한 변형d예들이 가능한 것, 또한 그러한 변형예들도 본 발명의 범위에 속하는 것은 당업자에게 자명한 것이다.
실시의 형태로는 복수 개의 통신 제어 장치의 각각에 데이터 프로세싱부와 데이터 지지부가 설치되는 통신 제어 시스템에 관하여 기술하였지만, 본 발명의 기술은 1대의 데이터 프로세싱 장치의 내부에 복수 개의 데이터 지지부를 구비한 경우에도 마찬가지로 적용 가능하다.또한, 1개의 데이터 프로세싱부가 복수 개의 데이터 지지부로 유지되는 데이터베이스를 참조하고 데이터를 프로세싱한 경우에도 마찬가지로 적용 가능하다. 또한, 대기용의 데이터 지지부는 2개 이상 설치될 수 있다.
본 발명에 의하면 복수 개의 데이터베이스를 적절하게 운용하는 기술을 제공할 수 있다.
본 발명은 복수 개의 데이터베이스를 포함하는 데이터 프로세싱 시스템에 적용할 수 있다.
Claims (13)
- 취득한 데이터를 프로세싱하는 데이터 프로세싱부;상기 데이터를 프로세싱하는데 사용되는 데이터베이스를 저장하는 복수 개의 데이터 지지부를 포함하는 데이터 프로세싱 시스템에 있어서,상기 복수 개의 데이터 지지부는 제1 데이터베이스를 공통으로 저장하고 제2 데이터베이스를 분할하여 각각 저장하며,상기 데이터 프로세싱 시스템은 상기 제1의 데이터베이스 및 분할된 상기 제2 데이터베이스를 저장할 수 있는 적어도 하나 이상의 데이터 지지부를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제1항에 있어서,상기 제1 데이터베이스는, 분할된 상기 제2 데이터베이스의 어느 부분이 상기 데이터를 프로세싱하는데 사용될 것인지를 판정하는 데이터를 저장하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제1항 또는 제2항에 있어서,상기 복수 개의 데이터 지지부의 운용 상황을 관리하는 운용 관리부를 더 포함하고,상기 운용 관리부는, 상기 제2 데이터베이스를 분할하고 지지하는데 필요한 수의 데이터 지지부를 운용시키고 그 밖의 데이터 지지부를 대기시키며,상기 운용 관리부는, 상기 데이터 지지부에 지지된 데이터베이스가 업데이트될때 운용중인 상기 데이터 지지부들 중 임의의 데이터 지지부에 지지되는 데이터베이스의 데이터를 업데이트하여 대기중인 데이터 지지부에 저장하고, 업데이트 전의 데이터 지지부가 지지하는 데이터 지지부로부터 업데이트 후의 데이터베이스를 지지하는 데이터 지지부에 운용을 전환하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제3항에 있어서,상기 운용 관리부는, 운용중의 데이터 지지부가 운용 불가능한 상태임을 감지할 때, 상기 데이터 지지부가 지지하고 있던 데이터베이스를 대기중인 데이터 지지부에 저장시키고, 상기 대기중의 데이터 지지부에 운용을 전환하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제3항 또는 제4항에 있어서,상기 대기중인 데이터 지지부는 미리 상기 제1 데이터베이스를 저장하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제3항 내지 제5항 중 어느 한 항에서,복수 개의 상기 데이터 프로세싱부는 상기 복수 개의 데이터 지지부에 각각 대응하도록 제공되고,상기 데이터 프로세싱 시스템은, 취득한 데이터를 상기 복수 개의 데이터 프로세싱부에 동시에 공급하는 데이터 공급부를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제6항에 있어서,상기 데이터 공급부는, 취득한 데이터를 가공하지 않고 본래의 형태로 상기 복수 개의 데이터 프로세싱부에 동시에 공급하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제6항 또는 제7항에 있어서,상기 복수 개의 데이터 프로세싱부는, 상기 데이터 공급부로부터 데이터를 취득할 때 대응하는 상기 데이터 지지부가 지지하는 데이터베이스를 참조하여 프로세싱할 데이터인지를 판정하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제8항에 있어서,상기 데이터 프로세싱부는 패킷을 취득하고 통신을 제어하는 통신 제어 장치이고, 상기 데이터 공급부로부터 패킷을 취득할 때 데이터 프로세싱부 자체로 향하는 패킷인지를 판정하지 않고 패킷을 취득하며, 대응하는 상기 데이터 지지부가 지지하는 데이터베이스를 참조하여 프로세싱해야 할 패킷인지를 판정하는 것을 특징 으로 하는 데이터 프로세싱 시스템.
- 제9항에 있어서,상기 통신 제어 장치는, 상기 패킷의 헤더부에 저장된 정보가 아닌 데이터부에 저장된 정보를 이용하여, 프로세싱해야 할 패킷인지를 판정하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제9항 또는 제10항에 있어서,상기 통신 제어 장치는, 대응하는 상기 데이터 지지부가 지지하는 제1 데이터베이스를 참조하여 프로세싱해야 할 패킷인지를 판정하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제9항 내지 제11항 중 어느 한 항에 있어서,프로세싱해야 할 패킷이라고 판정한 데이터 프로세싱부는 상기 패킷을 프로세싱하고, 프로세싱해야 할 패킷이 아니라고 판정한 데이터 프로세싱부는 상기 패킷을 파기하는 것을 특징으로 하는 데이터 프로세싱 시스템.
- 제9항 내지 제12항 중 어느 한 항에 있어서,상기 데이터 공급부는, 취득한 패킷을 브로드캐스트로 변환하지 않고 유니캐스트인채로 상기 복수 개의 통신 제어 장치에 동시에 공급하는 것을 특징으로 하는 데이터 프로세싱 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077029632A KR20080017046A (ko) | 2007-12-18 | 2005-05-20 | 데이터 프로세싱 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020077029632A KR20080017046A (ko) | 2007-12-18 | 2005-05-20 | 데이터 프로세싱 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080017046A true KR20080017046A (ko) | 2008-02-25 |
Family
ID=39384648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077029632A KR20080017046A (ko) | 2007-12-18 | 2005-05-20 | 데이터 프로세싱 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080017046A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101272877B1 (ko) * | 2009-12-21 | 2013-06-11 | 한국전자통신연구원 | 분산 파일 시스템의 파티션 분할 장치 및 방법 |
CN110362553A (zh) * | 2019-06-17 | 2019-10-22 | 平安普惠企业管理有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
-
2005
- 2005-05-20 KR KR1020077029632A patent/KR20080017046A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101272877B1 (ko) * | 2009-12-21 | 2013-06-11 | 한국전자통신연구원 | 분산 파일 시스템의 파티션 분할 장치 및 방법 |
CN110362553A (zh) * | 2019-06-17 | 2019-10-22 | 平安普惠企业管理有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
CN110362553B (zh) * | 2019-06-17 | 2023-09-15 | 爱云保(上海)科技有限公司 | 大批量征信数据处理方法、电子装置及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4087427B2 (ja) | データ処理システム | |
JP4554675B2 (ja) | 通信制御装置及び通信制御システム | |
KR20070103502A (ko) | 통신 제어 장치 | |
JP4571184B2 (ja) | 通信管理システム | |
WO2008062542A1 (fr) | Appareil de commande de communication | |
JP4574675B2 (ja) | 通信管理システム | |
KR20080017046A (ko) | 데이터 프로세싱 시스템 | |
JP4146505B1 (ja) | 判定装置及び判定方法 | |
JP4319246B2 (ja) | 通信制御装置及び通信制御方法 | |
WO2008075426A1 (ja) | 通信制御装置及び通信制御方法 | |
JPWO2009066343A1 (ja) | 通信制御装置及び通信制御方法 | |
JP4676530B2 (ja) | 通信制御装置 | |
JP4638513B2 (ja) | 通信制御装置及び通信制御方法 | |
KR20070121806A (ko) | 통신 제어 장치 및 통신 제어 시스템 | |
JP5156892B2 (ja) | ログ出力制御装置及びログ出力制御方法 | |
JPWO2009066344A1 (ja) | 通信制御装置、通信制御システム及び通信制御方法 | |
KR20080057284A (ko) | 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치 | |
JPWO2009069178A1 (ja) | 通信制御装置及び通信制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
WITB | Written withdrawal of application |