US20070060373A1 - Data communication system and methods - Google Patents
Data communication system and methods Download PDFInfo
- Publication number
- US20070060373A1 US20070060373A1 US11/519,682 US51968206A US2007060373A1 US 20070060373 A1 US20070060373 A1 US 20070060373A1 US 51968206 A US51968206 A US 51968206A US 2007060373 A1 US2007060373 A1 US 2007060373A1
- Authority
- US
- United States
- Prior art keywords
- game
- game information
- information
- segment
- transmission packet
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/53—Features 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/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/55—Details of game data or player data management
- A63F2300/552—Details 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
Definitions
- the present disclosure relates generally to network communications, and more specifically to a system and method for managing communicative interactions between network elements.
- a network may be characterized by several factors like who can use the network, the type of traffic the network carries, the medium carrying the traffic, the typical nature of the network's connections, and the transmission technology the network uses. For example, one network may be public and carry circuit switched voice traffic while another may be private and carry packet switched data traffic. Whatever the make-up, most networks facilitate the communication of information between at least two nodes, and as such act as communication networks.
- FIG. 1 is a block diagram of a particular embodiment of a network arrangement incorporating teachings of the present disclosure
- FIG. 2 is a block diagram of an alternative particular embodiment of a network arrangement incorporating teachings of the present disclosure
- FIG. 3 is a flow diagram of a particular embodiment of a technique for mixing data packets
- FIG. 4 a flow diagram of a particular embodiment of a technique for mixing data packets
- FIG. 5 is a block diagram of a particular embodiment of a computing device that incorporates teachings of the present disclosure.
- a communicative interaction may be one or more of: intending to send information, sending information, requesting information, receiving information, or receiving a request for information.
- a communicative interaction could be one directional, bi-directional, or multi-directional.
- a communicative interaction could be relatively complex and involve two or more network elements.
- a communicative interaction may be “a conversation” or series of related communications between a client and a server—each network element sending and receiving information to and from the other.
- the network elements involved need not take any specific form.
- a network element may be a node, a piece of hardware, software, firmware, middleware, some other component of a computing system, and/or some combination thereof.
- a system incorporating teachings of the present disclosure may include a processor module that monitors communications between a client program resident on a user machine and a server program resident on a computing device remote from the user.
- the server program may be part of a two-tier architecture that is deployed in a hub and spoke or centralized server configuration.
- the server program may also be utilized in a less centralized model.
- the server program may be implemented as one of two or more client programs that perform server-like functionality.
- the processor module may be utilized to effectively reduce the number of communications actually transmitted between the client program and the server program.
- the processor module may intercept certain client initiated communications intended for the server program, process those communications without server program involvement, and respond to the client program.
- the processor module may make it unnecessary to actually send the original client request to the server.
- a different message one indicating that the original client request has already been handled—may be sent from the processor module to the server.
- processing the communications without burdening the server program and without traversing a portion of the network may help reduce problems such as latency, lag, and loss of data coherency.
- the processor module may also be configured to affect server-to-client communications as well.
- the network arrangement 100 includes a host transmitter device 102 connected to an offload transmitter device 104 .
- the offload transmitter device 104 is connected to a network 108 , which is further connected to a receiving node 110 .
- the offload transmitter device 104 includes a mixing function 106 , while the receiving node 110 includes an unmixing function 112 .
- mixing function 106 may be located at the host transmitter device 102 . Further, the mixing function 106 may be implemented as a processor dongle, a “Lan on Motherboard” processor, etc.
- the unmixing function 112 may also be implemented at the receiving node 110 or in a different location, and may also be implemented as processor dongle, a “Lan on Motherboard” processor, and the like.
- the host transmitter device 102 and the receiving node 110 may be similar or different.
- receiving node 110 may be a local user computer, a laptop, a cellular telephone, a gaming console, a workstation, or some other appropriate device
- host transmitter device 102 may be a server computer, a workstation, a peer of receiving node 110 , or some other appropriate device.
- network 108 may be a wide area network, such as the Internet, a local area network, or some other appropriate network or bus. Units of information, such as information packets and the like, are communicated via the network 108 .
- the network 108 is characterized by a maximum transmission unit (MTU) which describes the largest amount of information that can be communicated in one unit by the network 108 .
- MTU can be expressed as a packet size or other appropriate unit.
- the host transmitter device 102 communicates with the receiving node 110 by sending information via the network 108 .
- the information can be divided into portions, and each information portion may be of different sizes. Further, the information portions provided can be smaller than the MTU for the network 108 .
- the information portions are received at the offload transmitter device 104 , which analyzes the information portions. If an information portion is smaller than the MTU, or other threshold, the offload transmitter device can apply the mixing function 106 to mix portions of received information together.
- the host transmitter device 102 may provide different portions of information from different applications operating at the host transmitter device 102 .
- the offload transmitter device 104 can determine that one or more of the provided portions are smaller than the MTU, and can combine the provided portions into an information unit, such as a transmission packet.
- the transmission packet is communicated to the receiving node 110 via the network 108 .
- the receiving node 110 receives the transmission packet and analyzes it to determine if the packet includes one or more portions of information. If so, the receiving node 110 applies the unmixing function 112 to the transmission packet to separate each portion of information provided by the transmission packet.
- information may be sent efficiently via the network 108 . Further, by placing the mixing function 106 in the offload transmitter device 104 , the processing load and overhead for the host transmitter device can be reduced.
- the network arrangement 200 includes a game server 202 connected to an offload transmitter device 204 .
- the offload transmitter device 204 is connected to a network 208 , which is further connected to a game client 210 .
- the offload transmitter device 204 includes a mixing function 206 , while the game client 210 includes an unmixing function 212 .
- the game server includes a game application 220 and a game networking module 222 .
- the game application 220 generates portions of information, such as player moves 224 and game patch 226 .
- the game server 202 and the game client 210 may communicate with each other via the network 208 .
- game server 202 and the game client 210 may work together to provide a user of game client 210 with an online gaming experience.
- Game client 210 may receive content generated by the game application 220 from game server 202 and may occasionally send requests game server 202 in an effort to affect the content being provided.
- FIG. 2 includes only one device executing a client program. In practice, however, the game server 202 and game application 220 may be providing content to many clients at or near the same time.
- game server 202 may be hosting and serving a massively multiplayer online game (MMOG) environment to hundreds or thousands of users.
- MMOG massively multiplayer online game
- the content that makes up the environment may include, for example, game objects, game players, images, sounds, text, etc. This content may eventually be received and presented to the user of game client 210 via a computer screen, audio speakers, or other appropriate device.
- game client 210 may implement a local game program or client application that performs several tasks including the receipt of content provided by the game server 202 .
- the game client 210 may process certain content and facilitate a user's interaction with the game application 220 .
- a user may input a game interaction request via some user input device associated with game client 210 .
- the input may “tell” the game client 210 to select game objects, move game objects, interact with other game players, and the like.
- the game application 210 may receive the game input request.
- game application 220 may “allow” the request and provide new or altered content based on the allowance. For example, if the game interaction request is to move a game player, the game application 220 can produce the player moves 221 information portion 224 that shows that a player has been moved. In a MMOG environment, the game application 220 may also be tasked with providing the new or altered content to multiple users at multiple locations via network 104 . Information portions such as player moves 224 can be relatively small portions of information that are communicated frequently during game activity, in order to provide the user at the game client 210 with the desired game experience.
- the game application 220 may also generate relatively large portions of information, such as a game patch information portion 226 .
- the game patch 226 can be generated to adjust the client program at the game client 210 , including implementing updated or new game features and content, security features, stability controls, and the like. Other large portions of information can be generated.
- the game application 220 can generate a pre-cache of game data for the game client 210 . This pre-cache can represent game states or other information used to generate subsequent game states at the game client 210 . Such pre-caching can reduce lag or other game experience issues at the game client 210 .
- the large portions of information can be communicated to the game client 210 via the network 208 .
- communication of such large information portions during game activity can interfere with communication of smaller portions of information such as player moves 224 . This can result in distracting events (sometimes called lag) such as game freezes, stuttering, warping, and rubber banding.
- distracting events sometimes called lag
- transmission of large information portions can be postponed until times of lesser game activity, such as on game startup, this can undesirably delay the implementation or use of the information in the large information portions.
- a large information portion can include a large update to the gaming environment for multiple clients. It may be desirable to implement this update during periods of active game activity.
- the mixing function 206 at the offload transmitter device can mix large information portions with small information portions and transmit the combined portions in a transmission packet to the game client 210 .
- the combined portions are unmixed at the game client 210 for processing.
- the offload transmitter device 204 can maintain the appropriate game experience and provide large portions of information to the game client 210 .
- the offload transmitter device 204 can combine the player moves information portion 224 with the game patch information 226 and provide the combined information to the game client 210 .
- the game client 210 can implement the player moves 224 so that the user enjoys the desirable game experience, and also implement the game patch 226 so that the game client 210 includes the latest version of the game client program.
- the mixing function 206 can also break down large portions of information into segments, and combine each segment with smaller portions of information for transmission. This can be useful when the large portions of information exceed the MTU of the network 208 or other bandwidth parameter. For example, the mixing function 206 can determine that the game patch 226 exceeds the MTU for the network 208 , and therefore divide the game patch into segments. One or more of the segments can be mixed with the player moves 224 into a transmission packet. The transmission packet is received at the game client 210 , and the unmixing function 212 unmixes the player moves 224 with the attached segments. The player moves 224 are implemented by the game client 210 , while the data segments are stored.
- the remaining data segments are sent by the offload transmitter device 204 , and the unmixing function 212 reconstructs the game patch 226 from the received and stored data segments. Accordingly, the offload transmitter device 204 is able to transmit large portions of information during periods of active game play activity.
- a flow diagram of a particular embodiment of a method of communicating data is illustrated.
- a communication module determines if a packet has been received. If a packet has been received, the method flow moves to block 304 , and the communication module determines if the received packet can be added to the current transmission packet without exceeding the MTU for an associated network. Other parameters may also be considered, such as the size of any headers or other information that is appended to the transmission packet.
- the method flow moves to block 306 and the received packet is added to the transmission packet.
- the method flow then proceeds to decision block 308 , and the communication module determines if the transmission packet is now sized at the MTU. If so, the method flow moves to block 312 and the transmission packet is provided to a transmission stack for transmission.
- the transmission stack can be a standard transmission stack, so that no additional processing is required to communicate a transmission packet that includes multiple received packets. If, at block 308 , it is determined that the transmission packet can accommodate additional data, the method flow returns to decision block 302 to await additional packets.
- the method flow moves to block 314 and the communication module subdivides the received packets into segments. Proceeding to block 316 , one or more of the segments are added to the transmission packet. In a particular embodiment, segments are added until adding another packet would cause the transmission packet to exceed the MTU. The method flow moves to block 318 and the segments that have not been added to the transmission packet are stored. The stored segments can be added to subsequent transmission packets for transmission. The method flow then moves to block 308 .
- the method flow moves to decision block 310 and the communication module determines if a time out threshold has been reached. If not, the method flow returns to block 302 . If the time out threshold has been reached or exceeded, the method flow moves to block 312 and the current transmission packet is provided to the transmission stack.
- the time out process allows for partially “full” transmission packets to be sent after a certain period of time. This can be useful in applications such as the game application described above, where it is desirable to communicate game interactions and event updates in a timely manner to provide the desired game experience.
- a transmission packet is received at a receiving node.
- the receiving node reads a header of the transmission packet.
- the header indicates what information is contained in the transmission packet. For example, the header can indicate that the transmission packet includes multiple portions of information, such as player move information and game patch information.
- the header can also indicate that the transmission packet includes segments of a particular information portion.
- the receiving node copies any complete information portions in the transmission packet into receive packets.
- the receive packets can be configured for a receive stack at the receiving node.
- the receive stack can be a standard receive stack that includes both packets representing data unmixed at the receiving node and packets received directly from a network.
- the receiving node determines if there are any data segments in the received transmission packet. If not, the method flow moves to block 416 and the prepared receive packets are provided to the receive stack. If data segments are identified in the transmission packet, the method flow proceeds to block 410 and the identified data segments are added to any stored data segments associated with the same information portion. The method flow then moves to decision block 412 and the receiving node determines if the stored data segments constitute a complete data portion. If not, the method flow moves to block 416 and the prepared receive packets are provided to the receive stack. If a complete information portion is stored, the method flow moves to block 414 and the complete data portion is copied to a receive packet. The method flow then proceeds to block 416 .
- the server 500 includes a housing 502 that defines a physical enclosure. Disposed within the housing 502 are a processor 503 , a mixing module 504 , a network interface 506 , and a memory 508 .
- the memory stores a server program 510 .
- the memory 508 is accessible to the processor 503 .
- the mixing module 504 is connected to the processor 503 and to the network interface 506 .
- the network interface 506 might be built into the mixing module 504 , and mixing module 504 may look as though it is a Network Card to the Processor and run via a PCI Bus.
- the mixing module 504 may be software or firmware running on the main or other processor.
- the processor 503 can be a microprocessor, a microcomputer, a central processing unit (CPU) or other processing device.
- the network interface 506 can be an Ethernet card or chip or other network interface device.
- the memory 508 can be a random access memory (RAM), a hard drive, or other appropriate memory device.
- the processor 503 runs the server program 510 .
- the server program 510 can be a game program, a multimedia player such as a video or audio player, or other program.
- the server program 510 interacts with a client program over a wide area network, as explained with respect to FIG. 1 .
- the server program 510 can be a game program.
- the processor 503 can send game content to a game program resident on a remote client.
- the game content can consist of information portions, such as player move portions, game patch portions, game update portions, and the like.
- the mixing module 504 can monitor the portions and determine if the portions can be combined and still remain within the MTU parameters of the network. The mixing module can also break down large information portions into segments and combine the segments with other information portions for transmission.
- the mixing module 504 may be implemented externally to the housing 502 .
- the mixing module 504 can be implemented as a separated device having its own processor and memory.
- the mixing module 504 can store a persistent copy of the large portions of information received from the processor 503 . These stored copies can be used to provide information to clients without further involvement of the processor 503 .
- the mixing module 504 can store a copy of game patch information provided by the processor 503 .
- the mixing module 504 can combine the game patch information with other game information and provide the combined information to the client. This relieves the processor 503 from having to monitor which clients have received the patch information, as each client will be provided the patch information when a game session is initiated.
Abstract
A data communication system and methods are disclosed. One of the methods includes receiving portions of information such as game content information. The portions are compared to a maximum transmission unit of a network, and combined if their combination is smaller than the maximum transmission unit. Combining of the information portions allows for efficient communication of the information portions. The information portions may also be divided into segments and combined with other portions for communication.
Description
- This application claims priority to U.S. Provisional Patent Application No. 60/596,258, entitled “METHOD AND SYSTEM OF DATA TRANSMISSION AND RECEPTION USING EFFICIENT BANDWIDTH,” filed on Sep. 12, 2005, which is assigned to the current assignee hereof and are incorporated herein by reference in its entirety.
- The present disclosure relates generally to network communications, and more specifically to a system and method for managing communicative interactions between network elements.
- A network may be characterized by several factors like who can use the network, the type of traffic the network carries, the medium carrying the traffic, the typical nature of the network's connections, and the transmission technology the network uses. For example, one network may be public and carry circuit switched voice traffic while another may be private and carry packet switched data traffic. Whatever the make-up, most networks facilitate the communication of information between at least two nodes, and as such act as communication networks.
- In recent years, several applications have been developed that rely on timely and effective interactions between two or more elements of a communication network. For example, in the sphere of online gaming, hundreds or thousands of game clients executing on user machines may be interacting with a central server executing on a networked computer. With such an architecture, the networked server computer is frequently tasked with providing content to clients, receiving client requests, processing those requests, responding to those requests, and synchronizing those requests with the requests of other clients. Further, the networked server computer can also be tasked with communicating different types of information to the client computer. Certain information, such as information representing player movement, event feedback or other information is communicated frequently in small portions of information. Other information, such as game patches, game world updates, and the like may be communicated less frequently, but includes larger portions of information. The perceived and/or real ability of the game server to communicate the small portions of information may be adversely affected when the larger portions of information are being communicated.
- In the gaming context, if communicative interactions are adversely affected or overly numerous, a game player may experience distracting events such as game freezes, stuttering, warping, etc. As such, a need exists for a data communication system and method that manages communicative interactions between network elements.
- It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the Figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements. Embodiments incorporating teachings of the present disclosure are shown and described with respect to the drawings presented herein, in which:
-
FIG. 1 is a block diagram of a particular embodiment of a network arrangement incorporating teachings of the present disclosure; -
FIG. 2 is a block diagram of an alternative particular embodiment of a network arrangement incorporating teachings of the present disclosure; -
FIG. 3 is a flow diagram of a particular embodiment of a technique for mixing data packets; -
FIG. 4 a flow diagram of a particular embodiment of a technique for mixing data packets; and -
FIG. 5 is a block diagram of a particular embodiment of a computing device that incorporates teachings of the present disclosure. - Embodiments discussed below describe, in part, distributed computing solutions that manage all or part of a communicative interaction between network elements. In this context, a communicative interaction may be one or more of: intending to send information, sending information, requesting information, receiving information, or receiving a request for information. As such, a communicative interaction could be one directional, bi-directional, or multi-directional. In some circumstances, a communicative interaction could be relatively complex and involve two or more network elements. For example, a communicative interaction may be “a conversation” or series of related communications between a client and a server—each network element sending and receiving information to and from the other. Whatever form the communicative interaction takes, it should be noted that the network elements involved need not take any specific form. A network element may be a node, a piece of hardware, software, firmware, middleware, some other component of a computing system, and/or some combination thereof.
- Though much of the following discussion focuses on specific problems associated with online gaming, the teachings disclosed herein may have broader applicability. As such, discussions relating to gaming issues like lag, game freezes, stuttering, warping, etc. are not intended to limit the scope of the disclosure. In addition, though the specific embodiment described in connection with
FIG. 1 involves a Massively Multiplayer Online Game (MMOG), other interactive applications such as Video On Demand, entertainment distribution, information distribution, etc., may also be implemented in a manner that incorporates the teachings disclosed herein. - From a high level, a system incorporating teachings of the present disclosure may include a processor module that monitors communications between a client program resident on a user machine and a server program resident on a computing device remote from the user. The server program may be part of a two-tier architecture that is deployed in a hub and spoke or centralized server configuration. The server program may also be utilized in a less centralized model. For example, the server program may be implemented as one of two or more client programs that perform server-like functionality.
- However, the server program is implemented, the processor module may be utilized to effectively reduce the number of communications actually transmitted between the client program and the server program. For example, the processor module may intercept certain client initiated communications intended for the server program, process those communications without server program involvement, and respond to the client program. In some circumstances, the processor module may make it unnecessary to actually send the original client request to the server. Depending upon implementation detail, a different message—one indicating that the original client request has already been handled—may be sent from the processor module to the server. In practice, processing the communications without burdening the server program and without traversing a portion of the network may help reduce problems such as latency, lag, and loss of data coherency. Though the above discussion involves a client-to-server communication, the processor module may also be configured to affect server-to-client communications as well.
- As indicated above, this application claims priority to U.S. Provisional Patent No. 60/596,258, filed on Sep. 12, 2005. The provisional applications describe in part specific implementations of the teachings disclosed herein and are not intended to limit the scope of the claims attached below. The entirety of the provisional application is incorporated herein by reference.
- Referring to
FIG. 1 , a block diagram of a particular embodiment of anetwork arrangement 100 is illustrated. Thenetwork arrangement 100 includes ahost transmitter device 102 connected to anoffload transmitter device 104. Theoffload transmitter device 104 is connected to anetwork 108, which is further connected to areceiving node 110. Theoffload transmitter device 104 includes amixing function 106, while thereceiving node 110 includes anunmixing function 112. - The actual location of
mixing function 106 may be modified in other deployments. For example, themixing function 106 may be located at thehost transmitter device 102. Further, themixing function 106 may be implemented as a processor dongle, a “Lan on Motherboard” processor, etc. Theunmixing function 112 may also be implemented at the receivingnode 110 or in a different location, and may also be implemented as processor dongle, a “Lan on Motherboard” processor, and the like. - Within
arrangement 100, thehost transmitter device 102 and thereceiving node 110 may be similar or different. For example, receivingnode 110 may be a local user computer, a laptop, a cellular telephone, a gaming console, a workstation, or some other appropriate device, andhost transmitter device 102 may be a server computer, a workstation, a peer of receivingnode 110, or some other appropriate device. - In the embodiment of
FIG. 1 ,network 108 may be a wide area network, such as the Internet, a local area network, or some other appropriate network or bus. Units of information, such as information packets and the like, are communicated via thenetwork 108. Thenetwork 108 is characterized by a maximum transmission unit (MTU) which describes the largest amount of information that can be communicated in one unit by thenetwork 108. The MTU can be expressed as a packet size or other appropriate unit. - During operation, the
host transmitter device 102 communicates with thereceiving node 110 by sending information via thenetwork 108. The information can be divided into portions, and each information portion may be of different sizes. Further, the information portions provided can be smaller than the MTU for thenetwork 108. The information portions are received at theoffload transmitter device 104, which analyzes the information portions. If an information portion is smaller than the MTU, or other threshold, the offload transmitter device can apply themixing function 106 to mix portions of received information together. For example, thehost transmitter device 102 may provide different portions of information from different applications operating at thehost transmitter device 102. Theoffload transmitter device 104 can determine that one or more of the provided portions are smaller than the MTU, and can combine the provided portions into an information unit, such as a transmission packet. The transmission packet is communicated to the receivingnode 110 via thenetwork 108. - The receiving
node 110 receives the transmission packet and analyzes it to determine if the packet includes one or more portions of information. If so, the receivingnode 110 applies theunmixing function 112 to the transmission packet to separate each portion of information provided by the transmission packet. - By combining information portions into transmission packets, information may be sent efficiently via the
network 108. Further, by placing themixing function 106 in theoffload transmitter device 104, the processing load and overhead for the host transmitter device can be reduced. - Referring to
FIG. 2 , a particular embodiment of anetwork arrangement 200, corresponding to thenetwork arrangement 100 ofFIG. 1 , is illustrated. Thenetwork arrangement 200 includes agame server 202 connected to anoffload transmitter device 204. Theoffload transmitter device 204 is connected to anetwork 208, which is further connected to agame client 210. Theoffload transmitter device 204 includes amixing function 206, while thegame client 210 includes anunmixing function 212. The game server includes agame application 220 and agame networking module 222. Thegame application 220 generates portions of information, such as player moves 224 andgame patch 226. - In operation, the
game server 202 and thegame client 210 may communicate with each other via thenetwork 208. In oneembodiment game server 202 and thegame client 210 may work together to provide a user ofgame client 210 with an online gaming experience.Game client 210 may receive content generated by thegame application 220 fromgame server 202 and may occasionally sendrequests game server 202 in an effort to affect the content being provided. As shown,FIG. 2 includes only one device executing a client program. In practice, however, thegame server 202 andgame application 220 may be providing content to many clients at or near the same time. - For example, in some embodiments,
game server 202 may be hosting and serving a massively multiplayer online game (MMOG) environment to hundreds or thousands of users. The content that makes up the environment may include, for example, game objects, game players, images, sounds, text, etc. This content may eventually be received and presented to the user ofgame client 210 via a computer screen, audio speakers, or other appropriate device. - In the particular embodiment of
FIG. 2 ,game client 210 may implement a local game program or client application that performs several tasks including the receipt of content provided by thegame server 202. Thegame client 210 may process certain content and facilitate a user's interaction with thegame application 220. For example, a user may input a game interaction request via some user input device associated withgame client 210. The input may “tell” thegame client 210 to select game objects, move game objects, interact with other game players, and the like. Thegame application 210 may receive the game input request. - In some situations,
game application 220 may “allow” the request and provide new or altered content based on the allowance. For example, if the game interaction request is to move a game player, thegame application 220 can produce the player moves 221information portion 224 that shows that a player has been moved. In a MMOG environment, thegame application 220 may also be tasked with providing the new or altered content to multiple users at multiple locations vianetwork 104. Information portions such as player moves 224 can be relatively small portions of information that are communicated frequently during game activity, in order to provide the user at thegame client 210 with the desired game experience. - The
game application 220 may also generate relatively large portions of information, such as a gamepatch information portion 226. Thegame patch 226 can be generated to adjust the client program at thegame client 210, including implementing updated or new game features and content, security features, stability controls, and the like. Other large portions of information can be generated. For example, thegame application 220 can generate a pre-cache of game data for thegame client 210. This pre-cache can represent game states or other information used to generate subsequent game states at thegame client 210. Such pre-caching can reduce lag or other game experience issues at thegame client 210. - The large portions of information, such as the
game patch 226, can be communicated to thegame client 210 via thenetwork 208. However, communication of such large information portions during game activity can interfere with communication of smaller portions of information such as player moves 224. This can result in distracting events (sometimes called lag) such as game freezes, stuttering, warping, and rubber banding. Although transmission of large information portions can be postponed until times of lesser game activity, such as on game startup, this can undesirably delay the implementation or use of the information in the large information portions. For example, a large information portion can include a large update to the gaming environment for multiple clients. It may be desirable to implement this update during periods of active game activity. - The
mixing function 206 at the offload transmitter device can mix large information portions with small information portions and transmit the combined portions in a transmission packet to thegame client 210. The combined portions are unmixed at thegame client 210 for processing. By combining the information portions, theoffload transmitter device 204 can maintain the appropriate game experience and provide large portions of information to thegame client 210. For example, theoffload transmitter device 204 can combine the player movesinformation portion 224 with thegame patch information 226 and provide the combined information to thegame client 210. After the information portions are unmixed, thegame client 210 can implement the player moves 224 so that the user enjoys the desirable game experience, and also implement thegame patch 226 so that thegame client 210 includes the latest version of the game client program. - The
mixing function 206 can also break down large portions of information into segments, and combine each segment with smaller portions of information for transmission. This can be useful when the large portions of information exceed the MTU of thenetwork 208 or other bandwidth parameter. For example, themixing function 206 can determine that thegame patch 226 exceeds the MTU for thenetwork 208, and therefore divide the game patch into segments. One or more of the segments can be mixed with the player moves 224 into a transmission packet. The transmission packet is received at thegame client 210, and theunmixing function 212 unmixes the player moves 224 with the attached segments. The player moves 224 are implemented by thegame client 210, while the data segments are stored. The remaining data segments are sent by theoffload transmitter device 204, and theunmixing function 212 reconstructs thegame patch 226 from the received and stored data segments. Accordingly, theoffload transmitter device 204 is able to transmit large portions of information during periods of active game play activity. - Referring to
FIG. 3 , a flow diagram of a particular embodiment of a method of communicating data is illustrated. At decision block 302 a communication module determines if a packet has been received. If a packet has been received, the method flow moves to block 304, and the communication module determines if the received packet can be added to the current transmission packet without exceeding the MTU for an associated network. Other parameters may also be considered, such as the size of any headers or other information that is appended to the transmission packet. - If the combination will not exceed the MTU, the method flow moves to block 306 and the received packet is added to the transmission packet. The method flow then proceeds to decision block 308, and the communication module determines if the transmission packet is now sized at the MTU. If so, the method flow moves to block 312 and the transmission packet is provided to a transmission stack for transmission. The transmission stack can be a standard transmission stack, so that no additional processing is required to communicate a transmission packet that includes multiple received packets. If, at
block 308, it is determined that the transmission packet can accommodate additional data, the method flow returns to decision block 302 to await additional packets. - Returning to decision block 304, if it is determined that the combination of the current transmission packet and the received packet will exceed the network MTU, the method flow moves to block 314 and the communication module subdivides the received packets into segments. Proceeding to block 316, one or more of the segments are added to the transmission packet. In a particular embodiment, segments are added until adding another packet would cause the transmission packet to exceed the MTU. The method flow moves to block 318 and the segments that have not been added to the transmission packet are stored. The stored segments can be added to subsequent transmission packets for transmission. The method flow then moves to block 308.
- Returning to decision block 302, if a packet is not received, the method flow moves to decision block 310 and the communication module determines if a time out threshold has been reached. If not, the method flow returns to block 302. If the time out threshold has been reached or exceeded, the method flow moves to block 312 and the current transmission packet is provided to the transmission stack. The time out process allows for partially “full” transmission packets to be sent after a certain period of time. This can be useful in applications such as the game application described above, where it is desirable to communicate game interactions and event updates in a timely manner to provide the desired game experience.
- Referring to
FIG. 4 , a flow diagram of a particular embodiment of a method of unmixing received information portions is illustrated. Atblock 402, a transmission packet is received at a receiving node. Moving to block 404, the receiving node reads a header of the transmission packet. The header indicates what information is contained in the transmission packet. For example, the header can indicate that the transmission packet includes multiple portions of information, such as player move information and game patch information. The header can also indicate that the transmission packet includes segments of a particular information portion. - Moving to block 406, the receiving node copies any complete information portions in the transmission packet into receive packets. The receive packets can be configured for a receive stack at the receiving node. The receive stack can be a standard receive stack that includes both packets representing data unmixed at the receiving node and packets received directly from a network.
- Proceeding to decision block 408, the receiving node determines if there are any data segments in the received transmission packet. If not, the method flow moves to block 416 and the prepared receive packets are provided to the receive stack. If data segments are identified in the transmission packet, the method flow proceeds to block 410 and the identified data segments are added to any stored data segments associated with the same information portion. The method flow then moves to decision block 412 and the receiving node determines if the stored data segments constitute a complete data portion. If not, the method flow moves to block 416 and the prepared receive packets are provided to the receive stack. If a complete information portion is stored, the method flow moves to block 414 and the complete data portion is copied to a receive packet. The method flow then proceeds to block 416.
- Referring to
FIG. 5 , a particular embodiment of aserver 500, such as thegame server 202 ofFIG. 2 , is illustrated. Theserver 500 includes ahousing 502 that defines a physical enclosure. Disposed within thehousing 502 are aprocessor 503, amixing module 504, anetwork interface 506, and amemory 508. The memory stores aserver program 510. Thememory 508 is accessible to theprocessor 503. Themixing module 504 is connected to theprocessor 503 and to thenetwork interface 506. In some embodiments, thenetwork interface 506 might be built into themixing module 504, and mixingmodule 504 may look as though it is a Network Card to the Processor and run via a PCI Bus. In other embodiments, themixing module 504 may be software or firmware running on the main or other processor. - The
processor 503 can be a microprocessor, a microcomputer, a central processing unit (CPU) or other processing device. Thenetwork interface 506 can be an Ethernet card or chip or other network interface device. Thememory 508 can be a random access memory (RAM), a hard drive, or other appropriate memory device. - During operation, the
processor 503 runs theserver program 510. Theserver program 510 can be a game program, a multimedia player such as a video or audio player, or other program. Theserver program 510 interacts with a client program over a wide area network, as explained with respect toFIG. 1 . - For example, the
server program 510 can be a game program. During execution of theserver program 510, theprocessor 503 can send game content to a game program resident on a remote client. The game content can consist of information portions, such as player move portions, game patch portions, game update portions, and the like. Themixing module 504 can monitor the portions and determine if the portions can be combined and still remain within the MTU parameters of the network. The mixing module can also break down large information portions into segments and combine the segments with other information portions for transmission. - In addition, the
mixing module 504 may be implemented externally to thehousing 502. For example, themixing module 504 can be implemented as a separated device having its own processor and memory. Further, themixing module 504 can store a persistent copy of the large portions of information received from theprocessor 503. These stored copies can be used to provide information to clients without further involvement of theprocessor 503. For example, themixing module 504 can store a copy of game patch information provided by theprocessor 503. When a particular client accesses theserver 500, such as by initiating a game session, themixing module 504 can combine the game patch information with other game information and provide the combined information to the client. This relieves theprocessor 503 from having to monitor which clients have received the patch information, as each client will be provided the patch information when a game session is initiated. - Although only a few exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of the embodiments of the present disclosure. Accordingly, all such modifications are intended to be included within the scope of the embodiments of the present disclosure as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures.
Claims (21)
1. A method, comprising:
receiving at a communication device a first portion of game information from a first game server external to the communication device;
receiving a second portion of game information at the communication device;
determining if a combination of the first portion of game information and the second portion of game information exceeds a maximum transmission unit associated with a network;
in response to determining that the combination of the first portion of game information and the second portion of game information do not exceed the maximum transmission unit, combining the first portion and the second portion of game information to form a first transmission packet; and
sending the first transmission packet to a first game client via the network.
2. The method of claim 1 , wherein the communication device is a software device.
3. The method of claim 1 , wherein the first portion of game information represents player movement information.
4. The method of claim 1 , wherein the second portion of game information represents game patch information.
5. The method of claim 1 , wherein the second portion of game information represents an update of game information for a plurality of game clients.
6. The method of claim 1 , wherein the second portion of game information represents a pre-caching of game content.
7. The method of claim 1 , further comprising:
in response to determining that the combination of the first portion of game information and the second portion of game information exceeds the maximum transmission unit:
combining a first segment of the second portion of game information with the first portion of game information to form a second transmission packet;
sending the second transmission packet to the game client via the network;
forming an Nth transmission packet including a second segment of the second portion of game information; and
sending the Nth transmission packet to the game client via the network.
8. The method of claim 7 , wherein the Nth transmission packet includes an Nth portion of game information.
9. The method of claim 1 , wherein the second portion of game information is received from a second game server.
10. The method of claim 1 , further comprising:
creating a header for the first transmission packet, wherein the header indicates a size of the first portion of game information and a size of the second portion of game information.
11. The method of claim 1 wherein the first portion of game information is received from a first game application at the game server and the second portion of game information is received from a second game application at the game server.
12. The method of claim 1 , further comprising:
storing the second portion of game information at the communication device;
receiving an Nth portion of game information at the communication device;
combining the Nth portion of game information and the stored second portion of game information to form a second transmission packet; and
providing the second transmission packet to a second game client via the network.
13. A method comprising:
receiving a first transmission packet at a game client;
determining that the first transmission packet includes a first portion of game information and a first segment of a second portion of game information;
storing the first segment of the second portion of game information;
receiving a second transmission packet at the game client;
determining that the second transmission packet includes an Nth portion of game information and a second segment of the second portion of game information; and
combining the first segment and the second segment of the second portion of game information.
14. The method of claim 13 , further comprising:
determining that the first transmission packet includes a first segment of an Nth portion of game information;
storing the first segment of the Nth portion of game information;
receiving a second transmission packet at the game client;
determining that the second transmission packet includes a second segment of the Nth portion of game information; and
combining the first segment and the second segment of the Nth portion of game information.
15. The method of claim 13 , further comprising:
determining a length of the first segment of the second portion of game information based on a header of the first transmission packet.
16. The method of claim 13 , further comprising:
storing the first portion of game information in a first receive packet;
wherein combining the first segment and the second segment of the second portion of game information comprises storing the first segment and the second segment in a second receive packet;
providing the first receive packet and the second receive packet to a receive packet stack of the game client.
17. A system, comprising:
a housing component at least partially defining an enclosure;
a first processor located within the enclosure, the first processor operable to execute at least a portion of a locally stored game server and to communicate with a remote game client; and
a packet mixing module, the packet mixing module responsive to the first processor and operable to intercept packets of game information between the first processor and the remote game client, to combine the packets of game information to form packets of combined game information, and to transmit the packets of combined game information to the remote game client.
18. The system of claim 17 , wherein the packet mixing module is external to the enclosure.
19. The system of claim 17 wherein the packet mixing module is a software or firmware module of the first processor.
20. The system of claim 17 , wherein the packet mixing module is further operable to subdivide one or more packets of game information to form subdivided packets of game information, and wherein the one or more of the packets of combined game information includes one or more subdivided packets of game information.
21. The system of claim 17 , wherein at least one of the packets of combined game information includes game patch information and game status information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/519,682 US20070060373A1 (en) | 2005-09-12 | 2006-09-12 | Data communication system and methods |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59625805P | 2005-09-12 | 2005-09-12 | |
US11/519,682 US20070060373A1 (en) | 2005-09-12 | 2006-09-12 | Data communication system and methods |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070060373A1 true US20070060373A1 (en) | 2007-03-15 |
Family
ID=37855997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/519,682 Abandoned US20070060373A1 (en) | 2005-09-12 | 2006-09-12 | Data communication system and methods |
Country Status (1)
Country | Link |
---|---|
US (1) | US20070060373A1 (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259579A1 (en) * | 2005-05-11 | 2006-11-16 | Bigfoot Networks, Inc. | Distributed processing system and method |
US20070074187A1 (en) * | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US20070078929A1 (en) * | 2005-09-30 | 2007-04-05 | Bigfoot Networks, Inc. | Distributed processing system and method |
US20080016166A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Host posing network device and method thereof |
US20080016236A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Data buffering and notification system and methods thereof |
US20080183861A1 (en) * | 2007-01-26 | 2008-07-31 | Bigfoot Networks, Inc. | Communication Socket State Monitoring System and Methods Thereof |
US20080235713A1 (en) * | 2007-03-23 | 2008-09-25 | Bigfoot Networks, Inc. | Distributed Processing System and Method |
US20080311985A1 (en) * | 2007-06-01 | 2008-12-18 | Wansanity Llc | Systems and methods for monitoring video gaming and determining opportunities to display content related applications |
US20090024872A1 (en) * | 2007-07-20 | 2009-01-22 | Bigfoot Networks, Inc. | Remote access diagnostic device and methods thereof |
US20090025073A1 (en) * | 2007-07-20 | 2009-01-22 | Bigfoot Networks, Inc. | Client authentication device and methods thereof |
US20090141713A1 (en) * | 2007-11-29 | 2009-06-04 | Bigfoot Networks, Inc. | Remote Message Routing Device and Methods Thereof |
US8687487B2 (en) | 2007-03-26 | 2014-04-01 | Qualcomm Incorporated | Method and system for communication between nodes |
US20150360132A1 (en) * | 2007-12-05 | 2015-12-17 | Sony Computer Entertainment America Llc | Method for User Session Transitioning Among Streaming Interactive Video Servers |
Citations (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5353412A (en) * | 1990-10-03 | 1994-10-04 | Thinking Machines Corporation | Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions |
US5355371A (en) * | 1982-06-18 | 1994-10-11 | International Business Machines Corp. | Multicast communication tree creation and control method and apparatus |
US5675736A (en) * | 1995-05-24 | 1997-10-07 | International Business Machines Corporation | Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages |
US5771287A (en) * | 1996-08-01 | 1998-06-23 | Transcrypt International, Inc. | Apparatus and method for secured control of feature set of a programmable device |
US5890963A (en) * | 1996-09-30 | 1999-04-06 | Yen; Wei | System and method for maintaining continuous and progressive game play in a computer network |
US6012984A (en) * | 1997-04-11 | 2000-01-11 | Gamesville.Com,Inc. | Systems for providing large arena games over computer networks |
US6015348A (en) * | 1996-10-18 | 2000-01-18 | Starwave Corporation | Scalable game server architecture |
US6240517B1 (en) * | 1997-01-31 | 2001-05-29 | Kabushiki Kaisha Toshiba | Integrated circuit card, integrated circuit card processing system, and integrated circuit card authentication method |
US6275502B1 (en) * | 1994-04-19 | 2001-08-14 | Multi-Tech Systems, Inc. | Advanced priority statistical multiplexer |
US20020078223A1 (en) * | 2000-10-17 | 2002-06-20 | Baldonado Omar C. | Method and apparatus for performance and cost optimization in an internetwork |
US20020180583A1 (en) * | 1999-10-19 | 2002-12-05 | Setec Oy | Authentication of subscriber station |
US20020198932A1 (en) * | 2001-06-07 | 2002-12-26 | Christopher Shaun Wagner | System of server-client distributed computing using passive clients |
US6615218B2 (en) * | 1998-07-17 | 2003-09-02 | Sun Microsystems, Inc. | Database for executing policies for controlling devices on a network |
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 |
US6625661B1 (en) * | 1999-06-21 | 2003-09-23 | Kenneth G. Baldwin, Jr. | Interactive entertainment system |
US20030191857A1 (en) * | 2001-10-18 | 2003-10-09 | Terrell William C. | Router and methods using in-band link between managing processor and routing processor |
US20040068580A1 (en) * | 2002-10-07 | 2004-04-08 | Ntt Docomo, Inc. | Routing control system, routing control device, transfer device and routing control method |
US6745236B1 (en) * | 1996-05-09 | 2004-06-01 | William M. Hawkins, III | Networked computer game system with persistent playing objects |
US6746332B1 (en) * | 2000-03-16 | 2004-06-08 | Sony Computer Entertainment America Inc. | Visual display system for multi-user application |
US6763371B1 (en) * | 1999-05-10 | 2004-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for collaborative communication in a communication network |
US6810528B1 (en) * | 1999-12-03 | 2004-10-26 | Sony Computer Entertainment America Inc. | System and method for providing an on-line gaming experience through a CATV broadband network |
US20040230801A1 (en) * | 2003-03-14 | 2004-11-18 | Sony Corporation | Data processing device and method and program of same |
US20040246905A1 (en) * | 2003-06-06 | 2004-12-09 | Microsoft Corporation | Method and system for global routing and bandwidth sharing |
US20040264472A1 (en) * | 2003-06-27 | 2004-12-30 | Oliver Neal C. | Method and system for open-loop congestion control in a system fabric |
US20050107161A1 (en) * | 2002-02-01 | 2005-05-19 | Jun Fujimoto | Game execution system and game execution method |
US6908389B1 (en) * | 2001-03-07 | 2005-06-21 | Nokia Corporation | Predefined messages for wireless multiplayer gaming |
US6918042B1 (en) * | 1997-11-26 | 2005-07-12 | International Business Machines Corporation | Secure configuration of a digital certificate for a printer or other network device |
US20050185587A1 (en) * | 2004-02-19 | 2005-08-25 | Klinker James E. | System and method for end to end route control |
US20050188073A1 (en) * | 2003-02-13 | 2005-08-25 | Koji Nakamichi | Transmission system, delivery path controller, load information collecting device, and delivery path controlling method |
US6941353B1 (en) * | 2000-06-29 | 2005-09-06 | Auran Holdings Pty Ltd | E-commerce system and method relating to program objects |
US6961852B2 (en) * | 2003-06-19 | 2005-11-01 | International Business Machines Corporation | System and method for authenticating software using hidden intermediate keys |
US6988196B2 (en) * | 2000-12-22 | 2006-01-17 | Lenovo (Singapore) Pte Ltd | Computer system and method for generating a digital certificate |
US7000115B2 (en) * | 2001-06-19 | 2006-02-14 | International Business Machines Corporation | Method and apparatus for uniquely and authoritatively identifying tangible objects |
US7003548B1 (en) * | 1999-03-29 | 2006-02-21 | Gelco Corporation | Method and apparatus for developing and checking technical configurations of a product |
US7046680B1 (en) * | 2000-11-28 | 2006-05-16 | Mci, Inc. | Network access system including a programmable access device having distributed service control |
US7065756B2 (en) * | 2002-08-22 | 2006-06-20 | International Business Machines Corporation | Optimization of portable operations in a client-server environment |
US20060259579A1 (en) * | 2005-05-11 | 2006-11-16 | Bigfoot Networks, Inc. | Distributed processing system and method |
US20060259632A1 (en) * | 2005-05-13 | 2006-11-16 | Yahoo! Inc. | Redirection and invitation for accessing an online service |
US7139780B2 (en) * | 2002-10-04 | 2006-11-21 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | System and method for synchronizing files in multiple nodes |
US20070005986A1 (en) * | 2003-09-09 | 2007-01-04 | Axalto S.A. | Authentication method in data communication and smart card for implementing the same |
US20070086343A1 (en) * | 2005-10-14 | 2007-04-19 | Michael Kujawa | Selectively ordered protocol for unreliable channels |
US7209449B2 (en) * | 2002-03-27 | 2007-04-24 | Intel Corporation | Systems and methods for updating routing and forwarding information |
US20070101408A1 (en) * | 2005-10-31 | 2007-05-03 | Nakhjiri Madjid F | Method and apparatus for providing authorization material |
US7249109B1 (en) * | 1997-07-15 | 2007-07-24 | Silverbrook Research Pty Ltd | Shielding manipulations of secret data |
US20070189517A1 (en) * | 2004-12-20 | 2007-08-16 | International Business Machines Corporation | Pseudo public key encryption |
US7274702B2 (en) * | 2001-11-27 | 2007-09-25 | 4198638 Canada Inc. | Programmable interconnect system for scalable router |
US20070226498A1 (en) * | 1997-07-15 | 2007-09-27 | Silverbrook Research Pty Ltd | Validating Apparatus For Use With A Pair Of Integrated Circuits |
US20070297405A1 (en) * | 2004-12-31 | 2007-12-27 | Liwen He | Method of Operating a Network |
US20070298879A1 (en) * | 2005-06-30 | 2007-12-27 | Konami Digital Entertainment Co., Ltd. | Game Device |
US20080010371A1 (en) * | 2002-02-01 | 2008-01-10 | Masaya Yamamoto | License information exchange system |
US20080009337A1 (en) * | 2006-07-08 | 2008-01-10 | Jackson Mark D | Self-authenticating file system in an embedded gaming device |
US20080009352A1 (en) * | 2006-07-06 | 2008-01-10 | Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) | Online video game control server and a method of controlling an online video game |
US20080013551A1 (en) * | 2005-11-18 | 2008-01-17 | Sbc Knowledge Ventures, L. P. | Border gateway protocol (BGP) routing policy manager, relay, and monitor |
US20080016236A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Data buffering and notification system and methods thereof |
US20080022389A1 (en) * | 2006-07-18 | 2008-01-24 | Motorola, Inc. | Method and apparatus for dynamic, seamless security in communication protocols |
US20080039208A1 (en) * | 2006-07-31 | 2008-02-14 | Ulf Abrink | Information updating management in a gaming system |
US20080045285A1 (en) * | 2006-08-21 | 2008-02-21 | Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) | Network breeding game system, breeding game server apparatus and breeding game terminal apparatus, character display method, together with program and recording medium |
US20080049621A1 (en) * | 2004-12-31 | 2008-02-28 | Mcguire Alan | Connection-Oriented Communications Scheme For Connection-Less Communications Traffic |
-
2006
- 2006-09-12 US US11/519,682 patent/US20070060373A1/en not_active Abandoned
Patent Citations (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5355371A (en) * | 1982-06-18 | 1994-10-11 | International Business Machines Corp. | Multicast communication tree creation and control method and apparatus |
US5353412A (en) * | 1990-10-03 | 1994-10-04 | Thinking Machines Corporation | Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions |
US6275502B1 (en) * | 1994-04-19 | 2001-08-14 | Multi-Tech Systems, Inc. | Advanced priority statistical multiplexer |
US5675736A (en) * | 1995-05-24 | 1997-10-07 | International Business Machines Corporation | Multi-node network with internode switching performed within processor nodes, each node separately processing data and control messages |
US6745236B1 (en) * | 1996-05-09 | 2004-06-01 | William M. Hawkins, III | Networked computer game system with persistent playing objects |
US5771287A (en) * | 1996-08-01 | 1998-06-23 | Transcrypt International, Inc. | Apparatus and method for secured control of feature set of a programmable device |
US5890963A (en) * | 1996-09-30 | 1999-04-06 | Yen; Wei | System and method for maintaining continuous and progressive game play in a computer network |
US6015348A (en) * | 1996-10-18 | 2000-01-18 | Starwave Corporation | Scalable game server architecture |
US6240517B1 (en) * | 1997-01-31 | 2001-05-29 | Kabushiki Kaisha Toshiba | Integrated circuit card, integrated circuit card processing system, and integrated circuit card authentication method |
US6012984A (en) * | 1997-04-11 | 2000-01-11 | Gamesville.Com,Inc. | Systems for providing large arena games over computer networks |
US20070226498A1 (en) * | 1997-07-15 | 2007-09-27 | Silverbrook Research Pty Ltd | Validating Apparatus For Use With A Pair Of Integrated Circuits |
US7249109B1 (en) * | 1997-07-15 | 2007-07-24 | Silverbrook Research Pty Ltd | Shielding manipulations of secret data |
US6918042B1 (en) * | 1997-11-26 | 2005-07-12 | International Business Machines Corporation | Secure configuration of a digital certificate for a printer or other network device |
US6615218B2 (en) * | 1998-07-17 | 2003-09-02 | Sun Microsystems, Inc. | Database for executing policies for controlling devices on a network |
US7003548B1 (en) * | 1999-03-29 | 2006-02-21 | Gelco Corporation | Method and apparatus for developing and checking technical configurations of a product |
US6763371B1 (en) * | 1999-05-10 | 2004-07-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for collaborative communication in a communication network |
US6625661B1 (en) * | 1999-06-21 | 2003-09-23 | Kenneth G. Baldwin, Jr. | Interactive entertainment system |
US20020180583A1 (en) * | 1999-10-19 | 2002-12-05 | Setec Oy | Authentication of subscriber station |
US6810528B1 (en) * | 1999-12-03 | 2004-10-26 | Sony Computer Entertainment America Inc. | System and method for providing an on-line gaming experience through a CATV broadband network |
US6746332B1 (en) * | 2000-03-16 | 2004-06-08 | Sony Computer Entertainment America Inc. | Visual display system for multi-user application |
US6941353B1 (en) * | 2000-06-29 | 2005-09-06 | Auran Holdings Pty Ltd | E-commerce system and method relating to program objects |
US20020078223A1 (en) * | 2000-10-17 | 2002-06-20 | Baldonado Omar C. | Method and apparatus for performance and cost optimization in an internetwork |
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 |
US7046680B1 (en) * | 2000-11-28 | 2006-05-16 | Mci, Inc. | Network access system including a programmable access device having distributed service control |
US6988196B2 (en) * | 2000-12-22 | 2006-01-17 | Lenovo (Singapore) Pte Ltd | Computer system and method for generating a digital certificate |
US6908389B1 (en) * | 2001-03-07 | 2005-06-21 | Nokia Corporation | Predefined messages for wireless multiplayer gaming |
US20020198932A1 (en) * | 2001-06-07 | 2002-12-26 | Christopher Shaun Wagner | System of server-client distributed computing using passive clients |
US7000115B2 (en) * | 2001-06-19 | 2006-02-14 | International Business Machines Corporation | Method and apparatus for uniquely and authoritatively identifying tangible objects |
US20030191857A1 (en) * | 2001-10-18 | 2003-10-09 | Terrell William C. | Router and methods using in-band link between managing processor and routing processor |
US7274702B2 (en) * | 2001-11-27 | 2007-09-25 | 4198638 Canada Inc. | Programmable interconnect system for scalable router |
US20080010371A1 (en) * | 2002-02-01 | 2008-01-10 | Masaya Yamamoto | License information exchange system |
US20050107161A1 (en) * | 2002-02-01 | 2005-05-19 | Jun Fujimoto | Game execution system and game execution method |
US7209449B2 (en) * | 2002-03-27 | 2007-04-24 | Intel Corporation | Systems and methods for updating routing and forwarding information |
US7065756B2 (en) * | 2002-08-22 | 2006-06-20 | International Business Machines Corporation | Optimization of portable operations in a client-server environment |
US7139780B2 (en) * | 2002-10-04 | 2006-11-21 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. | System and method for synchronizing files in multiple nodes |
US20040068580A1 (en) * | 2002-10-07 | 2004-04-08 | Ntt Docomo, Inc. | Routing control system, routing control device, transfer device and routing control method |
US20050188073A1 (en) * | 2003-02-13 | 2005-08-25 | Koji Nakamichi | Transmission system, delivery path controller, load information collecting device, and delivery path controlling method |
US20040230801A1 (en) * | 2003-03-14 | 2004-11-18 | Sony Corporation | Data processing device and method and program of same |
US20040246905A1 (en) * | 2003-06-06 | 2004-12-09 | Microsoft Corporation | Method and system for global routing and bandwidth sharing |
US6961852B2 (en) * | 2003-06-19 | 2005-11-01 | International Business Machines Corporation | System and method for authenticating software using hidden intermediate keys |
US20040264472A1 (en) * | 2003-06-27 | 2004-12-30 | Oliver Neal C. | Method and system for open-loop congestion control in a system fabric |
US20070005986A1 (en) * | 2003-09-09 | 2007-01-04 | Axalto S.A. | Authentication method in data communication and smart card for implementing the same |
US20050185587A1 (en) * | 2004-02-19 | 2005-08-25 | Klinker James E. | System and method for end to end route control |
US20070189517A1 (en) * | 2004-12-20 | 2007-08-16 | International Business Machines Corporation | Pseudo public key encryption |
US20080049621A1 (en) * | 2004-12-31 | 2008-02-28 | Mcguire Alan | Connection-Oriented Communications Scheme For Connection-Less Communications Traffic |
US20070297405A1 (en) * | 2004-12-31 | 2007-12-27 | Liwen He | Method of Operating a Network |
US20060259579A1 (en) * | 2005-05-11 | 2006-11-16 | Bigfoot Networks, Inc. | Distributed processing system and method |
US20060259632A1 (en) * | 2005-05-13 | 2006-11-16 | Yahoo! Inc. | Redirection and invitation for accessing an online service |
US20070298879A1 (en) * | 2005-06-30 | 2007-12-27 | Konami Digital Entertainment Co., Ltd. | Game Device |
US20070086343A1 (en) * | 2005-10-14 | 2007-04-19 | Michael Kujawa | Selectively ordered protocol for unreliable channels |
US20070101408A1 (en) * | 2005-10-31 | 2007-05-03 | Nakhjiri Madjid F | Method and apparatus for providing authorization material |
US20080013551A1 (en) * | 2005-11-18 | 2008-01-17 | Sbc Knowledge Ventures, L. P. | Border gateway protocol (BGP) routing policy manager, relay, and monitor |
US20080009352A1 (en) * | 2006-07-06 | 2008-01-10 | Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) | Online video game control server and a method of controlling an online video game |
US20080009337A1 (en) * | 2006-07-08 | 2008-01-10 | Jackson Mark D | Self-authenticating file system in an embedded gaming device |
US20080016236A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Data buffering and notification system and methods thereof |
US20080022389A1 (en) * | 2006-07-18 | 2008-01-24 | Motorola, Inc. | Method and apparatus for dynamic, seamless security in communication protocols |
US20080039208A1 (en) * | 2006-07-31 | 2008-02-14 | Ulf Abrink | Information updating management in a gaming system |
US20080045285A1 (en) * | 2006-08-21 | 2008-02-21 | Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) | Network breeding game system, breeding game server apparatus and breeding game terminal apparatus, character display method, together with program and recording medium |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8167722B2 (en) | 2005-05-11 | 2012-05-01 | Qualcomm Atheros, Inc | Distributed processing system and method |
US9426207B2 (en) | 2005-05-11 | 2016-08-23 | Qualcomm Incorporated | Distributed processing system and method |
US20060259579A1 (en) * | 2005-05-11 | 2006-11-16 | Bigfoot Networks, Inc. | Distributed processing system and method |
US20080229300A1 (en) * | 2005-09-29 | 2008-09-18 | International Business Machines Corporation | Method and Apparatus for Inserting Code Fixes Into Applications at Runtime |
US20070074187A1 (en) * | 2005-09-29 | 2007-03-29 | O'brien Thomas E | Method and apparatus for inserting code fixes into applications at runtime |
US7810087B2 (en) * | 2005-09-29 | 2010-10-05 | International Business Machines Corporation | Method and apparatus for inserting code fixes into applications at runtime |
US20070078929A1 (en) * | 2005-09-30 | 2007-04-05 | Bigfoot Networks, Inc. | Distributed processing system and method |
US9455844B2 (en) | 2005-09-30 | 2016-09-27 | Qualcomm Incorporated | Distributed processing system and method |
US20080016236A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Data buffering and notification system and methods thereof |
US20080016166A1 (en) * | 2006-07-17 | 2008-01-17 | Bigfoot Networks, Inc. | Host posing network device and method thereof |
US8874780B2 (en) | 2006-07-17 | 2014-10-28 | Qualcomm Incorporated | Data buffering and notification system and methods thereof |
US8683045B2 (en) | 2006-07-17 | 2014-03-25 | Qualcomm Incorporated | Intermediate network device for host-client communication |
US20080183861A1 (en) * | 2007-01-26 | 2008-07-31 | Bigfoot Networks, Inc. | Communication Socket State Monitoring System and Methods Thereof |
US7908364B2 (en) | 2007-01-26 | 2011-03-15 | Bigfoot Networks, Inc. | Method storing socket state information in application space for improving communication efficiency of an application program |
US20080235713A1 (en) * | 2007-03-23 | 2008-09-25 | Bigfoot Networks, Inc. | Distributed Processing System and Method |
US8255919B2 (en) | 2007-03-23 | 2012-08-28 | Qualcomm Atheros, Inc. | Distributed processing system and method |
US8687487B2 (en) | 2007-03-26 | 2014-04-01 | Qualcomm Incorporated | Method and system for communication between nodes |
US20080311985A1 (en) * | 2007-06-01 | 2008-12-18 | Wansanity Llc | Systems and methods for monitoring video gaming and determining opportunities to display content related applications |
US20090024872A1 (en) * | 2007-07-20 | 2009-01-22 | Bigfoot Networks, Inc. | Remote access diagnostic device and methods thereof |
US20090025073A1 (en) * | 2007-07-20 | 2009-01-22 | Bigfoot Networks, Inc. | Client authentication device and methods thereof |
US8909978B2 (en) | 2007-07-20 | 2014-12-09 | Qualcomm Incorporated | Remote access diagnostic mechanism for communication devices |
US8543866B2 (en) | 2007-07-20 | 2013-09-24 | Qualcomm Incorporated | Remote access diagnostic mechanism for communication devices |
US8499169B2 (en) | 2007-07-20 | 2013-07-30 | Qualcomm Incorporated | Client authentication device and methods thereof |
US20090141713A1 (en) * | 2007-11-29 | 2009-06-04 | Bigfoot Networks, Inc. | Remote Message Routing Device and Methods Thereof |
US9270570B2 (en) | 2007-11-29 | 2016-02-23 | Qualcomm Incorporated | Remote message routing device and methods thereof |
US20150360132A1 (en) * | 2007-12-05 | 2015-12-17 | Sony Computer Entertainment America Llc | Method for User Session Transitioning Among Streaming Interactive Video Servers |
US20170225080A9 (en) * | 2007-12-05 | 2017-08-10 | Sony Interactive Entertainment America Llc | Method for User Session Transitioning Among Streaming Interactive Video Servers |
US11298612B2 (en) * | 2007-12-05 | 2022-04-12 | Sony Interactive Entertainment LLC | Method for user session transitioning among streaming interactive video servers |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070060373A1 (en) | Data communication system and methods | |
US6315668B1 (en) | System and method for networking video games | |
US8046467B2 (en) | Maintaining client affinity in network load balancing systems | |
JP2019514536A (en) | Method performed by a server, cloud gaming system, client device and computer readable medium | |
JP2005158068A (en) | Method and apparatus for sharing applications by use of p2p protocol | |
KR100741463B1 (en) | Method and apparatus in a communication network | |
JP3495234B2 (en) | Method and system for reducing server load on network computer system | |
US20060135258A1 (en) | System, network entity, client and method for facilitating fairness in a multiplayer game | |
US8930565B1 (en) | Method and system for providing data streams in a virtual environment | |
CN114667173A (en) | Edge computing agent for cloud gaming and 5G | |
US11924255B2 (en) | Data transmission method and apparatus, server, storage medium, and program product | |
US20230291808A1 (en) | Data processing method and apparatus, device and medium | |
WO2002092177A2 (en) | Method and arrangement for providing an interactive game including three-dimensional graphics | |
CN108989845A (en) | A kind of video transmission method based on SPICE protocol | |
CN112954059A (en) | Computing power sharing method, computing power sharing system and storage medium | |
US20040127288A1 (en) | Communication game equipment | |
CN110798412A (en) | Multicast service processing method, device, cloud platform, equipment and readable storage medium | |
KR101087089B1 (en) | Network system, node device, data distribution method, information recording medium, and program | |
US9808714B2 (en) | Network enabled game controller | |
US9381436B2 (en) | Mechanism for implementing cloud local area network party service for multi-player content/game environment | |
JP2022501924A (en) | Increasing the video bitrate while maintaining video quality | |
CN114416275A (en) | Method and system for synchronizing virtual machine states by multiple management clients | |
JP6567032B2 (en) | Multiple stream content presentation | |
St. John et al. | Supporting P2P gaming when players have heterogeneous resources | |
EP2115619B1 (en) | Communication socket state monitoring device and methods thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BIGFOOT NETWORKS, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEVERLY, HARLAN TITUS;REEL/FRAME:018307/0673 Effective date: 20060911 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: QUALCOMM ATHEROS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BIGFOOT NETWORKS, INC.;REEL/FRAME:026990/0280 Effective date: 20110831 |