US20070060373A1 - Data communication system and methods - Google Patents

Data communication system and methods Download PDF

Info

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
Application number
US11/519,682
Inventor
Harlan Beverly
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Atheros Inc
Original Assignee
Bigfoot Networks Inc
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 Bigfoot Networks Inc filed Critical Bigfoot Networks Inc
Priority to US11/519,682 priority Critical patent/US20070060373A1/en
Assigned to BIGFOOT NETWORKS, INC. reassignment BIGFOOT NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEVERLY, HARLAN TITUS
Publication of US20070060373A1 publication Critical patent/US20070060373A1/en
Assigned to QUALCOMM ATHEROS, INC. reassignment QUALCOMM ATHEROS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BIGFOOT NETWORKS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/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

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

    CROSS REFERENCE TO RELATED APPLICATIONS
  • 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.
  • FIELD OF THE DISCLOSURE
  • The present disclosure relates generally to network communications, and more specifically to a system and method for managing communicative interactions between network elements.
  • BACKGROUND
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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 a network arrangement 100 is illustrated. 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.
  • The actual location of mixing function 106 may be modified in other deployments. For example, the 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.
  • Within arrangement 100, the host transmitter device 102 and the receiving node 110 may be similar or different. For example, receiving node 110 may be a local user computer, a laptop, a cellular telephone, a gaming console, a workstation, or some other appropriate device, and host transmitter device 102 may be a server computer, a workstation, a peer of receiving node 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 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. The MTU can be expressed as a packet size or other appropriate unit.
  • During operation, 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. For example, 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.
  • By combining information portions into transmission packets, 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.
  • Referring to FIG. 2, a particular embodiment of a network arrangement 200, corresponding to the network arrangement 100 of FIG. 1, is illustrated. 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.
  • In operation, the game server 202 and the game client 210 may communicate with each other via the network 208. In one embodiment 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. As shown, 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.
  • 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 of game 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 the game server 202. The game client 210 may process certain content and facilitate a user's interaction with the game application 220. For example, 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.
  • 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, 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. For example, 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, such as the game patch 226, can be communicated to the game client 210 via the network 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 the game client 210. The combined portions are unmixed at the game client 210 for processing. By combining the information portions, the offload transmitter device 204 can maintain the appropriate game experience and provide large portions of information to the game client 210. For example, 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. After the information portions are unmixed, 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.
  • 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. At block 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 a server 500, such as the game server 202 of FIG. 2, is illustrated. 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. In some embodiments, 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. In other embodiments, 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.
  • During operation, 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.
  • For example, the server program 510 can be a game program. During execution of the server program 510, 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.
  • In addition, the mixing module 504 may be implemented externally to the housing 502. For example, the mixing module 504 can be implemented as a separated device having its own processor and memory. Further, 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. For example, the mixing module 504 can store a copy of game patch information provided by the processor 503. When a particular client accesses the server 500, such as by initiating a game session, 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.
  • 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.
US11/519,682 2005-09-12 2006-09-12 Data communication system and methods Abandoned US20070060373A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (58)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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