Patent ID: 7328280
Filing Date: 2008-02-05
Classification: H04L

Abstract:
1. A computer-readable storage medium having code portions embodied thereon that are readable by a first endpoint device (ED), the first ED being usable with a system compliant with the internet protocol (IP), the system having an architecture that includes a first network, a second network and a third network, the first network having at least the first ED and a first network address translator (NAT), the first ED being connected to the third network via the first NAT, the first NAT allocating a first pair of an IP address and port number for communication from the third-network-side of the first NAT with the first ED via the first NAT, the second network having at least a second ED and a second NAT, the second ED being connected to the third network via the second NAT, the second NAT allocating a second IP address and port pair for communication from the third-network-side of the second NAT with the second ED via the second NAT, the code portions embodied on the computer-readable storage medium, when read by the first ED, causing the first ED to perform the steps of: (a) request the second NAT to map a plurality of port identification numbers (IDs), receive information regarding the plurality of ports, including the plurality of port IDs, and determine a port increment size (Δp) of the second NAT based on said information; or (b) receiving an indication of port increment size (Δp) used by the second NAT to allocate and map new port numbers, and predict, based upon the indication of port increment size (Δp), at least one predicted destination port identification number (ID) that would be used by the second NAT for a peer-to-peer (P2P) connection between the first ED and the second ED, wherein the ID is predicted before assignment by the second NAT of the port ID, thereby making the first ED operable to facilitate the peer-to-peer (P2P) connection between the first ED and the second ED, despite the intervening first and second NATs at both ends of the connection.