KR20090118955A - Secured cross platform networked multiplayer communication and game play - Google Patents

Secured cross platform networked multiplayer communication and game play Download PDF

Info

Publication number
KR20090118955A
KR20090118955A KR1020097018515A KR20097018515A KR20090118955A KR 20090118955 A KR20090118955 A KR 20090118955A KR 1020097018515 A KR1020097018515 A KR 1020097018515A KR 20097018515 A KR20097018515 A KR 20097018515A KR 20090118955 A KR20090118955 A KR 20090118955A
Authority
KR
South Korea
Prior art keywords
computing device
platform
game
application
clearinghouse
Prior art date
Application number
KR1020097018515A
Other languages
Korean (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 마이크로소프트 코포레이션
Publication of KR20090118955A publication Critical patent/KR20090118955A/en

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
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/323Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections between game devices with different hardware characteristics, e.g. hand-held game devices connectable to game consoles or arcade machines
    • 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
    • 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/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • 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/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • 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/532Features 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 using secure communication, e.g. by encryption, authentication
    • 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/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Signal Processing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Child & Adolescent Psychology (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

A user of a software application (e.g., game or title) running at a gaming console may interact securely in real-time with a user of the same software application running at a general purpose computing device. Thus, a game player on the gaming console may play online over a secured communication channel with a game player on a PC.

Description

보안된 크로스 플랫폼 네트워크 멀티플레이어 통신 및 게임 플레이{SECURED CROSS PLATFORM NETWORKED MULTIPLAYER COMMUNICATION AND GAME PLAY}SECURERED CROSS PLATFORM NETWORKED MULTIPLAYER COMMUNICATION AND GAME PLAY} Secure Cross-Platform Network Multiplayer Communication and Gameplay

FPS(first-person shooter) 게임과 같은 소프트웨어 애플리케이션은 게임 콘솔(예를 들어, 마이크로 소프트의 XboxTM)과 개인용 컴퓨터(PC) 모두에서 가능하다. 그러나, 게임 콘솔은 네트워크 연결을 통해 PC와 통신할 수 없다. 따라서, 예를 들어 게임 콘솔은 PC와 온라인 비디오 게임을 플레이할 수 없다.Software applications such as FPS (first-person shooter) game is available in both a game console (eg, Xbox TM, Microsoft) and personal computer (PC). However, the game console cannot communicate with the PC via a network connection. Thus, for example, a game console cannot play online video games with a PC.

XBox LiveTM는 마이크로소프트에 의해 만들어져서 운영되는 온라인 멀티플레이어 게임 및 컨텐츠 배포 시스템이다. 마이크로소프의 Live AnywhereTM는 PC와 휴대폰과 같은 다양한 비-Xbox 플랫폼을 더 적은 기능성을 가지며 Xbox Live와 연결하도록 한다. 예를 들어, 크로스-플랫폼 플레이가 가능하지 않아서, PC 플레이어는 Xbox 플레이어와 겨룰 수 없다.XBox Live TM is an online multiplayer gaming and content distribution system that creates so operated by Microsoft. Live Anywhere TM micro Thorpe has less functionality for a variety of non--Xbox platforms such as the PC and the mobile phone must be connected to Xbox Live. For example, cross-platform play is not possible, so a PC player cannot compete with an Xbox player.

게임 콘솔에서 실행되는 소프트웨어 애플리게이션(예를 들어, 게임 또는 타이틀)의 사용자는 PC와 같은 범용 컴퓨팅 장치에서 실행되는 동일한 소프트웨어 애플리케이션의 사용자와 실시간으로 보안된 상호작용을 할 수 있다. 따라서, 게임 콘솔의 게임 플레이어는 PC 상의 게임 플레이어와 온라인 플레이를 할 수 있다. 게임 콘솔은, 예를 들어 클리어링하우스(clearinghouse)를 통해 또는 직접적으로 네트워크 또는 시스템 링크 연결을 통해 범용 컴퓨팅 장치와 보안된 통신을 할 수 있다.A user of a software application (eg, a game or title) running on a game console can have secure interactions in real time with a user of the same software application running on a general purpose computing device such as a PC. Thus, the game player of the game console can play online with the game player on the PC. The game console may be in secure communication with a general purpose computing device, for example, via a clearinghouse or directly via a network or system link connection.

스택과 포트는 크로스-플랫폼 기능을 수용할 수 있도록 설정된다. 추가적으로, 보안 키 교환뿐만 아니라 빅-엔디안 및 리틀-엔디안 바이트 순서화가 제공된다.Stacks and ports are configured to accommodate cross-platform functionality. In addition, big-endian and little-endian byte ordering are provided as well as secure key exchange.

본 설명은 아래의 실시예에서 상세히 개시되는 사상의 발췌를 단순화된 형식으로 소개하기 위해 제공된다. 본 설명은 청구된 주요 발명의 중요한 태양 또는 핵심적인 태양을 식별하기 위한 것으로 해석되지 않고, 청구된 주요 발명의 범위를 제한하기 위한 것으로 해석되지 않는다. This description is provided to introduce a selection of concepts in a simplified form that are disclosed in detail in the Examples below. This description is not to be interpreted as to identify key aspects or key aspects of the claimed subject matter, and is not to be construed as limiting the scope of the claimed subject matter.

도 1은 예시적인 크로스-플랫폼 네트워크 시스템의 블록도.1 is a block diagram of an exemplary cross-platform network system.

도 2는 다른 예시적인 크로스-플랫폼 네트워크 시스템의 블록도.2 is a block diagram of another exemplary cross-platform network system.

도 3은 예시적인 포팅 기술의 흐름도.3 is a flow chart of an exemplary porting technique.

도 4는 클리어링하우스 실시예를 위한 예시적인 키 교환 과정의 도면.4 is a diagram of an exemplary key exchange process for a clearinghouse embodiment.

도 5는 시스템 링크 실시예를 위한 예시적인 키 교환 과정의 도면.5 is a diagram of an exemplary key exchange process for a system link embodiment.

도 6은 예시적인 운영 환경을 도시하는 도면.6 illustrates an exemplary operating environment.

도 1은 게임 콘솔(10)이 클리어링하우스(20)를 통해 범용 컴퓨팅 장치(30)와 네트워킹되는 예시적인 크로스-플랫폼 시스템의 블록도이다. 게임 콘솔(10)은 온 라인 게임에 적용되는 임의의 컴퓨팅 장치가 될 수 있다. 예를 들어, 게임 콘솔(10)은 하나 이상의 온라인 게임 타이틀이 로딩된 개인용 컴퓨터(PC)가 될 수 있다. 게임 콘솔(10)은 휴대용 장치일 수 있고 하나 이상의 게임 타이틀의 사용을 위해 활용될 수 있다. 게임 타이틀은 게임 콘솔(10) 상에 로딩되고 실행될 수 있는 이산 애플리케이션일 수 있다. 게임 타이틀은 CD, DVD, 게임 카트리지 등과 같은 게임 콘솔(10)에 의해 판독될 수 있는 매체 상에 저장될 수 있다.1 is a block diagram of an exemplary cross-platform system in which game console 10 is networked with general purpose computing device 30 via clearinghouse 20. Game console 10 may be any computing device applied to online games. For example, game console 10 may be a personal computer (PC) loaded with one or more online game titles. Game console 10 may be a portable device and may be utilized for use of one or more game titles. The game title may be a discrete application that may be loaded and executed on game console 10. Game titles may be stored on media that can be read by game console 10, such as CDs, DVDs, game cartridges, and the like.

통상적으로, 사용자는 많은 게임 타이틀을 소유할 수 있다. 사용자는 개별적인 게임 타이틀을 게임 콘솔(10)에 로딩하고 실행하여 동일한 게임 타이틀을 자신의 각각의 게임 콘솔 또는 컴퓨팅 장치 상에 로딩하여 실행하는 다른 사용자와 온라인 게임을 플레이할 수 있다.Typically, a user can own many game titles. A user may load and execute individual game titles on game console 10 to play online games with other users who load and execute the same game titles on their respective game consoles or computing devices.

게임 콘솔(10)은 바람직하게는 예를 들어, 마이크로 소프트의 XboxTM와 같은 게임-전용 콘솔이고, 범용 컴퓨팅 장치(30)는 바람직하게는 예를 들어, PC, 휴대용 장치 또는 휴대폰이다. 클리어링하우스(20)는 예를 들어, XBox LiveTM와 같은 온라인 멀티플레이어 게임 및 컨텐츠 배포 서비스 또는 시스템이 될 수 있다. 게임 콘솔(10) 및 컴퓨팅 장치(30)는 각각, 예를 들어 인터넷 또는 다른 네트워크를 통해 클리어링하우스(20)와 통신할 수 있다.Game console 10 is preferably a game-only console, such as, for example, Microsoft's Xbox ™, and general purpose computing device 30 is preferably, for example, a PC, a portable device or a mobile phone. Clearinghouse 20 may be, for example, an online multiplayer game and content distribution service or system such as XBox Live . Game console 10 and computing device 30 may each communicate with clearinghouse 20 via, for example, the Internet or other network.

클리어링하우스(20)는 바람직하게는 보안된 인터넷 액세스를 위한 자신의 네트워크 스택 프로토콜(22)을 가진다. 아래에 상세히 개시되는 네트워크 스택 프로토콜(22)은 게임 콘솔(10)에 의해 사용되고, 컴퓨팅 장치(30)가 클리어링하우 스(20)와 동일한 프로토콜을 가지는 코드를 가지도록 컴퓨팅 장치(30)로 포팅될 수 있다. 프로토콜은 게임 콘솔(20)과 컴퓨팅 장치(30) 사이의 크로스-플랫폼을 토크할 수 있다.The clearinghouse 20 preferably has its own network stack protocol 22 for secured internet access. The network stack protocol 22 described in detail below is used by the game console 10 and may be ported to the computing device 30 such that the computing device 30 has code having the same protocol as the clearinghouse 20. Can be. Protocol may talk to the cross-platform between the game console 20 and the computing device 30. [

신뢰성을 얻을 수 있도록 플랫폼 유형(예를 들어, 게임 콘솔, PC 등)을 포함하는 키 교환이 존재한다. 플랫폼 유형은 키 교환 메시지에 포함될 수 있고 예를 들어 장치가 게임 콘솔인지 또는 PC인지 확인하는 클리어링하우스(20)를 통해 송신될 수 있다. 키 교환은 아래에서 상세히 개시된다.There is a key exchange that includes the platform type (eg game console, PC, etc.) to achieve reliability. The platform type may be included in the key exchange message and sent via the clearinghouse 20, for example, to confirm that the device is a game console or a PC. Key exchange is described in detail below.

도 2는 게임 콘솔이 도 1에서와 같이 클리어링하우스(20)를 통해서가 아니라, 예를 들어 시스템 링크 또는 LAN(local area network) 연결을 통해 직접 범용 컴퓨팅 장치(30)와 네트워킹되는 예시적인 시스템의 블록도이다.FIG. 2 illustrates an example system where the game console is networked with the general purpose computing device 30 directly, rather than through the clearinghouse 20 as in FIG. 1, for example, via a system link or a local area network (LAN) connection. It is a block diagram.

시스템 링크는 게임 콘솔이 클리어링하우스를 통할 필요없이 상호 간에 직접 연결될 수 있도록 한다. 본 연결을 설정하기 위한 프로토콜은 클리어링하우스를 통해 콘솔과 연결을 설정하는 것과 상이하다. 클리어링하우스를 통하는 것 대신에, 콘솔은 브로드캐스트 패킷을 송신하고 응답을 기다린다. 이는 시스템 링크가 서브넷 상에서 동작하고 브로드캐스트 트래픽을 라우팅하도록 설정되지 않는 이상 임의의 유형의 라우터를 거쳐서 동작하지 않는다는 것을 의미한다. 바람직하게는, 브로드캐스트 패킷은 (게임 타이틀마다) 공유된 키를 사용해서 암호화된다. 키 구조는 크로스-플랫폼 플레이를 나타내는 플래그를 수용할 수 있다.System links allow game consoles to connect directly to each other without having to go through a clearing house. The protocol for establishing this connection is different from establishing a connection with the console through the clearing house. Instead of going through the clearinghouse, the console sends out broadcast packets and waits for a response. This means that the system link does not work over any type of router unless the system link operates on a subnet and is set up to route broadcast traffic. Preferably, the broadcast packet is encrypted using a shared key (per game title). The key structure may accept a flag indicating cross-platform play.

따라서, 게임 콘솔에서 실행되는 소프트웨어 애플리케이션(예를 들어, 게임 또는 타이틀)의 사용자는 컴퓨팅 장치에서 실행되는 동일한 소프트웨어 애플리케이 션의 사용자와 실시간으로 상호작용할 수 있다. 결과적으로, 게임 콘솔 상의 게임 플레이어는 PC 상의 게임 플레이어와 온라인 플레이를 할 수 있다.Thus, a user of a software application (e.g., a game or a title) running on a game console can interact in real time with a user of the same software application running on the computing device. As a result, the game player on the game console can play online with the game player on the PC.

도 1 및 도 2에 1개의 게임 콘솔(10)과 1개의 컴퓨팅 장치(30)가 도시되었지만, 클리어링하우스, 시스템 링크, LAN 또는 다른 수단을 통한 복수의 콘솔(10)과 컴퓨팅 장치(30)가 서로 네트워킹될 수 있다는 것을 고려해야 한다.Although one game console 10 and one computing device 30 are shown in FIGS. 1 and 2, a plurality of consoles 10 and computing devices 30 via clearinghouses, system links, LANs, or other means are shown. Consider that they can be networked with each other.

범용 컴퓨팅 장치 상에서, 복수의 프로세스는 복수의 전용 서버 인스턴스가 실행될때 또는 게임 대시보드(dashboard)가 별개의 애플리케이션으로서 실행될 때와 같이 동시에 실행될 수 있다. 따라서, 각 프로세스 또는 애플리케이션은 자신의 브로드캐스트 포트 및 아마도 상이한 게임 데이터 포트를 요구할 수 있다.On a general purpose computing device, a plurality of processes may be executed simultaneously, such as when a plurality of dedicated server instances are running or when a game dashboard is run as a separate application. Thus, each process or application may require its own broadcast port and possibly a different game data port.

IP 브로드캐스트는, 타이틀 전용일 수 있고 사용자에 의해 설정되는 것도 가능한 범용 컴퓨팅 장치의 특정한 포트로 전송된다. 따라서, 각 타이틀은 자신의 선택 포트를 디폴트로 할 수 있고 또는 사용할 포트를 사용자에게 선택하게 할 수 있다. An IP broadcast is sent to a specific port of a general purpose computing device, which may be dedicated to the title and may also be set by the user. Thus, each title can default to its own selected port or allow the user to select a port to use.

도 3은 시스템 링크 설정의 예시적인 포팅 기술의 흐름도이다. 200단계에서, 게임 타이틀 또는 다른 애플리케이션이 범용 컴퓨팅 장치 상에서 동작된다. 210단계에서, 컴퓨팅 장치가 사용할 포트를 결정한다. 포트는 동작되는 게임 타이틀 또는 애플리케이션에 기초하거나 사용자에 의해 설정될 수 있다. 220단계에서, 컴퓨팅 장치가 이에 따라 포트를 설정한다.3 is a flowchart of an exemplary porting technique for system link establishment. At 200, a game title or other application is run on a general purpose computing device. In step 210, the port is determined by the computing device. The port may be based on the game title or application being operated or set by the user. In operation 220, the computing device sets a port accordingly.

이더넷 레벨 어드레싱은 통상적으로 게임 콘솔 브로드캐스팅에서 사용된다. 즉, 패킷은 IP 레벨 아래의 수신기의 MAC 어드레스로 직접 라우팅된다. 따라서, IP 헤더의 어드레스는 사용되지 않고 의미가 없어서, 바람직하게는 특정한 어드레스(예를 들어, 0.0.0.1)로 설정되고 특정한 포트(예를 들어, 포트 3074)로부터 송신된다. 따라서, 크로스-플랫폼 네트워크 게임 플레이를 위해서 컴퓨팅 장치에서 사용되는 포트는 게임 콘솔에서 사용하는 포트(예를 들어, 포트 3074)와 상이할 수 있다. 게임 콘솔 상의 포트는, 예를 들어 게임 타이틀 또는 사용자 설정에 따라 변경될 수 있음을 고려해야 한다.Ethernet level addressing is commonly used in game console broadcasting. In other words, the packet is routed directly to the MAC address of the receiver below the IP level. Thus, the address of the IP header is not used and is meaningless, preferably set to a specific address (e.g. 0.0.0.1) and transmitted from a particular port (e.g. port 3074). Thus, the port used in the computing device for cross-platform network game play may be different from the port used in the game console (eg, port 3074). It should be taken into account that the port on the game console may change depending on the game title or user settings, for example.

게임 콘솔 상에서, 크로스-플랫폼 통신은 바람직하게는 오직 크로스-플랫폼 전용 비트가 게임의 실행가능한 헤더에 설정될 때만 가능하다. 설정될 수 있는 비트는 게임이 이더넷 어드레싱 대신에 시스템 링크에 대하여 사용하는 IP 어드레싱을 사용한다는 것을 나타낸다. 이는 시스템이 게임 콘솔과 범용 컴퓨팅 장치 사이에서 링크할 수 있도록 한다. 비트가 설정되지 않으면, 게임 콘솔과 범용 컴퓨팅 장치 사이의 최초 키 교환이 거부된다.On game consoles, cross-platform communication is preferably only possible when the cross-platform dedicated bits are set in the game's executable header. Bits that can be set indicate that the game uses the IP addressing that is used for the system link instead of Ethernet addressing. This allows the system to link between the game console and the general purpose computing device. If the bit is not set, the first key exchange between the game console and the general purpose computing device is rejected.

컴퓨팅 장치 상에서, 크로스-플랫폼 통신은 바람직하게는 언제나 가능하다.On a computing device, cross-platform communication is preferably always possible.

시스템 링크 브로드캐스트를 위하여 사용하는 포트를 설정하기 위해서, 개시되는 API가 애플리케이션 또는 게임 코드로부터 호출될 수 있다. 애플리케이션 또는 게임은 자신의 코드 상에서 사용하는 포트를 고정시킬 수 있고 또는 사용자가 사용되는 포트를 관찰하고 수정하도록 사용자 인터페이스를 제공할 수 있다. 시스템 링크 포트의 설정은 바람직하게는 클리어링하우스를 통한 연결을 위해 사용되는 포트, 예를 들어 3074로 유지되거나 또는 3074를 허용하지 않으면 장치와 서로 협의한 포트에 영향을 주지 않는다.In order to set the port to use for system link broadcast, the initiated API can be called from the application or game code. An application or game can pin the ports it uses on its code or provide a user interface for the user to observe and modify the ports used. The setting of the system link port is preferably maintained at the port used for connection through the clearinghouse, for example 3074, or does not affect ports negotiated with the device unless 3074 is allowed.

API의 예시는 다음과 같다.An example of the API is as follows.

XNetSetSystemLinkPortXNetSetSystemLinkPort

INT WSAAPI XNetSetSystemLinkPort(INT WSAAPI XNetSetSystemLinkPort (

WORD wSystemLinkPortWORD wSystemLinkPort

).).

wSystemLinkPort 파라미터는 시스템 링크 브로드캐스트 및 데이터를 위해 사용하는 포트 번호를 지칭한다. 성공적이면 API는 0을 반환하고, 그렇지 않으면 에러 코드를 반환한다. 예를 들어, 게임의 실행가능한 헤더에 XEX_PRIVILEGE_CROSSPLATFORM_SYSTEM_LINK 비트가 설정되지 않으면 XNetSetSystemLinkPort는 오류가 난다. 선택된 포트가 시스템에 의해 사용 중이면, 예를 들어 "사용 중인 어드레스(Address in use)"가 반환될 수 있다.The wSystemLinkPort parameter refers to the port number used for system link broadcast and data. If successful, the API returns 0, otherwise it returns an error code. For example, XNetSetSystemLinkPort will fail if the XEX_PRIVILEGE_CROSSPLATFORM_SYSTEM_LINK bit is not set in the game's executable header. If the selected port is in use by the system, for example "Address in use" may be returned.

일예시에서, XNetSetSystemLinkPort가 호출되지 않으면 포트 3074가 디폴트 포트이다. 바람직하게는, XNetSetSystemLinkPort는 애플리케이션 또는 게임의 시동 전에 호출되고, 그렇지 않으면 애플리케이션 또는 게임은 오류가 난다.In one example, port 3074 is the default port unless XNetSetSystemLinkPort is called. Preferably, the XNetSetSystemLinkPort is called before the application or game starts up, otherwise the application or game fails.

XNetSetSystemLinkPort가 성공적이면, 애플리케이션 또는 게임이 시작될 때 설정 포트가 바인딩(binding)에 대해서 사용가능하다는 것이 보증된다. 즉, XNetSetSystemLinkPort는 사용을 위해 포트를 록킹(lock)해서 XNetSetSystemLinkPort의 호출과 애플리케이션 또는 게임의 시동 사이에 다른 프로세스에 의해 포트가 보유될 가능성은 없다.If the XNetSetSystemLinkPort is successful, it is guaranteed that the configuration port is available for binding when the application or game is started. In other words, the XNetSetSystemLinkPort locks the port for use, so there is no possibility that the port will be held by another process between the call to the XNetSetSystemLinkPort and the startup of the application or game.

포트 번호는 디스크에 대해 지속적이지 않고 애플리케이션 또는 게임이 종료 할 때까지 사용을 위해 전역적으로(globally) 저장된다. 애플리케이션 또는 게임이 종료할 때, 시스템 링크 포트는 리셋된다(예를 들어, 3074로 복귀).Port numbers are not persistent to disk and are stored globally for use until the application or game exits. When the application or game ends, the system link port is reset (e.g., returns to 3074).

시스템 링크 포트를 얻는 다른 API가 개시된다.Another API is disclosed to obtain a system link port.

XNetGetSystemLinkPortXNetGetSystemLinkPort

INT WSAAPI XNetGetSystemLinkPort(INT WSAAPI XNetGetSystemLinkPort (

WORD* pwSystemLinkPortWORD * pwSystemLinkPort

).).

pwSystemLinkPort 파라미터는 시스템 링크 브로드캐스트 및 데이터를 위해 현재 설정되는 포트 번호이다.The pwSystemLinkPort parameter is the port number currently set for system link broadcasts and data.

성공적이면 API는 0을 반환하고, 그렇지 않으면 에러 코드를 반환한다. 게임의 실행가능한 헤더에 XEX_PRIVILEGE_CROSSPLATFORM_SYSTEM_LINK 비트가 설정되지 않으면 XNetGetSystemLinkPort는 오류가 난다.If successful, the API returns 0, otherwise it returns an error code. XNetGetSystemLinkPort will fail if the XEX_PRIVILEGE_CROSSPLATFORM_SYSTEM_LINK bit is not set in the game's executable header.

바람직하게는 보안된 키 교환이 수행된다. 클리어링하우스를 사용하는 실시예에 대해서, 예시적인 연결 프로토콜은 바람직하게는 클라이언트들(게임 콘솔 및 범용 컴퓨팅 장치) 사이의 모든 연결들이 키 교환을 요청하는 것을 요구한다. 패킷은 이들이 범용 컴퓨팅 장치로부터 왔는지를 판정하기 위해 검사된다. 이러한 경우에, 필요하다면 상이하게 데이터를 처리할 수 있도록, 정보는 클리어링하우스 또는 다른 목적지로 지시된다.Preferably secured key exchange is performed. For an embodiment using a clearinghouse, the exemplary connection protocol preferably requires that all connections between clients (game console and general purpose computing device) request a key exchange. The packets are examined to determine if they are from a general purpose computing device. In this case, the information is directed to a clearing house or other destination so that the data can be processed differently if necessary.

도 4는 클리어링하우스 실시예에 대한 예시적인 키 교환 과정의 도면이고 인증 서비스(410), 클리어링하우스 키 서버(420) 및 클리어링하우스 게이트웨이 서 버(430)와 통신하는 게임 클라이언트와 같은 클라이언트(400)를 도시한다.4 is a diagram of an exemplary key exchange process for a clearinghouse embodiment and client 400 such as a game client communicating with authentication service 410, clearinghouse key server 420, and clearinghouse gateway server 430. Shows.

게임 클라이언트(400)는 인증 서비스(410)로 로그인 크레덴셜(login crendentials; 405)을 송신한다. 인증 서비스(410)는 클라이언트에 인증 티켓(authentication ticket; 415)으로 응답한다. 게임 클라이언트(400)는 클리어링하우스 키 서버(420)에 인증 티켓(415)을 제공한다. 클리어링하우스 키 서버(420)는 클리어링하우스 티켓(425) 및 포인터(427)로 클리어링하우스 게이트웨이 서버(430)에 응답한다. 게임 클라이언트(400)는 클리어링하우스 서비스를 사용하기 위해 클리어링하우스 게이트웨이 서버(430)에 연결할 수 있다.The game client 400 sends login credentials 405 to the authentication service 410. The authentication service 410 responds to the client with an authentication ticket 415. The game client 400 provides an authentication ticket 415 to the clearinghouse key server 420. Clearinghouse key server 420 responds to clearinghouse gateway server 430 with clearinghouse ticket 425 and pointer 427. The game client 400 may connect to the clearinghouse gateway server 430 to use the clearinghouse service.

키 교환 메시지는 바람직하게는 게임을 실행하는 머신이 클리어링하우스와 연결하기 위해 사용해야 하는 포트 번호를 포함한다.The key exchange message preferably contains the port number that the machine running the game should use to connect with the clearinghouse.

도 5를 참조하여 개시되는 것과 같이, 클리어링하우스를 사용하지 않는 실시예(예를 들어, 시스템 링크 실시예)에서, 키 교환은 바람직하게는 크로스-플랫폼 연결을 나타내는 키의 플래그를 사용한다.As disclosed with reference to FIG. 5, in an embodiment that does not use a clearinghouse (eg, a system link embodiment), key exchange preferably uses a flag of a key that represents a cross-platform connection.

도 5는 시스템 링크 실시예를 위한 예시적인 키 교환 과정의 도면이다. 도 5는 호스트 및 다른 게임 클라이언트(550)로서 동작하는 게임 클라이언트(500)를 도시한다. 클라이언트는, 예를 들어 LAN 서브넷을 통해 통신할 수 있다. 도시되지 않았지만, 네트워크 상의 추가적인 게임 클라이언트도 고려되어야 한다.5 is a diagram of an exemplary key exchange process for a system link embodiment. 5 shows game client 500 operating as a host and other game clients 550. The client may, for example, communicate over a LAN subnet. Although not shown, additional game clients on the network should also be considered.

호스트 게임 클라이언트(500)는 자신의 존재 및 사용가능성(505)을 브로드캐스트한다. 게임 클라이언트(550)는 브로드캐스트를 해독하고 게임(510)에 참여하라는 브로드캐스트로 응답한다. 호스트 게임 클라이언트(500)는 참여 요청을 받아 들이고 게임 세션 키(515)를 브로드캐스트한다. 게임 클라이언트(500, 550)는 바람직하게는 게임 세션을 수행하기 위해 상호(520) 간에 유니캐스트(unicast)한다. 컴퓨터 네트워크에서, 유니캐스트는 단일 목적지로의 정보 패킷의 송신이다. 바람직하게는, 모든 브로드캐스트는 타이틀 전용 키로 암호화되고, 모든 유니캐스트는 게임 세션 전용 키로 암호화된다.The host game client 500 broadcasts its presence and availability 505. The game client 550 decrypts the broadcast and responds with the broadcast to join the game 510. The host game client 500 accepts the participation request and broadcasts the game session key 515. Game clients 500 and 550 preferably unicast with each other 520 to conduct a game session. In a computer network, unicast is the transmission of information packets to a single destination. Preferably, all broadcasts are encrypted with a title-only key and all unicasts are encrypted with a game session-only key.

바이트 순서화와 관련해서, 컴퓨팅에서 엔디안니스(endianness)는 일련의 더 작은 유닛과 같은 데이터의 일부 유형을 나타내기 위해 사용되는 순서화이다. 통상적인 경우에는 (주어진 메모리 어드레싱 기법과 관련하여) 컴퓨터 메모리에 바이트로서 정수 값이 저장되는 순서 및 네트워크를 통한 전송 순서이다. 바이트와 관련해서, 엔디안니스는 또한 바이트 순서로서도 지칭된다.With respect to byte ordering, in computing, endianness is the ordering used to represent some type of data, such as a series of smaller units. Typical cases are the order in which integer values are stored as bytes in computer memory (in relation to a given memory addressing technique) and the order of transmission over the network. In terms of bytes, endianness is also referred to as byte order.

대부분의 컴퓨터 프로세서는 개념상으로 인코딩된 값이 단순한 연접(concatenation)에 의해 획득될 수 있도록 단순히 바이트의 순서로서 정수를 저장한다. n-바이트 정수 값을 위해 이는 n!의 가능한 표현(각 바이트 순열마다 하나씩)을 허용한다. 이들의 2개의 가장 보편적인 방법은 리틀-엔디안으로서 알려진 증가하는 메모리 주소에 증가하는 자리수를 저장하는 방법과, 이의 반대인 빅-엔디안이라 불리우는 방법이다.Most computer processors simply store integers as sequences of bytes so that the conceptually encoded values can be obtained by simple concatenation. For n-byte integer values this allows for a possible representation of n! (one for each byte permutation). Two of their most common methods are storing increasing digits in increasing memory addresses, known as little-endian, and vice versa, called big-endian.

모든 컴퓨터 아키텍쳐는 빅-엔디안 또는 리틀-엔디안이다. 빅-엔디안 아키텍쳐는, 예를 들어 마이크로소프트의 Xbox 및 IBM의 파워 PC에서 발견되고, 인텔 x86 프로세서(및 이들의 클론)은 리틀-엔디언 포맷을 사용한다.All computer architectures are big-endian or little-endian. Big-endian architectures are found, for example, on Microsoft's Xbox and IBM's Power PCs, and Intel x86 processors (and their clones) use the little-endian format.

도 6 및 다음의 설명은 본 발명 및/또는 이의 부분이 구현될 수 있는 적절한 컴퓨팅 환경의 간략한 일반적인 개시를 제공하기 위한 것이다. 필수적이지는 않지만, 본 발명은 클라이언트 워크스테이션 또는 서버와 같은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터-실행가능 명령어의 일반적인 컨텍스트에서 개시된다. 일반적으로, 프로그램 모듈은 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 및 특정한 작업을 수행하거나 또는 특정한 추상적인 데이터 유형을 구현하는 이와 유사한 것들을 포함한다. 더 나아가, 본 발명 및/또는 이의 부분은 휴대용 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능한 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다른 컴퓨터 시스템 구성과 함께 실시될 수 있다. 본 발명은 또한 작업이 통신 네트워크를 통해 링크된 원격 프로세싱 장치에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.6 and the following description are intended to provide a brief general disclosure of a suitable computing environment in which the present invention and / or portions thereof may be implemented. Although not required, the invention is disclosed in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a client workstation or server. Generally, program modules include routines, programs, objects, components, data structures, and the like, that perform particular tasks or implement particular abstract data types. Furthermore, the present invention and / or portions thereof may be practiced with other computer system configurations including portable devices, multiprocessor systems, microprocessor-based or programmable electronics, network PCs, minicomputers, mainframe computers, and the like. have. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

도 6에 도시되는 바와 같이, 예시적인 범용 컴퓨팅 시스템은 프로세싱 유닛(121), 시스템 메모리(122) 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(121)과 연결하는 시스템 버스(123)를 포함하는 종래의 개인용 컴퓨터(120) 및 이와 유사한 것을 포함한다. 시스템 버스(123)는 메모리 버스 또는 메모리 제어기, 주변 버스 및 임의의 다양한 버스 아키텍쳐를 사용하는 로컬 버스를 포함하는 임의의 다양한 유형의 버스 구조일 수 있다. 시스템 메모리는 ROM(read-only memory; 124)) 및 RAM(random access memory; 125)를 포함한다. 시동 중에 개인용 컴퓨터(120) 내에서 구성요소들 사이의 정보를 전달하는데 도움을 주는 기본 루틴을 포함하는 BIOS(basic input/output system; 126)는 ROM(124)에 저장된다.As shown in FIG. 6, an exemplary general purpose computing system includes a system bus 123 that couples various system components, including the processing unit 121, system memory 122, and system memory, to the processing unit 121. Includes a conventional personal computer 120 and the like. System bus 123 may be any of a variety of types of bus structures, including memory buses or memory controllers, peripheral buses, and local buses using any of a variety of bus architectures. The system memory includes a read-only memory (ROM) 124 and a random access memory (RAM) 125. A basic input / output system (BIOS) 126 is stored in the ROM 124 that includes basic routines that assist in transferring information between components within the personal computer 120 during startup.

개인용 컴퓨터(120)는 하드디스크(도시되지 않음)로부터 판독하고 이에 기록하기 위한 하드디스크 드라이브(127), 착탈식 마그네틱 디스크(192)로부터 판독하고 이에 기록하기 위한 마그네틱 디스크 드라이브(128), 및 CD-ROM 또는 다른 광미디어와 같은 착탈식 광디스크(131)로부터 판독하고 이에 기록하기 위한 광디스크 드라이브(130)를 더 포함할 수 있다. 하드디스크 드라이브(127), 마그네틱 디스크 드라이브(128) 및 광디스크 드라이브(130)는 각각 하드디스크 드라이브 인터페이스(132), 마그네틱 디스크 드라이브 인터페이스(133) 및 광디스크 드라이브 인터페이스(134)에 의해 시스템 버스(123)와 연결된다. 드라이브와 그들의 관련된 컴퓨터-판독가능 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 개인용 컴퓨터(120)를 위한 다른 데이터의 비-휘발성 저장소를 제공한다.The personal computer 120 includes a hard disk drive 127 for reading from and writing to a hard disk (not shown), a magnetic disk drive 128 for reading from and writing to a removable magnetic disk 192, and a CD- It may further include an optical disk drive 130 for reading from and writing to a removable optical disk 131, such as a ROM or other optical media. The hard disk drive 127, the magnetic disk drive 128, and the optical disk drive 130 are connected to the system bus 123 by the hard disk drive interface 132, the magnetic disk drive interface 133, and the optical disk drive interface 134, respectively. Connected with The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules, and other data for the personal computer 120.

본 명세서에 개시되는 예시적인 환경이 하드디스크, 착탈식 마그네틱 디스크(192) 및 착탈식 광디스크(131)를 사용하지만, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 또한 예시적인 운영 환경에서 사용될 수 있다는 것을 이해할 수 있다. 이러한 다른 유형의 매체는 마그네틱 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지(Bernoulli cartridge), RAM(random access memory), ROM(read-only memory) 등을 포함한다.Although the exemplary environment disclosed herein uses a hard disk, removable magnetic disk 192 and removable optical disk 131, other types of computer readable media that can store data that can be accessed by a computer are also illustrated. It can be understood that it can be used in a normal operating environment. Such other types of media include magnetic cassettes, flash memory cards, digital video discs, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), and the like.

운영 체제(135), 하나 이상의 애플리케이션 프로그램(136), 다른 프로그램 모듈(137) 및 프로그램 데이터(138)를 포함하는 많은 프로그램 모듈은 하드디스크, 마그네틱 디스크(129), 광디스크(131), ROM(124) 또는 RAM(125) 상에 저장될 수 있다. 사용자는 키보드(140) 및 포인팅 장치(142)와 같은 입력 장치를 통해 명령 및 정보를 개인용 컴퓨터(120)에 입력할 수 있다. 다른 입력 장치(도시되지 않음)는 마이크로폰, 조이스틱, 게임 패드, 위성 디스크, 스캐너 등을 포함할 수 있다. 이러한 입력 장치들은 시스템 버스와 연결되는 직렬 포트 인터페이스(146)를 통해 프로세싱 유닛(121)과 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 다른 인터페이스를 통해 연결될 수도 있다. 모니터(147) 또는 다른 유형의 디스플레이 장치는 또한 비디오 아답터(148)와 같은 인터페이스를 통해 시스템 버스(123)와 연결된다. 모니터(147)뿐만 아니라, 개인용 컴퓨터는 통상적으로 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)를 포함한다. 도 6의 예시적인 시스템은 또한 호스트 아답터(155), SCSI(Small Computer System Interface) bus(156) 및 SCSI 버스(156)와 연결된 외장형 저장 장치(162)를 포함한다. Many program modules, including operating system 135, one or more application programs 136, other program modules 137, and program data 138, include hard disks, magnetic disks 129, optical disks 131, and ROMs 124. Or RAM 125. A user may enter commands and information into the personal computer 120 through input devices such as keyboard 140 and pointing device 142. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disc, scanner, or the like. These input devices are connected to the processing unit 121 via a serial port interface 146 that is connected to the system bus, but may also be connected through another interface, such as a parallel port, a game port, or a universal serial bus (USB). The monitor 147 or other type of display device is also connected to the system bus 123 via an interface such as a video adapter 148. In addition to the monitor 147, personal computers typically include other peripheral output devices (not shown) such as speakers and printers. The example system of FIG. 6 also includes a host adapter 155, a small computer system interface (SCSI) bus 156, and an external storage device 162 connected with the SCSI bus 156.

개인용 컴퓨터(120)는 원격 컴퓨터(149)와 같은 하나 이상의 원격 컴퓨터와의 논리적 연결을 사용해서 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(149)는 다른 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 오직 메모리 저장 장치(150)만이 도 6에 도시되었지만 통상적으로 개인용 컴퓨터(120)와 관련해서 상기에 개시되는 구성요소의 전부 또는 많은 부분을 포함한다. 도 6에 도시되는 논리적 연결은 LAN(local area network; 151) 및 WAN(wide area network; 152)을 포함한다. 이러한 네트워킹 환경은 사무실, 기업형 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적이다.Personal computer 120 may operate in a network environment using a logical connection with one or more remote computers, such as remote computer 149. The remote computer 149 may be another personal computer, server, router, network PC, peer device or other common network node, with only memory storage 150 shown in FIG. 6 but typically associated with the personal computer 120. To include all or a large portion of the components disclosed above. The logical connection shown in FIG. 6 includes a local area network (LAN) 151 and a wide area network (WAN) 152. Such networking environments are commonplace in offices, enterprise computer networks, intranets and the Internet.

LAN 네트워킹 환경에서 사용될 때, 개인용 컴퓨터(120)는 네트워크 인터페이스 또는 아답터(153)를 통해 LAN(151)과 연결된다. WAN 네트워킹 환경에서 사용될 때, 개인용 컴퓨터(120)는 통상적으로 모뎀(154) 또는 인터넷과 같은 WAN(152)을 통해 통신을 설정하는 다른 수단을 포함한다. 내장형 또는 외장형이 될 수 있는 모뎀(154)은 직렬 포트 인터페이스(146)를 통해 시스템 버스(123)에 연결된다. 네트워크 환경에서, 개인용 컴퓨터(120) 또는 이의 부분과 관련하여 개시된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 연결은 예시적이고 컴퓨터 사이의 통신 링크 설정을 위한 다른 수단이 사용될 수 있다는 것을 이해할 수 있다.When used in a LAN networking environment, the personal computer 120 is connected to the LAN 151 via a network interface or adapter 153. When used in a WAN networking environment, the personal computer 120 typically includes a modem 154 or other means for establishing communications over the WAN 152, such as the Internet. The modem 154, which may be internal or external, is connected to the system bus 123 via the serial port interface 146. In a networked environment, program modules disclosed in connection with personal computer 120 or portions thereof may be stored in a remote memory storage device. It is to be understood that the network connections shown are exemplary and other means for establishing a communication link between the computers can be used.

구조적인 태양 및/또는 방법론적인 동작과 관련된 언어로 주요 발명이 개시되었지만, 첨부된 청구항에 정의된 주요발명이 상기에 개시된 특정한 태양 또는 동작에 한정될 필요가 없다는 것을 이해할 수 있다. 더 나아가, 상기에 개시된 특정한 태양 및 동작은 청구항을 구현하는 예시적인 형식으로서 개시된다. While the subject invention has been disclosed in language related to structural aspects and / or methodological acts, it is to be understood that the subject invention defined in the appended claims need not be limited to the specific aspects or acts disclosed above. Moreover, the specific aspects and acts disclosed above are disclosed as example forms of implementing the claims.

Claims (20)

애플리케이션(10)을 실행하는 제1 플랫폼을 가지는 제1 컴퓨팅 장치; 및A first computing device having a first platform to execute an application 10; And 상기 애플리케이션을 실행하는 제2 플랫폼을 가지고 상기 제1 컴퓨팅 장치(30)와 통신하는 제2 컴퓨팅 장치A second computing device in communication with the first computing device 30 having a second platform to execute the application 를 포함하고,Including, 상기 제2 플랫폼은 상기 제1 플랫폼과 상이하고, 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는 모두 상기 애플리케이션과 실시간으로 온라인 상호작용(interact online)하도록 동작할 수 있는 크로스-플랫폼 시스템.The second platform is different from the first platform, and both the first computing device and the second computing device are operable to interact online with the application in real time. 제1항에 있어서,The method of claim 1, 상기 애플리케이션은 게임 타이틀(200)인 크로스-플랫폼 시스템.The application is a game title (200) cross-platform system. 제1항에 있어서,The method of claim 1, 상기 제1 컴퓨팅 장치는 게임 콘솔(10)이고 상기 제2 컴퓨팅 장치는 범용 컴퓨팅 장치(30)인 크로스-플랫폼 시스템.The first computing device is a game console (10) and the second computing device is a general purpose computing device (30). 제3항에 있어서,The method of claim 3, 상기 게임 콘솔은 상기 범용 컴퓨팅 장치로 포팅되는 네트워크 스택 프로토콜(22, 23)을 가지는 크로스-플랫폼 시스템.The game console has a network stack protocol (22, 23) ported to the general purpose computing device. 제1항에 있어서,The method of claim 1, 상기 제1 컴퓨팅 장치 및 제2 통신 장치는 네트워크(520)를 통해 상호 간에 직접적으로 통신하는 크로스-플랫폼 시스템.And the first computing device and the second communication device communicate directly with each other via a network (520). 제1항에 있어서,The method of claim 1, 상기 제1 컴퓨팅 장치 및 상기 제2 통신 장치는 클리어링하우스(clearinghouse; 20)를 통해 상호 간에 직접적으로 통신하는 크로스-플랫폼 시스템.Wherein the first computing device and the second communication device are in direct communication with each other through a clearinghouse (20). 제6항에 있어서,The method of claim 6, 상기 클리어링하우스는 멀티플레이어 게임 및 컨텐츠 배포 서비스(content delivery service) 또는 시스템(420, 430)을 포함하는 크로스-플랫폼 시스템.The clearinghouse includes a multiplayer game and a content delivery service or system (420, 430). 제6항에 있어서,The method of claim 6, 상기 클리어링하우스는 상기 제1 컴퓨팅 장치의 유형 및 상기 제2 컴퓨팅 장치의 유형을 확인(420)하도록 동작할 수 있는 크로스-플랫폼 시스템. Wherein the clearinghouse is operable to identify (420) the type of the first computing device and the type of the second computing device. 애플리케이션(10)을 실행하는 제1 플랫폼을 가지는 제1 컴퓨팅 장치를 클리어링하우스(20)와 연결하는 단계; 및Connecting the first computing device having the first platform to execute the application 10 with the clearinghouse 20; And 상기 애플리케이션(30)을 실행하는 제2 플랫폼을 가지는 제2 컴퓨팅 장치를 상기 클리어링하우스(20)와 연결하는 단계Connecting a second computing device having a second platform to run the application 30 with the clearinghouse 20 를 포함하고,Including, 상기 제2 플랫폼은 상기 제1 플랫폼과 상이하고, 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는 모두 상기 애플리케이션과 실시간으로 온라인 상호작용하도록 동작할 수 있는 크로스-플랫폼 통신 방법.The second platform is different from the first platform, and both the first computing device and the second computing device are operable to interact online with the application in real time. 제9항에 있어서,The method of claim 9, 상기 클리어링하우스(420)와 연결하는 단계 이전에 상기 제1 컴퓨팅 장치를 인증하는 단계를 더 포함하는 크로스-플랫폼 통신 방법.Authenticating the first computing device prior to connecting with the clearinghouse (420). 제10항에 있어서,The method of claim 10, 상기 제1 컴퓨팅 장치를 인증하는 단계는,Authenticating the first computing device comprises: 상기 제1 컴퓨팅 장치를 인증 서버 및 키 서버로 로깅하는 단계(420); 및Logging (420) the first computing device to an authentication server and a key server; And 클리어링 하우스 티켓(425) 및 포인터(427)를 상기 제1 컴퓨팅 장치에 제공하는 단계를 포함하는 크로스-플랫폼 통신 방법.Providing a clearing house ticket (425) and a pointer (427) to the first computing device. 제11항에 있어서,The method of claim 11, 상기 연결(400, 430)은 상기 클리어링하우스 티켓(425) 및 상기 포인터(427)에 응답하여 수행되는 크로스-플랫폼 통신 방법.The connection (400, 430) is performed in response to the clearinghouse ticket (425) and the pointer (427). 제9항에 있어서,The method of claim 9, 상기 애플리케이션은 게임 타이틀(200)인 크로스-플랫폼 통신 방법.The application is a game title (200) cross-platform communication method. 제9항에 있어서,The method of claim 9, 상기 제1 컴퓨팅 장치는 게임 콘솔(10)이고 상기 제2 컴퓨팅 장치는 범용 컴퓨팅 장치(30)인 크로스-플랫폼 통신 방법.Wherein said first computing device is a game console (10) and said second computing device is a general purpose computing device (30). 제9항에 있어서,The method of claim 9, 상기 클리어링하우스는 멀티플레이어 게임 및 컨텐츠 배포 서비스 또는 시스템(420, 430)인 크로스-플랫폼 통신 방법.The clearinghouse is a multiplayer game and content distribution service or system (420, 430). 제1 컴퓨팅 장치(500)로부터 제2 컴퓨팅 장치(550)로 사용가능한 요청(505)을 브로드캐스팅(broadcasting)하는 단계 - 상기 제1 컴퓨팅 장치는 제1 플랫폼을 가지고 상기 제2 컴퓨팅 장치는 상기 제1 플랫폼과 상이한 제2 플랫폼을 가짐 -;Broadcasting a request 505 usable from the first computing device 500 to the second computing device 550, wherein the first computing device has a first platform and the second computing device is the first computing device. Having a second platform different from one platform; 상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치를 직접 연결하는 단계(515); 및Directly connecting (515) the first computing device and the second computing device; And 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치가 모두 상기 애플리케이션과 실시간으로 온라인 상호작용하도록 동작할 수 있도록 애플리케이션을 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치 상에서 실행하는 단계(520)Executing (520) an application on the first computing device and the second computing device such that both the first computing device and the second computing device are operable to interact online in real time with the application. 를 포함하는 크로스-플랫폼 통신 방법.Cross-platform communication method comprising a. 제16항에 있어서,The method of claim 16, 상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치를 연결하는 단계 이전에 상기 제1 컴퓨팅 장치가 세션 키(session key)를 상기 제2 컴퓨팅 장치로 전송(515)하는 크로스-플랫폼 통신 방법. And wherein the first computing device sends (515) a session key to the second computing device prior to connecting the first computing device and the second computing device. 제16항에 있어서,The method of claim 16, 상기 애플리케이션은 게임 타이틀(510)인 크로스-플랫폼 통신 방법. The application is a game title (510). 제16항에 있어서,The method of claim 16, 상기 제1 컴퓨팅 장치는 게임 콘솔(10)이고 상기 제2 컴퓨팅 장치는 범용 컴퓨팅 장치(30)인 크로스-플랫폼 통신 방법.Wherein said first computing device is a game console (10) and said second computing device is a general purpose computing device (30). 제16항에 있어서,The method of claim 16, 상기 제1 컴퓨팅 장치와 상기 제2 컴퓨팅 장치는 상호 간에 유니캐스트(520)하는 크로스-플랫폼 통신 방법.And the first computing device and the second computing device are unicast (520) to each other.
KR1020097018515A 2007-03-13 2008-02-29 Secured cross platform networked multiplayer communication and game play KR20090118955A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/717,387 US20080227548A1 (en) 2007-03-13 2007-03-13 Secured cross platform networked multiplayer communication and game play
US11/717,387 2007-03-13

Publications (1)

Publication Number Publication Date
KR20090118955A true KR20090118955A (en) 2009-11-18

Family

ID=39759908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018515A KR20090118955A (en) 2007-03-13 2008-02-29 Secured cross platform networked multiplayer communication and game play

Country Status (8)

Country Link
US (1) US20080227548A1 (en)
EP (1) EP2122528A4 (en)
JP (1) JP2010521744A (en)
KR (1) KR20090118955A (en)
CN (1) CN101636741A (en)
CA (1) CA2681006A1 (en)
IL (1) IL200500A0 (en)
WO (1) WO2008112448A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160048811A (en) * 2013-09-06 2016-05-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Verification that particular information is transferred by an application

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008205413A1 (en) * 2007-08-15 2009-03-05 Aristocrat Technologies Australia Pty Limited A Gaming System and a Method of Gaming
CN101635710B (en) * 2009-08-25 2011-08-17 西安西电捷通无线网络通信股份有限公司 Pre-shared-key-based method for controlling secure access to networks and system thereof
US9770654B1 (en) 2009-09-30 2017-09-26 Amazon Technologies, Inc. Cross device operation of games
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US10046241B1 (en) * 2010-11-01 2018-08-14 Ronald Charles Krosky Output production
CN103078788B (en) * 2011-06-27 2015-12-09 北京奇虎科技有限公司 A kind of information interacting method based on application and system
US9182978B2 (en) 2012-03-05 2015-11-10 Microsoft Technology Licensing, Llc Application configuration using binary large objects
US9112935B2 (en) 2012-03-05 2015-08-18 Microsoft Technology Licensing, Llc Manipulating binary large objects
US9704350B1 (en) 2013-03-14 2017-07-11 Harmonix Music Systems, Inc. Musical combat game
JP6535159B2 (en) 2014-08-27 2019-06-26 株式会社スクウェア・エニックス Program, game system, control method and recording medium
US10255083B2 (en) * 2014-09-12 2019-04-09 Ubisoft Entertainment Method and system for unified input in cross-platform streaming applications in cloud computing environments
CN105119918B (en) * 2015-08-21 2019-01-08 腾讯科技(深圳)有限公司 Realize the method and terminal device of application cross-platform interaction
US9813468B2 (en) 2015-09-08 2017-11-07 Microsoft Technology Licensing, Llc Wireless control of streaming computing device

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586257A (en) * 1994-05-05 1996-12-17 Perlman; Stephen G. Network architecture to support multiple site real-time video games
AUPP149998A0 (en) * 1998-01-27 1998-02-19 Aristocrat Leisure Industries Pty Ltd Multi-platform gaming architecture
AU2001241605A1 (en) * 2000-02-17 2001-09-12 Acclaim Entertainment, Inc. Multi-player computer game, system and method
JP2002014821A (en) * 2000-06-29 2002-01-18 Toshiba Corp Server client system and recording medium having application distributing method in the same system recorded thereon
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US7203835B2 (en) * 2001-11-13 2007-04-10 Microsoft Corporation Architecture for manufacturing authenticatable gaming systems
US7031473B2 (en) * 2001-11-13 2006-04-18 Microsoft Corporation Network architecture for secure communications between two console-based gaming systems
US7464272B2 (en) * 2003-09-25 2008-12-09 Microsoft Corporation Server control of peer to peer communications
EP1749367B1 (en) * 2004-05-12 2008-05-07 Togewa Holding AG Method and device for content-based billing in ip-networks
KR100578592B1 (en) * 2004-06-23 2006-05-12 공정배 System and method for providing the different operating system based terminal service client
US20060068911A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Game console communication with a computer
US20060259632A1 (en) * 2005-05-13 2006-11-16 Yahoo! Inc. Redirection and invitation for accessing an online service
KR100809520B1 (en) * 2005-12-08 2008-03-04 한국전자통신연구원 System and method for interworking different platform

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160048811A (en) * 2013-09-06 2016-05-04 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Verification that particular information is transferred by an application

Also Published As

Publication number Publication date
JP2010521744A (en) 2010-06-24
EP2122528A1 (en) 2009-11-25
CA2681006A1 (en) 2008-09-18
CN101636741A (en) 2010-01-27
EP2122528A4 (en) 2013-11-20
US20080227548A1 (en) 2008-09-18
WO2008112448A1 (en) 2008-09-18
IL200500A0 (en) 2010-04-29

Similar Documents

Publication Publication Date Title
KR20090118955A (en) Secured cross platform networked multiplayer communication and game play
RU2527200C2 (en) Apparatus and method of establishing and using backup communication channels
US7803052B2 (en) Discovery and distribution of game session information
US7543064B2 (en) Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
KR101130495B1 (en) Limiting interaction between parties in a networked session
US8289867B2 (en) Message routing mechanism for communication networks
EP1475938B1 (en) Web access to secure data
EP2246792B1 (en) Methods and systems for configuration and dynamically switching between network communication architectures
US6152824A (en) Online gaming architecture
US7857701B2 (en) Silent sign-in for offline games
EP1519531A2 (en) Server control of peer to peer communications
EP2635356B1 (en) Detecting lag switch cheating in game
KR102622282B1 (en) Two-way packet exchange method through node path
US20060193283A1 (en) Data distribution by proxy
EP2540059A1 (en) Apparatus and method for matching users for online sessions
WO2011126504A1 (en) Apparatus and method for inviting users to online sessions
WO2008121480A1 (en) Online gaming authentication
US9270570B2 (en) Remote message routing device and methods thereof
CN114244602B (en) Multi-user online network service system, method, device and medium
US11992755B2 (en) System and method for managing transactions in a multiplayer network gaming environment
EP2115609B1 (en) Transfer of content to closed systems
US20090181772A1 (en) Untrusted gaming system access to online gaming service
JP4583078B2 (en) Limiting conversations between parties in networked sessions
CN107968773B (en) Method and system for realizing data security and integrity
CN116059644A (en) Game data processing method and device, storage medium and electronic equipment

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid