KR101891981B1 - 온라인 게임 패킷 분석 시스템 및 방법 - Google Patents

온라인 게임 패킷 분석 시스템 및 방법 Download PDF

Info

Publication number
KR101891981B1
KR101891981B1 KR1020110102298A KR20110102298A KR101891981B1 KR 101891981 B1 KR101891981 B1 KR 101891981B1 KR 1020110102298 A KR1020110102298 A KR 1020110102298A KR 20110102298 A KR20110102298 A KR 20110102298A KR 101891981 B1 KR101891981 B1 KR 101891981B1
Authority
KR
South Korea
Prior art keywords
field
packet
size
dynamic
data
Prior art date
Application number
KR1020110102298A
Other languages
English (en)
Other versions
KR20130037831A (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 KR1020110102298A priority Critical patent/KR101891981B1/ko
Priority to US13/646,525 priority patent/US9374283B2/en
Publication of KR20130037831A publication Critical patent/KR20130037831A/ko
Application granted granted Critical
Publication of KR101891981B1 publication Critical patent/KR101891981B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/028Capturing of monitoring data by filtering
    • A63F13/12
    • 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
    • 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
    • A63F13/35Details of game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Abstract

본 발명의 목적은 캡쳐한 패킷을 자동으로 분석하기 위한 온라인 게임 패킷 분석 시스템을 제공하는 것이다. 상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 온라인 게임 패킷 분석 시스템은, 클라이언트 단말기와 게임 서버간에 전송되는 패킷을 캡쳐하는 캡쳐부 및 상기 캡쳐부에서 캡쳐한 상기 패킷을 분석하고, 분석된 결과에 따라 상기 패킷에 포함된 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 분석부를 포함한다. 본 발명에 의하면, 캡쳐한 패킷의 데이터 필드를 구조적 특징에 따라 유형별로 정의할 수 있으므로 이를 이용하여 패킷을 자동으로 분석할 수 있는 장점이 있다.

Description

온라인 게임 패킷 분석 시스템 및 방법{System and method for analysing of online game packets}
본 발명은 패킷 분석 시스템 및 방법에 관한 것으로, 더욱 상세하게는 가상 사용자 생성을 위한 온라인 게임 패킷 분석 시스템 및 방법에 관한 것이다.
종래 온라인 게임 서버의 안정성 및 오류를 테스트하기 위하여, 다수의 사용자가 온라인 게임 서버에 접속하여 장시간의 게임 플레이를 통하여 안정성 및 오류를 테스트하였다. 그러나, 이러한 방법은 온라인 게임 서버의 안정성 및 오류를 정확하게 테스트하기 위하여 다수의 사용자를 필요로 하며, 이와 같은 다수의 사용자를 확보하기 위하여 많은 비용이 소요되는 문제점이 있었다.
상기와 같은 문제점을 해결하기 위하여 패킷 캡쳐 기반의 온라인 게임 서버 성능 테스트 기술이 개발되었으며, 이러한 기술은 ① 클라이언트 단말기와 온라인 게임 서버간에 전송되는 게임 패킷을 캡쳐하고, ② 캡쳐된 패킷을 분석하고, ③ 분석된 결과에 따라 패킷을 조작하여 대량의 새로운 패킷을 생성하고, ④ 생성된 패킷을 기반으로 대규모 가상 사용자를 생성하여 온라인 게임 서버로 접속하고, ⑤ 접속된 가상 사용자에게 다양한 명령을 내려 온라인 게임 서버의 성능을 테스트 하였다.
이와 같은 기술은 ② 캡쳐된 패킷의 분석시에 운용자가 수작업으로 패킷 분석을 수행하여야 하므로, 패킷 분석시에 많은 시간이 소요되는 문제점이 있었다.
또한, 한국공개특허(2010-0102903, '온라인 게임 검증 시스템 및 방법')는 온라인 게임 서버로 전송되는 여러 사용자의 패킷을 캡쳐한 후 이를 바탕으로 패킷을 복사, 편집하여 실제 사용자와 유사한 행동을 하는 가상유저를 대량으로 생성 및 제어하는 기술을 개시하고 있고, 한국공개특허(2011-0061418, '게임 테스트를 위한 게임 문법 기반의 패킷 캡쳐 분석 장치 및 그 방법')는 온라인 게임 사용자들의 다양한 게임 패턴에 대한 패킷을 생성하여 온라인 게임 서버를 테스트하는 기술을 개시하고 있다.
본 발명의 목적은 캡쳐한 패킷을 자동으로 분석하기 위한 온라인 게임 패킷 분석 시스템을 제공하는 것이다.
본 발명의 다른 목적은 캡쳐한 패킷을 자동으로 분석하기 위한 온라인 게임 패킷 분석 방법을 제공하는 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 온라인 게임 패킷 분석 시스템은, 클라이언트 단말기와 게임 서버간에 전송되는 패킷을 캡쳐하는 캡쳐부 및 상기 캡쳐부에서 캡쳐한 상기 패킷을 분석하고, 분석된 결과에 따라 상기 패킷에 포함된 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 분석부를 포함한다.
상기 캡쳐부는, 상기 패킷을 캡쳐한 시간, 발생한 이벤트, 상기 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐할 수 있다.
상기 분석부는, 캡쳐한 상기 패킷의 구조를 정의하는 패킷 정의부, 상기 패킷 정의부에서 정의한 구조를 기반으로 상기 패킷을 재조립하는 재조립부 및 상기 재조립부에서 재조립한 상기 패킷에 포함된 상기 데이터 필드를 바이트 수에 따른 길이로 구분하고, 구분한 상기 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 데이터 필드 정의부를 더 포함할 수 있다.
상기 패킷 정의부는, 캡쳐한 상기 패킷에 포함된 구성요소를 구분하고, 구분한 상기 패킷의 구성요소에 크기를 표시하고, 구성요소에 크기가 표시된 상기 패킷에 상기 게임 서버의 세션 정보를 결합할 수 있다.
상기 데이터 필드 정의부는, 상기 기준필드가 후행필드의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의하고, 상기 기준필드가 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의하고, 상기 기준필드가 후행필드의 크기를 정의한 경우에 정의한 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의하고, 상기 기준필드가 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의할 수 있다.
상술한 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 온라인 게임 패킷 분석 방법은, 클라이언트 단말기와 게임 서버간에 전송되는 패킷을 캡쳐하는 단계, 캡쳐한 상기 패킷의 구조를 정의하는 단계, 정의한 상기 패킷의 구조를 기반으로 상기 패킷을 재조립하는 단계, 재조립한 상기 패킷에 포함된 데이터 필드를 바이트 수에 따른 길이로 구분하는 단계 및 구분한 상기 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 단계를 포함한다.
상기 패킷을 캡쳐하는 단계는, 상기 패킷 캡쳐한 시간, 발생한 이벤트, 상기 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐할 수 있다.
상기 패킷의 구조를 정의하는 단계는, 캡쳐한 상기 패킷의 구성요소를 구분하는 단계, 구분한 상기 패킷의 구성요소에 크기를 표시하는 단계 및 구성요소에 크기가 표시된 상기 패킷에 상기 게임 서버의 세션 정보를 결합하는 단계를 더 포함할 수 있다.
상기 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 단계는, 상기 기준필드가 후행필드의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의하고, 상기 기준필드가 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의하고, 상기 기준필드가 후행필드의 크기를 정의한 경우에 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의하고, 상기 기준필드가 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의할 수 있다.
본 발명에 의하면, 캡쳐한 패킷의 데이터 필드를 구조적 특징에 따라 유형별로 정의할 수 있으므로 이를 이용하여 패킷을 자동으로 분석할 수 있는 장점이 있다. 즉, 구조적 특징에 따라 유형별로 정의한 데이터 필드를 이용하여 패킷을 자동으로 분석할 수 있으므로, 종래 캡쳐된 패킷을 운용자가 수동으로 분석하는 것에 비하여 패킷의 분석에 소요되는 시간이 현저히 감소되며, 결국 온라인 게임 서버의 성능 테스트에 소요되는 시간이 현저히 감소되는 장점이 있다.
도 1은 온라인 게임 서버의 부하 테스트 시스템을 도시한 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 온라인 게임 패킷 분석 시스템의 구성을 도시한 블럭도이다.
도 3은 본 발명의 일 실시예에 따른 온라인 게임 패킷 분석 방법을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 온라인 게임 패킷 분석 시스템에서 캡쳐한 정보를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 온라인 게임 패킷 분석 시스템에서 패킷의 구조를 도시한 도면이다.
도 6은 재조합되어 구분된 패킷을 도시한 도면이다.
도 7은 데이터 필드의 유형을 도시한 도면이다.
도 8은 패킷의 구성요소를 테이블화한 도면이다.
도 9는 헤더의 구성요소인 프로토콜 ID를 테이블화한 도면이다.
도 10은 헤더의 구성요소인 프로토콜 ID의 필드 리스트를 테이블화한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 온라인 게임 서버의 부하 테스트 시스템을 도시한 블럭도로, 온라인 게임 서버의 부하 테스트 시스템은 캡쳐부(10), 분석부(20), 클라이언트 단말기(30), 게임 서버(40), 패킷 DB(50) 및 가상 사용자 제어부(60)를 포함한다. 게임의 실행시에 클라이언트 단말기(30)와 게임 서버(40)는 패킷을 송수신하며, 캡쳐부(10)는 클라이언트 단말기(30)와 게임 서버(40)간에 송수신하는 패킷을 캡쳐한다. 캡쳐된 패킷은 패킷 DB(50)에 저장되거나 분석부(20)에 직접 제공되고, 분석부(20)는 패킷을 분석한 결과를 기반으로 게임 기술 언어를 생성한다. 가상 사용자 제어부(60)는 분석부(20)에서 생성된 게임 기술 언어를 기반으로 다수의 가상 사용자를 생성하여 게임 서버(40)의 부하를 테스트한다.
도 2는 본 발명의 일 실시예에 따른 온라인 게임 패킷 분석 시스템의 구성을 도시한 블럭도로, 온라인 게임 패킷 분석 시스템은 캡쳐부(10) 및 분석부(20)를 포함하고, 분석부(20)는 패킷 정의부(21), 재조립부(22) 및 데이터 필드 정의부(23)를 포함한다.
캡쳐부(10)는 클라이언트 단말기(30)와 게임 서버(40)간에 전송되는 패킷을 캡쳐하며, 패킷뿐만 아니라 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐할 수 있다. 또한, 캡쳐부(10)에서 캡쳐된 패킷, 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷은 디스플레이장치(미도시)를 통해 출력될 수 있다.
도 4는 캡쳐부(10)에서 캡쳐한 정보를 도시한 도면으로, 캡쳐부(10)에서 캡쳐한 패킷, 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷은 디스플레이장치(미도시)를 통해 도 4와 같은 화면으로 출력될 수 있다. 도 4에서 Time Stamp는 패킷을 캡쳐한 시간 또는 이벤트가 발생한 시간을 의미하고, Event는 발생한 키보드, 마우스 이벤트를 의미하고, Packet Data는 패킷을 의미하고, Screen Shot은 스크린샷을 의미한다.
분석부(20)는 캡쳐부(10)에서 캡쳐한 패킷을 분석하고, 분석된 결과에 따라 패킷에 포함된 데이터 필드(76)를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하며, 분석부(20)는 패킷 정의부(21), 재조립부(22) 및 데이터 필드 정의부(23)를 포함한다.
패킷 정의부(21)는 캡쳐부(10)에서 캡쳐한 패킷을 분석하여 패킷이 어떠한 구성요소(헤더, 트레일러, 데이터 필드 등)를 포함하는지 분석한다. 도 5를 참조하면, 패킷 정의부(21)에서 패킷을 분석한 결과에 따른 헤더는 패킷 사이즈(71), 프로토콜 ID(72), 체크썸(73, checksum), 필드 리스트(74) 및 더미(75, dummy)를 포함할 수 있고, 이들의 조합으로 패킷이 형성될 수 있다.
또한, 패킷 정의부(21)는 패킷이 어떠한 구성요소를 포함하는지 분석한 후, 분석한 결과에 따라 패킷의 구성요소가 구분되도록 한다. 이때, 컬러링 방법을 사용하여 구성요소가 구분되도록 할 수 있으며, 여기서 컬러링이란 각 구성요소를 서로 다른 색으로 표현하는 것을 의미한다. 패킷 정의부(21)는 컬러링한 패킷의 각 구성요소에 크기를 표시할 수 있으며, 예를 들어, 패킷 사이즈(71)의 크기는 3바이트(byte), 프로토콜 ID(72)의 크기는 3바이트(byte), 체크썸(73)의 크기는 3바이트(byte), 더미(75)의 크기는 4바이트(byte)인 경우에 패킷의 각 구성요소는 도 5와 같이 표시할 수 있다. 단, 필드 리스트(74)의 경우 크기는 의미가 없고 순서만 의미를 가진다.
또한, 패킷 정의부(21)는 구성요소의 크기가 표시된 패킷에 게임 서버(40)의 세션 정보를 결합하며, 세션 정보는 IP(Internet Protocol) 및 대상포트(Port) 정보를 포함한다. 패킷 정의부(21)는 헤더가 체크썸(73)과 더미(75)를 포함하여 구성되는 경우에 도 5와 같이 체크썸(73)과 더미(75)의 시작 위치를 표시할 수 있다. 이때, 시작 위치란 체크썸(73)과 더미(75)의 값을 결정하기 위한 연산의 시작 위치를 의미한다.
재조립부(22)는 패킷 정의부(21)에서 정의된 패킷 구조를 기반으로 패킷을 재조립한다. 이때, 패킷 사이즈(71)를 기반으로 패킷을 재조립하며, 재조립부(22)는 클라이언트 단말기(30)와 게임 서버(40)간에 전송되는 하나의 패킷이 분리되어 전송되는 경우에 이를 재조립하여 하나의 패킷으로 형성하고, 다수의 패킷이 하나로 묶여 전송되는 경우에 이를 분리한 후 재조립하여 하나의 패킷으로 형성한다.
데이터 필드 정의부(23)는 재조립부(22)에서 재조립된 패킷의 데이터 필드(76)를 바이트 수에 따른 길이로 구분하며 필드 사이즈에 따라 컬러링하여 데이터 필드(76)를 구분할 수 있다. 도 6을 참조하면, 재조합된 패킷(70)은 Null Data(00 00), 패킷 사이즈(71), 프로토콜 ID(72) 및 데이터 필드(76)를 포함하며, 가장 위쪽에 위치한 패킷(70)의 데이터 필드(76)는 "28 E2 F5 05 01 00 00 00 00 90 9A 96 42 00 00 00 00 10 10 0D C3 B5 2B 37 3F"로 구성되고, 이를 필드 사이즈에 따라 "28 E2 F5 05", "01 00 00 00", "00 90", "9A 96 42 00", "00 00 00 10", "10 0D C3 B5", "2B 37 3F"로 구분할 수 있고, 상기와 같이 구분된 각 필드는 서로 다른 색으로 컬러링될 수 있다.
또한, 데이터 필드 정의부(23)는 캡쳐부(10)에서 캡쳐한 패킷에 포함된 데이터 필드(76)를 구조적 특징에 따라 적어도 하나의 유형으로 정의한다. 즉, 데이터 필드(76)는 구조적 특징에 따라 정적필드와 동적필드로 정의할 수 있으며, 동적필드는 A, B, C, D, E 및 F유형으로 정의할 수 있다.
정적필드는 게임의 진행 상황이나 패킷을 전송하는 주체에 따라 데이터 필드(76)의 구조가 변화하지 않고 동일한 필드(76) 구조를 가지는 것을 말한다. 도 6은 정적필드의 하나의 예를 도시한 것으로, 정적필드는 4바이트(byte)의 크기를 가지는 캐릭터 레벨 필드(76a), 4바이트(byte)의 크기를 가지는 채널수 필드(76b), 2바이트(byte)의 크기를 가지는 카운트 필드(76c), 4바이트(byte)의 크기를 가지는 X좌표 필드(76d), 4바이트(byte)의 크기를 가지는 Y좌표 필드(76e), 4바이트(byte)의 크기를 가지는 Z좌표 필드(76f) 및 4바이트(byte)의 크기를 가지는 속도 필드(76g)로 형성된다. 이와 같이, 게임의 진행 상황이나 패킷을 전송하는 주체에 따라 변화하지 않고 동일한 필드 구조를 가지는 데이터 필드(76)를 정적필드로 정의한다.
상기 기준필드(80)가 후행필드 리스트의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의한다. 도 7a를 참조하면, 후행필드 리스트의 반복횟수를 정의한 기준필드(80)가 "01"인 경우에 기준필드(80)의 뒤에 위치하는 후행필드 리스트는 1번 반복되어 위치하고, 후행필드 리스트의 반복횟수를 정의한 기준필드(80)가 "02"인 경우에 기준필드(80)의 뒤에 위치하는 후행필드 리스트는 2번 반복되어 위치한다.
상기 기준필드(80)가 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의한다. 도 7b를 참조하면, 비트로 변환할 바이트의 수를 정의한 기준필드(80)가 "02 00"인 경우에 이를 비트로 변환하면 "00000010 00000000"가 되고 이때 "1"이 1개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 크기)를 가지는 1개의 필드가 위치하고, 비트로 변환할 바이트의 수를 정의한 기준필드(80)가 "09 00"인 경우에 이를 비트로 변환하면 "00001001 00000000"가 되고 이때 "1"이 2개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 2개의 필드가 위치한다. 또한, 기준필드(80)가 "04 00"인 경우에 이를 비트로 변환하면 "1"이 1개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 1개의 필드가 위치하고, 기준필드(80)가 "07 00"인 경우에 이를 비트로 변환하면 "1"이 3개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 3개의 필드가 위치한다.
상기 기준필드(80)가 후행필드의 크기를 정의한 경우에 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의한다. 도 7c를 참조하면, 후행필드의 크기를 정의한 기준필드(80)가 "05"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 5바이트의 크기를 가진다.
상기 기준필드(80)가 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의한다. 도 7d를 참조하면, 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 기준필드(80)가 "01"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 4바이트의 크기를 가지는 2개의 필드(00 00 00 00, C8 45 2D 44), 1바이트의 크기를 가지는 1개의 필드(00), 4바이트의 크기를 가지는 1개의 필드(00 00 00 00), 1바이트의 크기를 가지는 1개의 필드(9E) 및 4바이트의 크기를 가지는 1개의 필드(8D C2 00 00)로 형성된다. 또한, 기준필드(80)가 "02"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 2바이트의 크기를 가지는 5개의 필드(00 00, 00 00, A0 36, 0F 43, 00 00)로 형성된다.
상기 데이터 필드(76) 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의한다. 이때, 사용자가 E유형의 동적필드 시작지점과 종료조건을 지정하면, 이에 해당하는 데이터 필드(76)를 E유형의 동적필드로 정의한다. 도 7e를 참조하면, 사용자가 E유형의 동적필드 시작지점을 "00 00 00" 데이터의 첫번째 바이트, 종료조건을 7바이트 간격으로 "00 00 00 00" 데이터 확인으로 지정한 경우에 E유형의 동적필드는 "00 00 00 50 AC 20 44 00 00 00 00"으로 정의된다. 또한, 사용자가 E유형의 동적필드 시작지점을 "02 09" 데이터의 첫번째 바이트, 종료조건을 7바이트 간격으로 "00 00 00 00" 데이터 확인으로 지정한 경우에 E유형의 동적필드는 "02 09 00 00 00 00 74 B3 09 00 01 05 06 77 00 00 00 00"으로 정의된다.
상기 데이터 필드(76) 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의한다. 도 7f를 참조하면, 사용자 요청에 따라 10바이트의 크기를 가지는 필드인 "09 00 00 00 00 00 74 B3 B6 00"는 F유형의 동적필드로 정의된다.
또한, 분석부(20)는 정의된 정적필드 및 동적필드를 기반으로 테이블을 생성할 수 있다. 도 8은 패킷의 구성요소를 테이블화한 것으로, 각 구성요소의 크기(Byte), Endian 방식, Start index 등을 테이블화 할 수 있다. 도 9는 헤더의 구성요소인 프로토콜 ID를 테이블화한 것으로, 각 프로토콜 ID의 이름, 크기(Byte), Hexa Value 등을 테이블화 할 수 있다. 도 10은 헤더의 구성요소인 프로토콜 ID의 필드 리스트를 테이블화한 것으로, 프로토콜 필드의 이름, 유형(Type), 크기(Byte) 등을 테이블화 할 수 있다. 예를 들어, CS_LOGIN_REQ의 Hexa Value는 02 00 00 00이고 필드로 Requeskey(unit, 4byte), AccountName(char, 17byte) 및 AccountPW(char, 17byte)을 가진다.
이와 같이, 분석부(20)에서 정적필드 및 동적필드를 기반으로 생성된 테이블을 기반으로 게임 기술 언어을 생성하고, 이를 기반으로 가상 사용자를 생성하여 온라인 게임 서버의 성능을 테스트한다.
이상 본 발명의 일 실시예인 온라인 게임 패킷 분석 시스템에 대하여 상세하게 설명하였다. 이하 본 발명의 일 실시예인 온라인 게임 패킷 분석 방법에 대하여 상세하게 설명한다.
도 3은 본 발명의 일 실시예인 온라인 게임 패킷 분석 방법을 도시한 흐름도로, 온라인 게임 패킷 분석 방법은 패킷을 캡쳐하는 단계(301), 캡쳐한 패킷의 구조를 정의하는 단계(303), 정의한 패킷의 구조를 기반으로 패킷을 재조립하는 단계(305), 재조립한 패킷에 포함된 데이터 필드를 구분하는 단계(307) 및 구분한 데이터 필드를 정적필드 또는 동적필드로 정의하는 단계(309)를 포함한다. 상술한 방법은 온라인 게임 패킷 분석 시스템에서 수행될 수 있다.
단계 301은 클라이언트 단말기(30)와 게임 서버(40)간에 전송되는 패킷을 캡쳐하는 단계로, 패킷뿐만 아니라 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐할 수 있다. 단계 301에서 캡쳐된 패킷, 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷은 디스플레이장치(미도시)를 통해 출력될 수 있다.
도 4를 참조하면, 단계 301에서 캡쳐된 패킷, 패킷을 캡쳐한 시간, 발생한 이벤트, 이벤트가 발생한 시간 및 스크린샷은 디스플레이장치(미도시)를 통해 도 4와 같은 화면으로 출력될 수 있다. 또한, 도 4에서 Time Stamp는 패킷을 캡쳐한 시간 또는 이벤트가 발생한 시간을 의미하고, Event는 발생한 키보드, 마우스 이벤트를 의미하고, Packet Data는 패킷을 의미하고, Screen Shot은 스크린샷을 의미한다.
단계 303은 캡쳐한 패킷의 구조를 정의하는 단계로, 캡쳐한 패킷에 포함된 구성요소를 구분하는 단계(303a), 패킷의 구성요소에 크기를 표시하는 단계(303b) 및 패킷에 세션 정보를 결합(303c)하는 단계를 포함한다.
단계 303a는 단계 301에서 캡쳐한 패킷을 분석하여 헤더가 어떠한 구성요소(헤더, 트레일러, 데이터 필드 등)를 포함하는지 분석한다. 도 5를 참조하면, 단계 303a에서 분석한 결과에 따른 패킷은 패킷 사이즈(71), 프로토콜 ID(72), 체크썸(73, checksum), 필드 리스트(74) 및 더미(75, dummy)를 포함할 수 있고, 이들의 조합으로 패킷이 형성될 수 있다. 또한, 패킷이 어떠한 구성요소를 포함하는지 분석한 후, 분석한 결과에 따라 패킷의 구성요소가 구분되도록 한다. 이때, 컬러링 방법을 사용하여 패킷의 구성요소가 구분되도록 할 수 있으며, 여기서 컬러링이란 각 구성요소를 서로 다른 색으로 표현하는 것을 의미한다.
단계 303b는 단계 303a에서 구분된 패킷의 각 구성요소의 크기를 표시하는 단계로, 예를 들어, 패킷 사이즈(71)의 크기는 3바이트(byte), 프로토콜 ID(72)의 크기는 3바이트(byte), 체크썸(73)의 크기는 3바이트(byte), 더미(75)의 크기는 4바이트(byte)인 경우에 패킷의 각 구성요소는 도 5와 같이 표시할 수 있다. 단, 필드 리스트(74)의 경우 크기는 의미가 없고 순서만 의미를 가진다.
단계 303c는 단계 303b에서 각 구성요소의 크기가 표시된 패킷에 게임 서버(40)의 세션 정보를 결합하는 단계로, 세션 정보는 IP(Internet Protocol) 및 대상포트(Port) 정보를 포함한다. 또한, 패킷 체크썸(73)과 더미(75)를 포함하여 구성되는 경우에 도 5와 같이 체크썸(73)과 더미(75)의 시작 위치를 표시할 수 있다. 이때, 시작 위치란 체크썸(73)과 더미(75)의 값을 결정하기 위한 연산의 시작 위치를 의미한다.
단계 305은 단계 303에서 정의한 패킷의 구조를 기반으로 패킷을 재조립한다. 이때, 패킷 사이즈(71)를 기반으로 패킷을 재조립하며, 단계 305은 클라이언트 단말기(30)와 게임 서버(40)간에 전송되는 하나의 패킷이 분리되어 전송되는 경우에 이를 재조립하여 하나의 패킷으로 형성하고, 다수의 패킷이 하나로 묶여 전송되는 경우에 이를 분리한 후 재조립하여 하나의 패킷으로 형성한다.
단계 307은 단계 305에서 재조립된 패킷의 데이터 필드(76)를 바이트 수에 따른 길이로 구분하며 필드 사이즈에 따라 컬러링하여 데이터 필드(76)를 구분할 수 있다. 도 6을 참조하면, 재조합된 패킷(70)은 Null Data(00 00), 패킷 사이즈(71), 프로토콜 ID(72) 및 데이터 필드(76)를 포함하며, 가장 위쪽에 위치한 패킷(70)의 데이터 필드(76)는 "28 E2 F5 05 01 00 00 00 00 90 9A 96 42 00 00 00 00 10 10 0D C3 B5 2B 37 3F"로 구성되고, 이를 필드 사이즈에 따라 "28 E2 F5 05", "01 00 00 00", "00 90", "9A 96 42 00", "00 00 00 10", "10 0D C3 B5", "2B 37 3F"로 구분할 수 있고, 상기와 같이 구분된 각 필드는 서로 다른 색으로 컬러링될 수 있다.
단계 309는 데이터 필드(76)를 구조적 특징에 따라 적어도 하나의 유형으로 정의한다. 즉, 데이터 필드(76)는 구조적 특징에 따라 정적필드와 동적필드로 정의할 수 있으며, 동적필드는 A, B, C, D, E 및 F유형으로 정의할 수 있다.
정적필드는 게임의 진행 상황이나 패킷을 전송하는 주체에 따라 데이터 필드(76)의 구조가 변화하지 않고 동일한 데이터 필드(76) 구조를 가지는 것을 말한다. 도 6은 정적필드의 하나의 예를 도시한 것으로, 정적필드는 4바이트의 크기를 가지는 캐릭터 레벨 필드(76a), 4바이트의 크기를 가지는 채널수 필드(76b), 2바이트의 크기를 가지는 카운트 필드(76c), 4바이트의 크기를 가지는 X좌표 필드(76d), 4바이트의 크기를 가지는 Y좌표 필드(76e), 4바이트의 크기를 가지는 Z좌표 필드(76f) 및 4바이트의 크기를 가지는 속도 필드(76g)로 형성된다. 이와 같이, 게임의 진행 상황이나 패킷을 전송하는 주체에 따라 변화하지 않고 동일한 필드 구조를 가지는 데이터 필드(76)를 정적필드로 정의한다.
상기 기준필드(80)가 후행필드 리스트의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의한다. 도 7a를 참조하면, 후행필드 리스트의 반복횟수를 정의한 기준필드(80)가 "01"인 경우에 기준필드(80)의 뒤에 위치하는 후행필드 리스트는 1번 반복되어 위치하고, 후행필드 리스트의 반복횟수를 정의한 기준필드(80)가 "02"인 경우에 기준필드(80)의 뒤에 위치하는 후행필드 리스트는 2번 반복되어 위치한다.
상기 기준필드(80)가 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의한다. 도 7b를 참조하면, 비트로 변환할 바이트의 수를 정의한 기준필드(80)가 "02 00"인 경우에 이를 비트로 변환하면 "00000010 00000000"가 되고 이때 "1"이 1개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 1개의 필드가 위치하고, 비트로 변환할 바이트의 수를 정의한 기준필드(80)가 "09 00"인 경우에 이를 비트로 변환하면 "00001001 00000000"가 되고 이때 "1"이 2개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 2개의 필드가 위치한다. 또한, 기준필드(80)가 "04 00"인 경우에 이를 비트로 변환하면 "1"이 1개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 1개의 필드가 위치하고, 기준필드(80)가 "07 00"인 경우에 이를 비트로 변환하면 "1"이 3개이므로 기준필드(80) 뒤에 4바이트의 크기(사용자가 정의한 사이즈)를 가지는 3개의 필드가 위치한다.
상기 기준필드(80)가 후행필드의 크기를 정의한 경우에 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의한다. 도 7c를 참조하면, 후행필드의 크기를 정의한 기준필드(80)가 "05"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 5바이트의 크기를 가진다.
상기 기준필드(80)가 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의한다. 도 7d를 참조하면, 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 기준필드(80)가 "01"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 4바이트의 크기를 가지는 2개의 필드(00 00 00 00, C8 45 2D 44), 1바이트의 크기를 가지는 1개의 필드(00), 4바이트의 크기를 가지는 1개의 필드(00 00 00 00), 1바이트의 크기를 가지는 1개의 필드(9E) 및 4바이트의 크기를 가지는 1개의 필드(8D C2 00 00)로 형성된다. 또한, 기준필드(80)가 "02"인 경우에 기준필드(80) 뒤에 위치하는 후행필드는 2바이트의 크기를 가지는 5개의 필드(00 00, 00 00, A0 36, 0F 43, 00 00)로 형성된다.
상기 데이터 필드(76) 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의한다. 이때, 사용자가 E유형의 동적필드 시작지점과 종료조건을 지정하면, 이에 해당하는 데이터 필드(76)를 E유형의 동적필드로 정의한다. 도 7e를 참조하면, 사용자가 E유형의 동적필드 시작지점을 "00 00 00" 데이터의 첫번째 바이트, 종료조건을 7바이트 간격으로 "00 00 00 00" 데이터 확인으로 지정한 경우에 E유형의 동적필드는 "00 00 00 50 AC 20 44 00 00 00 00"으로 정의된다. 또한, 사용자가 E유형의 동적필드 시작지점을 "02 09" 데이터의 첫번째 바이트, 종료조건을 7바이트 간격으로 "00 00 00 00" 데이터 확인으로 지정한 경우에 E유형의 동적필드는 "02 09 00 00 00 00 74 B3 09 00 01 05 06 77 00 00 00 00"으로 정의된다.
상기 데이터 필드(76) 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의한다. 도 7f를 참조하면, 사용자 요청에 따라 10바이트의 크기를 가지는 필드인 "09 00 00 00 00 00 74 B3 B6 00"는 F유형의 동적필드로 정의된다.
또한, 온라인 게임 패킷 분석 방법은 정의된 정적필드 및 동적필드를 기반으로 테이블을 생성하는 단계를 더 포함할 수 있다. 도 8은 패킷의 구성요소를 테이블화한 것으로, 각 구성요소의 크기(Byte), Endian 방식, Start index 등이 테이블화 할 수 있다. 도 9는 헤더의 구성요소인 프로토콜 ID를 테이블화한 것으로, 각 프로토콜 ID의 이름, 크기(Byte), Hexa Value 등이 테이블화 할 수 있다. 도 10은 헤더의 구성요소인 프로토콜 ID의 필드 리스트를 테이블화한 것으로, 프로토콜 필드의 이름, 유형(Type), 크기(Byte) 등이 테이블화 할 수 있다. 예를 들어, CS_LOGIN_REQ의 Hexa Value는 02 00 00 00이고 필드로 Requeskey(unit, 4byte), AccountName(char, 17byte) 및 AccountPW(char, 17byte)을 가진다.
이와 같이, 정적필드 및 동적필드를 기반으로 생성된 테이블을 기반으로 게임 기술 언어을 생성하고, 이를 기반으로 가상 사용자를 생성하여 온라인 게임 서버의 성능을 테스트한다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 캡쳐부 20 : 분석부
30 : 클라이언트 단말기 40 : 게임 서버
50 : 패킷 DB 60 : 가상 사용자 제어부
70 : 패킷 데이터 71 : 패킷 사이즈
72 : 프로토콜 ID 73 : 체크썸
74 : 필드 리스트 75 : 더미
76 : 데이터 필드 80 : 기준필드

Claims (9)

  1. 클라이언트 단말기와 게임 서버간에 전송되는 패킷을 캡쳐하는 캡쳐부; 및
    상기 캡쳐부에서 캡쳐한 상기 패킷을 분석하고, 분석된 결과에 따라 상기 패킷에 포함된 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 분석부를 포함하고,
    상기 분석부는, 캡쳐한 상기 패킷의 구조를 정의하는 패킷 정의부;
    상기 패킷 정의부에서 정의한 구조를 기반으로 상기 패킷을 재조립하는 재조립부; 및
    상기 재조립부에서 재조립한 상기 패킷에 포함된 상기 데이터 필드를 바이트 수에 따른 길이로 구분하고, 구분한 상기 데이터 필드를 동일한 필드 구조를 가지는 정적 필드 또는 필드의 정렬 규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 데이터 필드 정의부를 더 포함하고,
    상기 동적필드는 상기 기준필드에 의해 정의되는 비트로 변환될 바이트의 수, 후행필드의 반복횟수, 크기 및 정렬 구조 각각에 따라 서로 다른 유형으로 정의되는, 온라인 게임 패킷 분석 시스템.
  2. 제1항에 있어서, 상기 캡쳐부는,
    상기 패킷을 캡쳐한 시간, 발생한 이벤트, 상기 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐하는 것을 특징으로 하는 온라인 게임 패킷 분석 시스템.
  3. 삭제
  4. 제1항에 있어서, 상기 패킷 정의부는,
    캡쳐한 상기 패킷에 포함된 구성요소를 구분하고, 구분한 상기 패킷의 구성요소에 크기를 표시하고, 구성요소에 크기가 표시된 상기 패킷에 상기 게임 서버의 세션 정보를 결합하는 것을 특징으로 하는 온라인 게임 패킷 분석 시스템.
  5. 제1항에 있어서, 상기 데이터 필드 정의부는,
    상기 기준필드가 상기 후행필드의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의하고, 상기 기준필드가 상기 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의하고, 상기 기준필드가 상기 후행필드의 크기를 정의한 경우에 정의한 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의하고, 상기 기준필드가 상기 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의하는 것을 특징으로 하는 온라인 게임 패킷 분석 시스템.
  6. 클라이언트 단말기와 게임 서버간에 전송되는 패킷을 캡쳐하는 단계;
    캡쳐한 상기 패킷의 구조를 정의하는 단계;
    정의한 상기 패킷의 구조를 기반으로 상기 패킷을 재조립하는 단계;
    재조립한 상기 패킷에 포함된 데이터 필드를 바이트 수에 따른 길이로 구분하는 단계; 및
    구분한 상기 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 단계를 포함하고,
    상기 동적필드는 상기 기준필드에 의해 정의되는 비트로 변환될 바이트의 수, 후행필드의 반복횟수, 크기 및 정렬 구조 각각에 따라 서로 다른 유형으로 정의되는, 온라인 게임 패킷 분석 방법.
  7. 제6항에 있어서, 상기 패킷을 캡쳐하는 단계는,
    상기 패킷을 캡쳐한 시간, 발생한 이벤트, 상기 이벤트가 발생한 시간 및 스크린샷을 더 포함하여 캡쳐하는 것을 특징으로 하는 온라인 게임 패킷 분석 방법.
  8. 제6항에 있어서, 상기 패킷의 구조를 정의하는 단계는,
    캡쳐한 상기 패킷의 구성요소를 구분하는 단계;
    구분한 상기 패킷의 구성요소에 크기를 표시하는 단계; 및
    구성요소에 크기가 표시된 상기 패킷에 상기 게임 서버의 세션 정보를 결합하는 단계를 더 포함하는 것을 특징으로 하는 온라인 게임 패킷 분석 방법.
  9. 제6항 내지 제8항 중 어느 하나의 항에 있어서, 상기 데이터 필드를 동일한 필드 구조를 가지는 정적필드 또는 필드의 정렬규칙을 정의한 기준필드에 따른 필드 구조나 사용자의 요청에 따른 필드 구조를 가지는 동적필드로 정의하는 단계는,
    상기 기준필드가 상기 후행필드의 반복횟수를 정의한 경우에 상기 반복횟수에 따라 정렬된 데이터 필드를 A유형의 동적필드로 정의하고, 상기 기준필드가 상기 비트로 변환할 바이트의 수를 정의한 경우에 상기 바이트의 수를 기반으로 변환된 비트에 따라 정렬된 데이터 필드를 B유형의 동적필드로 정의하고, 상기 기준필드가 상기 후행필드의 크기를 정의한 경우에 상기 후행필드의 크기에 따라 정렬된 데이터 필드를 C유형의 동적필드로 정의하고, 상기 기준필드가 상기 후행필드의 정렬 구조를 나타내는 소정 파라미터를 정의한 경우에 상기 소정 파라미터에 따라 정렬된 데이터 필드를 D유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자의 요청에 따른 종료 조건을 가지는 필드를 E유형의 동적필드로 정의하고, 상기 데이터 필드 중에서 사용자 요청에 따른 크기를 가지는 필드를 F유형의 동적필드로 정의하는 것을 특징으로 하는 온라인 게임 패킷 분석 방법.
KR1020110102298A 2011-10-07 2011-10-07 온라인 게임 패킷 분석 시스템 및 방법 KR101891981B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110102298A KR101891981B1 (ko) 2011-10-07 2011-10-07 온라인 게임 패킷 분석 시스템 및 방법
US13/646,525 US9374283B2 (en) 2011-10-07 2012-10-05 System and method for analyzing online game packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110102298A KR101891981B1 (ko) 2011-10-07 2011-10-07 온라인 게임 패킷 분석 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20130037831A KR20130037831A (ko) 2013-04-17
KR101891981B1 true KR101891981B1 (ko) 2018-10-04

Family

ID=48042425

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110102298A KR101891981B1 (ko) 2011-10-07 2011-10-07 온라인 게임 패킷 분석 시스템 및 방법

Country Status (2)

Country Link
US (1) US9374283B2 (ko)
KR (1) KR101891981B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204290B1 (ko) * 2019-08-23 2021-01-18 고려대학교 세종산학협력단 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593984B1 (ko) * 2011-09-06 2016-02-16 한국전자통신연구원 분산 테스트 시스템 및 방법, 분산 테스트 관제 시스템 및 방법, 분산 테스트 플랜 작성 장치 및 방법, 분산 테스트 에이전트 및 분산 테스트 플랜 실행 방법
CN103853655A (zh) * 2012-11-30 2014-06-11 英业达科技有限公司 于待测装置外部产生虚拟测试单元的测试系统及其方法
EP2811475A1 (en) * 2013-06-03 2014-12-10 Telefonica Digital España, S.L.U. A computer implemented method for tracking and checking measures and computer programs thereof
CN110034972B (zh) * 2019-03-22 2021-07-06 深圳市腾讯信息技术有限公司 服务器压力测试方法和装置
US11429608B2 (en) * 2019-07-31 2022-08-30 Splunk Inc. Optimizing search of an accelerated data model by enabling emitting of structured and unstructured fields from the data model
US11748347B2 (en) * 2021-05-19 2023-09-05 Ford Global Technologies, Llc Resolving incompatible computing systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2065578C (en) * 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
JP2003140988A (ja) 2001-10-30 2003-05-16 Ando Electric Co Ltd 動画配信サーバ負荷試験装置
US7096264B2 (en) * 2002-01-25 2006-08-22 Architecture Technology Corp. Network analyzer having distributed packet replay and triggering
US7246101B2 (en) * 2002-05-16 2007-07-17 Hewlett-Packard Development Company, L.P. Knowledge-based system and method for reconstructing client web page accesses from captured network packets
US7840664B2 (en) * 2003-05-21 2010-11-23 Ixia Automated characterization of network traffic
US7430617B2 (en) * 2003-12-19 2008-09-30 Nokia Corporation Method and system for header compression
US20060262788A1 (en) * 2005-05-23 2006-11-23 Broadcom Corporation Dynamic payload header suppression extensions for IPV6
JP4648181B2 (ja) 2005-12-16 2011-03-09 富士通株式会社 データ解析装置、データ解析方法、及びそのプログラム
US7653006B1 (en) 2007-03-12 2010-01-26 Deja Vu Networks, Inc. Network traffic capture and replay with transaction integrity and scaling
KR100962532B1 (ko) 2007-12-18 2010-06-14 한국전자통신연구원 부하 테스트를 위한 패킷의 부하 재생성 시스템 및 그 방법
US8625642B2 (en) * 2008-05-23 2014-01-07 Solera Networks, Inc. Method and apparatus of network artifact indentification and extraction
KR20100102903A (ko) 2009-03-12 2010-09-27 한국전자통신연구원 온라인 게임 검증 시스템 및 방법
KR101269671B1 (ko) 2009-12-01 2013-05-30 한국전자통신연구원 게임 테스트를 위한 게임 문법 기반의 패킷 캡쳐 분석 장치 및 그 방법
TWI428034B (zh) * 2010-07-02 2014-02-21 Univ Nat Chiao Tung 錄製、還原與重播網路流量的方法
KR20120060012A (ko) * 2010-12-01 2012-06-11 한국전자통신연구원 시나리오 기반 부하 테스트 장치 및 방법
KR20120070130A (ko) * 2010-12-21 2012-06-29 한국전자통신연구원 가상 게임 클라이언트 생성 방법 및 그 장치
US8827817B2 (en) * 2010-12-22 2014-09-09 Electronics And Telecommunications Research Institute Apparatus and method for collecting game data
US8874736B2 (en) * 2012-04-23 2014-10-28 Hewlett-Packard Development Company, L.P. Event extractor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102204290B1 (ko) * 2019-08-23 2021-01-18 고려대학교 세종산학협력단 통계적 분석 기반 비공개 프로토콜의 구분자 및 정적필드 추출방법

Also Published As

Publication number Publication date
US20130090172A1 (en) 2013-04-11
US9374283B2 (en) 2016-06-21
KR20130037831A (ko) 2013-04-17

Similar Documents

Publication Publication Date Title
KR101891981B1 (ko) 온라인 게임 패킷 분석 시스템 및 방법
US8396962B2 (en) Game grammar-based packet capture and analysis apparatus and method for conducting game test
US10880197B2 (en) Methods, systems, and computer readable media for testing a network node using source code for programming a packet forwarding plane of the network node
US6850852B1 (en) System and method for configuring a logic analyzer to trigger on data communications packets and protocols
US6639607B1 (en) Graphical user interface for a logic analyzer which allows trigger construction for data communications packets and protocols
US20110282642A1 (en) Network emulation in manual and automated testing tools
CN201226523Y (zh) 一种交换机稳定性测试系统
US7555420B2 (en) Method and system for network emulation
CN100514919C (zh) 一种多媒体服务系统性能测试方法
US20060262729A1 (en) Method and system for testing communication protocols in network communication
US11093376B2 (en) Methods, systems, and computer readable media for configuring a test system using source code of a device being tested
CN101902367A (zh) 一种产生测试用例的方法及装置
CN103117900B (zh) 一种可配置式工业以太网数据解析系统及解析方法
US8095649B2 (en) Network delay analysis including parallel delay effects
CN102752216B (zh) 一种识别动态特征应用流量的方法
US20120158830A1 (en) Apparatus and method for generating virtual game clients
US20100142377A1 (en) SIP Information Extraction
CN104539483A (zh) 网络测试系统
US8556725B2 (en) Scenario-based load testing apparatus and method
US6889346B2 (en) Scoping of real time signals of remote communication systems over a computer network: systems, methods and program products
CN102780591A (zh) 用于在会话级别区分和采样双向网络流量的方法和装置
US9143414B2 (en) Scenario, call, and protocol data unit hierarchical comparator
CN108369236A (zh) 分析设备用数据处理系统和分析设备用数据处理程序
CN115514683A (zh) 丢包原因确定方法、装置、交换芯片及存储介质
CN110061880A (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