Patent ID: 8422486
Filing Date: 2013-04-16
Classification: H04L

Abstract:
1. A communication method for implementing direct penetrating communication between a first user device under a first NAT and a second user device under a second NAT different from the first NAT, the method comprising: a) selecting, in the first user device, a local port for sending and receiving messages; b) sending, in the first user device, times of detection messages through the selected local source port and via the first NAT to a plurality of destination ports of at least one auxiliary detecting device in an external network; c) receiving, in the first user device, a plurality of reply messages from the at least one auxiliary detecting device, wherein each reply message comprises an NAT-translated NAT source address and an NAT source port of one of the detection messages respectively corresponding to one of the received reply messages; d) extracting, in the first user device, the respective NAT-translated NAT source address and the NAT source port of each one of the detection messages from the corresponding one of the reply messages; e) determining, in the first user device, whether the respective NAT source ports of the times of the detection messages are the same as one another, and if so, determining that the selected local source port is a proper local penetrated port that does not conflict with any port of another device, and using the extracted NAT-translated source address and NAT source port as a selected NAT external-network address and an NAT source port, respectively; f) if the first user device does not determine that the selected local source port is a proper local penetrated port in step e), re-selecting a different local source port and repeating steps a) through e) until a proper local penetrated port is found; g) notifying, in the first user device via a notifying device in an external network, the second user device under the second NAT of the NAT external-network address and the NAT source port selected in step e), and receiving an NAT external-network address and an NAT port of the second user device via the notifying device in the external network, wherein the NAT port of the second user device is the NAT penetrated port of the second device; and h) in the first user device, communicating directly with the second user device through the proper local penetrated port and the received NAT external-network address and NAT penetrated port of the second user device as a destination address.