KR20080057284A - 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치 - Google Patents

통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치 Download PDF

Info

Publication number
KR20080057284A
KR20080057284A KR1020087009070A KR20087009070A KR20080057284A KR 20080057284 A KR20080057284 A KR 20080057284A KR 1020087009070 A KR1020087009070 A KR 1020087009070A KR 20087009070 A KR20087009070 A KR 20087009070A KR 20080057284 A KR20080057284 A KR 20080057284A
Authority
KR
South Korea
Prior art keywords
communication
node
data
person
communication control
Prior art date
Application number
KR1020087009070A
Other languages
English (en)
Inventor
미추구 나고야
젠타 이하
Original Assignee
듀아키시즈 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 듀아키시즈 가부시키가이샤 filed Critical 듀아키시즈 가부시키가이샤
Priority to KR1020087009070A priority Critical patent/KR20080057284A/ko
Publication of KR20080057284A publication Critical patent/KR20080057284A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 P2P 통신을 적절하게 관리하는 기술을 제공한다.
통신 관리 시스템(300)에서의 P2P 네트워크(322)를 구성하는 각각의 P2P 노드(320)는 다른 P2P 노드와의 P2P 통신을 수행한다. P2P 노드(350)는 P2P 노드(320)와 통신하는 P2P 접속을 포함한다. 노드 검출기(340)는 P2P 노드(350)로부터 또는 P2P 노드(350)로 전송되는 통신 데이터를 참조하여 P2P 노드(320)의 식별 정보를 검출하고 상기 정보를 P2P 노드 데이터베이스(360)에 등록한다. ISP(330)에 의해 포함되는 통신 제어 시스템(100)은 상기 P2P 노드 데이터베이스(360)에 저장되는 식별 정보를 참조하여 P2P 노드들(320) 사이의 P2P 통신에서의 필터링을 검출하고 수행한다.
Figure P1020087009070
P2P, 통신 데이터, 노드, 필터링, 식별 정보

Description

통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치{COMMUNICATION MANAGEMENT SYSTEM, COMMUNICATION MANAGEMENT METHOD, AND COMMUNICATION CONTROL DEVICE}
본 발명은 통신 관리 기술에 관한 것이며, 특히 개인대개인(peer to peer, P2P) 통신을 관리하는 통신 관리 시스템, 통신 관리 방법 및 통신 제어 장치에 관한 것이다.
인터넷의 인프라가 정비되고 휴대 전화 단말, 퍼스널 컴퓨터, VoIP(Voice over Internet Protocol) 전화 단말 등의 통신 단말이 폭넓게 보급됨으로 인해 현재 인터넷의 이용자는 폭발적으로 증가하고 있다. 이와 같은 상황 하에서, 컴퓨터 바이러스, 해킹, 스팸 메일과 같은 보안 문제가 표면화되고 있고, 통신을 적절하게 제어하는 기술이 요청되고 있다. 또한, 진보된 통신 환경들이 통신량을 거대하게 증가시기기 때문에, 대용량의 데이터를 고속으로 프로세싱할 수 있는 통신 제어 장치들에 대한 필요가 있다. [특허 문헌 1] 일본특허 공개번호 제4-180425호 공보.
최근에 P2P 통신을 이용하는 파일-공유 네트워크의 사용자 수가 증가하고 있다. 사용자들이 콘텐츠를 서로 공유함으로써 원하는 콘텐츠를 쉽게 얻을 수 있기 때문에, 그러한 사용자들의 수는 급격히 증가한다. 반면, 일련의 문제들 예컨대, 콘텐츠의 저작권 침해, 불법 콘텐츠의 분배, 및 파일-공유 네트워크를 공격하는 컴퓨터 바이러스들의 확산 등이 분명해지고 현재 사회적 문제들로서 여겨진다. 따라서, P2P 통신을 관리하는 적절한 기술들을 개발하는 것이 급히 필요하다.
본 발명은 이러한 상황의 관점에서 안출되었으며, 본 발명의 일반적인 목적은 P2P 통신을 적절하게 관리하는 기술을 제공하는 것이다.
본 발명의 일 양상은 통신 관리 시스템에 관한 것이다. 상기 통신 관리 시스템은: 개인대개인 통신을 수행하는 노드와 통신할 수 있도록 하는 개인대개인 접속을 포함하는 단말; 상기 단말로부터 전송되거나 또는 상기 단말로 전송되는 통신 데이터를 참조하여 노드의 식별 정보를 검출하는 노드 검출기; 및 상기 검출된 식별 정보를 참조하여 노드들 간의 개인대개인 통신을 제어하는 통신 제어 장치를 포함할 수 있다.
상기 노드 검출기는 상기 노드의 IP 어드레스를 검출할 수 있다. 통신 데이터가 노드들 간의 개인대개인 통신으로부터 얻어진 것인지를 결정하기 위해서, 상기 통신 제어 장치는 상기 검출된 IP 어드레스를 전송 소스의 IP 어드레스 또는 제어되는 통신 데이터의 전송 목적지와 비교할 수 있다. 또한, 추가적으로 상기 노드 검출기는 개인대개인 통신을 수행하는 노드를 통해 포트의 개수를 검출할 수 있다. 제어되는 통신 데이터가 노드들 간의 개인대개인 통신으로부터 얻어진 것인지를 결정하기 위해서, 통신 제어 장치는 상기 검출된 포트 개수를 추가적으로 참조할 수 있다.
상기 통신 제어 장치는: 상기 노드 검출기에 의해 검출된 노드의 식별 정보를 저장하는 데이터베이스; 통신 데이터를 획득하고 전송 소스의 식별 정보 또는 통신 데이터의 전송 목적지에 대한 데이터베이스를 탐색하는 탐색 회로; 및 상기 탐색 회로의 탐색 결과에 따라 상기 통신 데이터의 필터링을 수행하는 필터링 회로를 포함할 수 있다.
상기 통신 관리 시스템은: 상기 노드 검출기에 의해 검출된 노드의 식별 정보를 저장하는 노드 데이터베이스; 및 상기 노드 데이터베이스를 참조하여 상기 통신 제어 장치의 데이터베이스를 업데이트하는 데이터베이스 서버를 더 포함할 수 있다.
상기 탐색 회로가 상기 전송 소스 또는 통신 데이터의 전송 목적지가 노드임을 결정할 때, 상기 필터링 회로는 상기 통신 데이터를 파기할 수 있다.
상기 통신 제어 장치는, 상기 개인대개인 통신으로부터 얻어진 통신 데이터를 검출하기 위해서, 획득된 통신 데이터가 상기 개인대개인 통신에 포함되고 상기 개인대개인 통신이 식별될 수 있는 문자열을 포함하는지를 결정하는 검출 회로를 더 포함할 수 있다. 상기 검출 회로가 상기 개인대개인 통신으로부터 얻어진 통신 데이터를 검출할 때, 상기 필터링 회로는 상기 통신 데이터를 파기할 수 있다. 또한, 상기 통신 제어 장치는, 상기 개인대개인 통신에 대한 어플리케이션에 의해 암호화된 통신 데이터를 해독하는 해독 키(decryption key)를 이용하여 획득된 통신 데이터를 해독하는 디코더 회로를 더 포함할 수 있다. 상기 검출 회로는, 상기 개인대개인 통신이 식별될 수 있는 문자열을 포함하는 상기 디코더 회로에 의해 통신 데이터가 해독되는지를 결정할 수 있다.
상기 통신 제어 장치는 FPGA(Field Programmable Gate Array)를 이용하여 구성될 수 있고, 또는 유선 로직 회로에 의해 구성될 수 있다.
본 발명의 다른 양상은 통신 관리 방법에 관한 것이다. 상기 통신 관리 방법은: 개인대개인 통신을 수행하는 노드와 통신할 수 있도록 개인대개인 접속을 포함하는 단말기로부터 전송되는 또는 상기 단말기로 전송되는 통신 데이터를 참조하여 노드의 IP 주소를 검출하는 단계; 및 상기 검출된 IP 어드레스를 참조하여 노드들 간의 개인대개인 통신을 제어하는 단계를 포함한다.
본 발명의 또 다른 양상은 통신 제어 장치에 관한 것이다. 개인대개인 통신을 통해 노드 및 다른 노드 간에 전송되는 통신 데이터를 참조하여 검출되는 노드의 식별 정보를 저장하는 데이터베이스; 통신 데이터를 획득하고, 상기 전송 소스의 식별 정보 또는 통신 데이터의 전송 목적지에 대한 데이터베이스를 탐색하는 탐색 회로; 및 상기 탐색 회로의 탐색 결과에 따라 통신 데이터의 필터링을 수행하는 필터링 회로를 포함한다.
또한, 전술한 구성 요소들의 선택적 조합들, 방법들, 장치들, 시스템들, 기록 수단 및 컴퓨터 프로그램들의 형태에 따른 본 발명의 구현들이 본 발명의 추가적인 모드들로서 실시될 수 있다.
도 1은 전제 기술에 따른 통신 제어 시스템의 구성을 나타내는 블록도.
도 2는 종래의 통신 제어 장치의 구성을 나타내는 블록도.
도 3은 전제 기술에 따른 통신 제어 장치의 구성을 나타내는 블록도.
도 4는 패킷 프로세싱 회로의 구성을 나타내는 블록도.
도 5는 위치 검출 회로의 구성을 나타내는 블록도.
도 6은 위치 검출 회로의 다른 예를 나타내는 블록도.
도 7은 위치 검출 회로의 또 다른 예를 나타내는 블록도.
도 8은 제1 데이터베이스의 내부 데이터의 예를 나타내는 블록도.
도 9는 제1 데이터베이스의 내부 데이터의 다른 예를 나타내는 블록도.
도 10은 제1 데이터베이스의 내부 데이터의 또 다른 예를 나타내는 블록도.
도 11은 인덱스 회로의 다른 예를 나타내는 블록도.
도 12는 이진 탐색 회로에 포함되는 비교 회로의 구성을 나타내는 블록도.
도 13은 이진 탐색 회로의 구성을 나타내는 블록도.
도 14는 제1 데이터베이스의 내부 데이터의 또 다른 예를 나타내는 블록도.
도 15는 제2 데이터베이스의 내부 데이터의 예를 나타내는 블록도.
도 16는 제2 데이터베이스의 내부 데이터의 다른 예를 나타내는 블록도.
도 17은 전제 기술에 따른 통신 제어 장치의 예시적 구성을 나타내는 블록도.
도 18은 다수의 통신 제어 장치들을 포함하는 통신 제어 장치의 구성을 나타내는 블록도.
도 19는 운용 감시 서버에서 제공되는 관리 테이블의 내부 데이터의 예를 나타내는 블록도.
도 20은 통신 제어 장치가 실패하는 경우의 운용 절차를 기술하는 블록도.
도 21A, 21B 및 21C는 통신 제어 장치에서의 데이터베이스를 업데이트하는 과정을 기술하는 블록도.
도 22는 다수의 통신 제어 장치들로 패킷을 프로세스하기 위해 제공되는 통신 경로 제어 장치의 구성을 나타내는 블록도.
도 23은 본 발명의 실시예에 따른 통신 관리 시스템의 구성을 나타내는 블록도.
도 24는 본 발명의 실시예에 따른 통신 관리 시스템의 예시적 구성을 나타내는 블록도.
도 25는 본 발명의 실시예에 따른 패킷 프로세싱 회로의 구성을 나타내는 블록도.
※ 도면의 주요 부분에 대한 설명 ※
10 : 통신 제어 장치 20 : 패킷 프로세싱 회로
30 : 탐색 회로 32 : 위치 검출 회로
33 : 비교 회로 34 : 인덱스 회로
35 : 비교 회로 36 : 이진 탐색 회로
36A, 36B 및 36C : 비교 회로들
36Z : 제어 회로 40 : 프로세스 수행 회로
50 : 제1 데이터베이스 60 : 제2 데이터베이스
100 : 통신 제어 시스템 110 : 운용 감시 서버
120 : 접속 관리 서버 130 : 메시지 출력 서버
140 : 로그 관리 서버 150 : 데이터베이스 서버
200 : 통신 경로 제어 장치 300 : 통신 관리 시스템
310 : 사용자 단말 320 : P2P 노드
322 : P2P 네트워크 330 : ISP
340 : 노드 검출기 350 : P2P 노드
352 : P2P 노드 검출 네트워크 360 : P2P 노드 데이터베이스
390 : 인터넷
우선 전제 기술로서, CPU 또는 OS가 구비되지 않고 전용 하드웨어 회로를 이용하여 패킷 필터링 기능을 수행하는 통신 제어 시스템에 대해 기술할 것이다. 이하는, 상기 전제 기술의 통신 제어 시스템을 이용하여 P2P 통신을 관리하는 기술을 실시예로서 기술할 것이다.
(전제기술)
도 1은 전제 기술에 따른 통신 제어 시스템의 구성을 나타낸다. 통신 제어 시스템(100)은 통신 제어 장치(10) 및 상기 통신 제어 장치(10)의 운용을 지지하기 위해 제공되는 다양한 주변 장치들을 포함한다. 전제 기술에 따른 상기 통신 제어 장치(10)는 인터넷 서비스 제공자 등에 의해 제공되는 패킷 필터링 기능을 수행한다. 네트워크 경로에 제공되는 상기 통신 제어 장치(10)는 상기 네트워크를 통해서 전송된 패킷을 획득하고, 콘텐츠를 분석하며, 패킷 통신이 허용되어야하는지를 결정 한다. 만약 통신이 허용되면, 상기 통신 제어 장치(10)는 상기 패킷을 상기 네트워크에 전송할 것이다. 만약 통신이 금지된다면, 상기 통신 제어 장치(10)는 상기 패킷을 파기할 것이고, 필요하면 패킷의 전송 소스에 경고 메시지 등을 반환할 것이다.
전제 기술에 따른 상기 통신 제어 시스템(100)은 다수의 통신 제어 장치들(10a, 10b, 10c 등)을 포함하고, 그들을 하나의 통신 제어 장치(10)로서 기능하도록 운영한다. 이하에서, 각각의 통신 제어 장치(10a, 10b, 10c 등) 및 그들의 집단은 구별 없이 통신 제어 장치(10)로 지칭할 것이다.
전제 기술에 따른 통신 제어 시스템(100)에서, 각각의 통신 제어 장치(10)는 패킷 프로세싱에 필요한 데이터베이스의 적어도 일부분을 각각 저장하고; 그러한 데이터베이스들을 분할하여 저장하기 위해 필요로 하는 많은 수의 통신 제어 장치들(10)이 제공되며 적어도 하나 이상의 장치가 여분으로 제공된다. 예를 들면, 데이터 부분의 개수가 300,000개 이상 400,000개 이하이면, 운용에 필요한 통신 제어 장치들은 4개이다. 그러나, 임의의 통신 제어 장치들(10)이 운용에 실패하는 경우 또는 임의의 통신 제어 장치들(10)에서의 데이터베이스가 업데이트되는 경우를 대비하여, 대기 유닛으로서 하나 이상의 통신 제어 장치들(10)이 추가적으로 제공되어야 한다. 따라서, 통틀어 적어도 5개의 통신 제어 장치들(10)이 제공된다. 종래에는 내고장성(fault tolerance)을 고려하여 전체 시스템이 이중으로 구성되어야 했다. 대조적으로, 전제 기술에 따르면, 상기 통신 제어 장치(10)의 분할된 유닛은 오직 여분으로서만 제공될 수 있고, 그 결과 비용을 절약할 수 있다. 다수의 통신 제어 장치들(10a, 10b, 10c 등)의 운용 상태는, 운용 감시 서버(110)에 의해 관리된다. 전제 기술에 따른 상기 운용 감시 서버(110)는, 상기 통신 제어 장치들의 운용 상태를 관리하는 관리 테이블을 포함한다.
상기 주변 장치들은 운용 감시 서버(110), 접속 관리 서버(120), 메시지 출력 서버(130), 로그 관리 서버(140), 및 데이터베이스 서버(150)를 포함한다. 상기 접속 관리 서버(120)는 통신 제어 장치(10)와의 접속을 관리한다. 예를 들면, 상기 통신 제어 장치(10)가 휴대폰 단말로부터 전송되는 패킷을 프로세싱할 때, 상기 접속 관리 서버(120)는 상기 휴대폰 단말을 특유하게 식별하는 패킷 내의 정보에 근거하여 통신 제어 시스템(100)의 서비스를 누릴 수 있도록 하는 사용자로서 사용자를 인증한다. 일단 사용자가 인증되면, 휴대폰 단말에 일시적으로 제공되는 IP 어드레스로부터 전송되는 패킷들은 상기 통신 제어 장치(10)로 전송될 것이고, 특정 기간 동안에 상기 접속 관리 서버(120)에 의해 인증됨이 없이 내부에서 프로세싱된다. 상기 통신 제어 장치(10)가 허용된 패킷 통신을 허용하였는지에 따라, 상기 메시지 출력 서버(130)는 패킷 전송의 목적지 또는 소스에 메시지를 출력한다. 상기 로그 관리 서버(140)는 상기 통신 제어 장치(10)의 운용 히스토리를 관리한다. 상기 데이터베이스 서버(150)는 외부 소스로부터 가장 최신의 데이터베이스를 획득하고 상기 데이터베이스를 상기 통신 제어 장치(10)에 제공한다. 상기 통신 제어 장치(10)의 운용을 중지시키지 않고 상기 데이터베이스를 업데이트하기 위해서, 상기 장치는 백업 데이터베이스를 포함할 수 있다. 상기 운용 감시 서버(110)는, 상기 통신 제어 장치(10), 및 상기 접속 관리 서버(120), 메시지 출력 서버(130), 로그 관리 서버(140) 및 데이터베이스 서버(150)를 포함하는 주변 장치들의 상태를 감시한다. 상기 운용 감시 서버(110)는 상기 통신 제어 시스템(100)에서 최선의 우선도를 갖고, 상기 통신 제어 장치(10) 및 모든 주변 장치들의 감독 제어를 수행한다. 이하 후술할 바와 같이, 상기 통신 제어 장치(10)가 전용 하드웨어 회로로 구성됨에도 불구하고, 상기 통신 제어 장치(10)가 운용되는 동안에 상기 운용 감시 서버(110)는 운용 상태를 감시할 수 있고, 이는 본 발명의 출원인에 의해 출원된 일본 특허 번호 3041340 또는 다른 기술들에 설명된 기술들에 근거한 경계-스캔(boundary-scan)에 의해 감시되는 데이터를 상기 통신 제어 장치(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의 존재를 전제로 하고 있기 때문에, 보안 홀 등이 존재할 가능성이 완전히 제거될 수 없고, OS의 버젼업 등의 유지 보수 작업을 필요로 한다.
도 3은 전제 기술에 따른 통신 제어 장치의 구성을 나타낸다. 전제 기술에 따른 통신 제어 장치(10)는, 종래의 통신 제어 장치에 사용되는 CPU 및 OS를 포함하는 소프트웨어에 의해 구현되는 패킷 프로세싱부를 대신하여, 유선 로직 회로를 이용하는 전용 하드웨어로서 구성되는 패킷 프로세싱 회로(20)를 포함한다. 통신 데이터를 CPU와 같은 범용 프로세싱 회로에서 운용되는 OS 및 소프트웨어로 프로세싱하지 않고 상기 통신 데이터를 프로세싱하는 전용 하드웨어 회로를 제공함으로써, CPU 또는 OS에 의해 기인하는 성능 한계를 극복할 수 있고, 따라서 프로세싱 능력이 높은 통신 제어 장치를 구현하는 것이 가능하다.
예를 들어, 패킷 필터링 등을 수행하기 위해서, 패킷에 포함되는 데이터에 필터링의 판단 기준이 되는 기준 데이터가 포함되는지를 탐색하는 경우에 CPU를 이용하여 통신 데이터와 기준 데이터를 비교하면, 한번에 겨우 64 비트를 비교할 수밖에 없고 프로세싱 속도를 향상시키려고 해도 CPU 성능으로 한계점에 이르는 문제가 있었다. CPU에서는 통신 데이터에서 64비트를 메모리에 로딩하고 기준 데이터와 비교를 수행하여 계속하여 다음 64비트를 메모리에 로딩하는 프로세싱을 수회 더 반복할 필요가 있어서, 메모리에 로딩 시간이 방해되어 프로세싱 속도에 한계가 있다.
이에 대하여, 본 실시의 형태에서는 통신 데이터와 기준 데이터를 비교하도록 유선 논리 회로에 의해 구성된 전용 하드웨어 회로가 제공된다. 이 회로는 64비트보다 더 긴 데이터 길이, 즉 1024비트 데이터 길이의 비교를 가능하게 하도록 병렬적으로 설치된 복수의 비교기를 포함한다. 이에 의해 전용 하드웨어를 구비함으로써, 동시에 병렬로 다수의 비트 매칭(bit matching)을 수행할 수 있다. 종래의 CPU를 이용한 통신 제어 장치(1)에서는 한번에 64비트밖에 프로세싱할 수 없던 경우를 한번에 1024비트의 프로세싱을 가능하게 하여, 비약적으로 프로세싱 속도를 향상시킬 수 있다. 비교기의 수를 많이 하면 프로세싱 능력도 향상되지만 비용이나 사이즈도 증가하므로, 원하는 프로세싱 성능, 비용, 사이즈 등을 고려하여 최적의 하드웨어 회로를 설계할 수 있다.
또한, 본 실시의 형태의 통신 제어 장치(10)는 유선 논리 회로를 이용하는 전용 하드웨어에 의해 구성되므로, OS(Operating System)를 필요로 하지 않는다. 이 때문에, OS 인스톨, 버그 대응, 업그레이드 등의 작업이 필요 없고, 관리나 유지를 위한 비용이나 필요한 공정 수를 감소시킬 수 있다. 또한, 범용적인 기능이 요구되는 CPU와는 달리 불필요한 기능을 포함하고 있지 않아서, 불필요한 리소스를 이용하지 않고, 저 비용화, 회로 면적의 감소, 프로세싱 속도의 향상 등을 기대할 수 있다. 또한, OS를 이용한 종래의 통신 제어 장치와는 달리, 여분의 기능을 가지고 있어 보안 홀(security holes) 등이 발생할 가능성이 낮고, 네트워크를 통한 악의의 제 3 자로부터 공격에 대응하는 내성을 향상시킨다.
종래의 통신 제어 장치(1)는 CPU와 OS를 전제로 한 소프트웨어에 의해 패킷을 프로세싱하므로, 패킷 전체의 데이터를 수신한 후 프로토콜 프로세싱을 수행하고 데이터가 어플리케이션에 전달된다. 이에 대하여, 전제 기술에 따른 통신 제어 장치(10)에는 전용 하드웨어 회로로 프로세싱을 수행함으로써, 패킷 전체의 데이터를 수신한 후 프로세싱을 개시할 필요가 없고, 프로세싱에 필요한 데이터를 수신하면, 후속 데이터의 수신을 기다리지 않고, 임의의 시점에서 프로세싱을 개시할 수 있다. 예를 들어, 후술하는 위치 탐색 회로에서 위치 검출 프로세싱은 비교대상 데이터의 위치를 특정하기 위한 위치 특정 데이터를 수신한 시점에서 개시할 수 있다. 따라서, 전체의 데이터의 수신을 기다리지 않고 다양한 타입의 프로세싱이 수행될 수 있으므로, 패킷 데이터를 프로세싱하는데 필요로 하는 시간을 단축시킬 수 있다.
도 4은 패킷 프로세싱 회로의 내부 구성을 도시한다. 상기 패킷 프로세싱 회 로(20)는, 기준 데이터를 저장하고 통신 데이터에서 수행되는 프로세싱이 결정될 때 참조되는 제1 데이터베이스들(50A,50B,및 50C)(이하, '제1 데이터베이스(50)'로 지칭될 수 있음); 통신 데이터와 기준 데이터를 비교함으로써 기준 데이터에 대한 수신된 통신 데이터를 탐색하는 탐색 회로(30); 상기 탐색 회로(30)의 탐색 결과 및 서로 연관된 상기 통신 데이터에서 수행되는 프로세싱의 내용을 저장하는 제2 데이터베이스(60); 및 상기 탐색 회로(30)의 탐색 결과에 근거한 통신 데이터 및 상기 제2 데이터베이스(60)에 저장된 조건들을 프로세싱하는 프로세스 수행 회로(40)를 포함한다.
상기 탐색 회로(30)는, 통신 데이터에서 기준 데이터와 비교되는 비교 타겟 데이터의 위치를 검출하는 위치 검출 회로(32); 상기 제1 데이터베이스(50)에 저장되는 상기 기준 데이터가 분할되는 3개 이상의 범위 중 어떤 범위가 상기 비교 타겟 데이터가 속하는지를 결정하는 결정 회로의 일 예로서 제공되는 인덱스 회로(34); 및 상기 비교 타겟 데이터와 매치되는 상기 기준 데이터에 대한 상기 결정된 범위를 탐색하는 이진 탐색 회로(36)를 포함한다. 임의의 탐색 기술을 이용하여 상기 비교 타겟 데이터에 대한 상기 기준 데이터가 탐색될 수 있고, 이진 탐색 방법이 본 발명에서 사용된다. 이하 후술할 바와 같이, 진보된 이진 탐색 방법이 사용되기 때문에, 본 발명에서는 3개의 제1 데이터베이스(50)가 제공된다. 상기 제1 데이터베이스들(50A,50B,및 50C)은 동일한 기준 데이터를 저장한다.
도 5는 위치 검출 회로의 내부 구성도이다. 위치 검출 회로(32)는 비교 타겟 데이터의 위치를 식별하기 위한 위치 식별 데이터와 통신 데이터를 비교하기 위한 복수의 비교 회로(33a~33f)를 포함한다. 여기서는 6개의 비교 회로(33a~33f)가 제공되어 있지만 후술하는 것처럼, 비교 회로의 개수는 임의의 수일 수 있다. 각각의 비교 회로(33a~33f)에는 통신 데이터가 소정의 데이터 길이, 예를 들어 1 바이트씩 쉬프트되어 입력된다. 그리고, 복수의 비교 회로(33a~33f)에서 동시에 병렬로 하여, 검출해야하는 위치 특정 데이터와 통신 데이터의 비교가 수행된다.
전제 기술에서는, 통신 제어 장치(10)의 작동을 설명하기 위한 예로서, 통신 데이터 중에 포함되는 「No. ###」인 문자 예를 검출하여, 그 문자열 중에 포함되는 숫자 「###」을 기준 데이터로 비교하여 기준 데이터에 합치하는 경우는 패킷의 통과를 허용하고, 합치되지 않는 경우에는 패킷을 파기하는 프로세싱을 수행하는 경우를 설명한다.
도 5의 예에서는, 통신 데이터 중에서, 숫자 「###」의 위치를 특정하기 위한 위치 특정 데이터 「No.」를 검출하도록, 통신 데이터 「01 No. 361…」을 1 문자씩 쉬프트하여 비교회로(33a~33f)에 입력하고 있다. 즉, 비교회로(33a)에는 「01N」이, 비교회로(33b)에는 「1No」가, 비교회로(33c)에는 「No.」가, 비교회로(33d)에는 「o. 」가, 비교회로(33e)에는 「. 3」이, 비교회로(33f)에는 「 36」이, 각각 입력된다. 여기서, 비교회로(33a~33f)가 동시에 위치 특정 데이터 「No.」 와 비교를 실행한다. 이에 의해 비교회로(33c)가 매치하여, 통신 데이터의 선두가 3 문자째 「No.」인 문자 열이 존재하는 것이 검출된다. 이렇게 하여, 위치 검출 회로(32)에 의해 검출된 위치 특정 테이타 「No.」의 다음에 비교 대상 데이터인 숫자의 데이터가 존재하는 것이 검출된다.
CPU에 의해 동일한 프로세싱을 수행한다면, 우선, 문자 열 「01N」을 「No.」와 비교하여, 계속하여 문자 열「1No」를 「No.」와 비교한다. 이에 의하여, 선두에서 순서대로 하나씩 비교프로세싱을 실행할 필요가 있기 때문에, 검출 속도의 향상은 바랄 수 없다. 이에 대하여, 전제 기술에 따른 통신 제어 장치(10)에는 복수의 비교 회로(33a~33f)를 병렬로 설정함으로써, CPU에서는 수행할 수 없었던 동시 병렬적인 비교 프로세싱이 가능하게 되어 프로세싱 속도를 현저히 향상시킬 수 있다. 비교 회로는 많으면 많을수록 동시에 비교 가능한 위치가 많게 되어서 검출 속도가 향상되지만 비용, 사이즈 등을 고려한 후에 원하는 검출 속도를 얻을 수 있는 데 충분한 수의 비교 회로를 설치하면 좋다.
위치 검출 회로(32)는 위치 특정 데이터를 검출하기 위한 것만이 아니라, 범용적인 문자 열을 검출하는 회로로서 이용될 수 있다. 또한, 문자 열만이 아니라 비트 단위로 위치 특정 데이터를 검출하도록 구성될 수도 있다.
도 6는 상기 위치 검출 회로의 다른 예를 도시한다. 도 6에 도시된 예에서, 위치 식별 데이터의 데이터 길이가 상기 위치 검출 회로(32)에서의 각각의 비교 회로들(33a~33f)에 준비된 길이보다 짧을 때, "00H" 또는 "01H"와 같은 기결정 데이터를 상기 위치 식별 데이터의 뒷부분에 채워넣는다. 유사하게, 위치 식별 데이터와 비교되는 통신 데이터에 관해서는, 상기 위치 식별 데이터의 길이와 동일한 데이터 길이가 상기 통신 데이터로부터 추출되고, 상기 위치 식별 데이터 이후에 채워진 동일한 데이터가 뒷부분에 채워진다. 그러한 경우에 있어, 상기 통신 데이터가 작업으로서(as work) 복사될 수 있고, 원래의 통신 데이터를 변화시키지 않도록 하기 위해 상기 복사된 데이터는 상기 비교 회로들(33a~33f)에 입력되도록 프로세싱될 수 있다. 따라서, 상기 위치 식별 데이터의 길이에 무관하게 일반적으로 상기 위치 검출 회로(32)가 사용될 수 있다.
도 7은 상기 위치 검출 회로의 또 다른 예를 도시한다. 도 7에 도시된 예에서, 기결정 데이터는 도 6에서 도시된 예와 동일한 방법으로 위치 식별 데이터의 뒷부분에 채워지고, 게다가 그러한 데이터는 와일드 카드(wild card)로서 간주된다. 즉, 데이터가 와일드 카드로서 상기 비교 회로들(33a~33f)에 입력될 때, 어떠한 타겟 데이터에 대해서도 비교되는 타겟 데이터의 대응하는 부분이 상기 와일드 카드 데이터에 매치되는 것으로 결정된다. 따라서, 상기 위치 검출 회로(32)는 위치 식별 데이터의 길이에 무관하게 일반적으로 사용될 수 있다.
도 8은 상기 제1 데이터베이스의 내부 데이터를 예시적으로 도시한다. 상기 제1 데이터베이스(50)는, 필터링(filtering), 라우팅(routing), 스위칭(switching), 또는 치환(replacement)와 같은 패킷에의 프로세싱이 결정될 때 참조되는 참조 데이터를 저장한다. 기준 데이터 부분들은 몇몇 정렬 조건들에 따라 정렬되고, 오름차순 또는 내림차순으로 저장된다. 도 8의 예에서, 1000개의 기준 데이터 부분이 저장된다.
상기 인덱스 회로(34)는, 제1 데이터베이스(50)에 저장된 기준 데이터가 분할되는(52a~52d와 같은) 3개 이상의 범위들 중에 비교 타겟 데이터가 어느 범위에 속하는지를 결정한다. 도 8의 예에서, 1000개의 기준 데이터 부분들이 4개의 범위(52a~52d)로 분할되고, 각각의 범위에는 250개의 데이터 부분들이 존재한다. 상 기 인덱스 회로(34)는, 범위 경계에서의 기준 데이터 부분을 상기 비교 타겟 데이터와 비교하는 다수의 비교 회로들(35a~35c)을 포함한다. 상기 비교 회로들(35a~35c)은 경계들에서의 기준 데이터 부분들과 타겟 데이터를 병렬적으로 동시에 비교하기 때문에, 한 번의 비교 프로세싱 수행으로 상기 비교 타겟 데이터가 어느 범위에 속하는 지를 결정할 수 있다.
인덱스 회로(34)의 비교 회로들(35a~35c)에 입력되는 경계에서의 기준 데이터의 부분들은 통신 제어 장치(10)의 외부에 제공되는 장치에 의해 설정될 수 있다. 대안적으로, 기결정된 제1 데이터베이스(50)의 소정 위치의 기준 데이터가 자동으로 입력되도록 할 수 있다. 후자의 경우, 제1 데이터베이스(50)를 업데이트하여도, 자동으로 제1 데이터베이스(50)의 소정 위치의 기준 데이터가 비교 회로 (35a~35c)에 입력되므로, 초기 설정 등을 필요로 하지 않고 즉시 통신 제어 프로세싱을 실행시킬 수 있다.
전술한 바와 같이, CPU에 의해 이진 탐색을 수행하는 경우는 동시에 복수의 비교를 수행할 수 없지만, 전제 기술에 따른 통신 제어 장치(10)에는 복수의 비교회로(35a~35c)를 병렬로 제공함으로써, 동시 병렬적인 비교 프로세스를 가능하게 하여 탐색 속도를 현저히 향상시킬 수 있다.
상기 인덱스 회로(34)가 관련된 범위를 결정한 이후에는, 상기 이진 탐색 회로(36)가 이진 탐색 방법을 이용하여 탐색을 수행한다. 상기 이진 탐색 회로(36)는 상기 인덱스 회로(34)에 의해 결정된 범위를 추가적으로 2n개로 분할하고, 경계에 존재하는 기준 데이터 부분들을 상기 비교 타겟 데이터와 비교하며, 그 결과 어떠한 범위에 상기 비교 타겟 데이터가 속하는지를 결정한다. 상기 이진 탐색 회로(36)는 기준 데이터와 비교 타겟 데이터를 비트 단위로 비교하는 다수의 비교기를 포함한다. 예를 들면, 본 발명의 실시예에서 1024개의 비교기가 제공되어 1024비트에서의 비트 매칭(bit matching)을 수행한다. 상기 비교 타겟 데이터가 속하는 범위가 2n개의 구획 범위 사이에서 결정될 때, 상기 결정된 범위는 추가적으로 2n개로 분할된다. 다음으로, 경계들에 존재하는 기준 데이터 부분들이 리드되어, 상기 비교 타겟 데이터와의 비교가 수행된다. 그 이후에는, 상기 비교 타겟 데이터와 매치되는 기준 데이터가 최종적으로 발견될 때까지, 이러한 프로세싱이 반복되어 상기 범위를 계속해서 좁혀나간다.
앞서 언급한 예와 함께, 상기 연산을 좀더 상세하게 설명할 것이다. 상기 인덱스 회로(34)의 각 비교 회로들(35a~35c)은 비교 타겟 데이터로서 "361"을 수신한다. 기준 데이터로서, 비교 회로 35a는 범위들 52a와 52b의 경계게 존재하는 "378"을 수신한다. 유사하게, 비교회로 35b는 범위들 52b와 52c의 경계에 존재하는 "704"를 수신하고, 비교회로 35c는 범위들 52c와 52d의 경계에 존재하는 "937"을 수신한다. 다음으로 상기 비교 회로들(35a~35c)은 동시에 비교를 수행하여, 비교 타겟 데이터 "361"이 범위 52a에 속하는지를 결정한다. 그 이후에, 상기 이진 탐색 회로(36)는 상기 비교 타겟 데이터 "361"에 대한 기준 데이터를 탐색한다.
도 9은 상기 제1 데이터베이스의 내부 데이터의 다른 예를 도시한다. 도 9의 예에서, 기준 데이터 부분들의 개수는 제1 데이터베이스(50)에 저장할 수 있는 데이터 부분들의 개수(예컨대, 이 경우는 1000개)보다 더 적다. 이러한 예에서, 상기 제1 데이터베이스(50)는 기준 데이터 부분들을 내림 차순으로 정렬시키고, 그 안에 최종 데이터 위치로 시작한다. 다음으로, 데이터 위치들의 나머지에는 0이 저장된다. 상기 데이터베이스는 로딩 영역의 상단이 아닌 하단으로부터 데이터로 로드되고, 필요하면, 상기 로딩 영역의 전면을 차지하는 모든 빈 공간들은 0으로 치환된다. 결과적으로, 이진 탐색에 필요한 탐색 시간이 일정할 수 있도록, 상기 데이터베이스는 임의의 시간에 완전히 로드된다. 게다가, 상기 이진 탐색 회로(36)가 탐색 동안에 기준 데이터 "0"을 리드(read)하면, 상기 비교 결과가 분명할 때, 상기 회로는 비교를 수행하지 않고도 상기 범위를 식별할 수 있으며, 다음의 비교 단계로 진행할 수 있다.
CPU에 의한 소프트웨어 프로세싱에 있어서는 제1 데이터베이스(50)에 기준 데이터를 저장할 때, 최초 데이터 위치에서 오름 차순으로 기준 데이터가 저장된다. 나머지 데이터 위치에는, 예컨대 최대값 등이 저장되지만, 이 경우 이진 탐색에 있어서 상술한 것처럼 비교 회로의 생략은 있을 수 없다. 상술한 비교 기술은 전용 하드웨어 회로에 의해 탐색 회로(30)를 구성한 것으로 구현된다.
도 10은 상기 제1 데이터베이스의 내부 데이터를 나타내는 또 다른 예를 도시한다. 도 10의 예에서, 기준 데이터는 3개 이상의 범위들로 균일하게 분할되지 않고 서로 다른 수의 데이터 부분들을 수용하는 범위들로 불균일하게 분할되며, 예컨대 범위 52a는 500개의 데이터 부분을 포함하고 범위 52b는 100개의 데이터 부분 을 포함한다. 통신 데이터에서의 기준 데이터 발생 빈도(frequency)의 분포에 의존하여, 이러한 범위들이 결정될 수 있다. 구체적으로, 각각의 범위들에 속하는 기준 데이터의 발생 빈도의 합이 거의 동일하도록, 상기 범위들이 결정될 수 있다. 따라서, 상기 탐색 효율은 향상될 수 있다. 상기 인덱스 회로(34)의 상기 비교 회로들(35a~35c)에 입력되는 상기 기준 데이터는 외부로부터 변경가능할 수 있다. 그러한 경우에서는, 탐색 효율이 최적화되도록 상기 범위가 다이내믹하게 설정될 수 있다.
도 11은 상기 인덱스 회로의 다른 예를 도시한다. 도 8 내지 도 10의 예에서, 상기 인덱스 회로(34)는 3 개의 비교 회로들(35a~35c)을 이용하여, 비교 타겟 데이터가 제1 데이터베이스(50)의 4개의 범위들(52a~52d) 중 어느 범위에 속하는 지를 결정한다. 반면에, 도 11에 도시된 예에서는, 상기 인덱스 회로(34)는 4개의 비교 회로들(35d~35g)을 제공하여 비교 타겟 데이터가 각각의 4개의 범위들(52a~52d)에 속하는지 아닌지를 결정한다. 예를 들면, 상기 비교 회로(35d)에는 상기 제1 데이터베이스(50)의 0번째 및 250번째 기준 데이터 부분들 및 비교 타겟 데이터가 입력된다. 다음으로, 각각의 기준 데이터 부분은 상기 비교 타겟 데이터와 비교되고, 상기 비교 타겟 데이터가 범위 52a에 포함되는지를 결정한다. 상기 비교 회로들(35d~35g)에 의해 제공되는 비교 결과들은 결정 회로(35z)로 입력되고, 상기 결정 회로는 상기 비교 타겟 데이터가 포함되는 범위를 제공하는 정보를 출력한다. 각각의 비교 회로들(35d~35g)은 비교 타겟 데이터가 두 개의 입력 기준 데이터 부분들 사이에 포함되는지를 나타내는 결과를 출력할 수 있고, 또는 범위에 포 함되는 기준 데이터가 상기 범위보다 더 크거나 또는 상기 기준 데이터가 상기 범위보다 더 작은 것을 나타내는 결과를 출력할 수 있다. 상기 비교 타겟 데이터가 52a 내지 52d의 어느 범위에도 포함되지 않는 것으로 결정되면, 상기 비교 타겟 데이터가 상기 제1 데이터베이스(50) 내에 존재하지 않는 것으로 확인할 수 있다. 따라서, 추가적인 이진 탐색을 수행하지 않고 상기 탐색이 종료될 수 있다.
도 12는 상기 이진 탐색 회로에 포함된 비교 회로의 구성을 도시한다. 앞서 언급한 바와 같이, 이진 탐색 회로(36)에서의 비교 회로는 36a, 36b, ...와 같은 1024개의 비교기들을 포함한다. 각각의 비교기(36a,36b 등)는 1 비트의 기준 데이터(54) 및 1 비트의 비교 타겟 데이터(56)를 수신하여 비트들 가치(value)를 비교한다. 상기 인덱스 회로(34)의 비교 회로들(35a~35c)은 유사한 내부 구성들을 갖는다. 따라서, 상기 비교 프로세싱은 전용 하드웨어 회로에 의해 수행되기 때문에, 많은 수의 비교 회로들이 병렬적으로 운영되어 많은 비트 수를 한번에 비교할 수 있도록 하며, 그 결과 비교 프로세싱의 속도를 향상시킨다.
도 13은 이진 탐색 회로의 구성을 도시한다. 상기 이진 탐색 회로(36)는, 도 12에 도시된 바와 같은 1024개의 비교기들(36a,36b 등)을 포함하는 비교 회로들(36A, 36B, 및 36C) 및 상기 비교 회로들을 제어하는 제어 회로(36Z)를 포함한다.
종래의 이진 탐색 방법에서는, 데이터 부분들이 오름차순 또는 내림차순으로 정렬되는 데이터베이스의 탐색 범위에 있는 절반 위치에 존재하는 데이터부분이 리드되어, 상기 제1 탐색에서의 비교 타겟 데이터와 비교된다. 데이터 부분들이 오름 차순으로 정렬되고 만약 비교 타겟 데이터가 리드된 데이터보다 작을 때에, 이것은 상기 비교 타겟 데이터가 상기 탐색 범위의 첫 번째 절반 영역 내에 존재할 수 있음을 의미한다. 따라서, 제2 탐색에서는, 상기 탐색 범위가 상기 첫 번째 절반 영역으로 새롭게 설정되고, 상기 범위 내의 절반 위치에, 즉 원래의 탐색 영역의 1/4 위치에 존재하는 데이터 부분들이 리드되어 상기 비교 타겟 데이터와 비교된다. 역으로, 상기 비교 타겟 데이터가 상기 리드된 데이터보다 더 크면, 이것은 상기 비교 타겟 데이터가 상기 탐색 범위의 두 번째 절반 영역 내에 존재할 수 있음을 의미한다. 따라서, 제2 탐색에서는, 상기 탐색 범위가 상기 두 번째 절반 영역으로 새롭게 설정되고, 상기 범위 내의 절반 위치에, 즉 원래의 탐색 영역의 3/4 위치에 존재하는 데이터 부분들이 리드되어 상기 비교 타겟 데이터와 비교된다. 이러한 방식으로, 타겟 데이터에 도달할 때까지, 상기 탐색 범위가 절반씩 반복적으로 좁혀진다.
대조적으로, 전제 기술에 따르면, 3 개의 비교 회로들이 이진 탐색을 위해 제공되고, 상기 탐색 범위에서의 절반 위치에 있는 데이터가 제1 탐색에 대한 비교 타겟 데이터와 비교될 때, 상기 비교 타겟 데이터 및 상기 탐색 영역에서의 1/4 및 3/4 위치에서의 데이터 부분 각각 사이의 상기 제2 탐색에 대한 비교는 동시에 병렬적으로 수행될 수 있다. 따라서, 상기 제1 및 제2 탐색들이 동시에 수행될 수 있고, 그 결과 상기 데이터베이스로부터 데이터를 로드하는데 필요로 하는 시간을 감소시킨다. 또한, 3개의 비교 회로들을 병렬적으로 운용함으로써, 비교기들의 개수를 절반으로 감소시킬 수 있고, 그 결과 탐색 시간을 감소시킨다.
도 13의 예에서, 3개의 비교 회로들이 제공되어 두 개의 탐색이 동시에 수행된다. n개의 탐색이 동시에 수행될 때, 2n-1개의 비교 회로들이 일반적으로 제공될 수 있다. 상기 제어 회로(36Z)는 상기 탐색 범위의 1/2n, 2/2n, ..., (2n-1)/2n 위치에 있는 각각의 데이터 부분을 상기 2n-1개의 비교 회로들에 각각에 입력하고 상기 비교 회로들을 병렬적으로 운용시켜서, 상기 각각의 데이터 집합을 비교 타겟 데이터와 비교하게 한다. 다음으로, 상기 제어 회로(36Z)는 상기 비교 회로들로부터 비교 결과들을 획득하고, 상기 비교 타겟 데이터가 발견되었는지를 결정한다. 만약 임의의 비교 회로들이 매치되는 데이터가 있음을 나타내는 신호를 출력하면, 상기 제어 회로(36Z)는 상기 비교 타겟 데이터가 발견되었음을 결정하고 상기 이진 탐색을 종료한다. 만약 그러한 신호 출력이 존재하지 않으면, 상기 프로세스는 다음의 탐색으로 시프트될 것이다. 만약 상기 비교 타겟 데이터가 상기 데이터베이스 내에 존재하면, 상기 2n-1개의 비교 회로들의 비교 결과들이 변화하는 포인트들 사이의 범위 내에서 상기 데이터가 존재해야만 한다. 예를 들면, 15개의 비교 회로들이 제공되는 실시예에서, 5/16 위치에서의 데이터 부분이 비교 타겟 데이터보다 작고 6/16 위치에서의 데이터 부분이 상기 비교 타겟 데이터 부분보다 더 크면, 상기 비교 타겟 데이터는 5/16과 6/16 위치 사이의 범위 내에 존재해야만 한다. 따라서, 상기 제어 회로(36Z)는 상기 비교 회로들로부터 비교 결과들을 획득하고, 상기 비교 결과들이 변화하는 포인트들 사이의 범위로 상기 다음의 탐색 범위를 설정한다. 다음으로, 상기 제어 회로(36Z)는, 설정된 다음의 탐색 영역에 있는 1/2n, 2/2n, ..., (2n-1)/2n 위치에서의 각 데이터 부분을 상기 각각의 비교 회로들에 입력시킨다.
전제 기술에서 3개의 제1 데이터베이스(50)가 제공된다; 제1 데이터베이스 50A는 상기 비교 회로 36A와 연결되어 탐색 영역에의 1/4 위치에 있는 데이터 부분을 상기 비교 회로 36A에 공급하고; 제1 데이터베이스 50B는 상기 비교 회로 36B와 연결되어 탐색 영역에의 2/4 위치에 있는 데이터 부분을 상기 비교 회로 36B에 공급하고; 제1 데이터베이스 50C는 상기 비교 회로 36C와 연결되어 탐색 영역에의 3/4 위치에 있는 데이터 부분을 상기 비교 회로 36C에 공급한다. 그러므로, 데이터 부분은 상기 비교 회로들로 동시에 병렬적으로 로드될 수 있고, 그 결과 데이터 로딩 시간을 감소시키고 고속의 이진 탐색을 가능하게 한다.
더 많은 비교 회로들을 제공하는 것은 상기 탐색 속도를 향상시킬 것이다. 시스템의 비용과 사이즈를 고려하여, 충분한 수의 비교 회로들을 구비하여 원하는 탐색 속도를 얻을 수 있다. 또한, 가능한 한 많은 비교 회로들을 갖는 제1 데이터베이스가 제공되는 것이 바람직함에도 불구하고, 몇몇 비교 회로들은 시스템의 비용 또는 사이즈를 고려하여 데이터베이스를 공유할 수 있다.
도 14는 상기 제1 데이터베이스의 내부 데이터의 또 다른 예를 도시한다. 도 14에 도시된 제1 데이터베이스(50)는 필터링이 적용되는 콘텐츠의 URL들을 저장한다. 상기 제1 데이터베이스(50)에 저장되는 데이터는, "00H" 또는 "01H"와 같은 와 일드 카드로서 인식되는 기결정 데이터를 포함할 수 있다. 도 13에 도시된 예에서, "*********"는 "http://www.xx.xx/*********"에서 와일드 카드로서 인식되고, 거기에 대응하는 비교 타겟 데이터가 무엇이든지 간에 그러한 데이터가 매치되는 비교기들(36a, 36b 등)에서 결정된다. 따라서, "http://www.xx.xx."로 시작하는 모든 문자열은 상기 이진 탐색 회로(36)에 의해서 검출된다. 결과적으로, "http://www.xx.xx/" 도메인 내의 모든 콘텐츠에 필터링을 적용하는 것과 같은 프로세싱이 쉽게 수행될 수 있다.
도 15는 제2 데이터 베이스의 내부 데이터의 예시도이다. 제2 데이터 베이스(60)는, 탐색 회로에 의해 탐색 결과를 저장하는 탐색 결과 영역(62)과, 통신 데이터에 대하여 수행하는 프로세싱 콘텐츠를 저장하는 프로세싱 콘텐츠 영역(64)을 포함하여, 탐색 결과와 프로세스 콘텐츠를 대응시켜 유지한다. 도 15의 예에서, 통신 데이터에 기준 데이터가 포함되어 있는 경우는 그 패킷의 통과를 허용하고, 포함되지 않은 경우는 그 패킷을 파기하는 조건이 설정되어 있다. 프로세싱 수행 회로(40)는, 탐색 결과에 기초하여 제2 데이터베이스(60)에서 프로세싱 콘텐츠를 탐색하여, 통신 데이터에 대하여 프로세싱을 수행한다. 프로세싱 수행 회로(40)도 유선 논리 회로에 의해 구현될 수도 있다.
도 16은 제2 데이터베이스의 내부 데이터의 다른 예시도이다. 도 16의 예에는 기준 데이터마다 프로세싱 콘텐츠가 설정되어 있다. 패킷의 치환을 수행하는 경우, 치환 전의 데이터를 제2 데이터베이스(60)에 저장해둘 수도 있다. 패킷의 라우팅이나 스위칭을 수행하는 경우, 경로에 관한 정보를 제2 데이터베이스(60)에 저장 해 둘 수도 있다. 프로세싱 수행 회로(40)는 탐색 회로(30)에 의한 탐색 결과에 따라, 제2 데이터베이스(60)에 저장되어 필터링, 라우팅, 스위칭, 치환 등의 프로세싱을 수행한다. 도 16과 같이, 기준 데이터마다 프로세싱 콘텐츠를 설정하는 경우, 제1 데이터 베이스(50)와 제2 데이터 베이스(60)를 통합할 수 있다.
제1 데이터베이스 및 제2 데이터베이스는 외부에서 재기록 가능하게 설정된다. 이들 데이터 베이스를 교체함으로써, 동시에 통신 제어 장치(10)를 이용하여 다양한 데이터 프로세싱이나 통신 제어를 구현할 수 있다. 또한, 탐색 대상이 되는 기준 데이터를 저장하는 데이터 베이스를 2개 이상 구비하여, 다단계의 탐색 프로세싱을 수행할 수 있다. 이때, 탐색 결과와 프로세싱 콘텐츠를 대응시켜 저장한 데이터베이스를 2개 이상 구비하여, 더 복잡한 조건 분기를 구현할 수 있다. 이에 의하여, 데이터 베이스를 복수 개 구비하여 다단계의 탐색을 수행할 경우에, 위치 검출 회로(32), 인덱스 회로(34), 이진 탐색 회로(36) 등을 복수 개 구비할 수 있다.
상술한 비교에 이용되는 데이터는, 동시에 압축 로직에 의해 압축될 수도 있다. 비교할 때에는, 소스 데이터와 타겟 데이터가 동일한 방식으로 압축될 수 있으면, 통상의 동일한 모습의 비교가 가능하다. 이에 의해, 비교시에 로딩하는 데이터 량을 감소시킬 수 있다. 로딩하는 데이터 량이 적다면, 메모리에서 데이터를 리드하기 시작하는 데에 필요한 시간이 단축되므로, 전체의 프로세싱 시간도 단축할 수 있다. 또한, 비교기의 양을 줄일 수 있으므로, 장치의 소형화, 경량화, 저 비용화에 기여할 수 있다. 비교에 이용되는 데이터는 압축된 형식으로 저장될 수 있고, 메모리에서 리드하기 시작한 후, 비교 전에 압축될 수 있다.
도 17은 전제 기술에 따른 통신 제어 장치의 다른 구성예를 나타낸다. 본 도면에 나타낸 통신 제어 장치(10)는 도 4에 도시된 통신 제어 장치(10)와 동일한 구성을 구비한 통신 제어부(12)를 2개 갖고 있다. 또한, 각각의 통신 제어부(12)의 동작을 제어하는 스위치 제어부(14)가 마련되어 있다. 각각의 통신 제어부(12)는 2개의 입출력 인터페이스(16)를 갖고 있고, 각각의 입출력 인터페이스(16)를 이용하여, 상류측, 하류측의 2개의 네트워크에 접속되어 있다. 통신 제어부(12)는 어느 한쪽의 네트워크로부터 통신 데이터를 입력받아 프로세싱한 데이터를 다른 편의 네트워크에 출력한다. 스위치 제어부(14)는 각각의 통신 제어부(12)에 설치된 입출력 인터페이스(16)의 입출력을 스위칭함으로써 통신 제어부(12)에 있어서 통신 데이터의 흐름의 방향을 전환한다. 이것에 의해 일방향만이 아니고 쌍방향의 통신 제어가 가능해진다.
스위치 제어부(14)는 통신 제어부(12)의 한편이 인 바운드, 다른 편이 아웃 바운드의 패킷을 프로세싱하도록 제어할 수 있고, 쌍방이 인 바운드의 패킷을 프로세싱하도록 제어할 수도 있고, 쌍방이 아웃 바운드의 패킷을 프로세싱하도록 제어할 수도 있다. 이것에 의해 예를 들면 교통의 상태가나 목적인 정도에 따라, 제어하는 통신의 방향을 가변으로 할 수 있다.
스위치 제어부(14)는 각 통신 제어부(12)의 동작 상태를 취득하고, 그 동작 상태에 따라 통신 제어의 방향을 전환할 수 있다. 예를 들면, 한편의 통신 제어부(12)를 대기 상태로 하고, 다른 편의 통신 제어부(12)를 동작시키고 있는 경우에, 그 통신 제어부(12)가 고장 등에 의하여 정지된 것을 감지하면, 대체로서 대기 중의 통신 제어부(12)를 동작시킬 수 있다. 이것에 의해, 통신 제어 장치(10)의 내고장성(fault tolerance)을 향상시킬 수 있다. 또한, 한편의 통신 제어부(12)에 대하여 데이터베이스의 업데이트 등의 유지 보수를 행할 때에, 다른 편의 통신 제어부(12)를 대신 동작시킬 수 있다. 이것에 의해 통신 제어 장치(10)의 운용을 정지시키지 않고 적절하게 유지보수를 할 수가 있다.
통신 제어 장치(10)에 3개 이상의 통신 제어부(12)가 설치될 수 있다. 스위치 제어부(14)는 예를 들면 교통의 상태를 취득하고 통신량이 많은 방향의 통신 제어 프로세싱에 보다 많은 통신 제어부(12)를 할당하도록 각 통신 제어부(12)의 통신의 방향을 제어할 수 있다. 이것에 의해 있는 한 방향의 통신량이 증가하여도 통신 속도의 저하를 최소한으로 억제할 수 있다.
도 18은 복수 개의 통신 제어 장치들(10a, 10b, 10c 등)을 포함하는 통신 제어 장치(10)의 구성을 나타낸다. 증가하는 데이터 부분들의 개수에 비례하여 상기 제1 데이터베이스(50)가 더 큰 용량을 필요로 하기 때문에, 상기 통신 제어 장치들(10a, 10b, 10c 등)에 의해 저장될 수 있도록 상기 데이터베이스가 여러 부분들로 분할된다. 이하 기술할 바와 같이, 종래 기술에 따른 통신 제어 시스템(100)에서는, 프로세싱될 통신 패킷이 운영 중인 모든 통신 제어 장치들(10a, 10b, 10c 등)에 전송되고, 상기 통신 제어 장치(10)의 각각은 패킷을 수신하여 프로세싱한다. 예를 들면, 상기 통신 제어 장치 10a는 데이터 ID "000001"-"100000"으로 데이터를 저장하고, 상기 통신 제어 장치 10b는 데이터 ID "100001"-"200000"으로 데이터를 저장하며, 상기 통신 제어 장치 10c는 데이터 ID "200001"-"300000"으로 데이 터를 저장한다; 상기 통신 제어 장치들 각각은 패킷을 프로세스하기 위해 각 데이터를 참조한다.
도 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)에 저장되는 데이터베이스들을 업데이트하는 절차를 기술할 것이다. 상기 데이터베이스 서버(150)는 특정 시간에 외부 데이터베이스로부터 가장 최신의 데이터베이스를 획득하고 그것을 저장한다. 통신 제어 장치(10)에서 상기 데이터베이스 서버(150)에 저장된 최신의 데이터베이스를 반영하기 위해서, 상기 운용 감시 서버(110)는 상기 데이터베이스 서버(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는 통신 제어 장치의 데이터베이스가 업데이트되는 상태를 나타낸다. 데이터베이스 서버(150)는 운용중의 통신 제어 장치(10)의 어느 한쪽이 담당하는 사용자 데이터를 대기중이었던 장치 ID "6"의 통신 제어 장치(10)의 사용자 데이터베이스(50)에 저장한다. 도 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)는 상기 패킷을 프로세싱한다. 다음으로, 그러한 메커니즘을 제공하는 기술을 설명할 것이다.
도 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 어드레스와 무관하게 모든 패킷들을 수신하는 불규칙(promiscuous) 모드로 설정된다. 상기 광 스플리터(220)로부터 평행캐스트를 통해 전송되는 패킷을 수신할 때, 상기 통신 제어 장치들 각각은 MAC 어드레스를 생략하고 모든 패킷을 획득하여 프로세싱한다.
예컨대, 상기 통신이 금지되기 때문에 패킷이 상기 통신 소스로 반환되어야할 필요가 있으면, 상기 통신 제어 장치(10c)는 상기 광 스플리터(220)를 바이패스하여 응답 패킷을 상기 스위치(210)에 전송할 것이다. 만약 상기 통신 제어 장치(10c)가 패킷을 프로세싱하고 상기 통신이 허용되면, 상기 통신 제어 장치(10c)는 상기 패킷을 네트워크에 전송할 것이다. 상기 통신 제어 장치들(10) 및 상기 업스트림 통신 라인 사이에는, 복수 개의 통신 제어 장치들(10a, 10b 및 10c)로부터 전송된 패킷들을 집결시키는 스위치(230)가 제공된다. 상기 통신 제어 장치(10c)는 상기 스위치(230)에 실질적으로 상기 패킷을 전송할 것이고, 상기 스위치는 상기 업스트림 통신 라인에 상기 패킷을 전송한다.
상기 스위치(230)가 패킷 전송의 목적지로부터 전송되는 반환 패킷을 수신할 때 그리고 상기 반환 패킷이 상기 통신 제어 장치들(10)에 의해 프로세싱될 필요가 없으면, 상기 패킷은 상기 스위치(230)의 포트(232)로부터 상기 스위치(210)의 포트(212)로 전송될 것이며, 다음으로 그곳으로부터 전송 소스로 전송될 것이다. 인터넷에서는, 상기 전송 경로가 일반적으로 상기 패킷에 기록되어 패킷에 대한 반환시의 전송 응답 패킷이 전송 소스로 틀림없이 도달할 수 있도록 하는 반환 경로를 보장한다. 그러나, 본 발명의 실시예에서는, 상기 반환 경로가 상기 통신 경로 제어 장치(200) 내에서 이미 제공되기 때문에, 상기 경로를 기록하지 않고 또는 상기 패킷을 프로세싱하지 않고서 장치들 간에 통신이 수행될 수 있다. 결과적으로, 불필요한 프로세스가 제거될 수 있고, 그 결과 프로세싱 속도를 향상시킬 수 있다.
도 22의 예는 전송 소스로부터 전송 목적지로 전송되는 패킷만이 프로세싱되는 경우를 도시하지만, 상기 전송 목적지로부터 상기 전송 소스로 전송되는 반환 패킷은 프로세스되지 않고 통과되도록 만들어진다. 대안적으로, 상기 통신 제어 장치들(10)이 양 방향으로 전송되는 패킷들을 프로세싱하도록 상기 통신 경로 제어 장치(200)가 구성될 수 있다. 그러한 경우에, 상기 광 스플리터(220)는 상기 통신 제어 장치들(10)의 양쪽에 제공될 수 있다. 또한, 상기 스위치(230)로부터 스위치(210)로의 바이패스 경로가 제공될 필요가 없다.
그러한 방법으로서, 모든 통신 제어 장치들에 병렬캐스트롤 통해서 패킷을 전송함으로써, 미리 상기 패킷이 프로세스되는 통신 제어 장치를 특정할 필요 없이, 복수 개의 통신 제어 장치들 사이의 적절한 통신 제어 장치에 의해 상기 패킷이 적절하게 프로세싱될 수 있다.
이전에 설명한 바와 같이, 패킷을 프로세스하거나 또는 파기하기 위해서, 이러한 통신 제어 장치들이 상기 통신 경로 제어 장치(200)로부터 전송되는 모든 패킷들을 병렬캐스트를 통해서 수신하기 때문에, 상기 장치들은 인터넷에서 상기 장치들을 유일하게 식별하는 IP 어드레스를 제공할 필요가 없다. 상기 기술한 패킷 프로세싱이 서버 장치들 등에 의해 수행되면, 상기 서버 장치들로의 공격을 고려하 는 것이 필수적일 것이다. 그러나, 본 발명의 실시예에 따른 통신 제어 장치들은 인터넷을 통한 악의 있는 제3자에 의해 직접적으로 공격받을 수 없기 때문에, 통신 제어가 안전하게 수행될 수 있다.
(실시예)
도 23은 본 발명의 실시예에 따른 통신 관리 시스템의 구성을 나타낸다. 통신 관리 시스템(300)은, 패킷 필터링 기능 등을 갖는 상기 통신 제어 시스템(100)을 이용하여, P2P 노드들(320) 간의 부적당한 통신을 차단하거나 종속시키는 것과 같은 P2P 통신을 관리한다.
개인용 컴퓨터와 같은 사용자 단말(310)은, 일반적으로 공중 전화 네트워크, 휴대 전화 네트워크, LAN, 또는 WAN(비예시적임)을 통해서 인터넷 서비스 제공자(이하, "ISP")에 연결되고, 상기 ISP(330)를 통해 상기 인터넷(390)에 연결된다. 파일-공유 소프트웨어를 포함하는 P2P 어플리케이션을 수행하는 상기 P2P 노드들(320)은 서로 간에 P2P 접속들을 포함하고, 이는 P2P 네트워크(322)를 형성한다. 상기 "P2P 노드(320)"는, 파일-공유 어플리케이션에서의 파일 탐색 기능 등을 제공하는 서버 또는 호스트로서 기능하는 장치를 포함한다.
서버-클라이언트 모델에서, 클라이언트가 인터넷을 통해 서버에 접속함으로써 정보를 획득함에 반해, 서버는 정보를 저장한다. 따라서, 불법 콘텐츠의 분배가 검출될 때, 상기 콘텐츠를 제공하는 서버만이 발견되고 중단될 필요가 있다. 그러나, 상기 P2P 네트워크(322)에서는, 직접적인 통신이 P2P 노드들(320) 간에 수행되기 때문에 불법 콘텐츠의 분배가 검출되기 어렵고, 그러한 분배가 검출되더라도 상 기 불법 콘텐츠를 제공하는 P2P 노드(320)를 식별하는 것은 어렵다.
또한, 상기 P2P 네트워크(322)에 제공되지 않는 파일 공유에 대한 파일 탐색 서버 없이 상기 파일에 대해 조사함으로써 P2P 노드들(320) 사이에서 직접적으로 파일이 발견되는 경우에는, P2P 노드들(320)의 증가하는 개수에 따른 가속된 속도로서 통신이 증가할 것이다. 따라서, 네트워크 혼잡이 발생할 수 있고, 그 때문에 상기 ISP(330)를 이용하여 다른 사용자 단말(310)에 영향을 미칠 수 있다.
게다가, P2P 노드(320)가 상기 P2P 네트워크(322)에 있는 다른 P2P 노드(320)와 직접적으로 통신하기 때문에 상기 네트워크는 악의 있는 P2P 노드들(320)로부터 공격받기 쉽고, 바이러스들을 확산시키는 온상(breeding ground)이될 수 있다. 결과적으로, 컴퓨터 안전에 대한 무지하거나 또는 무관심한 사용자들은 파일-공유 어플리케이션을 사용하여 바이러스에 감염되고, 중요한 정보의 유출을 포함하는 사회적 문제를 야기시킨다.
이러한 상황 하에서, P2P 통신을 관리하는 적절한 기술이 강력하게 요구되지만, P2P 노드들(320) 간에 데이터 전송을 조절하는 것은 어렵다. 본 발명의 실시예는, P2P 노드(320)를 검출하고 상기 P2P 노드(320)로 상기 통신의 적절한 필터링을 수행하는 기술을 제안한다. 본 발명의 사회적 분배가 주목할만한 것으로 여겨질 수 있도록, 이러한 기술은 전술한 문제들을 해결할 것으로 기대된다.
본 발명의 실시예에서, 전제 기술에서 설명되는 상기 통신 제어 시스템(100)은, 도 23에 도시된 바와 같이, 상기 P2P 네트워크(322)에 있는 사용자 단말(310) 및 P2P 노드(320) 간에 제공된다. 또한, P2P 노드(320)의 IP 어드레스 등을 검출하 는 P2P 노드 검출 네트워크(352)가 제공되고; 상기 P2P 노드(320)로 통신을 검출하기 위해서 노드 검출기(340)에 의해 검출되는 P2P 노드(320)의 IP 어드레스를 포함하는 식별 정보의 통신 제어 시스템(100)을 통지하기 위해서 상기 네트워크가 이용된다. 상기 통신 제어 시스템(100)은 네트워크의 임의의 위치에 제공될 수 있고, 도 23은 ISP(330)가 통신 제어 시스템(100)을 갖는 예를 나타낸다. ISP(330)를 통해서 대부분의 P2P 노드들(320)이 인터넷(390)에 접속되기 때문에, 각 ISP(330)가 상기 통신 제어 시스템(100)을 이용하면 P2P 통신은 좀더 신뢰성 있게 관리될 수 있다.
P2P 노드(350)는 2계층 스위치(344) 및 라우터(342)를 통해서 인터넷(390)에 연결되고, 통신에 대한 P2P 노드(320)로 P2P 접속을 갖기 위해 P2P 어플리케이션을 수행한다. 상기 P2P 노드(320)의 IP 어드레스 및 TCP/UDP 포트 넘버를 포함하는 식별 정보를 검출하기 위해서, 상기 노드 검출기(340)는 P2P 노드(350) 및 상기 P2P 네트워크(322) 사이에 제공되고, 상기 P2P 네트워크(322)에 있는 P2P 노드(350) 및 P2P 노드(320) 사이에서 전송되는 통신 패킷을 획득하여 분석한다. 사용되는 어플리케이션이 DNS로의 조사에 대한 노드와 같은 P2P 노드(350)에 의해 수행되는 P2P 어플리케이션이 아닐 때, 상기 노드 검출기(340)는 통신의 다른 편에 무리(party)를 기록하지 않고, P2P 어플리케이션을 이용하여 통신의 다른 편에 상기 무리를 검출하여 기록한다. 상기 노드 검출기(340)는 P2P 노드(350)로부터 또는 P2P 노드(350)로 전송되는 패킷을 분석하지만, 상기 검출기가 2계층 투명(layer 2 transparent)일 때에 필터링을 수행하지 않고 상기 패킷이 통과되도록 만든다. 또 한, 도 23에 도시된 노드 검출기(340)는 그러한 2계층 투명 타입 이외에도 라우터-타입의 장치로서 제공될 수 있다. 그러한 경우에, 그것이 일반적인 라우터-타입의 장치이면 상기 노드 검출기(340)는 라우팅을 수행하지만, P2P 어플리케이션을 이용하여 통신의 다른 편에 무리를 검출하여 기록한다. 상기 노드 검출기(340)에 의해 검출된 P2P 노드(320)의 IP 어드레스 및 TCP/UDP 포트 넘버는 P2P 노드 데이터베이스(360)에 등록된다. 전제 기술에서 설명된 바와 같이, 상기 통신 제어 시스템(100)의 데이터베이스 서버(150)에 의해서 특정 시간에 상기 통신 제어 장치(10)의 제1 데이터베이스(50)에서 상기 P2P 노드 데이터베이스(360)에 등록된 데이터ㄱ가 반영된다.
상기 인덱스 회로(34) 및 이진 탐색 회로(36)를 이용하여, 상기 통신 제어 장치(10)는 상기 ISP(330)를 통과하는 패킷의 전송 소스 또는 전송 목적지의 IP 어드레스 및 TCP/UDP 포트 넘버에 대한 제1 데이터베이스(50)를 탐색한다. 상기 IP 어드레스 및 TCP/UDP 포트 넘버가 상기 제1 데이터베이스(50)에 등록되면, 그것은 상기 패킷이 P2P 노드(320)로의 P2P 통신으로부터 기인한 것임을 의미한다. 따라서, P2P 통신을 제한하기 위해서 상기 프로세스 수행 회로(40)는 상기 패킷을 파기할 것이고, 또는 다른 통신들에 종속시키기 위해서 상기 패킷의 전송을 지연시킬 것이다. 반면에 제1 데이터베이스(50)에 상기 IP 어드레스 및 TCP/UDP 포트 넘버가 등록되지 않으면, 상기 프로세스 수행 회로(40)가 패킷을 파기함이 없이 패킷을 네트워크로 전송하도록 상기 패킷이 P2P 통신으로부터 기인하지 않는다. 따라서, P2P 통신이 검출되어 억제된다.
상술한 예에서, 상기 노드 검출기(340)는 P2P 노드(320)의 IP 어드레스 및 TCP/UDP 포트 넘버를 검출하여 획득한다. P2P 통신에서 다른 프로토콜이 사용되면, 상기 P2P 통신이 검출되는 P2P 노드(320)의 다른 식별 정보가 상기 프로토콜에 따라 획득될 수 있다.
상기 사용자 단말(310)이 P2P 어플리케이션을 새롭게 활성화하고 P2P 노드(350)와 통신할 때, 상기 노드 검출기(340)는 상기 P2P 노드 데이터베이스(360)에 등록된 P2P 노드의 IP 어드레스 및 TCP/UDP 포트 넘버를 검출한다. 그러므로, 상기 P2P 노드 데이터베이스(360)가 상기 통신 제어 시스템(100)에서 반영되는 시간 간격이 짧아지면, P2P 노드(320)와의 첫번째 통신 이후에 단시간에 새로운 P2P 노드(320)와의 P2P 통신 제어가 시작할 수 있다.
P2P 통신이 P2P 노드(320)로 수행되고 상기 P2P 노드(320)가 상기 P2P 노드 데이터베이스(360)에 등록될 때, 하지만 긴 시간에 상기 P2P 노드(320)와의 P2P 통신이 존재하지 않으면 상기 P2P 노드(320)는 상기 P2P 노드 데이터베이스(360)로부터 삭제될 수 있다. 예를 들면, 사용자가 사용자 단말(310)로부터의 P2P 어플리케이션을 삭제하고 다른 통신을 위한 P2P 어플리케이션의 통신에서 사용되는 포트 넘버를 이용하는 경우에는, 상기 포트 넘버가 상기 P2P 노드 데이터베이스(360)에서의 IP 어드레스와 함께 등록되기 때문에 그것이 P2P 통신이 아닐지라도 상기 포트 넘버를 이용하는 통신이 제한될 것이다. 따라서, P2P 노드(320)가 최종 시간에 검출될 때 날짜 및 시간이 상기 P2P 노드 데이터베이스(360)에 기록되고, 최종 검출의 날짜 및 시간 이후에 특정 시간 동안에 P2P 노드(320)가 검출되지 않으면 상기 P2P 노드(320)의 정보가 상기 P2P 노드 데이터베이스(360)로부터 삭제될 수 있다. 상기 사용자 단말(310)이 P2P 노드와의 P2P 통신을 재시작하면, 상기 노드와의 P2P 통신이 제한되거나 또는 종속되도록, 상기 P2P 노드는 상기 노드 검출기(340)에 의해 검출될 것이고 상기 P2P 노드 데이터베이스(360)에 다시 등록될 것이다.
도 24는 상기 통신 관리 시스템의 다른 예시적 구성을 나타낸다. 도 24에 도시된 통신 관리 시스템(300)은 P2P 노드 검출 네트워크(352)의 구성에 있어서 도 23에 도시된 통신 관리 시스템(300)과는 상이하다. 보다 구체적으로, 상기 노드 검출기(340)가 상기 라우터(342) 및 2계층 스위치(344) 사이에 제공되지 않고 상기 2계층 스위치(344)의 뒤에서 연결된다. 이 예에서, 상기 2계층 스위치(344)의 포트 반사 기능을 이용하여, 상기 2계층 스위치(344)를 통과하는 모든 패킷들이 복사되어 상기 노드 검출기(340)로 전송된다. P2P 노드(320)의 식별 정보를 획득하기 위해서 상기 노드 검출기(340)는 획득된 패킷을 분석하고, 상기 패킷을 파기한다. 다른 구성 및 운용은 도 23에 도시된 통신 관리 시스템(300)과 동일하다.
도 25는 본 발명의 실시예에 따른 패킷 프로세싱 회로(20)의 구성을 나타낸다. 상기 패킷 프로세싱 회로(20)는, 도 4에 도시된 전제 기술의 패킷 프로세싱 회로(20)의 구성에 부가하여 디코더 회로(70) 및 해독 키(72)를 포함한다.
P2P 어플리케이션을 위해 사용되는 프로토콜에서, 종종 특유한 문자열들이 포함된다. 예컨대, P2P 어플리케이션의 이름을 포함하는 식별 정보가 TCP 패킷의 헤더에 제공될 때, 상기 패킥이 P2P 통신으로부터 얻어진 것이지 여부가 그러한 문자열들을 검출함으로써 결정될 수 있다. 따라서 본 발명의 실시예에서, 전제 기술 에서 설명된 위치 검출 회로(32)를 이용하여 패킷에 포함되는 P2P 통신에 특유한 문자열이 검출되어, 그 문자열이 P2P 통신인지를 결정한다. 상기 인덱스 회로(34) 및 이진 탐색 회로(36)에 의해 수행되는 제1 데이터베이스(50)와의 매칭을 수행하지 않고도, P2P 통신에 특유한 문자열을 포함하는 패킷이 파기되고 또는 상기 프로세스 수행 회로(40)에 의해 종속된다. 따라서, P2P 통신이 효율적으로 검출되어 필터링된다.
몇몇 P2P 어플리케이션들로, 통신 데이터는 전송되기 이전에 암호화된다. P2P 어플리케이션에 의해 암호화된 통신 데이터를 해독하는 해독 키(72)를 이용하여, 상기 디코더 회로(70)는 획득된 패킷의 통신 데이터를 해독한다. 예컨대, 일반적인 키 암호작성법(key cryptography)을 이용하여 P2P 어플리케이션에 의해 통신 데이터가 암호화될 때, 상기 통신 데이터를 해독하기 위한 해독 키(72)로서 일반적인 키 암호해독법이 사용된다. 종래 기술에서 설명한 바와 같이, CPU 또는 OS를 갖지 않는 유선 로직 회로로서 구성되는 전용 하드웨어 회로로서 상기 디코더 회로(70)가 제공된다. 상기 해독 키(72)는 외부로부터 재기록가능하도록 제공될 수 있다. 따라서, 상기 패킷 프로세싱 회로(20)는 P2P 어플리케이션의 상기 해독 키가 변화하는 경우에 유연하게 응답할 수 있다. 또한, 서로 다른 P2P 어플리케이션이 수행될 경우에도 상기 패킷 프로세싱 회로(20)가 일반적으로 이용될 수 있다.
또한 상기의 경우에서, 상기 위치 검출 회로(32)는 해독된 통신 데이터에서의 P2P 통신에 특유한 문자열을 검출한다. 상기 패킷이 P2P 통신으로부터 유래된 것이 아니면, 상기 디코더 회로(70)에 의한 해독 프로세스는 무의미한 데이터 열을 남기고, P2P 통신에 특유한 그러한 문자열은 검출되지 않을 것이다. 그러므로, P2P 통신에 특유한 문자열이 포함되는지를 체크함으로써, 패킷이 P2P 통신으로부터 유래된 것인지 여부가 결정될 수 있다.
본 발명은 실시예를 참조하여 기술하였다. 본 발명의 실시예는 예시적인 것으로 기술하였으며, 본 발명의 기술 분야에 속한 당업자는 구성 요소들 또는 프로세스들의 다양한 변형 또한 본 발명의 범위에 속함을 이해할 것이다.
본 발명은 P2P 통신을 적절하게 관리하는 기술을 제공한다.
본 발명은 P2P 통신을 관리하는 통신 관리 시스템에 적용할 수 있다.

Claims (12)

  1. 개인대개인 통신을 수행하는 노드와의 통신을 위한 개인대개인 접속을 포함하는 단말;
    상기 단말로부터 또는 상기 단말로 전송되는 통신 데이터를 참조하여 상기 노드의 식별 정보를 검출하는 노드 검출기; 및
    상기 검출된 식별 정보를 참조하여 노드들 사이의 개인대개인 통신을 제어하는 통신 제어 장치
    를 포함하는 것을 특징으로 하는 통신 관리 시스템.
  2. 제1항에 있어서,
    상기 노드 검출기는 상기 노드의 IP 어드레스를 검출하고;
    상기 통신 제어 장치는, 전송 소스 또는 제어되는 통신 데이터의 전송 목적지의 IP 어드레스와 상기 검출된 IP 어드레스를 비교하여, 상기 통신 데이터가 상기 노드들 사이의 개인대개인 통신으로부터 유래된 것인지를 결정하는 것을 특징으로 하는 통신 관리 시스템.
  3. 제2항에 있어서,
    추가적으로, 상기 노드 검출기는 상기 노드가 개인대개인 통신을 수행하는 포트의 포트 넘버를 검출하고;
    추가적으로, 상기 통신 제어 장치는 상기 검출된 포트 넘버를 참조하여 제어되는 통신 데이터가 노드들 사이의 개인대개인 통신으로부터 유래된 것인지를 결정하는 것을 특징으로 하는 통신 관리 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 통신 제어 장치는:
    상기 노드 검출기에 의해 검출된 노드의 식별 정보를 저장하는 데이터베이스;
    통신 데이터를 획득하고 전송 소스의 식별 정보 또는 통신 데이터의 전송 목적지에 대한 데이터베이스를 탐색하는 탐색 회로; 및
    상기 탐색 회로의 탐색 결과에 따라 상기 통신 데이터의 필터링을 수행하는 필터링 회로를 포함하는 것을 특징으로 하는 통신 관리 시스템.
  5. 제4항에 있어서,
    상기 노드 검출기에 의해 검출되는 상기 노드의 식별 정보를 저장하는 노드 데이터베이스; 및
    상기 노드 데이터베이스를 참조하여 상기 통신 제어 장치의 데이터베이스를 업데이트하는 데이터베이스 서버를 더 포함하는 것을 특징으로 하는 통신 관리 시스템.
  6. 제3항 또는 제4항에 있어서,
    상기 탐색 회로는 상기 통신 데이터의 상기 전송 소스 또는 전송 목적지가 상기 노드인지를 결정하고, 상기 필터링 회로는 상기 통신 데이터를 파기하거나 또는 종속시키는 것을 특징으로 하는 통신 관리 시스템.
  7. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 통신 제어 장치는, 획득된 상기 통신 데이터가 개인대개인 통신에 특유한 문자열을 포함하는지를 결정하여 상기 개인대개인 통신으로부터 유래된 통신 데이터를 검출하는 검출 회로를 더 포함하고;
    상기 검출 회로가 상기 개인대개인 통신으로부터 유래된 통신 데이터를 검출할 때, 상기 필터링 회로는 상기 통신 데이터를 파기하거나 또는 종속시키는 것을 특징으로 하는 통신 관리 시스템.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 통신 제어 장치는, 상기 개인대개인 통신을 위한 어플리케이션에 의해 암호화된 통신 데이터를 해독하는 해독 키를 이용하여, 획득된 통신 데이터를 해독하는 디코더 회로를 더 포함하는 것을 특징으로 하는 통신 관리 시스템.
  9. 제7항에 있어서,
    상기 검출 회로는, 상기 디코더 회로에 의해 해독되는 통신 데이터가 상기 개인대개인 통신에 특유한 문자열을 포함하는지를 결정하는 것을 특징으로 하는 통신 관리 시스템.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 통신 제어 장치는 유선 로직 회로로 구성되는 것을 특징으로 하는 통신 관리 시스템.
  11. 개인대개인 통신을 수행하는 노드와 통신할 수 있도록 개인대개인 접속을 포함하는 단말기로부터 전송되는 또는 상기 단말기로 전송되는 통신 데이터를 참조하여 노드의 IP 주소를 검출하는 단계; 및
    상기 검출된 IP 어드레스를 참조하여 노드들 간의 개인대개인 통신을 제어하는 단계를 포함하는 것을 특징으로 하는 통신 관리 방법.
  12. 개인대개인 통신을 통해 노드 및 다른 노드 간에 전송되는 통신 데이터를 참조하여 검출되는 노드의 식별 정보를 저장하는 데이터베이스;
    통신 데이터를 획득하고, 상기 전송 소스의 식별 정보 또는 통신 데이터의 전송 목적지에 대한 데이터베이스를 탐색하는 탐색 회로; 및
    상기 탐색 회로의 탐색 결과에 따라 통신 데이터의 필터링을 수행하는 필터링 회로를 포함하는 것을 특징으로 하는 통신 제어 장치.
KR1020087009070A 2008-04-16 2006-05-25 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치 KR20080057284A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020087009070A KR20080057284A (ko) 2008-04-16 2006-05-25 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020087009070A KR20080057284A (ko) 2008-04-16 2006-05-25 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치

Publications (1)

Publication Number Publication Date
KR20080057284A true KR20080057284A (ko) 2008-06-24

Family

ID=39803138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087009070A KR20080057284A (ko) 2008-04-16 2006-05-25 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치

Country Status (1)

Country Link
KR (1) KR20080057284A (ko)

Similar Documents

Publication Publication Date Title
JP4015690B1 (ja) 通信管理システム、通信管理方法、及び通信制御装置
US7865474B2 (en) Data processing system
US20080281716A1 (en) Communication Control Device
US9160771B2 (en) Method and apparatus for dynamic destination address control in a computer network
JP4571184B2 (ja) 通信管理システム
JP4188409B2 (ja) 通信管理システム、通信管理方法、及び通信制御装置
JP4574675B2 (ja) 通信管理システム
JP4146505B1 (ja) 判定装置及び判定方法
KR20080057284A (ko) 통신 관리 시스템, 통신 관리 방법, 및 통신 제어 장치
JPWO2009066343A1 (ja) 通信制御装置及び通信制御方法
JPWO2008075426A1 (ja) 通信制御装置及び通信制御方法
KR20080017046A (ko) 데이터 프로세싱 시스템
JP5380710B2 (ja) 通信制御装置
JP4638513B2 (ja) 通信制御装置及び通信制御方法
JP4676530B2 (ja) 通信制御装置
JPWO2009066344A1 (ja) 通信制御装置、通信制御システム及び通信制御方法
JPWO2009066349A1 (ja) 通信制御装置及び通信制御方法

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application