US20090240821A1 - Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host - Google Patents
Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host Download PDFInfo
- Publication number
- US20090240821A1 US20090240821A1 US12/476,106 US47610609A US2009240821A1 US 20090240821 A1 US20090240821 A1 US 20090240821A1 US 47610609 A US47610609 A US 47610609A US 2009240821 A1 US2009240821 A1 US 2009240821A1
- Authority
- US
- United States
- Prior art keywords
- socket
- host
- peer
- port
- stun
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2575—NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2578—NAT traversal without involvement of the NAT server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
Definitions
- the present application relates generally to communications between computer devices and, more particularly, to multiplayer peer-to-peer connections across firewalls and network address translators (NATs), using a single port number on each computer device.
- NATs network address translators
- More and more applications attempt to create a peer-to-peer connection between two hosts to transfer data.
- it is non-trivial to achieve such a connection in case one or both of the hosts are behind a firewall, especially if it also does network address translation, as is the case with the great majority of business and home firewalls nowadays.
- people often use a device that is a combination of a router, firewall and NAT.
- the problem is even further complicated in the case where a host attempts multiple peer-to-peer connections at the same time through a single port. This is exactly the way in which many PC and console games doing peer-to-peer data exchange work.
- An additional challenge is to be able to set up a new connection through a single (private) port of the host, all the while transferring data through that same port with other hosts. This is a situation commonly found in network games where people meet in a lobby, and where as soon as a new user joins, he or she can start talking to the other users through voice chat using a headset.
- firewall/NAT traversal Currently most peer-to-peer applications only have basic support for firewall/NAT traversal. The result is that if a host happens to be behind a difficult to traverse firewall/NAT, the host's online experience will be poor because a lot of connections will fail.
- Another solution adopted by Microsoft® in the XBoxTM gaming console is to display on the support site a list of compatible and incompatible router devices. Indeed, some firewalls are more difficult to traverse than others, and in the case of Microsoft® the technology will enable peer-to-peer connectivity between hosts behind “easy” firewalls/NATs, but not behind more difficult ones. But often users already have a firewall before they buy a game. In case they use a firewall that is not supported by the game, they will run into problems to play online.
- Embodiments of the present invention provide a method and a system for achieving a very high success rate (close to 100%) in peer-to-peer connection establishment. It does so for single or multiple connections, using a single port or multiple random ports, and it works with any combination of any types of firewalls/NATs, regardless of whether they are easy or difficult to traverse. It also enables hosts to connect to a group of already interconnected hosts at any time, even when using a single port of a host and while the other hosts are already exchanging data with that host on that same port. Embodiments of the present invention rely on STUN servers (RFC 3489) to find out about the public IP address and port used by the NAT, and the exact type of the NAT.
- RRC 3489 STUN servers
- An aspect of the present invention is directed to a method of providing peer-to-peer connection among a plurality of host devices disposed behind corresponding network address translators.
- the method comprises providing a plurality of STUN servers; for each host device to be connected, providing a first socket bound to a first private port and a second socket bound to a second private port; for each host device to be connected, sending a first STUN packet through the first socket to a first STUN server of the plurality of STUN servers via a public port of the corresponding network address translator, the public port having a public port number identified by the first STUN server; for each host device to be connected, sending a second group of STUN packets through the second socket to the plurality of STUN servers via one or more public ports of the corresponding network address translator, the second group of STUN packets being equal in number to the STUN servers, the one or more public ports being different from the public port for the first socket, each of the one or more public ports having a public port number identified by the STUN servers; and for each
- the predicted public port number of the corresponding network address translator for the second socket of the host device is a maximum of ((the port number of the public port for the first socket+an increment) and (the port number of the last public port which is the highest port number for the second socket+an increment)). Different public port numbers of the corresponding network address translator are separated by an increment.
- the predicted public port number of the corresponding network address translator for the second socket of the host device is (the port number of the public port for the first socket+the increment), if there has been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator and the one or more public ports are still active.
- the predicted public port number of the corresponding network address translator for the second socket of the host device is (the port number of the last public port which is the highest port number for the second socket+the increment), if either there has not been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator, or there has been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator and the peer-to-peer connection has expired and the one or more public ports are no longer active.
- the method further comprises forming a peer-to-peer connection between the second socket of a first host device and the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device; and forming a peer-to-peer connection between the second socket of the first host device and the second socket of a third host device using the predicted public port number of the corresponding network address translator for the second socket of the third host device and an updated public port number of the corresponding network address translator for the second socket of the first host device.
- the updated public port number of the corresponding network address translator for the first host device is obtained by repeating the steps of sending a first STUN packet, sending a second group of STUN packets, and calculating the predicted public port number as the updated public port number of the corresponding network address translator for the second socket of the first host device to be connected to the second socket of the third host device.
- the method further comprises sending a packet from the second socket of a first host device to the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device.
- the corresponding network address translator of the first host device is a cone network address translator and the corresponding network address translator of the second host device is a symmetric network address translator.
- the method further comprises, if there is a previous successful connection between the second socket of the first host device and the second socket of the second host device via a previous public port number of the corresponding network address locator of the second host device, sending a duplicate of the packet from the second socket of the first host device to the second socket of the second host device via the previous public port number of the corresponding network address locator of the second host device.
- the method further comprises storing, by a first host device in a buffer, information of public port number of a corresponding network address locator of another host device if there is a previous successful connection between the second socket of the first host device and the second socket of the other host device.
- the method further comprises forming a peer-to-peer connection between the second socket of a first host device and the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device, the first host device and the second host device communicating in a main loop of an application; and forming a peer-to-peer connection between the second socket of the first host device and the second socket of a third host device using a separate thread from the main loop of the application to transfer STUN packets with the STUN servers and to transfer connection packets with the third host device.
- the method further comprises checking incoming packets on the second socket of the first host device in the main loop of the application to determine whether the incoming packet is a STUN packet, a connection packet, or other data; and if the incoming packet is a STUN packet or a connection packet, moving the incoming packet to a shared buffer to be shared with the separate thread used for forming the peer-to-peer connection between the second socket of the first host device and the second socket of the third host device.
- a system of providing peer-to-peer connection among a plurality of host devices comprises a plurality of host devices disposed behind corresponding network address translators; and a plurality of STUN servers.
- Each host device includes a first socket bound to a first private port and a second socket bound to a second private port.
- Each host device is configured to send a first STUN packet through the first socket to a first STUN server of the plurality of STUN servers via a public port of the corresponding network address translator.
- the public port has a public port number identified by the first STUN server.
- Each host device is configured to send a second group of STUN packets through the second socket to the plurality of STUN servers via one or more public ports of the corresponding network address translator.
- the second group of STUN packets are equal in number to the STUN servers.
- the one or more public ports are different from the public port for the first socket.
- Each of the one or more public ports has a public port number identified by the STUN servers.
- Each host device is configured to calculate a predicted public port number of the corresponding network address translator for the second socket, based on the public port numbers of the public ports for the first socket and the second socket, the predicted public port number to be used for peer-to-peer connection between the second socket of the host device and other host devices.
- FIG. 1 is a diagram showing a typical setup of two hosts connected behind a NAT and communication with STUN servers.
- FIG. 2 is a schematic diagram showing an example of how two hosts trying to open a peer-to-peer channel with each other interact with the STUN servers according to an embodiment of the present invention.
- FIGS. 3 and 4 are schematic diagrams showing what happens when host 1 first connects to host 2 , and then to host 3 in a situation where all hosts are behind a symmetric NAT, according to another embodiment of the present invention.
- FIGS. 5 and 6 are schematic diagrams showing what happens when host 1 first connects to host 2 , and then host 2 exits and reenters while the port for host 2 is still alive, according to another embodiment of the present invention.
- FIG. 7 is a simplified schematic diagram of a main loop of an application illustrating an attempted connection with an additional host according to another embodiment of the present invention.
- two hosts 12 e.g., game consoles
- a NAT 14 or a device that is a combination of a router, a firewall, and a NAT
- STUN servers 16 via a network 20 (e.g., the Internet).
- the host 12 may either use a random port number every time it attempts a connection, or it may use a predefined unique port number.
- FIG. 2 shows an example of how two hosts 202 , 204 with respective NATs 212 , 214 trying to open a peer-to-peer channel with each other interact with the STUN servers 218 and find out about their respective NATs' information before attempting a connection using random ports.
- Each host 202 , 204 creates two sockets (socket A and socket B) that are bound to two random ports.
- a first STUN packet is sent out through socket A of each host 202 , 204 to STUN server 1 . This will create port A 1 on each NAT 212 , 214 .
- three STUN packets are sent through socket B of each host 202 , 204 to STUN server 1 , 2 and 3 .
- the host will have information on the public port number associated with each of these packets that were sent out (public ports Al, B 1 , B 2 and B 3 ). This information enables one to calculate the predicted public port number that will be assigned when the local host tries to directly send a packet to the remote host using that same socket B. Especially, in case of a cone NAT, the predicted port will be B 3 . For a symmetric NAT, the predicted port will be B 3 +increment.
- every connection may be treated as a separate one.
- the host will bind a new socket to a random port. Therefore, if the local host needs to connect to three other remote hosts, for example, the local host will create a unique socket for each of those other hosts. When sending data to all those hosts, the local host will send it through all three sockets.
- FIGS. 3 and 4 show what happens when host 1 ( 302 ) first connects to host 2 ( 304 ), and then to host 3 ( 306 ) in a situation where all hosts are each behind a symmetric NAT ( 312 , 314 , 316 , respectively). It is assumed that socket B is always bound to the single port 3658 on the local host, and the first port to be opened on the NAT for each outgoing connection is 10,000 for host 1 , 20,000 for host 2 and 30,000 for host 3 . It is further assumed that the increment on all NATs is 1.
- the predicted port is calculated in the same manner as with random ports, because the NAT has not yet opened any ports for either socket A or B.
- FIGS. 5 and 6 A slight problem arises because of this way of doing port prediction, as shown in FIGS. 5 and 6 .
- host 1 502
- host 2 504
- a peer-to-peer connection is attempted, for instance, to enable both hosts to talk to each other with a headset and voice over IP. So far there is no problem, and the port predictions and therefore the connection should be successful.
- host 2 exits the game lobby and re-enters shortly after. A new connection attempt needs to be made.
- host 1 ( 502 ) to be behind the cone NAT 512
- host 2 ( 504 ) behind the symmetric NAT 514
- a plurality of STUN servers 518 are provided for accepting STUN requests from the hosts. Let's suppose the successful connection was made through port 10 , 001 on the cone NAT 512 , and 20 , 004 on the symmetric NAT 514 . On the second connection attempt, the predicted port for the cone NAT 512 will still be 10,001. The predicted port for the symmetric NAT 514 , however, will be 20,006 ( FIG. 5 ).
- the packet sent from host 2 should arrive to host 1 , whether the cone NAT for host 1 is port-restrictive or not. Because the predicted port for the cone NAT 512 is still 10,001, it means that it has not timed out yet. Therefore the NAT 512 will remember that a packet was previously sent to the symmetric NAT's IP on port 20 , 004 and therefore it will let the packet from host 2 come in.
- the probability of connection success is not as high as it can be. For example, if the UDP packet sent from host 2 to host 1 is lost, then because the UDP packet sent from host 1 to host 2 will definitely not make it either, the connection fails.
- the local host is behind a cone NAT 512
- the remote host is behind a symmetric NAT 514
- the local host is going to keep a history of previous successful connections. This is done in the form of a local buffer that contains the IP address and port to be written to for any previous successful connection. Every time such a connection is successful, a new entry is added to the buffer. When the buffer is full, it wraps around so that new entries start being saved from the beginning of the buffer again.
- the local host behind a cone NAT 512 attempts to connect to a remote host behind a symmetric NAT 514 , it checks if there was a previous successful connection to that remote host based on its public IP address by going through the buffer. If an instance is found in the buffer, then the local host sends a UDP packet with the corresponding port number found in the buffer.
- the local host Since the port of a successful previous connection may have timed out in the remote host's NAT 514 , the local host also always sends another UDP packet to the predicted port number. Therefore, in the case where there is a history of a previous connection to the remote host, two UDP packets get sent out to the same IP address but with two different port numbers ( FIG. 6 ). In this particular case, there is no problem in doing so, because both these packets would go out through the same port number on the NAT 512 . It would not be possible, however, to use this same technique from a host that is behind a symmetric NAT with port-sensitive allocation, because by sending out 2 UDP packets to 2 different port numbers, the port-sensitive NAT would create 2 new port entries. By creating those 2 port entries its port number would increase twice and would therefore reduce the chance that the previously calculated predicted port to be used by the remote host will be correct.
- An application should have a way to find out that a new client arrived and needs to be connected thereto. Once a host receives the instruction to do a STUN request, it launches that in a separate thread. That way the main loop of the application can keep receiving other data and does not have to wait for an answer of the STUN servers.
- connection process is also launched in a separate thread since it could take quite some time for it to complete.
- the application will need to look for incoming STUN packets and incoming connection packets on the single port. However since this is done in a separate thread, it is not possible to look at the queue and empty it because there may be other data packets coming in while waiting for a response from a STUN server, for example.
- the adopted solution here is to only look for incoming packets on the single port in one place, namely inside the main application loop.
- the application is then responsible for checking whether the incoming packet contains application-specific data, whether it is a STUN packet, connection packet, or unwanted data.
- the application takes the packet out of the queue and places it in shared buffers. That way the main queue gets emptied so the application can keep receiving new data.
- FIG. 7 shows host 1 ( 702 ) and host 2 ( 704 ), which are connected in a main loop via their main threads 722 , 724 in their applications 732 , 734 via NAT 1 ( 712 ) and NAT 2 ( 714 ), respectively.
- a connection is attempted between host 3 ( 706 ) via NAT 3 ( 716 ) and host 1 ( 702 ) via NAT 1 ( 712 ) along their separate STUN threads 746 , 742 for STUN requests and connection threads 756 , 752 for connection requests.
- Each application has a shared buffer ( 762 , 764 , 766 ) for the main thread ( 722 , 724 , 726 ) to store STUN packets and connection packets.
- the STUN thread ( 742 , 744 , 746 ) and connection thread ( 752 , 754 , 756 ) check for packets in the shared buffer ( 762 , 764 , 766 ) instead of the operating system's network queue.
Abstract
A system for providing peer-to-peer connections includes a plurality of host devices behind corresponding NATs; and a plurality of STUN servers. Each host device includes first and second sockets respectively bound to first and second private ports. Each host device sends a first STUN packet through the first socket to a first STUN server and a second group of STUN packets through the second socket to the STUN servers via public ports of the corresponding NAT. The STUN servers identify the public port numbers of the public ports. Each host device calculates a predicted public port number of the corresponding NAT for the second socket, based on the public port numbers of the public ports for the first socket and the second socket, the predicted public port number to be used for peer-to-peer connection between the second socket of the host device and other host devices.
Description
- This application is a continuation application of, and claims priority to, U.S. patent application Ser. No. 10/957,122, filed Sep. 30, 2004, titled “MULTIPLAYER PEER-TO-PEER CONNECTION ACROSS FIREWALLS AND NETWORK ADDRESS TRANSLATORS USING A SINGLE LOCAL PORT ON THE LOCAL HOST”, which is incorporated by reference herein in its entirety for all purposes.
- The present application relates generally to communications between computer devices and, more particularly, to multiplayer peer-to-peer connections across firewalls and network address translators (NATs), using a single port number on each computer device.
- More and more applications attempt to create a peer-to-peer connection between two hosts to transfer data. However, it is non-trivial to achieve such a connection in case one or both of the hosts are behind a firewall, especially if it also does network address translation, as is the case with the great majority of business and home firewalls nowadays. For home use, people often use a device that is a combination of a router, firewall and NAT. The problem is even further complicated in the case where a host attempts multiple peer-to-peer connections at the same time through a single port. This is exactly the way in which many PC and console games doing peer-to-peer data exchange work.
- An additional challenge is to be able to set up a new connection through a single (private) port of the host, all the while transferring data through that same port with other hosts. This is a situation commonly found in network games where people meet in a lobby, and where as soon as a new user joins, he or she can start talking to the other users through voice chat using a headset.
- Currently most peer-to-peer applications only have basic support for firewall/NAT traversal. The result is that if a host happens to be behind a difficult to traverse firewall/NAT, the host's online experience will be poor because a lot of connections will fail.
- One solution game publishers have used is to instruct gamers to do port forwarding on their firewalls/NATs. However, this is a complicated operation for the average user and potentially creates a security hole in the firewall. Furthermore, this solution fails when two users are behind the same firewall.
- Another solution adopted by Microsoft® in the XBox™ gaming console is to display on the support site a list of compatible and incompatible router devices. Indeed, some firewalls are more difficult to traverse than others, and in the case of Microsoft® the technology will enable peer-to-peer connectivity between hosts behind “easy” firewalls/NATs, but not behind more difficult ones. But often users already have a firewall before they buy a game. In case they use a firewall that is not supported by the game, they will run into problems to play online.
- Embodiments of the present invention provide a method and a system for achieving a very high success rate (close to 100%) in peer-to-peer connection establishment. It does so for single or multiple connections, using a single port or multiple random ports, and it works with any combination of any types of firewalls/NATs, regardless of whether they are easy or difficult to traverse. It also enables hosts to connect to a group of already interconnected hosts at any time, even when using a single port of a host and while the other hosts are already exchanging data with that host on that same port. Embodiments of the present invention rely on STUN servers (RFC 3489) to find out about the public IP address and port used by the NAT, and the exact type of the NAT.
- An aspect of the present invention is directed to a method of providing peer-to-peer connection among a plurality of host devices disposed behind corresponding network address translators. The method comprises providing a plurality of STUN servers; for each host device to be connected, providing a first socket bound to a first private port and a second socket bound to a second private port; for each host device to be connected, sending a first STUN packet through the first socket to a first STUN server of the plurality of STUN servers via a public port of the corresponding network address translator, the public port having a public port number identified by the first STUN server; for each host device to be connected, sending a second group of STUN packets through the second socket to the plurality of STUN servers via one or more public ports of the corresponding network address translator, the second group of STUN packets being equal in number to the STUN servers, the one or more public ports being different from the public port for the first socket, each of the one or more public ports having a public port number identified by the STUN servers; and for each host device to be connected, calculating a predicted public port number of the corresponding network address translator for the second socket, based on the public port numbers of the public ports for the first socket and the second socket, the predicted public port number to be used for peer-to-peer connection between the second socket of the host device and other host devices.
- In some embodiments, the predicted public port number of the corresponding network address translator for the second socket of the host device is a maximum of ((the port number of the public port for the first socket+an increment) and (the port number of the last public port which is the highest port number for the second socket+an increment)). Different public port numbers of the corresponding network address translator are separated by an increment. The predicted public port number of the corresponding network address translator for the second socket of the host device is (the port number of the public port for the first socket+the increment), if there has been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator and the one or more public ports are still active. The predicted public port number of the corresponding network address translator for the second socket of the host device is (the port number of the last public port which is the highest port number for the second socket+the increment), if either there has not been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator, or there has been a previous peer-to-peer connection for the second socket of the host device via the one or more public ports of the corresponding network address translator and the peer-to-peer connection has expired and the one or more public ports are no longer active.
- In specific embodiments, the method further comprises forming a peer-to-peer connection between the second socket of a first host device and the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device; and forming a peer-to-peer connection between the second socket of the first host device and the second socket of a third host device using the predicted public port number of the corresponding network address translator for the second socket of the third host device and an updated public port number of the corresponding network address translator for the second socket of the first host device. The updated public port number of the corresponding network address translator for the first host device is obtained by repeating the steps of sending a first STUN packet, sending a second group of STUN packets, and calculating the predicted public port number as the updated public port number of the corresponding network address translator for the second socket of the first host device to be connected to the second socket of the third host device.
- In some embodiments, the method further comprises sending a packet from the second socket of a first host device to the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device. The corresponding network address translator of the first host device is a cone network address translator and the corresponding network address translator of the second host device is a symmetric network address translator. The method further comprises, if there is a previous successful connection between the second socket of the first host device and the second socket of the second host device via a previous public port number of the corresponding network address locator of the second host device, sending a duplicate of the packet from the second socket of the first host device to the second socket of the second host device via the previous public port number of the corresponding network address locator of the second host device. The method further comprises storing, by a first host device in a buffer, information of public port number of a corresponding network address locator of another host device if there is a previous successful connection between the second socket of the first host device and the second socket of the other host device.
- In specific embodiments of the invention, the method further comprises forming a peer-to-peer connection between the second socket of a first host device and the second socket of a second host device using the predicted public port number of the corresponding network address translator for each of the second socket of the first host device and the second socket of the second host device, the first host device and the second host device communicating in a main loop of an application; and forming a peer-to-peer connection between the second socket of the first host device and the second socket of a third host device using a separate thread from the main loop of the application to transfer STUN packets with the STUN servers and to transfer connection packets with the third host device. The method further comprises checking incoming packets on the second socket of the first host device in the main loop of the application to determine whether the incoming packet is a STUN packet, a connection packet, or other data; and if the incoming packet is a STUN packet or a connection packet, moving the incoming packet to a shared buffer to be shared with the separate thread used for forming the peer-to-peer connection between the second socket of the first host device and the second socket of the third host device.
- In accordance with another aspect of the invention, a system of providing peer-to-peer connection among a plurality of host devices comprises a plurality of host devices disposed behind corresponding network address translators; and a plurality of STUN servers. Each host device includes a first socket bound to a first private port and a second socket bound to a second private port. Each host device is configured to send a first STUN packet through the first socket to a first STUN server of the plurality of STUN servers via a public port of the corresponding network address translator. The public port has a public port number identified by the first STUN server. Each host device is configured to send a second group of STUN packets through the second socket to the plurality of STUN servers via one or more public ports of the corresponding network address translator. The second group of STUN packets are equal in number to the STUN servers. The one or more public ports are different from the public port for the first socket. Each of the one or more public ports has a public port number identified by the STUN servers. Each host device is configured to calculate a predicted public port number of the corresponding network address translator for the second socket, based on the public port numbers of the public ports for the first socket and the second socket, the predicted public port number to be used for peer-to-peer connection between the second socket of the host device and other host devices.
-
FIG. 1 is a diagram showing a typical setup of two hosts connected behind a NAT and communication with STUN servers. -
FIG. 2 is a schematic diagram showing an example of how two hosts trying to open a peer-to-peer channel with each other interact with the STUN servers according to an embodiment of the present invention. -
FIGS. 3 and 4 are schematic diagrams showing what happens whenhost 1 first connects tohost 2, and then to host 3 in a situation where all hosts are behind a symmetric NAT, according to another embodiment of the present invention. -
FIGS. 5 and 6 are schematic diagrams showing what happens whenhost 1 first connects tohost 2, and then host 2 exits and reenters while the port forhost 2 is still alive, according to another embodiment of the present invention. -
FIG. 7 is a simplified schematic diagram of a main loop of an application illustrating an attempted connection with an additional host according to another embodiment of the present invention. - As shown in the
typical setup 10 ofFIG. 1 , two hosts 12 (e.g., game consoles) are connected each behind a NAT 14 (or a device that is a combination of a router, a firewall, and a NAT) and communicate withSTUN servers 16 via a network 20 (e.g., the Internet). When attempting to exchange packets peer-to-peer, thehost 12 may either use a random port number every time it attempts a connection, or it may use a predefined unique port number. -
FIG. 2 shows an example of how two hosts 202, 204 withrespective NATs STUN servers 218 and find out about their respective NATs' information before attempting a connection using random ports. Eachhost host STUN server 1. This will create port A1 on each NAT 212, 214. Then three STUN packets are sent through socket B of eachhost STUN server - For multiple peer-to-peer connections, every connection may be treated as a separate one. For every new connection, the host will bind a new socket to a random port. Therefore, if the local host needs to connect to three other remote hosts, for example, the local host will create a unique socket for each of those other hosts. When sending data to all those hosts, the local host will send it through all three sockets.
- When the host uses a single (private) port, however, the port prediction needs to be changed. Using a single port means that, for every new connection, one will reuse socket B that is bound to that single port.
-
FIGS. 3 and 4 show what happens when host 1 (302) first connects to host 2 (304), and then to host 3 (306) in a situation where all hosts are each behind a symmetric NAT (312, 314, 316, respectively). It is assumed that socket B is always bound to thesingle port 3658 on the local host, and the first port to be opened on the NAT for each outgoing connection is 10,000 forhost 1, 20,000 forhost 2 and 30,000 forhost 3. It is further assumed that the increment on all NATs is 1. - In
FIG. 3 when doing the STUN requests with theSTUN servers 318 onhost 1 andhost 2, the predicted port is calculated in the same manner as with random ports, because the NAT has not yet opened any ports for either socket A or B. Onhost 1, the predicted port number will be port B3+1=10,004. And onhost 2 it will also be B3+1=20,004. - Let's suppose the connection between host 1 (302) and host 2 (304) was successful. The next step is to connect host 1 (302) to host 3 (306), as seen in
FIG. 4 . At this point,host 1 restarts to communicate with theSTUN servers 318 by binding socket A to a random port number, and by re-using our socket B that is bound toport 3658. On theNAT 312, there will be a new port number opened for socket A. In this case, it will be port number 10,005. Furthermore, if this second connection is attempted shortly after the first one, theNAT 312 will not create new ports for socket B because the previously created ones will not have timed out yet. Instead it will re-use the existing ones from the previous connection, namely port B1=10,001, B2=10,002 and B3=10,003. Thus, instead of the predicted port being B3+1, it gets calculated as follows: predicted port=max(A1, B3)+1. This way the predicted port will be A1 (10,005)+1=10,006, which is correct. This formula only applies to symmetric NATs. For cone NATs the predicted port is always equal to B3. - If this second connection is attempted not immediately after the first connection, then there is a possibility that the ports assigned to B1, B2 and B3 in the
NAT 312 have expired. Typically ports expire after 2 to 30 minutes of network inactivity. In that case, the max(A1, B3) will be B3 and the port prediction will be done correctly as well (i.e., B1=10,006; B3=10,008; B3+1=10,009). - A slight problem arises because of this way of doing port prediction, as shown in
FIGS. 5 and 6 . Let's suppose that host 1 (502) is in a game lobby, waiting for other players to join. As soon as host 2 (504) joins, a peer-to-peer connection is attempted, for instance, to enable both hosts to talk to each other with a headset and voice over IP. So far there is no problem, and the port predictions and therefore the connection should be successful. Now let's suppose that after successfully connecting to each other,host 2 exits the game lobby and re-enters shortly after. A new connection attempt needs to be made. - Let's define host 1 (502) to be behind the
cone NAT 512, and host 2 (504) behind thesymmetric NAT 514. A plurality ofSTUN servers 518 are provided for accepting STUN requests from the hosts. Let's suppose the successful connection was made throughport 10,001 on thecone NAT symmetric NAT 514. On the second connection attempt, the predicted port for thecone NAT 512 will still be 10,001. The predicted port for thesymmetric NAT 514, however, will be 20,006 (FIG. 5 ). - Now when
host 2 behind thesymmetric NAT 514 is going to send out a UDP (User Datagram Protocol) packet directly tohost 1 to attempt the connection, the packet will go throughport 20,004 on the symmetric NAT since that port is still active in theNAT 514 from the previous connection to the same IP/port forhost 1. This means that the predictedport 20,006 is wrong, and the UDP packet sent to that port fromhost 1 will fail (FIG. 6 ). - Luckily the packet sent from
host 2 should arrive to host 1, whether the cone NAT forhost 1 is port-restrictive or not. Because the predicted port for thecone NAT 512 is still 10,001, it means that it has not timed out yet. Therefore theNAT 512 will remember that a packet was previously sent to the symmetric NAT's IP onport 20,004 and therefore it will let the packet fromhost 2 come in. - However, because the predicted port for the
symmetric NAT 514 is definitely going to be wrong, the probability of connection success is not as high as it can be. For example, if the UDP packet sent fromhost 2 tohost 1 is lost, then because the UDP packet sent fromhost 1 to host 2 will definitely not make it either, the connection fails. - To get both port predictions right and keep the connection success probability as high as possible, there needs to be a special process put in place. In case the local host is behind a
cone NAT 512, and the remote host is behind asymmetric NAT 514, the local host is going to keep a history of previous successful connections. This is done in the form of a local buffer that contains the IP address and port to be written to for any previous successful connection. Every time such a connection is successful, a new entry is added to the buffer. When the buffer is full, it wraps around so that new entries start being saved from the beginning of the buffer again. - Every time the local host behind a
cone NAT 512 attempts to connect to a remote host behind asymmetric NAT 514, it checks if there was a previous successful connection to that remote host based on its public IP address by going through the buffer. If an instance is found in the buffer, then the local host sends a UDP packet with the corresponding port number found in the buffer. - Since the port of a successful previous connection may have timed out in the remote host's
NAT 514, the local host also always sends another UDP packet to the predicted port number. Therefore, in the case where there is a history of a previous connection to the remote host, two UDP packets get sent out to the same IP address but with two different port numbers (FIG. 6 ). In this particular case, there is no problem in doing so, because both these packets would go out through the same port number on theNAT 512. It would not be possible, however, to use this same technique from a host that is behind a symmetric NAT with port-sensitive allocation, because by sending out 2 UDP packets to 2 different port numbers, the port-sensitive NAT would create 2 new port entries. By creating those 2 port entries its port number would increase twice and would therefore reduce the chance that the previously calculated predicted port to be used by the remote host will be correct. - If only one of the 2 NATs timed out between re-attempting a connection between 2 clients with a previous successful connection, then the port prediction will be correct on both sides.
- For many games it is important that the peer-to-peer connection attempt be done in a separate thread. In that way, if, for example, a host joins a lobby where two other hosts are already interconnected and talking to each other by exchanging voice data, their communication will not be cut off because of having to attempt a connection with the new host at the same time.
- In addition, while an application attempts the connections that may take up to several seconds, it may want to display moving menus instead of freezing menus.
- An application should have a way to find out that a new client arrived and needs to be connected thereto. Once a host receives the instruction to do a STUN request, it launches that in a separate thread. That way the main loop of the application can keep receiving other data and does not have to wait for an answer of the STUN servers.
- When the local host has received the remote host's information and is ready to try to connect, the connection process is also launched in a separate thread since it could take quite some time for it to complete.
- In those 2 separate threads, the application will need to look for incoming STUN packets and incoming connection packets on the single port. However since this is done in a separate thread, it is not possible to look at the queue and empty it because there may be other data packets coming in while waiting for a response from a STUN server, for example.
- The adopted solution here is to only look for incoming packets on the single port in one place, namely inside the main application loop. The application is then responsible for checking whether the incoming packet contains application-specific data, whether it is a STUN packet, connection packet, or unwanted data.
- If it is a STUN packet or a connection packet, the application takes the packet out of the queue and places it in shared buffers. That way the main queue gets emptied so the application can keep receiving new data.
- When the separate threads for the STUN request and the connection establishment take over, they keep checking their respective shared buffers. If there is nothing there, they keep waiting. If there is something there, they take the data out of the buffer and treat it as if they had just received a packet. Then they empty the buffer to make space for new packets to be put therein.
-
FIG. 7 shows host 1 (702) and host 2 (704), which are connected in a main loop via theirmain threads applications separate STUN threads connection threads - It is to be understood that the above description is intended to be illustrative and not restrictive. Many embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined not with reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents.
Claims (1)
1. A method of providing peer-to-peer connection among a plurality of host devices disposed behind corresponding network address translators, the method comprising:
providing a plurality of STUN servers;
for each host device to be connected, providing a first socket bound to a first private port and a second socket bound to a second private port;
for each host device to be connected, sending a first STUN packet through the first socket to a first STUN server of the plurality of STUN servers via a public port of the corresponding network address translator, the public port having a public port number identified by the first STUN server;
for each host device to be connected, sending a second group of STUN packets through the second socket to the plurality of STUN servers via one or more public ports of the corresponding network address translator, the second group of STUN packets being equal in number to the STUN servers, the one or more public ports being different from the public port for the first socket, each of the one or more public ports having a public port number identified by the STUN servers; and
for each host device to be connected, calculating a predicted public port number of the corresponding network address translator for the second socket, based on the public port numbers of the public ports for the first socket and the second socket, the predicted public port number to be used for peer-to-peer connection between the second socket of the host device and other host devices.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/476,106 US20090240821A1 (en) | 2004-09-30 | 2009-06-01 | Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/957,122 US7543064B2 (en) | 2004-09-30 | 2004-09-30 | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
US12/476,106 US20090240821A1 (en) | 2004-09-30 | 2009-06-01 | Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/957,122 Continuation US7543064B2 (en) | 2004-09-30 | 2004-09-30 | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090240821A1 true US20090240821A1 (en) | 2009-09-24 |
Family
ID=36126970
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/957,122 Active 2027-04-12 US7543064B2 (en) | 2004-09-30 | 2004-09-30 | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
US12/476,106 Abandoned US20090240821A1 (en) | 2004-09-30 | 2009-06-01 | Multiplayer Peer-to-Peer Connection Across Firewalls and Network Address Translators Using a Single Local Port on the Local Host |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/957,122 Active 2027-04-12 US7543064B2 (en) | 2004-09-30 | 2004-09-30 | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
Country Status (1)
Country | Link |
---|---|
US (2) | US7543064B2 (en) |
Cited By (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060010204A1 (en) * | 2004-07-06 | 2006-01-12 | Nokia Corporation | Peer-to-peer engine for object sharing in communication devices |
US20060173958A1 (en) * | 2002-05-17 | 2006-08-03 | Masayuki Chatani | Managing participants in an online session |
US20060288103A1 (en) * | 2003-11-07 | 2006-12-21 | Kunio Gobara | Communication system, information processing apparatus, server, and communication method |
US20070078720A1 (en) * | 2004-06-29 | 2007-04-05 | Damaka, Inc. | System and method for advertising in a peer-to-peer hybrid communications network |
US20070091798A1 (en) * | 2003-11-07 | 2007-04-26 | Kunio Gobara | Communication system, information processing apparatus, server, and communication method |
US20070165629A1 (en) * | 2004-06-29 | 2007-07-19 | Damaka, Inc. | System and method for dynamic stability in a peer-to-peer hybrid communications network |
US20080280686A1 (en) * | 2002-04-26 | 2008-11-13 | Dhupelia Shekhar V | Balancing distribution of participants in a gaming environment |
US20090023499A1 (en) * | 2007-07-19 | 2009-01-22 | Sony Computer Entertainment Inc. | Bluetooth Enabled Computing System and Associated Methods |
US20090028167A1 (en) * | 2007-07-27 | 2009-01-29 | Sony Computer Entertainment Inc. | Cooperative nat behavior discovery |
US20090113060A1 (en) * | 2007-10-05 | 2009-04-30 | Mark Lester Jacob | Systems and Methods for Seamless Host Migration |
US20090144423A1 (en) * | 2007-12-04 | 2009-06-04 | Sony Computer Entertainment Inc. | Network traffic prioritization |
US20090228593A1 (en) * | 2008-03-05 | 2009-09-10 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US20090296606A1 (en) * | 2004-06-29 | 2009-12-03 | Damaka, Inc. | System and method for peer-to-peer hybrid communications |
US20100220721A1 (en) * | 2005-03-22 | 2010-09-02 | Logitech Europe S.A. | Method and Apparatus for Packet traversal of A Network Address Translation Device |
US20100241710A1 (en) * | 2009-02-14 | 2010-09-23 | Bvisual S.A. | Method and system for videoconferencing or data transfer between clients behind different network address translators |
US7933260B2 (en) | 2004-06-29 | 2011-04-26 | Damaka, Inc. | System and method for routing and communicating in a heterogeneous network environment |
US20110153831A1 (en) * | 2009-12-23 | 2011-06-23 | Rishi Mutnuru | Systems and methods for mixed mode of ipv6 and ipv4 dns of global server load balancing |
US20110149737A1 (en) * | 2009-12-23 | 2011-06-23 | Manikam Muthiah | Systems and methods for managing spillover limits in a multi-core system |
US20110161500A1 (en) * | 2009-12-23 | 2011-06-30 | Sreedhar Yengalasetti | Systems and methods for managing ports for rtsp across cores in a multi-core system |
US7995478B2 (en) | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
US8009586B2 (en) | 2004-06-29 | 2011-08-30 | Damaka, Inc. | System and method for data transfer in a peer-to peer hybrid communication network |
US20110231917A1 (en) * | 2010-03-19 | 2011-09-22 | Damaka, Inc. | System and method for providing a virtual peer-to-peer environment |
US8060626B2 (en) * | 2008-09-22 | 2011-11-15 | Sony Computer Entertainment America Llc. | Method for host selection based on discovered NAT type |
US8126987B2 (en) | 2009-11-16 | 2012-02-28 | Sony Computer Entertainment Inc. | Mediation of content-related services |
US8224985B2 (en) | 2005-10-04 | 2012-07-17 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US8352563B2 (en) | 2010-04-29 | 2013-01-08 | Damaka, Inc. | System and method for peer-to-peer media routing using a third party instant messaging system for signaling |
US8380859B2 (en) | 2007-11-28 | 2013-02-19 | Damaka, Inc. | System and method for endpoint handoff in a hybrid peer-to-peer networking environment |
US8407314B2 (en) | 2011-04-04 | 2013-03-26 | Damaka, Inc. | System and method for sharing unsupported document types between communication devices |
US8406229B2 (en) | 2004-06-29 | 2013-03-26 | Damaka, Inc. | System and method for traversing a NAT device for peer-to-peer hybrid communications |
US8433759B2 (en) | 2010-05-24 | 2013-04-30 | Sony Computer Entertainment America Llc | Direction-conscious information sharing |
US8432917B2 (en) | 2004-06-29 | 2013-04-30 | Damaka, Inc. | System and method for concurrent sessions in a peer-to-peer hybrid communications network |
US8437307B2 (en) | 2007-09-03 | 2013-05-07 | Damaka, Inc. | Device and method for maintaining a communication session during a network transition |
US8446900B2 (en) | 2010-06-18 | 2013-05-21 | Damaka, Inc. | System and method for transferring a call between endpoints in a hybrid peer-to-peer network |
US20130138760A1 (en) * | 2011-11-30 | 2013-05-30 | Michael Tsirkin | Application-driven shared device queue polling |
US8468010B2 (en) | 2010-09-24 | 2013-06-18 | Damaka, Inc. | System and method for language translation in a hybrid peer-to-peer environment |
US8478890B2 (en) | 2011-07-15 | 2013-07-02 | Damaka, Inc. | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability |
US8560707B2 (en) | 2007-10-05 | 2013-10-15 | Sony Computer Entertainment America Llc | Seamless host migration based on NAT type |
US8611540B2 (en) | 2010-06-23 | 2013-12-17 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US8694587B2 (en) | 2011-05-17 | 2014-04-08 | Damaka, Inc. | System and method for transferring a call bridge between communication devices |
US8725895B2 (en) | 2010-02-15 | 2014-05-13 | Damaka, Inc. | NAT traversal by concurrently probing multiple candidates |
US8743781B2 (en) | 2010-10-11 | 2014-06-03 | Damaka, Inc. | System and method for a reverse invitation in a hybrid peer-to-peer environment |
US8824487B1 (en) * | 2010-04-29 | 2014-09-02 | Centurylink Intellectual Property Llc | Multi-access gateway for direct to residence communication services |
US8862164B2 (en) | 2007-09-28 | 2014-10-14 | Damaka, Inc. | System and method for transitioning a communication session between networks that are not commonly controlled |
US8874785B2 (en) | 2010-02-15 | 2014-10-28 | Damaka, Inc. | System and method for signaling and data tunneling in a peer-to-peer environment |
US8892646B2 (en) | 2010-08-25 | 2014-11-18 | Damaka, Inc. | System and method for shared session appearance in a hybrid peer-to-peer environment |
US8966557B2 (en) | 2001-01-22 | 2015-02-24 | Sony Computer Entertainment Inc. | Delivery of digital content |
US9009702B2 (en) | 2011-11-30 | 2015-04-14 | Red Hat Israel, Ltd. | Application-driven shared device queue polling in a virtualized computing environment |
US9027032B2 (en) | 2013-07-16 | 2015-05-05 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
US9043488B2 (en) | 2010-03-29 | 2015-05-26 | Damaka, Inc. | System and method for session sweeping between devices |
US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
US9191416B2 (en) | 2010-04-16 | 2015-11-17 | Damaka, Inc. | System and method for providing enterprise voice call continuity |
US9357016B2 (en) | 2013-10-18 | 2016-05-31 | Damaka, Inc. | System and method for virtual parallel resource management |
US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
US9483405B2 (en) | 2007-09-20 | 2016-11-01 | Sony Interactive Entertainment Inc. | Simplified run-time program translation for emulating complex processor pipelines |
US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9560425B2 (en) | 2008-11-26 | 2017-01-31 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US10091025B2 (en) | 2016-03-31 | 2018-10-02 | Damaka, Inc. | System and method for enabling use of a single user identifier across incompatible networks for UCC functionality |
US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US10355882B2 (en) | 2014-08-05 | 2019-07-16 | Damaka, Inc. | System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems |
US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
US10695671B2 (en) | 2018-09-28 | 2020-06-30 | Sony Interactive Entertainment LLC | Establishing and managing multiplayer sessions |
US10765952B2 (en) | 2018-09-21 | 2020-09-08 | Sony Interactive Entertainment LLC | System-level multiplayer matchmaking |
US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
Families Citing this family (165)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680065B2 (en) * | 2005-01-18 | 2010-03-16 | Cisco Technology, Inc. | System and method for routing information packets |
US7543064B2 (en) * | 2004-09-30 | 2009-06-02 | Logitech Europe S.A. | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
WO2006049251A1 (en) * | 2004-11-08 | 2006-05-11 | Matsushita Electric Industrial Co., Ltd. | Communication terminal, and communication method |
US7483393B2 (en) * | 2004-12-07 | 2009-01-27 | Cisco Technology, Inc. | Method and apparatus for discovering internet addresses |
US7558862B1 (en) * | 2004-12-09 | 2009-07-07 | LogMeln, Inc. | Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer |
CN1825828B (en) * | 2005-02-24 | 2011-04-27 | 北京风行在线技术有限公司 | Method and apparatus for controlling direct transmission communication with two terminals under different NAT |
US8619765B2 (en) * | 2005-06-13 | 2013-12-31 | Cisco Technology, Inc. | Automatic reconfiguration of layer 3 device to layer 2 device upon detection of upstream NAT/NAPT device |
US8184641B2 (en) * | 2005-07-20 | 2012-05-22 | Verizon Business Global Llc | Method and system for providing secure communications between proxy servers in support of interdomain traversal |
WO2007048344A1 (en) * | 2005-10-28 | 2007-05-03 | Huawei Technologies Co., Ltd. | A method for establishing the peer-to-peer connection, a method device and system for realizing network communication traversal nat |
KR100964211B1 (en) * | 2005-11-14 | 2010-06-17 | 삼성전자주식회사 | Method and system for providing multimedia portal contents and addition service in a communication system |
US8140707B2 (en) * | 2006-04-24 | 2012-03-20 | Kt Corporation | Inter working system |
CN101094171B (en) * | 2006-06-22 | 2011-02-16 | 华为技术有限公司 | Method and system for implementing interaction of media streams, controller of media gateway, and media gateway |
DE102006030591A1 (en) * | 2006-07-03 | 2008-01-10 | Siemens Ag | Method for managing communication links |
WO2008022829A1 (en) * | 2006-08-22 | 2008-02-28 | France Telecom | Method of managing a secure transfer session through an address translation device, corresponding server and computer program |
EP2051451A1 (en) * | 2006-09-22 | 2009-04-22 | Panasonic Corporation | Communication apparatus, communication method and communication system |
US8533339B2 (en) * | 2006-10-13 | 2013-09-10 | Cisco Technology, Inc. | Discovering security devices located on a call path and extending bindings at those discovered security devices |
US20080122932A1 (en) * | 2006-11-28 | 2008-05-29 | George Aaron Kibbie | Remote video monitoring systems utilizing outbound limited communication protocols |
US9137027B2 (en) | 2007-02-21 | 2015-09-15 | Avaya Canada Corp. | Bootstrapping in peer-to-peer networks with network address translators |
EP2003858A1 (en) * | 2007-06-14 | 2008-12-17 | Nokia Siemens Networks Oy | Performing interactive connectivity checks in a mobility environment |
US8631155B2 (en) | 2007-06-29 | 2014-01-14 | Microsoft Corporation | Network address translation traversals for peer-to-peer networks |
US7813327B2 (en) * | 2007-11-30 | 2010-10-12 | Motorola, Inc. | Method and system for peer to peer wide area network communication |
US9456054B2 (en) | 2008-05-16 | 2016-09-27 | Palo Alto Research Center Incorporated | Controlling the spread of interests and content in a content centric network |
US20090319674A1 (en) * | 2008-06-24 | 2009-12-24 | Microsoft Corporation | Techniques to manage communications between relay servers |
TW201002018A (en) * | 2008-06-26 | 2010-01-01 | D Link Corp | Method for predicting port number of NAT apparatus based on two STUN server inquiry results |
US7962627B2 (en) * | 2008-12-04 | 2011-06-14 | Microsoft Corporation | Peer-to-peer network address translator (NAT) traversal techniques |
US9083587B2 (en) | 2009-08-21 | 2015-07-14 | Cisco Technology, Inc. | Port chunk allocation in network address translation |
US8923293B2 (en) | 2009-10-21 | 2014-12-30 | Palo Alto Research Center Incorporated | Adaptive multi-interface use for content networking |
US9264459B2 (en) * | 2010-12-16 | 2016-02-16 | Palo Alto Research Center Incorporated | SIP-based custodian routing in content-centric networks |
US9280546B2 (en) | 2012-10-31 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for accessing digital content using a location-independent name |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9185120B2 (en) | 2013-05-23 | 2015-11-10 | Palo Alto Research Center Incorporated | Method and system for mitigating interest flooding attacks in content-centric networks |
US9497160B1 (en) * | 2013-06-24 | 2016-11-15 | Bit Action, Inc. | Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric |
US9444722B2 (en) | 2013-08-01 | 2016-09-13 | Palo Alto Research Center Incorporated | Method and apparatus for configuring routing paths in a custodian-based routing architecture |
US9407549B2 (en) | 2013-10-29 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers |
US9282050B2 (en) | 2013-10-30 | 2016-03-08 | Palo Alto Research Center Incorporated | System and method for minimum path MTU discovery in content centric networks |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US10129365B2 (en) | 2013-11-13 | 2018-11-13 | Cisco Technology, Inc. | Method and apparatus for pre-fetching remote content based on static and dynamic recommendations |
US9311377B2 (en) | 2013-11-13 | 2016-04-12 | Palo Alto Research Center Incorporated | Method and apparatus for performing server handoff in a name-based content distribution system |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US9379979B2 (en) | 2014-01-14 | 2016-06-28 | Palo Alto Research Center Incorporated | Method and apparatus for establishing a virtual interface for a set of mutual-listener devices |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data network |
US9531679B2 (en) | 2014-02-06 | 2016-12-27 | Palo Alto Research Center Incorporated | Content-based transport security for distributed producers |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US9391896B2 (en) | 2014-03-10 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9363179B2 (en) | 2014-03-26 | 2016-06-07 | Palo Alto Research Center Incorporated | Multi-publisher routing protocol for named data networks |
US9363086B2 (en) | 2014-03-31 | 2016-06-07 | Palo Alto Research Center Incorporated | Aggregate signing of data in content centric networking |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
US9203885B2 (en) | 2014-04-28 | 2015-12-01 | Palo Alto Research Center Incorporated | Method and apparatus for exchanging bidirectional streams over a content centric network |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
US9609014B2 (en) | 2014-05-22 | 2017-03-28 | Cisco Systems, Inc. | Method and apparatus for preventing insertion of malicious content at a named data network router |
US9455835B2 (en) | 2014-05-23 | 2016-09-27 | Palo Alto Research Center Incorporated | System and method for circular link resolution with hash-based names in content-centric networks |
US9276751B2 (en) | 2014-05-28 | 2016-03-01 | Palo Alto Research Center Incorporated | System and method for circular link resolution with computable hash-based names in content-centric networks |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9467377B2 (en) | 2014-06-19 | 2016-10-11 | Palo Alto Research Center Incorporated | Associating consumer states with interests in a content-centric network |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9729616B2 (en) | 2014-07-18 | 2017-08-08 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over a content centric network |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information centric network |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
US9391777B2 (en) | 2014-08-15 | 2016-07-12 | Palo Alto Research Center Incorporated | System and method for performing key resolution over a content centric network |
US9467492B2 (en) | 2014-08-19 | 2016-10-11 | Palo Alto Research Center Incorporated | System and method for reconstructable all-in-one content stream |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US10204013B2 (en) | 2014-09-03 | 2019-02-12 | Cisco Technology, Inc. | System and method for maintaining a distributed and fault-tolerant state over an information centric network |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US9536059B2 (en) | 2014-12-15 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and system for verifying renamed content using manifests in a content centric network |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
CN104468278B (en) * | 2014-12-18 | 2018-05-18 | 上海斐讯数据通信技术有限公司 | UDP aging time detection system and methods based on Simple Traversal of UDP Through Network Address Translators |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US10003520B2 (en) | 2014-12-22 | 2018-06-19 | Cisco Technology, Inc. | System and method for efficient name-based content routing using link-state information in information-centric networks |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests in a content centric network |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US10333840B2 (en) | 2015-02-06 | 2019-06-25 | Cisco Technology, Inc. | System and method for on-demand content exchange with adaptive naming in information-centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation in a content centric network |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US10313227B2 (en) | 2015-09-24 | 2019-06-04 | Cisco Technology, Inc. | System and method for eliminating undetected interest looping in information-centric networks |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US9949301B2 (en) | 2016-01-20 | 2018-04-17 | Palo Alto Research Center Incorporated | Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption in a content centric network |
US10043016B2 (en) | 2016-02-29 | 2018-08-07 | Cisco Technology, Inc. | Method and system for name encryption agreement in a content centric network |
US10742596B2 (en) | 2016-03-04 | 2020-08-11 | Cisco Technology, Inc. | Method and system for reducing a collision probability of hash-based names using a publisher identifier |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information in a content centric network |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US10212196B2 (en) | 2016-03-16 | 2019-02-19 | Cisco Technology, Inc. | Interface discovery and authentication in a name-based network |
US11436656B2 (en) | 2016-03-18 | 2022-09-06 | Palo Alto Research Center Incorporated | System and method for a real-time egocentric collaborative filter on large datasets |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10033639B2 (en) | 2016-03-25 | 2018-07-24 | Cisco Technology, Inc. | System and method for routing packets in a content centric network using anonymous datagrams |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries in a content centric network |
US10645059B2 (en) * | 2016-04-11 | 2020-05-05 | Western Digital Technologies, Inc. | Establishing connections between data storage devices |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10320675B2 (en) | 2016-05-04 | 2019-06-11 | Cisco Technology, Inc. | System and method for routing packets in a stateless content centric network |
US10547589B2 (en) | 2016-05-09 | 2020-01-28 | Cisco Technology, Inc. | System for implementing a small computer systems interface protocol over a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10148572B2 (en) | 2016-06-27 | 2018-12-04 | Cisco Technology, Inc. | Method and system for interest groups in a content centric network |
US10009266B2 (en) | 2016-07-05 | 2018-06-26 | Cisco Technology, Inc. | Method and system for reference counted pending interest tables in a content centric network |
US9992097B2 (en) | 2016-07-11 | 2018-06-05 | Cisco Technology, Inc. | System and method for piggybacking routing information in interests in a content centric network |
US10122624B2 (en) | 2016-07-25 | 2018-11-06 | Cisco Technology, Inc. | System and method for ephemeral entries in a forwarding information base in a content centric network |
US10069729B2 (en) | 2016-08-08 | 2018-09-04 | Cisco Technology, Inc. | System and method for throttling traffic based on a forwarding information base in a content centric network |
US10956412B2 (en) | 2016-08-09 | 2021-03-23 | Cisco Technology, Inc. | Method and system for conjunctive normal form attribute matching in a content centric network |
US10033642B2 (en) | 2016-09-19 | 2018-07-24 | Cisco Technology, Inc. | System and method for making optimal routing decisions based on device-specific parameters in a content centric network |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers in a content centric network |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
US10841393B2 (en) | 2018-11-12 | 2020-11-17 | Citrix Systems, Inc. | Systems and methods for secure peer-to-peer caching |
Citations (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3017456A (en) * | 1958-03-24 | 1962-01-16 | Technicolor Corp | Bandwidth reduction system for television signals |
US4813056A (en) * | 1987-12-08 | 1989-03-14 | General Electric Company | Modified statistical coding of digital signals |
US5497434A (en) * | 1992-05-05 | 1996-03-05 | Acorn Computers Limited | Image data compression |
US5528284A (en) * | 1993-02-10 | 1996-06-18 | Hitachi, Ltd. | Video communication method having refresh function of coding sequence and terminal devices thereof |
US5592225A (en) * | 1993-09-30 | 1997-01-07 | Matsushita Electric Industrial Co., Ltd. | Device and method for controlling coding |
US5740278A (en) * | 1996-02-16 | 1998-04-14 | Cornell Research Foundation, Inc. | Facsimile-based video compression method and system |
US5778143A (en) * | 1993-01-13 | 1998-07-07 | Hitachi America, Ltd. | Method and apparatus for the selection of data for use in VTR trick playback operation in a system using progressive picture refresh |
US5790180A (en) * | 1995-12-28 | 1998-08-04 | At&T Corp. | Video telephone call handling system and method |
US5991308A (en) * | 1995-08-25 | 1999-11-23 | Terayon Communication Systems, Inc. | Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant |
US5990852A (en) * | 1996-10-31 | 1999-11-23 | Fujitsu Limited | Display screen duplication system and method |
US6058421A (en) * | 1998-02-04 | 2000-05-02 | 3Com Corporation | Method and system for addressing network host interfaces from a cable modem using DHCP |
US6061739A (en) * | 1997-11-26 | 2000-05-09 | International Business Machines Corp. | Network address assignment using physical address resolution protocols |
US6209021B1 (en) * | 1993-04-13 | 2001-03-27 | Intel Corporation | System for computer supported collaboration |
US6219706B1 (en) * | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
US6243749B1 (en) * | 1998-10-08 | 2001-06-05 | Cisco Technology, Inc. | Dynamic network address updating |
US6259736B1 (en) * | 1998-01-30 | 2001-07-10 | Kabushiki Kaisha Toshiba | Video encoder and video encoding method |
US20020042283A1 (en) * | 2000-10-09 | 2002-04-11 | Koninklijke Philips Electronics N.V. | Method for the communication of information and apparatus employing the method |
US20020059587A1 (en) * | 2000-05-24 | 2002-05-16 | Virtual Clinic, Inc. | Method and apparatus for providing personalized services |
US20020067405A1 (en) * | 2000-12-04 | 2002-06-06 | Mcdiarmid James Michael | Internet-enabled portable audio/video teleconferencing method and apparatus |
US6487316B1 (en) * | 1995-09-18 | 2002-11-26 | Oki Electric Industry Co, Ltd. | Picture decoder for a picture transmission system |
US6654891B1 (en) * | 1998-10-29 | 2003-11-25 | Nortel Networks Limited | Trusted network binding using LDAP (lightweight directory access protocol) |
US20040015979A1 (en) * | 2002-07-22 | 2004-01-22 | Te-Cheng Shen | System and method for efficiently exchanging data among processes |
US20040022237A1 (en) * | 1998-11-20 | 2004-02-05 | Level 3 Communications, Inc. | Voice over data telecommunications network architecture |
US20040022250A1 (en) * | 2002-07-31 | 2004-02-05 | Weijing Chen | Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network |
US20040022222A1 (en) * | 2002-07-31 | 2004-02-05 | Allister Clisham | Wireless metropolitan area network system and method |
US6693663B1 (en) * | 2002-06-14 | 2004-02-17 | Scott C. Harris | Videoconferencing systems with recognition ability |
US20040117653A1 (en) * | 2001-07-10 | 2004-06-17 | Packet Technologies Ltd. | Virtual private network mechanism incorporating security association processor |
US6766519B1 (en) * | 1999-03-26 | 2004-07-20 | Emc Corporation | Generic software interface for hardware environments having executing code registers itself and the code for a next suboperation |
US6775276B1 (en) * | 1998-05-27 | 2004-08-10 | 3Com Corporation | Method and system for seamless address allocation in a data-over-cable system |
US20040190489A1 (en) * | 2003-03-31 | 2004-09-30 | Palaez Mariana Benitez | Multimedia half-duplex sessions with individual floor controls |
US6826620B1 (en) * | 1998-08-26 | 2004-11-30 | Paradyne Corporation | Network congestion control system and method |
US6842484B2 (en) * | 2001-07-10 | 2005-01-11 | Motorola, Inc. | Method and apparatus for random forced intra-refresh in digital image and video coding |
US20050086289A1 (en) * | 2003-10-20 | 2005-04-21 | Sightspeed, Inc. | Method and apparatus for communicating data between two hosts |
US20050086358A1 (en) * | 2003-10-20 | 2005-04-21 | Sightspeed, Inc. | Method and apparatus for communicating data between two hosts |
US20050108764A1 (en) * | 2003-10-20 | 2005-05-19 | Aron Rosenberg | Methods and apparatus for encoding and decoding video data |
US20050117626A1 (en) * | 2001-11-20 | 2005-06-02 | Isamu Kobayashi | Thermometer |
US20050117806A1 (en) * | 2003-10-20 | 2005-06-02 | Aron Rosenberg | Methods and apparatus for encoding and decoding video data |
US6904040B2 (en) * | 2001-10-05 | 2005-06-07 | International Business Machines Corporaiton | Packet preprocessing interface for multiprocessor network handler |
US20050125532A1 (en) * | 2000-05-26 | 2005-06-09 | Gur Kimchi | Traversing firewalls and nats |
US6973484B1 (en) * | 2000-12-29 | 2005-12-06 | 3Pardata, Inc. | Method of communicating data in an interconnect system |
US20060075127A1 (en) * | 2004-09-30 | 2006-04-06 | Logitech Europe S.A. | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
US20060215652A1 (en) * | 2005-03-22 | 2006-09-28 | Logitech Europe S.A. | Method and apparatus for packet traversal of a network address translation device |
US7239662B2 (en) * | 2001-08-23 | 2007-07-03 | Polycom, Inc. | System and method for video error concealment |
US7272650B2 (en) * | 2001-04-17 | 2007-09-18 | Intel Corporation | Communication protocols operable through network address translation (NAT) type devices |
US7302496B1 (en) * | 2002-11-12 | 2007-11-27 | Cisco Technology, Inc. | Arrangement for discovering a localized IP address realm between two endpoints |
US7328280B2 (en) * | 2003-01-15 | 2008-02-05 | Matsushita Electric Industrial Co., Ltd. | Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends |
US7388853B2 (en) * | 2000-04-07 | 2008-06-17 | Broadcom Corporation | Method for providing dynamic adjustment of frame encoding parameters in a frame-based communications network |
US7626805B2 (en) * | 2003-12-29 | 2009-12-01 | Atrato, Inc. | Disk-drive system supporting massively parallel video streams and method |
US7728468B2 (en) * | 2004-10-28 | 2010-06-01 | Siemens Aktiengesellschaft | Laminations with integrated spacing feature for an electric machine, and method of making a lamination |
-
2004
- 2004-09-30 US US10/957,122 patent/US7543064B2/en active Active
-
2009
- 2009-06-01 US US12/476,106 patent/US20090240821A1/en not_active Abandoned
Patent Citations (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3017456A (en) * | 1958-03-24 | 1962-01-16 | Technicolor Corp | Bandwidth reduction system for television signals |
US4813056A (en) * | 1987-12-08 | 1989-03-14 | General Electric Company | Modified statistical coding of digital signals |
US5497434A (en) * | 1992-05-05 | 1996-03-05 | Acorn Computers Limited | Image data compression |
US5778143A (en) * | 1993-01-13 | 1998-07-07 | Hitachi America, Ltd. | Method and apparatus for the selection of data for use in VTR trick playback operation in a system using progressive picture refresh |
US5528284A (en) * | 1993-02-10 | 1996-06-18 | Hitachi, Ltd. | Video communication method having refresh function of coding sequence and terminal devices thereof |
US6209021B1 (en) * | 1993-04-13 | 2001-03-27 | Intel Corporation | System for computer supported collaboration |
US5592225A (en) * | 1993-09-30 | 1997-01-07 | Matsushita Electric Industrial Co., Ltd. | Device and method for controlling coding |
US5991308A (en) * | 1995-08-25 | 1999-11-23 | Terayon Communication Systems, Inc. | Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant |
US6487316B1 (en) * | 1995-09-18 | 2002-11-26 | Oki Electric Industry Co, Ltd. | Picture decoder for a picture transmission system |
US5790180A (en) * | 1995-12-28 | 1998-08-04 | At&T Corp. | Video telephone call handling system and method |
US5740278A (en) * | 1996-02-16 | 1998-04-14 | Cornell Research Foundation, Inc. | Facsimile-based video compression method and system |
US5990852A (en) * | 1996-10-31 | 1999-11-23 | Fujitsu Limited | Display screen duplication system and method |
US6061739A (en) * | 1997-11-26 | 2000-05-09 | International Business Machines Corp. | Network address assignment using physical address resolution protocols |
US6259736B1 (en) * | 1998-01-30 | 2001-07-10 | Kabushiki Kaisha Toshiba | Video encoder and video encoding method |
US6058421A (en) * | 1998-02-04 | 2000-05-02 | 3Com Corporation | Method and system for addressing network host interfaces from a cable modem using DHCP |
US6775276B1 (en) * | 1998-05-27 | 2004-08-10 | 3Com Corporation | Method and system for seamless address allocation in a data-over-cable system |
US6826620B1 (en) * | 1998-08-26 | 2004-11-30 | Paradyne Corporation | Network congestion control system and method |
US6243749B1 (en) * | 1998-10-08 | 2001-06-05 | Cisco Technology, Inc. | Dynamic network address updating |
US6219706B1 (en) * | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
US6654891B1 (en) * | 1998-10-29 | 2003-11-25 | Nortel Networks Limited | Trusted network binding using LDAP (lightweight directory access protocol) |
US20040022237A1 (en) * | 1998-11-20 | 2004-02-05 | Level 3 Communications, Inc. | Voice over data telecommunications network architecture |
US6766519B1 (en) * | 1999-03-26 | 2004-07-20 | Emc Corporation | Generic software interface for hardware environments having executing code registers itself and the code for a next suboperation |
US7388853B2 (en) * | 2000-04-07 | 2008-06-17 | Broadcom Corporation | Method for providing dynamic adjustment of frame encoding parameters in a frame-based communications network |
US20020059587A1 (en) * | 2000-05-24 | 2002-05-16 | Virtual Clinic, Inc. | Method and apparatus for providing personalized services |
US20050125532A1 (en) * | 2000-05-26 | 2005-06-09 | Gur Kimchi | Traversing firewalls and nats |
US20020042283A1 (en) * | 2000-10-09 | 2002-04-11 | Koninklijke Philips Electronics N.V. | Method for the communication of information and apparatus employing the method |
US6845237B2 (en) * | 2000-10-09 | 2005-01-18 | Koninklijke Philips Electronics N.V. | Method for the communication of information and apparatus employing the method |
US20020067405A1 (en) * | 2000-12-04 | 2002-06-06 | Mcdiarmid James Michael | Internet-enabled portable audio/video teleconferencing method and apparatus |
US6973484B1 (en) * | 2000-12-29 | 2005-12-06 | 3Pardata, Inc. | Method of communicating data in an interconnect system |
US7272650B2 (en) * | 2001-04-17 | 2007-09-18 | Intel Corporation | Communication protocols operable through network address translation (NAT) type devices |
US20040117653A1 (en) * | 2001-07-10 | 2004-06-17 | Packet Technologies Ltd. | Virtual private network mechanism incorporating security association processor |
US6842484B2 (en) * | 2001-07-10 | 2005-01-11 | Motorola, Inc. | Method and apparatus for random forced intra-refresh in digital image and video coding |
US7107464B2 (en) * | 2001-07-10 | 2006-09-12 | Telecom Italia S.P.A. | Virtual private network mechanism incorporating security association processor |
US7239662B2 (en) * | 2001-08-23 | 2007-07-03 | Polycom, Inc. | System and method for video error concealment |
US6904040B2 (en) * | 2001-10-05 | 2005-06-07 | International Business Machines Corporaiton | Packet preprocessing interface for multiprocessor network handler |
US20050117626A1 (en) * | 2001-11-20 | 2005-06-02 | Isamu Kobayashi | Thermometer |
US6693663B1 (en) * | 2002-06-14 | 2004-02-17 | Scott C. Harris | Videoconferencing systems with recognition ability |
US20040015979A1 (en) * | 2002-07-22 | 2004-01-22 | Te-Cheng Shen | System and method for efficiently exchanging data among processes |
US20040022222A1 (en) * | 2002-07-31 | 2004-02-05 | Allister Clisham | Wireless metropolitan area network system and method |
US20040022250A1 (en) * | 2002-07-31 | 2004-02-05 | Weijing Chen | Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network |
US7302496B1 (en) * | 2002-11-12 | 2007-11-27 | Cisco Technology, Inc. | Arrangement for discovering a localized IP address realm between two endpoints |
US7328280B2 (en) * | 2003-01-15 | 2008-02-05 | Matsushita Electric Industrial Co., Ltd. | Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends |
US20040190489A1 (en) * | 2003-03-31 | 2004-09-30 | Palaez Mariana Benitez | Multimedia half-duplex sessions with individual floor controls |
US7283489B2 (en) * | 2003-03-31 | 2007-10-16 | Lucent Technologies Inc. | Multimedia half-duplex sessions with individual floor controls |
US20050108764A1 (en) * | 2003-10-20 | 2005-05-19 | Aron Rosenberg | Methods and apparatus for encoding and decoding video data |
US20050117806A1 (en) * | 2003-10-20 | 2005-06-02 | Aron Rosenberg | Methods and apparatus for encoding and decoding video data |
US20050086358A1 (en) * | 2003-10-20 | 2005-04-21 | Sightspeed, Inc. | Method and apparatus for communicating data between two hosts |
US20050086289A1 (en) * | 2003-10-20 | 2005-04-21 | Sightspeed, Inc. | Method and apparatus for communicating data between two hosts |
US7634146B2 (en) * | 2003-10-20 | 2009-12-15 | Logitech Europe S.A. | Methods and apparatus for encoding and decoding video data |
US7626805B2 (en) * | 2003-12-29 | 2009-12-01 | Atrato, Inc. | Disk-drive system supporting massively parallel video streams and method |
US20060075127A1 (en) * | 2004-09-30 | 2006-04-06 | Logitech 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-30 | 2009-06-02 | Logitech Europe S.A. | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
US7728468B2 (en) * | 2004-10-28 | 2010-06-01 | Siemens Aktiengesellschaft | Laminations with integrated spacing feature for an electric machine, and method of making a lamination |
US20060215652A1 (en) * | 2005-03-22 | 2006-09-28 | Logitech Europe S.A. | Method and apparatus for packet traversal of a network address translation device |
Cited By (182)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966557B2 (en) | 2001-01-22 | 2015-02-24 | Sony Computer Entertainment Inc. | Delivery of digital content |
US20090006545A1 (en) * | 2002-04-26 | 2009-01-01 | Dhupelia Shekhar V | Creating an interactive gaming environment |
US7930345B2 (en) | 2002-04-26 | 2011-04-19 | Sony Computer Entertainment America Llc | Method for authenticating a user in an interactive gaming environment |
USRE48803E1 (en) | 2002-04-26 | 2021-11-02 | Sony Interactive Entertainment America Llc | Method for ladder ranking in a game |
USRE48802E1 (en) | 2002-04-26 | 2021-11-02 | Sony Interactive Entertainment America Llc | Method for ladder ranking in a game |
USRE48700E1 (en) | 2002-04-26 | 2021-08-24 | Sony Interactive Entertainment America Llc | Method for ladder ranking in a game |
US7877509B2 (en) | 2002-04-26 | 2011-01-25 | Sony Computer Entertainment America Llc | Balancing distribution of participants in a gaming environment |
US20080280686A1 (en) * | 2002-04-26 | 2008-11-13 | Dhupelia Shekhar V | Balancing distribution of participants in a gaming environment |
US7822809B2 (en) | 2002-04-26 | 2010-10-26 | Sony Computer Entertainment America Llc | Creating an interactive gaming environment |
US20100285872A1 (en) * | 2002-04-26 | 2010-11-11 | Dhupelia Shekhar V | Method for Authenticating a User in an Interactive Gaming Environment |
US7962549B2 (en) | 2002-04-26 | 2011-06-14 | Sony Computer Entertainment America Llc | Method for ladder ranking in a game |
US20060190540A1 (en) * | 2002-05-17 | 2006-08-24 | Sony Computer Entertainment America Inc. | Managing participants in an online session |
US7792902B2 (en) | 2002-05-17 | 2010-09-07 | Sony Computer Entertainment America Llc | Managing participants in an online session |
US9762631B2 (en) | 2002-05-17 | 2017-09-12 | Sony Interactive Entertainment America Llc | Managing participants in an online session |
US20100287239A1 (en) * | 2002-05-17 | 2010-11-11 | Masayuki Chatani | Managing Participants in an Online Session |
US8793315B2 (en) | 2002-05-17 | 2014-07-29 | Sony Computer Entertainment America Llc | Managing participants in an online session |
US10659500B2 (en) | 2002-05-17 | 2020-05-19 | Sony Interactive Entertainment America Llc | Managing participants in an online session |
US7831666B2 (en) | 2002-05-17 | 2010-11-09 | Sony Computer Entertainment America Inc. | Managing participants in an online session |
US20060173958A1 (en) * | 2002-05-17 | 2006-08-03 | Masayuki Chatani | Managing participants in an online session |
US8972548B2 (en) | 2002-07-31 | 2015-03-03 | Sony Computer Entertainment America Llc | Systems and methods for seamless host migration |
US9729621B2 (en) | 2002-07-31 | 2017-08-08 | Sony Interactive Entertainment America Llc | Systems and methods for seamless host migration |
US9516068B2 (en) | 2002-07-31 | 2016-12-06 | Sony Interactive Entertainment America Llc | Seamless host migration based on NAT type |
US8234383B2 (en) | 2003-11-07 | 2012-07-31 | Panasonic Corporation | Bubble packet port identification using detection packets |
US8239541B2 (en) * | 2003-11-07 | 2012-08-07 | Panasonic Corporation | Bidirectional connection setup between endpoints behind network address translators (NATs) |
US20070091798A1 (en) * | 2003-11-07 | 2007-04-26 | Kunio Gobara | Communication system, information processing apparatus, server, and communication method |
US20060288103A1 (en) * | 2003-11-07 | 2006-12-21 | Kunio Gobara | Communication system, information processing apparatus, server, and communication method |
US8432917B2 (en) | 2004-06-29 | 2013-04-30 | Damaka, Inc. | System and method for concurrent sessions in a peer-to-peer hybrid communications network |
US20090296606A1 (en) * | 2004-06-29 | 2009-12-03 | Damaka, Inc. | System and method for peer-to-peer hybrid communications |
US20070078720A1 (en) * | 2004-06-29 | 2007-04-05 | Damaka, Inc. | System and method for advertising in a peer-to-peer hybrid communications network |
US10673568B2 (en) | 2004-06-29 | 2020-06-02 | Damaka, Inc. | System and method for data transfer in a peer-to-peer hybrid communication network |
US7933260B2 (en) | 2004-06-29 | 2011-04-26 | Damaka, Inc. | System and method for routing and communicating in a heterogeneous network environment |
US8467387B2 (en) | 2004-06-29 | 2013-06-18 | Damaka, Inc. | System and method for peer-to-peer hybrid communications |
US9497181B2 (en) | 2004-06-29 | 2016-11-15 | Damaka, Inc. | System and method for concurrent sessions in a peer-to-peer hybrid communications network |
US8867549B2 (en) | 2004-06-29 | 2014-10-21 | Damaka, Inc. | System and method for concurrent sessions in a peer-to-peer hybrid communications network |
US9432412B2 (en) | 2004-06-29 | 2016-08-30 | Damaka, Inc. | System and method for routing and communicating in a heterogeneous network environment |
US8406229B2 (en) | 2004-06-29 | 2013-03-26 | Damaka, Inc. | System and method for traversing a NAT device for peer-to-peer hybrid communications |
US7778187B2 (en) * | 2004-06-29 | 2010-08-17 | Damaka, Inc. | System and method for dynamic stability in a peer-to-peer hybrid communications network |
US8000325B2 (en) * | 2004-06-29 | 2011-08-16 | Damaka, Inc. | System and method for peer-to-peer hybrid communications |
US20070165629A1 (en) * | 2004-06-29 | 2007-07-19 | Damaka, Inc. | System and method for dynamic stability in a peer-to-peer hybrid communications network |
US8218444B2 (en) | 2004-06-29 | 2012-07-10 | Damaka, Inc. | System and method for data transfer in a peer-to-peer hybrid communication network |
US8009586B2 (en) | 2004-06-29 | 2011-08-30 | Damaka, Inc. | System and method for data transfer in a peer-to peer hybrid communication network |
US9172702B2 (en) | 2004-06-29 | 2015-10-27 | Damaka, Inc. | System and method for traversing a NAT device for peer-to-peer hybrid communications |
US9106509B2 (en) | 2004-06-29 | 2015-08-11 | Damaka, Inc. | System and method for data transfer in a peer-to-peer hybrid communication network |
US9172703B2 (en) | 2004-06-29 | 2015-10-27 | Damaka, Inc. | System and method for peer-to-peer hybrid communications |
US20060010204A1 (en) * | 2004-07-06 | 2006-01-12 | Nokia Corporation | Peer-to-peer engine for object sharing in communication devices |
US8316088B2 (en) * | 2004-07-06 | 2012-11-20 | Nokia Corporation | Peer-to-peer engine for object sharing in communication devices |
US8948132B2 (en) | 2005-03-15 | 2015-02-03 | Damaka, Inc. | Device and method for maintaining a communication session during a network transition |
US7957406B2 (en) | 2005-03-22 | 2011-06-07 | Logitech Europe S.A. | Method and apparatus for packet traversal of a network address translation device |
US20100220721A1 (en) * | 2005-03-22 | 2010-09-02 | Logitech Europe S.A. | Method and Apparatus for Packet traversal of A Network Address Translation Device |
US8224985B2 (en) | 2005-10-04 | 2012-07-17 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US7995478B2 (en) | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
US20090023499A1 (en) * | 2007-07-19 | 2009-01-22 | Sony Computer Entertainment Inc. | Bluetooth Enabled Computing System and Associated Methods |
US8180295B2 (en) * | 2007-07-19 | 2012-05-15 | Sony Computer Entertainment Inc. | Bluetooth enabled computing system and associated methods |
US20090028167A1 (en) * | 2007-07-27 | 2009-01-29 | Sony Computer Entertainment Inc. | Cooperative nat behavior discovery |
US20110200009A1 (en) * | 2007-07-27 | 2011-08-18 | Sony Computer Entertainment Inc. | Nat traversal for mobile network devices |
US8565190B2 (en) | 2007-07-27 | 2013-10-22 | Sony Computer Entertainment Inc. | NAT traversal for mobile network devices |
USRE47566E1 (en) | 2007-07-27 | 2019-08-06 | Sony Interactive Entertainment Inc. | NAT traversal for mobile network devices |
US7933273B2 (en) | 2007-07-27 | 2011-04-26 | Sony Computer Entertainment Inc. | Cooperative NAT behavior discovery |
US8437307B2 (en) | 2007-09-03 | 2013-05-07 | Damaka, Inc. | Device and method for maintaining a communication session during a network transition |
US9483405B2 (en) | 2007-09-20 | 2016-11-01 | Sony Interactive Entertainment Inc. | Simplified run-time program translation for emulating complex processor pipelines |
US9648051B2 (en) | 2007-09-28 | 2017-05-09 | Damaka, Inc. | System and method for transitioning a communication session between networks that are not commonly controlled |
US8862164B2 (en) | 2007-09-28 | 2014-10-14 | Damaka, Inc. | System and method for transitioning a communication session between networks that are not commonly controlled |
US10547670B2 (en) | 2007-10-05 | 2020-01-28 | Sony Interactive Entertainment America Llc | Systems and methods for seamless host migration |
US20090113060A1 (en) * | 2007-10-05 | 2009-04-30 | Mark Lester Jacob | Systems and Methods for Seamless Host Migration |
US10063631B2 (en) | 2007-10-05 | 2018-08-28 | Sony Interactive Entertainment America Llc | Systems and methods for seamless host migration |
US8560707B2 (en) | 2007-10-05 | 2013-10-15 | Sony Computer Entertainment America Llc | Seamless host migration based on NAT type |
US11228638B2 (en) | 2007-10-05 | 2022-01-18 | Sony Interactive Entertainment LLC | Systems and methods for seamless host migration |
US8131802B2 (en) | 2007-10-05 | 2012-03-06 | Sony Computer Entertainment America Llc | Systems and methods for seamless host migration |
US9654568B2 (en) | 2007-11-28 | 2017-05-16 | Damaka, Inc. | System and method for endpoint handoff in a hybrid peer-to-peer networking environment |
US9264458B2 (en) | 2007-11-28 | 2016-02-16 | Damaka, Inc. | System and method for endpoint handoff in a hybrid peer-to-peer networking environment |
US8380859B2 (en) | 2007-11-28 | 2013-02-19 | Damaka, Inc. | System and method for endpoint handoff in a hybrid peer-to-peer networking environment |
US20090144425A1 (en) * | 2007-12-04 | 2009-06-04 | Sony Computer Entertainment Inc. | Network bandwidth detection, distribution and traffic prioritization |
US7856501B2 (en) | 2007-12-04 | 2010-12-21 | Sony Computer Entertainment Inc. | Network traffic prioritization |
US8005957B2 (en) | 2007-12-04 | 2011-08-23 | Sony Computer Entertainment Inc. | Network traffic prioritization |
US8943206B2 (en) | 2007-12-04 | 2015-01-27 | Sony Computer Entertainment Inc. | Network bandwidth detection and distribution |
US7908393B2 (en) | 2007-12-04 | 2011-03-15 | Sony Computer Entertainment Inc. | Network bandwidth detection, distribution and traffic prioritization |
US8171123B2 (en) | 2007-12-04 | 2012-05-01 | Sony Computer Entertainment Inc. | Network bandwidth detection and distribution |
US20090144423A1 (en) * | 2007-12-04 | 2009-06-04 | Sony Computer Entertainment Inc. | Network traffic prioritization |
US8015300B2 (en) | 2008-03-05 | 2011-09-06 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US7856506B2 (en) | 2008-03-05 | 2010-12-21 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US20090228593A1 (en) * | 2008-03-05 | 2009-09-10 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US8930545B2 (en) | 2008-03-05 | 2015-01-06 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US8060626B2 (en) * | 2008-09-22 | 2011-11-15 | Sony Computer Entertainment America Llc. | Method for host selection based on discovered NAT type |
US10631068B2 (en) | 2008-11-26 | 2020-04-21 | Free Stream Media Corp. | Content exposure attribution based on renderings of related content across multiple devices |
US9866925B2 (en) | 2008-11-26 | 2018-01-09 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9519772B2 (en) | 2008-11-26 | 2016-12-13 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9706265B2 (en) | 2008-11-26 | 2017-07-11 | Free Stream Media Corp. | Automatic communications between networked devices such as televisions and mobile devices |
US10567823B2 (en) | 2008-11-26 | 2020-02-18 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US10791152B2 (en) | 2008-11-26 | 2020-09-29 | Free Stream Media Corp. | Automatic communications between networked devices such as televisions and mobile devices |
US10425675B2 (en) | 2008-11-26 | 2019-09-24 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US10419541B2 (en) | 2008-11-26 | 2019-09-17 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US10977693B2 (en) | 2008-11-26 | 2021-04-13 | Free Stream Media Corp. | Association of content identifier of audio-visual data with additional data through capture infrastructure |
US9686596B2 (en) | 2008-11-26 | 2017-06-20 | Free Stream Media Corp. | Advertisement targeting through embedded scripts in supply-side and demand-side platforms |
US10880340B2 (en) | 2008-11-26 | 2020-12-29 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9986279B2 (en) | 2008-11-26 | 2018-05-29 | Free Stream Media Corp. | Discovery, access control, and communication with networked services |
US10334324B2 (en) | 2008-11-26 | 2019-06-25 | Free Stream Media Corp. | Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device |
US10142377B2 (en) | 2008-11-26 | 2018-11-27 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9154942B2 (en) | 2008-11-26 | 2015-10-06 | Free Stream Media Corp. | Zero configuration communication between a browser and a networked media device |
US9167419B2 (en) | 2008-11-26 | 2015-10-20 | Free Stream Media Corp. | Discovery and launch system and method |
US9703947B2 (en) | 2008-11-26 | 2017-07-11 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10986141B2 (en) | 2008-11-26 | 2021-04-20 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10771525B2 (en) | 2008-11-26 | 2020-09-08 | Free Stream Media Corp. | System and method of discovery and launch associated with a networked media device |
US10074108B2 (en) | 2008-11-26 | 2018-09-11 | Free Stream Media Corp. | Annotation of metadata through capture infrastructure |
US9258383B2 (en) | 2008-11-26 | 2016-02-09 | Free Stream Media Corp. | Monetization of television audience data across muliple screens of a user watching television |
US9961388B2 (en) | 2008-11-26 | 2018-05-01 | David Harrison | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US9838758B2 (en) | 2008-11-26 | 2017-12-05 | David Harrison | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9589456B2 (en) | 2008-11-26 | 2017-03-07 | Free Stream Media Corp. | Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements |
US9591381B2 (en) | 2008-11-26 | 2017-03-07 | Free Stream Media Corp. | Automated discovery and launch of an application on a network enabled device |
US9576473B2 (en) | 2008-11-26 | 2017-02-21 | Free Stream Media Corp. | Annotation of metadata through capture infrastructure |
US9386356B2 (en) | 2008-11-26 | 2016-07-05 | Free Stream Media Corp. | Targeting with television audience data across multiple screens |
US9967295B2 (en) | 2008-11-26 | 2018-05-08 | David Harrison | Automated discovery and launch of an application on a network enabled device |
US9854330B2 (en) | 2008-11-26 | 2017-12-26 | David Harrison | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US10032191B2 (en) | 2008-11-26 | 2018-07-24 | Free Stream Media Corp. | Advertisement targeting through embedded scripts in supply-side and demand-side platforms |
US9848250B2 (en) | 2008-11-26 | 2017-12-19 | Free Stream Media Corp. | Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device |
US9560425B2 (en) | 2008-11-26 | 2017-01-31 | Free Stream Media Corp. | Remotely control devices over a network without authentication or registration |
US9716736B2 (en) | 2008-11-26 | 2017-07-25 | Free Stream Media Corp. | System and method of discovery and launch associated with a networked media device |
US20100241710A1 (en) * | 2009-02-14 | 2010-09-23 | Bvisual S.A. | Method and system for videoconferencing or data transfer between clients behind different network address translators |
US8126987B2 (en) | 2009-11-16 | 2012-02-28 | Sony Computer Entertainment Inc. | Mediation of content-related services |
US20110149737A1 (en) * | 2009-12-23 | 2011-06-23 | Manikam Muthiah | Systems and methods for managing spillover limits in a multi-core system |
US8825859B2 (en) | 2009-12-23 | 2014-09-02 | Citrix Systems, Inc. | System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing |
US9407679B2 (en) * | 2009-12-23 | 2016-08-02 | Citrix Systems, Inc. | Systems and methods for managing ports for RTSP across cores in a multi-core system |
US20110153831A1 (en) * | 2009-12-23 | 2011-06-23 | Rishi Mutnuru | Systems and methods for mixed mode of ipv6 and ipv4 dns of global server load balancing |
US10846136B2 (en) | 2009-12-23 | 2020-11-24 | Citrix Systems, Inc. | Systems and methods for managing spillover limits in a multi-core system |
US20110161500A1 (en) * | 2009-12-23 | 2011-06-30 | Sreedhar Yengalasetti | Systems and methods for managing ports for rtsp across cores in a multi-core system |
US20140115122A1 (en) * | 2009-12-23 | 2014-04-24 | Citrix Systems, Inc. | Systems and methods for managing ports for rtsp across cores in a multi-core system |
US9098335B2 (en) | 2009-12-23 | 2015-08-04 | Citrix Systems, Inc. | Systems and methods for managing spillover limits in a multi-core system |
US8635344B2 (en) * | 2009-12-23 | 2014-01-21 | Citrix Systems, Inc. | Systems and methods for managing ports for RTSP across cores in a multi-core system |
US8874785B2 (en) | 2010-02-15 | 2014-10-28 | Damaka, Inc. | System and method for signaling and data tunneling in a peer-to-peer environment |
US10027745B2 (en) | 2010-02-15 | 2018-07-17 | Damaka, Inc. | System and method for signaling and data tunneling in a peer-to-peer environment |
US8725895B2 (en) | 2010-02-15 | 2014-05-13 | Damaka, Inc. | NAT traversal by concurrently probing multiple candidates |
US9866629B2 (en) | 2010-02-15 | 2018-01-09 | Damaka, Inc. | System and method for shared session appearance in a hybrid peer-to-peer environment |
US10050872B2 (en) | 2010-02-15 | 2018-08-14 | Damaka, Inc. | System and method for strategic routing in a peer-to-peer environment |
US20110231917A1 (en) * | 2010-03-19 | 2011-09-22 | Damaka, Inc. | System and method for providing a virtual peer-to-peer environment |
US8689307B2 (en) | 2010-03-19 | 2014-04-01 | Damaka, Inc. | System and method for providing a virtual peer-to-peer environment |
US9043488B2 (en) | 2010-03-29 | 2015-05-26 | Damaka, Inc. | System and method for session sweeping between devices |
US10033806B2 (en) | 2010-03-29 | 2018-07-24 | Damaka, Inc. | System and method for session sweeping between devices |
US9781173B2 (en) | 2010-04-16 | 2017-10-03 | Damaka, Inc. | System and method for providing enterprise voice call continuity |
US9191416B2 (en) | 2010-04-16 | 2015-11-17 | Damaka, Inc. | System and method for providing enterprise voice call continuity |
US9356972B1 (en) | 2010-04-16 | 2016-05-31 | Damaka, Inc. | System and method for providing enterprise voice call continuity |
US9781258B2 (en) | 2010-04-29 | 2017-10-03 | Damaka, Inc. | System and method for peer-to-peer media routing using a third party instant messaging system for signaling |
US9467481B2 (en) | 2010-04-29 | 2016-10-11 | Centurylink Intellectual Property Llc | Multi-access gateway for direct to residence communication services |
US8824487B1 (en) * | 2010-04-29 | 2014-09-02 | Centurylink Intellectual Property Llc | Multi-access gateway for direct to residence communication services |
US9948684B2 (en) | 2010-04-29 | 2018-04-17 | Centurylink Intellectual Property Llc | Multi-access gateway for direct to residence communication services |
US9015258B2 (en) | 2010-04-29 | 2015-04-21 | Damaka, Inc. | System and method for peer-to-peer media routing using a third party instant messaging system for signaling |
US8352563B2 (en) | 2010-04-29 | 2013-01-08 | Damaka, Inc. | System and method for peer-to-peer media routing using a third party instant messaging system for signaling |
US8433759B2 (en) | 2010-05-24 | 2013-04-30 | Sony Computer Entertainment America Llc | Direction-conscious information sharing |
US8446900B2 (en) | 2010-06-18 | 2013-05-21 | Damaka, Inc. | System and method for transferring a call between endpoints in a hybrid peer-to-peer network |
US9143489B2 (en) | 2010-06-23 | 2015-09-22 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US10148628B2 (en) | 2010-06-23 | 2018-12-04 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US9712507B2 (en) | 2010-06-23 | 2017-07-18 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US8611540B2 (en) | 2010-06-23 | 2013-12-17 | Damaka, Inc. | System and method for secure messaging in a hybrid peer-to-peer network |
US8892646B2 (en) | 2010-08-25 | 2014-11-18 | Damaka, Inc. | System and method for shared session appearance in a hybrid peer-to-peer environment |
US10506036B2 (en) | 2010-08-25 | 2019-12-10 | Damaka, Inc. | System and method for shared session appearance in a hybrid peer-to-peer environment |
US8468010B2 (en) | 2010-09-24 | 2013-06-18 | Damaka, Inc. | System and method for language translation in a hybrid peer-to-peer environment |
US9128927B2 (en) | 2010-09-24 | 2015-09-08 | Damaka, Inc. | System and method for language translation in a hybrid peer-to-peer environment |
US9031005B2 (en) | 2010-10-11 | 2015-05-12 | Damaka, Inc. | System and method for a reverse invitation in a hybrid peer-to-peer environment |
US8743781B2 (en) | 2010-10-11 | 2014-06-03 | Damaka, Inc. | System and method for a reverse invitation in a hybrid peer-to-peer environment |
US9497127B2 (en) | 2010-10-11 | 2016-11-15 | Damaka, Inc. | System and method for a reverse invitation in a hybrid peer-to-peer environment |
US9742846B2 (en) | 2011-04-04 | 2017-08-22 | Damaka, Inc. | System and method for sharing unsupported document types between communication devices |
US8407314B2 (en) | 2011-04-04 | 2013-03-26 | Damaka, Inc. | System and method for sharing unsupported document types between communication devices |
US10097638B2 (en) | 2011-04-04 | 2018-10-09 | Damaka, Inc. | System and method for sharing unsupported document types between communication devices |
US9356997B2 (en) | 2011-04-04 | 2016-05-31 | Damaka, Inc. | System and method for sharing unsupported document types between communication devices |
US9210268B2 (en) | 2011-05-17 | 2015-12-08 | Damaka, Inc. | System and method for transferring a call bridge between communication devices |
US8694587B2 (en) | 2011-05-17 | 2014-04-08 | Damaka, Inc. | System and method for transferring a call bridge between communication devices |
US8478890B2 (en) | 2011-07-15 | 2013-07-02 | Damaka, Inc. | System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability |
US9009702B2 (en) | 2011-11-30 | 2015-04-14 | Red Hat Israel, Ltd. | Application-driven shared device queue polling in a virtualized computing environment |
US8924501B2 (en) * | 2011-11-30 | 2014-12-30 | Red Hat Israel, Ltd. | Application-driven shared device queue polling |
US9354952B2 (en) | 2011-11-30 | 2016-05-31 | Red Hat Israel, Ltd. | Application-driven shared device queue polling |
US20130138760A1 (en) * | 2011-11-30 | 2013-05-30 | Michael Tsirkin | Application-driven shared device queue polling |
US9026668B2 (en) | 2012-05-26 | 2015-05-05 | Free Stream Media Corp. | Real-time and retargeted advertising on multiple screens of a user watching television |
US9027032B2 (en) | 2013-07-16 | 2015-05-05 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US10863357B2 (en) | 2013-07-16 | 2020-12-08 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US10387220B2 (en) | 2013-07-16 | 2019-08-20 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US9491233B2 (en) | 2013-07-16 | 2016-11-08 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US9578092B1 (en) | 2013-07-16 | 2017-02-21 | Damaka, Inc. | System and method for providing additional functionality to existing software in an integrated manner |
US9825876B2 (en) | 2013-10-18 | 2017-11-21 | Damaka, Inc. | System and method for virtual parallel resource management |
US9357016B2 (en) | 2013-10-18 | 2016-05-31 | Damaka, Inc. | System and method for virtual parallel resource management |
US10355882B2 (en) | 2014-08-05 | 2019-07-16 | Damaka, Inc. | System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems |
US10091025B2 (en) | 2016-03-31 | 2018-10-02 | Damaka, Inc. | System and method for enabling use of a single user identifier across incompatible networks for UCC functionality |
US10765952B2 (en) | 2018-09-21 | 2020-09-08 | Sony Interactive Entertainment LLC | System-level multiplayer matchmaking |
US10695671B2 (en) | 2018-09-28 | 2020-06-30 | Sony Interactive Entertainment LLC | Establishing and managing multiplayer sessions |
US11364437B2 (en) | 2018-09-28 | 2022-06-21 | Sony Interactive Entertainment LLC | Establishing and managing multiplayer sessions |
Also Published As
Publication number | Publication date |
---|---|
US7543064B2 (en) | 2009-06-02 |
US20060075127A1 (en) | 2006-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7543064B2 (en) | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host | |
US7321925B2 (en) | Load balancing and fault tolerance for server-based software applications | |
Rosenberg | Interactive connectivity establishment (ICE): A protocol for network address translator (NAT) traversal for offer/answer protocols | |
EP3552364B1 (en) | Conferencing server | |
Ford et al. | Peer-to-peer communication across network address translators. | |
US8631139B2 (en) | System and method for automatically initiating and dynamically establishing secure internet connections between a fire-walled server and a fire-walled client | |
US9432239B2 (en) | End-point identifiers in SIP | |
Wing et al. | Port control protocol (PCP) | |
US9497168B2 (en) | Method and apparatus for supporting communications between a computing device within a network and an external computing device | |
US7810148B2 (en) | Enabling terminal services through a firewall | |
KR101139675B1 (en) | Traversal of symmetric network address translator for multiple simultaneous connections | |
US20130308628A1 (en) | Nat traversal for voip | |
CN100521663C (en) | Method for crossing network address conversion in point-to-point communication | |
US9497160B1 (en) | Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric | |
US20120042027A1 (en) | NAT Traversal for Media Conferencing | |
US20070019540A1 (en) | Mechanisms for providing connectivity in NAT redundant/fail-over scenarios in unshared address-space | |
EP2122528A1 (en) | Secured cross platform networked multiplayer communication and game play | |
RU2373654C1 (en) | Method for making peer-to-peer connection and system designed for it | |
Wacker et al. | A nat traversal mechanism for peer-to-peer networks | |
Rosenberg | RFC 5245: Interactive connectivity establishment (ICE): A protocol for network address translator (NAT) traversal for offer/answer protocols | |
US9413653B2 (en) | Communication system and server | |
WO2008051028A1 (en) | Network address translation control system and method for providing multilateral-bidirectional audio communication service | |
Francis | Is the Internet going NUTSS? | |
Ivov et al. | RFC 8838: Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol | |
Wang et al. | VIP: A P2P communication platform for NAT traversal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |