US9270570B2 - Remote message routing device and methods thereof - Google Patents

Remote message routing device and methods thereof Download PDF

Info

Publication number
US9270570B2
US9270570B2 US12/324,226 US32422608A US9270570B2 US 9270570 B2 US9270570 B2 US 9270570B2 US 32422608 A US32422608 A US 32422608A US 9270570 B2 US9270570 B2 US 9270570B2
Authority
US
United States
Prior art keywords
message
type
node
routing
peer
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.)
Expired - Fee Related, expires
Application number
US12/324,226
Other versions
US20090141713A1 (en
Inventor
Harlan T. 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 Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Priority to US12/324,226 priority Critical patent/US9270570B2/en
Assigned to BIGFOOT NETWORKS, INC. reassignment BIGFOOT NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEVERLY, HARLAN T.
Publication of US20090141713A1 publication Critical patent/US20090141713A1/en
Assigned to QUALCOMM ATHEROS, INC. reassignment QUALCOMM ATHEROS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BIGFOOT NETWORKS, INC.
Assigned to QUALCOMM INCORPORATED reassignment QUALCOMM INCORPORATED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: QUALCOMM ATHEROS, INC.
Application granted granted Critical
Publication of US9270570B2 publication Critical patent/US9270570B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Definitions

  • the present disclosure relates to communication between nodes, and more particularly to communication between electronic devices.
  • 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.
  • an online banking server or host
  • the networked host computer is frequently tasked with providing content to clients, receiving client requests, processing those requests, and responding to those requests, and synchronizing those requests with the requests of other clients.
  • a large number of communications between client and host, or between peers in a peer-to-peer network can be difficult to communicate over a network in an efficient manner, undesirably slowing communications.
  • FIG. 1 is a block diagram of a communications network in accordance with one embodiment of the present disclosure.
  • FIG. 2 is a block diagram illustrating a particular embodiment of the communications network of FIG. 1 .
  • FIG. 3 is a block diagram of a communications network implementing a network game in accordance with one embodiment of the present disclosure.
  • FIG. 4 is a block diagram of a particular embodiment of the communications network of FIG. 3 .
  • FIG. 5 is a block diagram of a particular embodiment of a communications network implement a peer-to-peer chat program in accordance with one embodiment of the present disclosure.
  • FIG. 6 is a block diagram of a communications network in accordance with another embodiment of the present disclosure.
  • FIG. 7 is a block diagram of a computer device in accordance with one embodiment of the present disclosure.
  • a message routing method includes receiving a plurality of messages at a routing node.
  • the routing node is configured to route each received message based on the message type. Accordingly, the routing node is able to establish a peer-to-peer connection between the message source and a destination node for a designated message type, while establishing a server-client connection between the message source and a server for other message types.
  • the routing node can also route messages to different groups of destination nodes depending on the message type, thereby providing a flexible way to route messages over a network.
  • the communications network 100 includes an authority node 102 , a data source node 104 , a routing node 130 , and communication nodes 120 - 124 .
  • the authority node 102 , routing node 130 , and communication nodes 120 - 124 are each connected to a network 110 .
  • the data source node 104 is connected to the authority node 102 and is also connected to the routing node 130 .
  • the authority node 102 is further connected to the routing node 130 .
  • a node refers to an electronic device in a network that is able to receive, transmit, or route a communication message. Nodes are also referred to herein as communication nodes.
  • communication nodes are generally classified into one or more of several types, including authority nodes, data source nodes, routing nodes, and interested nodes (also referred to as destination nodes).
  • an authority node is a communication node configured to establish message routing rules based on requests from a data source node.
  • a data source node is communication node configured to generate messages for communication to other nodes.
  • a message refers to a unit of information designated for communication to another node or nodes, and can typically be divided into data segments for communication via the physical layer of the network being used for communication. Thus, a message can be divided into multiple packets for communication via a packet-switched network.
  • a routing node refers to a communication node that is configured to receive messages from other communication nodes, and route the received messages to one or more nodes based on one or more message routing rules.
  • a routing node is distinguished from a routing device, such as a conventional router, in that the routing node is able to determine the message type and route the message to more than one destination node based on the message type.
  • a router device in contrast, routes a packet (which may be associated with a message) based on a packet address.
  • An interested node refers to a communication node that is one of the targeted destinations of a message.
  • a particular communication node can be associated with more than one type of node.
  • a single communication node can be an authority node, a data source node, a routing node, an interested node, or any combination thereof.
  • the communication nodes of FIG. 1 are illustrated as being of a particular node type, it will be appreciated that any of the illustrated nodes could also be associated with other types of communication nodes.
  • authority node 102 could also be a routing node, or a data source node, or an interested node, or any combination thereof.
  • nodes can be associated with different types of electronic devices.
  • communication network 100 can be associated with a wide area network configuration, where network 110 represents the Internet or other wide area network.
  • the authority node 102 and data source node 104 can be located at a server device, and communication nodes 120 - 124 can represent separate client devices, such as desktop computers, portable computers, cell phones, and the like.
  • communication network 100 can represent a communication network internal to an electronic device, where network 110 is a communication bus.
  • the authority node 102 can be a data processor device, and communication nodes 120 - 124 can represent additional processor devices, peripheral devices, memory devices, and the like.
  • network 110 is a wide-area packet-switched network, such as the Internet.
  • data source node 104 can send a request to authority node 102 to establish node 104 as a data source node.
  • This request may optionally contain a set of types of messages that the data source node is requesting to be able to generate.
  • authority node 102 can determine if the request is authorized, according to a set of authorization rules (such as password authentication or other security procedure). If the request is authorized, authority node 102 determines a set of message routing rules, based on the types of messages to be communicated by data source node 104 or based on the types of messages requested by the data source node 104 . For example, authority node 102 can determine that data source node will be communicating three types of messages, and establish message routing rules for each type of message.
  • the Authority node 102 communicates the message routing rules to the routing node 130 .
  • the message routing rules indicate the type of messages to be communicated and the interested nodes associated with each group.
  • the message type can be indicated by one or more fields in a header of a packet associated with the message.
  • the routing node 130 can determine the message type by inspecting the data payload of a packet associated with the message.
  • the message type refers to a characteristic of the message, such as an intended use of the message or a type of data being communicated by the message, that is different and distinct from a target or source address of packets associated with the message. This allows the routing node 130 to route messages (and their associated packets) based on criteria different from a particular address assigned by the data source node.
  • the authority node 102 can communicate the message routing rules to the routing node 130 using one or more control messages. For example, the authority node can communicate an ADD_CONNECTION_TO GROUP message, an ADD_MESSAGE_ROUTING_RULE_TO_GROUP message, a REMOVE_CONNECTION_FROM_GROUP message, and a REMOVE_MESSAGE_ROUTING_RULE_TO_GROUP message.
  • each node defines a connection based on an Internet Protocol (IP) address and port number.
  • IP Internet Protocol
  • the node will add an interested node to a group.
  • each message routing rule can indicate an offset, a size, and a value to which messages will be compared in order to determine if ADD_MESSAGE_ROUTING_RULE_TO GROUP message specifies the offset, size, value, and group with which the rule is associated.
  • each group is associated with a particular message type, and indicates the interested nodes to which messages of that type should be communicated.
  • the REMOVE_CONNECTION_FROM_GROUP message, and REMOVE_MESSAGE_ROUTING_RULE_TO_GROUP message remove a connection and a routing rule, respectively, from a designated group.
  • the routing node 130 In response to receiving a message, the routing node 130 checks the offset, size, and value of the message, and based on this determination communicate the message to the interested nodes indicated by the group. It will be appreciated each group can indicate more than one interested node, so a particular message can be communicated to multiple interested nodes. For example, if a group includes connections indicating two different nodes, each received message associated with that group (i.e. each message of the message type associated with the group) will be communicated to each node in the group.
  • the routing node 130 can determine an address, such as an IPv4 or other IP address, for each interested node, form packets including the message content addressed to each interested node, and route the packets to the interested nodes via the network 110 .
  • the routing node 130 thus provides an interface that allows the conventional network 110 to be employed to route packets to multiple interested nodes based on the type of received message.
  • the design of data source node 104 can be simplified.
  • different data source nodes can communicate with authority node 102 , which can establish message routing rules at the network 110 for different message types from each data source node.
  • the establishment of message routing rules is thus abstracted from the data source nodes and the routing nodes, simplifying the design and operation of each node.
  • it can reduce the communication bandwidth of the data source node 104 because the data source node does not itself have to communicate each message to each destination node.
  • message communication latency can be reduced.
  • FIG. 2 illustrates a particular embodiment of a communications network 200 .
  • Communications network 200 includes authority node 202 , data source node 204 , a network 210 , and communication nodes 220 - 224 , each of which are configured similarly to the corresponding portions of communication network 100 .
  • the network 210 includes a router device 211 and routing nodes 231 and 232 .
  • data source node 204 has associated communication nodes 220 - 222 with a first group, designated Group A, and has associated communication nodes 223 and 224 with a second group, designated Group B.
  • data source node 204 can be a web server program that has determined nodes 220 - 222 should be provided with a first web page, while communication nodes 223 and 224 should be provided with a second, different web page.
  • data source node 204 requests authority node 202 to establish node 204 as a data source node.
  • authority node 202 determines a set of message routing rules for each type of message associated with data source node 204 .
  • messages targeted to Group A are of a different type than messages targeted to Group B.
  • authority node determines a set of message routing rules so that messages targeted to Group A (referred to as A-type messages) will be routed to communication nodes 220 - 222 , and determines a set of message routing rules so that messages targeted to Group B (referred to as B-type messages) will be communicated to communication node 234 and communication node 235 .
  • the authority node 202 communicates the message routing rules to routing nodes 231 and 232 .
  • authority node 202 communicates an address, such as an IP address, of each of the routing nodes 231 and 232 to data source node 204 .
  • the data source node 204 is configured to form one or more packets for each message to be communicated, with each packet including the address of the associated routing node, and provides each packet to the router device 211 for routing.
  • Router device 211 does not route the received packets based on the type of message associated with each packet, but instead routes each packet based on the associated address.
  • the router device 211 is a unicast router device that is configured to route each packet to the associated unicast address.
  • the network 210 can include additional router devices between each of the illustrated nodes.
  • additional router devices can be placed between the routing nodes 231 and 232 and the associated communication nodes.
  • the routing nodes 231 and 232 can thus employ the router devices to route messages to interested nodes.
  • Data source node 204 communicates both A-type and B-type messages to router device 211 , which routes the messages to one of routing nodes 231 or 232 based on the address of the packets associated with each message.
  • Authority node 202 communicates message routing rules to routing node 231 so that all A-type messages are routed to each of communication nodes 220 - 222 .
  • authority node 202 communicates message routing rules to routing node 232 so that all B-type messages are communicated to routing nodes 223 and 224 .
  • data source node 204 does not have to determine the routing path for A-type message and B-type messages, but instead can rely on the message routing rules established by authority node 202 to handle message routing. This simplifies the design of data source node 204 , improving communication efficiency.
  • the routing nodes 231 and 232 are able to employ the routing devices that form the backbone of the network 210 to communicate messages.
  • the routing node 231 establishes a one-to-one connection with each of the communication nodes 220 - 222 .
  • a one-to-one connection is a connection established based on an address of the destination node that is unique with respect to addresses of other destination nodes.
  • the routing node 231 is able to route messages using one or more unicast routers, allowing messages to be routed to multiple destinations based on message type, without extensive redesign of the network 210 .
  • Communication network 300 includes a server 305 and game clients 320 - 324 (which can also be game peers in a peer-to-peer network), each connected to a network 310 having routing nodes 330 - 332 .
  • Game server 305 includes a game content engine 304 , which is configured as a data source node, and a game communication manger 302 , which is configured as an authority node.
  • the game content engine 304 is configured to provide game content information for a network game, such as multiplayer online game (MOG), to game programs operating at game clients 320 - 324 .
  • game clients 320 - 322 are assumed to be associated with a first group, designated Group A, while game clients 323 and 324 are associate with a second game group, designated Group B.
  • the grouping of game clients can be based on one or more predetermined or dynamic criteria. For example, Group A and Group B may each be associated with participants of different player-vs.-player game sessions. In another embodiment, Group A may be associated with players in a first game region, while Group B is associated with players in a second game region.
  • each game client or game peer can be a member of more than one group. Further, any arbitrary grouping can be employed for each type of message, so that two game clients or game peers can be in a first group for a first type of message and in two different groups for a second type of message.
  • Game communication manager 302 establishes, in response to request from game content engine 304 , message routing rules for different message types associated with each group.
  • messages associated with Group A (referred to as A-type messages) are routed, based on the message routing rules, to each of game clients 320 - 322 , while messages associated with Group B (referred to as B-type messages, are routed to each of game clients 323 and 324 .
  • A-type messages messages associated with Group A
  • B-type messages are routed to each of game clients 323 and 324 . Because routing of types of messages is handled by the message routing rules, rather than by the game content engine determining a unique address for each targeted recipient of a message, the game content engine 304 is simplified and communications can occur more efficiently.
  • each game program and game client can act as a data source and routing node.
  • FIG. 4 illustrates a communication network 400 .
  • the communication network 400 includes a server 405 , and game clients 420 - 424 , each connected to a network 410 .
  • the game server 405 includes a server game program that is configured as a data source and authority node.
  • Game client 420 includes a network interface 441 and a game program 442 .
  • the network interface 441 is a network interface card, processor, or other hardware module configured to interface with the network 410 .
  • the game program 442 is a program executing at a processor to interact with the server game program in order to provide a game experience to a user.
  • the game program 442 can be executed at a different processor or other hardware module from the network interface 441 .
  • Game clients 421 - 424 can each be configured similarly to game client 420 .
  • the network interface 441 can be configured as a routing node.
  • network interface 441 can communicate a request to server game program 402 to be configured as a routing node.
  • server game program 402 can communicate message routing rules to the network interface 441 so that messages of different types can be routed to different destination nodes.
  • network interface 441 can employ the message routing rules to route messages directly to other game clients without sending the message through the server game program 402 .
  • network interface 441 can receive a message from game program 442 , indicating the user has interacted with the game in a particular way.
  • the message will indicate a particular message type, indicating a group of game clients associated with the message, the type of interaction represented by the message, and the like.
  • the network interface 441 can route the message to another game client via the network 410 without routing the message via the server game program 402 .
  • the network interface 441 can thus establish a peer-to-peer connection between the game client 420 and each interested node for messages of a first message type, while establishing a client-server connection between the game client 420 and the server 405 for messages of a second message type.
  • a peer-to-peer connection refers to a connection between communication nodes where messages are routed between the nodes without routing the messages to a designated central server or set of servers for processing.
  • a client-server connection refers to a connection where messages are routed to a designated server or set of servers for processing.
  • network interface 441 can route a copy of the message to game client 421 and a copy of the message to game client 422 , without routing the message copies through server game program 402 .
  • This allows game interactions to be communicated to the appropriate groups in a peer-to-peer fashion, without direct interaction with the server game program 402 . Messages can thereby be communicated more quickly, providing for more efficient communication and an improved user experience.
  • the peer-to-peer communication is implemented using the message routing rules at the network interface 441 and other routing nodes, so that communication of messages to different game clients is relatively transparent to game program 442 . Accordingly, game program 442 can communicate in a peer-to-peer fashion without extensive modification of the program.
  • This configuration allows for messages associated with different software applications, or different portions of a software application, to be routed via a peer-to-peer connection or via a server-client connection, depending on the application.
  • the game program itself includes a chat portion, where game participants can send text or voice chat messages to other participants. These chat messages typically do not impact the game play itself.
  • network interface 441 can route chat messages in a peer-to-peer fashion, while routing messages associated with game events (e.g. firing a weapon, moving a character, and the like) to the server game program 402 for processing. This allows the server game program 402 to process only those messages that impact the game play itself, improving communication bandwidth between the server game program 402 and the game participants.
  • the communication network 500 includes a server 505 , and peer devices 520 - 524 , each connected to a network 510 .
  • the server 505 includes a peer authentication module that is configured as an authority node.
  • Peer device 520 is a computer device, such as a cell phone, desktop or laptop computer, and the like, that includes a network interface 541 and a chat program 542 .
  • the network interface 541 is a network interface card, processor, or other hardware module configured to interface with the network 510 .
  • the chat program 542 is a program executing at a processor to interact with the other chat programs at peer devices 521 - 524 to allow users to chat, via text input, voice input, and the like, with other users.
  • the chat program 542 can be executed at a different processor or other hardware module from the network interface 541 .
  • Peer devices 521 - 524 can each be configured similarly to game client 520 .
  • each of the peer devices 520 - 524 can be either a trusted peer or an untrusted peer.
  • each peer device can provide authentication information via the network 510 to the peer authentication module 502 .
  • the peer authentication module 502 can perform an authentication procedure to determine if each peer device is a trusted or untrusted peer.
  • a peer can also be untrusted if it provides no authentication information to the peer authentication module 502 .
  • the network interface 541 can be configured as a routing node.
  • network interface 541 can communicate a request to peer authentication module 502 to be configured as a routing node.
  • peer authentication module 502 can communicate message routing rules to the network interface 541 so that messages of different types can be routed to different destination nodes.
  • the message routing rules cause the network interface 541 to route messages between trusted peers without routing those messages via peer authentication module 502 .
  • the message routing rules can cause messages to be routed to untrusted peers to be routed to peer authentication module 502 , so that the module can perform designated security functions, such as encrypting messages, dropping messages, checking message content, and the like.
  • the message routing rules thus establish a security protocol for trusted and untrusted peers without extensive modification of the chat program 542 .
  • the communication network 600 is configured similarly to the communication network 500 .
  • the network interface 641 is configured as an authentication node and a data source node, as well as a routing node.
  • the network interface 641 is configured to perform an authentication procedure whereby it determines which of the nodes 620 - 624 are trusted peers.
  • network interface 641 can perform a password authentication procedure, an automated exchange of authentication codes or certificates, or other authentication procedure where it determines which of nodes 620 - 624 can be designated as trusted nodes or untrusted nodes.
  • network interface 641 can provide message routing rules to routing nodes in the network 610 or at the nodes 621 - 624 so that all messages of a type associated with an untrusted node are routed to the network interface 641 or other device for processing.
  • message routing rules are determined and provided to each routing node from a peer in a peer-to-peer network, rather than from a central server or other device.
  • FIG. 7 illustrates a particular embodiment of a computer device 720 , corresponding to a communication node, client device or peer device illustrated at FIGS. 1-6 .
  • the computer device 720 includes a processor 751 connected to a network interface device 741 and a memory 752 .
  • the memory 752 stores application programs 755 and 756 , which are configured to manipulate the processor 751 to perform designated tasks.
  • the network interface device 741 is a device, such as a network interface card, that is configured to provide a physical and logical interface to the network 110 .
  • the network interface is configured as one or more of a routing node, authentication node, and data source node as described with respect to FIGS. 1-7 .
  • FIG. 7 illustrates a particular embodiment of a computer device 720 , corresponding to a communication node, client device or peer device illustrated at FIGS. 1-6 .
  • the computer device 720 includes a processor 751 connected to a network interface device 741 and a memory 752 .
  • the network interface 741 can perform the function of providing a network interface for communications from the processor 751 , such as formation of packets and provision of a physical interface for packet communication to the network, and also perform the function of routing messages to different groups of interested nodes based on the message type.
  • the network interface 741 can thereby increase the bandwidth of communications from the processor 751 without extensive modification of the application programs 755 and 756 .

Abstract

A message routing method includes receiving a plurality of messages at a routing node. The routing node is configured to route each received message based on the message type. Accordingly, the routing node is able to establish a peer-to-peer connection between the message source and a destination node for a designated message type, while establishing a server-client connection between the message source and a server for other message types. The routing node can also route messages to different groups of destination nodes depending on the message type, thereby providing a flexible way to route messages over a network.

Description

CROSS-REFERENCE TO RELATED APPLICATION(S)
This application claims priority to U.S. Provisional Patent Application No. 60/991,140, entitled “System and Method for Distributed Method Routing,” filed on Nov. 29, 2007, which is assigned to the current assignee hereof and is incorporated herein by reference in its entirety.
BACKGROUND
1. Field of the Disclosure
The present disclosure relates to communication between nodes, and more particularly to communication between electronic devices.
2. Description of the Related Art
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, an online banking server, or host, may interact with hundreds or thousands of client computers via the communication network. With such an architecture, the networked host computer is frequently tasked with providing content to clients, receiving client requests, processing those requests, and responding to those requests, and synchronizing those requests with the requests of other clients. However, a large number of communications between client and host, or between peers in a peer-to-peer network can be difficult to communicate over a network in an efficient manner, undesirably slowing communications.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
FIG. 1 is a block diagram of a communications network in accordance with one embodiment of the present disclosure.
FIG. 2 is a block diagram illustrating a particular embodiment of the communications network of FIG. 1.
FIG. 3 is a block diagram of a communications network implementing a network game in accordance with one embodiment of the present disclosure.
FIG. 4 is a block diagram of a particular embodiment of the communications network of FIG. 3.
FIG. 5 is a block diagram of a particular embodiment of a communications network implement a peer-to-peer chat program in accordance with one embodiment of the present disclosure.
FIG. 6 is a block diagram of a communications network in accordance with another embodiment of the present disclosure.
FIG. 7 is a block diagram of a computer device in accordance with one embodiment of the present disclosure.
DETAILED DESCRIPTION
A message routing method includes receiving a plurality of messages at a routing node. The routing node is configured to route each received message based on the message type. Accordingly, the routing node is able to establish a peer-to-peer connection between the message source and a destination node for a designated message type, while establishing a server-client connection between the message source and a server for other message types. The routing node can also route messages to different groups of destination nodes depending on the message type, thereby providing a flexible way to route messages over a network.
Referring to FIG. 1, a block diagram of a particular embodiment of a communications network 100 is illustrated. The communications network 100 includes an authority node 102, a data source node 104, a routing node 130, and communication nodes 120-124. The authority node 102, routing node 130, and communication nodes 120-124 are each connected to a network 110. In addition, the data source node 104 is connected to the authority node 102 and is also connected to the routing node 130. The authority node 102 is further connected to the routing node 130. As used herein a node refers to an electronic device in a network that is able to receive, transmit, or route a communication message. Nodes are also referred to herein as communication nodes.
For purposes of discussion herein, communication nodes are generally classified into one or more of several types, including authority nodes, data source nodes, routing nodes, and interested nodes (also referred to as destination nodes). As used herein, an authority node is a communication node configured to establish message routing rules based on requests from a data source node. As used herein, a data source node is communication node configured to generate messages for communication to other nodes. A message refers to a unit of information designated for communication to another node or nodes, and can typically be divided into data segments for communication via the physical layer of the network being used for communication. Thus, a message can be divided into multiple packets for communication via a packet-switched network. A routing node refers to a communication node that is configured to receive messages from other communication nodes, and route the received messages to one or more nodes based on one or more message routing rules. A routing node is distinguished from a routing device, such as a conventional router, in that the routing node is able to determine the message type and route the message to more than one destination node based on the message type. A router device, in contrast, routes a packet (which may be associated with a message) based on a packet address. An interested node refers to a communication node that is one of the targeted destinations of a message.
It will be appreciated that a particular communication node can be associated with more than one type of node. Thus, for example, a single communication node can be an authority node, a data source node, a routing node, an interested node, or any combination thereof. Moreover, although for purposes of discussion the communication nodes of FIG. 1 are illustrated as being of a particular node type, it will be appreciated that any of the illustrated nodes could also be associated with other types of communication nodes. Thus, for example, authority node 102 could also be a routing node, or a data source node, or an interested node, or any combination thereof.
It will further be appreciated that nodes can be associated with different types of electronic devices. For example, communication network 100 can be associated with a wide area network configuration, where network 110 represents the Internet or other wide area network. In this configuration, the authority node 102 and data source node 104 can be located at a server device, and communication nodes 120-124 can represent separate client devices, such as desktop computers, portable computers, cell phones, and the like. In another embodiment, communication network 100 can represent a communication network internal to an electronic device, where network 110 is a communication bus. In such an embodiment, the authority node 102 can be a data processor device, and communication nodes 120-124 can represent additional processor devices, peripheral devices, memory devices, and the like. For purposes of discussion herein, it is assumed that network 110 is a wide-area packet-switched network, such as the Internet.
In operation, data source node 104 can send a request to authority node 102 to establish node 104 as a data source node. This request may optionally contain a set of types of messages that the data source node is requesting to be able to generate. In response, authority node 102 can determine if the request is authorized, according to a set of authorization rules (such as password authentication or other security procedure). If the request is authorized, authority node 102 determines a set of message routing rules, based on the types of messages to be communicated by data source node 104 or based on the types of messages requested by the data source node 104. For example, authority node 102 can determine that data source node will be communicating three types of messages, and establish message routing rules for each type of message.
Authority node 102 communicates the message routing rules to the routing node 130. The message routing rules, as a whole, indicate the type of messages to be communicated and the interested nodes associated with each group. In an embodiment, the message type can be indicated by one or more fields in a header of a packet associated with the message. In another embodiment, the routing node 130 can determine the message type by inspecting the data payload of a packet associated with the message. In addition, in a particular embodiment, the message type refers to a characteristic of the message, such as an intended use of the message or a type of data being communicated by the message, that is different and distinct from a target or source address of packets associated with the message. This allows the routing node 130 to route messages (and their associated packets) based on criteria different from a particular address assigned by the data source node.
The authority node 102 can communicate the message routing rules to the routing node 130 using one or more control messages. For example, the authority node can communicate an ADD_CONNECTION_TO GROUP message, an ADD_MESSAGE_ROUTING_RULE_TO_GROUP message, a REMOVE_CONNECTION_FROM_GROUP message, and a REMOVE_MESSAGE_ROUTING_RULE_TO_GROUP message. In a particular embodiment, each node defines a connection based on an Internet Protocol (IP) address and port number. In response to the ADD_CONNECTION_TO GROUP message, the node will add an interested node to a group. In response to an ADD_MESSAGE_ROUTING_RULE_TO_GROUP message, the node will associate the group with a particular routing rule. The routing rule indicates what type of message gets sent to nodes in the group. In an embodiment, each message routing rule can indicate an offset, a size, and a value to which messages will be compared in order to determine if ADD_MESSAGE_ROUTING_RULE_TO GROUP message specifies the offset, size, value, and group with which the rule is associated. Thus, each group is associated with a particular message type, and indicates the interested nodes to which messages of that type should be communicated. The REMOVE_CONNECTION_FROM_GROUP message, and REMOVE_MESSAGE_ROUTING_RULE_TO_GROUP message remove a connection and a routing rule, respectively, from a designated group.
In response to receiving a message, the routing node 130 checks the offset, size, and value of the message, and based on this determination communicate the message to the interested nodes indicated by the group. It will be appreciated each group can indicate more than one interested node, so a particular message can be communicated to multiple interested nodes. For example, if a group includes connections indicating two different nodes, each received message associated with that group (i.e. each message of the message type associated with the group) will be communicated to each node in the group. The routing node 130 can determine an address, such as an IPv4 or other IP address, for each interested node, form packets including the message content addressed to each interested node, and route the packets to the interested nodes via the network 110. The routing node 130 thus provides an interface that allows the conventional network 110 to be employed to route packets to multiple interested nodes based on the type of received message.
Further, by using the authority node 102 to establish the message routing rules, the design of data source node 104 can be simplified. In particular, different data source nodes can communicate with authority node 102, which can establish message routing rules at the network 110 for different message types from each data source node. The establishment of message routing rules is thus abstracted from the data source nodes and the routing nodes, simplifying the design and operation of each node. In addition, it can reduce the communication bandwidth of the data source node 104 because the data source node does not itself have to communicate each message to each destination node. Moreover, by locating the routing nodes closer to the interested nodes, message communication latency can be reduced.
FIG. 2 illustrates a particular embodiment of a communications network 200. Communications network 200 includes authority node 202, data source node 204, a network 210, and communication nodes 220-224, each of which are configured similarly to the corresponding portions of communication network 100. In addition, in the illustrated embodiment of FIG. 2, the network 210 includes a router device 211 and routing nodes 231 and 232.
In the illustrated example of FIG. 2, it is assumed that data source node 204 has associated communication nodes 220-222 with a first group, designated Group A, and has associated communication nodes 223 and 224 with a second group, designated Group B. For example, data source node 204 can be a web server program that has determined nodes 220-222 should be provided with a first web page, while communication nodes 223 and 224 should be provided with a second, different web page. Accordingly, data source node 204 requests authority node 202 to establish node 204 as a data source node. In response, authority node 202 determines a set of message routing rules for each type of message associated with data source node 204. In particular, messages targeted to Group A are of a different type than messages targeted to Group B. Accordingly, authority node determines a set of message routing rules so that messages targeted to Group A (referred to as A-type messages) will be routed to communication nodes 220-222, and determines a set of message routing rules so that messages targeted to Group B (referred to as B-type messages) will be communicated to communication node 234 and communication node 235.
In response to determining the message routing rules, the authority node 202 communicates the message routing rules to routing nodes 231 and 232. In addition, authority node 202 communicates an address, such as an IP address, of each of the routing nodes 231 and 232 to data source node 204. The data source node 204 is configured to form one or more packets for each message to be communicated, with each packet including the address of the associated routing node, and provides each packet to the router device 211 for routing. Router device 211 does not route the received packets based on the type of message associated with each packet, but instead routes each packet based on the associated address. In an embodiment, the router device 211 is a unicast router device that is configured to route each packet to the associated unicast address. It will be appreciated that the network 210 can include additional router devices between each of the illustrated nodes. For example, additional router devices can be placed between the routing nodes 231 and 232 and the associated communication nodes. The routing nodes 231 and 232 can thus employ the router devices to route messages to interested nodes.
Data source node 204 communicates both A-type and B-type messages to router device 211, which routes the messages to one of routing nodes 231 or 232 based on the address of the packets associated with each message. Authority node 202 communicates message routing rules to routing node 231 so that all A-type messages are routed to each of communication nodes 220-222. In addition, authority node 202 communicates message routing rules to routing node 232 so that all B-type messages are communicated to routing nodes 223 and 224. Thus, data source node 204 does not have to determine the routing path for A-type message and B-type messages, but instead can rely on the message routing rules established by authority node 202 to handle message routing. This simplifies the design of data source node 204, improving communication efficiency.
Further, the routing nodes 231 and 232 are able to employ the routing devices that form the backbone of the network 210 to communicate messages. In an embodiment, the routing node 231 establishes a one-to-one connection with each of the communication nodes 220-222. As used herein, a one-to-one connection is a connection established based on an address of the destination node that is unique with respect to addresses of other destination nodes. By establishing one-to-one connections, the routing node 231 is able to route messages using one or more unicast routers, allowing messages to be routed to multiple destinations based on message type, without extensive redesign of the network 210.
Referring to FIG. 3, a block diagram of a communication network 300 implementing a network game is illustrated. Communication network 300 includes a server 305 and game clients 320-324 (which can also be game peers in a peer-to-peer network), each connected to a network 310 having routing nodes 330-332. Game server 305 includes a game content engine 304, which is configured as a data source node, and a game communication manger 302, which is configured as an authority node.
In operation, the game content engine 304 is configured to provide game content information for a network game, such as multiplayer online game (MOG), to game programs operating at game clients 320-324. In the illustrated embodiment, game clients 320-322 are assumed to be associated with a first group, designated Group A, while game clients 323 and 324 are associate with a second game group, designated Group B. The grouping of game clients can be based on one or more predetermined or dynamic criteria. For example, Group A and Group B may each be associated with participants of different player-vs.-player game sessions. In another embodiment, Group A may be associated with players in a first game region, while Group B is associated with players in a second game region. It will be appreciated that each game client or game peer can be a member of more than one group. Further, any arbitrary grouping can be employed for each type of message, so that two game clients or game peers can be in a first group for a first type of message and in two different groups for a second type of message.
Game communication manager 302 establishes, in response to request from game content engine 304, message routing rules for different message types associated with each group. Thus, messages associated with Group A (referred to as A-type messages) are routed, based on the message routing rules, to each of game clients 320-322, while messages associated with Group B (referred to as B-type messages, are routed to each of game clients 323 and 324. Because routing of types of messages is handled by the message routing rules, rather than by the game content engine determining a unique address for each targeted recipient of a message, the game content engine 304 is simplified and communications can occur more efficiently.
In addition, it will be appreciated that each game program and game client can act as a data source and routing node. This can be better understood with reference to FIG. 4, which illustrates a communication network 400. The communication network 400 includes a server 405, and game clients 420-424, each connected to a network 410. The game server 405 includes a server game program that is configured as a data source and authority node. Game client 420 includes a network interface 441 and a game program 442. The network interface 441 is a network interface card, processor, or other hardware module configured to interface with the network 410. The game program 442 is a program executing at a processor to interact with the server game program in order to provide a game experience to a user. The game program 442 can be executed at a different processor or other hardware module from the network interface 441. Game clients 421-424 can each be configured similarly to game client 420.
In the illustrated embodiment of FIG. 4, the network interface 441 can be configured as a routing node. In particular, network interface 441 can communicate a request to server game program 402 to be configured as a routing node. In response, server game program 402 can communicate message routing rules to the network interface 441 so that messages of different types can be routed to different destination nodes. In a particular embodiment, network interface 441 can employ the message routing rules to route messages directly to other game clients without sending the message through the server game program 402. For example, network interface 441 can receive a message from game program 442, indicating the user has interacted with the game in a particular way. The message will indicate a particular message type, indicating a group of game clients associated with the message, the type of interaction represented by the message, and the like. Based on the message type, the network interface 441 can route the message to another game client via the network 410 without routing the message via the server game program 402. The network interface 441 can thus establish a peer-to-peer connection between the game client 420 and each interested node for messages of a first message type, while establishing a client-server connection between the game client 420 and the server 405 for messages of a second message type. As used herein, a peer-to-peer connection refers to a connection between communication nodes where messages are routed between the nodes without routing the messages to a designated central server or set of servers for processing. A client-server connection refers to a connection where messages are routed to a designated server or set of servers for processing.
For example, if network interface 441 receives a message associated with Group A, which includes game client 421 and game client 422, network interface 441 can route a copy of the message to game client 421 and a copy of the message to game client 422, without routing the message copies through server game program 402. This allows game interactions to be communicated to the appropriate groups in a peer-to-peer fashion, without direct interaction with the server game program 402. Messages can thereby be communicated more quickly, providing for more efficient communication and an improved user experience. Further, the peer-to-peer communication is implemented using the message routing rules at the network interface 441 and other routing nodes, so that communication of messages to different game clients is relatively transparent to game program 442. Accordingly, game program 442 can communicate in a peer-to-peer fashion without extensive modification of the program.
This configuration allows for messages associated with different software applications, or different portions of a software application, to be routed via a peer-to-peer connection or via a server-client connection, depending on the application. For example, in some network games, the game program itself includes a chat portion, where game participants can send text or voice chat messages to other participants. These chat messages typically do not impact the game play itself. Accordingly, network interface 441 can route chat messages in a peer-to-peer fashion, while routing messages associated with game events (e.g. firing a weapon, moving a character, and the like) to the server game program 402 for processing. This allows the server game program 402 to process only those messages that impact the game play itself, improving communication bandwidth between the server game program 402 and the game participants.
Referring to FIG. 5, a particular embodiment of a communication network 500 implementing a peer-to-peer chat program is illustrated. The communication network 500 includes a server 505, and peer devices 520-524, each connected to a network 510. The server 505 includes a peer authentication module that is configured as an authority node. Peer device 520 is a computer device, such as a cell phone, desktop or laptop computer, and the like, that includes a network interface 541 and a chat program 542. The network interface 541 is a network interface card, processor, or other hardware module configured to interface with the network 510. The chat program 542 is a program executing at a processor to interact with the other chat programs at peer devices 521-524 to allow users to chat, via text input, voice input, and the like, with other users. The chat program 542 can be executed at a different processor or other hardware module from the network interface 541. Peer devices 521-524 can each be configured similarly to game client 520.
In the illustrated embodiment of FIG. 5, each of the peer devices 520-524 can be either a trusted peer or an untrusted peer. In particular, each peer device can provide authentication information via the network 510 to the peer authentication module 502. The peer authentication module 502 can perform an authentication procedure to determine if each peer device is a trusted or untrusted peer. A peer can also be untrusted if it provides no authentication information to the peer authentication module 502.
The network interface 541 can be configured as a routing node. In particular, network interface 541 can communicate a request to peer authentication module 502 to be configured as a routing node. In response, peer authentication module 502 can communicate message routing rules to the network interface 541 so that messages of different types can be routed to different destination nodes. In a particular embodiment, the message routing rules cause the network interface 541 to route messages between trusted peers without routing those messages via peer authentication module 502. Further, the message routing rules can cause messages to be routed to untrusted peers to be routed to peer authentication module 502, so that the module can perform designated security functions, such as encrypting messages, dropping messages, checking message content, and the like. The message routing rules thus establish a security protocol for trusted and untrusted peers without extensive modification of the chat program 542.
Referring to FIG. 6, another embodiment of a communication network 600 is illustrated. The communication network 600 is configured similarly to the communication network 500. However, in the communication network 600 the network interface 641 is configured as an authentication node and a data source node, as well as a routing node. Further, in the embodiment of FIG. 6, the network interface 641 is configured to perform an authentication procedure whereby it determines which of the nodes 620-624 are trusted peers. For example, network interface 641 can perform a password authentication procedure, an automated exchange of authentication codes or certificates, or other authentication procedure where it determines which of nodes 620-624 can be designated as trusted nodes or untrusted nodes. Further, network interface 641 can provide message routing rules to routing nodes in the network 610 or at the nodes 621-624 so that all messages of a type associated with an untrusted node are routed to the network interface 641 or other device for processing. Thus, in the illustrated embodiment of FIG. 6, message routing rules are determined and provided to each routing node from a peer in a peer-to-peer network, rather than from a central server or other device.
FIG. 7 illustrates a particular embodiment of a computer device 720, corresponding to a communication node, client device or peer device illustrated at FIGS. 1-6. The computer device 720 includes a processor 751 connected to a network interface device 741 and a memory 752. The memory 752 stores application programs 755 and 756, which are configured to manipulate the processor 751 to perform designated tasks. The network interface device 741 is a device, such as a network interface card, that is configured to provide a physical and logical interface to the network 110. In addition, the network interface is configured as one or more of a routing node, authentication node, and data source node as described with respect to FIGS. 1-7. Thus, in the illustrated embodiment of FIG. 7, the network interface 741 can perform the function of providing a network interface for communications from the processor 751, such as formation of packets and provision of a physical interface for packet communication to the network, and also perform the function of routing messages to different groups of interested nodes based on the message type. The network interface 741 can thereby increase the bandwidth of communications from the processor 751 without extensive modification of the application programs 755 and 756.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments that fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.

Claims (22)

What is claimed is:
1. A method for routing messages, the method comprising:
receiving, via a network interface of a routing node, a first message and a second message from a first data source node of a communication network;
determining, by a processor of the routing node, a first message type associated with the first message and a second message type associated with the second message based at least in part on inspecting a first data payload of the first message and a second data payload of the second message;
in response to determining, based at least in part on the first message type, that the first message is a first type of message, establishing a peer-to-peer connection at the routing node between the first data source node and a first destination node and routing the first message to the first destination node; and
in response to determining, based at least in part on the second message type, that the second message is a second type of message, establishing at the routing node a server-client connection between the first data source node and a server of the communication network and routing the second message to the server;
wherein the first type of message is associated with a first software component and the second type of message is associated with a second software component.
2. The method of claim 1, further comprising:
in response to determining that the first message is the first type of message, establishing a first plurality of peer-to-peer connections at the routing node between the first data source node and a first plurality of destination nodes comprising the first destination node and routing the first message to the first plurality of destination nodes;
receiving a third message; and
in response to determining that the third message is a third type of message, establishing a second plurality of peer-to-peer connections at the routing node between the first data source node and a second plurality of destination nodes and routing the third message to the second plurality of destination nodes, the second plurality of destination nodes different from the first plurality of destination nodes.
3. The method of claim 2, wherein:
said routing the first message of the first type of message to the first plurality of destination nodes comprises:
determining a first plurality of destination addresses associated with the first plurality of destination nodes, each of the first plurality of destination addresses uniquely associated with a corresponding one of the first plurality of destination nodes;
forming a first packet including at least a portion of the first message; and
routing the first packet to each of the first plurality of destination addresses; and
said establishing the server-client connection between the first data source node and the server comprises:
determining a server address associated with the server;
forming a second packet including at least a portion of the second message of the second type of message; and
routing the second packet to the server address.
4. The method of claim 1, further comprising:
receiving an establishment request from the first data source node;
in response to the establishment request, receiving a set of rules at the routing node, the set of rules indicating routing rules for the first type of message and the second type of message; and
routing the first type of message and the second type of message based on the routing rules.
5. The method of claim 1, wherein the first type of message is associated with a first game event of a network game and the second type of message is associated with a second game event.
6. The method of claim 1, further comprising:
receiving a third message and a fourth message at the routing node from the first data source node;
in response to determining that the third message is a third type of message, establishing at the routing node a second peer-to-peer connection between the first data source node and a second destination node; and
in response to determining that the fourth message is a fourth type of message, establishing at the routing node a second server-client connection between the first data source node, the second destination node, and the server.
7. The method of claim 1, further comprising:
receiving a third message at the routing node from a second data source node;
establishing at the routing node a second server-client connection between the second data source node, a second destination node, and the server in response to determining that the third message is a third type of message.
8. The method of claim 1, wherein establishing the peer-to-peer connection comprises establishing the peer-to-peer connection in response to determining the first destination node is a trusted node based on a trust authentication procedure.
9. The method of claim 8, wherein establishing the server-client connection comprises establishing the server-client connection in response to determining a second destination node is not a trusted node based on the trust authentication procedure.
10. The method of claim 9, wherein the trust authentication procedure is performed between the routing node and the first destination node.
11. The method of claim 1, wherein the routing node comprises a network interface card for a computer device.
12. The method of claim 1, wherein inspecting the first data payload comprises inspecting the first data payload according to a routing rule that indicates an offset into the first data payload and a size of the first message.
13. A method for routing messages, the method comprising:
receiving, via a network interface of a routing node, a first plurality of messages from a first data source node of a communication network;
determining, by a processor of the routing node, types of messages associated with the first plurality of messages received at the routing node from the first data source node;
in response to determining that a first message of the first plurality of messages is a first type of message, determining at the routing node a first group of destination nodes associated with the first type of message;
in response to determining that a second message of the first plurality of messages is a second type of message, determining at the routing node a second group of destination nodes associated with the second type of message, the second group of destination nodes different from the first group of destination nodes;
routing the first message of the first type of message to the first group of destination nodes via a first set of peer-to-peer connections; and
routing the second message of the second type of message to the second group of destination nodes via a second set of peer-to-peer connections, the second message not routed to the first group of destination nodes;
wherein the first type of message is associated with a first software component and the second type of message is associated with a second software component.
14. The method of claim 13, wherein routing the first message comprises:
establishing a one-to-one connection between the routing node and a destination node of the first group of destination nodes; and
routing the first message via the one-to-one connection.
15. The method of claim 13, further comprising:
receiving a communication rule at the routing node; and
determining the first group of destination nodes based, at least in part, on the communication rule.
16. The method of claim 13, wherein said determining the types of messages associated with the first plurality of messages comprises determining the types of messages associated with the first plurality of messages based, at least in part, on corresponding data payloads of the first plurality of messages.
17. The method of claim 15, wherein the communication rule indicates an offset value, and wherein routing the first message comprises determining the first group of destination nodes based on the offset value.
18. A network device, comprising:
a processor configured to execute a first software component and a second software component; and
a network interface device coupled with the processor, the network interface device configured to:
receive a first message and a second message from the processor;
determine, based at least in part on inspection of a first data payload of the first message and a second data payload of the second message, a first message type associated with the first message and a second message type associated with the second message;
in response to determining, based at least in part on the first message type, that the first message is a first type of message, establish a peer-to-peer connection between the network device and a first destination node and route the first message to the first destination node; and
in response to determining, based at least in part on the second message type, that the second message is a second type of message, establish a server-client connection between the network device and a remote server of a communication network;
wherein the first type of message is associated with the first software component and the second type of message is associated with the second software component.
19. The network device of claim 18, wherein the network interface device is further configured to:
in response to determining that the first message is the first type of message, establish a first plurality of peer-to-peer connections between the network device and a first plurality of destination nodes comprising the first destination node;
receive a third message; and
in response to determining that the third message is a third type of message, establish a second plurality of peer-to-peer connections between the network device and a second plurality of destination nodes, the second plurality of destination nodes different from the first plurality of destination nodes.
20. The network device of claim 19, wherein the network interface device is configured to provide a physical layer interface for communications between the processor and the communication network.
21. A network device, comprising:
a processor configured to execute a first software component and a second software component; and
a network interface device coupled with the processor, the network interface device configured to:
receive a first plurality of messages from the processor;
determine types of messages associated with the first plurality of messages ;
in response to determining that a first message of the first plurality of messages is a first type of message,
determine a first group of destination nodes associated with the first type of message;
route the first message of the first type of message to the first group of destination nodes via a first set of peer-to-peer connections; and
in response to determining that a second message of the first plurality of messages is a second type of message,
determine a second group of destination nodes associated with the second type of message, the second group of destination nodes different from the first group of destination nodes;
route the second message of the second type of message to the second group of destination nodes via a second set of peer-to-peer connections;
wherein the first type of message is associated with the first software component and the second type of message is associated with the second software component.
22. The network device of claim 21, wherein the network interface device is further configured to:
communicate an establishment request to a server of a communication network to be configured as a routing node; and
in response to the establishment request, receive a set of routing rules from the server and employ the set of routing rules to determine different groups of destination nodes associated with different types of messages and to route messages received at the network interface device from the processor to a corresponding group of destination.
US12/324,226 2007-11-29 2008-11-26 Remote message routing device and methods thereof Expired - Fee Related US9270570B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/324,226 US9270570B2 (en) 2007-11-29 2008-11-26 Remote message routing device and methods thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US99114007P 2007-11-29 2007-11-29
US12/324,226 US9270570B2 (en) 2007-11-29 2008-11-26 Remote message routing device and methods thereof

Publications (2)

Publication Number Publication Date
US20090141713A1 US20090141713A1 (en) 2009-06-04
US9270570B2 true US9270570B2 (en) 2016-02-23

Family

ID=40675632

Family Applications (1)

Application Number Title Priority Date Filing Date
US12/324,226 Expired - Fee Related US9270570B2 (en) 2007-11-29 2008-11-26 Remote message routing device and methods thereof

Country Status (4)

Country Link
US (1) US9270570B2 (en)
EP (1) EP2225664A4 (en)
KR (1) KR101561716B1 (en)
WO (1) WO2009070713A1 (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899849B2 (en) * 2008-05-28 2011-03-01 Zscaler, Inc. Distributed security provisioning
JP6432347B2 (en) * 2012-05-28 2018-12-05 三菱ケミカル株式会社 Method for producing conductive thin film laminate
GB2544318A (en) * 2015-11-12 2017-05-17 Vodafone Ip Licensing Ltd Router and message handler using target group selectors to target nodes in routing control messages
US10282719B1 (en) 2015-11-12 2019-05-07 Sprint Communications Company L.P. Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit
US9817992B1 (en) 2015-11-20 2017-11-14 Sprint Communications Company Lp. System and method for secure USIM wireless network access
US10499249B1 (en) * 2017-07-11 2019-12-03 Sprint Communications Company L.P. Data link layer trust signaling in communication network
US11077365B2 (en) 2018-06-27 2021-08-03 Niantic, Inc. Low latency datagram-responsive computer network protocol
KR20230132894A (en) 2019-02-25 2023-09-18 나이앤틱, 인크. Augmented Reality Mobile Edge Computing
US11063862B2 (en) * 2019-04-18 2021-07-13 Avaya Inc. Media path engineering for multi-homed devices
US11489763B2 (en) 2019-12-20 2022-11-01 Niantic, Inc. Data hierarchy protocol for data transmission pathway selection

Citations (75)

* 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
JPH10314451A (en) 1997-05-15 1998-12-02 Copcom Co Ltd Game 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
JP2001246147A (en) 1999-12-28 2001-09-11 Sega Corp Game facility administration system
US20010044842A1 (en) * 2000-05-17 2001-11-22 Nec Corporation Communication system, communication control method and control program storage medium
US20020078223A1 (en) 2000-10-17 2002-06-20 Baldonado Omar C. Method and apparatus for performance and cost optimization in an internetwork
US20020120711A1 (en) 2001-02-23 2002-08-29 International Business Machines Corporation Method and system for intelligent routing of business events on a subscription-based service provider network
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
US20030028585A1 (en) 2001-07-31 2003-02-06 Yeager William J. Distributed trust mechanism for decentralized networks
US20030117954A1 (en) * 2001-12-20 2003-06-26 Alcatel Telecommunications system employing virtual service network architecture
KR20030063543A (en) 2002-01-22 2003-07-31 한국전자통신연구원 Switch connection control apparatus for P-T-MP call of Permanent Virtual Channel in Open Switching System and method thereof
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
DE10218795A1 (en) 2002-04-22 2003-11-06 Deutscher Sparkassen Verlag Gm Chip card or security module production method in which the chip producer writes an authentication code, such as a cryptographic key, into the chip's non-volatile memory so that the memory can only be accessed using the key
US6650640B1 (en) * 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
US20040015596A1 (en) 2002-07-19 2004-01-22 Commerce One Operations, Inc. Electronic commerce community networks and intra/inter community secure routing implementation
US20040030794A1 (en) 2002-08-08 2004-02-12 Jean-Christophe Hugly System and method for multiplatform implementation of abstract software modules in peer-to-peer network environments
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
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
US6845389B1 (en) 2000-05-12 2005-01-18 Nortel Networks Limited System and method for broadband multi-user communication sessions
EP1519531A2 (en) 2003-09-25 2005-03-30 Microsoft Corporation Server control of peer to peer communications
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
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
US20050251577A1 (en) 2004-04-20 2005-11-10 Microsoft Corporation Peer-to-peer (P2P) mobility system, and method
US20050273855A1 (en) * 2004-06-07 2005-12-08 Alcatel Method for preventing attacks on a network server within a call-based-services-environment and attack-prevention-device for executing the method
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
US20060136722A1 (en) 2004-12-22 2006-06-22 Fujitsu Limited Secure communication system and communication route selecting device
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
US20070014292A1 (en) 2005-07-14 2007-01-18 Hitoshi Obata Protocol optimization for wireless networks
US20070060373A1 (en) 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
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
US20070130253A1 (en) 2000-03-07 2007-06-07 Microsoft Corporation System and method for multi-layered network communications
US20070133419A1 (en) * 2005-12-13 2007-06-14 Alcatel Communication traffic congestion management systems and methods
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
US20070285385A1 (en) * 1998-11-02 2007-12-13 E Ink Corporation Broadcast system for electronic ink signs
US20070298879A1 (en) * 2005-06-30 2007-12-27 Konami Digital Entertainment Co., Ltd. Game Device
US20070297405A1 (en) 2004-12-31 2007-12-27 Liwen He Method of Operating a Network
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
US7457290B1 (en) * 1998-08-25 2008-11-25 Cisco Technology, Inc. Method and apparatus for automatic inter-domain routing of calls

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807165B2 (en) 2000-11-08 2004-10-19 Meshnetworks, Inc. Time division protocol for an ad-hoc, peer-to-peer radio network having coordinating channel access to shared parallel data channels with separate reservation channel
US7010534B2 (en) 2002-11-16 2006-03-07 International Business Machines Corporation System and method for conducting adaptive search using a peer-to-peer network
US20050198351A1 (en) * 2004-02-20 2005-09-08 Microsoft Corporation Content-based routing

Patent Citations (76)

* 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
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
JPH10314451A (en) 1997-05-15 1998-12-02 Copcom Co Ltd Game device
US7249109B1 (en) 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Shielding manipulations of secret data
US20070226498A1 (en) 1997-07-15 2007-09-27 Silverbrook Research Pty Ltd Validating Apparatus For Use With A Pair Of Integrated Circuits
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
US7457290B1 (en) * 1998-08-25 2008-11-25 Cisco Technology, Inc. Method and apparatus for automatic inter-domain routing of calls
US20070285385A1 (en) * 1998-11-02 2007-12-13 E Ink Corporation Broadcast system for electronic ink signs
US6650640B1 (en) * 1999-03-01 2003-11-18 Sun Microsystems, Inc. Method and apparatus for managing a network flow in a high performance network interface
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
JP2001246147A (en) 1999-12-28 2001-09-11 Sega Corp Game facility administration system
US20070130253A1 (en) 2000-03-07 2007-06-07 Microsoft Corporation System and method for multi-layered network communications
US6845389B1 (en) 2000-05-12 2005-01-18 Nortel Networks Limited System and method for broadband multi-user communication sessions
US20010044842A1 (en) * 2000-05-17 2001-11-22 Nec Corporation Communication system, communication control method and control program storage medium
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
US20020120711A1 (en) 2001-02-23 2002-08-29 International Business Machines Corporation Method and system for intelligent routing of business events on a subscription-based service provider network
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
US20030028585A1 (en) 2001-07-31 2003-02-06 Yeager William J. Distributed trust mechanism for decentralized networks
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
US20030117954A1 (en) * 2001-12-20 2003-06-26 Alcatel Telecommunications system employing virtual service network architecture
KR20030063543A (en) 2002-01-22 2003-07-31 한국전자통신연구원 Switch connection control apparatus for P-T-MP call of Permanent Virtual Channel in Open Switching System and method thereof
US20050107161A1 (en) 2002-02-01 2005-05-19 Jun Fujimoto Game execution system and game execution method
US20080010371A1 (en) 2002-02-01 2008-01-10 Masaya Yamamoto License information exchange system
US7209449B2 (en) 2002-03-27 2007-04-24 Intel Corporation Systems and methods for updating routing and forwarding information
DE10218795A1 (en) 2002-04-22 2003-11-06 Deutscher Sparkassen Verlag Gm Chip card or security module production method in which the chip producer writes an authentication code, such as a cryptographic key, into the chip's non-volatile memory so that the memory can only be accessed using the key
US20040015596A1 (en) 2002-07-19 2004-01-22 Commerce One Operations, Inc. Electronic commerce community networks and intra/inter community secure routing implementation
US20040030794A1 (en) 2002-08-08 2004-02-12 Jean-Christophe Hugly System and method for multiplatform implementation of abstract software modules in peer-to-peer network environments
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
US20070005986A1 (en) 2003-09-09 2007-01-04 Axalto S.A. Authentication method in data communication and smart card for implementing the same
EP1519531A2 (en) 2003-09-25 2005-03-30 Microsoft Corporation Server control of peer to peer communications
US20050251577A1 (en) 2004-04-20 2005-11-10 Microsoft Corporation Peer-to-peer (P2P) mobility system, and method
US20050273855A1 (en) * 2004-06-07 2005-12-08 Alcatel Method for preventing attacks on a network server within a call-based-services-environment and attack-prevention-device for executing the method
US20070189517A1 (en) 2004-12-20 2007-08-16 International Business Machines Corporation Pseudo public key encryption
US20060136722A1 (en) 2004-12-22 2006-06-22 Fujitsu Limited Secure communication system and communication route selecting device
US20070297405A1 (en) 2004-12-31 2007-12-27 Liwen He Method of Operating a Network
US20080049621A1 (en) 2004-12-31 2008-02-28 Mcguire Alan Connection-Oriented Communications Scheme For Connection-Less Communications Traffic
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
US20070014292A1 (en) 2005-07-14 2007-01-18 Hitoshi Obata Protocol optimization for wireless networks
US7640297B2 (en) * 2005-07-14 2009-12-29 Gemini Mobile Technologies, Inc. Protocol optimization for wireless networks
US20070060373A1 (en) 2005-09-12 2007-03-15 Bigfoot Networks, Inc. Data communication system and methods
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
US20070133419A1 (en) * 2005-12-13 2007-06-14 Alcatel Communication traffic congestion management systems and methods
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

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"European Application No. 08854980.3, Communication pursuant to Article 94(3) EPC", Oct. 1, 2013 , 5 pages.
"Korean Application No. 2010-7014093, KIPO Notice of Grounds for Rejection", Sep. 12, 2014, 8 pages.
European Search Report for Application No. 08854980.3 dated Oct. 12, 2010, 6 pages.
International Search Report for PCT/US08/84937 dated Nov. 26, 2008, 2 pages.
Written Opinion-PCT/US2008/084937-ISA/EPO-Nov. 26, 2008.

Also Published As

Publication number Publication date
EP2225664A4 (en) 2010-11-10
US20090141713A1 (en) 2009-06-04
EP2225664A1 (en) 2010-09-08
KR101561716B1 (en) 2015-10-19
WO2009070713A1 (en) 2009-06-04
KR20100108354A (en) 2010-10-06

Similar Documents

Publication Publication Date Title
US8289867B2 (en) Message routing mechanism for communication networks
US9270570B2 (en) Remote message routing device and methods thereof
US9667713B2 (en) Apparatus and method for managing peer-to-peer connections between different service providers
US9319467B2 (en) Apparatus and method for efficiently and securely exchanging connection data
US9119067B2 (en) Embodiments of a system and method for securely managing multiple user handles across multiple data processing devices
US8958559B2 (en) System and method for secure instant messaging
US9118690B2 (en) Apparatus and method for matching users for online sessions
US9078128B2 (en) System and method for secure identity service
US8412833B2 (en) Apparatus and method for inviting users to online sessions
US8438294B2 (en) Application programming interface, system, and method for collaborative online applications
US8819244B2 (en) Apparatus and method for establishing and utilizing backup communication channels
US9191219B2 (en) Network multicast peer discovery methods
AU2012262053A1 (en) System and method for secure instant messaging
KR20220066154A (en) Account linking method and apparatus, storage medium and electronic device
US8959243B2 (en) System and method to guide active participation in peer-to-peer systems with passive monitoring environment
Evans Methods for secure decentralized routing in open networks
Zantout et al. A comparative study of BitTorrent and NetCamo data communication systems
Juste A peer-to-peer architecture for social networking applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: BIGFOOT NETWORKS, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BEVERLY, HARLAN T.;REEL/FRAME:021928/0915

Effective date: 20081124

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

AS Assignment

Owner name: QUALCOMM INCORPORATED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:QUALCOMM ATHEROS, INC.;REEL/FRAME:029503/0936

Effective date: 20121022

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20200223