KR101206604B1 - 온라인 게임 클라이언트간 피어 투 피어 통신방법 - Google Patents

온라인 게임 클라이언트간 피어 투 피어 통신방법 Download PDF

Info

Publication number
KR101206604B1
KR101206604B1 KR1020110013756A KR20110013756A KR101206604B1 KR 101206604 B1 KR101206604 B1 KR 101206604B1 KR 1020110013756 A KR1020110013756 A KR 1020110013756A KR 20110013756 A KR20110013756 A KR 20110013756A KR 101206604 B1 KR101206604 B1 KR 101206604B1
Authority
KR
South Korea
Prior art keywords
client
online game
connection
peer
clients
Prior art date
Application number
KR1020110013756A
Other languages
English (en)
Other versions
KR20120094321A (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 KR1020110013756A priority Critical patent/KR101206604B1/ko
Publication of KR20120094321A publication Critical patent/KR20120094321A/ko
Application granted granted Critical
Publication of KR101206604B1 publication Critical patent/KR101206604B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 온라인 게임 클라이언트간 피어 투 피어 통신방법에 관한 것으로 온라인 게임을 동시에 진행하기 위하여 온라인 게임 내에 만들어진 룸에 접속한 게임 클라이언트들간 주고받는 데이터의 우선순위에 따라 P2P 또는 릴레이 방식에 의하여 통신하는 방법을 개시한다. 이러한 본 발명에 의할 때 게임 클라이언트간 P2P 회선상태에 따라서 P2P와 릴레이를 적절하게 이용함으로써 온라인 게임의 특성상 실시간 동기화가 필요한 데이터의 안전한 송수신이 담보된다.

Description

온라인 게임 클라이언트간 피어 투 피어 통신방법{PEER TO PEER COMMUNICATION METHOD BETWEEN ONLINE GAME CLIENTS}
본 발명은 온라인 게임 서버에 동시접속한 온라인 게임 클라이언트들 사이의 P2P(Peer To Peer) 통신방법에 관한 것이다.
P2P 통신 기술은 데이터 전송 및 대용량 데이터 다운로드를 위한 서비스에 널리 이용되고 있다. 최근에는 멀티 플레이어 온라인 게임 중 FPS(First Person Shooter)게임이나 캐주얼 게임(Casual Game)등에서 각 플레이어의 행동이나 상태를 서로 신속하게 전달하기 위하여 동시접속한 온라인 게임 클라이언트들 사이에 P2P 통신 연결을 설정함으로써 데이터를 상호 주고받는다.
P2P 통신을 위해서는 다음과 같은 순서에 의한 각 피어간 P2P 통신 연결 설정이 선행되어야 한다.
우선 P2P 통신을 하고자 하는 피어들은 P2P 서버에 신뢰 가능한 UDP(Reliable UDP : RUDP) 메시지를 전송함으로써 ID를 전달하고, 공인(public) IP 주소와 포트 번호(Port Number)를 확인한다.
이와 같이 피어들의 접속정보가 수집된 다음, P2P 서버는 각 피어들에게 P2P 접속 상대방의 공중 IP 주소와 포트 번호를 전달한다. 이를 수신한 피어들은 서로 P2P 방식으로 접속을 시도하는데 각 피어들은 상대방에게 RUDP 메시지를 보내 자신이 누구인지를 표시하는 ID와 공인 IP, 포트번호를 전달한다.
한편, 상대방으로부터 이들 정보를 수신한 피어들은 P2P 서버로부터 수신한 정보와 대조하여 일치여부를 확인하고, 상대방에게 자신의 ID를 RUDP 메시지를 통해 응답한다.
이후로는 확인된 정보를 통해, 두 피어들간 RUDP 메시지를 통해 통신하게 된다.
이러한 과정은 아주 보편적인 상황에서 이루어지는 P2P 통신 연결 절차이다. 이 통신 연결 절차가 완료되어야 게임 피어들은 서로 P2P 통신을 진행할 수 있다. 이러한 P2P 연결 절차를 진행하는 데 약간의 지연시간이 발생하나 정상적인 상황에서는 이 지연시간은 생각하지 않아도 될 정도로 작기 때문에 큰 문제가 되지 않는다.
하지만, NAT(Network Address Translator) 또는 방화벽(Firewall)을 사용하는 네트워크 환경에서는 P2P 연결 과정에 문제가 발생한다. 첫째, NAT가 연결 설정에 필요한 정보전달을 차단하여 해당 정보가 각 피어들로 전달되지 못할 수 있다.
둘째, RUDP 통신은 내부적으로 UDP(User Datagram Protocol) 메시지를 통해 통신하는데 UDP 메시지의 경우 통신 환경에 따라 해당 메시지가 손실되는 경우가 발생한다. 이 경우 해당 통신은 단절되며 이로 인해 진행 중이었던 피어 투 피어 통신이 중단된다.
이런 상황에서 피어들은 서로 간 응답을 받지 하기 때문에, 일정 시간 만큼(예를 들어, 5초) 응답에 대기하여야 한다. 응답에 대기하였음에도 불구하고 응답을 받지 못한 경우, 피어들은 P2P 연결을 실패로 처리하고 이후부터 상대방에게 메시지를 보내야 하는 경우 P2P 서버를 통해 메시지를 전달한다.
문제는 상기에서 언급한 바와 같이 응답에 대기해야 하는 경우 특정 시간만큼 응답을 대기하고 있어야 하는데, 연결 설정 중에는 메시지를 보낼 수 없으므로 지연 현상(Delay)이 생기게 된다. 이러한 지연 현상은 게임 플레이를 초기화하는 시점에 생기는 경우에는 큰 문제가 되지 않는다. 하지만 게임 플레이 중 네트워크 요인에 의해 P2P 연결이 종료되는 경우에는 더 이상 피어들간에 정보를 주고받을 수 없기 때문에 연결이 종료된 피어의 모습이 보이지 않거나, 해당 피어의 캐릭터가 움직이지 않는 등의 문제가 발생할 수 있다.
종래에는 이러한 문제가 발생할 경우, 연결이 중단된 피어를 게임 플레이 도중 강제로 퇴장시키거나, 게임 플레이를 전체적으로 잠시 중단시킨 뒤 문제가 생긴 게임 피어의 통신 연결을 재설정한 뒤 다시 게임 플레이를 재개하는 방식을 사용하였다.
이와 같이 피어간 연결을 재설정할 경우 게임의 플레이가 갑자기 중단되므로 사용자의 불만이 높아지고 서비스 안정성에 악영향을 주게 된다.
본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위하여 안출된 것으로, 어떠한 네트워크 환경에서도 게임 플레이가 중단되거나 종료되지 않도록 멀티플레이 온라인 게임에서 연결 중단 현상이 없는 온라인 게임 클라이언트간 피어 투 피어 통신방법 제공을 그 목적으로 한다.
본 발명의 다른 목적은 게임 클라이언트간 연결 설정시 지연 현상의 발생없이 P2P 기반의 메시지 통신을 가능토록 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법 제공에 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법의 일측면은 제 1 클라이언트가 온라인 게임 서버로부터 자신이 속한 접속그룹의 접속정보를 수신하면, 상기 온라인 게임 서버를 경유하여 접속그룹에 속하는 제 2 클라이언트와 릴레이 통신을 시작하되, 제 2 클라이언트와 송수신하는 데이터에 우선순위를 표시하여 통신하는 120 단계;
제 1 클라이언트가 상기 제 2 클라이언트와의 P2P 접속 시도를 하는 130 단계;
P2P 접속이 성공하여 상기 제 2 클라이언트와의 P2P 연결이 생성된 경우 제 1 클라이언트가 상기 제 2 클라이언트와 송수신하던 모든 데이터를 P2P 통신으로 전환하는 140 단계;
제 1 클라이언트가 제 2 클라이언트와의 P2P 통신을 진행하면서 P2P 회선상태를 모니터링하는 150 단계;
P2P 회선상태가 일정 정도 이상 나빠지면 제 1 클라이언트가 일정 기준치 이상 높은 우선순위를 갖는 데이터를 P2P 통신을 통해 상기 제 2 클라이언트로 송수신하되, 나머지 데이터는 상기 온라인 게임 서버를 경유하여 릴레이 통신으로 실시간 전환하는 160 단계;를 포함하는 것을 특징으로 한다.
한편, 상기와 같은 목적을 달성하기 위하여 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법의 다른 일측면은 네트워크를 통해 접속한 클라이언트로부터 온라인 게임을 동시에 진행하기 위한 룸의 생성을 요청받음에 따라 온라인 게임 서버가 접속그룹을 생성하는 제 210 단계;
네트워크를 통해 하나 또는 그 이상의 다른 클라이언트가 룸에 입장함에 따라 온라인 게임 서버가 상기 생성된 접속그룹에 룸에 입장한 클라이언트를 추가하고, 접속그룹에 포함된 클라이언트들의 공중 IP주소, 포트번호 또는 ID 가운데 하나 이상의 정보를 접속그룹별 접속정보를 생성하는 제 220 단계;
온라인 게임 서버가 상기 생성된 접속그룹별 접속정보를 상기 접속그룹에 속하는 게임 클라이언트들로 전송하는 제 230 단계;
접속그룹에 속하는 어느 하나의 클라이언트로부터 다른 클라이언트로 전달될 데이터로서 우선순위가 표시된 데이터를 수신함에 따라 이를 릴레이 방식에 의하여 상기 다른 클라이언트로 전달하는 제 240 단계;
접속그룹에 속하는 클라이언트 가운데 어느 하나가 퇴장하거나, 강제로 퇴장당함에 따라 온라인 게임 서버가 상기 접속그룹으로부터 상기 퇴장한 클라이언트를 삭제함으로써 갱신하는 제 250 단계; 및
온라인 게임 서버가 갱신된 접속그룹별 접속정보를 접속그룹에 속하는 각 클라이언트들에게 전달하는 제 260 단계;를 포함하는 것을 특징으로 한다.
본 발명에 의하면 피어 투 피어 통신으로 메시지 통신을 할 경우 생기는 연결 중단 문제를 해결하여 온라인 게임의 메시지 통신을 원활하고 안정적으로 수행할 수 있게 된다. 이로 인해 온라인 게임 서비스의 품질이 향상되고 사용자들의 이탈을 막을 수 있다는 효과가 발생한다.
구체적으로는 P2P 연결의 회선상태에 따라서 온라인 게임 고유의 특성상 신속한 동기화가 필요한 우선순위가 높은 데이터가 최우선적으로 P2P 연결을 통해 전송되도록 함으로써 P2P 연결의 회선상태의 변화에 유동적으로 대응이 가능하다는 효과가 있다.
한편, 온라인 게임에서의 P2P 연결 중단 문제는 네트워크 상황이 좋지 않은 동남아 국가나 남미 국가 등에서 빈번히 일어난다. 이는 온라인 게임의 서비스 가능 여부에도 직결되는 중요한 문제인데, 본 발명을 의할 때 서비스 안정성을 확보할 수 있어 이들 지역에서도 온라인 게임 서비스가 가능해진다는 효과가 발생한다.
도 1은 게임 클라이언트들과 온라인 게임 서버간의 연결관계를 설명하는 망구성도이며,
도 2는 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법의 일 측면을 클라이언트의 입장에서 설명한 플로우차트이며,
도 3은 도 2에 도시된 발명에 있어 P2P 연결이 생성되는 과정을 설명하는 플로우차트이며,
도 4는 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법의 일 측면을 온라인 게임 서버의 입장에서 설명한 플로우차트이다.
이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법을 상세히 살펴보기로 한다.
도 1는 온라인 게임 서비스의 제공을 위해 게임 클라이언트들과 온라인 게임 서버가 연결되는 일반적인 구조를 설명한다. 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법 또한 이러한 클라이언트(1, 2)와 서버(3)의 연결관계를 기반으로 실시될 수 있다.
도 1에 도시된 바에 의할 때 클라이언트(1, 2)들은 인터넷 망을 통해 온라인 게임 서버(3)로 접속하여 함께 온라인 게임을 진행하게 된다.
온라인 게임 서버(3)는 접속한 클라이언트(1, 2)들로 온라인 게임 서비스를 제공하는 주체로서 후술하는 바와 같이 클라이언트(1, 2)간 P2P 연결을 위한 접속정보를 제공하거나, 클라이언트(1, 2)간 릴레이 통신을 제공하기도 한다.
따라서, 이러한 온라인 게임 서버(3)는 반드시 단일 서버로 이루어질 필요는 없으며 온라인 게임 서비스는 물론, 온라인 게임 서비스에 부대하여 릴레이 통신이나 P2P 통신을 위한 각종 서비스를 제공하는 일련의 서버군을 총칭하는 개념으로 이해되어야 한다.
도 2에 도시된 온라인 게임 클라이언트간 피어 투 피어 통신방법은 본 발명을 클라이언트의 관점에서 설명한다.
도 2에 도시된 바에 의할 때, 제 1 클라이언트(1)가 온라인 게임 서버(3)로 접속하여 다수의 클라이언트들이 온라인 게임을 동시에 진행하기 위한 룸의 생성을 요청한다(S110).
이에 따라 온라인 게임 서버(3)가 룸에 입장한 클라이언트들을 포함하는 접속그룹을 생성하고, 접속그룹에 속하는 클라이언트들의 접속정보를 수집한 다음 이를 제 1 클라이언트(1)를 포함하는 접속그룹내 클라이언트들로 제공한다. 이에 따라 제 1 클라이언트(1)는 수신한 접속정보를 이용하여 접속그룹에 속하는 다른 클라이언트들과의 릴레이 통신을 시작한다(S120).
도 1의 예에서는 접속그룹에 제 1 클라이언트(1)와 제 2 클라이언트(2)가 포함된 것으로 설명하고 있으나, 다수의 클라이언트들이 동시에 접속그룹에 속할 수 있음은 물론이다.
한편, 제 1 클라이언트(1) 및 제 2 클라이언트(2)는 온라인 게임 서버(3)를 통해 릴레이 통신을 진행하는 동시에 백그라운드에서 P2P 접속 시도를 한다(S130).
그 과정을 도 3을 참조하여 상세히 살펴보면 다음과 같다.
우선, 제 1 클라이언트(1)가 수신한 접속그룹에 속하는 클라이언트들 - 도 1의 예에서는 제 2 클라이언트(2)를 자신의 P2P 목록에 등록한다(S131)
이후, P2P 목록에 등록된 제 2 클라이언트와 P2P 접속을 시도하는데(S132), P2P 접속이 실패한 경우에는 릴레이 통신을 계속 진행하되 백그라운드에서 상기 제 2 클라이언트(2)와의 P2P 접속을 반복적으로 시도한다(S133).
한편, P2P 접속이 성공한 경우 상기 제 2 클라이언트(2)의 P2P 접속정보를 기록하고 상기 접속정보를 기반으로 P2P 연결을 생성한다(S134).
이와 같이 P2P 접속이 성공하여 상기 제 2 클라이언트(2)와의 P2P 연결이 생성되면 제 1 클라이언트(1)는 제 2 클라이언트와 릴레이 통신으로 송수신하던 데이터를 P2P 통신으로 전환한다(S140).
이때, 온라인 게임 서버(3)로 제 2 클라이언트(2)와의 P2P 연결 시도, 실패 또는 성공 여부를 통지하지 아니한다. 후술하는 바와 같이 온라인 게임 서버(3)는 클라이언트들(1, 2)간의 P2P 연결의 성공 여부와는 무관하게 릴레이 통신을 지원하기 때문이다.
한편, P2P 접속이 성공함에 따라 제 1 클라이언트(1)는 제 2 클라이언트(2)와의 P2P 회선상태를 판정하여 "좋음"으로 기록하고 모든 데이터를 P2P 통신으로 전환한다. 즉, 릴레이 통신에서부터 P2P로 일시에 전환이 이루어진다.
이후 제 1 클라이언트(1) 및 제 2 클라이언트(2)는 P2P 통신을 진행하면서 P2P 회선상태를 모니터링한다(S150).
회선상태는 P2P 연결을 통한 데이터 송수신 시 지연 시간 또는 재전송의 필요 여부를 주기적으로 파악함으로써 모니터링할 수 있으며, 예를 들어 "좋음", "보통", "나쁨"으로 나뉠 수 있다.
이때, P2P 회선상태가 일정 정도 이상 나빠져 회선상태가 "보통"으로 판정되는 경우 제 1 클라이언트(1) 및 제 2 클라이언트(2)는 우선순위가 높은 데이터는 P2P 통신을 통해 직접 주고받는 반면, 우선순위가 낮은 나머지 데이터는 상기 온라인 게임 서버(3)를 경유하여 릴레이 통신으로 진행한다(S160).
이를 위하여 제 1 클라이언트(1) 및 제 2 클라이언트(2)는 서로 주고 받는 데이터에 우선순위를 표시하여 통신한다.
온라인 게임 고유의 특성상 클라이언트(1, 2) 및 서버(3)간 실시간으로 공유되어야 하는 정보들이 존재하며 네트워크 환경의 변화에 의해 이들 정보의 송수신이 지연되는 경우 온라인 게임의 진행에 큰 차질이 빚어질 수 있다.
예를 들어, 온라인 게임 내 플레이어 캐릭터의 움직임에 관한 정보를 비롯, 각 클라이언트들(1, 2)이 온라인 게임을 함께 진행하기 위해 동기화되어야 하는 정보들은 특히 신속하고 안전한 통신이 이루어져야 한다.
반면, 온라인 게임의 진행에 직접적인 영향을 주지 않는 온라인 게임의 플레이어 캐릭터와 관련되어 표시되는 이모티콘의 설정 또는 변경에 관한 정보 등은 다소 지연되어도 무방하다.
이와 같이 온라인 게임의 특성상 클라이언트(1, 2)간 주고받는 데이터들은 우선순위를 가질 수 있으며, 제 1 클라이언트(1) 및 제 2 클라이언트(2)는 데이터 송수신시 우선순위를 표시하여 주고받게 된다.
우선순위는 예를 들어 "HIGH"와 "NORMAL"의 2 단계로 구분될 수도 있으며, 필요에 따라서는 더욱 세분화하여 구분될 수도 있다.
지나치게 많은 데이터를 P2P 연결을 통해 보냈을 때 P2P 연결 상태가 안좋아지는 일이 발생할 수 있으므로, 우선순위가 높은 중요한 데이터만 P2P 연결로 보냄으로써 “좋음” 상태일 때보다 적은 데이터를 보내어 중요한 데이터는 빨리 보내고 P2P 연결 상태도 더 이상 나빠지지 않게 유지할 수 있게 된다.
회선 상태는 필요에 따라 "좋음", "보통", "나쁨" 이외에도 더욱 세분화하여 구분할 수도 있다. 회선 상태의 각 단계마다 P2P로 주고받는 데이터의 종류와 양이 달라진다.
한편, S160 단계에서 회선상태가 "나쁨"으로 판정되면, 대부분의 데이터를 릴레이 통신을 통해 통신하도록 한다. 한편, 회선상태가 "나쁨" 상태로 일정시간 이상 유지되면 P2P 연결 상태가 더 이상 개선되지 않을 것으로 예상되므로 제 1 클라이언트(1)는 제 2 클라이언트(2)와의 P2P 연결을 해제하고, 우선순위에 무관하게 모든 데이터를 상기 온라인 게임 서버(3)를 경유하여 릴레이 통신에 의해 주고받는다.
한편, P2P 연결의 해제 이후 일정 시간 경과시 제 130 단계로 분기하여 재차 P2P 연결을 시도한다(S170).
한편, 상기 S140 단계에서 제 1 클라이언트(1)가 제 2 클라이언트(2)와의 P2P 연결이 생성됨에 따라 P2P 회선의 초기상태를 "좋음"으로 기록하고, 릴레이 통신을 통해 주고받던 모든 데이터를 P2P 통신으로 전환한 다음 회선 상태가 악화됨에 따라 우선순위에 따라 일부 데이터를 다시 릴레이 통신으로 전환하는 것으로 설명하였으나, 이와는 달리 상기 S140 단계에서 P2P 연결이 생성됨에도 불구하고 P2P 회선의 초기상태가 "보통" 또는 "나쁨"으로 판정되는 경우라면 상기와는 다르게 처리할 수 있을 것이다.
즉, S140 단계에서 제 2 클라이언트(2)와의 P2P 연결이 생성되면 제 1 클라이언트(1)는 회선 상태의 판정결과에 따라서 "보통" 또는 "나쁨"과 같이 설정하고, 일정 기준치 이상 높은 우선순위를 갖는 데이터만을 우선적으로 P2P 통신으로 전환하되, 나머지 데이터는 종전과 같이 릴레이 통신에 의해 제 2 클라이언트(2)와 주고받는다.
이후, S150 단계에서 제 1 클라이언트(1)는 P2P 회선상태를 모니터링하되 회선 상태가 개선되면 S160 단계에서는 종전 릴레이 통신으로 송수신하던 데이터 가운데 우선순위가 높은 일부 데이터를 P2P 방식으로 전환할 수 있다. 이와 같이 회선 상태에 따라 단계별로 P2P 방식으로 전환하되 회선 상태가 "좋음" 상태에 해당하는 것으로 판정되면 모든 데이터를 P2P 방식으로 전환하게 된다.
반대로 회선 상태가 더욱 악화되면 P2P 방식으로 송수신하던 데이터 가운데 우선순위가 낮은 일부 데이터를 릴레이 통신으로 전환하게 된다. 이와 같이 회선 상태에 따라 단계별로 릴레이 통신으로 전환하되 회선 상태가 "나쁨" 상태에 해당하는 것으로 판정되면 대부분의 데이터를 릴레이 통신으로 전환하게 된다.
이하에서는 도 4를 참조하여 본 발명에 의한 온라인 게임 클라이언트간 피어 투 피어 통신방법을 온라인 게임 서버(3)의 관점에서 살펴보기로 한다.
도 4에 도시된 바에 의하면 우선 온라인 게임 서버(3)는 네트워크를 통해 접속한 클라이언트(1)로부터 온라인 게임을 동시에 진행하기 위한 룸의 생성을 요청받음에 따라 접속그룹을 생성한다(S210).
이후 하나 또는 그 이상의 다른 클라이언트(2)가 룸에 입장함에 따라 온라인 게임 서버가 상기 생성된 접속그룹에 룸에 입장한 클라이언트(2)를 추가하고, 접속그룹에 포함된 클라이언트(1, 2)들의 공중 IP주소, 포트번호 또는 ID 가운데 하나 이상의 정보를 수집함으로써 접속그룹별 접속정보를 생성한다(S220).
이와 같이 접속그룹별 접속정보가 생성되면 온라인 게임 서버(3)가 상기 생성된 접속그룹별 접속정보를 상기 접속그룹에 속하는 클라이언트(1, 2)들로 전송한다(S230).
이후 클라이언트(1, 2)들간 릴레이 방식에 의한 통신이 개시된다. 클라이언트(1, 2)들은 우선순위가 표시된 데이터를 서로 주고받는데 온라인 게임 서버(3)는 클라이언트(1, 2)들로부터 데이터를 수신함에 따라 상대방에게 이를 전달함으로써 릴레이 통신이 가능케 한다(S240).
한편, 릴레이 통신이 진행되는 동안 클라이언트(1, 2)들은 P2P 연결을 생성하고 P2P 회선상태에 따라서 우선순위가 높은 데이터를 위주로 P2P 통신을 수행한다. 다만, 이러한 과정은 온라인 게임 서버(3)로 통지되지 않으며 단지 릴레이 통신을 이용해 전달되는 데이터의 양이 감소할 뿐이다.
한편, 온라인 게임 서버(3)는 접속그룹에 속하는 클라이언트(1, 2) 가운데 어느 하나가 퇴장하거나, 강제로 퇴장당함에 따라 온라인 게임 서버가 상기 접속그룹으로부터 상기 퇴장한 클라이언트를 삭제함으로써 갱신한다(S250).
이후 갱신된 접속그룹별 접속정보를 접속그룹에 속하는 각 클라이언트(1, 2)들에게 전달한다(S260).
이상과 같은 온라인 게임 클라이언트간 피어 투 피어 통신방법은 컴퓨터 프로그램의 형태로 제작되되, 컴퓨터로 판독가능한 기록매체에 수록되어 클라이언트(1,2) 또는 온라인 게임 서버(3)에서 실행될 수 있다.
이상 몇가지의 실시예를 들어 본 발명을 살펴보았으나 이러한 실시예는 예시의 목적을 위해 개시된 것이고, 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것임은 물론, 이는 하기의 특허청구범위를 벗어나지 아니하는 것으로 해석되어야 한다.
1 : 제 1 클라이언트 2 : 제 2 클라이언트
3 : 온라인 게임 서버

Claims (15)

  1. 제 1 클라이언트가 온라인 게임 서버로부터 자신이 속한 접속그룹의 접속정보를 수신하면, 상기 온라인 게임 서버를 경유하여 접속그룹에 속하는 제 2 클라이언트와 릴레이 통신을 시작하되, 제 2 클라이언트와 송수신하는 데이터에 우선순위를 표시하여 통신하는 120 단계;
    제 1 클라이언트가 상기 제 2 클라이언트와의 P2P 접속 시도를 하는 130 단계;
    P2P 접속이 성공하여 상기 제 2 클라이언트와의 P2P 연결이 생성된 경우 제 1 클라이언트가 P2P 연결을 통해 상기 제 2 클라이언트와의 통신을 진행하는 140 단계;
    제 1 클라이언트가 제 2 클라이언트와의 P2P 통신을 진행하면서 P2P 회선상태를 모니터링하는 150 단계;를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  2. 제 1 항에 있어서,
    제 120 단계 이전에 제 1 클라이언트가 온라인 게임 서버로 다수의 클라이언트가 온라인 게임을 동시에 진행하기 위한 룸의 생성을 요청하는 제 110 단계;를 더 포함하되,
    상기 제 120 단계에서 접속그룹은 룸에 입장한 클라이언트들의 목록인 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  3. 제 2 항에 있어서,
    상기 제 120 단계에서 상기 접속그룹의 접속정보는 상기 접속그룹에 속하는 각 클라이언트의 공중 IP주소, 포트 번호 및 ID를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  4. 제 1 항에 있어서,
    상기 제 130 단계는 제 1 클라이언트가 상기 접속그룹에 속하는 제 2 클라이언트를 자신의 P2P 목록에 등록하는 제 131 단계;
    P2P 목록에 등록된 제 2 클라이언트와 P2P 접속을 시도하는 제 132 단계;
    P2P 접속이 실패한 경우 릴레이 통신을 계속하되 백그라운드에서 상기 제 2 클라이언트와 P2P 접속을 계속 시도하는 제 133 단계;
    P2P 접속이 성공한 경우 상기 제 2 클라이언트의 P2P 접속정보를 기록하고 상기 접속정보를 기반으로 P2P 연결을 생성하는 제 134 단계;를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  5. 제 1 항에 있어서,
    상기 제 140 단계에서 P2P 접속이 성공함에 따라 제 1 클라이언트는 제 2 클라이언트와 송수신하는 모든 데이터를 P2P 통신으로 전환하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  6. 제 5 항에 있어서,
    상기 제 150 단계 이후, P2P 회선상태가 일정 정도 이상 나빠지면 제 1 클라이언트가 일정 기준치 이상 높은 우선순위를 갖는 데이터를 P2P 통신을 통해 상기 제 2 클라이언트로 송수신하되, 나머지 데이터는 상기 온라인 게임 서버를 경유하여 릴레이 통신으로 실시간 전환하는 160 단계;를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  7. 제 6 항에 있어서,
    상기 제 160 단계에서, P2P 회선상태가 일정 정도 이상 나빠진 후 일정시간 동안 회복되지 아니하면 상기 제 2 클라이언트와의 P2P 연결을 해제하고 모든 데이터를 상기 온라인 게임 서버를 경유하여 릴레이 통신으로 전환하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  8. 제 7 항에 있어서,
    상기 제 160 단계 이후, P2P 연결의 해제 이후 일정 시간 경과시 제 130 단계로 분기하는 제 170 단계;를 더 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  9. 제 1 항에 있어서,
    상기 제 140 단계에서 P2P 접속이 성공함에 따라 제 1 클라이언트는 일정 기준치 이상 높은 우선순위를 갖는 데이터를 P2P 통신을 통해 상기 제 2 클라이언트로 제공하되, 나머지 데이터는 상기 온라인 게임 서버를 경유한 릴레이 통신을 유지하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  10. 제 9 항에 있어서,
    상기 제 150 단계 이후, 상기 P2P 회선상태를 모니터링하여 일정 정도 이상 개선되면 제 2 클라이언트와 릴레이 통신 방식으로 송수신하던 데이터 가운데 우선순위에 따라 일부 데이터의 송수신을 P2P 통신방식으로 전환하되, 일정 정도 이상 악화되면 제 2 클라이언트와 P2P 방식으로 송수신하던 데이터 가운데 우선 순위에 따라 일부 데이터의 송수신을 릴레이 통신으로 전환하는 제 160 단계;를 더 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  11. 제 1 항에 있어서,
    상기 제 150 단계에서, 제 1 클라이언트는 제 2 클라이언트와의 P2P 연결을 통한 데이터 송수신 시 지연 시간, 재전송의 필요 여부, 전송속도 또는 패킷 손실 정도를 주기적으로 파악함으로써 P2P 회선상태를 모니터링하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  12. 제 5 항 또는 제 9 항에 있어서,
    상기 일정 기준치 이상 높은 우선순위를 갖는 데이터는 온라인 게임 내 플레이어 캐릭터의 동작 정보, 온라인 게임의 동기화 정보를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  13. 제 5 항 또는 제 9 항에 있어서,
    상기 일정 기준치 이상 높은 우선순위를 갖는 데이터를 제외한 나머지 데이터는 온라인 게임 내 플레이어 캐릭터와 관련되어 표시되는 이모티콘의 설정 또는 변경에 관한 정보를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  14. 네트워크를 통해 접속한 클라이언트로부터 온라인 게임을 동시에 진행하기 위한 룸의 생성을 요청받음에 따라 온라인 게임 서버가 접속그룹을 생성하는 제 210 단계;
    네트워크를 통해 하나 또는 그 이상의 다른 클라이언트가 룸에 입장함에 따라 온라인 게임 서버가 상기 생성된 접속그룹에 룸에 입장한 클라이언트를 추가하고, 접속그룹에 포함된 클라이언트들의 공중 IP주소, 포트번호 또는 ID 가운데 하나 이상의 정보를 수집함으로써 접속그룹별 접속정보를 생성하는 제 220 단계;
    온라인 게임 서버가 상기 생성된 접속그룹별 접속정보를 상기 접속그룹에 속하는 클라이언트들로 전송하는 제 230 단계;
    접속그룹에 속하는 어느 하나의 클라이언트로부터 다른 클라이언트로 전달될 데이터로서 우선순위가 표시된 데이터를 수신함에 따라 이를 릴레이 방식에 의하여 상기 다른 클라이언트로 전달하는 제 240 단계;
    접속그룹에 속하는 클라이언트 가운데 어느 하나가 퇴장하거나, 강제로 퇴장당함에 따라 온라인 게임 서버가 상기 접속그룹으로부터 상기 퇴장한 클라이언트를 삭제함으로써 갱신하는 제 250 단계; 및
    온라인 게임 서버가 갱신된 접속그룹별 접속정보를 접속그룹에 속하는 각 클라이언트들에게 전달하는 제 260 단계;를 포함하는 것을 특징으로 하는 온라인 게임 클라이언트간 피어 투 피어 통신방법.
  15. 제 1 항 내지 제 11 항, 제 14 항 가운데 어느 한 항에 기재된 온라인 게임 클라이언트간 피어 투 피어 통신방법을 컴퓨터상에서 실행하는 프로그램이 수록된 컴퓨터로 판독가능한 기록매체.
KR1020110013756A 2011-02-16 2011-02-16 온라인 게임 클라이언트간 피어 투 피어 통신방법 KR101206604B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110013756A KR101206604B1 (ko) 2011-02-16 2011-02-16 온라인 게임 클라이언트간 피어 투 피어 통신방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110013756A KR101206604B1 (ko) 2011-02-16 2011-02-16 온라인 게임 클라이언트간 피어 투 피어 통신방법

Publications (2)

Publication Number Publication Date
KR20120094321A KR20120094321A (ko) 2012-08-24
KR101206604B1 true KR101206604B1 (ko) 2012-11-29

Family

ID=46885254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110013756A KR101206604B1 (ko) 2011-02-16 2011-02-16 온라인 게임 클라이언트간 피어 투 피어 통신방법

Country Status (1)

Country Link
KR (1) KR101206604B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160000731A (ko) * 2014-06-25 2016-01-05 주식회사 마이드라이브스 P2p 파일 공유 방법 및 그 시스템
KR102427569B1 (ko) * 2020-01-09 2022-08-02 주식회사 휴메닉 멀티형 인지재활 훈련 시스템 및 방법
CN113181633B (zh) * 2021-03-26 2024-02-13 百果园技术(新加坡)有限公司 一种游戏数据同步方法、系统及装置
CN114095129B (zh) * 2021-11-17 2024-05-17 厦门勇仕网络技术股份有限公司 一种移动端游戏网络传输的通信方法及系统

Also Published As

Publication number Publication date
KR20120094321A (ko) 2012-08-24

Similar Documents

Publication Publication Date Title
KR101397834B1 (ko) 상이한 서비스 제공자들 사이의 피어-투-피어 접속들을 관리하기 위한 장치 및 방법
KR101662352B1 (ko) 네트워크 환경에서 비-지속성 메시지의 다중 큐를 관리하기 위한 시스템 및 방법
JP4324199B2 (ja) ピアツーピアリレーネットワークにおける侵害
AU2012262053B2 (en) System and method for secure instant messaging
EP2448206B1 (en) Method, system and device for transmitting video data
JP4691502B2 (ja) ピアツーピアリレーネットワークにおける冗長リスト
WO2019071829A1 (zh) Pc上实现主播连麦pk的方法、存储介质、设备及系统
US20130227019A1 (en) Apparatus and method for inviting users to online sessions
WO2018137523A1 (zh) 一种游戏服务器的切换方法、相关设备及系统
JP5276108B2 (ja) 移動体装置上でのマルチプレーヤ・ゲーム・セッションの更新方法
JP2009501611A (ja) シームレスなゲーム方法及びゲーム装置
AU2012262053A1 (en) System and method for secure instant messaging
CN111917562B (zh) 广播消息转发方法、装置、设备及存储介质
CN108200480A (zh) 一种游戏直播互动方法、相关设备及系统
KR101206604B1 (ko) 온라인 게임 클라이언트간 피어 투 피어 통신방법
JP2009532765A (ja) 存在状態情報に基づいてセッションを維持するための方法およびデバイス
JP2023508061A (ja) アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器
US9561438B2 (en) Method for realizing multi-party interactive communication and system thereof
US9446306B2 (en) System and method for local multiplayer gaming
WO2009155817A1 (zh) 一种维护引导节点状态的方法、装置和系统
KR101106873B1 (ko) 온라인 게임 클라이언트간 피어 투 피어 통신방법
WO2023151338A1 (zh) 游戏画面的显示方法、存储介质和电子设备
CN107982912B (zh) 一种信息处理方法和终端
JP2014010747A (ja) セッション管理装置、方法、及び、プログラム
Knoll et al. Bootstrapping peer-to-peer systems using IRC

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: 20161104

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181101

Year of fee payment: 7