Patent ID: 9160794
Filing Date: 2015-10-13
Classification: H04L

Abstract:
1. A computer-implemented method, comprising: employing a processor that executes instructions retained in a computer-memory, the instructions, when executed by the processor, implementing operations including: simultaneously sending, from a peer computing device in a peer-to-peer architecture, multiple test messages to a Simple Traversal of User Datagram Protocol through Network Address Translators (STUN) server of the peer-to-peer architecture to detect a Network Address Translator (NAT) type of a NAT/firewall device operating between the peer computing device and the STUN server, the NAT type corresponding to one of six different NAT types that include a User Datagram Protocol (UDP) blocked, a Symmetric UDP Firewall, a Full Cone, a Symmetric NAT, a Port Restricted, and a Restricted Cone; waiting a predetermined amount of time for one or more responses to the multiple test messages from the STUN server; if a response of the one or more responses to a particular test message of the multiple test messages is received in the predetermined amount of time, storing a value of the response; if a response of the one or more responses to a particular test message of the multiple test messages is not received in the predetermined amount of time, storing a timeout indication indicating the peer computing device does not receive the particular test message; and determining that the NAT type of the NAT/firewall device corresponds to one of the six different NAT types, based at least in part on values of the one or more responses received from the STUN server and timeout indications corresponding to the multiple test messages, wherein the determining that the NAT type corresponds to any one of the six different NAT types occurs within a time period substantially equivalent to the greater of a timeout time period and a roundtrip time period.