Difference between revisions of "pCDN:NAT"
Line 1: | Line 1: | ||
− | * NAT | + | * '''NAT''' |
Network Address Translation (NAT) is a technique that allows multiple hosts on a private network to access the Internet using a single IP address. This involves overwriting the IP address and port numbers of packets in the router. A NAT device keeps track of the connections initiated by hosts inside its private network and adds a port mapping for each. Any incoming packet is examined to check if it belongs to a session initiated by one of the hosts inside the private network. The packet is forwarded to the appropriate host if a mapping exists for it, otherwise the packet is dropped. Therefore, hosts behind a NAT cannot act as a server unless the NAT device is configured to forward the traffic appropriately. This causes problems for P2P file sharing and VoIP applications. | Network Address Translation (NAT) is a technique that allows multiple hosts on a private network to access the Internet using a single IP address. This involves overwriting the IP address and port numbers of packets in the router. A NAT device keeps track of the connections initiated by hosts inside its private network and adds a port mapping for each. Any incoming packet is examined to check if it belongs to a session initiated by one of the hosts inside the private network. The packet is forwarded to the appropriate host if a mapping exists for it, otherwise the packet is dropped. Therefore, hosts behind a NAT cannot act as a server unless the NAT device is configured to forward the traffic appropriately. This causes problems for P2P file sharing and VoIP applications. | ||
− | + | '''NAT Traversal''' | |
Since NAT behavior is not standardized, no one solution exists for the above problem. However in some situations NAT Traversal techniques are useful. Some of the techniques such as [http://nutss.gforge.cis.cornell.edu/stunt.php STUNT] require a public server with global access to assist in discovering the NAT behavior. Other techniques take advantage of NAT configuration protocols such as [http://www.upnp.org/standardizeddcps/igd.asp UPnP IGD] to learn the public IP address and add port mappings. | Since NAT behavior is not standardized, no one solution exists for the above problem. However in some situations NAT Traversal techniques are useful. Some of the techniques such as [http://nutss.gforge.cis.cornell.edu/stunt.php STUNT] require a public server with global access to assist in discovering the NAT behavior. Other techniques take advantage of NAT configuration protocols such as [http://www.upnp.org/standardizeddcps/igd.asp UPnP IGD] to learn the public IP address and add port mappings. | ||
Revision as of 21:13, 27 February 2008
- NAT
Network Address Translation (NAT) is a technique that allows multiple hosts on a private network to access the Internet using a single IP address. This involves overwriting the IP address and port numbers of packets in the router. A NAT device keeps track of the connections initiated by hosts inside its private network and adds a port mapping for each. Any incoming packet is examined to check if it belongs to a session initiated by one of the hosts inside the private network. The packet is forwarded to the appropriate host if a mapping exists for it, otherwise the packet is dropped. Therefore, hosts behind a NAT cannot act as a server unless the NAT device is configured to forward the traffic appropriately. This causes problems for P2P file sharing and VoIP applications.
NAT Traversal Since NAT behavior is not standardized, no one solution exists for the above problem. However in some situations NAT Traversal techniques are useful. Some of the techniques such as STUNT require a public server with global access to assist in discovering the NAT behavior. Other techniques take advantage of NAT configuration protocols such as UPnP IGD to learn the public IP address and add port mappings.
In pCDN, a peer receives a list of potential senders from the server in response to its query for a specific file. The peer chooses some of these senders, connects to them over TCP, and downloads the requested file. All potential senders are listening for incoming connections from other peers. If peers are behind NAT however, no connection can be established unless the NAT device is configured properly to pass the traffic through. Moreover, the downloading peer needs to be aware of the public IP and external port of the sender it is going to connect to. This information should be discovered by each peer through examining and configuring the NAT device it is behind, and reporting it to the pCDN server. The pCDN server in turn provides downloading peers with this information.
- The issues
- Not all NAT devices support UPnP IGD protocol.
- The behavior of NAT devices can not be predicted precisely so the port number the new connection is going to mapped onto cannot always be guessed.