US20110055392A1 - Network traversal method and network communication system - Google Patents
Network traversal method and network communication system Download PDFInfo
- Publication number
- US20110055392A1 US20110055392A1 US12/604,403 US60440309A US2011055392A1 US 20110055392 A1 US20110055392 A1 US 20110055392A1 US 60440309 A US60440309 A US 60440309A US 2011055392 A1 US2011055392 A1 US 2011055392A1
- Authority
- US
- United States
- Prior art keywords
- endpoint
- nat
- peer
- connection
- endpoints
- 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.)
- Granted
Links
Images
Classifications
-
- 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/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
-
- 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
Definitions
- the disclosure relates to a network traversal method and a network communication system using the network traversal method.
- NATs network address translators
- IP Internet Protocol
- NATs can be categorized into full cone NATs, restricted cone NATs, port restricted cone NATs, and symmetric NATs.
- a characteristic of the full cone NATs is that after a connection is established between an internal user and an external user, any external user can communicate with the internal user according to a NAT assigned address/port of the internal user.
- a characteristic of the restricted cone NATs is that after a connection is established between an internal user and an external user, only the external address connected with the internal user can communicate with the internal user according to a NAT assigned address/port of the internal user.
- a characteristic of the port restricted cone NATs is that after a connection is established between an internal user and an external user, only the external addresses/ports connected to the internal user can communicate with the internal user according to a NAT assigned address/port of the internal user.
- a characteristic of the symmetric NATs is that a NAT assigned address/port is assigned to each application sent by an internal user to different destination, and only the address/port of the corresponding destination can communicate with the NAT assigned address/port.
- STUN simple traversal of user datagram protocol through NAT
- TURN traversal using relay NAT
- ICE interactive connectivity establishment
- STUN network protocol specified by Request for Comments (RFC) 3489 provides a technique, wherein an internal user inside a NAT can obtain the addresses/ports assigned by the NAT and the type of the NAT, and can establish a connection with an external user outside the NAT by providing aforementioned information to the external user.
- RRC Request for Comments
- the STUN network protocol cannot work on a symmetric NAT.
- a TURN server is deployed in a public domain, and the TURN server assigns an address/port to an internal user inside a NAT and records the mapping relationship between an address/port used by the internal user for communicating with external users and the assigned address/port in a mapping table. After that, data entering and leaving the NAT is always relayed by the TURN server so as to traverse the NAT.
- the TURN network protocol can be applied to traversal of a symmetric NAT, the TURN server may become a bottleneck in the performance of the entire system since the data streams of all internal users of the NAT have to pass through the TURN server.
- the ICE network protocol provides a NAT traversal method making use of the STUN network protocol and the TURN network protocol.
- this NAT traversal method when a connection is to be established between users by traversing a NAT, the users first collect their own candidate address information and then exchange the candidate address information with each other. After that, each user performs a connection testing by using the other party's candidate address. Finally, the users determine an optimal connection for transmitting data.
- Some NAT traversal methods are provided based on the network protocols described above to allow an external user outside a NAT to traverse the NAT and establish a connection with an internal user inside the NAT.
- a rendezvous server is deployed in a public domain, and every NAT user establishes a control message connection with the rendezvous server.
- the rendezvous server sends the NAT assigned address/port of the user B to the user A and the NAT assigned address/port of the user A to the user B.
- the user A sends a testing packet to the NAT assigned address/port of the user B.
- the testing packet is blocked by the NAT of the user B, but meanwhile, a NAT mapping table of the user A is updated to allow the NAT assigned address/port of the user B to transfer data to the user A.
- the user B also sends a testing packet to the NAT assigned address/port of the user A.
- the NAT mapping table of the user B is updated to allow the NAT assigned address/port of the user A to transmit data to the user B. Accordingly, a bidirectional NAT traversal connection is successfully established.
- a port prediction technique is disclosed in U.S. Pat. No. 7,328,280 in order to achieve NAT traversal when both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT. Because a symmetric NAT assigns ports to its internal users at certain intervals, in the port prediction method, the user that is about to establish a connection first tests the port assignation rule of the corresponding NAT and obtain the port assignation rule of the other party through information exchange. After that, the users respectively send a plurality of testing packets to the port predicted according to the other party's port assignation rule. Theoretically, a NAT traversal connection is established through the procedure described above. However, in the present technique, a lot of prediction messages and communication time are spent for predicting the ports assigned by the NATs, and the prediction success rate cannot be ensured.
- a network traversal method for establishing a connection between a first endpoint and a second endpoint among a plurality of endpoints.
- the network traversal method includes deploying an on-line server, wherein the endpoints respectively register registration information in the on-line server and keep an on-line state with the on-line server.
- the network traversal method also includes grouping the endpoints according to the registration information of the endpoints, wherein the first endpoint is inside a first network address translator (NAT), the second endpoint is inside a second NAT, the endpoints in the first NAT are grouped into a first group, and the endpoints in the second NAT are grouped into a second group.
- NAT network address translator
- the network traversal method further includes determining whether there is an available connection between the endpoints grouped into the first group and the endpoints grouped into the second group, wherein if there is the available connection, the connection between the first endpoint and the second endpoint is established by using the available connection.
- a network communication system including a plurality of NATs, a plurality of endpoints, and an on-line server.
- a first endpoint among the endpoints is inside a first NAT among the NATs, and a second endpoint among the endpoints is inside a second NAT among the NATs.
- the on-line server groups the endpoints, wherein the endpoints inside the first NAT are grouped into a first group, and the endpoints inside the second NAT are grouped into a second group.
- the first endpoint determines whether there is an available connection between the endpoints grouped into the first group and the endpoints grouped into the second group, wherein if there is the available connection, the first endpoint establishes a connection between the first endpoint and the second endpoint by using the available connection.
- the first endpoint establishes a connection between the first endpoint and the second endpoint by using an existing connection between the two groups, so that the time, cost, and complexity of NAT traversal are all reduced.
- FIG. 1 is a diagram of a network communication system according to an exemplary embodiment of the disclosure.
- FIG. 2 illustrates an example of a group and connection list according to an exemplary embodiment of the disclosure.
- FIG. 3 illustrates an example of how a connection is established according to an exemplary embodiment of the disclosure.
- FIG. 4 is a flowchart of a network traversal method according to an exemplary embodiment of the disclosure.
- FIG. 5 is a detailed flowchart of step S 405 in FIG. 4 according to an exemplary embodiment of the disclosure.
- FIG. 6 is a detailed flowchart of step S 413 in FIG. 4 according to an exemplary embodiment of the disclosure.
- FIG. 1 is a diagram of a network communication system according to an exemplary embodiment of the disclosure.
- the network communication system includes a first endpoint 102 , a second endpoint 104 , a third endpoint 106 , a fourth endpoint 108 , a fifth endpoint 110 , a first network address translator (NAT) 122 , a second NAT 124 , and an on-line server 130 .
- NAT network address translator
- the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 have a network connection function supporting the Transmission Control Protocol/Internet Protocol (TCP/IP) and can transmit and receive digital contents (for example, IP phone calls, music files, video/audio files, and instant messages) through a network 140 , wherein the network 140 is the Internet constructed by using TCP/IP.
- TCP/IP Transmission Control Protocol/Internet Protocol
- the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 are all connected to the network 140 in a wired mode.
- the disclosure is not limited thereto, and the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 may also be connected to the network 140 respectively in a wired or wireless mode.
- the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 are personal computers (PCs).
- first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 may also be servers, personal digital assistants (PDAs), or other electronic devices that can be connected to the network 140 .
- PDAs personal digital assistants
- the first NAT 122 and the second NAT 124 are used for translating private IP addresses and public IP addresses. Namely, the first NAT 122 and the second NAT 124 translate the address/port in the header of a passing IP packet into another address/port so that the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 using private IP addresses can be connected to the network 140 .
- the technique of NATs is well known to those skilled in the art therefore will not be described herein.
- the first NAT 122 and the second NAT 124 are both symmetric NATs. However, the disclosure is not limited thereto, and the first NAT 122 and the second NAT 124 may also be other types of NATs.
- the first endpoint 102 , the second endpoint 104 , and the third endpoint 106 are in the first NAT 122
- the fourth endpoint 108 and the fifth endpoint 110 are inside the second NAT 124 .
- the first endpoint 102 , the second endpoint 104 , and the third endpoint 106 are in the domain of the first NAT 122 and are connected to the network 140 through the address translation of the first NAT 122
- the fourth endpoint 108 and the fifth endpoint 110 are in the domain of the second NAT 124 and are connected to the network 140 through the address translation of the second NAT 124 .
- the private IP address/port used by the first endpoint 102 is 10.0.0.1:8000
- the private IP address/port used by the second endpoint 104 is 10.0.0.2:8000
- the private IP address/port used by the third endpoint 106 is 10.0.0.3:8000
- the private IP address/port used by the fourth endpoint 108 is 10.0.0.1:8000
- the private IP address/port used by the fifth endpoint 110 is 10.0.0.2:8000
- the public IP address used by the first NAT 122 is 140.96.178.1
- the public IP address used by the second NAT 124 is 140.96.178.5.
- the on-line server 130 has a network connection function supporting TCP/IP and is coupled to the network 140 .
- the on-line server 130 is a single server in a public domain.
- the disclosure is not limited thereto, and in another exemplary embodiment of the disclosure, the on-line server 130 may also be composed of multiple servers in a peer-to-peer overlay network.
- the on-line server 130 provides a registration interface such that the first endpoint 102 , the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 can respectively establish a control channel with the on-line server 130 , so as to keep an on-line state.
- the on-line server 130 records the registration information of the first endpoint 102 , wherein the registration information includes a user account field, a user internal address/port field, a NAT type field, and a user external network address/port field.
- TCP transmission control protocol
- the user account field records the account of an endpoint (for example, the account of the first endpoint 102 is “ 102 ”)
- the user internal network address field records the private IP address/port of the endpoint (for example, the private IP address/port of the first endpoint 102 is “10.0.0.1:8000”)
- the NAT type field records the type of the NAT corresponding to the endpoint (for example, the type of the first NAT 122 corresponding to the first endpoint 102 is “symmetric NAT”)
- the user external network address field records the public IP address/port assigned to the endpoint by the corresponding NAT (for example, the public IP address/port assigned by the first NAT 122 to the first endpoint 102 is “140.96.178.1:1111”).
- the first endpoint 102 After the first endpoint 102 registers, the first endpoint 102 keep the connection with the on-line server 130 until the first endpoint 102 terminates the connection with the on-line server 130 .
- the second endpoint 104 , the third endpoint 106 , the fourth endpoint 108 , and the fifth endpoint 110 also register and keep the connection with the on-line server 130 through the method described above.
- the on-line server 130 groups the registered endpoints and stores a group and connection list for recording the information of the endpoints registered to the on-line server 130 .
- the on-line server 130 groups the endpoints according to the corresponding NATs thereof and records any peer-to-peer direct connection between the registered endpoints.
- FIG. 2 illustrates an example of a group and connection list according to an exemplary embodiment of the disclosure.
- the group and connection list 200 includes a group name field 202 , a group type field 204 , a user name field 206 , a user contact field 208 , a connection group name field 210 , and a connection user name field 212 .
- the group name field 202 records the names of the groups corresponding to the registered endpoints, wherein the on-line server 130 uses the public IP addresses of the NATs as the names of the groups.
- the group type field 204 records the types of the NATs corresponding to the registered endpoints.
- the user name field 206 records the accounts of the registered endpoints.
- the user contact field 208 records the private IP addresses/ports of the registered endpoints.
- connection group name field 210 records the names of the connected groups if the registered endpoints have established peer-to-peer direct connections.
- the on-line server 130 groups the first endpoint 102 , the second endpoint 104 , and the third endpoint 106 into a first group and the fourth endpoint 108 and the fifth endpoint 110 into a second group according to the NAT corresponding to each endpoint, wherein the name of the first group is “140.96.178.1”, and the name of the second group is “140.96.178.5”. Accordingly, the information of each endpoint is recorded in the group and connection list 200 .
- an endpoint i.e., a initiating endpoint
- another endpoint i.e., an invited endpoint
- the initiating endpoint and the invited endpoint exchange their candidate address information and the corresponding NAT type information with each other through the on-line server 130 .
- both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT
- the initiating endpoint sends an inquiry message to the on-line server 130 to inquiry whether there is a peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, and if there is such a peer-to-peer direct connection, the initiating endpoint tries to establish a connection with the invited endpoint by using the existing peer-to-peer direct connection.
- a peer-to-peer direct connection has been established between the third endpoint 106 in the first group and the fourth endpoint 108 in the second group (S 302 ).
- the first endpoint 102 sends a connection request and a candidate address information to the on-line server 130 (S 304 ).
- the on-line server 130 sends the connection request and the candidate address information of the first endpoint 102 and the corresponding NAT type information to the fifth endpoint 110 (S 306 ).
- the fifth endpoint 110 receives the connection request and the candidate address information of the first endpoint 102 from the on-line server 130 , the fifth endpoint 110 sends its own candidate address information to the on-line server 130 (S 308 ).
- the on-line server 130 sends the candidate address information of the fifth endpoint 110 and the corresponding NAT type information to the first endpoint 102 (S 310 ). Accordingly, the first endpoint 102 and the fifth endpoint 110 get to know that the other party is inside a symmetric NAT.
- the first endpoint 102 sends an inquiry message to the on-line server 130 to inquiry the connection list of the same groups in the group and connection list 200 (S 312 ) and receives a response message from the on-line server 130 (S 314 ) to determine whether there is already a peer-to-peer direct connection between an endpoint in the group (i.e., the first group) of the first endpoint 102 and an endpoint in the group (i.e., the second group) of the fifth endpoint.
- the first endpoint 102 sends a connection authorization request to the third endpoint 106 (S 316 ). If the third endpoint 106 approves the connection authorization request, the third endpoint 106 passes the connection authorization request to the fourth endpoint 108 (S 318 ). If the fourth endpoint 108 approves the connection authorization request, the fourth endpoint 108 notifies the fifth endpoint 110 (S 320 ). After that, if the fifth endpoint 110 approves the connection authorization request, the fifth endpoint 110 sends an approved acknowledgement response to the fourth endpoint 108 (S 322 ).
- the fourth endpoint 108 passes the approved acknowledgement response to the third endpoint 106 (S 324 ), and the third endpoint 106 passes the approved acknowledgement response to the first endpoint 102 (S 326 ). Finally, the connection between the first endpoint 102 and the fifth endpoint 110 is established by using the peer-to-peer direct connection between the third endpoint 106 and the fourth endpoint 108 (S 328 ).
- connection between the first endpoint 102 and the fifth endpoint 110 can be established through the connection reusing mechanism illustrated in FIG. 3 , so that it is not needed to execute other NAT traversal techniques and the cost can be reduced.
- the third endpoint 106 and the fourth endpoint 108 send the approved acknowledgement response to the first endpoint 102 to allow the first endpoint 102 to use the peer-to-peer direct connection between the third endpoint 106 and the fourth endpoint 108 .
- a requested endpoint may reject the connection authorization request from another endpoint according to the bandwidth usage status thereof. For example, when the first endpoint 102 sends a connection authorization request to the third endpoint 106 , the third endpoint 106 rejects the connection authorization request of the first endpoint 102 if the number of endpoints connected through the third endpoint 106 has exceeded a connection threshold.
- connection threshold is set to 5, however, the disclosure is not limited thereto, any suitable value can be as the connection threshold. Accordingly, certain connection quality of the requested endpoint can be assured when the requested endpoint shares its established peer-to-peer direct connection with other endpoints.
- the requested endpoint has to be able to identify the destination of a received packet when the requested endpoint allows other endpoints to use the established peer-to-peer direct connection thereof.
- the actual origin address and the actual destination address are included in an IP packet so that the packet can be successfully transmitted.
- FIG. 4 is a flowchart of a network traversal method according to an exemplary embodiment of the disclosure.
- step S 401 an initiating endpoint (for example, the first endpoint 102 in FIG. 3 ) and an invited endpoint (for example, the fifth endpoint 110 in FIG. 3 ) exchange the candidate address information and corresponding NAT information with each other.
- an initiating endpoint for example, the first endpoint 102 in FIG. 3
- an invited endpoint for example, the fifth endpoint 110 in FIG. 3
- step S 403 the initiating endpoint determines whether both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT according to the exchanged information.
- step S 403 If it is determined in step S 403 that both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT, in step S 405 , whether there is an available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to. Otherwise, in step S 407 , the initiating endpoint traverses the NATs by using a second connection mode to establish a peer-to-peer direct connection with the invited endpoint.
- the second connection mode may be a hole punching method (mode) or other suitable connection methods.
- FIG. 5 is a detailed flowchart of step S 405 in FIG. 4 according to an exemplary embodiment of the disclosure.
- step S 501 the initiating endpoint determines whether there is a peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to according to the group and connection list 200 in the on-line server 130 .
- step S 501 If the initiating endpoint determines in step S 501 that there is no peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S 511 , it is determined that there is no available connection between the group of the initiating endpoint and the group of the invited endpoint.
- step S 405 if it is determined in step S 405 that there is the available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S 409 , the initiating endpoint establishes the connection between the initiating endpoint and the invited endpoint by using the available connection.
- step S 405 If it is determined in step S 405 that there is no available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S 411 , the initiating endpoint uses a first connection mode to traverse the NATs so as to establish a peer-to-peer direct connection with the invited endpoint, and in step S 413 , the initiating endpoint and the invited endpoint report the peer-to-peer direct connection information to the on-line server 130 to update the group and connection list 200 . Namely, if there is no peer-to-peer direct connection between the third endpoint 106 and the fourth endpoint 108 in the example illustrated in FIG.
- the first endpoint 102 and the fifth endpoint 110 traverse the NATs by using the first connection mode to establish the peer-to-peer direct connection between the first endpoint 102 and the fifth endpoint 110 and update the peer-to-peer direct connection information in the group and connection list 200 so that subsequently the peer-to-peer direct connection can be used by other endpoints.
- the first connection mode herein may be the port prediction method (mode) or other suitable connection methods.
- FIG. 6 is a detailed flowchart of step S 413 in FIG. 4 according to an exemplary embodiment of the disclosure.
- the initiating endpoint and the invited endpoint respectively send the connection information of the established peer-to-peer direct connection to the on-line server 130 .
- the connection information contains a group name, a user name, a connection group name, and a connection user name in sequence. For example, in the example illustrated in FIG.
- the third endpoint 106 if the third endpoint 106 does not allow the first endpoint 102 to reuse the peer-to-peer direct connection between the third endpoint 106 and the fourth endpoint 108 , and after the first endpoint 102 and the fifth endpoint 110 establish the peer-to-peer direct connection by using the first mode through foregoing step S 411 , the first endpoint 102 sends the connection information containing ⁇ 140.96.178.1, 102 , 140.96.178.5, 110 ⁇ to the on-line server 130 , and the fifth endpoint 110 transfers the connection information containing ⁇ 140.96.178.5, 110 , 140.96.178.1, 102 ⁇ to the on-line server 130 .
- step S 409 when the corresponding NATs of the initiating endpoint and the invited endpoint are both symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT.
- the disclosure is not limited thereto, and in another exemplary embodiment of the disclosure, the step of deter lining the types of the NATs is omitted, and whether the connection reusing mechanism can be executed is directly determined.
- the application of the disclosure is not limited to such situations that the NATs corresponding to the initiating endpoint and the invited endpoint are both symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT.
- the connection reusing mechanism described above can be applied to the traversal of any other types of NATs.
Abstract
Description
- This application claims the priority benefit of Taiwan application serial no. 98129547, filed on Sep. 2, 2009. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.
- 1. Field of the Invention
- The disclosure relates to a network traversal method and a network communication system using the network traversal method.
- 2. Description of Related Art
- Along with the development of network technologies and infrastructures and the increase of network users, many network address translators (NATs) are adopted to resolve the problem of insufficient network addresses in the Internet Protocol (IP). However, the adoption of NATs brings a great operation obstacle to applications using peer-to-peer transmission, such as P2P file transmission applications and IP phone applications.
- To be specific, NATs can be categorized into full cone NATs, restricted cone NATs, port restricted cone NATs, and symmetric NATs. A characteristic of the full cone NATs is that after a connection is established between an internal user and an external user, any external user can communicate with the internal user according to a NAT assigned address/port of the internal user. A characteristic of the restricted cone NATs is that after a connection is established between an internal user and an external user, only the external address connected with the internal user can communicate with the internal user according to a NAT assigned address/port of the internal user. A characteristic of the port restricted cone NATs is that after a connection is established between an internal user and an external user, only the external addresses/ports connected to the internal user can communicate with the internal user according to a NAT assigned address/port of the internal user. A characteristic of the symmetric NATs is that a NAT assigned address/port is assigned to each application sent by an internal user to different destination, and only the address/port of the corresponding destination can communicate with the NAT assigned address/port.
- As described above, in an environment in which many users use private IP addresses (or virtual IP addresses), when an external user outside a NAT is about to establish a data transmission connection with an internal user inside the NAT, the request message issued by the external user is blocked by the NAT and accordingly the internal user cannot receive this request message. As a result, the connection cannot be established.
- In order to resolve foregoing problem, network protocols such as the simple traversal of user datagram protocol through NAT (STUN), the traversal using relay NAT (TURN), and the interactive connectivity establishment (ICE) are provided. The STUN network protocol specified by Request for Comments (RFC) 3489 provides a technique, wherein an internal user inside a NAT can obtain the addresses/ports assigned by the NAT and the type of the NAT, and can establish a connection with an external user outside the NAT by providing aforementioned information to the external user. However, the STUN network protocol cannot work on a symmetric NAT. According to the TURN network protocol, a TURN server is deployed in a public domain, and the TURN server assigns an address/port to an internal user inside a NAT and records the mapping relationship between an address/port used by the internal user for communicating with external users and the assigned address/port in a mapping table. After that, data entering and leaving the NAT is always relayed by the TURN server so as to traverse the NAT. Even though the TURN network protocol can be applied to traversal of a symmetric NAT, the TURN server may become a bottleneck in the performance of the entire system since the data streams of all internal users of the NAT have to pass through the TURN server. The ICE network protocol provides a NAT traversal method making use of the STUN network protocol and the TURN network protocol. In this NAT traversal method, when a connection is to be established between users by traversing a NAT, the users first collect their own candidate address information and then exchange the candidate address information with each other. After that, each user performs a connection testing by using the other party's candidate address. Finally, the users determine an optimal connection for transmitting data.
- Some NAT traversal methods are provided based on the network protocols described above to allow an external user outside a NAT to traverse the NAT and establish a connection with an internal user inside the NAT. For example, in a hole punching method provided by the RFC 5128, a rendezvous server is deployed in a public domain, and every NAT user establishes a control message connection with the rendezvous server. When a user A is about to establish a direct NAT traversal connection with a user B, the user A first sends a connection establishment request message to the rendezvous server. After receiving the connection establishment request message, the rendezvous server sends the NAT assigned address/port of the user B to the user A and the NAT assigned address/port of the user A to the user B. Once the user A receives the address information of the user B, the user A sends a testing packet to the NAT assigned address/port of the user B. Herein the testing packet is blocked by the NAT of the user B, but meanwhile, a NAT mapping table of the user A is updated to allow the NAT assigned address/port of the user B to transfer data to the user A. After that, the user B also sends a testing packet to the NAT assigned address/port of the user A. Herein the NAT mapping table of the user B is updated to allow the NAT assigned address/port of the user A to transmit data to the user B. Accordingly, a bidirectional NAT traversal connection is successfully established. Even though the hole punching method can resolve some problems in NAT traversal, it cannot be applied if both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT because, as described above, a symmetric NAT assigns different NAT assigned addresses/ports according to different destinations.
- A port prediction technique is disclosed in U.S. Pat. No. 7,328,280 in order to achieve NAT traversal when both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT. Because a symmetric NAT assigns ports to its internal users at certain intervals, in the port prediction method, the user that is about to establish a connection first tests the port assignation rule of the corresponding NAT and obtain the port assignation rule of the other party through information exchange. After that, the users respectively send a plurality of testing packets to the port predicted according to the other party's port assignation rule. Theoretically, a NAT traversal connection is established through the procedure described above. However, in the present technique, a lot of prediction messages and communication time are spent for predicting the ports assigned by the NATs, and the prediction success rate cannot be ensured.
- According to an exemplary embodiment of the disclosure, a network traversal method for establishing a connection between a first endpoint and a second endpoint among a plurality of endpoints is provided. The network traversal method includes deploying an on-line server, wherein the endpoints respectively register registration information in the on-line server and keep an on-line state with the on-line server. The network traversal method also includes grouping the endpoints according to the registration information of the endpoints, wherein the first endpoint is inside a first network address translator (NAT), the second endpoint is inside a second NAT, the endpoints in the first NAT are grouped into a first group, and the endpoints in the second NAT are grouped into a second group. The network traversal method further includes determining whether there is an available connection between the endpoints grouped into the first group and the endpoints grouped into the second group, wherein if there is the available connection, the connection between the first endpoint and the second endpoint is established by using the available connection.
- According to an exemplary embodiment of the disclosure, a network communication system including a plurality of NATs, a plurality of endpoints, and an on-line server is provided. A first endpoint among the endpoints is inside a first NAT among the NATs, and a second endpoint among the endpoints is inside a second NAT among the NATs. The on-line server groups the endpoints, wherein the endpoints inside the first NAT are grouped into a first group, and the endpoints inside the second NAT are grouped into a second group. In the network communication system, the first endpoint determines whether there is an available connection between the endpoints grouped into the first group and the endpoints grouped into the second group, wherein if there is the available connection, the first endpoint establishes a connection between the first endpoint and the second endpoint by using the available connection.
- As described above, in exemplary embodiments of the disclosure, the first endpoint establishes a connection between the first endpoint and the second endpoint by using an existing connection between the two groups, so that the time, cost, and complexity of NAT traversal are all reduced.
- The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention.
-
FIG. 1 is a diagram of a network communication system according to an exemplary embodiment of the disclosure. -
FIG. 2 illustrates an example of a group and connection list according to an exemplary embodiment of the disclosure. -
FIG. 3 illustrates an example of how a connection is established according to an exemplary embodiment of the disclosure. -
FIG. 4 is a flowchart of a network traversal method according to an exemplary embodiment of the disclosure. -
FIG. 5 is a detailed flowchart of step S405 inFIG. 4 according to an exemplary embodiment of the disclosure. -
FIG. 6 is a detailed flowchart of step S413 inFIG. 4 according to an exemplary embodiment of the disclosure. - Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
-
FIG. 1 is a diagram of a network communication system according to an exemplary embodiment of the disclosure. - Referring to
FIG. 1 , the network communication system includes afirst endpoint 102, asecond endpoint 104, athird endpoint 106, afourth endpoint 108, afifth endpoint 110, a first network address translator (NAT) 122, a second NAT 124, and an on-line server 130. - The
first endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 have a network connection function supporting the Transmission Control Protocol/Internet Protocol (TCP/IP) and can transmit and receive digital contents (for example, IP phone calls, music files, video/audio files, and instant messages) through anetwork 140, wherein thenetwork 140 is the Internet constructed by using TCP/IP. - In the present exemplary embodiment, the
first endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 are all connected to thenetwork 140 in a wired mode. However, the disclosure is not limited thereto, and thefirst endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 may also be connected to thenetwork 140 respectively in a wired or wireless mode. In addition, in the present exemplary embodiment, thefirst endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 are personal computers (PCs). However, the disclosure is not limited thereto, and thefirst endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 may also be servers, personal digital assistants (PDAs), or other electronic devices that can be connected to thenetwork 140. - The
first NAT 122 and thesecond NAT 124 are used for translating private IP addresses and public IP addresses. Namely, thefirst NAT 122 and thesecond NAT 124 translate the address/port in the header of a passing IP packet into another address/port so that thefirst endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 using private IP addresses can be connected to thenetwork 140. The technique of NATs is well known to those skilled in the art therefore will not be described herein. In the present exemplary embodiment, thefirst NAT 122 and thesecond NAT 124 are both symmetric NATs. However, the disclosure is not limited thereto, and thefirst NAT 122 and thesecond NAT 124 may also be other types of NATs. - As shown in
FIG. 1 , thefirst endpoint 102, thesecond endpoint 104, and thethird endpoint 106 are in thefirst NAT 122, and thefourth endpoint 108 and thefifth endpoint 110 are inside thesecond NAT 124. Namely, thefirst endpoint 102, thesecond endpoint 104, and thethird endpoint 106 are in the domain of the first NAT122 and are connected to thenetwork 140 through the address translation of thefirst NAT 122. Meanwhile, thefourth endpoint 108 and thefifth endpoint 110 are in the domain of thesecond NAT 124 and are connected to thenetwork 140 through the address translation of thesecond NAT 124. Herein the private IP address/port used by thefirst endpoint 102 is 10.0.0.1:8000, the private IP address/port used by thesecond endpoint 104 is 10.0.0.2:8000, the private IP address/port used by thethird endpoint 106 is 10.0.0.3:8000, the private IP address/port used by thefourth endpoint 108 is 10.0.0.1:8000, the private IP address/port used by thefifth endpoint 110 is 10.0.0.2:8000, the public IP address used by thefirst NAT 122 is 140.96.178.1, and the public IP address used by thesecond NAT 124 is 140.96.178.5. - It has to be understood that even though the present exemplary embodiment is described with only two NATs and five endpoints, the disclosure is not limited thereto, and the network communication system may include any number of NATs and any number of endpoints.
- The on-
line server 130 has a network connection function supporting TCP/IP and is coupled to thenetwork 140. In the present exemplary embodiment, the on-line server 130 is a single server in a public domain. However, the disclosure is not limited thereto, and in another exemplary embodiment of the disclosure, the on-line server 130 may also be composed of multiple servers in a peer-to-peer overlay network. - In the present exemplary embodiment, the on-
line server 130 provides a registration interface such that thefirst endpoint 102, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 can respectively establish a control channel with the on-line server 130, so as to keep an on-line state. - For example, when the
first endpoint 102 establishes a connection with the on-line server 130 by using the transmission control protocol (TCP) and registers in the registration interface, the on-line server 130 records the registration information of thefirst endpoint 102, wherein the registration information includes a user account field, a user internal address/port field, a NAT type field, and a user external network address/port field. The user account field records the account of an endpoint (for example, the account of thefirst endpoint 102 is “102”), the user internal network address field records the private IP address/port of the endpoint (for example, the private IP address/port of thefirst endpoint 102 is “10.0.0.1:8000”), the NAT type field records the type of the NAT corresponding to the endpoint (for example, the type of thefirst NAT 122 corresponding to thefirst endpoint 102 is “symmetric NAT”), and the user external network address field records the public IP address/port assigned to the endpoint by the corresponding NAT (for example, the public IP address/port assigned by thefirst NAT 122 to thefirst endpoint 102 is “140.96.178.1:1111”). After thefirst endpoint 102 registers, thefirst endpoint 102 keep the connection with the on-line server 130 until thefirst endpoint 102 terminates the connection with the on-line server 130. Similarly, in the present example, thesecond endpoint 104, thethird endpoint 106, thefourth endpoint 108, and thefifth endpoint 110 also register and keep the connection with the on-line server 130 through the method described above. - In the present exemplary embodiment, the on-
line server 130 groups the registered endpoints and stores a group and connection list for recording the information of the endpoints registered to the on-line server 130. For example, the on-line server 130 groups the endpoints according to the corresponding NATs thereof and records any peer-to-peer direct connection between the registered endpoints. -
FIG. 2 illustrates an example of a group and connection list according to an exemplary embodiment of the disclosure. - Referring to
FIG. 2 , the group andconnection list 200 includes agroup name field 202, agroup type field 204, auser name field 206, auser contact field 208, a connectiongroup name field 210, and a connectionuser name field 212. - The
group name field 202 records the names of the groups corresponding to the registered endpoints, wherein the on-line server 130 uses the public IP addresses of the NATs as the names of the groups. - The
group type field 204 records the types of the NATs corresponding to the registered endpoints. - The
user name field 206 records the accounts of the registered endpoints. - The
user contact field 208 records the private IP addresses/ports of the registered endpoints. - The connection
group name field 210 records the names of the connected groups if the registered endpoints have established peer-to-peer direct connections. - The connection
user name field 212 records the accounts of the connected endpoints when the registered endpoints have established peer-to-peer direct connections. - For example, the on-
line server 130 groups thefirst endpoint 102, thesecond endpoint 104, and thethird endpoint 106 into a first group and thefourth endpoint 108 and thefifth endpoint 110 into a second group according to the NAT corresponding to each endpoint, wherein the name of the first group is “140.96.178.1”, and the name of the second group is “140.96.178.5”. Accordingly, the information of each endpoint is recorded in the group andconnection list 200. In particular, assuming that a peer-to-peer direct connection has been established between thethird endpoint 106 in the first group and thefourth endpoint 108 in the second group through the port prediction method described above, the information of thethird endpoint 106 in the group andconnection list 200 contains the information of the peer-to-peer direct connection between thethird endpoint 106 and thefourth endpoint 108 in the second group, and the information of thefourth endpoint 108 in the group andconnection list 200 contains the information of the peer-to-peer direct connection between thefourth endpoint 108 and thethird endpoint 106 in the first group. - Particularly, in the present exemplary embodiment, when an endpoint (i.e., a initiating endpoint) in the network communication system is about to traverse NATs to connect with another endpoint (i.e., an invited endpoint), the initiating endpoint and the invited endpoint exchange their candidate address information and the corresponding NAT type information with each other through the on-
line server 130. If both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT, the initiating endpoint sends an inquiry message to the on-line server 130 to inquiry whether there is a peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, and if there is such a peer-to-peer direct connection, the initiating endpoint tries to establish a connection with the invited endpoint by using the existing peer-to-peer direct connection. -
FIG. 3 illustrates an example of how a connection is established according to an exemplary embodiment of the disclosure. - Referring to
FIG. 3 , it is assumed that a peer-to-peer direct connection has been established between thethird endpoint 106 in the first group and thefourth endpoint 108 in the second group (S302). When thefirst endpoint 102 is about to establish a connection with thefifth endpoint 110, thefirst endpoint 102 sends a connection request and a candidate address information to the on-line server 130 (S304). The on-line server 130 sends the connection request and the candidate address information of thefirst endpoint 102 and the corresponding NAT type information to the fifth endpoint 110 (S306). Similarly, after thefifth endpoint 110 receives the connection request and the candidate address information of thefirst endpoint 102 from the on-line server 130, thefifth endpoint 110 sends its own candidate address information to the on-line server 130 (S308). The on-line server 130 sends the candidate address information of thefifth endpoint 110 and the corresponding NAT type information to the first endpoint 102 (S310). Accordingly, thefirst endpoint 102 and thefifth endpoint 110 get to know that the other party is inside a symmetric NAT. - After that, the
first endpoint 102 sends an inquiry message to the on-line server 130 to inquiry the connection list of the same groups in the group and connection list 200 (S312) and receives a response message from the on-line server 130 (S314) to determine whether there is already a peer-to-peer direct connection between an endpoint in the group (i.e., the first group) of thefirst endpoint 102 and an endpoint in the group (i.e., the second group) of the fifth endpoint. - As described above, since there is already a peer-to-peer direct connection between the
third endpoint 106 in the first group and thefourth endpoint 108 in the second group, thefirst endpoint 102 sends a connection authorization request to the third endpoint 106 (S316). If thethird endpoint 106 approves the connection authorization request, thethird endpoint 106 passes the connection authorization request to the fourth endpoint 108 (S318). If thefourth endpoint 108 approves the connection authorization request, thefourth endpoint 108 notifies the fifth endpoint 110 (S320). After that, if thefifth endpoint 110 approves the connection authorization request, thefifth endpoint 110 sends an approved acknowledgement response to the fourth endpoint 108 (S322). Thefourth endpoint 108 passes the approved acknowledgement response to the third endpoint 106 (S324), and thethird endpoint 106 passes the approved acknowledgement response to the first endpoint 102 (S326). Finally, the connection between thefirst endpoint 102 and thefifth endpoint 110 is established by using the peer-to-peer direct connection between thethird endpoint 106 and the fourth endpoint 108 (S328). - As described above, because there is already a peer-to-peer direct connection between the endpoints in the
first NAT 122 and the endpoints in thesecond NAT 124, the connection between thefirst endpoint 102 and thefifth endpoint 110 can be established through the connection reusing mechanism illustrated inFIG. 3 , so that it is not needed to execute other NAT traversal techniques and the cost can be reduced. - It should be mentioned that in the example illustrated in
FIG. 3 , thethird endpoint 106 and thefourth endpoint 108 send the approved acknowledgement response to thefirst endpoint 102 to allow thefirst endpoint 102 to use the peer-to-peer direct connection between thethird endpoint 106 and thefourth endpoint 108. However, in another example, a requested endpoint may reject the connection authorization request from another endpoint according to the bandwidth usage status thereof. For example, when thefirst endpoint 102 sends a connection authorization request to thethird endpoint 106, thethird endpoint 106 rejects the connection authorization request of thefirst endpoint 102 if the number of endpoints connected through thethird endpoint 106 has exceeded a connection threshold. For example, in the present exemplary embodiment, the connection threshold is set to 5, however, the disclosure is not limited thereto, any suitable value can be as the connection threshold. Accordingly, certain connection quality of the requested endpoint can be assured when the requested endpoint shares its established peer-to-peer direct connection with other endpoints. - In addition, in the present exemplary embodiment, the requested endpoint has to be able to identify the destination of a received packet when the requested endpoint allows other endpoints to use the established peer-to-peer direct connection thereof. Thus, in the present exemplary embodiment, the actual origin address and the actual destination address are included in an IP packet so that the packet can be successfully transmitted.
-
FIG. 4 is a flowchart of a network traversal method according to an exemplary embodiment of the disclosure. - Referring to
FIG. 4 , first, in step S401, an initiating endpoint (for example, thefirst endpoint 102 inFIG. 3 ) and an invited endpoint (for example, thefifth endpoint 110 inFIG. 3 ) exchange the candidate address information and corresponding NAT information with each other. - In step S403, the initiating endpoint determines whether both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT according to the exchanged information.
- If it is determined in step S403 that both NATs are symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT, in step S405, whether there is an available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to. Otherwise, in step S407, the initiating endpoint traverses the NATs by using a second connection mode to establish a peer-to-peer direct connection with the invited endpoint. Herein the second connection mode may be a hole punching method (mode) or other suitable connection methods.
-
FIG. 5 is a detailed flowchart of step S405 inFIG. 4 according to an exemplary embodiment of the disclosure. - Referring to
FIG. 5 , in step S501, the initiating endpoint determines whether there is a peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to according to the group andconnection list 200 in the on-line server 130. - If the initiating endpoint determines in step S501 that there is no peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S511, it is determined that there is no available connection between the group of the initiating endpoint and the group of the invited endpoint.
- If the initiating endpoint determines in step S501 that there is a peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S503, the initiating endpoint sends a connection authorization request to the endpoints corresponding to the peer-to-peer direct connection (i.e., the endpoint having the peer-to-peer direct connection), and in step S505, the initiating endpoint determines whether an approved acknowledgement response is received from the endpoints corresponding to the peer-to-peer direct connection.
- If the approved acknowledgement response is received, in step S507, the peer-to-peer direct connection is identified as an available connection. Otherwise, in step S509, whether there is other peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to is determined. If there is still other peer-to-peer direct connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, step S503 is executed. Otherwise, step S511 is executed.
- Referring to
FIG. 4 again, if it is determined in step S405 that there is the available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S409, the initiating endpoint establishes the connection between the initiating endpoint and the invited endpoint by using the available connection. - If it is determined in step S405 that there is no available connection between the group that the initiating endpoint belongs to and the group that the invited endpoint belongs to, in step S411, the initiating endpoint uses a first connection mode to traverse the NATs so as to establish a peer-to-peer direct connection with the invited endpoint, and in step S413, the initiating endpoint and the invited endpoint report the peer-to-peer direct connection information to the on-
line server 130 to update the group andconnection list 200. Namely, if there is no peer-to-peer direct connection between thethird endpoint 106 and thefourth endpoint 108 in the example illustrated inFIG. 3 , thefirst endpoint 102 and thefifth endpoint 110 traverse the NATs by using the first connection mode to establish the peer-to-peer direct connection between thefirst endpoint 102 and thefifth endpoint 110 and update the peer-to-peer direct connection information in the group andconnection list 200 so that subsequently the peer-to-peer direct connection can be used by other endpoints. Similarly, the first connection mode herein may be the port prediction method (mode) or other suitable connection methods. -
FIG. 6 is a detailed flowchart of step S413 inFIG. 4 according to an exemplary embodiment of the disclosure. - Referring to
FIG. 6 , in step S601, the initiating endpoint and the invited endpoint respectively send the connection information of the established peer-to-peer direct connection to the on-line server 130. In the present exemplary embodiment, the connection information contains a group name, a user name, a connection group name, and a connection user name in sequence. For example, in the example illustrated inFIG. 3 , if thethird endpoint 106 does not allow thefirst endpoint 102 to reuse the peer-to-peer direct connection between thethird endpoint 106 and thefourth endpoint 108, and after thefirst endpoint 102 and thefifth endpoint 110 establish the peer-to-peer direct connection by using the first mode through foregoing step S411, thefirst endpoint 102 sends the connection information containing {140.96.178.1, 102, 140.96.178.5, 110} to the on-line server 130, and thefifth endpoint 110 transfers the connection information containing {140.96.178.5, 110, 140.96.178.1, 102} to the on-line server 130. - Next, in step S603, the on-
line server 130 receives the connection information and updates the group andconnection list 200 according to the connection information. Finally, in step S605, the on-line server 130 sends an approved acknowledgement response to the initiating endpoint and the invited endpoint. - It should be mentioned that in the step of determining whether there is an available connection illustrated in
FIG. 5 , whether the connection reusing mechanism illustrated inFIG. 3 is executed is only determined (i.e., step S409) when the corresponding NATs of the initiating endpoint and the invited endpoint are both symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT. However, the disclosure is not limited thereto, and in another exemplary embodiment of the disclosure, the step of deter lining the types of the NATs is omitted, and whether the connection reusing mechanism can be executed is directly determined. In other words, the application of the disclosure is not limited to such situations that the NATs corresponding to the initiating endpoint and the invited endpoint are both symmetric NATs or one of them is a port restricted cone NAT and the other one is a symmetric NAT. Instead, the connection reusing mechanism described above can be applied to the traversal of any other types of NATs. - As described above, in exemplary embodiments of the disclosure, NAT traversal is accomplished by using an established peer-to-peer direct connection, so that the time, cost, and complexity for traversing NATs are greatly reduced. In addition, because the transmitted packets belong to the same domain, both the transmission time and the packet cost are greatly reduced. Moreover, in the disclosure, the endpoint having an established peer-to-peer direct connection can control the number of endpoints sharing the peer-to-peer direct connection according to the bandwidth quality thereof, so that data flow can be distributed and performance bottleneck is avoided.
- It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the disclosure without departing from the scope or spirit of the invention. In view of the foregoing, it is intended that the disclosure cover modifications and variations of this invention provided they fall within the scope of the following claims and their equivalents.
Claims (18)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98129547 | 2009-09-02 | ||
TW98129547A | 2009-09-02 | ||
TW098129547A TWI408936B (en) | 2009-09-02 | 2009-09-02 | Network traversal method and network communication system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110055392A1 true US20110055392A1 (en) | 2011-03-03 |
US8055771B2 US8055771B2 (en) | 2011-11-08 |
Family
ID=43626493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/604,403 Active US8055771B2 (en) | 2009-09-02 | 2009-10-23 | Network traversal method for establishing connection between two endpoints and network communication system |
Country Status (2)
Country | Link |
---|---|
US (1) | US8055771B2 (en) |
TW (1) | TWI408936B (en) |
Cited By (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153802A1 (en) * | 2009-12-17 | 2011-06-23 | Steiner Moritz M | Localization of peer to peer traffic |
US20110219123A1 (en) * | 2010-03-05 | 2011-09-08 | Bo Yang | Network firewall and nat traversal for tcp and related protocols |
US20110289227A1 (en) * | 2010-05-18 | 2011-11-24 | Bruce Hsu | Method of multi-terminal connection traversing nat without third party interfacing |
US20120066311A1 (en) * | 2010-09-09 | 2012-03-15 | I O Interconnect, Ltd. | Network connection establishment and data transmission method |
US20120072548A1 (en) * | 2010-09-21 | 2012-03-22 | Taesung Kim | System and Method for Web Hosting Behind NATs |
CN102404227A (en) * | 2011-12-09 | 2012-04-04 | 徐州医学院 | Hierarchical routing system crossing internal network |
US20120158861A1 (en) * | 2010-12-16 | 2012-06-21 | Palo Alto Research Center Incorporated | Sip-based custodian routing in content-centric networks |
US20120260328A1 (en) * | 2011-04-08 | 2012-10-11 | Ram Mohan Ravindranath | Method and apparatus to scale authenticated firewall traversal using trusted routing point |
US20130227019A1 (en) * | 2010-04-07 | 2013-08-29 | Apple Inc. | Apparatus and method for inviting users to online sessions |
US8588233B1 (en) * | 2010-12-31 | 2013-11-19 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
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 |
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 |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
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 |
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 |
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 |
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 |
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 |
US9374304B2 (en) | 2014-01-24 | 2016-06-21 | Palo Alto Research Center Incorporated | End-to end route tracing over a named-data 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 |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
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 |
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 |
US9400800B2 (en) | 2012-11-19 | 2016-07-26 | Palo Alto Research Center Incorporated | Data transport by named content synchronization |
US9401864B2 (en) | 2013-10-31 | 2016-07-26 | Palo Alto Research Center Incorporated | Express header for packets with hierarchically structured variable-length identifiers |
US9407432B2 (en) | 2014-03-19 | 2016-08-02 | Palo Alto Research Center Incorporated | System and method for efficient and secure distribution of digital content |
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 |
US9426113B2 (en) | 2014-06-30 | 2016-08-23 | Palo Alto Research Center Incorporated | System and method for managing devices over a content centric network |
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 |
US9451032B2 (en) | 2014-04-10 | 2016-09-20 | Palo Alto Research Center Incorporated | System and method for simple service discovery in content-centric networks |
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 |
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 |
US9462006B2 (en) | 2015-01-21 | 2016-10-04 | Palo Alto Research Center Incorporated | Network-layer application-specific trust model |
US9467377B2 (en) | 2014-06-19 | 2016-10-11 | Palo Alto Research Center Incorporated | Associating consumer states with interests in 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 |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact names |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
US9473405B2 (en) | 2014-03-10 | 2016-10-18 | Palo Alto Research Center Incorporated | Concurrent hashes and sub-hashes on data streams |
US9497282B2 (en) | 2014-08-27 | 2016-11-15 | Palo Alto Research Center Incorporated | Network coding for content-centric network |
US9503358B2 (en) | 2013-12-05 | 2016-11-22 | Palo Alto Research Center Incorporated | Distance-based routing in an information-centric network |
US9503365B2 (en) | 2014-08-11 | 2016-11-22 | Palo Alto Research Center Incorporated | Reputation-based instruction processing over an information 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 |
US9531679B2 (en) | 2014-02-06 | 2016-12-27 | Palo Alto Research Center Incorporated | Content-based transport security for distributed producers |
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 |
US9537719B2 (en) | 2014-06-19 | 2017-01-03 | Palo Alto Research Center Incorporated | Method and apparatus for deploying a minimal-cost CCN topology |
US9535968B2 (en) | 2014-07-21 | 2017-01-03 | Palo Alto Research Center Incorporated | System for distributing nameless objects using self-certifying names |
US9553812B2 (en) | 2014-09-09 | 2017-01-24 | Palo Alto Research Center Incorporated | Interest keep alives at intermediate routers in a CCN |
US9552493B2 (en) | 2015-02-03 | 2017-01-24 | Palo Alto Research Center Incorporated | Access control framework for information centric networking |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US9590887B2 (en) | 2014-07-18 | 2017-03-07 | Cisco Systems, Inc. | Method and system for keeping interest alive in a content centric network |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
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 |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9626413B2 (en) | 2014-03-10 | 2017-04-18 | Cisco Systems, Inc. | System and method for ranking content popularity in a content-centric network |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US9686194B2 (en) | 2009-10-21 | 2017-06-20 | Cisco Technology, Inc. | Adaptive multi-interface use for content networking |
US9699198B2 (en) | 2014-07-07 | 2017-07-04 | Cisco Technology, Inc. | System and method for parallel secure content bootstrapping in content-centric networks |
US9716622B2 (en) | 2014-04-01 | 2017-07-25 | Cisco Technology, Inc. | System and method for dynamic name configuration in content-centric networks |
US9729662B2 (en) | 2014-08-11 | 2017-08-08 | Cisco Technology, Inc. | Probabilistic lazy-forwarding technique without validation in a content centric network |
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 |
TWI595765B (en) * | 2015-10-22 | 2017-08-11 | 財團法人工業技術研究院 | Method and communication device for network address translation traversal |
US9736316B2 (en) | 2014-04-17 | 2017-08-15 | Institute For Information Industry | Network address translation traversal system and method for real-time communications |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9800637B2 (en) | 2014-08-19 | 2017-10-24 | Cisco Technology, Inc. | System and method for all-in-one content stream in content-centric networks |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US9832291B2 (en) | 2015-01-12 | 2017-11-28 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US9832123B2 (en) | 2015-09-11 | 2017-11-28 | Cisco Technology, Inc. | Network named fragments in a content centric network |
US9836540B2 (en) | 2014-03-04 | 2017-12-05 | Cisco Technology, Inc. | System and method for direct storage access in a content-centric network |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US9882964B2 (en) | 2014-08-08 | 2018-01-30 | Cisco Technology, Inc. | Explicit strategy feedback in name-based forwarding |
US9912776B2 (en) | 2015-12-02 | 2018-03-06 | Cisco Technology, Inc. | Explicit content deletion commands in a content centric network |
US9916457B2 (en) | 2015-01-12 | 2018-03-13 | Cisco Technology, Inc. | Decoupled name security binding for CCN objects |
US9916601B2 (en) | 2014-03-21 | 2018-03-13 | Cisco Technology, Inc. | Marketplace for presenting advertisements in a scalable data broadcasting system |
US9930146B2 (en) | 2016-04-04 | 2018-03-27 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
US9935791B2 (en) | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests 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 |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US9977809B2 (en) | 2015-09-24 | 2018-05-22 | Cisco Technology, Inc. | Information and data framework in a content centric network |
US9978025B2 (en) | 2013-03-20 | 2018-05-22 | Cisco Technology, Inc. | Ordered-element naming for name-based packet forwarding |
US9986034B2 (en) | 2015-08-03 | 2018-05-29 | Cisco Technology, Inc. | Transferring state in content centric network stacks |
US9992281B2 (en) | 2014-05-01 | 2018-06-05 | Cisco Technology, Inc. | Accountable content stores for information centric networks |
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 |
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 |
US10003507B2 (en) | 2016-03-04 | 2018-06-19 | Cisco Technology, Inc. | Transport session state protocol |
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 |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
US10021222B2 (en) | 2015-11-04 | 2018-07-10 | Cisco Technology, Inc. | Bit-aligned header compression for CCN messages using dictionary |
US10027578B2 (en) | 2016-04-11 | 2018-07-17 | Cisco Technology, Inc. | Method and system for routable prefix queries 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 |
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 |
US10038633B2 (en) | 2016-03-04 | 2018-07-31 | Cisco Technology, Inc. | Protocol to query for historical network information 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 |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US10063414B2 (en) | 2016-05-13 | 2018-08-28 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US10067948B2 (en) | 2016-03-18 | 2018-09-04 | Cisco Technology, Inc. | Data deduping in content centric networking manifests |
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 |
US10075402B2 (en) | 2015-06-24 | 2018-09-11 | Cisco Technology, Inc. | Flexible command and control in content centric networks |
US10075401B2 (en) | 2015-03-18 | 2018-09-11 | Cisco Technology, Inc. | Pending interest table behavior |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US10078062B2 (en) | 2015-12-15 | 2018-09-18 | Palo Alto Research Center Incorporated | Device health estimation by combining contextual information with sensor data |
US10084764B2 (en) | 2016-05-13 | 2018-09-25 | Cisco Technology, Inc. | System for a secure encryption proxy in a content centric network |
US10089655B2 (en) | 2013-11-27 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for scalable data broadcasting |
US10089651B2 (en) | 2014-03-03 | 2018-10-02 | Cisco Technology, Inc. | Method and apparatus for streaming advertisements in a scalable data broadcasting system |
US10091330B2 (en) | 2016-03-23 | 2018-10-02 | Cisco Technology, Inc. | Interest scheduling by an information and data framework in a content centric network |
US10097521B2 (en) | 2015-11-20 | 2018-10-09 | Cisco Technology, Inc. | Transparent encryption in a content centric network |
US10098051B2 (en) | 2014-01-22 | 2018-10-09 | Cisco Technology, Inc. | Gateways and routing in software-defined manets |
US10097346B2 (en) | 2015-12-09 | 2018-10-09 | Cisco Technology, Inc. | Key catalogs in a content centric network |
US10101801B2 (en) | 2013-11-13 | 2018-10-16 | Cisco Technology, Inc. | Method and apparatus for prefetching content in a data stream |
US10103989B2 (en) | 2016-06-13 | 2018-10-16 | Cisco Technology, Inc. | Content object return messages in a content centric network |
US10116605B2 (en) | 2015-06-22 | 2018-10-30 | Cisco Technology, Inc. | Transport stack name scheme and identity management |
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 |
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 |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration 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 |
US10172068B2 (en) | 2014-01-22 | 2019-01-01 | Cisco Technology, Inc. | Service-oriented routing in software-defined MANETs |
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 |
US10212248B2 (en) | 2016-10-03 | 2019-02-19 | Cisco Technology, Inc. | Cache management on high availability routers 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 |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US10243851B2 (en) | 2016-11-21 | 2019-03-26 | Cisco Technology, Inc. | System and method for forwarder connection information in a content centric network |
US10257271B2 (en) | 2016-01-11 | 2019-04-09 | Cisco Technology, Inc. | Chandra-Toueg consensus in a content centric network |
US10263965B2 (en) | 2015-10-16 | 2019-04-16 | Cisco Technology, Inc. | Encrypted CCNx |
US10305865B2 (en) | 2016-06-21 | 2019-05-28 | Cisco Technology, Inc. | Permutation-based content encryption with manifests in a content centric network |
US10305864B2 (en) | 2016-01-25 | 2019-05-28 | Cisco Technology, Inc. | Method and system for interest encryption 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 |
US10320760B2 (en) | 2016-04-01 | 2019-06-11 | Cisco Technology, Inc. | Method and system for mutating and caching content 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 |
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 |
US10355999B2 (en) | 2015-09-23 | 2019-07-16 | Cisco Technology, Inc. | Flow control with network named fragments |
US10404450B2 (en) | 2016-05-02 | 2019-09-03 | Cisco Technology, Inc. | Schematized access control in a content centric network |
US10425503B2 (en) | 2016-04-07 | 2019-09-24 | Cisco Technology, Inc. | Shared pending interest table in a content centric network |
US10430839B2 (en) | 2012-12-12 | 2019-10-01 | Cisco Technology, Inc. | Distributed advertisement insertion in content-centric networks |
US10447805B2 (en) | 2016-10-10 | 2019-10-15 | Cisco Technology, Inc. | Distributed consensus in a content centric network |
US10454820B2 (en) | 2015-09-29 | 2019-10-22 | Cisco Technology, Inc. | System and method for stateless information-centric networking |
CN110636039A (en) * | 2019-07-31 | 2019-12-31 | 浙江工业大学 | Intelligent household encryption control management method based on intranet penetration technology |
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 |
US10610144B2 (en) | 2015-08-19 | 2020-04-07 | Palo Alto Research Center Incorporated | Interactive remote patient monitoring and condition management intervention system |
US10701038B2 (en) | 2015-07-27 | 2020-06-30 | Cisco Technology, Inc. | Content negotiation 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 |
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 |
US11277379B2 (en) * | 2020-05-12 | 2022-03-15 | Citrix Systems, Inc. | Modification of application-provided turn servers |
US20220224670A1 (en) * | 2019-06-24 | 2022-07-14 | Huawei Technologies Co., Ltd. | Communication method and related device |
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 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012092670A1 (en) * | 2011-01-06 | 2012-07-12 | Research In Motion Limited | System and method for enabling a peer-to-peer (p2p) connection |
TWI539296B (en) | 2011-12-12 | 2016-06-21 | 和沛科技股份有限公司 | Method for triggering computing process for migration location of virtual machines and application program for the same |
TWI493924B (en) * | 2013-04-10 | 2015-07-21 | D Link Corp | Through the two network devices to help complete the STUN technology network system and its methods |
TWI508495B (en) * | 2013-04-10 | 2015-11-11 | D Link Corp | Method of exchanging distributed network messages |
US9826044B2 (en) * | 2013-10-23 | 2017-11-21 | Qualcomm Incorporated | Peer-to-peer communication for symmetric NAT |
US11310360B2 (en) | 2019-12-20 | 2022-04-19 | Clear Labs Israel Ltd. | System and methods thereof for real-time fraud detection of a telephone call transaction |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050259637A1 (en) * | 2004-05-21 | 2005-11-24 | Chu Thomas P | Method for optimal path selection in traversal of packets through network address translators |
US20060182100A1 (en) * | 2005-02-11 | 2006-08-17 | Microsoft Corporation | Automated NAT traversal for peer-to-peer networks |
US20070076729A1 (en) * | 2005-10-04 | 2007-04-05 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
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 |
US7454510B2 (en) * | 2003-05-29 | 2008-11-18 | Microsoft Corporation | Controlled relay of media streams across network perimeters |
US20080298395A1 (en) * | 2007-05-30 | 2008-12-04 | Bela Ban | Channel bundling |
US20090097477A1 (en) * | 2006-06-22 | 2009-04-16 | Huawei Technologies Co., Ltd. | Method and system for realizing media stream interaction and media gateway controller and media gateway |
US20090228593A1 (en) * | 2008-03-05 | 2009-09-10 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US20090323559A1 (en) * | 2008-06-26 | 2009-12-31 | D-Link Corporation | Method for predicting a port number of a NAT equipment based on results of inquiring the STUN server twice |
US20100146126A1 (en) * | 2008-12-04 | 2010-06-10 | Microsoft Corporation | Peer-to-Peer Network Address Translator (NAT) Traversal Techniques |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234358B2 (en) * | 2002-08-30 | 2012-07-31 | Inpro Network Facility, Llc | Communicating with an entity inside a private network using an existing connection to initiate communication |
US20060072569A1 (en) * | 2004-10-04 | 2006-04-06 | Wizzysoft Corporation | Network address translation protocol for transmission control protocol connections |
TWI260880B (en) | 2005-04-22 | 2006-08-21 | Univ Nat Taipei Technology | Peer-to-Peer communication method capable of penetrating fire wall |
-
2009
- 2009-09-02 TW TW098129547A patent/TWI408936B/en active
- 2009-10-23 US US12/604,403 patent/US8055771B2/en active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7454510B2 (en) * | 2003-05-29 | 2008-11-18 | Microsoft Corporation | Controlled relay of media streams across network perimeters |
US20050259637A1 (en) * | 2004-05-21 | 2005-11-24 | Chu Thomas P | Method for optimal path selection in traversal of packets through network address translators |
US7620033B2 (en) * | 2004-05-21 | 2009-11-17 | Alcatel-Lucent Usa Inc. | Method for optimal path selection in traversal of packets through network address translators |
US20060182100A1 (en) * | 2005-02-11 | 2006-08-17 | Microsoft Corporation | Automated NAT traversal for peer-to-peer networks |
US20070076729A1 (en) * | 2005-10-04 | 2007-04-05 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US20090097477A1 (en) * | 2006-06-22 | 2009-04-16 | Huawei Technologies Co., Ltd. | Method and system for realizing media stream interaction and media gateway controller and media gateway |
US20080298395A1 (en) * | 2007-05-30 | 2008-12-04 | Bela Ban | Channel bundling |
US20090228593A1 (en) * | 2008-03-05 | 2009-09-10 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
US20090323559A1 (en) * | 2008-06-26 | 2009-12-31 | D-Link Corporation | Method for predicting a port number of a NAT equipment based on results of inquiring the STUN server twice |
US20100146126A1 (en) * | 2008-12-04 | 2010-06-10 | Microsoft Corporation | Peer-to-Peer Network Address Translator (NAT) Traversal Techniques |
Cited By (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10104041B2 (en) | 2008-05-16 | 2018-10-16 | Cisco Technology, Inc. | Controlling the spread of interests and content in a content centric network |
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 |
US9686194B2 (en) | 2009-10-21 | 2017-06-20 | Cisco Technology, Inc. | Adaptive multi-interface use for content networking |
US20110153802A1 (en) * | 2009-12-17 | 2011-06-23 | Steiner Moritz M | Localization of peer to peer traffic |
US8645534B2 (en) | 2009-12-17 | 2014-02-04 | Alcatel Lucent | Localization of peer to peer traffic |
US8504682B2 (en) * | 2009-12-17 | 2013-08-06 | Alcatel Lucent | Localization of peer to peer traffic |
US20110219123A1 (en) * | 2010-03-05 | 2011-09-08 | Bo Yang | Network firewall and nat traversal for tcp and related protocols |
US9654551B2 (en) * | 2010-04-07 | 2017-05-16 | Apple Inc. | Apparatus and method for inviting users to online sessions |
US20130227019A1 (en) * | 2010-04-07 | 2013-08-29 | Apple Inc. | Apparatus and method for inviting users to online sessions |
US20110289227A1 (en) * | 2010-05-18 | 2011-11-24 | Bruce Hsu | Method of multi-terminal connection traversing nat without third party interfacing |
US20120066311A1 (en) * | 2010-09-09 | 2012-03-15 | I O Interconnect, Ltd. | Network connection establishment and data transmission method |
US8606884B2 (en) * | 2010-09-21 | 2013-12-10 | Taesung Kim | System and method for web hosting behind NATs |
US20120072548A1 (en) * | 2010-09-21 | 2012-03-22 | Taesung Kim | System and Method for Web Hosting Behind NATs |
US20120158861A1 (en) * | 2010-12-16 | 2012-06-21 | Palo Alto Research Center Incorporated | Sip-based custodian routing in content-centric networks |
US9264459B2 (en) * | 2010-12-16 | 2016-02-16 | Palo Alto Research Center Incorporated | SIP-based custodian routing in content-centric networks |
US20170111314A1 (en) * | 2010-12-31 | 2017-04-20 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US20140082217A1 (en) * | 2010-12-31 | 2014-03-20 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US9137196B2 (en) * | 2010-12-31 | 2015-09-15 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US9876760B2 (en) * | 2010-12-31 | 2018-01-23 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using turn |
US10079803B2 (en) * | 2010-12-31 | 2018-09-18 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US20150381566A1 (en) * | 2010-12-31 | 2015-12-31 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US9531667B2 (en) * | 2010-12-31 | 2016-12-27 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US8588233B1 (en) * | 2010-12-31 | 2013-11-19 | Akamai Technologies, Inc. | Peer-to-peer connection establishment using TURN |
US8776202B2 (en) * | 2011-04-08 | 2014-07-08 | Cisco Technology, Inc. | Method and apparatus to scale authenticated firewall traversal using trusted routing point |
US20120260328A1 (en) * | 2011-04-08 | 2012-10-11 | Ram Mohan Ravindranath | Method and apparatus to scale authenticated firewall traversal using trusted routing point |
US9094373B2 (en) | 2011-04-08 | 2015-07-28 | Cisco Technology, Inc. | Method and apparatus to scale authenticated firewall traversal using trusted routing point |
CN102404227B (en) * | 2011-12-09 | 2014-06-18 | 徐州医学院 | Hierarchical routing system crossing internal network |
CN102404227A (en) * | 2011-12-09 | 2012-04-04 | 徐州医学院 | Hierarchical routing system crossing internal network |
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 |
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 |
US9276840B2 (en) | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
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 |
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 |
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 |
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 |
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 |
US9954678B2 (en) | 2014-02-06 | 2018-04-24 | Cisco Technology, Inc. | Content-based transport security |
US9531679B2 (en) | 2014-02-06 | 2016-12-27 | Palo Alto Research Center Incorporated | Content-based transport security for distributed producers |
US9678998B2 (en) | 2014-02-28 | 2017-06-13 | Cisco Technology, Inc. | Content name resolution for information centric networking |
US10706029B2 (en) | 2014-02-28 | 2020-07-07 | 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 |
US10445380B2 (en) | 2014-03-04 | 2019-10-15 | 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 |
US10075521B2 (en) | 2014-04-07 | 2018-09-11 | Cisco Technology, Inc. | Collection synchronization using equality matched network names |
US9390289B2 (en) | 2014-04-07 | 2016-07-12 | Palo Alto Research Center Incorporated | Secure collection synchronization using matched network names |
US9473576B2 (en) | 2014-04-07 | 2016-10-18 | Palo Alto Research Center Incorporated | Service discovery using collection synchronization with exact 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 |
US9736316B2 (en) | 2014-04-17 | 2017-08-15 | Institute For Information Industry | Network address translation traversal system and method for real-time communications |
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 |
US10158656B2 (en) | 2014-05-22 | 2018-12-18 | Cisco Technology, 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 |
US9516144B2 (en) | 2014-06-19 | 2016-12-06 | Palo Alto Research Center Incorporated | Cut-through forwarding of CCNx message fragments with IP encapsulation |
US9467377B2 (en) | 2014-06-19 | 2016-10-11 | Palo Alto Research Center Incorporated | Associating consumer states with interests in a content-centric network |
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 |
US9959156B2 (en) | 2014-07-17 | 2018-05-01 | Cisco Technology, Inc. | Interest return control message |
US10237075B2 (en) | 2014-07-17 | 2019-03-19 | Cisco Technology, Inc. | Reconstructable content objects |
US9621354B2 (en) | 2014-07-17 | 2017-04-11 | Cisco Systems, Inc. | Reconstructable content objects |
US9929935B2 (en) | 2014-07-18 | 2018-03-27 | Cisco Technology, Inc. | Method and system for keeping interest alive in 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 |
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 |
US10305968B2 (en) | 2014-07-18 | 2019-05-28 | Cisco Technology, Inc. | Reputation-based strategy for forwarding and responding to interests over 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 |
US10367871B2 (en) | 2014-08-19 | 2019-07-30 | 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 |
US11314597B2 (en) | 2014-09-03 | 2022-04-26 | 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 |
US10715634B2 (en) | 2014-10-23 | 2020-07-14 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
US10069933B2 (en) | 2014-10-23 | 2018-09-04 | Cisco Technology, Inc. | System and method for creating virtual interfaces based on network characteristics |
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 |
US9590948B2 (en) | 2014-12-15 | 2017-03-07 | Cisco Systems, Inc. | CCN routing using hardware-assisted hash tables |
US10237189B2 (en) | 2014-12-16 | 2019-03-19 | Cisco Technology, Inc. | System and method for distance-based interest forwarding |
US9846881B2 (en) | 2014-12-19 | 2017-12-19 | Palo Alto Research Center Incorporated | Frugal user engagement help systems |
US9473475B2 (en) | 2014-12-22 | 2016-10-18 | Palo Alto Research Center Incorporated | Low-cost authenticated signing delegation in content centric networking |
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 |
US9660825B2 (en) | 2014-12-24 | 2017-05-23 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US10091012B2 (en) | 2014-12-24 | 2018-10-02 | Cisco Technology, Inc. | System and method for multi-source multicasting in content-centric networks |
US9954795B2 (en) | 2015-01-12 | 2018-04-24 | Cisco Technology, Inc. | Resource allocation using CCN manifests |
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 |
US10440161B2 (en) | 2015-01-12 | 2019-10-08 | Cisco Technology, Inc. | Auto-configurable transport stack |
US9602596B2 (en) | 2015-01-12 | 2017-03-21 | Cisco Systems, Inc. | Peer-to-peer sharing in a content centric network |
US9946743B2 (en) | 2015-01-12 | 2018-04-17 | Cisco Technology, Inc. | Order encoded manifests 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 |
US10419345B2 (en) | 2015-09-11 | 2019-09-17 | Cisco Technology, Inc. | Network named fragments in a content centric network |
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 |
TWI595765B (en) * | 2015-10-22 | 2017-08-11 | 財團法人工業技術研究院 | Method and communication device for network address translation traversal |
US10129209B2 (en) | 2015-10-22 | 2018-11-13 | Industrial Technology Research Institute | Method and communication device for network address translation traversal |
US10129230B2 (en) | 2015-10-29 | 2018-11-13 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9794238B2 (en) | 2015-10-29 | 2017-10-17 | Cisco Technology, Inc. | System for key exchange in a content centric network |
US9807205B2 (en) | 2015-11-02 | 2017-10-31 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary |
US10009446B2 (en) | 2015-11-02 | 2018-06-26 | Cisco Technology, Inc. | Header compression for CCN messages using dictionary learning |
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 |
US10681018B2 (en) | 2015-11-20 | 2020-06-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 |
US10581967B2 (en) | 2016-01-11 | 2020-03-03 | 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 |
US10051071B2 (en) | 2016-03-04 | 2018-08-14 | Cisco Technology, Inc. | Method and system for collecting historical network information in a content centric network |
US10469378B2 (en) | 2016-03-04 | 2019-11-05 | Cisco Technology, Inc. | Protocol to query for historical network information 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 |
US9832116B2 (en) | 2016-03-14 | 2017-11-28 | Cisco Technology, Inc. | Adjusting entries in a forwarding information base in a content centric network |
US10129368B2 (en) | 2016-03-14 | 2018-11-13 | 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 |
US10348865B2 (en) | 2016-04-04 | 2019-07-09 | Cisco Technology, Inc. | System and method for compressing content centric networking messages |
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 |
US10841212B2 (en) | 2016-04-11 | 2020-11-17 | Cisco Technology, Inc. | Method and system for routable prefix queries 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 |
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 |
US10404537B2 (en) | 2016-05-13 | 2019-09-03 | Cisco Technology, Inc. | Updating a transport stack in a content centric network |
US10693852B2 (en) | 2016-05-13 | 2020-06-23 | 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 |
US10581741B2 (en) | 2016-06-27 | 2020-03-03 | 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 |
US10897518B2 (en) | 2016-10-03 | 2021-01-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 |
US10721332B2 (en) | 2016-10-31 | 2020-07-21 | Cisco Technology, Inc. | System and method for process migration 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 |
US20220224670A1 (en) * | 2019-06-24 | 2022-07-14 | Huawei Technologies Co., Ltd. | Communication method and related device |
CN110636039A (en) * | 2019-07-31 | 2019-12-31 | 浙江工业大学 | Intelligent household encryption control management method based on intranet penetration technology |
US11277379B2 (en) * | 2020-05-12 | 2022-03-15 | Citrix Systems, Inc. | Modification of application-provided turn servers |
Also Published As
Publication number | Publication date |
---|---|
TWI408936B (en) | 2013-09-11 |
US8055771B2 (en) | 2011-11-08 |
TW201110645A (en) | 2011-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055771B2 (en) | Network traversal method for establishing connection between two endpoints and network communication system | |
US11233858B2 (en) | Methods and apparatus for managing the use of IP addresses | |
US7684397B2 (en) | Symmetric network address translation system using STUN technique and method for implementing the same | |
US8082324B2 (en) | Method of establishing a tunnel between network terminal devices passing through firewall | |
US8224985B2 (en) | Peer-to-peer communication traversing symmetric network address translators | |
US8457014B2 (en) | Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system | |
US9203872B2 (en) | Distributed connectivity policy enforcement with ICE | |
US8356344B2 (en) | Portable ice proxy and method thereof | |
US8650312B2 (en) | Connection establishing management methods for use in a network system and network systems using the same | |
US20060056420A1 (en) | Communication apparatus selecting a source address | |
RU2543304C2 (en) | Packet relay method and device | |
US20100274922A1 (en) | System and method for managing long lived connections from a plurality of applications running on a wireless device | |
US20140330886A1 (en) | Distributed network address translation control | |
US20130308628A1 (en) | Nat traversal for voip | |
US20130117446A1 (en) | Address management in a connectivity platform | |
CN102497446B (en) | Business flow transmission method crossing NAT device and apparatus thereof | |
RU2373654C1 (en) | Method for making peer-to-peer connection and system designed for it | |
CN111314481B (en) | Data transmission method, device, equipment and readable storage medium | |
US8082580B1 (en) | Session layer pinhole management within a network security device | |
Lin et al. | How NAT-compatible are VoIP applications? | |
KR101124635B1 (en) | Connecting gateway with ipv4/ipv6 | |
WO2008069504A1 (en) | Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system | |
KR101586058B1 (en) | Device for connecting peer-to-peer communication considering nat types and method connecting peer-to-peer communication using the same | |
US7386604B1 (en) | Signaling method for communication networks | |
KR20070111024A (en) | Method of routing for interworking between local network and global network based on session initiation protocol, alg device and nat device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE, TAIWAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHEN, I-TSUNG;HE, YUNG-SHENG;REEL/FRAME:023439/0829 Effective date: 20091005 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |