KR100704738B1 - 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR100704738B1
KR100704738B1 KR1020050050422A KR20050050422A KR100704738B1 KR 100704738 B1 KR100704738 B1 KR 100704738B1 KR 1020050050422 A KR1020050050422 A KR 1020050050422A KR 20050050422 A KR20050050422 A KR 20050050422A KR 100704738 B1 KR100704738 B1 KR 100704738B1
Authority
KR
South Korea
Prior art keywords
client
cell
server
daemon
master
Prior art date
Application number
KR1020050050422A
Other languages
English (en)
Other versions
KR20060129775A (ko
Inventor
김경철
염익준
이준원
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020050050422A priority Critical patent/KR100704738B1/ko
Publication of KR20060129775A publication Critical patent/KR20060129775A/ko
Application granted granted Critical
Publication of KR100704738B1 publication Critical patent/KR100704738B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/32Specific management aspects for broadband networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 서버에 관한 것으로, 더욱 상세하게는 다수 클라이언트가 동시에 광범위하게 접속되어 정보를 제공하는 서버 시스템에 관한 것이다.
본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템은 네트워크망과 연결되어 네트워크망을 통해 가상의 게임 공간에서 게임을 하는 다수의 클라이언트와, 클라이언트가 네트워크망을 통해 게임을 하는 경우 필요한 정보를 송수신하는 서버로 이루어지는 대규모 온라인 게임 시스템에 있어서, 가상의 게임 공간을 다수의 서버-셀(Cell)로 구분하며, 서버-셀은 중앙 서버 셀-데몬(Central Cell-Daemon; CCD)에 의해 관리되도록 하고, 중앙 서버 셀-데몬 간에는 게임에 필요한 정보가 연동하도록 하는 서버, 서버-셀과 매칭되며, 하나 이상의 클라이언트가 포함되고, 다수 개가 존재하는 클라이언트-셀을 포함하며, 클라이언트-셀 내에 존재하는 어느 하나의 클라이언트는 마스터 셀-데몬(Master Cell-Daemon; MCD)을 포함하는 제1 마스터이며, 제1 마스터는 마스터 셀-데몬을 통해 클라이언트-셀을 관리하며, 클라이언트-셀과 서버 셀과 연동하도록 하는 것을 특징으로 이루어진다.
네트워크, 트래픽, MMOG, 서버, 클라이언트, 셀

Description

서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체{ONLINE SYSTEM OF DECREASING NETWORK-TRAFFIC BETWEEN SERVER AND CLIENTS, METHOD THEREOF AND COMPUTER READABLE RECORD MEDIUM ON WHICH PROGRAM FOR EXECUTING METHOD IS RECORDED}
도 1은 종래의 서버와 클라이언트 구조에서 다수의 클라이언트가 서버로 데이터 전송량을 감소하기 위하여 클라이언트 간 일정 데이터를 피어-투-피어 방식으로 데이터를 송수신하는 구조로 제시한 정보통신대학교의 논문인 "A Scalable Network Framework for Distributed Virtual Environments"에서 서버와 클라이언트 구조를 설명하기 위한 블록도 이다.
도 2a는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 서버와 클라이언트 간 통신을 위한 구조를 간략히 설명하기 위하여 도시한 것이다.
도 2b는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 서버와 클라이언트 간 구조를 설명하기 위한 블록도 이다.
도 3은 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 클라이언트가 증가하였을 경우 중앙 서버 셀-데몬과 셀-데몬 리스트에 클라이언트에 따른 마크와 순서를 결정하는 방법을 도시한 블록 도이다.
도 4는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 마스터 셀-데몬에서 네트워크 장애가 발생하였을 경우 시스템 안정을 위한 처리방법을 도시한 블록 도이다.
도 5는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 클라이언트가 증가하였을 경우 클라이언트-셀을 이등분하는 방법을 도시한 블록 도이다.
도 6a 및 도 6b는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 하나의 클라이언트-셀 안에서 발생하는 네트워크 트래픽을 분석하기 위한 블록 도이다.
본 발명은 서버에 관한 것으로, 더욱 상세하게는 다수 클라이언트가 동시에 광범위하게 접속되어 정보를 제공하는 서버 시스템에 관한 것이다.
종래의 게임 서버와 클라이언트 간 통신 구조는 비록 분산 구조라고는 하여도 중앙 서버에서 수행되도록 되어있었다.
이러한 단점을 극복하고자 피어-투-피어 방식을 도입하여 서버와 클라이언트 간 트래픽을 감소하고자 하는 개발이 있었다.
이하, 첨부된 도면을 참조하여 종래 기술의 문제점을 상세히 설명하기로 한다.
도 1은 종래의 서버와 클라이언트 구조에서 다수의 클라이언트가 서버로 데이터 전송량을 감소하기 위하여 클라이언트 간 일정 데이터를 피어-투-피어 방식으로 데이터를 송수신하는 구조로 제시한 정보통신대학교의 논문인 "A Scalable Network Framework for Distributed Virtual Environments"에서 서버와 클라이언트 구조를 설명하기 위한 블록도 이다.
도시된 바와 같이, 피어-투-피어 방식으로 데이터를 송수신하는 서버(110)와 클라이언트(120a, 120b)는 각각의 클라이언트(120a, 120b)에 대항하는 TCP 모듈(111a, 111b)과 멀티캐스트를 위한 멀티캐스트 모듈(112)로 구성된 통신 매니저를 포함하는 서버와 통신을 하기 위한 TCP 모듈(121a, 121b) 및 멀티캐스트 모듈(122a, 122b)로 구성된 통신 매니저를 포함하는 클라이언트로 구성된다.
여기서, 상술한 서버(110)의 TCP 모듈(111a, 111b)은 클라이언트(120a, 120b)가 증가하는 수와 동일수로 증가한다.
결국, 클라이언트(120a, 120b) 간 통신을 멀티캐스트로 통신을 하게 되는 것으로 서버(110)와 클라이언트(120a, 120b) 간 트래픽을 일정부분 감소할 수 있게 된다.
그러나, 서버(110)와 클라이언트(120a, 120b) 간 통신을 위한 TCP 모듈은 클 라이언트(120a, 120b)가 증가하는 수와 동일수로 증가하여 서버(110)와 클라이언트(120a, 120b) 간 트래픽 감소에는 한계가 있었다.
또한, 클라이언트(120a, 120b)가 일시적 장애, 고장 또는 네트워크 상태 불량으로 인한 지연 등으로 발생하는 서버(110)와 클라이언트(120a, 120b) 간 통시 지연에 대한 대책에 한계가 있었다.
상술한 문제점을 해결하기 위한 본 발명의 목적은 네트워크 망을 통해 가상의 게임 공간에서 게임을 하는 다수의 클라이언트와 게임에 필요한 정보를 송수신하는 서버로 이루어지는 대규모 온라인 게임 시스템에서 서버와 클라이언트 간 트래픽을 감소하기 위한 방법을 제공하는 데 있다.
또한, 본 발명의 다른 목적은 서버와 클라이언트 간 데이터를 송수신하는 도중 클라이언트의 일시적 장애, 고장 또는 네트워크 상태 불량으로 인하여 발생하는 통신 지연 등에 대한 처리 방법을 제공하는 데 있다.
또한, 본 발명의 또 다른 목적은 서버와 클라이언트 간 데이터를 송수신하면서 클라이언트의 이동으로 인한 서버와 클라이언트 간 데이터의 중단이 발생하지 않도록 그 방법을 제공하는 데 있다.
상술한 목적을 달성하기 위하여, 본 발명에 따른 서버와 클라이언트 간 네트 워크 트래픽을 감소시키는 대규모 온라인 시스템은 네트워크망과 연결되어 상기 네트워크망을 통해 가상의 게임 공간에서 게임을 하는 다수의 클라이언트와, 상기 클라이언트가 상기 네트워크망을 통해 게임을 하는 경우 필요한 정보를 송수신하는 서버로 이루어지는 대규모 온라인 게임 시스템에 있어서, 상기 가상의 게임 공간을 다수의 서버-셀(Cell)로 구분하며, 상기 서버-셀은 중앙 서버 셀-데몬(Central Cell-Daemon; CCD)에 의해 관리되도록 하고, 상기 중앙 서버 셀-데몬 간에는 게임에 필요한 정보가 연동하도록 하는 서버, 상기 서버-셀과 매칭되며, 하나 이상의 클라이언트가 포함되고, 다수 개가 존재하는 클라이언트-셀을 포함하며, 상기 클라이언트-셀 내에 존재하는 어느 하나의 클라이언트는 마스터 셀-데몬(Master Cell-Daemon; MCD)을 포함하는 제1 마스터이며, 상기 제1 마스터는 상기 마스터 셀-데몬을 통해 상기 클라이언트-셀을 관리하며, 상기 클라이언트-셀과 상기 서버 셀과 연동하도록 하는 것을 특징으로 한다.
여기서, 상기 클라이언트-셀 내에 존재하는 다른 하나의 클라이언트는 마스터 셀-데몬의 백업용으로 2차 셀-데몬(Secondary Cell-Daemon; SCD)을 포함하는 제2 마스터인 것이 바람직하다.
여기서, 상기 클라이언트-셀 내에 존재하는 클라이언트는 상기 서버-셀의 중앙 서버 셀-데몬, 상기 클라이언트-셀의 마스터 셀-데몬 또는 상기 클라이언트-셀의 2차 셀-데몬 중 적어도 하나 이상의 데몬으로 정보를 전송하며, 상기 서버-셀의 중앙 서버 셀-데몬은 클라이언트-셀의 마스터 셀-데몬으로만 정보를 전송하고, 상기 클라이언트-셀 내에 존재하는 클라이언트는 상기 마스터 셀-데몬을 통하여 상기 서버-셀의 중앙 서버 셀-데몬으로부터 정보를 수신하는 것이 바람직하다.
여기서, 상기 마스터 셀-데몬은 상기 클라이언트가 클라이언트-셀간 이동하는 경우, 상기 서버와 통신의 단절 없이 정보가 송수신 되도록 핸드 오프(hand-off) 또는 핸드 오버(hand-over) 기능을 지원하는 것이 바람직하다.
또한, 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법은 (a) 가상의 게임 공간을 구분하기 위한 서버-셀을 생성하는 단계; (b) 상기 서버-셀을 관리하기 위한 중앙 서버 셀-데몬을 설정하는 단계; (c) 상기 서버-셀과 매칭되며 클라이언트를 구분하기 위한 클라이언트-셀을 생성하는 단계; (d) 상기 클라이언트-셀을 관리하기 위한 마스터 셀-데몬을 설정하는 단계; (e) 상기 가상의 게임 공간에서 클라이언트가 클라이언트-셀간 이동시 클라이언트-셀간 데이터 전송이 단절되는 것을 방지하기 위하여 클라이언트 위치 셀을 검사하는 단계;를 포함하는 것을 특징으로 한다.
또한, 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체는 (a) 가상의 게임 공간을 구분하기 위한 서버-셀을 생성하는 단계; (b) 상기 서버-셀을 관리하기 위한 중앙 서버 셀-데몬을 설정하는 단계; (c) 상기 서버-셀과 매칭되며 클라이언트를 구분하기 위한 클라이언트-셀을 생성하는 단계; (d) 상기 클라이언트-셀을 관리하기 위한 마스터 셀-데몬을 설정하는 단계; (e) 상기 가상의 게임 공간에서 클라이언트가 클라이언트-셀간 이동시 클라이언트-셀간 데이터 전송이 단절되는 것을 방지하기 위하여 클라이언트 위치 셀을 검사하는 단계;를 포함하는 것을 특징으로 한다.
여기서, 상기 클라이언트-셀은 클라이언트-셀에서 처리할 수 있는 최대 용량을 초과할 경우 클라이언트-서브-셀(Client Sub-Cell)로 분할되며, 상기 클라이언트-서브-셀의 관리를 위해 마스터 셀-데몬이 설정되는 것이 바람직하다.
여기서, 상기 (b)단계의 중앙 서버 셀-데몬 설정에 따라, 상기 각각의 서버-셀에 셀-데몬 리스트가 포함되어 초기화되는 것이 바람직하다.
여기서, 상기 (d)단계의 마스터 셀-데몬을 설정하는 단계는, (d-1) 상기 클라이언트에서 중앙 셀-데몬으로 데몬을 수행하기 위한 권한을 요청하는 단계; (d-2) 상기 중앙 셀-데몬에서 상기 클라이언트의 요청을 검사하는 단계; 및 (d-3) 상기 클라이언트의 요청이 합당할 경우, 상기 중앙 셀-데몬에서 상기 클라이언트에게 권한을 부여하는 단계;를 더 포함하는 것이 바람직하다.
여기서, 상기 (d)단계의 마스터 셀-데몬 설정에 따라, 상기 클라이언트-셀에 포함된 클라이언트에 매칭되는 마스터 셀-데몬 마크를 셀-데몬 리스트에 저장하는 것이 바람직하다.
여기서, 상기 셀-데몬 리스트에 저장된 마크의 최우선 순위의 마크가 마스터 셀-데몬인 것이 바람직하다.
여기서, 상기 (e)단계의 클라이언트를 검사하는 단계는, (e-1) 상기 셀-데몬 리스트에 저장된 마크를 검사하는 단계; 및 (e-2) 상기 마크에 해당하는 클라이언트가 존재하는지 검사하는 단계를 더 포함하는 것이 바람직하다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있 다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 2a는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 서버와 클라이언트 간 통신을 위한 구조를 간략히 설명하기 위하여 도시한 것이다.
도시된 바와 같이, 대규모 온라인 시스템에서 서버(210)와 클라이언트(221, 222, 223, 231, 232 및 233) 간 통신을 위한 구조는 인터넷을 통하여 통신하는 서버-셀(220a, 230a)과 클라이언트-셀(220b, 230b)로 구성된다.
서버-셀(220a, 230a)은 가상의 게임 세계(210)를 관리할 수 있도록 구분되어 지며, 인터넷 망을 통하여 클라이언트(221, 222, 223, 231, 232 또는 233)가 게임을 하기 위하여 접속할 경우, 클라이언트(221, 222, 223, 231, 232 또는 233)와 서 버(210) 간 통신을 하기 위한 수단을 지원하게 된다.
서버(210)에서 가상의 게임 공간을 구분하고 관리하기 위하여 서버-셀(220a, 230a)이 구성되는 경우, 클라이언트(221, 222, 223, 231, 232 또는 233) 접속과 이동과 같은 일을 처리하기 위하여 중앙 서버 셀-데몬(Central Cell-Daemon; CCD)을 함께 구성한다.
서버-셀(220a, 230a)에서 CCD가 구성될 때, 셀-데몬 리스트(CD-List)를 함께 구성되어 초기화된다.
여기서, CD-List는 클라이언트(221, 222, 223, 231, 232 또는 233)가 접속되거나 접속 해지하는 경우와 같은 이벤트가 발생했을 때, 이에 대한 처리를 하기 위하여 클라이언트(221, 222, 223, 231, 232 또는 233)를 리스트로 분류하게 된다.
또한, 서버-셀(220a, 230a)과 매칭되어 클라이언트-셀(220b, 230b)이 구성되고, 클라이언트-셀(220b, 230b)은 다수의 클라이언트(221, 222, 223, 231, 232 또는 233)를 포함하게 된다.
여기서, 서버-셀(220a, 230a)에 대응하여 클라이언트-셀(220b, 230b)이 반드시 구성되는 것은 아니며, 클라이언트-셀(220b, 230b)에 클라이언트가 진입할 경우에만 클라이언트-셀(220b, 230b)이 구성되는 것이다.
여기서, 일정한 수의 클라이언트(221, 222, 223, 231, 232 또는 233)를 클라이언트-셀(220b, 230b)에서 포함하여 관리하게 된다.
여기서, 각각의 클라이언트-셀(220b, 230b)에 포함된 클라이언트(221, 222, 223, 231, 232 또는 233)는 서버(210)와 통신을 전담할 클라이언트(222, 232)가 설 정되고, 앞서 상술한 클라이언트(222, 232)는 MCD가 포함되어 MCD와 CCD간 통신이 이루어지게 된다.
즉, 클라이언트(221, 222, 223, 231, 232 또는 233)에서 발생한 데이터는 단 방향으로 서버(210)의 서버-셀로 전송이되며, 서버(210)에서는 클라이언트(221, 222, 223, 231, 232 또는 233)로 전송할 경우에는 클라이언트-셀(220b, 230b)에 속해 있는 MCD에게 전송하는 구조이다.
이러한 구조를 이용하여, 서버(210)와 클라이언트(221, 222, 223, 231, 232 또는 233) 간 전송되는 데이터량을 감소시키는 것으로 서버(210)와 클라이언트(221, 222, 223, 231, 232 또는 233) 간 트래픽을 감소시킨다.
결국, 각각의 클라이언트는 MCD, SCD 및 CCD로 패킷을 모두 송신하고, 클라이언트는 MCD에서만 패킷을 수신하는 구조이다.
즉, 서버(210)와 클라이언트(221, 222, 223, 231, 232 또는 233) 간 트래픽은 서버(210)측에서 송신하는 트래픽과 수신하는 트래픽으로 구성할 수 있는데, 일반적으로 서버의 트래픽은 데이터를 송신하는 트래픽이 데이터를 수신하는 트래픽에 비해 몇 배 이상 차이가 있기에 서버에서 데이터를 송신하는 트래픽을 감소하는 것은 서버와 클라이언트 간 발생하는 총 트래픽을 감소하게 된다.
도 2b는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 서버와 클라이언트 간 구조를 설명하기 위한 블록도 이다.
도시된 바와 같이, 대규모 온라인 시스템에서 서버와 클라이언트 간 구조는 서버-셀(220a, 230a)과 클라이언트-셀(220b, 230b)로 구성된다.
서버는 가상의 게임 공간(210)을 다수의 서버-셀(220a, 230a)로 구분하여 각각의 서버-셀(220a, 230a)의 범주 안에서 수행되는 각종 이벤트를 처리한다.
또한, 서버에서 각각의 서버-셀(220a, 230a)은 CCD에 의해 관리되도록 하고, CCD 간에는 게임에 필요한 정보가 연동하도록 한다.
이렇게 구성하는 이유는 대규모로 다수의 클라이언트가 서버에 접속하여 게임을 수행하면서 발생하는 모든 이벤트를 단일 서버에서 처리할 수 없기 때문에 하나 이상의 서버로 구성하게 되고, 다수의 서버로 구성될 경우, 서버 간 연동을 수행하기 위한 CCD이 필요하게 된다.
즉, 각각의 서버-셀(220a, 230a)을 하나 이상의 서버로 구성하는 분산 환경으로 구성하게 되면 서버와 클라이언트 간 집중화가 발생하지 않게 되어 어느 서버-셀(220a, 230a)에서 문제가 발생한다 하여도 기타 다른 서버-셀(220a, 230a)로 통신의 단절이나 지연을 전파되지 않는다.
또한, 각각의 서버-셀(220a, 230a)과 매칭되어 클라이언트-셀(220b, 230b)이 클라이언트 단에서 구성된다.
여기서, 서버-셀(220a, 230a)에 대응하여 클라이언트-셀(220b, 230b)이 반드시 구성되는 것은 아니며, 클라이언트-셀(220b, 230b)에 클라이언트가 진입할 경우에만 클라이언트-셀(220b, 230b)이 구성되는 것이다.
서버-셀(220a, 230a)의 CCD에서 각각의 클라이언트-셀(220b, 230b)을 관리하게 된다.
여기서, 클라이언트-셀(220b, 230b) 내에 존재하는 어느 하나의 클라이언트는 MCD를 포함하는 제1 마스터가 되며, 제1 마스터는 MCD를 통해 클라이언트-셀(220b, 230b)을 관리하고, 클라이언트-셀(220b, 230b)과 서버-셀(220a, 230a)간 연동하도록 한다.
이러한, 가상의 공간(210)을 구분한 클라이언트-셀(220b, 230b)에서 네트워크 성능, 클라이언트 성능 등을 비교하여 최적의 성능을 보이는 클라이언트를 제1 마스터로 MCD로 설정된다.
여기서, 제1 마스터의 네트워크가 장애가 발생하거나, 제1 마스터가 셀간 이동으로 인하여 더 이상 클라이언트-셀(220b, 230b)의 MCD 역할을 수행하지 못할 경우를 대비하여 클라이언트-셀(220b, 230b) 내에 존재하는 다른 하나의 클라이언트를 MCD의 백업용으로 2차 셀-데몬(Secondary Cell-Daemon; SCD)을 포함하는 제2 마스터를 구성하게 된다.
즉, 클라이언트-셀(220b, 230b)에는 제1 마스터로 MCD가 할당되고, 백업용인 제2 마스터로 SCD가 할당되는 것으로 제1 마스터가 더 이상 기능을 수행할 수 없을 경우에는 제2 마스터가 제1 마스터 역할을 대신하게 되어 네트워크 안정성을 높이게 된다.
여기서, MCD를 클라이언트-셀(220b, 230b)에 설정하는 이유는 게임 서버와 클라이언트의 특성상 같은 가상의 공간(210)에서 포함되는 클라이언트 간 대화, 클라이언트별 점수 변화, 클라이언트별 아이템 획득과 같은 이벤트로 발생하는 클라이언트 간 데이터를 모두 서버와 클라이언트 간 데이터를 송수신할 필요는 없기 때 문이다.
즉, 클라이언트-셀(220b)에서 클라이언트(222, 223, 221a 내지 221c)들은 MCD를 포함하는 클라이언트(222)를 중심으로 통신이 이루어지는 것으로 클라이언트(221a 내지 221c)는 MCD를 포함하는 클라이언트(222), SCD를 포함하는 클라이언트(223), CCD(220a)에 전부 이벤트에 대한 정보를 전송하고, 이에 대한 처리 후 서버에서 존재하는 CCD(220a)는 클라이언트-셀(220b)에만 처리 결과를 전송하는 방법을 이용하여 서버의 외부로 출력되는 트래픽을 감소하는 것이다.
또한, 클라이언트(222, 223, 221a 내지 221c)들의 이동성을 MCD에서 조사하고, 만약 클라이언트 중 어느 하나의 클라이언트가 속해 있는 클라이언트-셀(220b)에서 이웃하는 다른 클라이언트-셀(230b)로 이동을 할 경우, 핸드오버 또는 핸드오프 기능을 지원하기 위하여, MCD(222, 232) 간 통신이 이루어진다.
여기서, 실선은 양방향 통신을 의미하고, 점선은 단일 방향의 데이터 전송을 의미하는 것이다.
여기서, 도시되지는 않았지만 클라이언트-셀(220b)에 존재하는 클라이언트(221a, 221b, 221c, 222 및 223)는 서버-셀(220a)에 존재하는 CCD에 직접적으로 단방향 통신을 하고, 클라이언트-셀(230b)에 존재하는 클라이언트(231a, 231b, 231c, 232 및 233)도 서버-셀(230a)에 존재하는 CCD에 직접적으로 단방향 통신을 한다.
도 3은 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 클라이언트가 증가하였을 경우 중앙 서버 셀-데몬과 셀-데몬 리스트에 클라이언트에 따른 마크와 순서를 결정하는 방법을 도시한 블록 도이다.
도시된 바와 같이, 각각의 서버-셀에는 셀-데몬 리스트(CD List)가 하나씩 포함되며, 이 셀-데몬 리스트에는 클라이언트-셀을 관리하기 위한 마스터 셀-데몬과 마스터 셀-데몬의 백업용 2차 셀-데몬과 클라이언트 수 등을 관리하기 위한 마크가 리스트 된다.
결국, 이러한 구조로 인하여 셀-데몬 리스트의 변경권한은 CCD에 있다.
클라이언트-셀에 클라이언트(1)가 진입하여 양방향 통신을 수행하는 경우(300A)는 오직 클라이언트(1)와 CCD 간 통신이 이루어 지게 되고, CCD의 셀-데몬 리스트에 저장되는 마크는 셀-데몬 역할을 수행할 수 있다는 의미의 "C" 마크를 셀-데몬 리스트에 추가한다.
이러한 연결에 의하여 클라이언트(1)에서는 CCD와 직접 통신을 하게 된다.
클라이언트-셀에 클라이언트(2)가 추가된 경우(300B)는 클라이언트(2)에서 CCD와 연결되어 통신을 수행하게 되고, 동시에 셀-데몬 역할을 수행하기 위한 권한①을 요구하게 되고, CCD에서 클라이언트(2)에 셀-데몬 역할을 수행하기 위한 권한②을 부여한다(300C).
이러한 순서에 따라 클라이언트(2)는 셀-데몬 역할을 수행할 수 있는 2차 셀-데몬이 구성되고, CCD측 CD-List에 클라이언트(2)를 등록하게 된다(300D).
여기서, 2차 셀-데몬이 등록되었다 하여도 CCD의 CD-List에 등록된 순서는 변경되지 않는다.
이러한 이유는, 앞서 설명한 바와 같이 CD-List 변경 권하는 CCD에 있으며, 클라이언트가 연결되었다고 해서 무조건 CD-List가 변경되는 것은 아니다.
클라이언트(2)가 2차 셀-데몬으로 정해지면, 각각의 클라이언트(1, 2)의 클라이언트 리스트에도 제2 클라이언트 마크가 "C-2"로 등록된다(300E).
여기서, 2차 셀-데몬이 정해지면 CCD에서는 2차 셀-데몬이 포함된 클라이언트-셀에서 마스터 셀-데몬 역할을 수행할 수 있는 셀-데몬을 조사하게 되고 2차 셀-데몬은 마스터 셀-데몬으로 역할을 수행할 수 있기에 CCD의 CD-List에서 마크를 "2-C"로 변경하게 된다(300F).
여기서, 각각의 클라이언트(1, 2)에 존재하는 리스트에는 아직 마크가 변경되지 않고 "C-2"로 등록되어 있다.
상술한 절차에 따라, 클라이언트(1, 2)는 CCD와 연결하여 CCD의 CD-List에서 변경된 마크 순서에 따라 클라이언트(2)에서는 2차 셀-데몬을 마스터 셀-데몬으로 (MCD)변경하게 되고, 각각의 클라이언트(1, 2)의 클라이언트 리스트 마크가 "2-C"로 변경하게 된다(300G).
이러한 구조에 의하여, CCD와 양방향 통신이 이루어지는 것은 클라이언트(2)의 마스터 셀-데몬이 수행하게 되며, 클라이언트(1, 2)에서는 MCD 및 CCD로 정보를 단방향 전송하게 되며, MCD에서는 CCD와 양방향 통신을 수행하게 된다.
즉, MCD가 CCD와 클라이언트(1, 2) 간 통신을 담당하여 서버의 CCD는 각각의 클라이언트(1, 2)에 직접적으로 송신하지 않고, MCD로만 전송하는 것으로 서버의 외부로 전송되는 트래픽을 감소하게 된다.
이러한 과정이 수행되면, 클라이언트(1, 2)는 각종 이벤트에 대한 핸들링 데 이터를 직접 단방향으로 MCD 및 CCD로 전송하고, MCD는 CCD와 양방향 통신을 하여 클라이언트(1, 2)로 CCD의 데이터를 전송하게 되어, 결국 CCD는 클라이언트의 MCD로만 정보를 전송하여 CCD에서 클라이언트(1, 2)로 전송되는 총 트래픽을 감소하게 된다.
클라이언트(3)가 추가로 클라이언트-셀에 진입하게 되면, MCD 및 CCD로 클라이언트(3)의 추가에 관한 정보를 전송하여 클라이언트-셀에 포함된 클라이언트(1)와 마스터 셀-데몬과 통신을 수행하기 위한 연결이 진행되고, 클라이언트(3)가 앞서 전술한 절차(300B 내지 300D)에 따라 셀-데몬으로 역할을 수행할 수 있다고 CCD에 정보를 전송하게 된다(300H).
CCD에서 클라이언트(3)의 셀-데몬으로 수행할 수 있는 능력이 보유된 경우라면, 셀-데몬으로 수행할 수 있다는 정보를 클라이언트(3)로 넘기고 CCD의 CD-List의 마크를 "2-C-3"으로 변경하게 되고, 변경된 CCD의 CD-List 마크에 따라 클라이언트(3)는 이미 동일한 클라이언트-셀에 마스터 셀-데몬이 존재하기에 백업용 데몬인 2차 셀-데몬을 생성하고 클라이언트(1, 2 및 3)로부터 백업 정보를 전송받게 되며, 동시에 각각의 클라이언트(1, 2 및 3)의 클라이언트 리스트 마크는 "2-C-3"으로 등록된다(300I).
결국, 각각의 클라이언트(1, 2 및 3)는 각각의 MCD, SCD 및 CCD에 데이터를 전송하고, 전송된 데이터에 대한 처리를 수행한 후에는, CCD는 각각의 클라이언트(1, 2 및 3)으로 처리된 결과 정보를 전송하는 것이 아니라, 같은 클라이언트 셀에 존재하는 MCD에게만 전송하고, MCD에서는 클라이언트-셀에 포함된 각각의 클라이언 트(1, 2 및 3)로 CCD의 처리 결과를 대행하여 전송하는 것이다.
이러한 구조에 의하여, 클라이언트-셀에 마스터 셀-데몬과 백업용 2차 셀-데몬과 각각의 클라이언트 간 통신이 전달하고, 수행되는지 파악할 수 있다.
도 4는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 마스터 셀-데몬에서 네트워크 장애가 발생하였을 경우 시스템 안정을 위한 처리방법을 도시한 블록 도이다.
도시된 바와 같이, CCD, MCD, SCD 및 클라이언트(1 내지 3)를 포함하며 CD-List는 "2-C-3"으로 이상적으로 동작하고 있다(400A).
만약, 클라이언트-셀에서 CCD와 통신중인 MCD를 포함하는 클라이언트(2)에서 네트워크 장애(Crash)가 발생하면(400B), 동일 클라이언트-셀에서 MCD와 연결되어 통신을 수행하고 있던 클라이언트(1, 3)는 MCD와 통신상 연결의 단절이 발생한다(400C).
이렇게 단절이 발생할 경우(400C)에는 CCD의 CD-List에서 일정한 규칙에 따라 MCD의 단절을 검사하고, 단절에 따른 처리를 수행하게 된다.
즉, 일정한 규칙으로 CCD와 MCD간 일정 주기로 동기신호를 주고 받다가 MCD의 단절에 따른 동기신호가 CCD에서 미수신될 경우에는 즉각적으로 CCD의 CD-List에서 MCD에 해당하는 클라이언트-마크인 "2"를 삭제하고 SCD의 클라이언트(3)를 MCD로 변환되게끔 CD-List에 마크를 "C-3"에서 "3-C"로 변경하게 된다(400D).
CD-List에서 마크가 "3-C"로 변경되면 SCD 역할을 수행하던 클라이언트(3)는 SCD를 MCD로 변경하게 되고, 클라이언트(1, 3)는 MCD와 양방향 통신을 하기 위한 통신상의 연결이 수행되며, MCD와 CCD간 양방향 통신을 위한 연결이 수행되어 각 클라이언트(1, 3)의 클라이언트 리스트는 "3,C"로 변경되어 원활한 통신을 수행하도록 한다(400E).
여기서, SCD는 일정 순간마다 MCD가 수행하던 작업을 백업하였기 때문에 MCD의 네트워크 단절에 의하여 발생할 수 있는 오류나 데이터 손실을 최소화할 수 있다.
결국, 클라이언트(1 내지 3)에서 보내는 신호를 CCD와 MCD 및 SCD에서 주시하고 있다가 MCD나 SCD의 네트워크 장애가 발생할 경우 즉각적으로 조치를 취하는 것으로 대규모 네트워크 시스템에서 통신의 안정성과 네트워크 부하를 감소하게 되는 것이다.
또한, CCD는 MCD의 네트워크 이상만 검사하는 것이 아니라 MCD에서 의심되는 작업이 수행되는지도 검사하여 MCD의 기능 이상이나 비정상적인 침입을 봉쇄할 수도 있다.
도 5는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 클라이언트-셀에 클라이언트가 증가하였을 경우 클라이언트-셀을 이등분하는 방법을 도시한 블록 도이다.
도시된 바와 같이, 클라이언트-셀이 분할되기 전의 단계(500B)에서 마스터 셀-데몬을 포함하는 클라이언트(508), 2차 셀-데몬을 포함하는 클라이언트(502, 510), 마스터 셀-데몬으로 설정될 수 있는 셀-데몬을 포함하는 클라이언트(501, 504, 505 및 511) 및 셀-데몬을 포함하지 않는 클라이언트(503, 506 및 509)를 포 함한다.
여기서, 동일 클라이언트-셀에 포함된 클라이언트 수가 증가하면, 서비스 서버와 클라이언트 사이에 전송되는 데이터를 경감하기 위한 마스터 셀-데몬에 상당한 네트워크 부하가 증가하게 된다.
이러한 네트워크 부하가 증가가 하나의 클라이언트로 집중화되는 것은 바람직한 방법이 아니다.
이러한 집중화를 방지하기 위하여, 클라이어트-셀은 분할되는 과정을 수행하게 된고, 결국, 제1 이 분할이 수행되는 단계(500B)에서는 클라이언트 수가 비등하게 클라이언트 서브-셀로 이 분할이 된다.
여기서, 클라이언트 서브-셀로 이 분할이 이루어진 경우, 각각의 클라이언트 서브-셀에 포함되어 있는 클라이언트에 대한 마스터 셀-데몬, 2차 셀-데몬 등의 재설정 작업이 이루어져 제1 이 분할된 단계(500B)에서는 최초 분할되기 전 단계(500A)에 속하여진 클라이언트 간 특성의 변화가 이루어진다.
즉, 클라이언트(501 내지 504)가 포함되어 분할된 제1 클라이언트 서브-셀과, 클라이언트(505 내지 511)가 포함되어 분할된 제2 클라이언트 서브-셀로 분할이 이루어진다.
여기서, 제1 클라이언트 서브-셀로 분할되어 포함된 클라이언트(501 내지 504) 중 마스터 셀-데몬으로 설정할 수 있는 클라이언트(501, 504)는 2차 셀-데몬을 포함하는 클라이언트(502)로 변경되게 되며, 최초 2차 셀-데몬을 포함된 클라이언트(502)는 마스터 셀-데몬을 포함하는 클라이언트(502)로 변경된다.
또한, 제2 클라이언트 서브-셀로 분할되어 포함된 클라이언트(505 내지 511) 중 마스터 셀-데몬으로 설정할 수 있는 클라이언트(505, 511) 중 클라이언트(505)는 2차 셀-데몬을 포함하는 클라이언트(505)로 변경된다.
만약, 최초 분할로 클라이언트 서브-셀 중에 다시 분할이 필요한 경우에는 앞서의 절차를 반복하게 되어 제2 클라이언트 서브-셀은 다시 제3 클라이언트 서브-셀로 분할된다.
여기서, 제2 클라이언트 서브-셀은 클라이언트(506, 508 및 511)로 구성되며, 제3 클라이언트 서브-셀은 클라이언트(505, 507, 509 및 510)로 구성되고, 제2 클라이언트 서브-셀의 마스터 셀-데몬으로 설정할 수 있는 클라이언트(511)는 2차 셀-데몬을 포함하는 클라이언트(511)로 변경되고, 제3 클라이언트 서브-셀의 2차 셀-데몬인 클라이언트(511)는 마스터 셀-데몬을 포함하는 클라이언트(511)로 변경된다.
이와 같은 방법으로, 클라이언트의 이동에 따라 이전에 분할된 클라이언트 서브-셀에 포함된 클라이언트가 감소할 경우에는 다시 클라이언트-셀로 병합하는 것으로 일정한 클라이언트와 서버 간 네트워크 용량을 유지하게 된다.
도 6a 및 도 6b는 본 발명에 따른 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템에서 하나의 클라이언트-셀 안에서 발생하는 네트워크 트래픽을 분석하기 위한 블록 도이다.
도 6a에 도시된 바와 같이, 한 변의 길이가 l인 정사각형으로 이루어진 클라이언트-셀은 동서남북의 4가지 방향과 각각의 대각선 방향을 합하여 모두 8가지 방 향으로 반지름이 r인 클라이언트가 분포되어 이동한다고 가정한다.
클라이언트-셀에서 외부로 전송되는 트래픽은 마스터 셀-데몬으로 설정할 수 있는 클라이언트가 클라이언트-셀에 존재하여 전송되는 트래픽과 존재하지 않았을 경우에 전송되는 트래픽을 모두 합한 결과가 앞서 상술한 클라이언트-셀에서 외부로 전송되는 트래픽의 총 합이 된다.
마스터 셀-데몬으로 설정할 수 있는 클라이언트가 클라이언트-셀에 존재할 확률이 P이고, 마스터 셀-데몬으로 설정이 불가능한 클라이언트가 클라이언트-셀에 존재할 확률이 1-P가 되고, 피어-투-피어(peer to peer)에서 발생하는 트래픽을 Tpp라 하고, 전형적인 서버와 클라이언트 간 트래픽을 Tcs라 하고, 이웃하는 클라이언트-셀간 통신하기 위한 트래픽을 Ta라 하고, 클라이언트-셀에서 클라이언트가 이동함에 따라 데이터 전송의 중단없이 연속적으로 데이터가 전송되기 핸드오버를 위한 트래픽을 Th라 할 경우에 클라이언트-셀에서 발생하는 총 트래픽은 다음 수학식 1과 같다.
Figure 112005031102905-pat00001
여기서, Tall는 클라이언트-셀에서 발생하는 총 트래픽의 합이고,
Tcs는 일반적인 서버와 클라이언트 간 발생하는 총 트래픽이고,
Ta는 이웃하는 클라이언트-셀간 통신으로 발생하는 총 트래픽이고,
Tpp는 피어투피어로 인하여 발생하는 총 트래픽이고,
P는 마스터 셀-데몬으로 변경할 수 있는 클라이언트가 클라이언트-셀에 존재할 확률이다.
클라이언트-셀은 한 번의 길이가 l인 정사각형으로 가상의 게임 세계를 구분되면, 각각의 클라이언트는 앞서 상술한 가상의 게임 세계에 반지름 r인 자기만의 가시거리를 가지며 존재하게 되고, 각각의 클라이언트-셀에 존재하게 되는 클라이언트의 밀도를 D라 하고, 클라이언트-셀에 존재하는 클라이언트 수를 N이라 하고, 서버와 클라이언트 간 트래픽을 계산하기 위한 비의 상수로 Ccs를 포함할 경우, 서버와 클라이언트 간 발생하는 트래픽의 총합 Tcs는 다음 수학식 2와 같다.
Figure 112005031102905-pat00002
여기서, Tcs는 서버와 클라이언트 간 발생하는 트래픽의 총합이고,
Ccs는 서버와 클라이언트 간 트래픽을 계산하기 위한 비의 상수이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이고,
D는 클라이언트-셀에 존재하게 되는 클라이언트의 밀도이다.
클라이언트-셀은 동서남북으로 4개의 방향이 존재하고 각각의 대각선으로 4개의 방향이 존재하여 이웃 간 통신을 하기 위한 트래픽 Ta가 발생하기 때문에 이웃한 클라이언트-셀간 통 트래픽을 구하기 위해서는 동서남북의 4방향 트래픽과 대각선에 대항 트래픽의 합으로 구하게 되며, 이웃하는 클라이언트-셀간 통신으로 발생하는 총 트래픽 Ta은 한 변의 길이가 l인 정사각형으로 구분된 클라이언트-셀에 서 존재하는 클라이언트 수가 N이고, 존재할 확률이 P이고, 클라이언트의 밀도가 D이면 다음 수학식 3과 같다.
Figure 112005031102905-pat00003
여기서, Ta는 이웃하는 클라이언트-셀간 통신으로 발생하는 총 트래픽이고,
Ca는 이웃하는 클라이언트-셀간 통신으로 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
r은 가상의 게임 세계에 반지름 r인 자기만의 가시거리를 가지는 클라이언트의 반지름이고,
l은 정사각형으로 구분된 클라이언트-셀의 한 변의 길이이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이고,
P는 마스터 셀-데몬으로 변경할 수 있는 클라이언트가 클라이언트-셀에 존재할 확률이고,
D는 클라이언트-셀에 존재하게 되는 클라이언트의 밀도이다.
도 6b에 도시된 바와 같이, 한 변의 길이가 l인 정사각형으로 이루어진 클라이언트-셀은 클라이언트가 가상의 게임 세계에서 이동속도 M을 가지고 임의의 방향으로 이동한다고 가정한다.
즉, 클라이언트가 클라이언트-셀에서 이동 속도를 가지고 이동하는 경우 벡터로 (Mx, My)로 표시할 수 있다. 이러한 이웃하는 클라이언트-셀로 이동시 서버와 클라이언트간 통신의 단절이 발생하지 않도록 핸드오버 또는 핸드오프 기능을 구현하기 위한 트래픽 Th가 발생하게 되고 다음 수학식 4과 같다.
Figure 112005031102905-pat00004
여기서, Th는 핸드오버 또는 핸드오프 기능을 구현하기 위해 발생하는 총 트래픽이고,
Ch는 핸드오버 또는 핸드오프 기능을 구현하기 위해 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
F는 클라이언트-셀에서 클라이언트의 이동비이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이고,
M은 클라이언트가 가상의 게임 세계에서 초당 이동한 거리이고,
D는 클라이언트-셀에 존재하게 되는 클라이언트의 밀도이고,
l은 정사각형으로 구분된 클라이언트-셀의 한 변의 길이이다.
피어투피어로 클라이언트-셀간 발생하는 총 트래픽 Tpp는 다음 수학식 5와 같다.
Figure 112005031102905-pat00005
여기서, Tpp는 피어투피어로 클라이언트-셀간 발생하는 총 트래픽이고,
Cpp는 피어투피어로 클라이언트-셀간 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이다.
여기서, R은 마스터 셀-데몬으로 변경할 수 있는 클라이언트의 비율이고, N은 클라이언트-셀에 존재하는 클라이언트 수이면, P는 마스터 셀-데몬으로 변경할 수 있는 클라이언트가 클라이언트-셀에 존재할 확률로 다음 수학식 6과 같다.
Figure 112005031102905-pat00006
여기서, P는 마스터 셀-데몬으로 변경할 수 있는 클라이언트가 클라이언트-셀에 존재할 확률이고,
R은 마스터 셀-데몬으로 변경할 수 있는 클라이언트의 비율이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이다.
반지름 r인 원인 클라이언트의 수가 D이고, N은 한 변의 길이가 l인 클라이언트-셀에 포함되는 클라이언트 수로 정의하면, 클라이언트 수 N과 밀도 D는 다음 수학식 7과 같다.
Figure 112005031102905-pat00007
여기서, N은 한 변의 길이가 l인 클라이언트-셀에 포함되는 클라이언트 수이고,
l은 정사각형으로 구분된 클라이언트-셀의 한 변의 길이이고,
r은 가상의 게임 세계에 반지름 r인 자기만의 가시거리를 가지는 클라이언트의 반지름이고,
D는 반지름 r인 원인 클라이언트의 수이다.
앞서 상술한 수학식에 따라 클라이언트-셀에서 발생하는 총 트래픽은 다음 수학식 8과 같다.
Figure 112005031102905-pat00008
여기서, Ccs는 서버와 클라이언트 간 트래픽을 계산하기 위한 비의 상수이 고,
Ca는 이웃하는 클라이언트-셀간 통신으로 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
Ch는 핸드오버 또는 핸드오프 기능을 구현하기 위해 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
Cpp는 피어투피어로 클라이언트-셀간 발생하는 총 트래픽을 계산하기 위한 비의 상수이고,
N은 클라이언트-셀에 존재하는 클라이언트 수이고,
D는 클라이언트-셀에 존재하게 되는 클라이언트의 밀도이고,
R은 마스터 셀-데몬으로 변경할 수 있는 클라이언트의 비율이고,
F는 클라이언트-셀에서 클라이언트의 이동비이고,
M은 클라이언트가 가상의 게임 세계에서 초당 이동한 거리이고,
r은 가상의 게임 세계에 반지름 r인 자기만의 가시거리를 가지는 클라이언트의 반지름이고,
l은 정사각형으로 구분된 클라이언트-셀의 한 변의 길이이다.
수학식 8에 의하여 해석되는 식에 따라 최적의 클라이언트-셀을 구성하여 서버와 클라이언트 간 트래픽을 감소할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술 분야의 당업자가 본 발명의 그 기술 적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명은 서버와 클라이언트 간 트래픽이 감소하여 서버와 클라이언트를 구성하면 네트워크 망을 통해 가상의 게임 공간에서 게임을 하는 다수의 클라이언트와 게임에 필요한 정보를 송수신하는 서버로 이루어지는 대규모 온라인 게임 시스템을 구성할 수 있다.
또한, 본 발명은 클라이언트의 일시적 장애, 고장 또는 네트워크 상태 불량으로 인하여 발생하는 통신 지연이 없이 서버와 클라이언트 간 데이터를 송수신할 수 있다.
또한, 본 발명은 서버와 클라이언트 간 데이터의 중단이 발생하지 않고 클라이언트가 게임 내에서 이동할 수 있다.

Claims (12)

  1. 네트워크망과 연결되어 상기 네트워크망을 통해 가상의 게임 공간에서 게임을 하는 다수의 클라이언트와, 상기 클라이언트가 상기 네트워크망을 통해 게임을 하는 경우 필요한 정보를 송수신하는 서버로 이루어지는 대규모 온라인 게임 시스템에 있어서,
    상기 가상의 게임 공간을 다수의 서버-셀(Cell)로 구분하며, 상기 서버-셀은 중앙 서버 셀-데몬(Central Cell-Daemon; CCD)에 의해 관리되도록 하고, 상기 중앙 서버 셀-데몬 간에는 게임에 필요한 정보가 연동하도록 하는 서버,
    상기 서버-셀과 매칭되며, 하나 이상의 클라이언트가 포함되고, 다수 개가 존재하는 클라이언트-셀을 포함하며,
    상기 클라이언트-셀 내에 존재하는 어느 하나의 클라이언트는 마스터 셀-데몬(Master Cell-Daemon; MCD)을 포함하는 제1 마스터이며, 상기 제1 마스터는 상기 마스터 셀-데몬을 통해 상기 클라이언트-셀을 관리하며, 상기 클라이언트-셀과 상기 서버 셀과 연동하도록 하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템.
  2. 제1항에 있어서,
    상기 클라이언트-셀 내에 존재하는 다른 하나의 클라이언트는 마스터 셀-데몬의 백업용으로 2차 셀-데몬(Secondary Cell-Daemon; SCD)을 포함하는 제2 마스터 인, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템.
  3. 제1항에 있어서,
    상기 클라이언트-셀 내에 존재하는 클라이언트는 상기 서버-셀의 중앙 서버 셀-데몬, 상기 클라이언트-셀의 마스터 셀-데몬 또는 상기 클라이언트-셀의 2차 셀-데몬 중 적어도 하나 이상의 데몬으로 정보를 전송하며,
    상기 서버-셀의 중앙 서버 셀-데몬은 클라이언트-셀의 마스터 셀-데몬으로만 정보를 전송하고,
    상기 클라이언트-셀 내에 존재하는 클라이언트는 상기 마스터 셀-데몬을 통하여 상기 서버-셀의 중앙 서버 셀-데몬으로부터 정보를 수신하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템.
  4. 제1항에 있어서,
    상기 마스터 셀-데몬은 상기 클라이언트가 클라이언트-셀간 이동하는 경우, 상기 서버와 통신의 단절 없이 정보가 송수신 되도록 핸드-오프(hand-off) 또는 핸드-오버(hand-over) 기능을 지원하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 대규모 온라인 시스템.
  5. (a) 서버에서 가상의 게임 공간을 구분하기 위한 서버-셀을 생성하는 단계;
    (b) 상기 서버에서 상기 서버-셀을 관리하기 위한 중앙 서버 셀-데몬을 설정하는 단계;
    (c) 클라이언트에서 상기 서버-셀과 매칭되며 클라이언트를 구분하기 위한 클라이언트-셀을 생성하는 단계;
    (d) 상기 클라이언트에서 상기 클라이언트-셀을 관리하기 위한 마스터 셀-데몬을 설정하는 단계;
    (e) 상기 클라이언트에서 상기 가상의 게임 공간에서 클라이언트가 클라이언트-셀간 이동시 클라이언트-셀간 데이터 전송이 단절되는 것을 방지하기 위하여 클라이언트 위치 셀을 검사하는 단계;
    를 포함하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법.
  6. (a) 가상의 게임 공간을 구분하기 위한 서버-셀을 생성하는 단계;
    (b) 상기 서버-셀을 관리하기 위한 중앙 서버 셀-데몬을 설정하는 단계;
    (c) 상기 서버-셀과 매칭되며 클라이언트를 구분하기 위한 클라이언트-셀을 생성하는 단계;
    (d) 상기 클라이언트-셀을 관리하기 위한 마스터 셀-데몬을 설정하는 단계;
    (e) 상기 가상의 게임 공간에서 클라이언트가 클라이언트-셀간 이동시 클라이언트-셀간 데이터 전송이 단절되는 것을 방지하기 위하여 클라이언트 위치 셀을 검사하는 단계;
    를 포함하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  7. 제6항에 있어서,
    상기 클라이언트-셀은 클라이언트-셀에서 처리할 수 있는 최대 용량을 초과할 경우 클라이언트-서브-셀(Client Sub-Cell)로 분할되며, 상기 클라이언트-서브-셀의 관리를 위해 마스터 셀-데몬이 설정되는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  8. 제6항에 있어서,
    상기 (b)단계의 중앙 서버 셀-데몬 설정에 따라, 상기 각각의 서버-셀에 셀-데몬 리스트가 포함되어 초기화되는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 제6항에 있어서,
    상기 (d)단계의 마스터 셀-데몬을 설정하는 단계는,
    (d-1) 상기 클라이언트에서 중앙 셀-데몬으로 데몬을 수행하기 위한 권한을 요청하는 단계;
    (d-2) 상기 중앙 셀-데몬에서 상기 클라이언트의 요청을 검사하는 단계; 및
    (d-3) 상기 클라이언트의 요청이 합당할 경우, 상기 중앙 셀-데몬에서 상기 클라이언트에게 권한을 부여하는 단계;
    를 더 포함하는, 서버와 클라이언트간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  10. 제6항에 있어서,
    상기 (d)단계의 마스터 셀-데몬 설정에 따라, 상기 클라이언트-셀에 포함된 클라이언트에 매칭되는 마스터 셀-데몬 마크를 셀-데몬 리스트에 저장하는, 서버와 클라이언트간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  11. 제10항에 있어서,
    상기 셀-데몬 리스트에 저장된 마크의 최우선 순위의 마크가 마스터 셀-데몬인, 서버와 클라이언트간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  12. 제10항에 있어서,
    상기 (e)단계의 클라이언트를 검사하는 단계는,
    (e-1) 상기 셀-데몬 리스트에 저장된 마크를 검사하는 단계; 및
    (e-2) 상기 마크에 해당하는 클라이언트가 존재하는지 검사하는 단계;를
    더 포함하는, 서버와 클라이언트 간 네트워크 트래픽을 감소시키는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050050422A 2005-06-13 2005-06-13 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체 KR100704738B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050050422A KR100704738B1 (ko) 2005-06-13 2005-06-13 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050050422A KR100704738B1 (ko) 2005-06-13 2005-06-13 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20060129775A KR20060129775A (ko) 2006-12-18
KR100704738B1 true KR100704738B1 (ko) 2007-04-09

Family

ID=37810544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050050422A KR100704738B1 (ko) 2005-06-13 2005-06-13 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR100704738B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI357245B (en) * 2007-12-31 2012-01-21 Ind Tech Res Inst System and method for downloading real-time intera
KR102376390B1 (ko) * 2021-08-26 2022-03-21 이풍연 메타버스 서비스를 제공하는 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (ja) 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム
US20020083199A1 (en) 1998-09-28 2002-06-27 Dingsor Andrew Dwight Method and apparatus load balancing server daemons within a server
KR20020094749A (ko) * 2001-06-13 2002-12-18 주식회사 한얼소프트 가상공간의 연계된 그룹분할 방법과 이를 이용한 가상공간서비스 시스템
JP2004252630A (ja) 2003-02-19 2004-09-09 Nec Corp ネットワークシステム、負荷低減方法、クライアント及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11328125A (ja) 1998-05-15 1999-11-30 Dainippon Printing Co Ltd 仮想空間共有システム
US20020083199A1 (en) 1998-09-28 2002-06-27 Dingsor Andrew Dwight Method and apparatus load balancing server daemons within a server
KR20020094749A (ko) * 2001-06-13 2002-12-18 주식회사 한얼소프트 가상공간의 연계된 그룹분할 방법과 이를 이용한 가상공간서비스 시스템
JP2004252630A (ja) 2003-02-19 2004-09-09 Nec Corp ネットワークシステム、負荷低減方法、クライアント及びプログラム

Also Published As

Publication number Publication date
KR20060129775A (ko) 2006-12-18

Similar Documents

Publication Publication Date Title
CN111741114B (zh) 基于区块链的可监管跨链交互系统、方法及设备
CN111601258B (zh) 一种基于区块链的车联网节点数据安全通信方法
US20050132154A1 (en) Reliable leader election in storage area network
CN101325518B (zh) 用于在结构化对等网络中检测恶意端的监督者端
US7852788B2 (en) Method of organizing nodes of a network into groupings of nodes, computer program for implementing such a method and communication device forming a node of a network of nodes
Elhadef et al. Diagnosing mobile ad-hoc networks: two distributed comparison-based self-diagnosis protocols
WO2020138606A1 (ko) 블록체인 네트워크의 합의 방해요인 제거를 위한 장애 허용 합의 방법
CN110944044B (zh) 一种分布式api网关系统及其实现方法
KR100704738B1 (ko) 서버와 클라이언트 간 네트워크 트래픽을 감소시키는대규모 온라인 시스템과 그 방법 및 이를 실행하기 위한프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN113783899A (zh) 节点退出方法和区块链
CN102271067B (zh) 网络检测方法、装置及系统
CN110191382B (zh) 一种基于路径排序的虚链路优先映射方法
Pan et al. A hybrid interest management mechanism for peer-to-peer networked virtual environments
CN114079567B (zh) 一种基于区块链的通用性ip溯源系统及方法
CN115460255B (zh) 一种基于区块链的命名数据网络系统
CN101483586A (zh) 用于无缝主机迁移的系统和方法
CN106657333B (zh) 一种基于云服务模式的集中式目录数据交换系统及方法
CN114448997A (zh) 一种基于pbft的装备质量信息管理节点共识方法
CN114301598A (zh) 基于分层权威的区块链共识算法、系统及存储介质
KR20220169584A (ko) 사물인터넷 최적화 노드 선별 및 악성 노드 제거 방법
CN105933153A (zh) 集群故障监测方法及装置
CN111866078A (zh) 一种动态异构p2p网络的组网方法及系统
CN110138444A (zh) 一种基于模糊博弈的多域光网络动态组播共享保护方法
CN110636511A (zh) 海量物联网设备接入环境中的授权频谱共享系统及其方法
CN117336302A (zh) 基于区块链网络的数据处理方法及相关设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110404

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee