상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템은, 대응하는 서버 주소를 가지는 서비스 서버, 대응하는 자신의 서버 주소를 가지며, 연결된 클라이언트 단말기들 중 멀티캐스트 주소에 가입한 클라이언트 단말기의 클라이언트 주소를 클라이언 트 주소 리스트에 저장하는 연결 관리 서버 및 상기 클라이언트 주소는 무시하고, 상기 서버 주소만을 이용하여 메시지 라우팅을 처리하며, 상기 멀티캐스트 주소에 가입한 클라이언트 단말기와 연결된 연결 관리 서버의 서버 주소를 서버 주소 리스트에 저장하는 내부 라우터를 포함하는 것을 특징으로 한다.
이 때, 연결 관리 서버는 상기 연결된 클라이언트 단말기들에 상기 자신의 서버 주소에 소정의 클라이언트 주소를 결합한 네트워크 주소를 할당할 수 있다.
이 때, 내부 라우터는 상기 멀티캐스트 주소로 전송된 멀티캐스트 메시지가 수신되면 서버 주소 리스트에 포함된 서버 주소들로 멀티캐스트 메시지를 전송할 수 있다.
이 때, 연결 관리 서버는 멀티캐스트 메시지가 수신되면 멀티캐스트 메시지를 클라이언트 주소 리스트에 포함된 클라이언트 주소들로 전송하고, 상기 멀티캐스트 메시지가 연결된 클라이언트 단말기들로부터 수신된 것인 경우에, 내부 라우터로 상기 멀티캐스트 메시지를 전송할 수 있다. 이 때, 내부 라우터는 상기 연결 관리 서버의 서버 주소를 제외한 서버 주소 리스트 내의 서버 주소들로 상기 멀티캐스트 메시지를 전송할 수 있다.
이 때, 멀티캐스트 통신 네트워크 시스템은 상기 내부 라우터 측에서 상기 연결 관리 서버를 서비스 서버와 대등하게 인식할 수 있다. 즉, 내부 라우터는 서버 주소만을 이용하여 메시지 라우팅을 처리하므로, 내부 라우터는 연결 관리 서버도 하나의 서비스 서버로 보아 각각의 클라이언트 단말기가 아닌 연결 관리 서버를 대상으로 메시지 라우팅을 수행하고, 각각의 클라이언트 단말기에 대한 라우팅은 연결 관리 서버가 수행할 수 있다. 이 때, 내부 라우터와 서비스 서버 및 연결 관리 서버가 내부 네트워크를 구성하고, 클라이언트 단말기와 연결 관리 서버가 일종의 서브 네트워크를 구성하는 것으로 볼 수 있다.
또한, 본 발명의 다른 실시예에 따른 데이터 송/수신 방법은, 클라이언트 단말기로부터 수신된 주소 할당 요청에 응답하여 연결 관리 서버가 자신의 서버 주소에 소정의 클라이언트 주소를 결합한 네트워크 주소를 생성하여 상기 클라이언트 단말기에 할당하는 단계, 상기 연결 관리 서버가 상기 클라이언트 단말기로부터 멀티캐스트 주소 가입 요청을 받아 상기 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트에 상기 클라이언트 단말기의 클라이언트 주소를 등록하는 단계 및 내부 라우터가 상기 멀티캐스트 주소에 상응하는 서버 주소 리스트에 상기 연결 관리 서버의 서버 주소를 등록하는 단계를 포함하는 것을 특징으로 한다.
이 때, 네트워크 주소는 서버 주소 필드 및 클라이언트 주소 필드를 포함하고, 상기 내부 네트워크의 내부 라우터는 상기 클라이언트 주소 필드를 마스킹(masking)하여 메시지 라우팅을 처리할 수 있다. 이 때, 상기 연결 관리 서버는 상기 클라이언트 주소 필드를 이용하여 클라이언트 단말기를 식별할 수 있다.
이 때, 멀티캐스트 주소는 상기 서버 주소 필드에 기록될 수도 있고, 상기 클라이언트 주소 필드에 기록될 수도 있다. 연결 관리 서버는 상기 클라이언트 주소 필드에 멀티캐스트 주소가 기록된 멀티캐스트 메시지를 수신하면, 상기 클라이언트 주소 리스트에 포함된 클라이언트 주소로 상기 멀티캐스트 메시지를 전송하고, 상기 내부 라우터로 상기 멀티캐스트 메시지를 전송하지 않을 수 있다.
또한, 본 발명의 또 다른 실시예에 따른 데이터 송/수신 방법은 서버 주소만으로 메시지 라우팅을 처리하는 내부 라우터가 서비스 서버로부터 멀티캐스트 주소로 송신된 멀티캐스트 메시지를 수신하는 단계, 상기 내부 라우터가 상기 멀티캐스트 주소에 상응하는 서버 주소 리스트 내의 서버 주소들로 상기 멀티캐스트 메시지를 전송하는 단계 및 상기 내부 라우터로부터 상기 멀티캐스트 메시지를 수신한 연결 관리 서버가 상기 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트 내의 클라이언트 주소들로 상기 멀티캐스트 메시지를 전송하는 단계를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템의 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템은 클라이언트 단말기들(211, 212, 213), 연결 관리 서버(220), 내부 라우터(230) 및 서비스 서버들(241, 242, 243)을 포함한다.
각각의 서비스 서버들(241, 242, 243)은 각각 대응하는 서버 주소를 가진다. 예를 들어, 도 2에 도시된 예에서 서비스 서버(241)의 서버 주소는 "A001XXX7"이고, 서비스 서버(242)의 서버 주소는 "A001XXX8"이고, 서비스 서버(243)의 서버 주소는 "A001XXX9" 일 수 있다.
서비스 서버들(241, 242, 243)은 게임 서버일 수 있다. 서비스 서버들(241, 242, 243)은 모두 동일한 게임 서비스를 제공하는 게임 서버일 수도 있고, 각각 서로 다른 게임 서비스를 제공하는 게임 서버일 수도 있다. 예를 들어, 서비스 서버들(241, 242, 243)은 모두 "고스톱" 게임 서버일 수도 있고, 서비스 서버들(241, 242, 243)은 각각 "고스톱" 게임 서버, "당신은 골프왕" 게임 서버 및 "건스터" 게임 서버일 수 있다.
클라이언트 단말기들(211, 212, 213)은 인터넷 등 네트워크를 통하여 서비스 서버들(241, 242, 243)에 접속하여 온라인 서비스 서버들(241, 242, 243)이 제공하는 서비스를 제공 받는다. 이 때, 클라이언트 단말기들(211, 212, 213)은 모두 연결 관리 서버(220)를 통해서만 서비스 서버들(241, 242, 243)에 접속할 수 있고, 직접 서비스 서버들(241, 242, 243)에 접속할 수 없다.
연결 관리 서버(Connection Management Server; CMS)(220)는 클라이언트 단말기들(211, 212, 213)과 TCP/IP 연결을 설정한다. 클라이언트 단말기들(211, 212, 213)은 직접 서비스 서버들(241, 242, 243)과 TCP/IP 연결을 설정하지 아니하므로, 본 발명의 통신 네트워크 시스템은 클라이언트 측으로 서비스 서버들(241, 242, 243)의 IP주소가 노출되지 않도록 하여 외부의 해킹 위협으로부터 서비스 서버들(241, 242, 243)을 보호할 수 있다.
연결 관리 서버(220)는 대응하는 자신의 서버 주소를 가진다. 예를 들어, 도 2에 도시된 예에서 연결 관리 서버(220)의 서버 주소는 "C001XXX1" 일 수 있다.
내부 라우터(230)는 서버 주소를 이용하여 연결 관리 서버(220) 및 서비스 서버들(241, 242, 243) 사이의 메시지 라우팅을 처리한다. 이 때, 내부 라우터 (230)는 복수 개의 브로커(broker)들이 완전 매시(full mesh) 형태로 상호 연결된 것일 수 있다. 내부 라우터(230)에 관한 상세한 내용은 2004년 12월 17일 출원된 한국출원번호 제2004-107496호에 상세하게 개시되어 있다.
내부 라우터(230) 측에서는 연결 관리 서버(220)를 일종의 서비스 서버로 보아 서비스 서버들(241, 242, 243)과 대등하게 인식할 수 있다. 이 때, 내부 라우터(230), 연결 관리 서버(220) 및 서비스 서버들(241, 242, 243)은 서버 주소만으로 어드레싱되는 내부 네트워크를 구성한다.
이 때, 연결 관리 서버(220) 및 서비스 서버들(241, 242, 243)은 각각 서버 주소에 의하여 유일하게 식별된다.
연결 관리 서버(220)는 주소 할당을 요청한 클라이언트 단말기에 자신의 서버 주소에 소정의 클라이언트 주소를 결합한 네트워크 주소를 할당한다. 즉, 네트워크 주소는 서버 주소 필드 및 클라이언트 주소 필드로 구성될 수 있다. 이미 살펴본 바와 같이, 연결 관리 서버(220)의 서버 주소가 "C001XXX1"이라고 하면, 연결 관리 서버(220)에 주소 할당을 요청한 클라이언트 단말기들(211, 212, 213)에는 각각 "C001XXX1001", "C001XXX1002", "C001XXX1003"이 네트워크 주소로 할당될 수 있다. 이 때, "C001XXX1001"에서 "C001XXX1"은 연결 관리 서버(220)의 서버 주소인 서버 주소 필드에 해당하고, "001"은 클라이언트 단말기(211)에 할당된 클라이언트 주소 필드에 해당한다. 또한, "C001XXX1002"에서 "C001XXX1"은 연결 관리 서버(220)의 서버 주소인 서버 주소 필드에 해당하고, "002"는 클라이언트 단말기(212)에 할당된 클라이언트 주소 필드에 해당한다. 마찬가지로, "C001XXX1003"에서 "C001XXX1"은 연결 관리 서버(220)의 서버 주소인 서버 주소 필드에 해당하고, "003"은 클라이언트 단말기(213)에 할당된 클라이언트 주소 필드에 해당한다.
연결 관리 서버(220)는 클라이언트 단말기들(211, 212, 213)과 서비스 서버들(241, 242, 243) 사이의 유니캐스트 메시지의 발신 주소 및 목적지 주소를 변경하지 아니하고 메시지를 그대로 전달한다.
이와 같이, 연결 관리 서버(220)가 주소 변환 없이 유니캐스트 메시지를 단순히 패스 포워딩(pass forwarding)함으로써, 연결 관리 서버(220)의 오버헤드(overhead)를 줄일 수 있어 한 대의 연결 관리 서버(220)가 관리 가능한 클라이언트 단말기의 수를 늘릴 수 있다.
도 3은 본 발명의 도 2에 도시된 멀티캐스트 통신 네트워크 시스템에서 사용되는 네트워크 주소의 일 예를 나타낸 도면이다.
도 3을 참조하면, 도 2에 도시된 멀티캐스트 통신 네트워크 시스템에서 사용되는 네트워크 주소는 캐스트 타입 식별 필드(310), IDC 식별 필드(320), 서버 주소 필드(330), 클라이언트 주소 필드(340) 및 확장 필드(350)를 포함하여 128 비트(16 바이트)로 구성될 수 있다.
캐스트 타입 식별 필드(310)는 특정 서비스를 식별하기 위해 유니캐스트(unicast), 애니캐스트(anycast), 멀티캐스트(multicast)의 3가지 주소 유형을 나타낼 수 있다.
IDC 식별 필드(320)는 IDC를 식별하기 위한 IDC 식별자가 기록되는 필드이다. 예를 들어, IDC 식별자는 한국이 "1", 일본이 "2" 및 "3", 중국이 "4", "5", "6" 및 "7"일 수 있다.
서버 주소 필드(330)는 서버 주소가 기록되는 필드이다. 예를 들어, 도 2에 도시된 예에서 클라이언트 단말기(211) 및 연결 관리 서버(220)를 가리키기 위해 서버 주소 필드(330)에 "C001XXX1"이 기록되고, 서비스 서버(241)를 가리키기 위해 서버 주소 필드(330)에 "A001XXX7"이 기록될 수 있다.
클라이언트 주소 필드(340)는 클라이언트 주소가 기록되는 필드이다. 예를 들어, 도 2에 도시된 예에서 클라이언트 단말기(211)를 가리키기 위해 클라이언트 주소 필드(340)에 "001"이 기록되고, 클라이언트 단말기(212)를 가리키기 위해 클라이언트 주소 필드(340)에 "002"가 기록될 수 있다.
클라이언트 주소 필드(340)는 내부 네트워크 내의 연결 관리 서버(220)나 서비스 서버들(241, 242, 243)을 가리킬 때는 돈 캐어(don't care) 처리된다. 즉, 내부 네트워크에서는 클라이언트 주소 필드(340)에 어떤 주소가 기록되었는지를 전혀 상관하지 않고, 서버 주소 필드(330)만을 이용하여 메시지 라우팅을 수행한다.
확장 필드(350)은 필요한 경우를 대비하여 남겨둔 데이터 공간이다.
본 발명의 멀티캐스트 통신 네트워크 시스템은 연결 관리 서버를 통하여 데이터를 송/수신하기 위해 발신 주소 및 목적지 주소를 지칭할 때 IP 주소가 아니라 도 3에 도시된 것과 같은 네트워크 주소 체계를 사용한다.
이하, 다시 도 2를 참조하여 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템의 유니캐스트 메시지 전송시의 동작을 상세히 설명한다.
클라이언트 단말기들(211, 212, 213)은 연결 관리 서버(220)의 IP주소로 TCP/IP 접속하여 주소 할당을 요청한다.
연결 관리 서버(220)는 클라이언트 단말기들(211, 212, 213)의 주소 할당 요청에 응답하여 클라이언트 단말기들(211, 212, 213) 각각에 자신의 서버 주소(C001XXX1)에 소정의 클라이언트 주소(001, 002, 003)를 결합한 네트워크 주소(C001XXX1001, C001XXX1002, C001XXX1003)를 할당한다.
클라이언트 단말기(212)는 자신의 네트워크 주소(C001XXX1002)를 발신 주소로 하고, 목적지 주소의 서버 주소 필드를 서비스 서버(242)의 서버 주소(A001XXX8)로 하여 유니캐스트 메시지를 전송할 수 있다. 이 때, 목적지 주소의 클라이언트 주소 필드에는 미리 결정된 주소를 기록할 수도 있고, 아무 것도 기록하지 아니할 수도 있다.
연결 관리 서버(220)는 클라이언트 단말기(212)로부터 유니캐스트 메시지를 수신하면, 유니캐스트 메시지의 발신 주소(C001XXX1002) 및 목적지 주소를 변경하지 아니하고 그대로 내부 네트워크의 내부 라우터(230)로 전달한다.
내부 라우터(230)는 전달된 유니캐스트 메시지의 목적지 주소의 서버 주소 필드(A001XXX8)를 이용하여 해당하는 서비스 서버(242)로 유니캐스트 메시지가 전달되도록 메시지 라우팅을 처리한다. 이 때, 내부 라우터(230)는 목적지 주소의 클라이언트 주소 필드를 마스킹(masking)하여 클라이언트 주소 필드를 무시하고 메시지 라우팅을 처리할 수 있다.
서비스 서버(242)는 전송된 유니캐스트 메시지를 처리하고, 클라이언트 단말기(212)의 네트워크 주소(C001XXX1002)를 목적지 주소로 하고, 발신 주소의 서버 주소 필드를 자신의 서버 주소(A001XXX8)로 하여 유니캐스트 메시지를 전송한다. 이 때, 발신 주소의 클라이언트 주소 필드에는 미리 결정된 주소를 기록할 수도 있고, 아무 것도 기록하지 아니할 수도 있다.
내부 라우터(230)는 전송된 유니캐스트 메시지의 클라이언트 주소 필드(002)는 무시하고, 서버 주소 필드(C001XXX1)만을 이용하여 메시지 라우팅을 처리하여 유니캐스트 메시지를 연결 관리 서버(220)로 전송한다. 따라서, 내부 라우터(230)의 라우팅 테이블에는 서버 주소 필드를 위한 공간만이 할당되면 된다. 즉, 내부 라우터(230)의 라우팅 테이블에는 "A001XXX7", "A001XXX8", "A001XXX9" 및 "C001XXX1"와 이에 대응하는 라우팅 정보가 저장되게 된다. 이 때, 라우팅 정보는 소켓 아이디 등의 연결(connection) 정보를 포함할 수 있다. 이 때, 연결 정보는 어플리케이션 상의 하나의 연결(connection)마다 유일한 값을 가질 수도 있고, 연결이 끊어졌다가 다시 연결되는 등의 연결 변경에 따라 그 값이 달라질 수도 있다.
내부 라우터(230)에 의해 목적지 주소의 클라이언트 주소 필드(002)는 무시하고, 서버 주소 필드(C001XXX1)만을 이용하여 라우팅된 유니캐스트 메시지는 서버 주소 필드(C001XXX1)에 해당하는 서버 주소를 가지는 연결 관리 서버(220)로 전달된다.
연결 관리 서버(220)는 내부 네트워크로부터 수신된 유니캐스트 메시지의 목적지 주소(C001XXX1002)에 포함된 클라이언트 주소(002)를 이용하여 유니캐스트 메시지를 전송할 클라이언트 단말기를 식별하고, 목적지 주소(C001XXX1002) 및 발신 주소를 변경하지 아니하고 유니캐스트 메시지를 그대로 식별된 클라이언트 단말기 로 전송한다. 이 때, 연결 관리 서버(220)의 라우팅 테이블에는 클라이언트 주소 필드를 위한 공간만이 할당되면 된다. 즉, 연결 관리 서버(220)의 라우팅 테이블에는 "001", "002" 및 "003"과 이에 대응하는 라우팅 정보가 저장되게 된다. 이 때, 라우팅 정보는 소켓 아이디 등의 연결(connection) 정보를 포함할 수 있다. 이 때, 연결 정보는 어플리케이션 상의 하나의 연결(connection)마다 유일한 값을 가질 수도 있고, 연결이 끊어졌다가 다시 연결되는 등의 연결 변경에 따라 그 값이 달라질 수도 있다. 특히, 연결 관리 서버(220)는 클라이언트 단말기들(211, 212, 213)로부터의 연결을 관리하기 때문에, 연결 관리 서버(220)의 라우팅 테이블에 클라이언트 단말기들(211, 212, 213)로부터의 연결에 대한 소켓 아이디 등의 연결 정보가 저장된다. 따라서, 클라이언트 단말기들(211, 212, 213)로부터의 연결 변경에 대한 처리는 연결 관리 서버(220)에서 모두 처리할 수 있고, 내부 네트워크는 클라이언트 단말기들의 연결 변경에 대한 처리를 수행할 필요가 없다.
도 2에 도시된 통신 네트워크 시스템은 클라이언트 단말기와 연결 관리 서버 사이의 연결을 유지한 채로 서비스 서버간 이동이 가능하다. 예를 들어, 클라이언트 단말기(211)가 연결 관리 서버(220)를 통하여 서비스 서버(242)에 연결되어 있는 경우에, 클라이언트 단말기(211)와 연결 관리 서버(220)의 연결을 그대로 유지한 채 연결 관리 서버(220)가 서비스 서버(242) 대신에 서비스 서버(243)에 연결되도록 할 수 있다. 이와 같이, 클라이언트 단말기와 연결 관리 서버 사이의 연결을 유지한 채로 서비스 서버를 변경할 수 있으므로 특정 서비스 서버에 접속했다가 그 접속을 끊고 다른 서비스 서버에 새로 접속하여 접속 및 인증절차를 반복하는 번거 로움을 없앨 수 있다.
실시예에 따라 통신 네트워크 시스템은 클라이언트 단말기들(211, 212, 213)과 연결 관리 서버(220) 사이에 L4 스위치를 구비하여 로드밸런싱(load balancing)을 할 수도 있다.
도 2에 도시된 실시예에서 설명의 편의를 위하여 통신 네트워크 시스템에 연결 관리 서버가 한 개 있는 경우를 예로 들어 설명하였으나, 통신 네트워크 시스템 내에 연결 관리 서버가 다수 구비될 수 있다. 예를 들어, 통신 네트워크 시스템 내에 클라이언트 단말기 약 2만대 당 1대 정도의 연결 관리 서버가 구비될 수 있다.
도 4는 본 발명의 다른 실시예에 따른 멀티캐스트 통신 네트워크 시스템의 블록도이다.
도 4를 참조하면, 멀티캐스트 통신 네트워크 시스템은 클라이언트 단말기들(411 ~ 416), 연결 관리 서버들(421, 422), 내부 라우터(430) 및 서비스 서버(440)를 포함한다.
도 4에 도시된 예에서, 멀티캐스트 주소(M001)에 대하여 클라이언트 단말기들(411, 413, 415)이 가입되어 있다고 가정한다.
도 4에 도시된 클라이언트 단말기들(411 ~ 416), 연결 관리 서버들(421, 422), 내부 라우터(430) 및 서비스 서버(440)에 대하여, 도 2를 통하여 설명한 유니캐스트 메시지 전송 시의 동작에 관한 내용이 그대로 적용될 수 있다.
연결 관리 서버들(421, 422) 및 서비스 서버(440)는 각각 대응하는 서버 주 소들(C001XXX1, C001XXX2, A001XXX7)을 가진다.
연결 관리 서버(421)는 연결된 클라이언트 단말기들(411, 412, 413)에 각각 자신의 서버 주소(C001XXX1)에 소정의 클라이언트 주소들(001, 002, 003)을 결합한 네트워크 주소(C001XXX1001, C001XXX1002, C001XXX1003)를 할당하고, 클라이언트 단말기들(411, 412, 413) 중 멀티캐스트 주소(M001)에 가입한 클라이언트 단말기들(411, 413)의 클라이언트 주소들(001, 003)을 클라이언트 주소 리스트에 저장한다.
연결 관리 서버(422)는 연결된 클라이언트 단말기들(414, 415, 416)에 각각 자신의 서버 주소(C001XXX2)에 소정의 클라이언트 주소들(001, 002, 003)을 결합한 네트워크 주소(C001XXX2001, C001XXX2002, C001XXX2003)를 할당하고, 클라이언트 단말기들(414, 415, 416) 중 멀티캐스트 주소(M001)에 가입한 클라이언트 단말기(415)의 클라이언트 주소(002)를 클라이언트 주소 리스트에 저장한다.
내부 라우터(430)는 클라이언트 주소는 무시하고, 서버 주소만을 이용하여 메시지 라우팅을 처리하며, 멀티캐스트 주소(M001)에 가입한 클라이언트 단말기들(411, 413, 415)와 연결된 연결 관리 서버들(421, 422)의 서버 주소(C001XXX1, C001XXX2)를 서버 주소 리스트에 저장한다.
하기 표 1 내지 표 3은 각각 연결 관리 서버(421)의 클라이언트 주소 리스트, 연결 관리 서버(422)의 클라이언트 주소 리스트 및 내부 라우터(430)의 서버 주소 리스트를 나타낸 표이다.
MULTICAST ADDRESS |
CLIENT ADDRESS |
M001 |
001 |
003 |
MULTICAST ADDRESS |
CLIENT ADDRESS |
M001 |
002 |
MULTICAST ADDRESS |
CLIENT ADDRESS |
M001 |
C001XXX1 |
C001XXX2 |
이와 같이, 내부 라우터는 멀티캐스트 주소에 가입한 연결 관리 서버들의 서버 주소들만을 저장하고, 연결 관리 서버들마다 연결된 클라이언트 단말기들 중 멀티캐스트 주소에 가입한 클라이언트 단말기들의 클라이언트 주소를 저장하도록 하여 저장 공간을 효율적으로 분산시킬 수 있고, 내부 네트워크에서의 메시지 전송 횟수를 줄여서 경제적으로 멀티캐스트 메시지를 전송할 수 있다.
예를 들어, 서비스 서버(440)는 게임 서버일 수 있다. 이 때, 게임 서버에는 게임 서버에 접속한 사용자들, 사용자들이 모인 방, 방이 모인 채널에 대한 정보가 있을 수 있다. 이 때, 채널, 방, 사용자는 계층 구조를 가지는 클래스에 상응하는 것일 수 있고, 특정 채널, 방, 사용자는 해당하는 채널 클래스, 방 클래스 및 사용자 클래스의 인스턴스(instance)일 수 있다. 이 때, 각각의 인스턴스들은 소정의 특징 정보를 가질 수 있다. 예를 들어, 방 인스턴스들은 고수, 중수 또는 하수의 레벨 정보를 가질 수 있다. 따라서, 고스톱1이라는 방에 상응하는 방 인스턴스의 레벨 정보는 하수이고, 고스톱2라는 방에 상응하는 방 인스턴스의 레벨 정보는 중수이고, 고스톱3이라는 방에 상응하는 방 인스턴스의 레벨 정보는 고수일 수 있다.
예를 들어, 사용자 A가 새로이 게임 서버인 서비스 서버(440)에 접속하면, 서비스 서버(440)는 사용자 A에 상응하는 사용자 인스턴스를 생성한다. 이 때, 서비스 서버(440)의 채널 C에 방 B가 있고, 따라서 서비스 서버(440)에는 채널 C 및 방 B에 상응하는 채널 인스턴스 및 방 인스턴스가 존재한다고 가정한다. 이 경우에, 사용자 A가 방 B에 들어가면, 방 B에 상응하는 인스턴스에는 사용자 A에 대한 정보가 업데이트된다. 이후, 사용자 A가 방 B에서 나가면, 방 B에 상응하는 인스턴스에서 사용자 A에 대한 정보가 삭제된다. 마찬가지로, 사용자 A가 채널 C에 들어가거나, 채널 C에서 나가는 경우에도 채널 C에 상응하는 인스턴스에 사용자 A에 대한 정보가 업데이트되거나 삭제된다.
서비스 서버(440)의 각각의 채널이나 방은 대응되는 멀티캐스트 주소를 가질 수 있다. 예를 들어, 채널 C에 대응하는 멀티캐스트 주소는 "MC001"이고, 채널 C에 속하는 방 B에 대응하는 멀티캐스트 주소는 "MC001R001"일 수 있다.
서비스 서버(440)는 멀티캐스트 주소에 가입한 클라이언트 단말기들 또는 멀티캐스트 주소에 가입한 클라이언트 단말기들이 연결된 연결 관리 서버에 관한 정보를 저장하고, 필요에 따라 저장된 정보를 클라이언트 단말기로 제공할 수 있다.이하, 서비스 서버(440)로부터 멀티캐스트 메시지가 전송되는 경우에 대하여 상세히 설명한다.
예를 들어, 서비스 서버(440)는 고스톱 게임 서버일 수 있고, 멀티캐스트 주소(M001)는 3명의 플레이어들이 함께 고스톱 게임을 하고 있는 방에 상응하는 것일 수 있다. 즉, 함께 고스톱 게임을 하는 3명의 플레이어에 해당하는 클라이언트 단말기들은 모두 멀티캐스트 주소(M001)에 가입하고, 고스톱 게임 서비스 서버는 멀티캐스트 주소(M001)로 멀티캐스트 메시지를 전송함으로써 간단하게 게임 상황에 관한 메시지를 특정 게임이 진행중인 방 안의 모든 플레이어들에게 전송할 수 있다.
서비스 서버(440)가 멀티캐스트 주소(M001)로 멀티캐스트 메시지를 전송하고, 내부 라우터(430)가 멀티캐스트 메시지를 수신한다.
이 때, 멀티캐스트 주소(M001)는 도 3을 통하여 설명한 네트워크 주소의 서버 주소 필드에 기록될 수 있다.
내부 라우터(430)는 멀티캐스트 주소(M001)에 상응하는 서버 주소 리스트(표 3)에 포함된 서버 주소들(C001XXX1, C001XXX2)로 수신된 멀티캐스트 메시지를 전송한다.
연결 관리 서버(421)는 대응되는 서버 주소가 "C001XXX1"이므로 내부 라우터(430)로부터 멀티캐스트 메시지를 전송 받는다. 멀티캐스트 메시지를 전송 받으면 연결 관리 서버(421)는 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트(표 1)에 포함된 클라이언트 주소들(001, 003)로 수신된 멀티캐스트 메시지를 전송한다.
연결 관리 서버(422)는 대응되는 서버 주소가 "C001XXX2"이므로 역시 내부 라우터(430)로부터 멀티캐스트 메시지를 전송 받는다. 멀티캐스트 메시지를 전송 받으면 연결 관리 서버(422)는 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트(표 2)에 포함된 클라이언트 주소(M002)로 수신된 멀티캐스트 메시지를 전송한다.
따라서, 서비스 서버(440)로부터 전송된 멀티캐스트 메시지가 멀티캐스트 주소에 가입한 모든 클라이언트 단말기들(411, 413, 415)로 전송된다.
이하, 클라이언트 단말기(415)로부터 멀티캐스트 메시지가 전송되는 경우에 대하여 상세히 설명한다.
예를 들어, 멀티캐스트 주소(M001)는 3명의 플레이어들이 함께 고스톱 게임을 하고 있는 방에 상응하는 것일 수 있다. 즉, 함께 고스톱 게임을 하는 3명의 플레이어에 해당하는 클라이언트 단말기들은 모두 멀티캐스트 주소(M001)에 가입하고, 멀티캐스트 주소(M001)에 가입한 클라이언트 단말기들 각각은 멀티캐스트 주소(M001)로 멀티캐스트 메시지를 전송함으로써 간단하게 함께 게임을 플레이하고 있는 플레이어들에게 메시지를 전송할 수 있다.
클라이언트 단말기(415)가 멀티캐스트 주소(M001)로 멀티캐스트 메시지를 전송하고, 연결 관리 서버(422)가 멀티캐스트 메시지를 수신한다.
이 때, 멀티캐스트 주소(M001)는 도 3을 통하여 설명한 네트워크 주소의 서버 주소 필드에 기록될 수 있다.
연결 관리 서버(422)는 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트(표 2)에 포함된 클라이언트 주소(002) 및 내부 라우터(430)로 수신된 멀티캐스트 메시지를 전송한다. 이 때, 연결 관리 서버(422)로 멀티캐스트 메시지를 전송한 클라이언트 주소(002)로는 멀티캐스트 메시지를 전송하지 않을 수도 있다.
내부 라우터(430)는 전송된 멀티캐스트 메시지를 수신하고, 멀티캐스트 주소(M001)에 상응하는 서버 주소 리스트(표 3)에 포함된 서버 주소들(C001XXX1, C001XXX2)로 수신된 멀티캐스트 메시지를 전송한다. 이 때, 멀티캐스트 메시지를 전송한 서버 주소(C001XXX2)로는 멀티캐스트 메시지를 전송하지 않을 수 있다.
연결 관리 서버(421)는 대응되는 서버 주소가 "C001XXX1"이므로 내부 라우터(430)로부터 멀티캐스트 메시지를 전송 받는다. 멀티캐스트 메시지를 전송 받으면 연결 관리 서버(421)는 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트(표 1)에 포함된 클라이언트 주소들(001, 003)로 수신된 멀티캐스트 메시지를 전송한다.
따라서, 클라이언트 단말기(415)로부터 전송된 멀티캐스트 메시지가 멀티캐스트 주소에 가입한 다른 클라이언트 단말기들(411, 413)로 전송된다.
이하, 클라이언트 단말기(413)로부터 클라이언트 주소 필드를 이용한 멀티캐스트 메시지가 전송되는 경우에 대하여 상세히 설명한다.
클라이언트 단말기(413)가 멀티캐스트 주소(M001)로 멀티캐스트 메시지를 전송하고, 연결 관리 서버(421)가 멀티캐스트 메시지를 수신한다. 이 때, 멀티캐스트 주소(M001)는 도 3을 통하여 설명한 네트워크 주소의 클라이언트 주소 필드에 기록된다.
연결 관리 서버(421)는 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트(표 1)에 포함된 클라이언트 주소들(001, 003)로 수신된 멀티캐스트 메시지를 전송한다. 이 때, 연결 관리 서버(421)로 멀티캐스트 메시지를 전송한 클라이언트 주소(003)로는 멀티캐스트 메시지를 전송하지 않을 수도 있다.
또한, 연결 관리 서버(421)는 클라이언트 주소 필드에 멀티캐스트 메시지의 클라이언트 주소 필드에 멀티캐스트 주소가 기록되어 있으므로 멀티캐스트 메시지를 내부 라우터(430)로 전송하지 아니한다. 즉, 연결 관리 서버(421)는 클라이언트 주소 필드에 멀티캐스트 주소가 기록되어 있는 경우에 연결 관리 서버(421) 선에서 멀티캐스트 메시지 송/수신을 처리하고, 이를 내부 네트워크로 전달하지 아니한다.
따라서, 클라이언트 단말기(413)로부터 전송된 멀티캐스트 메시지가 멀티캐스트 주소에 가입한 다른 클라이언트 단말기(411)로만 전송된다.
이하, 클라이언트 단말기(416)가 추가로 멀티캐스트 주소(M001)에 가입하는 경우에 대하여 상세히 설명한다.
클라이언트 단말기(416)는 멀티캐스트 주소(M001)에 가입하기 위해 연결 관리 서버(422)로 멀티캐스트 주소 가입 요청을 한다. 이 때, 멀티캐스트 주소 가입 요청은 일종의 컨트롤 메시지이다. 연결 관리 서버들(421, 422) 및 내부 라우터(430)는 통상적으로 메시지의 내용을 해석하지 않고 라우팅만을 수행하나, 컨트롤 메시지는 연결 관리 서버들(421, 422) 및 내부 라우터(430)에서 해석된다.
연결 관리 서버(423)는 멀티캐스트 주소 가입 요청에 응답하여 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트에 클라이언트 단말기(416)의 클라이언트 주소(003)를 등록한다.
연결 관리 서버(423)는 클라이언트 주소 리스트에 새로운 클라이언트 주소가 등록되는 경우에 이를 컨트롤 메시지를 통하여 내부 라우터(430)로 통보할 수 있다. 이 때, 내부 라우터(430)는 새로운 클라이언트 주소 등록을 통보한 연결 관리 서버의 서버 주소가 해당 멀티캐스트 주소에 가입되어 있는 것인지 확인하고, 가입되어 있지 않은 것이면 새로운 클라이언트 주소 등록을 통보한 연결 관리 서버의 서버 주소를 서버 주소 리스트에 등록한다. 도 4에 도시된 예에서 연결 관리 서버(422)의 서버 주소(C001XXX2)는 이미 내부 라우터(430)의 서버 주소 리스트에 포함되어 있으므로 추가로 연결 관리 서버(422)의 서버 주소(C001XXX2)를 등록할 필요는 없다.
실시예에 따라, 클라이언트 단말기(416)가 멀티캐스트 주소(M001)에 가입하고자 하는 경우에, 컨트롤 메시지가 아닌 일반 메시지를 서비스 서버(440)로 전송할 수도 있다.
이 때, 연결 관리 서버(422) 및 내부 라우터(430)는 클라이언트 단말기(416)가 전송한 메시지를 해석하지 않고 서비스 서버(440)로 라우팅한다.
서비스 서버(440)는 클라이언트 단말기(416)로부터 수신된 메시지를 해석하여 멀티캐스트 주소(M001)에 가입하고자 하는 것으로 판단한 후, 연결 관리 서버(422)로 컨트롤 메시지를 보내서 연결 관리 서버(422)가 멀티캐스트 주소(M001)에 상응하는 클라이언트 주소 리스트에 클라이언트 단말기(416)의 클라이언트 주소(003)를 등록하도록 한다. 또한, 서비스 서버(440)는 필요하다고 생각되는 경우에 내부 라우터(430)로 컨트롤 메시지를 보내서 새로 추가된 연결 관리 서버의 서버 주소를 서버 주소 리스트에 등록시키도록 할 수도 있다.
도 4에 도시된 실시예에서 클라이언트 단말기들(411, 412, 413) 및 연결 관리 서버(421) 사이의 통신 및 클라이언트 단말기들(414, 415, 416) 및 연결 관리 서버(422) 사이의 통신은 암호화된 보안 통신일 수 있다.
또한, 도 4에 도시된 멀티캐스트 통신 네트워크 시스템은 클라이언트 단말기들(411, 412, 413, 414, 415, 416) 중 하나와 서비스 서버(440) 사이에 연결 생성 메시지(connection create message)가 정상적으로 왕복하면 해당 클라이언트 단말기와 해당 서비스 서버 사이에 가상 연결(virtual connection)이 설정되도록 할 수 있다.
이 때, 멀티캐스트 통신 네트워크 시스템은 상기 가상 연결이 설정된 클라이언트 단말기와 서비스 서버 사이에 연결 종료 메시지(connection terminate message)가 정상적으로 왕복하면 상기 가상 연결을 종료시킬 수 있다.
이 때, 멀티캐스트 통신 네트워크 시스템은 상기 가상 연결이 설정된 클라이언트 단말기와 해당 연결 관리 서버 사이의 TCP/IP 연결이 종료되면 상기 가상 연결 역시 종료되도록 할 수 있다.
도 5a 및 도 5b는 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템의 장애 허용성(fault tolerance)을 나타내는 블록도이다.
도 5a 및 도 5b를 참조하면, 본 발명의 일 실시예에 따른 멀티캐스트 통신 네트워크 시스템은 클라이언트 단말기(510)가 연결 관리 서버(521) 이외에도 보조 연결 관리 서버(522)에 동시에 연결된다. 이 때, 클라이언트 단말기(510)와 연결 관리 서버(521) 및 보조 연결 관리 서버(522) 사이의 연결은 TCP/IP 연결일 수 있다.
이 때, 연결 관리 서버(521)와 보조 연결 관리 서버(522)는 실질적으로 동일한 구성을 가질 수 있고, 실시예에 따라 보조 연결 관리 서버(522)가 둘 이상 구비될 수도 있다.
도 5a를 참조하면, 연결 관리 서버(521)가 이상 없이 동작하는 경우에 연결 관리 서버(521)는 액티브(active) 상태이고, 보조 연결 관리 서버(522)는 스탠바이(standby) 상태이다. 이 때, 클라이언트 단말기(510)와 서비스 서버(540) 사이의 메시지 전송은 연결 관리 서버(521) 및 내부 라우터(530)를 통하여 수행된다. 연결 관리 서버(521) 및 내부 라우터(530)의 동작에 관한 설명은 도 2 및 도 4를 참조하여 이미 설명한 바와 같다.
도 5b를 참조하면, 연결 관리 서버(521)를 통한 클라이언트 단말기(510)와 서비스 서버(540) 사이의 연결에 이상이 발생하는 경우에 보조 연결 관리 서버(522)가 액티브 상태로 된다. 예를 들어, 연결 관리 서버(521)와 클라이언트 단말기(510) 사이의 연결에 이상이 발생하거나, 연결 관리 서버(521)와 내부 라우터(530) 사이의 연결에 이상이 발생하는 경우에 보조 연결 관리 서버(522)가 액티브 상태가 되어 연결 관리 서버(521)를 대신하여 클라이언트 단말기(510)와 서비스 서버(540) 사이의 연결이 유지되도록 할 수 있다. 이 때, 연결 관리 서버(521)는 내부 라우터(530)와의 연결을 다시 시도하여 성공하면 스탠바이 상태로 될 수 있다.
보조 연결 관리 서버(522)가 액티브 상태로 되면 클라이언트 단말기(510)와 서비스 서버(540) 사이의 메시지 전송은 보조 연결 관리 서버(522) 및 내부 라우터(530)를 통하여 수행된다. 이 때, 연결 관리 서버(521)는 새로운 클라이언트 단말기로부터의 접속 요구를 거부한다. 보조 연결 관리 서버(522)에도 도 2 및 도 4에 도시된 연결 관리 서버의 동작에 관한 설명이 그대로 적용될 수 있다.
보조 연결 관리 서버(522)가 액티브 상태로 되어 클라이언트 단말기(511)가 보조 연결 관리 서버(522)를 통하여 메시지를 전송하는 경우에, 클라이언트 단말기(511)로부터 서비스 서버(540)로 전송되는 메시지의 발신 주소의 서버 주소 필드에 보조 연결 관리 서버(522)의 서버 주소를 기록하여 메시지를 전송할 수도 있다.
도 6은 도 2 및 도 4에 도시된 연결 관리 서버의 일 예를 나타낸 블록도이다.
도 6을 참조하면, 연결 관리 서버는 인트라 네트워크부(610), 디스패쳐(620), 라우터(630) 및 인터 네트워크부(640)를 포함한다.
인트라 네트워크부(610)는 클라이언트 단말기들과의 연결을 관리하는 역할을 한다. 즉, 인트라 네트워크부(610)는 클라이언트 단말기로부터의 연결 요청에 대하여 대기하도록 하거나 연결 요청을 수락할 수 있다. 또한, 인트라 네트워크부(610)는 클라이언트 단말기로부터 연결 관리 서버로 전송되는 메시지의 송/수신을 관리할 수 있다. 또한, 인트라 네트워크부(610)는 연결 관리 서버와 클라이언트 단말기 사이의 메시지 암호화 및 복호화를 수행할 수 있다.
디스패쳐(620)는 인트라 네트워크부(610)나 인터 네트워크부(640)로부터 수신된 메시지를 해석하고, 해석된 결과에 따라 연결 관리 서버가 필요한 동작을 수행하도록 한다. 이 때, 디스패쳐(620)는 메시지 전체를 해석할 필요는 없고, 메시지의 헤더부분만을 보고 해당 메시지를 어떻게 처리하여야 할지를 결정할 수 있다. 다만, 컨트롤 메시지의 경우에는 디스패쳐(620)에 의하여 해석될 수 있다.
예를 들어, 디스패쳐(620)는 인트라 네트워크부(610)로부터 수신된 메시지가 서비스 서버로 전송되어야 하는 것으로 판단한 경우에 수신된 메시지가 라우터(630)에 의하여 적절한 목적지 서비스 서버로 전송되도록 할 수 있다.
예를 들어, 디스패쳐(620)는 인트라 네트워크부(610)로부터 수신된 메시지가 연결 관리 서버에 연결된 다른 클라이언트 단말기로 전송되어야 하는 것으로 판단한 경우에 해당 클라이언트 단말기의 주소를 찾아서 메시지를 전송하도록 할 수도 있다.
예를 들어, 디스패쳐(620)는 인터 네트워크부(640)로부터 수신된 메시지가 클라이언트 단말기로 전송되어야 하는 것으로 판단한 경우에 수신된 메시지에 포함된 목적지 주소의 클라이언트 필드를 이용하여 메시지를 전송할 클라이언트 단말기를 식별하고, 라우터(630)를 통하여 식별된 클라이언트 단말기로 메시지를 전송하도록 할 수도 있다.
예를 들어, 디스패쳐(620)는 인터 네트워크부(640)로부터 수신된 메시지가 멀티캐스트 메시지인 경우에, 상기 멀티캐스트 메시지의 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트에 포함된 클라이언트 주소로 상기 멀티캐스트 메시지가 전송되도록 할 수 있다.
예를 들어, 디스패쳐(620)는 인트라 네트워크부(640)로부터 수신된 메시지가 멀티캐스트 메시지인 경우에, 상기 멀티캐스트 메시지의 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트에 포함된 클라이언트 주소로 상기 멀티캐스트 메시지를 전송하고, 상기 멀티캐스트 메시지를 연결 관리 서버 선에서 처리할 것인지 내부 네트워크로 전달할 것인지 여부를 판단할 수 있다. 이 때, 멀티캐스트 메시지를 연결 관리 서버 선에서 처리할 것인지 내부 네트워크로 전달할 것인지 여부는 멀티캐스트 주소가 네트워크 주소의 클라이언트 주소 필드에 기록되어 있는지 여부에 따라 판단할 수도 있다. 예를 들어, 디스패쳐(620)는 서버 주소 필드에 멀티캐스트 주소가 기록되어 있는 경우에는 멀티캐스트 메시지를 내부 네트워크로 전달하고, 클라이언트 주소 필드에 멀티캐스트 주소가 기록되어 있는 경우에는 멀티캐스트 메시지를 연결 관리 서버 선에서 처리하고 내부 네트워크로 전달하지 않도록 할 수 있다.
라우터(630)는 인트라 네트워크부(610)나 인터 네트워크부(640)로부터 수신된 메시지를 적절한 목적지(destination address)에 라우팅한다.
인터 네트워크부(640)는 내부 네트워크의 내부 라우터와의 메시지 송/수신을 담당한다. 즉, 인터 네트워크부(640)는 내부 라우터와의 인터페이싱을 담당하여 내부 라우터 측에서 연결 관리 서버를 일종의 서비스 서버로 인식하도록 한다.
도 7은 본 발명의 일 실시예에 따른 데이터 송/수신 방법의 동작 흐름도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 데이터 송/수신 방법은 클라이언트 단말기로부터 수신된 주소 할당 요청에 응답하여 연결 관리 서버가 자신의 서버 주소에 소정의 클라이언트 주소를 결합한 네트워크 주소를 생성하여 상기 클라이언트 단말기에 할당한다(S710).
예를 들어, 연결 관리 서버의 서버 주소가 "C001XXX1"인 경우에 본 발명의 연결 관리 서버는 "C001XXX1001"을 클라이언트 단말기의 네트워크 주소로 할당할 수 있다. 이 때, 네트워크 주소 "C001XXX1001"에서 "C001XXX1"은 서버 주소 필드에 해당하고, "001"은 클라이언트 주소 필드에 해당한다.
또한, 데이터 송/수신 방법은 상기 연결 관리 서버가 상기 클라이언트 단말기로부터 멀티캐스트 주소 가입 요청을 받아 상기 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트에 상기 클라이언트 단말기의 클라이언트 주소를 등록한다(S720).
예를 들어, 클라이언트 단말기 "C001XXX1003"이 멀티캐스트 주소 "M001"에 가입 요청을 하면, 서버 주소가 "C001XXX1"인 연결 관리 서버는 멀티캐스트 주소 "M001"에 대한 클라이언트 주소 리스트에 "003"을 등록한다.
또한, 데이터 송/수신 방법은 내부 라우터가 상기 멀티캐스트 주소에 상응하는 서버 주소 리스트에 상기 연결 관리 서버의 서버 주소를 등록한다(S730).
예를 들어, 서버 주소가 "C001XXX1"인 연결 관리 서버에 연결된 클라이언트 단말기 "C001XXX1003"이 멀티캐스트 주소 "M001"에 가입 요청을 한 경우에 내부 라우터는 멀티캐스트 주소 "M001"에 대한 서버 주소 리스트에 "C001XXX1"을 등록한다.
이 때, 도 7에 도시된 데이터 송/수신 방법은 연결 관리 서버가 상기 클라이언트 단말기로부터 상기 멀티캐스트 주소로 송신된 멀티캐스트 메시지를 수신하는 단계, 상기 연결 관리 서버가 상기 클라이언트 주소 리스트 내의 클라이언트 주소들 및 상기 내부 라우터로 상기 멀티캐스트 메시지를 전송하는 단계 및 상기 내부 라우터가 상기 연결 관리 서버의 서버 주소를 제외한 상기 서버 주소 리스트 내의 서버 주소들로 상기 멀티캐스트 메시지를 전송하는 단계를 더 포함할 수 있다.
도 8은 본 발명의 다른 실시예에 따른 데이터 송/수신 방법의 동작 흐름도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 데이터 송/수신 방법은 서버 주소만으로 메시지 라우팅을 처리하는 내부 라우터가 서비스 서버로부터 멀티캐스트 주소로 송신된 멀티캐스트 메시지를 수신한다(S810).
또한, 데이터 송/수신 방법은 내부 라우터가 상기 멀티캐스트 주소에 상응하는 서버 주소 리스트 내의 서버 주소들로 상기 멀티캐스트 메시지를 전송한다(S820).
또한, 데이터 송/수신 방법은 내부 라우터로부터 상기 멀티캐스트 메시지를 수신한 연결 관리 서버가 상기 멀티캐스트 주소에 상응하는 클라이언트 주소 리스트 내의 클라이언트 주소들로 상기 멀티캐스트 메시지를 전송한다(S830).
도 7 및 도 8을 통하여 설명한 방법과 관련하여 설명하지 아니한 내용은 앞서 통신 네트워크 시스템에 관한 실시예들에서 그대로 적용 가능하므로 이하 생략한다.
본 발명에 따른 데이터 송/수신 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 9는 본 발명에 따른 데이터 송/수신 방법을 수행하는 데 채용될 수 있는 범용 컴퓨터 장치의 내부 블록도이다.
컴퓨터 장치(900)는 램(RAM: Random Access Memory)(920)과 롬(ROM: Read Only Memory)(930)을 포함하는 주기억장치와 연결되는 하나 이상의 프로세서(910)를 포함한다. 프로세서(910)는 중앙처리장치(CPU)로 불리기도 한다. 본 기술분야에서 널리 알려져 있는 바와 같이, 롬(930)은 데이터(data)와 명령(instruction)을 단방향성으로 CPU에 전송하는 역할을 하며, 램(920)은 통상적으로 데이터와 명령을 양방향성으로 전송하는 데 사용된다. 램(920) 및 롬(930)은 컴퓨터 판독 가능 매체의 어떠한 적절한 형태를 포함할 수 있다. 대용량 기억장치(Mass Storage)(940)는 양방향성으로 프로세서(910)와 연결되어 추가적인 데이터 저장 능력을 제공하며, 상기된 컴퓨터 판독 가능 기록 매체 중 어떠한 것일 수 있다. 대용량 기억장치(940)는 프로그램, 데이터 등을 저장하는데 사용되며, 통상적으로 주기억장치보다 속도가 느린 하드 디스크와 같은 보조기억장치이다. CD 롬(960)과 같은 특정 대용량 기억장치가 사용될 수도 있다. 프로세서(910)는 비디오 모니터, 트랙볼, 마우스, 키보드, 마이크로폰, 터치스크린 형 디스플레이, 카드 판독기, 자기 또는 종이 테이프 판독기, 음성 또는 필기 인식기, 조이스틱, 또는 기타 공지된 컴퓨터 입출력장치와 같은 하나 이상의 입출력 인터페이스(950)와 연결된다. 마지막으로, 프로세서(910)는 네트워크 인터페이스(970)를 통하여 유선 또는 무선 통신 네트워크에 연결될 수 있다. 이러한 네트워크 연결을 통하여 상기된 방법의 절차를 수행할 수 있다. 상기된 장치 및 도구는 컴퓨터 하드웨어 및 소프트웨어 기술 분야의 당업자에게 잘 알려져 있다. 한편, 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.