Movatterモバイル変換


[0]ホーム

URL:


USRE47566E1 - NAT traversal for mobile network devices - Google Patents

NAT traversal for mobile network devices
Download PDF

Info

Publication number
USRE47566E1
USRE47566E1US14/919,539US201514919539AUSRE47566EUS RE47566 E1USRE47566 E1US RE47566E1US 201514919539 AUS201514919539 AUS 201514919539AUS RE47566 EUSRE47566 EUS RE47566E
Authority
US
United States
Prior art keywords
mobile device
information
nats
nat
behavior
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.)
Active, expires
Application number
US14/919,539
Inventor
Yutaka Takeda
Payton R. White
James E. Marr
Stephen C. Detwiler
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment 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 Sony Interactive Entertainment IncfiledCriticalSony Interactive Entertainment Inc
Priority to US14/919,539priorityCriticalpatent/USRE47566E1/en
Assigned to SONY INTERACTIVE ENTERTAINMENT INC.reassignmentSONY INTERACTIVE ENTERTAINMENT INC.CHANGE OF NAME (SEE DOCUMENT FOR DETAILS).Assignors: SONY COMPUTER ENTERTAINMENT INC.
Assigned to SONY COMPUTER ENTERTAINMENT INC.reassignmentSONY COMPUTER ENTERTAINMENT INC.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: DETWILEER, STEHPEN C., MARR, JAMES E., TAKEDA, YUTAKA, WHITE, PAYTON E.
Application grantedgrantedCritical
Publication of USRE47566E1publicationCriticalpatent/USRE47566E1/en
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

Traversal of a Network Address Translator (NAT) can be facilitated for a mobile device configured to communicate with one or more other devices over a network via one or more wireless access points. A direction of travel can be estimated for the mobile device. One or more wireless access points the mobile device is likely to encounter can be predicted using the an estimated direction of travel for the mobile device. Information regarding behavior of one or more NATs associated with the predicted wireless access point(s) can be predicted. Such information can be stored in such a way that the information is retrievable by one or more other devices or using the information to traverse one or more of the NATs. Alternatively, information can be retrieved regarding behavior of one or more NATs associated with the predicted wireless access points. This information can be used to traverse one or more of the NATs.

Description

CLAIM OF PRIORITY
This application is a continuation reissue of and U.S. Pat. No. 8,565,190, which claims priority to U.S. patent application Ser. No. 11/829,831 filed Jul. 27, 2007, now U.S. Pat. No. 7,933,273, the entire contents of which are incorporated herein by reference.
FIELD OF THE INVENTION
The present invention relates to computer network communication, and more specifically to prioritizing network traffic among distinct channels of communication within a single application.
BACKGROUND OF THE INVENTION
Computing systems are becoming increasing interconnected through network environments. Such network environments may be centralized or decentralized. A decentralized computing environment may be defined by a number of computing systems interconnected to communicate with one another, wherein each computing system can perform both client and server functions. A peer-to-peer (P2P) network represents an example of a decentralized computing environment in which each computing system within the P2P network is defined as a peer of every other computing system within the network. For discussion purposes, each peer computing system within the P2P network is referred to as a node. Additionally, each node within the P2P network may be configured to execute software having substantially equivalent functionality. Therefore, each node may act as both a provider and a user of data and services across the P2P network. Peer to peer networks are distributed data networks without any centralized hierarchy or organization. Peer to peer data networks provide a robust and flexible means of communicating information between large numbers of computers or other information devices, referred to in general as nodes.
A P2P network relies primarily on the computing power and bandwidth of the participants in the network rather than concentrating it in a relatively low number of servers. P2P networks are typically used for connecting nodes via largely ad hoc connections. Such networks are useful for many purposes. P2P networks may be used, e.g., for sharing content files containing audio, video, data or anything in digital format is very common, and real-time data, such as telephony traffic, may also be transmitted using P2P technology. P2P applications often involve the use of a network address translator (NAT) to facilitate direct communication between peers. The NAT allows a user typically to have multiple networked computers share a single (global or routable) IP address for to access the Internet. The NAT intervenes in direct communication, so in many cases, P2P applications have to deal with the connectivity issues due to the NAT. Techniques used to overcome the connectivity issues are often called “NAT Traversal”. The process of Network Address Translation (NAT, also known as Network Masquerading, Native Address Translation or IP Masquerading) generally involves re-writing the source and/or destination addresses of Internet Protocol (IP) packets as they pass through a Router or firewall. Most systems using a NAT do so in order to enable multiple hosts on a private network to access a wide area network, such as the Internet using a single public IP address.
In addition to the convenience and low cost of NAT, the lack of full bidirectional connectivity can be regarded in some situations as a feature rather than a limitation. To the extent that NAT depends on a machine on the local network to initiate any connection to hosts on the other side of the router, it prevents malicious activity initiated by outside hosts from reaching those local hosts. This can enhance the reliability of local systems by stopping worms and enhance privacy by discouraging scans. Many NAT-enabled firewalls use this as the core of the protection they provide. Many network administrators find NAT a convenient technique and use it widely. Nonetheless, NAT can introduce complications in communication between hosts and may have a performance impact.
In a typical configuration, a local network may use one of the designated “private” IP address subnets and a router on that network has a private address in that address space. The router may be connected to the Internet with a single “public” address (known as “overloaded” NAT) or multiple “public” addresses assigned by an Internet Service Provider (ISP). As traffic passes from the local network to the Internet, the source address in each packet is translated on the fly from the private addresses to the public address(es). The router tracks basic data about each active connection (particularly the destination address and port). This internal “tracking” data is sometimes referred to as “NAT binding”. When a reply returns to the router, it uses the connection tracking data it stored during the outbound phase to determine where on the internal network to forward the reply; the TCP or UDP client port numbers are used to demultiplex the packets in the case of overloaded NAT, or IP address and port number when multiple public addresses are available, on packet return. To a system on the Internet, the router itself appears to be the source/destination for this traffic. Nodes behind NAT-enabled routers do not have true end-to-end connectivity (i.e., cannot send packets to all other nodes of the network, without requiring intermediate network elements to further interpret them) and cannot participate in some Internet protocols. Services that require the initiation of TCP connections from the outside network, or stateless protocols such as those using UDP, may be disrupted for such nodes unless the NAT router makes a specific effort to support such protocols, incoming packets cannot reach their destination. Some protocols can accommodate one instance of NAT between participating hosts (“passive mode” FTP, for example), sometimes with the assistance of an Application Layer Gateway, but fail when both systems are separated from the Internet by NAT. Use of a NAT may also complicate tunneling protocols such as Ipsec, e.g., if the NAT modifies values in the headers in a way that interferes with the integrity checks done such tunneling protocols.
Any IP enabled application that wants to connect to a network potentially faces problems associated with NAT. Most network applications and devices running dedicated network application software, especially peer-to-peer style applications, may be configured to independently determine the physical network topology they are on in order to best establish direct communications with other applications. This is commonly known as “NAT behavior discovery” or “NAT behavior determination”. This operation is well known in the industry, although some varying approaches exist. Existing approaches may often take a significant amount of time to determine NAT behavior. Existing NAT discovery techniques may also be problematic if multiple applications must do NAT discovery.
It is within this context that embodiments of the present invention arise.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention may be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which
FIG. 1 is a block diagram of a network configured to implement NAT behavior discovery according to an embodiment of the present invention.
FIG. 2A is a flow diagram illustrating a prior art method of determining NAT behavior.
FIGS. 2B-2D are flow diagrams illustrating methods of determining NAT behavior according to embodiments of the present invention.
FIG. 3A is a block diagram of a network configured to implement NAT behavior discovery using NAT proxies according to an alternative embodiment of the present invention.
FIG. 3B is a flow diagram illustrating a method of NAT behavior discovery using NAT proxies according to an alternative embodiment of the present invention.
FIG. 4 is a block diagram illustrating NAT behavior discovery according to an embodiment of the present invention involving a node behind multiple NATs.
FIG. 5 is a block diagram illustrating a NAT behavior discovery according to an embodiment of the present invention involving a wireless node.
FIG. 6 is a block diagram of a node configured to implement NAT behavior discovery according to an embodiment of the present invention.
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.
TECHNICAL BACKGROUND
In applications that deal with NAT it is sometimes useful to characterize the NAT by the type of behavior that it exhibits. The STUN protocol may be used to characterize Network address translation as Full cone NAT, restricted cone NAT, port restricted cone NAT or symmetric NAT. With a full cone NAT, also known as one-to-one NAT, all requests from the same internal IP address and port are mapped to the same external IP address and port. An external host can send a packet to the internal host, by sending a packet to the mapped external address. With a restricted cone NAT, all requests from the same internal IP address and port are mapped to the same external IP address and port. Unlike a full cone NAT, an external host can send a packet to the internal host only if the internal host had previously sent a packet to it. A port restricted cone NAT or symmetric NAT is like a restricted cone NAT, but the restriction includes port numbers. Specifically, an external host may send a packet to a particular port on the internal host only if the internal host had previously sent a packet from that port to the external host. With a symmetric NAT all requests from the same internal IP address and port to a specific destination IP address and port are mapped to a unique external source IP address and port. If the same internal host sends a packet with the same source address and port to a different destination, a different mapping is used. Only an external host that receives a packet can send a Universal Datagram Protocol (UDP) packet back to the internal host.
The above-described classifications have become somewhat less useful, because in many NAT implementations the behavior of the NAT may oscillate between the various types. For example, many NAT implementations may follow a port preservation design. For most communications, such a NAT implementation uses the same values as internal and external port numbers. However, if two internal hosts attempt to communicate with the same external host using the same port number, the external port number used by the second host may be chosen at random. Such a NAT may be sometimes perceived as a restricted cone NAT and may be perceived at other times as a symmetric NAT.
NAT discovery and NAT behavior determination are sometimes referred to as NAT traversal. Examples of NAT traversal are described e.g., in U.S. Published Patent Application 20070076729, which is incorporated herein by reference. NAT behavior discovery may be a time-consuming operation. For example, NAT discovery may be implemented using a protocol referred to as STUN. Details of the STUN protocol are described, e.g., in IETF RFC 3489, which is incorporated herein by reference. In the STUN protocol, multiple messages are sent are sent to a central NAT discovery server (referred to as a STUN server) and received to establish NAT behavior type. Some message transactions may have to wait for timeout (typically about 10 seconds for each transaction) due to filtering behavior of NAT. Messages are also possibly resent in the presence of unreliable communication channels. Applications that can avoid all or some of this operation may start faster.
Cooperative NAT Behavior Discovery
In embodiments of the present invention nodes on a local network may share information about discovered NAT behavior and other aspects of the local physical network topology. Additionally, these nodes may actively cooperate to further determine NAT behavior rather than passively sharing NAT behavior discovered independently. This is important since NAT discovery can be time-consuming, as discussed above. Furthermore, there are non-trivial issues that occur when trying to use NAT devices that have varying behavior when used by more than one application. This may occur, for example, when static port mapping is configured for a particular local port.
According to embodiments of the present invention, multiple nodes may be behind the same NAT. One of the nodes may discover the properties of the NAT through conventional NAT discovery and/or NAT traversal. This node may share the NAT traversal information with the others that are behind the same NAT. This may allow the other nodes behind the NAT to avoid having to spend time performing NAT discovery. The NAT information may be stored in a central location that all the nodes behind the NAT may access before they would normally attempt NAT discovery.
By way of example,FIG. 1 depicts a network topology illustrating cooperative NAT behavior discovery according to an embodiment of the present invention. Generally, a local area network (LAN)101 may include two or more nodes, e.g.,Node A102 andNode B104, may be connected to arouter108. Therouter108 connects to a wide area network (WAN)106 such as the Internet. Therouter108 may have a network address translator (NAT) associated with it. There are many possible configurations for thenodes102,104 that are within the scope of embodiments of the invention. In general, a node may be configured to implement communication over a network using internet protocol (IP).Node A102 andNode B104 may be IP-enabled devices or IP-enabled applications running on different devices or the same device. As used herein, the term IP-enabled, means that a devices makes use of IP to communicate with other hosts or devices. By way of example, and with out limitation, an IP-enabled device or application may include an internet protocol stack or similar network protocol stack to make use of IP to communicate with other hosts or devices. Although two nodes are shown inFIG. 1 for the sake of example, those of skill in the art will recognize that embodiments of the invention may also be implemented with more than two nodes.
It is noted that embodiments of the invention may incorporate any number of nodes. By way of example,Node A102 andNode B104 may be any network capable device or network capable applications running on such devices. Such nodes include, but are not limited to computers, hand held internet browsers and/or email devices, Voice over Internet Protocol (VoIP) phones, video game consoles, hand held video game devices, and the like. Messages may travel from one node to another over via therouter108. The NAT may be implemented on therouter108 in hardware, software, firmware or some combination of two or more of these.
Node A102,Node B104 and therouter108 may be configured to communicate with each other according to a network protocol. By way of example,Node A102, andNode B104 may be configured (either in software or hardware or some combination of both) with anetwork protocol stack103 having five layers: an Application layer APP, a Transport layer TRANS, a Network layer NET (sometimes referred to as the IP layer), a Data Link Layer DLL and a Physical layer PHYS. These layers are well-known to those of skill in the art. Thenodes102,104 typically implement all five layers. Therouter108 may include aprotocol stack105 that implements only the Network layer NET, Data Link layer DLL and Physical layer PHYS. In some embodiments, one or more routers may include all five protocol stack layers. One example of such routers is firewalls that support “application layer gateway” which inspects application layer data. The illustrated configuration of theprotocol stack105 in therouter108 is relatively more common, however.
The Application layer APP represents the level at which applications access network services. This layer represents the services that directly support applications such as software for file transfers, database access, and electronic mail. Examples of application layer software include HL7, Mod-bus, Session Initiation Protocol (SIP), and Simple Sensor Interface Protocol (SSI). In the particular case of the TCP/IP suite, the Application layer APP may be implemented with software protocols such as Hypertext Transfer Protocol (HTTP), Session Initiation Protocol (SIP), Simple Mail Transfer Protocol (SMTP), Short Message Peer-to-Peer Protocol (SMPP), Simple Network Management Protocol (SNMP), File Transfer Protocol (FTP), Teletype Network (TELNET), Network File System (NFS), Network Time Protocol (NTP), Real-time Transport Protocol (RTP), Dynamic Host Configuration Protocol (DHCP), and Domain Name System (DNS). The Application layer APP may sometimes be divided further into a Presentation layer and a Session layer, e.g., in the Open Systems Interface (OSI) protocol. The Presentation layer translates data from the Application layer into an intermediary format. The Presentation layer may also manages security issues by providing services such as data encryption, and compresses data so that fewer bits need to be transferred on the network. The Session layer allows two applications on different computers to establish, use, and end a session. The Session layer may establish dialog control between the two computers in a session, regulating which side transmits, plus when and how long it transmits.
The transport layer TRANS services requests from the Application layer APP and issues service requests to the Network layer NET. In some protocols the Transport layer TRANS may also handle error recognition and recovery. For a transmitting host, the Transport layer may also repackage long messages when necessary into small packets for transmission. For a receiving host the Transport layer rebuilds packets into the original message. The Transport layer for a receiving host may also send receipt acknowledgments. Examples of particular Transport layer protocols include Transmission Control Protocol (TCP), User Datagram Protocol (UDP) and Stream Control Transmission Protocol (SCTP), all of which, and equivalents thereof, are well-known to those of skill in the art. The Transport layer TRANS is the layer that typically supports packet fragmentation. It is noted that fragmentation may take place in the Transport layer of the host originating a message or at the Transport layer of any of the routers along the path between that host and the message's intended recipient. Not all transport layer implementations necessarily handle error recognition and recovery. TCP, for example, does handle error recognition and recovery, but UDP does not.
The Network layer NET addresses messages and translates logical addresses and names into physical addresses. It also determines the route from the source to the destination computer. The Network layer may also manages traffic problems, such as switching, routing, and controlling the congestion of data packets. Examples of particular Network layer protocols include, but are not limited to, Internet Protocol (IP), Internet Control Message Protocol (ICMP), IP Security (Ipsec), Address Resolution Protocol (ARP), Routing Information Protocol (RIP) and Open Shortest Path First (OSPF) all of which, and equivalents thereof, are well-known to those of skill in the art
The Data Link layer DLL packages raw bits from the Physical layer PHYS into frames (logical, structured packets for data). The Data Link layer may also be responsible for transferring frames from one computer to another, without errors. After sending a frame, the Data Link layer DLL waits for an acknowledgment from the receiving computer. Examples of particular Data Link layer protocols include, but are not limited to, Point-to-Point Protocol (PPP), Serial Line Internet Protocol (SLIP) and Media Access Control (MAC) all of which, and equivalents thereof, are well-known to those of skill in the art. The Data Link layer DLL typically limits the MTU size.
The Physical layer PHYS transmits bits from one computer to another and regulates the transmission of a stream of bits over a physical medium. This layer defines how the cable is attached to the network adapter and what transmission technique is used to send data over the cable. Examples of particular Physical layer protocols and standards include, but are not limited to, RS-232, V.35, V.34, I.430, I.431, T1, E1, 10BASE-T, 100BASE-TX, POTS, SONET, DSL, 802.11a, 802.11b, 802.11g, 802.11n all of which, and equivalents thereof, are well-known to those of skill in the art
A message originating atNode A102 starts at the Application layer APP and works its way down the protocol stack to the Physical layer PHYS. When the message arrives atNode B104, it is received at the Physical layer PHYS and works its way up the stack to the Application layer APP. In the path between the twonodes102,104, the message may be received at the Physical layer PHYS ofrouter108 and work its way up to the Transport layer TRANS and then back down the stack to the Physical layer PHYS for transmission torouter108. The process may be repeated for any additional routers (not shown) along the path betweenNode A102 andNode B104. In peer-to-peer situations, once a connection has been established between theNode A102 andNode B104 they may communicate directly by peer-to-peer connections, e.g., at the Application layer APP or at the Transport layer TRANS.
As discussed above, therouter108 may include a network address translator. However, this is not necessary for all embodiments of the invention. If therouter108 includes a NAT,Node A102 andNode B104 may have to traverse the NAT in order to establish peer-to-peer connections with each other, with other node connected in theLAN101 or with other nodes connected to theWAN106. To facilitate NAT traversal,Node A102 andNode B104 may obtain and shareinformation110 regarding the NAT. There are a number of ways in which theinformation110 may be obtained and shared. By way of example, and without loss of generality,Node A102 andNode B104 may obtain theinformation110 through individual attempts at NAT traversal. Such attempts at NAT traversal may involve the use of aSTUN server112. Alternatively,Node A102 andNode B104 may obtain theinformation110 from other Nodes connected to theLAN101.
Theinformation110 may be shared in any of a number of different ways. For example,Node A102 andNode B104 may store the information locally, e.g., in a cache or other memory location. WhereNode A102 andNode104 are separate devices or applications on separate devices, storing information locally may include, among other things, storing the information in particular memory locations at each corresponding device. If Node A and Node B are different applications on the same device, storing the information locally may include, among other things, storing the information in particular memory locations associated with the device. If theinformation110 is stored locally, Node A and Node B may query each other directly prior to their respective attempts at NAT traversal to obtain theinformation110. In alternative embodiments, theinformation110 may be stored in a memory location that is commonly accessible to bothNode A102 andNode B104. Such a commonly accessible memory location may be on another node or device connected to theLAN101 or theWAN106. By way of example, the commonly accessible memory location may be acommon database server114 connected to theWAN106. In some embodiments, theinformation110 may be obtained by and stored at therouter108. This may require special implementation at therouter108.
By way of example, theinformation110 may include a unique address for the router, e.g., a globally unique address such as a Media Access Control (MAC) address or internal IP address. As used herein, a MAC address, also known as a hardware address or adapter address is a quasi-unique identifier attached to most network adapters. A MAC address is typically a number that acts like a name for a particular network adapter. Thus, for example, network cards (or built-in network adapters) in two different computers could have different names, or MAC addresses, as could an Ethernet adapter and a wireless adapter in the same computer, and as could multiple network cards in a router. The MAC address may be assigned according to a suitable protocol such as MAC-48, EUI-48, and EUI-64, which are designed to be globally unique.
In addition, theinformation110 may include information regarding the type of NAT behavior, if any, exhibited by therouter108, and/or whether any ports on the router are being used by devices connected to theLAN101.
Examples of other NAT behavior information that may be shared includes, but is not limited to (i) the number of active sessions via the NAT; or (ii) the collective traffic load on the NAT. Furthermore theinformation110 may include a value of a flag realizing atomicity of port prediction against symmetric NAT. The flag may indicate whether a particular atomic for port prediction is locked or unlocked. An atomic lock is sometimes used for port prediction in symmetric NAT traversal. The locking is useful since port prediction may fail if other nodes under the same NAT create another NAT binding during the prediction phase.
According to embodiments of theinvention Node A102 andNode B104 may implement NAT discovery by any conventional technique, which may be implemented in hardware, software, firmware or some combination of two or more of these. By way of example,FIG. 2A depicts one type of NAT discovery. As shown inFIG. 2A,Node A102 may, at astartup202, send arequest204 for NAT information to theSTUN server112, which may send back aresponse206. Theresponse206 may include information regarding the type of NAT thatNode A102 is behind. At a later time,Node B104, at astartup208, may similarly send arequest210 and receiveresponse212. It is noted that theresponses206,212 may each include the same or similar information regarding the NAT behavior, particularly if bothNode A102 andNode B104 are behind the same NAT. However, depending on the nature of the NAT in therouter108, the NAT behavior may change over time. Embodiments of the invention allow sharing of NAT behavior information which can facilitate NAT traversal.
By way of example, as shown inFIG. 2B,Node A102 andNode B104 may shareNAT information110 as follows. As inFIG. 2A,Node A102 may, at astartup202, send arequest204 for NAT information to theSTUN server112, which may send back aresponse206. Theresponse206 may includeinformation110 regarding the type of NAT thatNode A102 is behind. Theinformation110 may be stored locally atNode A102. At a later time,Node B104, at astartup208, may send arequest209 to one or more other nodes behind therouter108. For example, as shown inFIG. 2B,Node B104 may send therequest209 toNode A102. It is noted that therequest209 may be broadcast to all other nodes behind therouter108 sinceNode B104 may not know which of them may have information regarding the NAT behavior of the router. Any of the nodes that receive therequest209 may respond with NAT behavior information. In this example,Node A102 had previously obtainedinformation110. Therefore,Node A102 may send aresponse211 toNode B104 containing theinformation110 or some useful subset of that information. If none of the other nodes responds to therequest209,Node B104 may fall back to conventional NAT discovery, e.g., by sending arequest210 to theSTUN server212 and receiving aresponse212. Information obtained from the response may be stored locally and made available to other nodes upon request.
It is further noted that two or more nodes may cooperate to determine behavior of therouter108. For example, as shown inFIG.2C Node A102 may, at astartup202, send the STUN server112 arequest204 for NAT information. TheSTUN server112 may send back aresponse206 containingNAT behavior information110, which may then be stored locally atNode A102. TheNAT behavior information110 may be incomplete, e.g., it may narrow the NAT behavior to being of more than one possible type. At a later time,Node B104, at astartup208, may send arequest209 to one or more other nodes behind therouter108 includingNode A102. In reply to therequest209Node A102 may send apartial response213. Thepartial response213 may include theinformation Node A102 was able to obtain. Thepartial response213 may also indicate what additional information is needed to characterized the NAT behavior of therouter108.Node B104 may then send arequest210 to theSTUN server112 and receive aresponse212 in return. Theresponse212 may provide the missing information needed to characterize the NAT behavior of therouter108.Node B104 may then share this information, e.g., by sending anupdate response214 toNode A102 and/or any other nodes behind therouter108.
Note that in the example depicted inFIG. 2C, the process of partial response and update response pairs may continue until details of NAT behavior are fully determined. This may be particularly useful in cases where therouter108 allocates external bindings for multiple requests with non-deterministic behavior.
The effect of sharing theinformation110 on improving NAT behavior determination is not insignificant. Typically, requests to and responses from theSTUN server112 may be subject to latencies associated with both theLAN101 and theWAN106. Requests from one node to another on theLAN101 are typically subject only to latencies associated with theLAN101. WAN latencies are generally much larger than LAN latencies. For example, with a theoretical WAN latencies of about 100 milliseconds and LAN latencies of less than about 1 millisecond, sharingNAT behavior information110 among the nodes on theLAN101 could improve the NAT behavior determination phase by a factor of over 100.
In addition the nodes on theLAN101 may cooperatively share NAT information after each node has independently determined NAT behavior type on its own. In this case, gossip between nodes about determined behavior could identify a router that has bad local port preservation behavior, which could effectively turn therouter108 from port-restricted to symmetric behavior. Sharing of theinformation110 may be used to diagnose changes to the behavior of therouter108. Sharing of theinformation110 may also be used to a priori workaround NAT issues associated with bad local port preservation. For instance, multiple nodes behind therouter108 could broadcast to each other which local ports on therouter108 they want to use. A given node (e.g., Node A102) could change the selected port if another node (e.g., Node B104) is already using the selected port. Additionally, nodes may gossip about other unanticipated behavior changes of the local network environment of theLAN101. For example, a residential NAT typically has one global IP address that is dynamically assigned by ISP (Internet Service Provider such as Comcast) using a protocol called DHCP. The assigned dynamic IP for NAT may expire and the ISP could assign another IP address. If that happens, it may take some time for a local node to detect such event. If one node detects the event, it may notify other nodes, using broadcast, of the event.
In the embodiments depicted inFIGS. 2B-2C the NAT-relatedinformation110 was stored locally at each node behind therouter108. In other embodiments, theinformation110 may be stored at some common location that is accessible to all the nodes behind therouter108. As discussed above, such a common location may be acommon database server114 or similar node connected to theWAN106. Thecommon database server114 may be accessed using a suitable protocol, such as hypertext transfer protocol (HTTP).
Alternatively, the common location may be a node that is part of theLAN101. For example, as shown inFIG. 2D, theinformation110 may be stored at therouter108. In this example, a node, e.g.,Node A102 may send aNAT information request205 to therouter108, e.g., atstartup202. Therouter108 may be configured, e.g., through appropriate programming, to send arequest204 to theSTUN server112 and receive aresponse206 in return. Therouter108 may then forward areply215 based on theresponse206 toNode A102. Therouter108 may optionally determine theNAT behavior information110 from theresponse206 and store the information, e.g., in a memory locally accessible by therouter108. Thereply215 may includeNAT behavior information110 obtained from theresponse206. Alternatively, thereply215 may involve forwarding theresponse206 toNode A102. When a different node subsequently requests NAT behavior information, therouter108 may respond directly using the storedinformation110. For example, atstartup208,Node B104 may send a NATbehavior information request216 to therouter108. In response, therouter108 may send areply218 based on the storedNAT behavior information110.
In the example depicted inFIG. 2D, it has been assumed that the address of therouter108 is well-known to all nodes behind it. In such a case, therequests205,216 and replies215,218 do not need to be broadcast. Furthermore, in the example depicted inFIG. 2D, only one round trip message is sent between each node and therouter108. In conventional situations, by contrast, each node talks to the NAT STUN Server, which often requires multiple round-trip messages. In addition, therouter108 may optionally perform behavior determination with theNAT STUN Server112 in a lazy fashion, i.e., only when a request is made to it from a client. If the NAT behavior of the router is deterministic, this may also occur at initialization of therouter108. In the case of completely deterministic behavior of a NAT device, communication with theNAT STUN Server112, may be omitted since the router behavior is well-known and may be communicated directly to the nodes behind therouter108.
The approach described above may appear more than superficially similar to Universal Plug and Play (UPnP) Gateway protocols. Embodiments of the present invention are different from UPnP in a number of ways. Most significantly, when a UPnP device is added to a LAN the UPnP device advertises its services to control points on the LAN. In embodiments of the present invention, by contrast, nodes on the LAN find out information about the control points (NATs on Routers) and make that information available to other devices.
Furthermore, the lack of true standardization of NAT behavior makes the existing UPnP mechanism less-than completely viable. In particular, UPnP is mainly supported only by residential routers, but not by other larger scale routers. For example, the routers in a hotel that provides Internet access services from rooms typically do not support UPnP. Another case in which UPnP does not work is that some ISP may provide private addresses for routers that provide certain services, e.g., HOT SPOT service. In such cases, the external address a node obtains is a private address of the nearest UPnP NAT. The node still needs to use a STUN server to obtain an actual global address that is routable over the Internet. In addition, there many existing routers do not support UPnP, or UPnP may not be turned on for many routers that do support UPnP.
In alternative embodiments of the invention, a single application running on a device on thelocal network101 could perform many, but not all of these operations on behalf of other applications. The device running this application is referred to herein as a NAT proxy. If a NAT proxy is only running on one device, it may not be able to determine certain NAT issues associated with bindings to different internal IP addresses. This may be overcome by running at least two instances of this application on two devices, although much of the ease of use may be lost by doing this.
Embodiments that utilize NAT proxies may be understood with respect toFIG. 3A andFIG. 3B. As shown inFIG. 3A thelocal network101 may include afirst NAT proxy116 associated withNode A102 and asecond NAT proxy118 associated withNode B104. TheNAT proxies116,118 may be coupled to therouter108. The NAT proxies may query thestun server112 from time to time in order to obtainNAT behavior information110 and share it withNode A102,Node B104 and any other nodes behind therouter108. By way of example, as shown inFIG. 3B, thefirst NAT proxy116 may send arequest204 to theSTUN server112 and receive aresponse206 in reply. Similarly, thesecond NAT proxy118 may send arequest224 to theSTUN server112 and receive aresponse226 in reply. TheNAT proxies116,118 may derive theNAT behavior information110 in whole or in part from theresponses206,226. After theinformation110 has been derived, one of the nodes connected to therouter108 may query theNAT proxies116,118 for theNAT behavior information110. For example,Node A102 may broadcast arequest228 to theNAT proxies116,118, which may respectively sendresponses230,232 in reply.
A NAT proxy application may be co-located on the same physical device node as the requesting application. A node only needs to receive one response from any NAT proxy. It is possible that the NAT proxies could run in a hierarchical fashion where only one proxy has the responsibility for sending responses in the local network. This has the unfortunate side-effect of creating a single point of failure within an otherwise redundant network configuration. In addition, The NAT proxy technique described with respect toFIG. 3A andFIG. 3B may be combined with the partial response/update response technique described above with respect toFIG. 2C to arrive at a cooperative global understanding of NAT behavior type between proxy nodes.
In the foregoing discussion, it has been assumed that each node is behind a single NAT. It is possible, in some network configurations for a node to be located behind more than one NAT. Embodiments of the present invention may be modified to address situations where a given Node lies behind more than one NAT. For example, as shown inFIG. 4 bothNode A102 andNode B104 are behindNAT1. However,Node B102 is also behindNAT2 though NAT N. In this example,NAT1 may be part of a gateway router between thelocal area network101 and thewide area network106. Information about the presence and behavior ofNAT1 may be useful to bothNode A102 andNode B104 for communication with theWAN106. In addition, information aboutNAT1 andNAT2 through NAT N will be useful for situations whereNode A102 andNode B104 communicate with each other.
By way of example, thenodes102,104,120 may determine how many NATs they are behind though the use of a field within the header of a datagram having a value that is reduced at each NAT device encountered en route to the datagram's destination. By way of example, field may be a time to live (TTL) field. Within the context of Ipv4 TTL refers to an 8-bit field in the Internet Protocol (IP) header. It is the 9th octet of 20. The time to live value may be thought of as an upper bound on the time that an IP datagram can exist in an internet system. The TTL field may be set by the sender of the datagram, and reduced by every host on the route to its destination. If the TTL field reaches zero before the datagram arrives at its destination, then the datagram is discarded and an Internet Control Message Protocol (ICMP) error datagram (11—Time Exceeded) is sent back to the sender. The TTL field is conventionally used to avoid a situation in which an undeliverable datagram keeps circulating on an internet system, and such a system eventually becoming overwhelmed by large numbers of such “immortal” datagrams. In theory, time to live may be measured in seconds, although every host that passes the datagram must reduce the TTL by at least one unit. In practice, the TTL field is reduced by one on every hop. To reflect this practice, the field is named hop limit in IPv6. The ICMP error datagram identifies the last host the datagram arrived at before timing out. A tool called traceroute uses ICMP error messages to detect a path to a remote end node. TTL or hop limit fields may be used to determine the addresses of the NATs betweenNode A102 andNode B104 in a manner similar to that used in a traceroute command.
In embodiments of the invention,Node A102 andNode B104 andother nodes120 may shareinformation110 relating to the behavior ofNAT1 andNAT2 through NAT N. Thenodes102,104,120 may obtain theNAT information110, e.g., as discussed above with respect toFIGS. 2A-2D and store the information in a manner accessible by all of the nodes on theLAN101. By way of example, theinformation110 may be cached on aserver112 such as a common database server or STUN server. By way of example, theserver112 may reside between theLAN101 between theWAN106. It is further noted thatdevices hosting NAT1 andNAT2 through NAT N may also gather information about themselves and share it with thenodes102,104,120.
Embodiments of the invention may be used to implement NAT behavior discovery with wireless nodes. For example, as shown inFIG. 5, awireless network501 may include first, second and third, wireless access points WAP1, WAP2, and WAP3, which may be at geographically distributed locations. The wireless access points WAP1, WAP2, and WAP3 may be implemented, e.g., by wireless routers, which may include network address translators NAT1, NAT2 and NAT3 respectively. The wireless access points WAP1, WAP2, and WAP3 may be characterized by correspondingcoverage areas502,504,505. Awireless node507 may access thenetwork501 if it is within one of the coverage areas. By way of example, thewireless node507 may be any device configured for wireless network communication. Examples of such devices include, but are not limited to laptop computers, portable video game devices, portable music download devices, portable Voice over Internet protocol (VoIP) devices, and portable Internet browser or email devices, such as the Blackberry®. Blackberry® is a registered trademark of Research in Motion LTD of Waterloo, Ontario Canada. In addition, such devices include wireless devices that incorporate two or more functions, such as VoIP, internet, email and music downloads. An example of such a device is the iPhone from Apple Inc. of Cupertino, Calif.
The wireless access points WAP1, WAP2, WAP3 may be connected to awide area network506 via arouter508. In addition there may be other nodes A, B, C connected between therouter508 and the wireless access points WAP1, WAP2 and WAP3 respectively.Information510 regarding the network address translators NAT1, NAT2, NAT3 may be stored at a centrallyaccessible cache512 that is coupled to therouter508. There are a number of different ways of obtaining and caching theinformation510. For example, thewireless node507 may gather part of theinformation510 through conventional NAT traversal and share it with other nodes as shown inFIG. 2B orFIG. 2C. In addition, therouter508 or wireless access points WAP1, WAP2, WAP3 may obtain theinformation510 as described above with respect toFIG. 2D. Furthermore, the other nodes A, B, C may obtain all or part of the information by acting as proxy nodes as described above with respect toFIG. 3A andFIG. 3B. Furthermore, although the information is shown as being stored in asingle location512, theinformation510 may alternatively be distributed among the nodes connected to thenetwork501. In some embodiments, information relating to the wireless network address translators NAT1, NAT2, NAT3 may be stored locally at the corresponding wireless access points WAP1, WAP2, WAP3. It is noted that theinformation510 may include a geographic location for each NAT or wireless access point. Theinformation510 may also include other general information related to the NAT or wireless access point. Such information may include, but is not limited to information relating to local restaurants, weather, identity of other devices connected to thenetwork501 number of times a particular wireless access point has been visited and other general information. A wireless device may access this information when accessing thenetwork510 through any of the wireless access points WAP1, WAP2, WAP3.
Through sharing of theinformation510 the quality of service over thewireless network501 may be enhanced. For example, thewireless node507 may move from one coverage area to another, e.g., from thecoverage area502 for the first wireless access point WAP1 to thecoverage area504 for the second wireless access point WAP2. Theinformation510 may be organized such that thewireless device507 can request NAT information for a neighboring wireless access point, such as the second wireless access point WAP2. In some embodiments, thedevice507 may be programmed to determine, e.g., from GPS data or wireless signal strength a general direction of travel of the wireless device and use this direction to estimate which wireless access points the device is likely to encounter.
Embodiments of the present invention may also apply to situations in which a NAT moves. For example, the wireless access points WAP1, WAP2, WAP3 may be mounted on vehicles. Thewireless node507 may determine whether a NAT is mobile e.g., from geographical information. For example, thewireless node507 may include a geographical location system, such as a global positioning satellite system (GPSS) receiver. Using such a system, thenode507 may its own location when it encounters the NAT. If thenode507 encounters the same NAT when the node is in two different locations that are sufficiently far apart the node may infer that the NAT has moved.
As mentioned above, there are a number of different configurations for a node that may be used in conjunction with embodiments of the present invention. By way of example, and without loss of generality,FIG. 6 is a block diagram illustrating the components of anode600 suitable for implementing NAT behavior discovery according to an embodiment of the present invention. By way of example, and without loss of generality, thenode600 may be implemented as a computer system, such as a personal computer, video game console, personal digital assistant, wireless device, or other digital device, suitable for practicing an embodiment of the invention. In some embodiments, thenode600 may be a router. Thenode600 may include a central processing unit (CPU)601 configured to run software applications and optionally an operating system. TheCPU601 may include one or more processing cores. By way of example and without limitation, theCPU601 may be a parallel processor module, such as a Cell Processor. An example of a Cell Processor architecture is described in detail, e.g., in Cell Broadband Engine Architecture, copyright International Business Machines Corporation, Sony Computer Entertainment Incorporated, Toshiba Corporation Aug. 8, 2005 a copy of which may be downloaded at http://cell.scei.co.jp/, the entire contents of which are incorporated herein by reference.
In the node600 amemory602 may be coupled to theCPU601. Thememory602 may store applications and data for use by theCPU601. Thememory602 may be in the form of an integrated circuit, e.g., RAM, DRAM, ROM, and the like). Acomputer program603 may be stored in thememory602 in the form of instructions that can be executed on theprocessor601. The instructions of theprogram603 may be configured to implement, amongst other things, NAT behavior discovery, e.g., as described above. In particular, theprogram603 may be instructions that, when executed, cause thenode600 to determine information regarding the behavior of one or more NATs and store the information in such a way that the information is retrievable bynode600 or one or more other nodes. Furthermore, theprogram603 may be configured to retrieve information regarding behavior of one or more NATs obtained by one or more other nodes and use the information to traverse one or more of the NATs.
Thememory602 may contain data that is generated by or usable by theprogram603. In particular thememory602 may containinformation610 relating to one or more NATs. Specifically, theinformation610 may include, but is not limited to (i) NAT behavior information (e.g., whether the NAT is full cone, restricted cone, port restricted, symmetric) including whether the NAT behavior includes port preservation or not; (ii) available STUN server addresses; and (iii) common database addresses. Theinformation610 may be stored in a section of thememory602 that can be accessed by other nodes.
Thenode600 may further include astorage device615 that provides non-volatile storage for applications and data. By way of example, thestorage device615 may be a fixed disk drive, removable disk drive, flash memory device, tape drive, CD-ROM, DVD-ROM, Blu-ray, HD-DVD, UMD, or other optical storage devices. Thenode600 may also include well-known support functions620 commonly used in computing systems. Such support functions may include such features as input/output (I/O)elements621, power supplies (P/S)622, a clock (CLK)623 andcache624.
One or more user input devices625 may be used to communicate user inputs from one or more users to thenode600. By way of example, one or more of the user input devices625 may be coupled to thenode600 via the I/O elements621. Examples of suitable input devices625 include keyboards, mice, joysticks, touch pads, touch screens, light pens, still or video cameras, and/or microphones. In the particular case of A/V chat, it is desirable for the user input devices625 to include both a camera and a microphone.
Anetwork interface626 allows thenode600 to communicate with other computer systems via anelectronic communications network627. By way of example, thenetwork627 may be a wide area network and thenode600 may be on a local area network. The node may interface with thenetwork627 via arouter608, which may include a network address translator NAT. In some embodiments thenode600 itself may be a router, e.g., as described above with respect toFIG. 2D. Thenetwork interface626 may include wired or wireless communication over local area networks and wide area networks such as the Internet. Thenode600 may send and receive data and/or requests for files via one ormore message packets628 over thenetwork627. By way of example, thenetwork interface626 may include or be part of a network card, network adapter or network interface card (NIC), such as an Ethernet card. Thenetwork interface626 may include computer hardware designed to allow thenode600 to communicate over thenetwork627. Thenetwork interface626 may provides physical access to a networking medium and provide a low-level addressing system, e.g., through the use of MAC addresses. Consequently, with respect to the Internet Protocol stack, thenetwork interface626 may be regarded as both a physical layer device and a data link layer device.
Thenode600 may further comprise a graphics subsystem630, which may include a graphics processing unit (GPU)635 andgraphics memory640. Thegraphics memory640 may include a display memory (e.g., a frame buffer) used for storing pixel data for each pixel of an output image. Thegraphics memory640 may be integrated in the same device as theGPU635, connected as a separate device withGPU635, and/or implemented within thememory602. Pixel data may be provided to thegraphics memory640 directly from theCPU601. Alternatively, theCPU601 may provide theGPU635 with data and/or instructions defining the desired output images, from which theGPU635 may generate the pixel data of one or more output images. The data and/or instructions defining the desired output images may be stored inmemory602 and/orgraphics memory640. In an embodiment, theGPU635 may be configured (e.g., by suitable programming or hardware configuration) with 3D rendering capabilities for generating pixel data for output images from instructions and data defining the geometry, lighting, shading, texturing, motion, and/or camera parameters for a scene. TheGPU635 may further include one or more programmable execution units capable of executing shader programs.
The graphics subsystem630 may periodically output pixel data for an image fromgraphics memory640 to be displayed on adisplay device650. Thedisplay device650 may be any device capable of displaying visual information in response to a signal from thecomputer system600, including CRT, LCD, plasma, and OLED displays. Thenode600 may provide thedisplay device650 with an analog or digital signal. By way of example, thedisplay650 may include a cathode ray tube (CRT) or flat panel screen that displays text, numerals, graphical symbols, or images. In addition, thenode600 may include one or moreaudio speakers652 that produce audible or otherwise detectable sounds. To facilitate generation of such sounds, thenode600 may further include anaudio processor655 adapted to generate analog or digital audio output from instructions and/or data provided by theCPU601,memory602, and/orstorage615. In the particular case of applications such as A/V chat or Voice over Internet Protocol (VoIP), it is sometimes desirable for thenode600 to include agraphical display device650 and anaudio speaker652.
The components of thenode600, including theCPU601,memory602, support functions620,data storage615, user input devices625,network interface626, graphics subsystem630speaker652 andaudio processor655 may be operably connected to each other via one ormore data buses660. These components may be implemented in hardware, software, firmware or some combination of two or more of these.
Embodiments of the present invention may solve a key issue in networking deployments related to NAT devices [routers that perform network address translation]. It is possible that a router with a fully specified behavior may be used to implement NAT behavior information discovery and distribution in a centralized way. It is possible that some of the functionality may be lost if the state of individual applications cannot be fully gleaned at such a router. However, additions to this mechanism may account for this deficiency, though perhaps with some associated overhead.
In embodiments of the present invention otherwise distinct, peer network nodes that are behind a common NAT may cooperate to cooperate to better solve the NAT traversal problem in a decentralized way. There are no existing solutions to the full range of issues that can occur with varying NAT device behavior that involve cooperation of multiple nodes on a local network.
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. In the claims that follow, the expressions first and second are used to distinguish between different elements and do not imply any particular order or sequence. 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 (29)

What is claimed is:
1. In a mobile device configured to communicate with one or more other devices over a network via one or more wireless access points, a method for facilitating traversal of a network address translator (NAT), the A method comprising:
estimating a direction of travel for the mobile device;
using the an estimated direction of travel for a mobile device to predict one or more wireless access points that the mobile device is likely to encounter; and
a) determining information regarding behavior of one or more NATs network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device; and storing the information in such a way that the information is retrievable by one or more other devices or using the information to traverse one or more of the NATs; or
b) retrieving information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs; or
c) both a) and b).
2. The method ofclaim 1 wherein determining the information regarding the behavior of the one or more NATs includes determining a media access control (MAC) address for one or more of the NATs.
3. The method ofclaim 1 wherein determining the information regarding the behavior of the one or more NATs includes determining how many NATs there are between a given external IP address and another an other device.
4. The method ofclaim 3 wherein determining how many NATs there are between a given external IP address and another the other device includes sending a datagram having a predetermined time to live and, if a time exceeded error is sent back to the node in response to the datagram, resending the datagram with an incremented time to live.
5. The method ofclaim 1 wherein the information regarding the behavior of one or more NATs includes a NAT type.
6. The method ofclaim 1 wherein the information regarding the behavior of one or more NATs includes geographical information relating to the NAT.
7. The method ofclaim 1 wherein further comprising storing the information includes regarding behavior of one or more network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device by distributing the information over a peer-to-peer network.
8. The method ofclaim 1 wherein further comprising storing the information regarding behavior of one or more network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device in such a way that the information is retrievable by one or more other devices includes by storing the information on a server that is accessible to the node and the other devices.
9. The method ofclaim 8 wherein the server is a common database server.
10. The method ofclaim 1 wherein a) determining information regarding behavior of one or more network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device; and storing the information in such a way that the information is retrievable by one or more other devices or using the information to traverse one or more of the NATs further comprises storing information associated with the one or more NATs.
11. The method ofclaim 1 wherein b) further comprises retrieving information associated with the one or more NATs.
12. The method ofclaim 1 wherein b) includes retrieving information regarding behavior of one or more NATs from a central location that is accessible by the mobile device and the one or more other devices.
13. The method ofclaim 1 wherein the mobile device and the one or more other devices are behind the same NAT.
14. The method ofclaim 1 wherein the mobile device is a router that is accessible by the one or more other devices.
15. The method ofclaim 14 wherein further comprising storing the information regarding behavior of one or more network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device in such a way that the information is retrievable by one or more other devices includes caching the information at the router.
16. The method ofclaim 1 wherein the information regarding the behavior of one or more NATs includes NAT behavior information, one or more available Simple Traversal of UDP through NAT (STUN) server addresses, one or more common database addresses, a number of active sessions via a NAT, a collective traffic load on a NAT or a value of a flag realizing atomicity of port prediction against a symmetric NAT.
17. The method ofclaim 1, wherein determining the direction of travel includes analyzing global positioning satellite (GPS) data or a wireless signal strength.
18. A mobile device, comprising:
a processor;
a network interface coupled to the processor, the network interface being configured to allow the mobile device to communicate wirelessly with one or more other devices over a network via one or more wireless access points; and
one or more processor executable instructions that when executed by the processor cause the mobile device to:
estimate a direction of travel for the mobile device;
use the an estimated direction of travel for the mobile device to predict one or more wireless access points that the mobile device is likely to encounter; and
a) determine information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device and store the information in such a way that the information is retrievable by one or more other devices or use the information to traverse one or more of the NATs; or
b) retrieve information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs; or
c) both a) and b).
19. The device ofclaim 18 further comprising a memory location accessible by the mobile device for storing and/or retrieving information regarding behavior of one or more NATs.
20. The device ofclaim 18 wherein the mobile device is connected to one or more other devices in the network via a router that implements the NAT.
21. The device ofclaim 18 wherein the mobile device is a router connected to one or more other devices.
22. The device ofclaim 21 wherein the router implements the NAT.
23. The device ofclaim 18 wherein the information regarding the behavior of one or more NATs includes NAT behavior information, one or more available STUN server addresses, one or more common database addresses, a number of active sessions via a NAT, a collective traffic load on a NAT or a value of a flag realizing atomicity of port prediction against a symmetric NAT.
24. The device ofclaim 18 wherein the one or more instructions are configured to cause the mobile device to determine the direction of travel by analyzing global positioning satellite (GPS) data or a wireless signal strength.
25. A method comprising:
using an estimated direction of travel to predict one or more wireless access points that a mobile device is likely to encounter; and
retrieving information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs.
26. The method of claim 25, wherein retrieving information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs includes retrieving information regarding behavior of one or more NATs from a central location that is accessible by the mobile device and the one or more other devices.
27. A method comprising:
using an estimated direction of travel for a mobile device to predict one or more wireless access points that the mobile device is likely to encounter;
determining information regarding behavior of one or more network address translators (NATs) associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device; and storing the information in such a way that the information is retrievable by one or more other devices or using the information to traverse one or more of the NATs; and
retrieving the information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs.
28. A mobile device, comprising:
a processor;
a network interface coupled to the processor; and
one or more processor executable instructions that when executed by the processor cause the mobile device to:
use an estimated direction of travel for a mobile device to predict one or more wireless access points that the mobile device is likely to encounter; and
retrieve information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs.
29. A mobile device, comprising:
a processor;
a network interface coupled to the processor; and
one or more processor executable instructions that when executed by the processor cause the mobile device to:
use an estimated direction of travel for the mobile device to predict one or more wireless access points that the mobile device is likely to encounter; and
a) determine information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter with the mobile device and store the information in such a way that the information is retrievable by one or more other devices or use the information to traverse one or more of the NATs; and
b) retrieve the information regarding behavior of one or more NATs associated with the predicted one or more wireless access points that the mobile device is likely to encounter and using the information to traverse one or more of the NATs.
US14/919,5392007-07-272015-10-21NAT traversal for mobile network devicesActive2027-12-25USRE47566E1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US14/919,539USRE47566E1 (en)2007-07-272015-10-21NAT traversal for mobile network devices

Applications Claiming Priority (3)

Application NumberPriority DateFiling DateTitle
US11/829,831US7933273B2 (en)2007-07-272007-07-27Cooperative NAT behavior discovery
US13/093,624US8565190B2 (en)2007-07-272011-04-25NAT traversal for mobile network devices
US14/919,539USRE47566E1 (en)2007-07-272015-10-21NAT traversal for mobile network devices

Related Parent Applications (1)

Application NumberTitlePriority DateFiling Date
US13/093,624ReissueUS8565190B2 (en)2007-07-272011-04-25NAT traversal for mobile network devices

Publications (1)

Publication NumberPublication Date
USRE47566E1true USRE47566E1 (en)2019-08-06

Family

ID=40295290

Family Applications (3)

Application NumberTitlePriority DateFiling Date
US11/829,831Active2029-03-15US7933273B2 (en)2007-07-272007-07-27Cooperative NAT behavior discovery
US13/093,624CeasedUS8565190B2 (en)2007-07-272011-04-25NAT traversal for mobile network devices
US14/919,539Active2027-12-25USRE47566E1 (en)2007-07-272015-10-21NAT traversal for mobile network devices

Family Applications Before (2)

Application NumberTitlePriority DateFiling Date
US11/829,831Active2029-03-15US7933273B2 (en)2007-07-272007-07-27Cooperative NAT behavior discovery
US13/093,624CeasedUS8565190B2 (en)2007-07-272011-04-25NAT traversal for mobile network devices

Country Status (5)

CountryLink
US (3)US7933273B2 (en)
EP (2)EP2890092B1 (en)
JP (1)JP5006968B2 (en)
CN (3)CN102984289B (en)
WO (1)WO2009018004A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20210019285A1 (en)*2019-07-162021-01-21Citrix Systems, Inc.File download using deduplication techniques

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20080298237A1 (en)*2006-08-032008-12-04Latitude Broadband, Inc.Methods, Systems, and Apparatus of Providing QoS and Scalability in the Deployment of Real-Time Traffic Services in Packet-based Networks
CN101335681B (en)*2007-06-272011-08-10华为技术有限公司Method for acquiring thru resource, peer-to-peer network node and peer-to-peer network
US8631155B2 (en)2007-06-292014-01-14Microsoft CorporationNetwork address translation traversals for peer-to-peer networks
US7933273B2 (en)*2007-07-272011-04-26Sony Computer Entertainment Inc.Cooperative NAT behavior discovery
KR101606142B1 (en)*2008-11-282016-03-25삼성전자주식회사Apparatus and method for supporting nat traversal in voice over internet protocol system
US7962627B2 (en)*2008-12-042011-06-14Microsoft CorporationPeer-to-peer network address translator (NAT) traversal techniques
US9160794B2 (en)*2008-12-042015-10-13Microsoft Technology Licensing, LlcNetwork address translators (NAT) type detection techniques
US8280376B2 (en)*2008-12-312012-10-02Airvana, Corp.Geography aware peer-to-peer overlay creation
CN101820382B (en)*2009-02-282013-02-27华为技术有限公司 A method, device and system for notifying network address translation equipment information
US8699378B2 (en)*2009-09-302014-04-15At&T Intellectual Property I, L.P.Methods and apparatus for discovering hosts on an IPv6 network
JP5273001B2 (en)*2009-09-302013-08-28ブラザー工業株式会社 COMMUNICATION SYSTEM, TERMINAL DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP5273002B2 (en)*2009-09-302013-08-28ブラザー工業株式会社 COMMUNICATION SYSTEM, COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
US8412833B2 (en)*2010-04-072013-04-02Apple Inc.Apparatus and method for inviting users to online sessions
FR2968496B1 (en)*2010-12-032013-07-05Sagemcom Documents Sas METHOD AND DEVICE FOR PAIRING A TERMINAL AND A USER ACCOUNT
CN102801603B (en)*2011-05-272017-04-05中兴通讯股份有限公司The flow-dividing control method and device that a kind of Network address translators accelerates
US8838735B2 (en)2011-06-282014-09-16At&T Intellectual Property I, L.P.Methods, systems, and products for address translation in residential networks
KR20130052240A (en)*2011-11-112013-05-22삼성전자주식회사Method and apparatus for provisioning network address translator traversal methods
EP2792128A1 (en)2011-12-142014-10-22Koninklijke KPN N.V.Improved server communication
WO2013087756A1 (en)2011-12-142013-06-20Koninklijke Kpn N.V.Methods and systems for enabling nat traversal
CN104115473B (en)2011-12-142018-05-25皇家Kpn公司Network gateway and its test method
US20150098471A1 (en)*2011-12-142015-04-09Koninklijke Kpn N.V.Methods and Systems for Enabling NAT Traversal
KR20140101405A (en)*2011-12-142014-08-19코닌클리즈케 케이피엔 엔.브이.Methods and systems for enabling nat traversal
EP2792127A1 (en)*2011-12-142014-10-22Koninklijke KPN N.V.Improved node in a network
KR101758681B1 (en)*2012-03-272017-07-14한화테크윈 주식회사Communication system, and data transmitting method in the system
CN102647483B (en)*2012-03-312018-02-27中兴通讯股份有限公司Obtain method, P2P end-point entities and the NAT entities of NAT types
KR101367180B1 (en)*2012-05-212014-02-26주식회사 바른기술An apparatus for switching and sharing network services and the method thereof
US9253237B2 (en)*2012-06-292016-02-02Cisco Technology, Inc.Rich media status and feedback for devices and infrastructure components using in path signaling
CN103414797B (en)*2013-07-312016-08-24中国联合网络通信集团有限公司NAT passes through the port assignment method and apparatus of server
US9379952B2 (en)*2013-08-202016-06-28Futurewei Technologies, Inc.Monitoring NAT behaviors through URI dereferences in web browsers
KR102287510B1 (en)*2014-04-102021-08-06엘지전자 주식회사Server, apparatus for providing image, and system including the same
TWI558149B (en)*2015-06-232016-11-11晶睿通訊股份有限公司Network transmission method and network transmission system for a multi-layer network address translator structure
CN104994184A (en)*2015-06-252015-10-21北京广密华安科技有限公司NAT traversal method and device
US9860157B2 (en)2015-09-092018-01-02Sling Media Pvt LtdZero configuration approach for port forwarding cascaded routers
CN105516342B (en)*2015-12-302019-02-22深圳市有信网络技术有限公司A kind of P2P penetrates synchronous method and system
US10255222B2 (en)2016-11-222019-04-09Dover Electronics LLCSystem and method for wirelessly transmitting data from a host digital device to an external digital location
CN109698869B (en)*2017-10-232022-02-25中国移动通信有限公司研究院 Private network traversal method, communication node and storage medium
US10778723B2 (en)2018-03-262020-09-15Forescout Technologies, Inc.Device visibility and scanning including network segments
JP7188046B2 (en)*2018-12-142022-12-13富士フイルムビジネスイノベーション株式会社 Communication system, communication device, communication system program and communication program

Citations (88)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5488608A (en)1994-04-141996-01-30Metricom, Inc.Method and system for routing packets in a packet communication network using locally constructed routing tables
US5636216A (en)1994-04-081997-06-03Metricom, Inc.Method for translating internet protocol addresses to other distributed network addressing schemes
US5793763A (en)1995-11-031998-08-11Cisco Technology, Inc.Security system for network address translation systems
WO1999035799A2 (en)1997-12-311999-07-15Ssh Communications Security OyA method for packet authentication in the presence of network address translations and protocol conversions
US5956485A (en)1994-05-051999-09-21Perlman; Stephen G.Network architecture to support real-time video games
US6058431A (en)1998-04-232000-05-02Lucent Technologies Remote Access Business UnitSystem and method for network address translation as an external service in the access server of a service provider
US6128664A (en)1997-10-202000-10-03Fujitsu LimitedAddress-translating connection device
US6128624A (en)1997-11-122000-10-03Ncr CorporationCollection and integration of internet and electronic commerce data in a database during web browsing
US6128623A (en)1998-04-152000-10-03Inktomi CorporationHigh performance object cache
US6128627A (en)1998-04-152000-10-03Inktomi CorporationConsistent data storage in an object cache
US6138156A (en)1998-10-052000-10-24International Business Machines CorporationSelecting and applying content-reducing filters based on dynamic environmental factors
US6151601A (en)1997-11-122000-11-21Ncr CorporationComputer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area
US6151584A (en)1997-11-202000-11-21Ncr CorporationComputer architecture and method for validating and collecting and metadata and data about the internet and electronic commerce environments (data discoverer)
US6209003B1 (en)1998-04-152001-03-27Inktomi CorporationGarbage collection in an object cache
US6208649B1 (en)1998-03-112001-03-27Cisco Technology, Inc.Derived VLAN mapping technique
US6212565B1 (en)1998-08-262001-04-03Sun Microsystems, Inc.Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6289358B1 (en)1998-04-152001-09-11Inktomi CorporationDelivering alternate versions of objects from an object cache
US6292880B1 (en)1998-04-152001-09-18Inktomi CorporationAlias-free content-indexed object cache
WO2001097485A2 (en)2000-06-142001-12-20At & T Wireless Services, Inc.Method for providing transparent public addressed networks within private networks
US6333931B1 (en)1998-12-282001-12-25Cisco Technology, Inc.Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof
WO2002003217A1 (en)2000-06-302002-01-10Net2PhoneSystem, method, and computer program product for resolving addressing in a network including a network address translator
US20020016826A1 (en)1998-02-072002-02-07Olof JohanssonFirewall apparatus and method of controlling network data packet traffic between internal and external networks
US6353891B1 (en)2000-03-202002-03-053Com CorporationControl channel security for realm specific internet protocol
WO2002023822A1 (en)2000-09-132002-03-21Alcatel Usa Sourcing, L.P.Method and apparatus for facilitating peer-to-peer application communication
US6389462B1 (en)1998-12-162002-05-14Lucent Technologies Inc.Method and apparatus for transparently directing requests for web objects to proxy caches
US6393488B1 (en)1999-05-272002-05-213Com CorporationSystem and method for supporting internet protocol subnets with network address translators
US20020075844A1 (en)2000-12-152002-06-20Hagen W. AlexanderIntegrating public and private network resources for optimized broadband wireless access and method
US20020143855A1 (en)2001-01-222002-10-03Traversat Bernard A.Relay peers for extending peer availability in a peer-to-peer networking environment
US20030009561A1 (en)2001-06-142003-01-09Sollee Patrick N.Providing telephony services to terminals behind a firewall and /or network address translator
US20030051052A1 (en)2001-09-132003-03-13Koninklijke Philips Electronics N.V.Addressing scheme for wireless mobile clients
US6535511B1 (en)1999-01-072003-03-18Cisco Technology, Inc.Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems
US20030055978A1 (en)2001-09-182003-03-20Microsoft CorporationMethods and systems for enabling outside-initiated traffic flows through a network address translator
US6581108B1 (en)1999-11-302003-06-17Lucent Technologies Inc.Managing multiple private data networks using network and payload address translation
US20030135625A1 (en)2002-01-152003-07-17International Business Machines CorporationBlended SYN cookies
US6618757B1 (en)2000-05-172003-09-09Nortel Networks LimitedSystem and method for dynamic IP address management
US6636898B1 (en)1999-01-292003-10-21International Business Machines CorporationSystem and method for central management of connections in a virtual private network
US20040024879A1 (en)2002-07-302004-02-05Dingman Christopher P.Method and apparatus for supporting communications between a computing device within a network and an external computing device
US20040139228A1 (en)2003-01-152004-07-15Yutaka TakedaPeer-to-peer (P2P) connection despite network address translators (NATs) at both ends
WO2004063843A2 (en)2003-01-152004-07-29Matsushita Electric Industrial Co., Ltd.PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS
US6779035B1 (en)2000-03-062004-08-17Microsoft CorporationApplication programming interface and generalized network address translator for translation of transport-layer sessions
US6789126B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Addressing message gates in a distributed computing environment
US6799255B1 (en)1998-06-292004-09-28Emc CorporationStorage mapping and partitioning among multiple host processors
US20040249891A1 (en)2001-12-142004-12-09Hisham KhartabilMethod and apparatus for communication
US20050044247A1 (en)2003-07-152005-02-24Tadiran Telecom Business Systems Ltd.Communication between users located behind a NAT device
US20050105526A1 (en)2003-11-182005-05-19Nec CorporationMethod for traversing network address translators for SIP-signaled sessions
US20050114728A1 (en)2003-11-262005-05-26Masaki AizawaDisk array system and a method of avoiding failure of the disk array system
US20050149481A1 (en)1999-12-022005-07-07Lambertus HesselinkManaged peer-to-peer applications, systems and methods for distributed data access and storage
US20050201391A1 (en)*2004-03-112005-09-15Hung-Fang MaNetwork address translation router and related method
WO2005088466A1 (en)2004-03-092005-09-22Clique Communications LlcSystem and method for peer-to-peer connection of clients behind symmetric firewalls
WO2005099173A1 (en)2004-04-062005-10-20Koninklijke Philips Electronics, N.V.Location based handoff for mobile devices
US20050251577A1 (en)2004-04-202005-11-10Microsoft CorporationPeer-to-peer (P2P) mobility system, and method
US20050259637A1 (en)2004-05-212005-11-24Chu Thomas PMethod for optimal path selection in traversal of packets through network address translators
US6993012B2 (en)*2001-02-202006-01-31Innomedia Pte, LtdMethod for communicating audio data in a packet switched network
US7016942B1 (en)2002-08-052006-03-21Gary OdomDynamic hosting
US20060075127A1 (en)2004-09-302006-04-06Logitech Europe S.A.Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US20060120293A1 (en)2004-12-072006-06-08Wing Daniel GMethod and apparatus for discovering Internet addresses
CN1825828A (en)2005-02-242006-08-30北京风行在线技术有限公司 A control method and device for direct penetration communication where both ends are under different NATs
US7107348B2 (en)2001-03-272006-09-12Fujitsu LimitedPacket relay processing apparatus
US20060209822A1 (en)2005-03-182006-09-21Moe HamamotoCommunication apparatus, communication system and communication method
JP2006295909A (en)2005-03-182006-10-26Matsushita Electric Ind Co Ltd COMMUNICATION DEVICE, COMMUNICATION SYSTEM, AND COMMUNICATION METHOD
US7133368B2 (en)2002-02-012006-11-07Microsoft CorporationPeer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
US20060288103A1 (en)2003-11-072006-12-21Kunio GobaraCommunication system, information processing apparatus, server, and communication method
US7155518B2 (en)2001-01-082006-12-26Interactive People Unplugged AbExtranet workgroup formation across multiple mobile virtual private networks
US20070014301A1 (en)*2005-07-132007-01-18Motient CorporationMethod and apparatus for providing static addressing
US20070036143A1 (en)*2004-08-132007-02-15Alt Wade RMethod and system for providing voice over IP managed services utilizing a centralized data store
JP2007060281A (en)2005-08-242007-03-08Matsushita Electric Ind Co Ltd IP communication apparatus and control method thereof
US20070061460A1 (en)2005-03-242007-03-15Jumpnode Systems,LlcRemote access
US20070058792A1 (en)2005-08-122007-03-15Chaudhari Manoj KMethod and system for booting, provisioning and activating hardware and software clients
US20070076729A1 (en)2005-10-042007-04-05Sony Computer Entertainment Inc.Peer-to-peer communication traversing symmetric network address translators
US20070076099A1 (en)2005-10-032007-04-05Eyal EshedDevice and method for hybrid resolution video frames
US20070076094A1 (en)2005-09-092007-04-05Agilemesh, Inc.Surveillance apparatus and method for wireless mesh network
US7216359B2 (en)2002-12-192007-05-08International Business Machines CorporationSecure communication overlay using IP address hopping
US20070110054A1 (en)*2005-11-162007-05-17Kabushiki Kaisha ToshibaDevice and method for communicating with another communication device via network forwarding device
US20070150552A1 (en)2002-05-132007-06-28Harris Adam PPeer to peer network communication
US20070165629A1 (en)2004-06-292007-07-19Damaka, Inc.System and method for dynamic stability in a peer-to-peer hybrid communications network
US7254709B1 (en)2001-10-232007-08-07Avanza Technologies, Inc.Managed information transmission of electronic items in a network environment
US20070191109A1 (en)2001-08-202007-08-16Bally Gaming, Inc.Local Game-Area Network Method
US20070208748A1 (en)2006-02-222007-09-06Microsoft CorporationReliable, efficient peer-to-peer storage
US20070217436A1 (en)2006-03-162007-09-20Markley Jeffrey PMethods and apparatus for centralized content and data delivery
US7302496B1 (en)*2002-11-122007-11-27Cisco Technology, Inc.Arrangement for discovering a localized IP address realm between two endpoints
US20080120404A1 (en)2006-11-202008-05-22Funai Electric Co., LtdManagement Server and Content Moving System
US20080198850A1 (en)2007-02-212008-08-21Avaya Canada Corp.Peer-to-peer communication system and method
US20090077245A1 (en)2007-08-162009-03-19Vladimir SmelyanskyClient-To-Client Direct RTP Exchange In A Managed Client-Server Network
US20090138610A1 (en)2005-09-292009-05-28Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, and program
US7546125B2 (en)*2005-10-032009-06-09Divitas Networks, Inc.Enhancing user experience during handoffs in wireless communication
US20090180476A1 (en)*2006-04-242009-07-16Lee Jang-WonInter working system between ip networks using different ip address format, application layer gateway (alg) server, stun server, network address translator, interworking method thereof, and sip message routing method thereof
US7933273B2 (en)*2007-07-272011-04-26Sony Computer Entertainment Inc.Cooperative NAT behavior discovery
US8060626B2 (en)*2008-09-222011-11-15Sony Computer Entertainment America Llc.Method for host selection based on discovered NAT type

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN100399768C (en)*2003-12-242008-07-02华为技术有限公司 Method and system for realizing network address translation traversal

Patent Citations (101)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US5636216A (en)1994-04-081997-06-03Metricom, Inc.Method for translating internet protocol addresses to other distributed network addressing schemes
CN1152383A (en)1994-04-141997-06-18麦垂考姆公司 Method and system for routing data packets
US5488608A (en)1994-04-141996-01-30Metricom, Inc.Method and system for routing packets in a packet communication network using locally constructed routing tables
US5956485A (en)1994-05-051999-09-21Perlman; Stephen G.Network architecture to support real-time video games
US5793763A (en)1995-11-031998-08-11Cisco Technology, Inc.Security system for network address translation systems
US6128664A (en)1997-10-202000-10-03Fujitsu LimitedAddress-translating connection device
US6151601A (en)1997-11-122000-11-21Ncr CorporationComputer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area
US6128624A (en)1997-11-122000-10-03Ncr CorporationCollection and integration of internet and electronic commerce data in a database during web browsing
US6151584A (en)1997-11-202000-11-21Ncr CorporationComputer architecture and method for validating and collecting and metadata and data about the internet and electronic commerce environments (data discoverer)
WO1999035799A2 (en)1997-12-311999-07-15Ssh Communications Security OyA method for packet authentication in the presence of network address translations and protocol conversions
US20020016826A1 (en)1998-02-072002-02-07Olof JohanssonFirewall apparatus and method of controlling network data packet traffic between internal and external networks
US6208649B1 (en)1998-03-112001-03-27Cisco Technology, Inc.Derived VLAN mapping technique
US6292880B1 (en)1998-04-152001-09-18Inktomi CorporationAlias-free content-indexed object cache
US6209003B1 (en)1998-04-152001-03-27Inktomi CorporationGarbage collection in an object cache
US6128627A (en)1998-04-152000-10-03Inktomi CorporationConsistent data storage in an object cache
US6289358B1 (en)1998-04-152001-09-11Inktomi CorporationDelivering alternate versions of objects from an object cache
US6128623A (en)1998-04-152000-10-03Inktomi CorporationHigh performance object cache
US6058431A (en)1998-04-232000-05-02Lucent Technologies Remote Access Business UnitSystem and method for network address translation as an external service in the access server of a service provider
US6799255B1 (en)1998-06-292004-09-28Emc CorporationStorage mapping and partitioning among multiple host processors
US6212565B1 (en)1998-08-262001-04-03Sun Microsystems, Inc.Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6138156A (en)1998-10-052000-10-24International Business Machines CorporationSelecting and applying content-reducing filters based on dynamic environmental factors
US6389462B1 (en)1998-12-162002-05-14Lucent Technologies Inc.Method and apparatus for transparently directing requests for web objects to proxy caches
US6333931B1 (en)1998-12-282001-12-25Cisco Technology, Inc.Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof
US6535511B1 (en)1999-01-072003-03-18Cisco Technology, Inc.Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems
US6636898B1 (en)1999-01-292003-10-21International Business Machines CorporationSystem and method for central management of connections in a virtual private network
US6393488B1 (en)1999-05-272002-05-213Com CorporationSystem and method for supporting internet protocol subnets with network address translators
US6581108B1 (en)1999-11-302003-06-17Lucent Technologies Inc.Managing multiple private data networks using network and payload address translation
US20050149481A1 (en)1999-12-022005-07-07Lambertus HesselinkManaged peer-to-peer applications, systems and methods for distributed data access and storage
US6779035B1 (en)2000-03-062004-08-17Microsoft CorporationApplication programming interface and generalized network address translator for translation of transport-layer sessions
US6353891B1 (en)2000-03-202002-03-053Com CorporationControl channel security for realm specific internet protocol
US6789126B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Addressing message gates in a distributed computing environment
US6618757B1 (en)2000-05-172003-09-09Nortel Networks LimitedSystem and method for dynamic IP address management
WO2001097485A2 (en)2000-06-142001-12-20At & T Wireless Services, Inc.Method for providing transparent public addressed networks within private networks
WO2002003217A1 (en)2000-06-302002-01-10Net2PhoneSystem, method, and computer program product for resolving addressing in a network including a network address translator
US6661799B1 (en)*2000-09-132003-12-09Alcatel Usa Sourcing, L.P.Method and apparatus for facilitating peer-to-peer application communication
WO2002023822A1 (en)2000-09-132002-03-21Alcatel Usa Sourcing, L.P.Method and apparatus for facilitating peer-to-peer application communication
US20020075844A1 (en)2000-12-152002-06-20Hagen W. AlexanderIntegrating public and private network resources for optimized broadband wireless access and method
US7155518B2 (en)2001-01-082006-12-26Interactive People Unplugged AbExtranet workgroup formation across multiple mobile virtual private networks
US20020143855A1 (en)2001-01-222002-10-03Traversat Bernard A.Relay peers for extending peer availability in a peer-to-peer networking environment
US6993012B2 (en)*2001-02-202006-01-31Innomedia Pte, LtdMethod for communicating audio data in a packet switched network
US7107348B2 (en)2001-03-272006-09-12Fujitsu LimitedPacket relay processing apparatus
US20030009561A1 (en)2001-06-142003-01-09Sollee Patrick N.Providing telephony services to terminals behind a firewall and /or network address translator
US20070191109A1 (en)2001-08-202007-08-16Bally Gaming, Inc.Local Game-Area Network Method
US20030051052A1 (en)2001-09-132003-03-13Koninklijke Philips Electronics N.V.Addressing scheme for wireless mobile clients
US20030055978A1 (en)2001-09-182003-03-20Microsoft CorporationMethods and systems for enabling outside-initiated traffic flows through a network address translator
US7254709B1 (en)2001-10-232007-08-07Avanza Technologies, Inc.Managed information transmission of electronic items in a network environment
US20040249891A1 (en)2001-12-142004-12-09Hisham KhartabilMethod and apparatus for communication
US20030135625A1 (en)2002-01-152003-07-17International Business Machines CorporationBlended SYN cookies
US7133368B2 (en)2002-02-012006-11-07Microsoft CorporationPeer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
US20070150552A1 (en)2002-05-132007-06-28Harris Adam PPeer to peer network communication
US20040024879A1 (en)2002-07-302004-02-05Dingman Christopher P.Method and apparatus for supporting communications between a computing device within a network and an external computing device
US7016942B1 (en)2002-08-052006-03-21Gary OdomDynamic hosting
US7302496B1 (en)*2002-11-122007-11-27Cisco Technology, Inc.Arrangement for discovering a localized IP address realm between two endpoints
US7216359B2 (en)2002-12-192007-05-08International Business Machines CorporationSecure communication overlay using IP address hopping
US7590758B2 (en)*2003-01-152009-09-15Panasonic CorporationPeer-to-peer (P2P) connection despite network address translators (NATs) at both ends
US7328280B2 (en)*2003-01-152008-02-05Matsushita Electric Industrial Co., Ltd.Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends
US20040139228A1 (en)2003-01-152004-07-15Yutaka TakedaPeer-to-peer (P2P) connection despite network address translators (NATs) at both ends
WO2004063843A2 (en)2003-01-152004-07-29Matsushita Electric Industrial Co., Ltd.PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS
US20050044247A1 (en)2003-07-152005-02-24Tadiran Telecom Business Systems Ltd.Communication between users located behind a NAT device
US20060288103A1 (en)2003-11-072006-12-21Kunio GobaraCommunication system, information processing apparatus, server, and communication method
US20050105526A1 (en)2003-11-182005-05-19Nec CorporationMethod for traversing network address translators for SIP-signaled sessions
US20050114728A1 (en)2003-11-262005-05-26Masaki AizawaDisk array system and a method of avoiding failure of the disk array system
WO2005088466A1 (en)2004-03-092005-09-22Clique Communications LlcSystem and method for peer-to-peer connection of clients behind symmetric firewalls
US20050201391A1 (en)*2004-03-112005-09-15Hung-Fang MaNetwork address translation router and related method
CN1938996A (en)2004-04-062007-03-28皇家飞利浦电子股份有限公司 Location-Based Handoff for Mobile Devices
US7840227B2 (en)*2004-04-062010-11-23Koninklijke Philips Electronics N.V.Location based handoff for mobile devices
WO2005099173A1 (en)2004-04-062005-10-20Koninklijke Philips Electronics, N.V.Location based handoff for mobile devices
US7536467B2 (en)2004-04-202009-05-19Microsoft CorporationPeer-to-peer (P2P) mobility system, and method
US20050251577A1 (en)2004-04-202005-11-10Microsoft CorporationPeer-to-peer (P2P) mobility system, and method
US7620033B2 (en)2004-05-212009-11-17Alcatel-Lucent Usa Inc.Method for optimal path selection in traversal of packets through network address translators
US20050259637A1 (en)2004-05-212005-11-24Chu Thomas PMethod for optimal path selection in traversal of packets through network address translators
US20070165629A1 (en)2004-06-292007-07-19Damaka, Inc.System and method for dynamic stability in a peer-to-peer hybrid communications network
US20070036143A1 (en)*2004-08-132007-02-15Alt Wade RMethod and system for providing voice over IP managed services utilizing a centralized data store
US20090240821A1 (en)2004-09-302009-09-24Logitech Europe S.A.Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host
US7543064B2 (en)2004-09-302009-06-02Logitech Europe S.A.Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US20060075127A1 (en)2004-09-302006-04-06Logitech Europe S.A.Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US20060120293A1 (en)2004-12-072006-06-08Wing Daniel GMethod and apparatus for discovering Internet addresses
US20080165802A1 (en)2005-02-242008-07-10Beijing Funshion Online Technologies LtdMethod for Controlling the Direct Penetrate Communication Two Parts of Which Are Under the Different Nats and the Device Thereof
CN1825828A (en)2005-02-242006-08-30北京风行在线技术有限公司 A control method and device for direct penetration communication where both ends are under different NATs
JP2006295909A (en)2005-03-182006-10-26Matsushita Electric Ind Co Ltd COMMUNICATION DEVICE, COMMUNICATION SYSTEM, AND COMMUNICATION METHOD
US20060209822A1 (en)2005-03-182006-09-21Moe HamamotoCommunication apparatus, communication system and communication method
US20070061460A1 (en)2005-03-242007-03-15Jumpnode Systems,LlcRemote access
US20070014301A1 (en)*2005-07-132007-01-18Motient CorporationMethod and apparatus for providing static addressing
US20070058792A1 (en)2005-08-122007-03-15Chaudhari Manoj KMethod and system for booting, provisioning and activating hardware and software clients
JP2007060281A (en)2005-08-242007-03-08Matsushita Electric Ind Co Ltd IP communication apparatus and control method thereof
US20070076094A1 (en)2005-09-092007-04-05Agilemesh, Inc.Surveillance apparatus and method for wireless mesh network
US20090138610A1 (en)2005-09-292009-05-28Matsushita Electric Industrial Co., Ltd.Information processing system, tunnel communication device, tunnel communication method, and program
US7546125B2 (en)*2005-10-032009-06-09Divitas Networks, Inc.Enhancing user experience during handoffs in wireless communication
US20070076099A1 (en)2005-10-032007-04-05Eyal EshedDevice and method for hybrid resolution video frames
US8224985B2 (en)*2005-10-042012-07-17Sony Computer Entertainment Inc.Peer-to-peer communication traversing symmetric network address translators
US20070076729A1 (en)2005-10-042007-04-05Sony Computer Entertainment Inc.Peer-to-peer communication traversing symmetric network address translators
US20070110054A1 (en)*2005-11-162007-05-17Kabushiki Kaisha ToshibaDevice and method for communicating with another communication device via network forwarding device
US20070208748A1 (en)2006-02-222007-09-06Microsoft CorporationReliable, efficient peer-to-peer storage
US20070217436A1 (en)2006-03-162007-09-20Markley Jeffrey PMethods and apparatus for centralized content and data delivery
US20090180476A1 (en)*2006-04-242009-07-16Lee Jang-WonInter working system between ip networks using different ip address format, application layer gateway (alg) server, stun server, network address translator, interworking method thereof, and sip message routing method thereof
US20080120404A1 (en)2006-11-202008-05-22Funai Electric Co., LtdManagement Server and Content Moving System
US20080198850A1 (en)2007-02-212008-08-21Avaya Canada Corp.Peer-to-peer communication system and method
US7933273B2 (en)*2007-07-272011-04-26Sony Computer Entertainment Inc.Cooperative NAT behavior discovery
US8565190B2 (en)2007-07-272013-10-22Sony Computer Entertainment Inc.NAT traversal for mobile network devices
US20090077245A1 (en)2007-08-162009-03-19Vladimir SmelyanskyClient-To-Client Direct RTP Exchange In A Managed Client-Server Network
US8060626B2 (en)*2008-09-222011-11-15Sony Computer Entertainment America Llc.Method for host selection based on discovered NAT type

Non-Patent Citations (62)

* Cited by examiner, † Cited by third party
Title
Advisory Action dated Nov. 15, 2010 issued for U.S. Appl. No. 12/235,438.
Arno Wacker et al-"A NAT Traversal Mechanism for Peer-to Peer Networks"-Eighth International Conference on Peer-to Peer Computing (P2P'08), 2008. IEEE. pp. 81-83.
Arno Wacker et al—"A NAT Traversal Mechanism for Peer-to Peer Networks"—Eighth International Conference on Peer-to Peer Computing (P2P'08), 2008. IEEE. pp. 81-83.
BroadbandReports.com, How to hookup our console to the net-section all, pp. 1 to 22, http://www.dslreports.com/fag/onlinegaming/all.
BroadbandReports.com, How to hookup our console to the net—section all, pp. 1 to 22, http://www.dslreports.com/fag/onlinegaming/all.
Do I use NAT?, pp. 1 to 3, http://www.u.arizona.edu/.about.trw/games/nat or not.php, Oct. 23, 2002.
European Search Report dated Jan. 28, 2010 issued for European patent application No. 99252219.2.
Extended European Search Report for Application No. EP 08782141.9 dated Aug. 21, 2013.
F. Audet, "NAT Behavioral Requirements for Unicast UDP", BEHAVE Internet Draft, Jul. 15, 2005.
Final Office Action dated Apr. 12, 2010 for U.S. Appl. No. 11/243,853.
Final Office Action dated Aug. 31, 2010 issued for U.S. Appl. No. 12/235,438.
Final Office Action dated Jul. 19, 2010 issued for U.S. Appl. No. 12/235,409.
Final Office Action dated May 28, 2009 for U.S. Appl. No. 11/243,853.
Final Office Action dated Oct. 29, 2009 issued for U.S. Appl. No. 11/708,988.
Final Office Action dated Sep. 9, 2010 issued for U.S. Appl. No. 11/708,988.
First Office Action dated Oct. 30, 2014 for Chinese Patent Application No. 201210502299.1.
Home Toys Article, HAI Omni Solution, UPnP NAT Traversal FAQ, pp. 1 to 4 http://hometoys.com/htinews/aug01/articles/microsoft/upnp.sub.-htm, Nov. 11, 2002.
http://www.dslreports.com/ip.
http://www2.simplex.com/ip.shtml.
International application No. PCT/US2006/038285, "The International Search Report and The Written Opinion of the International Searching Authority".
International Search Report and Written Opinion of the international Searching Authority dated Oct. 22, 2008-International Patent Application No. PCT/U508/70661,8 Pages.
International Search Report and Written Opinion of the international Searching Authority dated Oct. 22, 2008—International Patent Application No. PCT/U508/70661,8 Pages.
InternetGatewayDevice: I Device Template Version 1.01, Copyright 1999-2001 Microsoft Corporation, 16 pgs.
J. Rosenberg, "Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Multimedia Session Establishment Protocols", MMUSIC Internet-Draft, Oct. 25, 2004.
J. Rosenberg, "Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", MMUSIC Internet-Draft, Jan. 16, 2007.
J. Rosenberg, "Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", MMUSIC Internet-Draft, Jul. 17, 2005.
J. Rosenberg, "Simple Traversal of UDP Through Network Address Translators (NAT)", BEHAVE Internet-Draft, Jul. 17, 2005.
J. Rosenberg, "STUN-Simple Traversal of User Datagram Protocols (UDP) Through Network Address Translators (NATs)", Network Working Group, Mar. 2003.
J. Rosenberg, "STUN—Simple Traversal of User Datagram Protocols (UDP) Through Network Address Translators (NATs)", Network Working Group, Mar. 2003.
J. Rosenberg, Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Multimedia Session Establishment Protocols, Jul. 19, 2004, retrieved from http://tools.ietf.org/id/draft-ietf-mmusic-ice-02.txt.
J. Rosenberg, Traversal Using Relay NAT (TURN), MIDCOM Internet-Draft, Oct. 20, 2003.
Jim Dowling et al.-"Improving ICE Service Selection in a P2P System using the Gradient Topology"-First International Conference on Self-Adaptive and Self-Organizing Systems (SASO 07) , 2007, IEEE, pp. 285-288.
Jim Dowling et al.—"Improving ICE Service Selection in a P2P System using the Gradient Topology"—First International Conference on Self-Adaptive and Self-Organizing Systems (SASO 07) , 2007, IEEE, pp. 285-288.
NAT and Network Games, p. 1-5, entitled: Just the FAOs, Ma'am, http://www.u.arizona.edu/.about.trw/games/nat.htm, Oct. 23, 2002.
Nat and Peer-to-Peer networking, Dan Kegel. Copyright 1999 http://alumnus.caltech.edu/-dank/peer-nat.html.
Network Address Translators. Microsoft Corporation Jan. 2001, http://msdn.microsoft.com/library/default.asp?irl=/library/en-us/dnplay/html/nats2-msdn.asp.
Nonfinal Office Action dated Jan. 3, 2013 for U.S. Appl. No. 13/093,624.
Nonfinal Office Action dated Mar. 10, 2010 for U.S. Appl. No. 11/829,831.
Non-Final Office Action dated Nov. 25, 2008 for U.S. Appl. No. 11/243,853.
Non-Final Office Action dated Oct. 13, 2009 for U.S. Appl. No. 11/243,853.
Notice of Allowance and Fee(s) Due dated Oct. 28, 2009 for U.S. Appl. No. 10/215,899.
Office Action dated Aug. 12, 2005 issued for U.S. Appl. No. 10/215,899.
Office Action dated Aug. 31, 2010 issued for U.S. Appl. No. 11/243,853.
Office Action dated Feb. 21, 2012 in Japanese Patent Application No. 2010-520064.
Office Action dated Feb. 22, 2010 issued for U.S. Appl. No. 11/708,988.
Office Action dated Feb. 29, 2012 in Chinese Patent Application No. 200880108512.2.
Office Action dated Jun. 4, 2009 issued for U.S. Appl. No. 10/215,899.
Office Action dated Mar. 13, 2008 issued for U.S. Appl. No. 10/215,899.
Office Action dated Mar. 22, 2007 issued for U.S. Appl. No. 10/215,899.
Office Action dated Mar. 24, 2010 issued for U.S. Appl. No. 12/235,409.
Office Action dated May 5, 2009 issued for U.S. Appl. No. 11/708,988.
Office Action dated Nov. 26, 2012 in Chinese Patent Application No. 200880108512.2.
Office Action dated Nov. 7, 2008 issued for U.S. Appl. No. 10/215,899.
Office Action dated Sep. 11, 2007 issued for U.S. Appl. No. 10/215,899.
Office Action issued by the European Patent Office (EPO) on Feb. 17, 2010 for European patent application No. 09022219.2.
Office Action issued by the USPTO dated Apr. 15, 2010 for U.S. Appl. No. 12/235,438.
Second Office Action dated Sep. 14, 2015 for Chinese Patent Application 201210502299.1.
Sony Computer Entertainment Incorporated, "Cell Broadband Engine Architecture", Version 1.0, Aug. 8, 2005.
STUN-Simple Traversal of UDP Thrugh NATs, J. Rosenberg et al. pp. 1-29, Copyright The Internet Society.
STUN—Simple Traversal of UDP Thrugh NATs, J. Rosenberg et al. pp. 1-29, Copyright The Internet Society.
Traversal Using Relay NAT (TURN), Rosenberg, Weinberger, Huitema, Mahy, Nov. 14, 2001, pp. 1 to 17.
Y. Takuda, "Symmetric NAT Traversal using STUN", Internet Engineering Task Force, Jun. 2003.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20210019285A1 (en)*2019-07-162021-01-21Citrix Systems, Inc.File download using deduplication techniques

Also Published As

Publication numberPublication date
CN107257389B (en)2021-01-12
US8565190B2 (en)2013-10-22
WO2009018004A1 (en)2009-02-05
JP2010535004A (en)2010-11-11
CN101809951B (en)2017-06-06
EP2171933A4 (en)2013-09-18
EP2890092B1 (en)2016-11-23
EP2171933B1 (en)2015-04-08
CN107257389A (en)2017-10-17
US20090028167A1 (en)2009-01-29
CN102984289A (en)2013-03-20
US7933273B2 (en)2011-04-26
US20110200009A1 (en)2011-08-18
EP2890092A1 (en)2015-07-01
JP5006968B2 (en)2012-08-22
CN101809951A (en)2010-08-18
CN102984289B (en)2016-08-10
EP2171933A1 (en)2010-04-07

Similar Documents

PublicationPublication DateTitle
USRE47566E1 (en)NAT traversal for mobile network devices
US7646775B2 (en)Protocol and system for firewall and NAT traversal for TCP connections
US8626879B2 (en)Systems and methods for establishing network connections using local mediation services
JP5185435B2 (en) NAT traversal method based on combining UPnP and STUN
US8650312B2 (en)Connection establishing management methods for use in a network system and network systems using the same
US20070195800A1 (en)Communication using private IP addresses of local networks
US20040153858A1 (en)Direct peer-to-peer transmission protocol between two virtual networks
WO2007041417A1 (en)Peer-to-peer communication traversing symmetric network address translators
WO2017209923A1 (en)Detecting source network address translation in a communication system
US9049122B2 (en)Bandwidth probing messages
WO2011035528A1 (en)Method, system and relay server for network address translation (nat) traversal by way of relay
US7356031B1 (en)Inter-v4 realm routing
EP2052514B1 (en)Pervasive inter-domain dynamic host configuration
Punithavathani et al.Performance analysis for wireless networks: An analytical approach by multifarious sym teredo
WO2008051028A1 (en)Network address translation control system and method for providing multilateral-bidirectional audio communication service
Duarte Jr et al.Transparent communications for applications behind NAT/firewall over any transport protocol
Kanaris et al.Mass Adoption of NATs: Survey and experiments on carrier-grade NATs
HughesReview of IPv4
Lidholm et al.Evaluating an IPv4 and IPv6 network
Boucadair et al.PCP Working Group G. Chen Internet-Draft China Mobile Intended status: Standards Track T. Reddy Expires: March 22, 2014 P. Patil Cisco

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:SONY INTERACTIVE ENTERTAINMENT INC., JAPAN

Free format text:CHANGE OF NAME;ASSIGNOR:SONY COMPUTER ENTERTAINMENT INC.;REEL/FRAME:039276/0023

Effective date:20160401

ASAssignment

Owner name:SONY COMPUTER ENTERTAINMENT INC., JAPAN

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TAKEDA, YUTAKA;WHITE, PAYTON E.;MARR, JAMES E.;AND OTHERS;REEL/FRAME:049398/0502

Effective date:20070726

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:8

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:12


[8]ページ先頭

©2009-2025 Movatter.jp