WO2008112448A1 - 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
WO2008112448A1
WO2008112448A1 PCT/US2008/055573 US2008055573W WO2008112448A1 WO 2008112448 A1 WO2008112448 A1 WO 2008112448A1 US 2008055573 W US2008055573 W US 2008055573W WO 2008112448 A1 WO2008112448 A1 WO 2008112448A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing device
platform
clearinghouse
application
game
Prior art date
Application number
PCT/US2008/055573
Other languages
French (fr)
Inventor
Kareem Ahmad Choudhry
Martin J. Sleeman
Brian Andrew Moore
Robert Sanfilippo
Vance O'neill
Daniel Caiafa
Original Assignee
Microsoft Corporation
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 Microsoft Corporation filed Critical Microsoft Corporation
Priority to JP2009553683A priority Critical patent/JP2010521744A/en
Priority to EP08731184.1A priority patent/EP2122528A4/en
Priority to CA002681006A priority patent/CA2681006A1/en
Publication of WO2008112448A1 publication Critical patent/WO2008112448A1/en
Priority to IL200500A priority patent/IL200500A0/en

Links

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/00Systems or methods specially adapted for 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

Definitions

  • Xbox LiveTM is an online multiplayer gaming and content delivery system created and operated by Microsoft Corporation.
  • Microsoft's Live AnywhereTM enables a variety of non-Xbox platforms such as a PC and mobile phones to connect to Xbox Live, though with lesser functionality.
  • cross-platform play is not available, such that PC players cannot compete against Xbox players.
  • 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, such as a PC.
  • a game player on the gaming console may play online with a game player on a PC.
  • the gaming console may securely communicate with the general purpose computing device either via a clearinghouse or directly via a network or system link connection, for example.
  • the stack and ports are set to accommodate the cross-platform features. Additionally, a secure key exchange is provided, as well as big-endian and little-endian byte ordering.
  • Figure 1 is a block diagram of an exemplary cross-platform networked system.
  • Figure 2 is a block diagram of another exemplary cross-platform networked system.
  • Figure 3 is a flow diagram of an example porting technique.
  • Figure 4 is a diagram of an example key exchange process for a clearinghouse embodiment.
  • Figure 5 is a diagram of an example key exchange process for a system link embodiment.
  • Figure 6 depicts an exemplary operating environment.
  • FIG. 1 is a block diagram of an exemplary cross-platform system in which a gaming console 10 is networked to a general purpose computing device 30, via a clearinghouse 20.
  • the gaming console 10 may be any computing device adapted for online gaming.
  • the gaming console 10 may be a personal computer (PC) loaded with one or more online game titles.
  • the gaming console 10 may be a handheld device, and may be enabled for use with one or more game titles.
  • a game title may be a discrete application that may be loaded and run on the gaming console 10.
  • the game title may be stored on a medium readable by the gaming console 10, such as a CD, DVD, game cartridge, or the like.
  • a user may possess a number of game titles.
  • the user may load and run an individual game title onto the gaming console 10 to play an online game with other users that have loaded and run the same game title on their respective gaming console or computing device.
  • the gaming console 10 is desirably a game-specific console, such as Microsoft Corporation's XboxTM for example, and the general purpose computing device 30 is desirably a PC, handheld device, or mobile phone, for example.
  • the clearinghouse 20 may be an online multiplayer gaming and content delivery service or system, for example, such as Xbox LiveTM.
  • the gaming console 10 and the computing device 30 may each be in communication with the clearinghouse 20 via the internet or another network, for example.
  • the clearinghouse 20 desirably has its own network stack protocol 22 that allows for secure internet access.
  • the network stack protocol 22 described further below, is used by the gaming console 10, and may be ported to the computing device 30, such that the computing device 30 has code that has the same protocol as the clearinghouse 20.
  • the protocol can talk cross-platform between the gaming console 20 and the computing device 30.
  • a key exchange that includes platform type (e.g., gaming console, PC, etc.) so that trust can be achieved.
  • the platform type may be included in the key exchange message, and may be sent through the clearinghouse 20 which verifies that the device is a gaming console or a PC, for example. Key exchange is described further below.
  • FIG 2 is a block diagram of an exemplary system in which a gaming console 10 is networked to a general purpose computing device 30, not via a clearinghouse 20 as in Figure 1 , but directly via a system link or local area network (LAN) connection, for example.
  • a gaming console 10 is networked to a general purpose computing device 30, not via a clearinghouse 20 as in Figure 1 , but directly via a system link or local area network (LAN) connection, for example.
  • LAN local area network
  • System link allows gaming consoles to connect directly to each other without having to go through the clearinghouse.
  • the protocol for establishing the connection is different from establishing a connection to a console via the clearinghouse. Instead of going through the clearinghouse, the console sends a broadcast packet out and awaits a response.
  • This means that system link will work on a subnet and will not work across any type of router unless it is configured to route broadcast traffic.
  • the broadcast packets are encrypted using a shared (per game title) key.
  • the key structure may accommodate a flag that indicates cross-platform play.
  • a user of a software application e.g., game or title
  • a software application running at the gaming console
  • a game player on a gaming console may play online with a game player on a PC.
  • FIG. 1 Although one gaming console 10 and one computing device 30 are shown in Figures 1 and 2, it is contemplated that multiple consoles 10 and computing devices 30 may be networked together, via a clearinghouse, system link, LAN, or other means.
  • each process or application may need its own broadcast port and perhaps a different game data port.
  • FIG. 3 is a flow diagram of an example porting technique in a system link configuration.
  • a game title or other application is activated on a general purpose computing device.
  • the computing device determines which port to use. The port may be based on the game title or application that has been activated, or may be set by a user.
  • the computing device sets the port accordingly.
  • Ethernet level addressing is typically used in gaming console broadcasting. That is, packets are routed directly to the MAC address of the receiver below the IP level. Therefore, the address in the IP header is not used and does not matter, so it is desirably set to a particular address (e.g., 0.0.0.1) and sent from a particular port (e.g., port 3074).
  • a particular address e.g., 0.0.0.1
  • the port used in the computing device for cross-platform networked game play may be different from the port using on a gaming console (e.g., port 3074). It is contemplated that the port on the gaming console may vary depending on game title or user configuration, for example.
  • cross-platform communication is desirably only enabled if a cross-platform privilege bit is set in the game's executable header.
  • the bit that may be set indicates that the game will use IP addressing for system link instead of Ethernet addressing. This will allow system link between a gaming console and a general purpose computing device. If the bit is not set, the initial key exchange between the gaming console and the computing device will be rejected.
  • cross-platform communication is desirably always enabled.
  • APIs are described that can be called from the application or game's code.
  • the application or game can fix the port it uses in its code or expose a user interface for the user to view and modify the port used.
  • Setting the system link port desirably does not affect which port is used for connectivity through a clearinghouse, which remains as 3074, for example, or the port negotiated with the device if it does not allow 3074.
  • An example API is:
  • the parameter wSystemLinkPort refers to the port number to use for system link broadcasts and data.
  • the API returns zero if successful, and an error code otherwise.
  • XNetSetSystemLinkPort fails unless the XEX PRIVILEGE CROSSPLATFORM SYSTEM LINK bit is set in the game's executable header. "Address in use", for example, may be returned if the port chosen is in use by the system.
  • port 3074 is the default port if XNetSetSystemLinkPort has not been called. Desirably, XNetSetSystemLinkPort is called before startup of the application or game, otherwise the application or game will fail.
  • XNetSetSystemLinkPort If XNetSetSystemLinkPort succeeds, the set port is guaranteed to be available for binding when the application or game is started. That is, XNetSetSystemLinkPort locks the port for use so there is no possibility the port being retained by another process between calling XNetSetSystemLinkPort and the startup of the application or game.
  • the port number is not persisted to disk and is stored globally for use until the application or game ends.
  • the system link port is reset (e.g., back to 3074).
  • the parameter pwSystemLinkPort is the port number currently set for system link broadcasts and data.
  • Secure key exchange is desirably performed.
  • an example connection protocol desirably requires that all connections between the clients (gaming consoles and general purpose computing devices) require a key exchange. Packets are inspected to determine whether they were from a general purpose computing device. If so, that information is indicated to the clearinghouse or other destination so that it can handle the data differently, if desired.
  • FIG. 4 is a diagram of an example key exchange process for a clearinghouse embodiment, and shows a client 400, such as a game client, in communication with an authentication service 410, a clearinghouse key server 420, and a clearinghouse gateway server 430.
  • the game client 400 sends login credentials 405 to the authentication service 410.
  • the authentication service 410 responds to the client 400 with an authentication ticket 415.
  • the game client 400 presents the authentication ticket 415 to the clearinghouse key server 420.
  • the clearinghouse key server 420 responds with a clearinghouse ticket 425 and a pointer 427 to the clearinghouse gateway server 430.
  • the game client 400 may then connect to the clearinghouse gateway server 430 to use the clearinghouse services.
  • the key exchange messages desirably include the port number that the machine running the game should use to connect to the clearinghouse.
  • key exchange desirably uses a flag in the key that indicates a cross-platform connection.
  • Figure 5 is a diagram of an example key exchange process for a system link embodiment.
  • Figure 5 shows a game client 500 that acts as a host and another game client 550.
  • the clients may be in communication over a LAN subnet, for example. Additional game clients are contemplated on the network, although they are not shown.
  • the host game client 500 broadcasts its existence and availability 505.
  • the game client 550 decrypts the broadcast and responds with a broadcast to join the game 510.
  • the host game client 500 accepts the join request and broadcasts the game session key 515.
  • the game clients 500, 550 desirably unicast with each other 520 to carry out the game session.
  • unicast is the sending of information packets to a single destination. Desirably, all broadcasts are encrypted with the title specific key, and all unicasts are encrypted with the game session specific key.
  • endianness is the ordering used to represent some kind of data as a sequence of smaller units. Typical cases are the order in which integer values are stored as bytes in computer memory (relative to a given memory addressing scheme) and the transmission order over a network. Regarding bytes, endianness is also referred to as byte order.
  • All computer architectures are big-endian or little-endian. Big-endian architectures are found in Microsoft's Xbox and IBM's Power PC, for example. Intel x86 processors (and their clones) use the little-endian format.
  • FIG. 6 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the present invention and/or portions thereof may be implemented.
  • the invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a client workstation or a server.
  • program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types.
  • the invention and/or portions thereof may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers and the like.
  • 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.
  • program modules may be located in both local and remote memory storage devices.
  • an exemplary general purpose computing system includes a conventional personal computer 120 or the like, including a processing unit 121, a system memory 122, and a system bus 123 that couples various system components including the system memory to the processing unit 121.
  • the system bus 123 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • the system memory includes read-only memory (ROM) 124 and random access memory (RAM) 125.
  • ROM read-only memory
  • RAM random access memory
  • a basic input/output system 126 (BIOS) containing the basic routines that help to transfer information between elements within the personal computer 120, such as during start-up, is stored in ROM 124.
  • the personal computer 120 may further include a hard disk drive 127 for reading from and writing to a hard disk (not shown), a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to a removable optical disk 131 such as a CD-ROM or other optical media.
  • the hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive interface 133, and an optical drive interface 134, respectively.
  • 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.
  • exemplary environment described herein employs a hard disk, a removable magnetic disk 129, and a removable optical disk 131
  • other types of computer readable media which can store data that is accessible by a computer may also be used in the exemplary operating environment.
  • Such other types of media include a magnetic cassette, a flash memory card, a digital video disk, a Bernoulli cartridge, a random access memory (RAM), a read-only memory (ROM), and the like.
  • a number of program modules may be stored on the hard disk, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137 and program data 138.
  • a user may enter commands and information into the personal computer 120 through input devices such as a keyboard 1 40 and pointing device 142.
  • Other input devices may include a microphone, joystick, game pad, satellite disk, scanner, or the like.
  • serial port interface 146 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB).
  • a 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.
  • a personal computer typically includes other peripheral output devices (not shown), such as speakers and printers.
  • the exemplary system of Figure 6 also includes a host adapter 155, a Small Computer System Interface (SCSI) bus 156, and an external storage device 162 connected to the SCSI bus 156.
  • SCSI Small Computer System Interface
  • the personal computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 149.
  • the remote computer 149 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 120, although only a memory storage device 150 has been illustrated in Figure 6.
  • the logical connections depicted in Figure 6 include a local area network (LAN) 151 and a wide area network (WAN) 152.
  • LAN local area network
  • WAN wide area network
  • the personal computer 120 When used in a LAN networking environment, the personal computer 120 is connected to the LAN 151 through 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 wide area network 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.
  • program modules depicted relative to the personal computer 120, or portions thereof may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

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 GAME PLAY
BACKGROUND
[0001] Software applications, such as first-person shooter (FPS) games, are available for both gaming consoles (e.g., Microsoft Corporation's Xbox™) and personal computers (PCs). However, gaming consoles have not been able to communicate across a network connection with PCs. Therefore, for example, gaming consoles have not been able to play online video games with PCs.
[0002] Xbox Live™ is an online multiplayer gaming and content delivery system created and operated by Microsoft Corporation. Microsoft's Live Anywhere™ enables a variety of non-Xbox platforms such as a PC and mobile phones to connect to Xbox Live, though with lesser functionality. For example, cross-platform play is not available, such that PC players cannot compete against Xbox players.
SUMMARY
[0003] 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, such as a PC. Thus, a game player on the gaming console may play online with a game player on a PC. The gaming console may securely communicate with the general purpose computing device either via a clearinghouse or directly via a network or system link connection, for example.
[0004] The stack and ports are set to accommodate the cross-platform features. Additionally, a secure key exchange is provided, as well as big-endian and little-endian byte ordering.
[0005] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 is a block diagram of an exemplary cross-platform networked system.
[0007] Figure 2 is a block diagram of another exemplary cross-platform networked system.
[0008] Figure 3 is a flow diagram of an example porting technique.
[0009] Figure 4 is a diagram of an example key exchange process for a clearinghouse embodiment.
[0010] Figure 5 is a diagram of an example key exchange process for a system link embodiment.
[0011] Figure 6 depicts an exemplary operating environment.
DETAILED DESCRIPTION
[0012] Figure 1 is a block diagram of an exemplary cross-platform system in which a gaming console 10 is networked to a general purpose computing device 30, via a clearinghouse 20. The gaming console 10 may be any computing device adapted for online gaming. For example, the gaming console 10 may be a personal computer (PC) loaded with one or more online game titles. The gaming console 10 may be a handheld device, and may be enabled for use with one or more game titles. A game title may be a discrete application that may be loaded and run on the gaming console 10. The game title may be stored on a medium readable by the gaming console 10, such as a CD, DVD, game cartridge, or the like.
[0013] Typically, a user may possess a number of game titles. The user may load and run an individual game title onto the gaming console 10 to play an online game with other users that have loaded and run the same game title on their respective gaming console or computing device.
[0014] The gaming console 10 is desirably a game-specific console, such as Microsoft Corporation's Xbox™ for example, and the general purpose computing device 30 is desirably a PC, handheld device, or mobile phone, for example. The clearinghouse 20 may be an online multiplayer gaming and content delivery service or system, for example, such as Xbox Live™. The gaming console 10 and the computing device 30 may each be in communication with the clearinghouse 20 via the internet or another network, for example.
[0015] The clearinghouse 20 desirably has its own network stack protocol 22 that allows for secure internet access. The network stack protocol 22, described further below, is used by the gaming console 10, and may be ported to the computing device 30, such that the computing device 30 has code that has the same protocol as the clearinghouse 20. The protocol can talk cross-platform between the gaming console 20 and the computing device 30.
[0016] There is a key exchange that includes platform type (e.g., gaming console, PC, etc.) so that trust can be achieved. The platform type may be included in the key exchange message, and may be sent through the clearinghouse 20 which verifies that the device is a gaming console or a PC, for example. Key exchange is described further below.
[0017] Figure 2 is a block diagram of an exemplary system in which a gaming console 10 is networked to a general purpose computing device 30, not via a clearinghouse 20 as in Figure 1 , but directly via a system link or local area network (LAN) connection, for example.
[0018] System link allows gaming consoles to connect directly to each other without having to go through the clearinghouse. The protocol for establishing the connection is different from establishing a connection to a console via the clearinghouse. Instead of going through the clearinghouse, the console sends a broadcast packet out and awaits a response. This means that system link will work on a subnet and will not work across any type of router unless it is configured to route broadcast traffic. Desirably, the broadcast packets are encrypted using a shared (per game title) key. The key structure may accommodate a flag that indicates cross-platform play.
[0019] Thus, a user of a software application (e.g., game or title) running at the gaming console may interact in real-time with a user of the same software application running at the computing device. As a result, a game player on a gaming console may play online with a game player on a PC.
[0020] Although one gaming console 10 and one computing device 30 are shown in Figures 1 and 2, it is contemplated that multiple consoles 10 and computing devices 30 may be networked together, via a clearinghouse, system link, LAN, or other means.
[0021] On the general purpose computing device, multiple processes may run simultaneously, such as when multiple dedicated server instances are running, or when a gaming dashboard is running as a separate application. Therefore, each process or application may need its own broadcast port and perhaps a different game data port.
[0022] An IP broadcast is transmitted to a specific port of the general purpose computing device, which can be title specific and possibly configured by the user. Thus, each title can default to a port of its choice or could offer the user a choice of port to use. [0023] Figure 3 is a flow diagram of an example porting technique in a system link configuration. At step 200, a game title or other application is activated on a general purpose computing device. At step 210, the computing device determines which port to use. The port may be based on the game title or application that has been activated, or may be set by a user. At step 220, the computing device sets the port accordingly.
[0024] Ethernet level addressing is typically used in gaming console broadcasting. That is, packets are routed directly to the MAC address of the receiver below the IP level. Therefore, the address in the IP header is not used and does not matter, so it is desirably set to a particular address (e.g., 0.0.0.1) and sent from a particular port (e.g., port 3074). Thus, the port used in the computing device for cross-platform networked game play may be different from the port using on a gaming console (e.g., port 3074). It is contemplated that the port on the gaming console may vary depending on game title or user configuration, for example.
[0025] On a gaming console, cross-platform communication is desirably only enabled if a cross-platform privilege bit is set in the game's executable header. The bit that may be set indicates that the game will use IP addressing for system link instead of Ethernet addressing. This will allow system link between a gaming console and a general purpose computing device. If the bit is not set, the initial key exchange between the gaming console and the computing device will be rejected.
[0026] On the computing device, cross-platform communication is desirably always enabled.
[0027] To set the port to use for system link broadcasts, APIs are described that can be called from the application or game's code. The application or game can fix the port it uses in its code or expose a user interface for the user to view and modify the port used. Setting the system link port desirably does not affect which port is used for connectivity through a clearinghouse, which remains as 3074, for example, or the port negotiated with the device if it does not allow 3074.
[0028] An example API is:
XNetSetSystemLinkPort
INT WSAAPI XNetSetSystemLinkPort( WORD wSystemLinkPort
)• [0029] The parameter wSystemLinkPort refers to the port number to use for system link broadcasts and data. The API returns zero if successful, and an error code otherwise. For example, XNetSetSystemLinkPort fails unless the XEX PRIVILEGE CROSSPLATFORM SYSTEM LINK bit is set in the game's executable header. "Address in use", for example, may be returned if the port chosen is in use by the system.
[0030] In one example, port 3074 is the default port if XNetSetSystemLinkPort has not been called. Desirably, XNetSetSystemLinkPort is called before startup of the application or game, otherwise the application or game will fail.
[0031] If XNetSetSystemLinkPort succeeds, the set port is guaranteed to be available for binding when the application or game is started. That is, XNetSetSystemLinkPort locks the port for use so there is no possibility the port being retained by another process between calling XNetSetSystemLinkPort and the startup of the application or game.
[0032] The port number is not persisted to disk and is stored globally for use until the application or game ends. When an application or game quits, the system link port is reset (e.g., back to 3074).
[0033] Another API is described that gets the system link port:
XNetGetSystemLinkPort
INT WSAAPI XNetGetSystemLinkPort(
WORD* p wSystemLinkPort )•
[0034] The parameter pwSystemLinkPort is the port number currently set for system link broadcasts and data.
[0035] The API returns zero if successful, and an error code otherwise. XNetGetSystemLinkPort fails unless the
XEX PRIVILEGE CROSSPLATFORM SYSTEM LINK bit is set in the game's executable header.
[0036] Secure key exchange is desirably performed. For embodiments which use a clearinghouse, an example connection protocol desirably requires that all connections between the clients (gaming consoles and general purpose computing devices) require a key exchange. Packets are inspected to determine whether they were from a general purpose computing device. If so, that information is indicated to the clearinghouse or other destination so that it can handle the data differently, if desired.
[0037] Figure 4 is a diagram of an example key exchange process for a clearinghouse embodiment, and shows a client 400, such as a game client, in communication with an authentication service 410, a clearinghouse key server 420, and a clearinghouse gateway server 430.
[0038] The game client 400 sends login credentials 405 to the authentication service 410. The authentication service 410 responds to the client 400 with an authentication ticket 415. The game client 400 presents the authentication ticket 415 to the clearinghouse key server 420. The clearinghouse key server 420 responds with a clearinghouse ticket 425 and a pointer 427 to the clearinghouse gateway server 430. The game client 400 may then connect to the clearinghouse gateway server 430 to use the clearinghouse services.
[0039] The key exchange messages desirably include the port number that the machine running the game should use to connect to the clearinghouse.
[0040] In embodiments that do not use a clearinghouse (e.g., the system link embodiments), such as that described with respect to Figure 5, key exchange desirably uses a flag in the key that indicates a cross-platform connection.
[0041] Figure 5 is a diagram of an example key exchange process for a system link embodiment. Figure 5 shows a game client 500 that acts as a host and another game client 550. The clients may be in communication over a LAN subnet, for example. Additional game clients are contemplated on the network, although they are not shown.
[0042] The host game client 500 broadcasts its existence and availability 505. The game client 550 decrypts the broadcast and responds with a broadcast to join the game 510. The host game client 500 accepts the join request and broadcasts the game session key 515. The game clients 500, 550 desirably unicast with each other 520 to carry out the game session. In computer networks, unicast is the sending of information packets to a single destination. Desirably, all broadcasts are encrypted with the title specific key, and all unicasts are encrypted with the game session specific key.
[0043] Regarding byte ordering, in computing, endianness is the ordering used to represent some kind of data as a sequence of smaller units. Typical cases are the order in which integer values are stored as bytes in computer memory (relative to a given memory addressing scheme) and the transmission order over a network. Regarding bytes, endianness is also referred to as byte order.
[0044] Most computer processors simply store integers as sequences of bytes, so that, conceptually, the encoded value can be obtained by simple concatenation. For an n- byte integer value this allows n! possible representations (one for each byte permutation). The two most common of them are increasing numeric significance with increasing memory addresses, known as little-endian, and its opposite, called big-endian.
[0045] All computer architectures are big-endian or little-endian. Big-endian architectures are found in Microsoft's Xbox and IBM's Power PC, for example. Intel x86 processors (and their clones) use the little-endian format.
[0046] Figure 6 and the following discussion are intended to provide a brief general description of a suitable computing environment in which the present invention and/or portions thereof may be implemented. Although not required, the invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a client workstation or a server. Generally, program modules include routines, programs, objects, components, data structures and the like that perform particular tasks or implement particular abstract data types. Moreover, it should be appreciated that the invention and/or portions thereof may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers and the like. 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.
[0047] As shown in Figure 6, an exemplary general purpose computing system includes a conventional personal computer 120 or the like, including a processing unit 121, a system memory 122, and a system bus 123 that couples various system components including the system memory to the processing unit 121. The system bus 123 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read-only memory (ROM) 124 and random access memory (RAM) 125. A basic input/output system 126 (BIOS), containing the basic routines that help to transfer information between elements within the personal computer 120, such as during start-up, is stored in ROM 124.
[0048] The personal computer 120 may further include a hard disk drive 127 for reading from and writing to a hard disk (not shown), a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to a removable optical disk 131 such as a CD-ROM or other optical media. The hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive interface 133, and an optical drive interface 134, respectively. 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.
[0049] Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 129, and a removable optical disk 131, it should be appreciated that other types of computer readable media which can store data that is accessible by a computer may also be used in the exemplary operating environment. Such other types of media include a magnetic cassette, a flash memory card, a digital video disk, a Bernoulli cartridge, a random access memory (RAM), a read-only memory (ROM), and the like.
[0050] A number of program modules may be stored on the hard disk, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137 and program data 138. A user may enter commands and information into the personal computer 120 through input devices such as a keyboard 1 40 and pointing device 142. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disk, scanner, or the like. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A 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, a personal computer typically includes other peripheral output devices (not shown), such as speakers and printers. The exemplary system of Figure 6 also includes a host adapter 155, a Small Computer System Interface (SCSI) bus 156, and an external storage device 162 connected to the SCSI bus 156.
[0051] The personal computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 149. The remote computer 149 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 120, although only a memory storage device 150 has been illustrated in Figure 6. The logical connections depicted in Figure 6 include a local area network (LAN) 151 and a wide area network (WAN) 152. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the internet.
[0052] When used in a LAN networking environment, the personal computer 120 is connected to the LAN 151 through 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 wide area network 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 depicted relative to the personal computer 120, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0053] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims

What is Claimed:
1. A cross-platform system, comprising:
a first computing device having a first platform running an application (10); and
a second computing device having a second platform running the application and in communication with the first computing device (30), the second platform being different from the first platform, wherein the first computing device and the second computing device are both operable to interact online in real-time with the application.
2. The system of claim 1, wherein the application is a game title (200).
3. The system of claim 1, wherein the first computing device is a gaming console (10) and the second computing device is a general purpose computing device (30).
4. The system of claim 3, wherein the gaming console has a network stack protocol which is ported to the general purpose computing device (22, 23).
5. The system of claim 1, wherein the first computing device and the second communication device are in communication with each other directly via a network (520).
6. The system of claim 1, wherein the first computing device and the second communication device are in communication with each other directly via a clearinghouse (20).
7. The system of claim 6, wherein the clearinghouse comprises a multiplayer gaming and content delivery service or system (420, 430).
8. The system of claim 6, wherein the clearinghouse is operable to verify the type of the first computing device and the type of the second computing device (420).
9. A method of cross-platform communication, comprising:
a first computing device having a first platform running an application (10) connecting to a clearinghouse (20); and
a second computing device having a second platform running the application (30) connecting to the clearinghouse (20), the second platform being different from the first platform, wherein the first computing device and the second computing device are both operable to interact online in real-time with the application.
10. The method of claim 9, further comprising authenticating the first computing device prior to connecting to the clearinghouse (420).
11. The method of claim 10, wherein authenticating the first computing device comprises:
the first computing device logging into an authentication server and a key server (420); and
providing a clearinghouse ticket (425) and pointer (427) to the first computing device.
12. The method of claim 11, wherein the connecting (400, 430) is performed responsive to the clearinghouse ticket (425) and the pointer (427).
13. The method of claim 9, wherein the application is a game title (200).
14. The method of claim 9, wherein the first computing device is a gaming console (10) and the second computing device is a general purpose computing device (30).
15. The method of claim 9, wherein the clearinghouse comprises a multiplayer gaming and content delivery service or system (420, 430).
16. A method of cross-platform communication, comprising:
broadcasting an availability request (505) from a first computing device (500) to a second computing device (550), the first computing device having a first platform and the second computing device having a second platform different from the first platform;
directly connecting the first computing device and the second computing device (515); and
running an application on the first computing device and the second computing device such that the first computing device and the second computing device are both operable to interact online in real-time with the application (520).
17. The method of claim 16, wherein the first computing device transmits a session key to the second computing device prior to connecting the first computing device and the second computing device (515).
18. The method of claim 16, wherein the application is a game title (510).
19. The method of claim 16, wherein the first computing device is a gaming console (10) and the second computing device is a general purpose computing device (30).
20. The method of claim 16, wherein the first computing device and the second computing device unicast with each other (520).
PCT/US2008/055573 2007-03-13 2008-02-29 Secured cross platform networked multiplayer communication and game play WO2008112448A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009553683A JP2010521744A (en) 2007-03-13 2008-02-29 Secure cross-platform for multiplayer network gameplay
EP08731184.1A EP2122528A4 (en) 2007-03-13 2008-02-29 Secured cross platform networked multiplayer communication and game play
CA002681006A CA2681006A1 (en) 2007-03-13 2008-02-29 Secured cross platform networked multiplayer game play
IL200500A IL200500A0 (en) 2007-03-13 2009-08-20 Secured cross platform networked multiplayer communication and game play

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2008112448A1 true WO2008112448A1 (en) 2008-09-18

Family

ID=39759908

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/055573 WO2008112448A1 (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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078788A (en) * 2011-06-27 2013-05-01 北京奇虎科技有限公司 Information interaction method and information interaction system based on application
US9704350B1 (en) 2013-03-14 2017-07-11 Harmonix Music Systems, Inc. Musical combat game

Families Citing this family (12)

* 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
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
US9645860B2 (en) * 2013-09-06 2017-05-09 Microsoft Technology Licensing, Llc Verification that particular information is transferred by an application
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20050122120A (en) * 2004-06-23 2005-12-28 공정배 System and method for providing the different operating system based terminal service client
KR20070011595A (en) * 2004-05-12 2007-01-24 토게바 홀딩 아게 Method and system for content-based billing in ip networks
KR20070060377A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 An efficient method for virtual environment and on-line games realized on different platforms

Family Cites Families (9)

* 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
CA2400587A1 (en) * 2000-02-17 2001-09-07 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
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
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20070011595A (en) * 2004-05-12 2007-01-24 토게바 홀딩 아게 Method and system for content-based billing in ip networks
KR20050122120A (en) * 2004-06-23 2005-12-28 공정배 System and method for providing the different operating system based terminal service client
KR20070060377A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 An efficient method for virtual environment and on-line games realized on different platforms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2122528A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103078788A (en) * 2011-06-27 2013-05-01 北京奇虎科技有限公司 Information interaction method and information interaction system based on application
US9704350B1 (en) 2013-03-14 2017-07-11 Harmonix Music Systems, Inc. Musical combat game

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2008112448A1 (en) Secured cross platform networked multiplayer communication and game play
EP2503804B1 (en) Apparatus and method for managing peer-to-peer connections between different service providers
US7543064B2 (en) Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US9450855B2 (en) Message routing mechanism for communication networks
US7197049B2 (en) Method for switching protocols transparently in multi-user applications
KR101597295B1 (en) System and method for secure instant messaging
JP5543663B2 (en) Apparatus and method for matching a user to an online session
US8171145B2 (en) System and method for two way communication and controlling content in a game
JP5628998B2 (en) Apparatus and method for inviting a user to an online session
US20100317430A1 (en) Discovery and Distribution of Game Session Information
US20060193283A1 (en) Data distribution by proxy
US8719422B2 (en) Transparent reconnection
US9270570B2 (en) Remote message routing device and methods thereof
WO2008121480A1 (en) Online gaming authentication
WO2011126509A1 (en) Apparatus and method for establishing and utilizing backup communication channels
KR20200018398A (en) Bidirectional packet exchange over node path
EP0909424A1 (en) Communication system and method
JP4452271B2 (en) Multicast communication network system and data transmission / reception method using the same
KR100439197B1 (en) The server data dispersion method which uses a multiplex protocol
AU702015B2 (en) Communication system and method
CN116059644A (en) Game data processing method and device, storage medium and electronic equipment
JP2005184532A (en) Packet sorter, game management center system utilizing the same and packet sorting program

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880008142.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08731184

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008731184

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 200500

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 1020097018515

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2681006

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 2009553683

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE