U.S. Pat. No. 10,771,547

ONLINE MATCHMAKING FOR P2P TOPOLOGIES

AssigneeSony Interactive Entertainment LLC

Issue DateJune 14, 2017

Illustrative Figure

Abstract

For improved peer to peer matchmaking network information is obtained from a plurality of devices and a plurality of users is selected to form peer to peer connections via corresponding devices to create a set of potential matches. Device connection statistics for each pair of devices in the set of potential matches are obtained and compared to one or more threshold values. Users with devices that have at least one connection statistic that does not satisfy a threshold condition for that connection statistic are removed from the set of potential matches. Replacements for the removed devices are selected and the match making refinement process repeated until all of the device connection statistics satisfy all conditions associated with the one or more threshold values to generate a refined set of matched peers. Peer to peer connections may then be initiated among the refined set of matched peers.

Description

DESCRIPTION OF THE SPECIFIC EMBODIMENTS Although the following detailed description contains many specific details for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the exemplary embodiments of the invention described below are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention. Peer to peer networks are common connection architectures for simulated environments such as video games. These peer to peer networks allow users to connect to each other without connecting to a common server forming what is referred to as a peer grid. To form these connections the peer devices may connect to a match making server. The match making server chooses peer devices to match and facilitates the connections between the peers. FIG. 1shows a method100for enhanced matchmaking according to aspects of the present disclosure. As an initial step each device may register with the match making server as indicated at101to initiate the match making process. The devices may send network information to the matchmaking server to facilitate an improved connection matching process. The network information may include information such as game or application/service name as seen for example in TABLE 1, NAT type, UPnP availability, router brand, router model, router firmware version, network adapter settings, firewall type, firewall settings, external ip address, etc. According to some embodiments of the present disclosure the matchmaking server may use a device Media Access Control (MAC) address to determine router brand and model information. Additionally, the network information may include geographical network information. As used herein, the term geographical network information refers to locational information, such as intranet, extranet, campus network information. By way of example, and not by way of limitation some ...

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Although the following detailed description contains many specific details for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the exemplary embodiments of the invention described below are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention.

Peer to peer networks are common connection architectures for simulated environments such as video games. These peer to peer networks allow users to connect to each other without connecting to a common server forming what is referred to as a peer grid. To form these connections the peer devices may connect to a match making server. The match making server chooses peer devices to match and facilitates the connections between the peers.

FIG. 1shows a method100for enhanced matchmaking according to aspects of the present disclosure. As an initial step each device may register with the match making server as indicated at101to initiate the match making process. The devices may send network information to the matchmaking server to facilitate an improved connection matching process. The network information may include information such as game or application/service name as seen for example in TABLE 1, NAT type, UPnP availability, router brand, router model, router firmware version, network adapter settings, firewall type, firewall settings, external ip address, etc. According to some embodiments of the present disclosure the matchmaking server may use a device Media Access Control (MAC) address to determine router brand and model information. Additionally, the network information may include geographical network information. As used herein, the term geographical network information refers to locational information, such as intranet, extranet, campus network information. By way of example, and not by way of limitation some internet service providers (ISP) or networks, e.g., university networks, may prohibit P2P connections from outside the ISP or network for certain applications.

After registration with the matchmaking server a matchmaking process is initiated102. Prior to the present disclosure match making servers would choose clients based information such as win rate or rank or queue position. Methods for collection and generation of player statistics which may be used for match making are described, e.g., in commonly owned U.S. Pat. No. 8,998,723, which is incorporated herein by reference.

A widely used match making algorithm is the Elo rating system. The Elo rating system ranks players based on wins losses and draws. Players lose or gain ratings based on their rating and the expected score of each match. Thus matching players by Elo rating is an appropriate way to generate fair and competitive teams.

According to embodiments of the present disclosure the matchmaking server may initially choose devices as potential peer to peer matches based on user statistics102such as user rank, win/loss ratio, community rating, Elo rating etc. Alternatively the matchmaking server may match devices based on an overall connection success rate associated with the device.

Match Refinement Process

Once a set of potential peer to peer matches has been selected the matchmaking server may begin the match refinement process. According to one embodiment of the present disclosure the matchmaking server may have a database of connection statistics for connections between peers of various hardware configurations. The database may be comprised of matched pairs of network information associated with a connection rate statistic as seen in TABLE 1. The connection rate statistic may be an average connection rate, an average connection failure rate, a percentage connection success rate, a percentage connection failure rate etc. There may also be additional information about the historical connections between the two network configurations for example the average time it takes to form a connection between the devices, the average connection length between the devices, etc. To assist in searching the database may be encoded with a hash-function.

TABLE 1Device 1Device 2Average connection success rateGame XGame X0.99Cone NATCone NATD-link routerTP-linkAC1900Archer C1200Firmware V 1.0Firmware V1.9Firewall: NoFirewall: YesNoneStateful

The matchmaking server may query the database to determine the connection statistics of each pair of devices in the set of potential peer to peer matches, as indicated at103. Once connection statistics have been gathered for all devices in the set of potential peer to peer matches the connection statistics are compared to threshold values, as indicated at104. By way of example and not by way of limitation the threshold values may be a single global threshold set by the matchmaking server, alternatively the thresholds may be determined by an application or game, or the thresholds may be determined experimentally or statistically based on hardware configurations or application type.

Devices may be removed from the set of potential peer to peer matches depending upon whether they satisfy a threshold condition, as indicated at105. By way of example and not by way of limitation the threshold may be an average connection success rate threshold. In that case devices with connection statistics below the threshold would be removed. Alternatively the threshold may be average connection failure rate, in which case devices with connection statistics above the threshold would be removed. It should be understood that the threshold could be set for other values such as time to connect, latency, etc. Fault tolerance may further be embedded in the matchmaking method by allowing for a pre-determined amount of connection statistics of device pairs to fail to satisfy the threshold condition before removing the device. This pre-determined amount may be determined as a trade-off between matchmaking search time and connection failure rates. Alternatively the pre-determined amount may be decided experimentally on a global or per application basis.

TABLE 1 may include geographic network information as discussed above and such information may be used to determine devices for which outside P2P connections for the application are blacklisted by their ISP or network and will not be considered for matchmaking. This allows the application to perform P2P connection attempts smoothly and quickly, without wasting time on devices for which there is a high degree of confidence they will fail to connect with others. Such devices may also simultaneously be informed that their network or ISP is the most likely reason why they are unable to participate.

While the connection statistics for device pairs is disclosed it should be understood that the current disclosure is not so limited. Connection statistics may be expanded to represent connection statistics between networks or network providers or geographical areas. By way of example and not by way of limitation a University network may block a certain ports that are used for gaming due to security policy, a person trying to make a peer to peer connection from the University network would be able to connect to the matchmaking server but fail all peer to peer connections. In this case the system will determine that devices within the IP range of the University network all fail all peer to peer connections and remove the devices without determination of connection statistics on a device level.

It should be understood that within the connection statistics devices are represented by the collection of network components provided to the matchmaking server as network information. Connection statistics may be generalized to represent all devices that have similar or identical network configurations. Connection statistics may also be refined to a more granular level where rates of success or failure are represented on per component basis for each matched pairs or each individual device. In the granular case the connection success or failure rates on a per component basis may be averaged to determine an overall connection statistic for the device pair although other forms of statistical analysis such as variance, median or range may be used. In other embodiments the component level rates of success or failure may be weighted before averaging to generate an overall connection statistic for the device pair.

Component level statistics may be further refined by removing or de-valuing statistics that do not contribute to the success or failure of connections. Component level statistic predictions may be compared to the real success or failure outcomes. If the component level statistic predictions are found to not meet a certain threshold for accuracy of prediction then that component level statistic may be removed from consideration. By way of example and not by way of limitation, if it is found that router firmware connection statistics only have a 50% chance of accurately predicting connection success or failure the system will place 0 weight on router firmware version when determining the overall connection statistic.

The matchmaking server may be configured to notify111the devices of the reason for removal. By way of example and not by way of limitation the match making server may be configured to send a pop-up message to the device describing the reasons why the device was removed from the match. Alternatively the device may be configured to receive connection statistics and determine the reason it was removed from the potential match on its own by comparing the connections statistics to a threshold.

While a process for matchmaking refinement is disclosed above on the for peer to peer devices, it should be understood that it is not so limited. The peer to peer matchmaking refinement process may be used to determine matches between client devices, home servers and UDP servers. By way of example and not by limitation a UDP server may be construed as a type of peer; albeit one that is hosted in a datacenter or in the cloud. The current disclosure would apply just the same, whereby a device or devices that have problems connecting to the UDP server could have their connection statistics used by the matchmaking server to determine that this particular device or devices are problematic when trying to communicate with this particular UDP server.

Device Replacement

Once a device has been removed from the set of potential peer to peer matches at105the matchmaking server may select another device from the devices connected to, or registered with the matchmaking server, as indicated at106. As before the devices may be selected according to a rank or rating based match-making algorithm such as Elo or on a matchmaking queue or some combination of the two.

After a replacement device is chosen at106the matchmaking server will begin the match refinement as discussed above. In this replacement case the connection rate statistics queried at103by the match-making server may be limited to connection statistics for matches between the replaced device and the other devices as it has already been determined that the connection statistics between the non-replaced devices meet the thresholds at104. Alternatively the matchmaking server may recheck the connection statistics of all device pairs against one or more thresholds at104to ensure that there has been no change in the compatibility of the devices for peer to peer connections.

If it is determined that one or more devices do not meet one or more thresholds after replacements have been selected at107, the process will repeat and the devices that have connection statistics that do not satisfy the threshold condition will be removed and replaced as described above. This process will continue until all connection statistics at least satisfy the threshold condition at107. Alternatively the match maker may allow for a certain number of devices to have connection statistics that fail to satisfy the threshold condition before repeating the removal process at107. By way of example and not by way of limitation, the match making server may allow for 4 devices to have a connection success rate below a threshold of 0.95 before repeating the removal and replacement process described above. This failure allowance could be a preset number or on a sliding scale that depends on the number of times the process has repeated. In this way the matchmaker could be arranged to trade match making time for likelihood of connection success. As an example the match maker could first be set to allow 2 connection statistics to be below a threshold before removing a device and replacing the device and after replacement the matchmaker could be set to allow 4 connection statistics to be below a threshold.

Initiating a Connection

According to aspects of the present disclosure the matchmaking server will initiate connections between the devices after the match refinement process has completed, as indicated at108. To initiate a connection between devices at108the matchmaking server may send a message to each device to begin a connection process between the devices. The message sent to each device may include list of addresses and ports for each device that has been selected during the match making process described above, this list hereinafter will be referred to as the refined set of matched peers. This refined set of matched peers may be edited by the matchmaking server to exclude the address of the device that is receiving the list. Alternatively the device receiving the refined set of matched peers list may recognize its own address and ignore that address. Further aspects of peer to peer connection and NAT navigation are described in commonly owned U.S. Pat. No. 8,224,985, which is incorporated herein by reference.

In alternative embodiments of the present disclosure the match making server may begin a host selection process using the refined set of matched peers after the match refinement process has completed to initiate connections between the peers at108. The matchmaking server may select a host and share the host information with the other peers. The host in a peer to peer scheme has special responsibilities and therefore the stability and compatibility of the host system with the peers is important. It may be advantageous for the matchmaking server to select the host based on connection statics. By way of example and not by way of limitation the matchmaking server may select the device with the highest connection success rate or lowest connection failure rate to be the host. Additional aspects of host selection are described in commonly owned U.S. Pat. No. 8,060,626 incorporated herein by reference.

Collecting Connection Success or Failure Information

According to an embodiment of the present disclosure the matchmaking server collects connection failure or success information from the devices, as indicated at109. To collect the connection success or failure information the match making server may send a request to the devices for information about whether the connection peer to peer connections between the devices in the refined set of matched peers succeeded. Alternatively the request may be for whether a peer to peer connection failed. According to other embodiments of the present disclosure the devices may be configured to send a message to the match making server representing a success or alternatively a failure to connect to one or more of the peers at109.

The connection success or failure information collected at109may simply be a signal or message representing whether a connection between a pair of peers succeeded or failed. Connection or failure information collected at109may be limited to a signal or message representing only a failure to connect or only a successful connection. For each connection made by each device there may be connection or failure information generated and sent to the match making server or a connections statistics database. Devices may also be configured to send additional information to the matchmaking server including network information as discussed above, the time it takes for each peer to connect, how many times the device has unexpectedly dropped a connection to a peer, the TCP/IP port the device was connection to, whether the connection was wired or wireless, Wireless connection information such as signal strength or interference, time of day, connection traceroute or latency information and the like. In particular tracerout information is useful to log the most likely connectivity path taken during the attempted connection to the peer, and possibly identify route related issues. Connection success or failure information need not be limited to a single application or hardware device. The matchmaking server or connection statistics database may collect connection success or failure information for all peer to peer connections made by devices in communication with the server or database.

Generating Statistics

After the connection failure or success information has been collected the matchmaking server may generate or update connection statistics associated with the devices involved in the connection failure or success information, as indicated at110. The matchmaking server may also use the network information associated with the devices to define and further analyze the connection failure or success information. The match making server may generate an average success rate value or percentage by taking the number of successful connection attempts divided by the total number of connection attempts. Alternatively the server may generate an average failure rate by taking the number of failed attempts divided by the total number of connection attempts. This information may be matched to each device or each device pair according to network information. By way of example and not by way of limitation a device having a cone NAT with router X firmware 1.2 for their router and no firewall may have a 98% connection success rate with a device having a restricted NAT, with router Z firmware 0.5 and no firewall. This pair wise match could be represented as a single connection success statistic for the pair of devices and generalized to all devices with identical network information to the devices in the pair as seen in TABLE 2. The system could use the determined connection statistics for other pairs of devices having the same network information.

TABLE 2CLIENT 1CLIENT 2RESULTAccount AAccount QSuccessCone NATRestricted NATX Firmware 1.2Z Firmware 0.5No firewallNo FirewallAccount BAccount RSuccessCone NATRestricted NATX Firmware 1.2Z Firmware 0.5No firewallNo FirewallAccount AAccount SSuccessCone NATRestricted NATX Firmware 1.2Z Firmware 0.5No firewallNo FirewallAccount CAccount QFailCone NATRestricted NATX Firmware 1.2Z Firmware 0.5No firewallNo FirewallAccount DAccount QSuccessCone NATRestricted NATX Firmware 1.2Z Firmware 0.5No firewallNo FirewallSuccess Rate = 0.8

In other implementations, as can be seen in TABLE 3 below, a single connection success rate or single connection failure rate is computed for each unique set of network information. TABLE 4 shows an alternative representation of the connection statistics. In this embodiment each component of the network information is paired and associated with a connection statistic such as success rate.

TABLE 3CLIENTRESULTCone NATSuccessX Firmware 1.2No firewallCone NATSuccessX Firmware 1.2No firewallCone NATSuccessX Firmware 1.2No firewallCone NATSuccessX Firmware 1.2No firewallCone NATFailX Firmware 1.2No firewallAVG Success rate = 0.8

TABLE 4 shows an alternative representation of the connection statistics. In this embodiment each component of the network information of a first client/peer is matched with the component of the network information of a second client/peer when they attempt a connection. These component pairs are then associated with a connection statistic such as success rate.

TABLE 4Component 1Component 2ResultCone NATRestricted NATSuccessCone NATRestricted NATFailureCone NATRestricted NATSuccessCone NATRestricted NATSuccessCone NATRestricted NATSuccessAVG Success Rate = 0.8

Alternatively as shown in TABLE 5 each network component for a for a client/peer may have a simple failure/success rate associated with it, without consideration for the differences in hardware of peers.

TABLE 5ComponentResultX Firmware 1.2SuccessX Firmware 1.2SuccessX Firmware 1.2FailureX Firmware 1.2SuccessX Firmware 1.2SuccessAVG Success rate = 0.8

TABLE 6 shows an embodiment of the present disclosure where each component of the network information has an associated connection statistic. In the disclosed embodiment the connection statistics are for each component for the network information for the device is averaged to create an overall connection success rate for the pair of devices.

TABLE 6Client 1Client 2RateCone NATRestricted NAT0.97X Firmware 1.2Z firmware 0.50.99No FirewallNo Firewall0.98TotalTotal2.94Success rate = 0.98

It should be the clear from the disclosed embodiments that the connection statistics are not limited to an average. The disclosed embodiments may use other statistics such as the median connection success or failure rate, the mode, the lowest connection statistic, the variance of statistics or any other statistical method to accurately model whether a client's attempt to form a connection with a peer will be successful.

In an alternative implementation illustrated inFIG. 2the matchmaking server may act as a relay for a connection statistics database. In an alternative method200shown inFIG. 2, the matchmaking server may register devices and collect the network information, as indicated at201. The matchmaking server would then send the network information to a server that handles the connection statistics database, as indicated at203. The network information may also include information about the past successful and unsuccessful peer to peer connections made by the device. In any case the matchmaking server may send a request to the connection statistics server for statistical information203about a client or client pair and receive statistical information204from the connection statistics server. Other portions of the method200correspond to those of the method100ofFIG. 1, as indicated by reference numerals common to both figures.

In alternative implementations, the connection statistics may be implemented on a separate database, which may be implemented by a separate server from the matching server. The separate server is referred to herein as a connection statistics server or statistics server to distinguish it from the matchmaking server. It is possible that the functions of both the statistics server and the matchmaking server may be implemented on the same computer system, however aspects of the present disclosure are not limited to such implementations.

FIG. 3depicts an example of a method300for obtaining the connection statistics with such a separate server. In this implementation each client device may register with both the matchmaking server and the statistics database. Alternatively the matchmaking server may send device network information to the connection statistics database or the database may request information from the matchmaking server.

Once a connection is initiated the devices may be configured to send a message to the database indicating whether the peer to peer connections succeeded, or failed. Alternatively the matchmaking server may receive connection or failure messages from the devices and relay those messages to the connection statistics database. However it is generated, the statistics server receives this peer connection success or failure information, as indicated at301. As discussed above, the connection success or failure information collected at301may be a signal or message representing whether a connection between a pair of peers succeeded or failed. As in the above example, connection success or failure information need not be limited to a single application or hardware device. The matchmaking server or connection statistics database may collect connection success or failure information for all peer to peer connections made by devices in communication with the server or database.

Connection statistics associated with the devices involved in the connection failure or success information may be generated or updated in the manner described above, as indicated at110. The statistics server may receive a request for peer connection statistics as indicated at302, e.g., from a matchmaking server. Subsequently, the statistics server may reply to such a request by sending the requested statistics, as indicated at303.

Embodiments of the disclosed connection statistics may be implemented by a matchmaking server with an integrated connection statistics database or alternatively the statistical analysis may be performed by a separate connection statistics server in communication with a matchmaking server that implements the method100ofFIG. 1or the method200ofFIG. 2. The statistics server may be built upon existing peer to peer connection databases or may be developed by collecting peer to peer connection success or failure information for a training period before implementing the disclosed match refinement scheme. The statistics server receives information based on the attributes of various devices and the outcomes of their connection attempts. The depth of the attributes determines how advanced the query will be. A connection statistics dataset, once established can be used by multiple different applications, and may evolve over time as entries get aged out and re-tested to confirm their most recent values for connectivity success rates. The matchmaking server may also communicate connection success or failure information to the connection statistic server. Alternatively each peer device may be configured to report the connection success or failure information at301to the connection statistic server. In the case of peer devices configured to communicate success or failure information, connection statistics server may be configured to cull duplicate entries based on a time-stamp of when the connection was attempted.

Systems

FIGS. 4A and 4Bshow network configurations according to aspects of the present disclosure.FIG. 4Adepicts an embodiment with separate matchmaking server200S and connection statistics server300S. Each of the peer devices401may be behind a router having or switch having a NAT402. The peer devices are configured to from connections403to matchmaking server200and connect405the connection statistic server300through the NAT402. The matchmaking server may initiate peer to peer connections404through the router and NAT402.FIG. 4Bdepicts another embodiment where the connection statistic server and matchmaking server have been integrated into a single server100S. Thus inFIG. 4Bthe peers only need to form connections403to the integrated statistics and matchmaking server100S.

FIG. 5depicts the coordinated operation of the matchmaking server and the connection statistics database according to an embodiment of the present disclosure. Each peer401may initially register or connect with the matchmaking server200, as indicated at101. The matchmaking server may maintain a list of active peers501which are peers currently connected or recently registered with the matchmaking server. The matchmaking server may initially match peers F based on a ranking or some other metric as discussed above. Once the matchmaking server as created a set of potential matches502it will begin the match refinement process. The match refinement process begins in this embodiment with the matchmaking server200sending the network information of the peers and a request for connection statistics503to the connection statistics server300, the connection statistics server will query its database and send back the connection statistics504for each device pair in the set of potential matches503. The matchmaker will compare the device statistics to the threshold and remove devices that are below the threshold505. It should be noted that the matchmaking server may receive the threshold from the connection statistics server as depicted or the matchmaking server may have a threshold set on for instance a per application basis. The matchmaker may then select another peer506based on a ranking or metric as before and retrieve the connection statistics for the new pair507. As before the matchmaking server will compare the connection statistics to a threshold508. If all devices satisfy the condition associated with the threshold508then the match making server will initiate510a connection between set of refined matches509. In this embodiment the peers401are configured to notify the connection statistic database of their connection success or failure information511after they have initiated a connection attempt510. The connection statistics database will then generate and update the connection statistics504for based on the information received from the peers. Once peer to peer connections have been generated and connection success or failure information has been received the system will be ready to start the connection process again. It should be understood that multiple matchmaking processes as described may be occurring at once.

The block diagram shown inFIG. 6schematically illustrates certain details of aspects of the present disclosure within the particular context of matchmaking. In this example, a connection statistics server607may be accessed by a matchmaking server602over a network660. The matchmaking server602may connect with multiple connection statistics server607over the network660. Connection statistics servers607may be identical to each other, or they may each have a different connection statistic database.

Alternatively the matchmaking server602may have a connections statistics database stored in mass storage634or in memory632. In this case the matchmaking server602CPU631would be programmed633to carry out connection statistics analysis and peer-to-peer matching, e.g., as described above with respect to method100ofFIG. 1or method200ofFIG. 2. The program633may access a connection statistics database, which may be stored as data636in the memory632or in a mass storage device634or in some combination of both.

The matchmaking server602may include a central processor unit (CPU)631. By way of example, a CPU631may include one or more processors, which may be configured according to, e.g., a dual-core, quad-core, multi-core, or Cell processor architecture. The matchmaking server602may also include a memory632(e.g., RAM, DRAM, ROM, and the like). The CPU631may execute a connection statistics analysis and peer-to-peer matching program633, portions of which may be stored in the memory632. The matchmaking server602may also include well-known support circuits640, such as input/output (I/O) circuits641, power supplies (P/S)642, a clock (CLK)643and cache644. The matchmaking server602may optionally include a mass storage device634such as a disk drive, CD-ROM drive, tape drive, or the like to store programs and/or data. The matchmaking server602may also optionally include a display unit637and a user interface unit638to facilitate interaction between the matchmaking server602and a user who requires direct access to the matchmaking server602. The display unit437may be in the form of a cathode ray tube (CRT) or flat panel screen that displays text, numerals, or graphical symbols. The user interface unit638may include a keyboard, mouse, joystick, light pen, or other device. The matchmaking server602may include a network interface639, configured to enable the use of Wi-Fi, an Ethernet port, or other communication methods. The matchmaking server602may be configured to carry out the improved matchmaking method according to aspects of the present disclosure, the method may be embodied in a computer readable medium contained within the mass storage device634or embodied in memory632or a cache644.

The network interface639may incorporate suitable hardware, software, firmware or some combination of two or more of these to facilitate communication via an electronic communications network660. The network interface639may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The matchmaking server602may send and receive data and/or requests for files via one or more data packets including network information over the network660from client devices661or the connection statistics server607. The matchmaking server602is configured to connect with one or more client device/s661. The matchmaking making server602according to embodiments of the present disclosure is configured to facilitate peer to peer connections between client devices661. The client devices may run a matchmaking program662to facilitate connections between peers661and the matchmaking server602.

The matchmaking server602may be a general purpose computer that becomes a special purpose computer when running code that implements embodiments of the present invention as described herein.

The connection statistics server607may include a central processor unit (CPU)631′. By way of example, a CPU631′ may include one or more processors, which may be configured according to, e.g., a dual-core, quad-core, multi-core, or Cell processor architecture. The connection statistics server607may also include a memory632′ (e.g., RAM, DRAM, ROM, and the like). The CPU631′ may execute a connection statistics generation program633′, portions of which may be stored in the memory632′. The program633′ may generate and/or update connection statistics in a connection statistics database, which may be stored in memory632′ as data636′. Alternatively, some or all of the connection statistics database may be stored in a mass storage device634′. In other implementations connection statistics database may be stored partly in the memory632′ and partly in the mass storage device634′.

The connection statistics server607may also include well-known support circuits640′, such as input/output (I/O) circuits641′, power supplies (P/S)642′, a clock (CLK)643′ and cache644′. The connection statistics server607may optionally include a mass storage device634′ such as a disk drive, CD-ROM drive, tape drive, or the like to store programs and/or data. The mass storage device634′ or memory632′ may have embodied therein connection statistics information for client devices661. The connection statistics server607is also configured to perform analysis of connection success or failure information received from client devices661to generate connection statistics according to a program that may be embodied in memory632′ or in the mass storage634′. The connection statistics server607may also optionally include a display device637′ and user interface unit638′ to facilitate interaction between the connection statistics server607and a user who requires direct access to the connection statistics server607. The display device637′ may be in the form of a cathode ray tube (CRT) or flat panel screen that displays text, numerals, or graphical symbols. The user interface unit638′ may include a keyboard, mouse, joystick, light pen, or other device. The connection statistics server607may include a network interface639′, configured to enable the use of Wi-Fi, an Ethernet port, or other communication methods.

The network interface639′ may incorporate suitable hardware, software, firmware or some combination of two or more of these to facilitate communication via the electronic communications network660. The network interface639′ may be configured to implement wired or wireless communication over local area networks and wide area networks such as the Internet. The connection statistics server607may send and receive data and/or requests for files via one or more data packets including connection success or failure information over the network660from the matchmaking server602or client devices661. The connection statistics server607may be configured to connect with one or more client device/s661. The matchmaking making server602according to embodiments of the present disclosure is configured to collect connection information from client devices661. The client devices may run a matchmaking program662to facilitate sharing information with the connection statistics server607.

The connection statistics server607may be a general purpose computer that becomes a special purpose computer when running code that implements embodiments of the present invention as described herein.

While the above is a complete description of the preferred embodiment of the present invention, it is possible to use various alternatives, modifications and equivalents. Therefore, the scope of the present invention should be determined not with reference to the above description but should, instead, be determined with reference to the appended claims, along with their full scope of equivalents. Any feature described herein, whether preferred or not, may be combined with any other feature described herein, whether preferred or not. In the claims that follow, the indefinite article “A”, or “An” refers to a quantity of one or more of the item following the article, except where expressly stated otherwise. The appended claims are not to be interpreted as including means-plus-function limitations, unless such a limitation is explicitly recited in a given claim using the phrase “means for.”

Claims

  1. A method for improved peer to peer matchmaking, the method comprising: a) obtaining network information from a plurality of devices;b) selecting a plurality of users to form peer to peer connections via a corresponding plurality of devices to create a set of potential matches;c) retrieving device connection statistics for each pair of devices in the set of potential matches;d) comparing device connection statistics to one or more threshold values;e) removing from the set of potential matches, users with devices that have at least one connection statistic that does not satisfy a threshold condition for that connection statistic as determined from said comparing the device connection statistics to the one or more threshold values;f) selecting replacement devices for the devices removed in step e) wherein the replacement devices were not part of the set of potential matches;g) initiating peer to peer connections among selected peers in a resulting refined set of matched peers.
  1. The method of claim 1 further comprising repeating steps c) through f) until all of the device connection statistics satisfy all threshold conditions associated with the one or more threshold values to generate the refined set of matched peers before initiating peer to peer connections.
  2. The method from claim 2 wherein updating peer device connection statistics in i) comprises generating average success or failure rates for individual network components of the devices in the refined set of match peers.
  3. The method from claim 1 further comprising, h) collecting peer to peer connection success or failure information;and i) updating peer device connection statistics with the peer to peer connection success or failure information and network information of the one or more devices in the refined set of matched peers.
  4. The method from claim 1 wherein selecting a plurality of users to form peer to peer connections via a plurality of devices in b) comprises matching users based on a matchmaking algorithm.
  5. The method from claim 1 wherein network information includes NAT type.
  6. The method from claim 1 wherein network information includes router type.
  7. The method from claim 1 wherein network information includes Firewall type or Firewall settings.
  8. The method from claim 1 wherein connection statistics comprises historical connection information of connections between devices having identical specifications to the devices chosen as potential peer to peer matches.
  9. The method from claim 9 wherein the historical connection information is an average connection success rate.
  10. The method from claim 7 wherein the historical connection information is an average failure rate.
  11. The method from claim 1 where in satisfying the threshold condition in e) further comprises meeting or exceeding a threshold value.
  12. The method from claim 1 wherein satisfying the threshold condition in e) comprises being at or below a threshold value.
  13. The method of claim 1 wherein removing the devices at e) further comprises sending a message to the device notifying a user of connection issues.
  14. The method from claim 1 wherein selecting potential peer to peer matches in b) comprises matching devices based on an overall connection success or failure rate for each device.
  15. The method from claim 1 wherein the one or more threshold values are dependent upon an application type.
  16. The method from claim 1 wherein the one or more threshold values are dependent on a hardware configuration.
  17. The method from claim 1 wherein at f) devices are removed only if a pre-determined number of connection statistics fail to satisfy the one or more threshold condition for those connection statistic as determined from said comparing the device connection statistics to the one or more threshold values.
  18. The method from claim 1 wherein the network information includes internet service provider or geographical computer network information.
  19. A method for improved peer to peer matchmaking, the method comprising: a) obtaining network information from one or more devices;b) selecting a plurality of users to form peer to peer connections via a corresponding plurality of devices to create a set of potential matches;c) sending the network information of the set of potential matches to a connection statistics database;d) receiving connection statistics for each pair of devices in the set of potential matches;e) comparing connection statistics the to one or more threshold values;f) removing from the set of potential matches, users with devices that have at least at least one connection statistic that does not satisfy a threshold condition for that connection statistic as determined from said comparing the device connection statistics to the one or more threshold values;g) selecting replacement devices for the devices removed in step f), wherein the replacement devices were not part of the set of potential matches;h) initiating peer to peer connections among selected peers in a resulting refined set of matched peers.
  20. The method of claim 20 further comprising repeating steps c) through h) until all of the peer device connection statistics satisfy all threshold conditions associated with the one or more threshold values to generate the refined set of matched peers before initiating peer to peer connections.
  21. The method from claim 20 wherein selecting a plurality of users to form peer to peer connections via a plurality of devices in b) comprises matching users based on a matchmaking algorithm.
  22. The method from claim 20 further comprising i) sending a request to the devices in the refined set of matched peers for connection success or failure information and j) receiving connection or failure information from at least one device in the refined set of matched peers.
  23. The method from claim 23 further comprising k) sending the connection success or failure information to the connection statistics database.
  24. A method for improved peer to peer matchmaking, the method comprising: a) obtaining network information for devices in a set of potential matches;b) generating connection statistics based on the network information and connection success or failure information;c) receiving a request for connection statistics for devices in the set of potential matches;d) sending the connection statistics for the devices in the set if potential matches;e) receiving peer to peer connection success or failure information for devices in a refined set of matched peers;f) updating the connection statistics with the peer to peer connection success or failure information and network information of the devices selected in the refined set of matched peers.
  25. A non-transitory computer readable medium having embodied therein a computer readable instructions configured to implement a method for improved peer to peer matchmaking, the method comprising: a) obtaining network information from a plurality of devices;b) selecting a plurality of users to form peer to peer connections via a corresponding plurality of devices to create a set of potential matches;c) retrieving device connection statistics for each pair of devices in the set of potential matches;d) comparing device connection statistics to one or more threshold values;e) removing from the set of potential matches, users with devices that have at least one connection statistic that does not satisfy a threshold condition for that connection statistic as determined from said comparing the device connection statistics to the one or more threshold values;f) selecting replacement devices for the devices removed in step e), wherein the replacement devices were not part of the set of potential matches;g) initiating peer to peer connections among selected peers in a resulting refined set of matched peers.
  26. The method of claim 26 further comprises repeating steps c) through f) until all of the device connection statistics satisfy all conditions associated with the one or more threshold values to generate the refined set of matched peers before initiating peer to peer connections.
  27. The method from claim 26 further comprising, h) collecting peer to peer connection success or failure information;and i) updating peer device connection statistics with the peer to peer connection success or failure information and network information of the one or more devices in the refined set of matched peers.
  28. A system comprising a processor;a memory coupled to the processor, wherein the memory contains executable instructions configured to implement a method for improved peer to peer matchmaking, the method comprising: a) obtaining network information from a plurality of devices;b) selecting a plurality of users to form peer to peer connections via a corresponding plurality of devices to create a set of potential matches;c) retrieving device connection statistics for each pair of devices in the set of potential matches;d) comparing device connection statistics to one or more threshold values;e) removing from the set of potential matches, users with devices that have at least one connection statistic that does not satisfy a threshold condition for that connection statistic as determined from said comparing the device connection statistics to the one or more threshold values;f) selecting replacement devices for the devices removed in step e), wherein the replacement devices were not part of the set of potential matches;g) initiating peer to peer connections among selected peers in a resulting refined set of matched peers.
  29. The method from claim 29 further comprising repeating steps c) through f) until all of the device connection statistics satisfy all conditions associated with the one or more threshold values to generate the refined set of matched peers before initiating peer to peer connections.

Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.